documentation for 3.1.0
build and deploy documentation / build-and-deploy (push) Failing after 0s

This commit is contained in:
2025-12-22 17:29:05 +01:00
parent ea838b395f
commit 70207096d5
309 changed files with 30486 additions and 33487 deletions
+88 -84
View File
@@ -1,9 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PEARL Procedures: Angle-scan processing</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -23,10 +23,9 @@
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">PEARL Procedures
&#160;<span id="projectnumber">rev-distro-3.0.0-0-gfa24916-dirty</span>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">PEARL Procedures<span id="projectnumber">&#160;rev-distro-3.1.0-0-gea838b3-dirty</span>
</div>
<div id="projectbrief">Igor procedures for the analysis of PEARL data</div>
</td>
@@ -35,21 +34,22 @@
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
@@ -63,7 +63,7 @@ $(function() {
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('pag_anglescan_processing.html',''); initResizable(); });
/* @license-end */
</script>
@@ -77,14 +77,20 @@ $(document).ready(function(){initNavTree('pag_anglescan_processing.html',''); in
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Angle-scan processing </div> </div>
<div><div class="header">
<div class="headertitle"><div class="title">Angle-scan processing</div></div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
@@ -137,40 +143,44 @@ Basic steps</h2>
<div class="line">setdatafolder root: <span class="comment">// or other parent folder</span></div>
<div class="line">variable fid</div>
<div class="line"><span class="keywordtype">string</span> sparam</div>
<div class="line">fid = <a class="code" href="pearl-pshell-import_8ipf.html#ab684c44d5f0668631e42d9c9c9dfea9e">psh5_open_file</a>(<span class="stringliteral">&quot;&lt;igor-datafolder&gt;&quot;</span>, <span class="stringliteral">&quot;&lt;igor-filepath&gt;&quot;</span>, <span class="stringliteral">&quot;&lt;filename&gt;&quot;</span>)</div>
<div class="line">fid = <a class="code hl_function" href="pearl-pshell-import_8ipf.html#ab684c44d5f0668631e42d9c9c9dfea9e">psh5_open_file</a>(<span class="stringliteral">&quot;&lt;igor-datafolder&gt;&quot;</span>, <span class="stringliteral">&quot;&lt;igor-filepath&gt;&quot;</span>, <span class="stringliteral">&quot;&lt;filename&gt;&quot;</span>)</div>
<div class="line"> </div>
<div class="line"><span class="comment">// load metadata for scaling</span></div>
<div class="line"><a class="code" href="pearl-pshell-import_8ipf.html#a23a2e4cb2dc5364bfdbab4367ed6f234">psh5_load_scan_meta</a>(fileID, &quot;&lt;scan 1&gt;&quot;)</div>
<div class="line"><a class="code hl_function" href="pearl-pshell-import_8ipf.html#a23a2e4cb2dc5364bfdbab4367ed6f234">psh5_load_scan_meta</a>(fileID, &quot;&lt;scan 1&gt;&quot;)</div>
<div class="line">newdatafolder /s /o attr</div>
<div class="line">psh5_load_scan_attrs(fileID, &quot;&lt;scan 1&gt;&quot;)</div>
<div class="line">setdatafolder ::</div>
<div class="line"> </div>
<div class="line"><span class="comment">// load and reduce dataset</span></div>
<div class="line">sparam = &quot;&lt;param1=1.5;param2=test;&gt;&quot;</div>
<div class="line"><a class="code" href="pearl-pshell-import_8ipf.html#af662500c4f992ef7b956f37ed463513d">psh5_load_dataset_reduced</a>(fid, &quot;&lt;scan 1/region1&gt;&quot;, &quot;&lt;ScientaImage&gt;&quot;, &lt;reduction_function&gt;, sparam)</div>
<div class="line"><a class="code hl_function" href="pearl-pshell-import_8ipf.html#af662500c4f992ef7b956f37ed463513d">psh5_load_dataset_reduced</a>(fid, &quot;&lt;scan 1/region1&gt;&quot;, &quot;&lt;ScientaImage&gt;&quot;, &lt;reduction_function&gt;, sparam)</div>
<div class="line"> </div>
<div class="line"><span class="comment">// close the file</span></div>
<div class="line"><a class="code" href="pearl-pshell-import_8ipf.html#a47513a1db5693f88d64739a5b28926b2">psh5_close_file</a>(fid)</div>
<div class="line"><a class="code hl_function" href="pearl-pshell-import_8ipf.html#a47513a1db5693f88d64739a5b28926b2">psh5_close_file</a>(fid)</div>
<div class="line">fid = 0</div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_a23a2e4cb2dc5364bfdbab4367ed6f234"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#a23a2e4cb2dc5364bfdbab4367ed6f234">psh5_load_scan_meta</a></div><div class="ttdeci">string psh5_load_scan_meta(dfref file_df, string scanpath)</div><div class="ttdoc">load metadata of a PShell scan group.</div><div class="ttdef"><b>Definition</b> <a href="pearl-pshell-import_8ipf_source.html#l01954">pearl-pshell-import.ipf:1954</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_a47513a1db5693f88d64739a5b28926b2"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#a47513a1db5693f88d64739a5b28926b2">psh5_close_file</a></div><div class="ttdeci">variable psh5_close_file(dfref file_df)</div><div class="ttdoc">close a HDF5 file opened by psh5_open_file.</div><div class="ttdef"><b>Definition</b> <a href="pearl-pshell-import_8ipf_source.html#l00509">pearl-pshell-import.ipf:509</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_ab684c44d5f0668631e42d9c9c9dfea9e"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#ab684c44d5f0668631e42d9c9c9dfea9e">psh5_open_file</a></div><div class="ttdeci">dfr psh5_open_file(string path_name, string file_name, dfref dest_df=defaultValue)</div><div class="ttdoc">open a HDF5 file created by the PShell data acquisition program and prepare the data folder.</div><div class="ttdef"><b>Definition</b> <a href="pearl-pshell-import_8ipf_source.html#l00450">pearl-pshell-import.ipf:450</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_af662500c4f992ef7b956f37ed463513d"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#af662500c4f992ef7b956f37ed463513d">psh5_load_dataset_reduced</a></div><div class="ttdeci">string psh5_load_dataset_reduced(dfref file_df, string datasetpath, funcref reduction_func, string reduction_params, variable create_folders=defaultValue, variable progress=defaultValue, variable nthreads=defaultValue)</div><div class="ttdoc">load a dataset with reduced dimensionality</div><div class="ttdef"><b>Definition</b> <a href="pearl-pshell-import_8ipf_source.html#l01472">pearl-pshell-import.ipf:1472</a></div></div>
</div><!-- fragment --><h2><a class="anchor" id="sec_import_intlinbg"></a>
Peak integration over linear background</h2>
<p>The <a class="el" href="pearl-scienta-preprocess_8ipf.html#a1e91197cd7a3581b70bc59a194d3f43b">int_linbg_reduction</a> function converts a two-dimensional Scienta image I(angle, energy) into a one-dimensional angle distribution I(angle). For each angle slice, it calculates a linear background. Then, it integrates the difference between the original data and the background over a specified interval.</p>
<p>The function requires the following, fixed parameters:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Parameter </th><th class="markdownTableHeadNone">Description </th><th class="markdownTableHeadNone">Typical value </th></tr>
<th class="markdownTableHeadNone">Parameter </th><th class="markdownTableHeadNone">Description </th><th class="markdownTableHeadNone">Typical value </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Lcrop </td><td class="markdownTableBodyNone">size of the low-energy cropping region </td><td class="markdownTableBodyNone">0.11 (fixed mode) </td></tr>
<td class="markdownTableBodyNone">Lcrop </td><td class="markdownTableBodyNone">size of the low-energy cropping region </td><td class="markdownTableBodyNone">0.11 (fixed mode) </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Lsize </td><td class="markdownTableBodyNone">size of the low-energy background region </td><td class="markdownTableBodyNone">0.2 </td></tr>
<td class="markdownTableBodyNone">Lsize </td><td class="markdownTableBodyNone">size of the low-energy background region </td><td class="markdownTableBodyNone">0.2 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Hcrop </td><td class="markdownTableBodyNone">size of the high-energy cropping region </td><td class="markdownTableBodyNone">0.11 </td></tr>
<td class="markdownTableBodyNone">Hcrop </td><td class="markdownTableBodyNone">size of the high-energy cropping region </td><td class="markdownTableBodyNone">0.11 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Hsize </td><td class="markdownTableBodyNone">size of the high-energy background region </td><td class="markdownTableBodyNone">0.2 </td></tr>
<td class="markdownTableBodyNone">Hsize </td><td class="markdownTableBodyNone">size of the high-energy background region </td><td class="markdownTableBodyNone">0.2 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Cpos </td><td class="markdownTableBodyNone">position of the peak center </td><td class="markdownTableBodyNone">0.5 </td></tr>
<td class="markdownTableBodyNone">Cpos </td><td class="markdownTableBodyNone">position of the peak center </td><td class="markdownTableBodyNone">0.5 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Csize </td><td class="markdownTableBodyNone">size of the center region </td><td class="markdownTableBodyNone">0.3 </td></tr>
<td class="markdownTableBodyNone">Csize </td><td class="markdownTableBodyNone">size of the center region </td><td class="markdownTableBodyNone">0.3 </td></tr>
</table>
<p>All parameters are relative to the size of the image (length of the energy interval) and must be in the range from 0 to 1.</p>
<p>The cropping region is cut away from the image for the rest of the processing. This is necessary to remove the dark corners in fixed mode but can be neglected in swept mode (cropping size = 0).</p>
@@ -184,31 +194,31 @@ Peak fitting</h2>
<p>The function requires the following, fixed parameters:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Parameter </th><th class="markdownTableHeadNone">Description </th></tr>
<th class="markdownTableHeadNone">Parameter </th><th class="markdownTableHeadNone">Description </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">rngl </td><td class="markdownTableBodyNone">lower limit of the fit interval </td></tr>
<td class="markdownTableBodyNone">rngl </td><td class="markdownTableBodyNone">lower limit of the fit interval </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">rngh </td><td class="markdownTableBodyNone">upper limit of the fit interval </td></tr>
<td class="markdownTableBodyNone">rngh </td><td class="markdownTableBodyNone">upper limit of the fit interval </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">npeaks </td><td class="markdownTableBodyNone">number of components </td></tr>
<td class="markdownTableBodyNone">npeaks </td><td class="markdownTableBodyNone">number of components </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">pos1 </td><td class="markdownTableBodyNone">center energy of peak 1 </td></tr>
<td class="markdownTableBodyNone">pos1 </td><td class="markdownTableBodyNone">center energy of peak 1 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">wid1 </td><td class="markdownTableBodyNone">width of peak 1 </td></tr>
<td class="markdownTableBodyNone">wid1 </td><td class="markdownTableBodyNone">width of peak 1 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">pos2 </td><td class="markdownTableBodyNone">center energy of peak 2 </td></tr>
<td class="markdownTableBodyNone">pos2 </td><td class="markdownTableBodyNone">center energy of peak 2 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">wid2 </td><td class="markdownTableBodyNone">width of peak 2 </td></tr>
<td class="markdownTableBodyNone">wid2 </td><td class="markdownTableBodyNone">width of peak 2 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">pos3 </td><td class="markdownTableBodyNone">center energy of peak 3 </td></tr>
<td class="markdownTableBodyNone">pos3 </td><td class="markdownTableBodyNone">center energy of peak 3 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">wid3 </td><td class="markdownTableBodyNone">width of peak 3 </td></tr>
<td class="markdownTableBodyNone">wid3 </td><td class="markdownTableBodyNone">width of peak 3 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">pos4 </td><td class="markdownTableBodyNone">center energy of peak 3 </td></tr>
<td class="markdownTableBodyNone">pos4 </td><td class="markdownTableBodyNone">center energy of peak 3 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">wid4 </td><td class="markdownTableBodyNone">width of peak 3 </td></tr>
<td class="markdownTableBodyNone">wid4 </td><td class="markdownTableBodyNone">width of peak 3 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">ybox </td><td class="markdownTableBodyNone">box size of slice averaging (1 or 3) </td></tr>
<td class="markdownTableBodyNone">ybox </td><td class="markdownTableBodyNone">box size of slice averaging (1 or 3) </td></tr>
</table>
<p>The peak parameters should be determined beforehand from fitting a reference spectrum, or the angle-scan integrated over all angles. Peak positions and widths have to be specified only up to the given number of peaks.</p>
<p>The data reduction procedure returns the peak integrals (amplitude times width times square root of 2) in waves named ReducedDataN where N is a numeric index from 1 to npeaks. The waves starting with an index of npeaks+1 contain the corresponding error estimate of the peak integral.</p>
@@ -223,37 +233,45 @@ Normalization</h1>
<h2><a class="anchor" id="sec_norm_prep"></a>
Preparations</h2>
<p>Start by creating a new copy of the data and inspecting it: </p><div class="fragment"><div class="line">duplicate ReducedData1, NormData1</div>
<div class="line"><a class="code" href="pearl-area-display_8ipf.html#a8fad5aebaca72887d5898b4c421bcdae">ad_display_profiles</a>(NormData1)</div>
</div><!-- fragment --><p>To update the display after changes to NormData1: </p><div class="fragment"><div class="line"><a class="code" href="pearl-area-display_8ipf.html#afa2546f9cb03dfa8bf0cc9966f0b7a45">ad_update_profiles</a>(NormData1)</div>
<div class="line"><a class="code hl_function" href="pearl-area-display_8ipf.html#a8fad5aebaca72887d5898b4c421bcdae">ad_display_profiles</a>(NormData1)</div>
<div class="ttc" id="apearl-area-display_8ipf_html_a8fad5aebaca72887d5898b4c421bcdae"><div class="ttname"><a href="pearl-area-display_8ipf.html#a8fad5aebaca72887d5898b4c421bcdae">ad_display_profiles</a></div><div class="ttdeci">string ad_display_profiles(wave image, string filter=defaultValue)</div><div class="ttdoc">open a new profiles graph window.</div><div class="ttdef"><b>Definition</b> <a href="pearl-area-display_8ipf_source.html#l00168">pearl-area-display.ipf:168</a></div></div>
</div><!-- fragment --><p>To update the display after changes to NormData1: </p><div class="fragment"><div class="line"><a class="code hl_function" href="pearl-area-display_8ipf.html#afa2546f9cb03dfa8bf0cc9966f0b7a45">ad_update_profiles</a>(NormData1)</div>
<div class="ttc" id="apearl-area-display_8ipf_html_afa2546f9cb03dfa8bf0cc9966f0b7a45"><div class="ttname"><a href="pearl-area-display_8ipf.html#afa2546f9cb03dfa8bf0cc9966f0b7a45">ad_update_profiles</a></div><div class="ttdeci">variable ad_update_profiles(wave image)</div><div class="ttdoc">update a profiles graph with new data.</div><div class="ttdef"><b>Definition</b> <a href="pearl-area-display_8ipf_source.html#l00377">pearl-area-display.ipf:377</a></div></div>
</div><!-- fragment --><h2><a class="anchor" id="sec_norm_crop"></a>
Detector angle range</h2>
<p>Crop the detector angle axis to a useful range (usually about -25 to +25 degrees): </p><div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#ab65d25af7476ed18f7bf7359614a912b">crop_strip</a>(NormData1, -25, 25)</div>
<p>Crop the detector angle axis to a useful range (usually about -25 to +25 degrees): </p><div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#ab65d25af7476ed18f7bf7359614a912b">crop_strip</a>(NormData1, -25, 25)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_ab65d25af7476ed18f7bf7359614a912b"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#ab65d25af7476ed18f7bf7359614a912b">crop_strip</a></div><div class="ttdeci">variable crop_strip(wave strip, variable xlo, variable xhi)</div><div class="ttdoc">crop a strip at the sides.</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l00747">pearl-anglescan-process.ipf:747</a></div></div>
</div><!-- fragment --><h2><a class="anchor" id="sec_norm_angle"></a>
Normalize detector angle</h2>
<p>Remove inhomogeneity of the detector in the detector angle axis. This component may also include a contribution from the sample. If your raw data shows a flat distribution, this step is not necessary.</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#a48b7d774ed8d3f4329e9923e18e580e8">normalize_strip_x</a>(NormData1, smooth_method=4, smooth_factor=0.15, check=2)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#a48b7d774ed8d3f4329e9923e18e580e8">normalize_strip_x</a>(NormData1, smooth_method=4, smooth_factor=0.15, check=2)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a48b7d774ed8d3f4329e9923e18e580e8"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a48b7d774ed8d3f4329e9923e18e580e8">normalize_strip_x</a></div><div class="ttdeci">variable normalize_strip_x(wave strip, variable smooth_method=defaultValue, variable smooth_factor=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by the average X distribution.</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l00252">pearl-anglescan-process.ipf:252</a></div></div>
</div><!-- fragment --><p>Note that the argument <code>check=2</code> causes the function to generate two check waves but not to modify the original data. To inspect the check waves: </p><div class="fragment"><div class="line">display check_dist, check_smoo</div>
<div class="line">ModifyGraph rgb(check_dist)=(0,0,0)</div>
</div><!-- fragment --><p>Vary the <code>smooth_factor</code> (between 0.1 and 1.0) until it follows the instrumental curve but does not affect diffraction features. Then set <code>check=1</code> to apply the normalization to <code>NormData1</code>.</p>
<h2><a class="anchor" id="sec_norm_wobble"></a>
Azimuthal variation (wobble)</h2>
<p>Reduce the effect of azimuthal wobble (misaligned surface) on intensity. A misaligned surface may cause a sinusoidal variation of the intensity as a function of azimuthal angle with a 360&deg; period. A strong azimuthal variation may affect the polar normalization in the next step. The azimuthal normalization can be based on a restricted range of polar angles (theta range). You have to find out which value works best for your sample.</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#aaa734fddecdd75c7cabe20ba777b41b9">normalize_strip_phi</a>(NormData1, :attr:ManipulatorTheta, :attr:ManipulatorPhi, theta_offset=-8.8, theta_range=10, check=2)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#aaa734fddecdd75c7cabe20ba777b41b9">normalize_strip_phi</a>(NormData1, :attr:ManipulatorTheta, :attr:ManipulatorPhi, theta_offset=-8.8, theta_range=10, check=2)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_aaa734fddecdd75c7cabe20ba777b41b9"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#aaa734fddecdd75c7cabe20ba777b41b9">normalize_strip_phi</a></div><div class="ttdeci">variable normalize_strip_phi(wave strip, wave theta, wave phi, variable theta_offset=defaultValue, variable theta_range=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by a sine function in phi (wobble correction).</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l00348">pearl-anglescan-process.ipf:348</a></div></div>
</div><!-- fragment --><p>Note, however, that his function does not correct for angle shifts induced by the misalignment!</p>
<h2><a class="anchor" id="sec_norm_theta"></a>
Polar dependence</h2>
<p>Remove the polar angle dependence (matrix element and excitation/detection geometry).</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#a9b56897bd92d926d65f4c67bef1d41bb">normalize_strip_theta</a>(NormData1, :attr:ManipulatorTheta, theta_offset=-8.8, smooth_method=4, smooth_factor=0.5, check=2)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#a9b56897bd92d926d65f4c67bef1d41bb">normalize_strip_theta</a>(NormData1, :attr:ManipulatorTheta, theta_offset=-8.8, smooth_method=4, smooth_factor=0.5, check=2)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a9b56897bd92d926d65f4c67bef1d41bb"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a9b56897bd92d926d65f4c67bef1d41bb">normalize_strip_theta</a></div><div class="ttdeci">variable normalize_strip_theta(wave strip, wave theta, variable theta_offset=defaultValue, variable smooth_method=defaultValue, variable smooth_factor=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by the average polar distribution.</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l00433">pearl-anglescan-process.ipf:433</a></div></div>
</div><!-- fragment --><p>Use the check waves and the <code>check</code> argument as described above.</p>
<h1><a class="anchor" id="sec_plot"></a>
Binning and plotting</h1>
<h2><a class="anchor" id="sec_plot_basics"></a>
Basic steps</h2>
<p>You can bin and plot the data in one step:</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a>(NormData1, <span class="stringliteral">&quot;Nickname1&quot;</span>, -8.8, 0.5, 6)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a>(NormData1, <span class="stringliteral">&quot;Nickname1&quot;</span>, -8.8, 0.5, 6)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_afed227ae79873fd32c96afbf606d1965"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a></div><div class="ttdeci">variable pizza_service(wave data, string nickname, variable theta_offset, variable tilt_offset, variable phi_offset, variable npolar=defaultValue, variable nograph=defaultValue, variable folding=defaultValue, variable xpdplot=defaultValue)</div><div class="ttdoc">create a pizza plot from a measured (energy-integrated) data strip</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l00843">pearl-anglescan-process.ipf:843</a></div></div>
</div><!-- fragment --><p>or two steps:</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a>(NormData1, <span class="stringliteral">&quot;Nickname2&quot;</span>, -8.8, 0.5, 6, nograph=1)</div>
<div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a>(&quot;Nickname2&quot;)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a>(NormData1, <span class="stringliteral">&quot;Nickname2&quot;</span>, -8.8, 0.5, 6, nograph=1)</div>
<div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a>(&quot;Nickname2&quot;)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_ae57302acfc822c4817f2b7eef55efea2"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a></div><div class="ttdeci">string display_hemi_scan(string nickname, variable projection=defaultValue, variable graphtype=defaultValue, variable do_ticks=defaultValue, variable do_grids=defaultValue, string graphname=defaultValue)</div><div class="ttdoc">display a plot of a hemispherical angle scan.</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l01858">pearl-anglescan-process.ipf:1858</a></div></div>
</div><!-- fragment --><p>The benefit of the latter is that you have more control over the graph through optional arguments. In particular, you can select the projection or hide the ticks and grids. See <a class="el" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a> for details.</p>
<p>The <a class="el" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a> function requires the waves with manipulator positions in a specific place, namely <code>:attr:ManipulatorTheta</code> (for the polar angle), and the normal emission values as function arguments. If you have moved the waves, or if you have subtracted the offsets yourself, use the alternative <a class="el" href="pearl-anglescan-process_8ipf.html#a229770447193d4fd12032b235aab4d28">pizza_service_2</a> function.</p>
<p>Additional parameters of the <a class="el" href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a> function allow for rotational averaging, larger angle steps (default 1 degree), or the creation of metadata including a notebook for xpdPlot.</p>
@@ -261,21 +279,25 @@ Basic steps</h2>
<h2><a class="anchor" id="sec_plot_refine"></a>
Refinements</h2>
<p>To remove high polar angles above &theta; = 80 from the plot (and data):</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e">trim_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>, 80)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e">trim_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>, 80)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e">trim_hemi_scan</a></div><div class="ttdeci">variable trim_hemi_scan(string nickname, variable theta_max)</div><div class="ttdoc">trim a hemispherical scan at grazing angle</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l03229">pearl-anglescan-process.ipf:3229</a></div></div>
</div><!-- fragment --><p>Modify the pseudocolor scale by changing the <code>polarY0</code> trace:</p>
<div class="fragment"><div class="line">ModifyGraph zColor(polarY0)={mod_values, *, *, BlueGreenOrange, 0}</div>
<div class="line">ModifyGraph zColor(polarY0)={mod_values, -0.2, 0.2, BlueGreenOrange, 0}</div>
</div><!-- fragment --><p>To set the contrast to clip specified percentiles of the data points, use the </p><ul>
<li>set_contrast function:</li>
</ul>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#af9874b5c1ce1d216741c7880a5fdcfcc">set_contrast</a>(2, 2, graphname=<span class="stringliteral">&quot;graph_Nickname1&quot;</span>, colortable=<span class="stringliteral">&quot;BlueGreenOrange&quot;</span>)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#af9874b5c1ce1d216741c7880a5fdcfcc">set_contrast</a>(2, 2, graphname=<span class="stringliteral">&quot;graph_Nickname1&quot;</span>, colortable=<span class="stringliteral">&quot;BlueGreenOrange&quot;</span>)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_af9874b5c1ce1d216741c7880a5fdcfcc"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#af9874b5c1ce1d216741c7880a5fdcfcc">set_contrast</a></div><div class="ttdeci">variable set_contrast(variable pcmin, variable pcmax, string graphname=defaultValue, string colortable=defaultValue, variable reversecolors=defaultValue, variable symmetric=defaultValue)</div><div class="ttdoc">set the pseudocolor contrast by percentile.</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l03463">pearl-anglescan-process.ipf:3463</a></div></div>
</div><!-- fragment --><h2><a class="anchor" id="sec_plot_interp"></a>
Interpolation</h2>
<p>Polar plots can also be interpolated to a rectangular matrix, which may in some cases produce nicer images:</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#acca0130cccf2286863bbf5b7f91c5b3b">interpolate_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>)</div>
<div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a>(&quot;Nickname1&quot;, graphtype=3, graphname=&quot;intp&quot;)</div>
<div class="line">matrix = sqrt(x^2 + y^2) &lt;= <a class="code" href="pearl-anglescan-process_8ipf.html#a75219b38ea58012abcffc848d536faa4">calc_graph_radius</a>(80) ? matrix : nan</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#acca0130cccf2286863bbf5b7f91c5b3b">interpolate_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>)</div>
<div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a>(&quot;Nickname1&quot;, graphtype=3, graphname=&quot;intp&quot;)</div>
<div class="line">matrix = sqrt(x^2 + y^2) &lt;= <a class="code hl_function" href="pearl-anglescan-process_8ipf.html#a75219b38ea58012abcffc848d536faa4">calc_graph_radius</a>(80) ? matrix : nan</div>
<div class="line">ModifyImage matrix ctab= {*,*,BlueGreenOrange,0}</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a75219b38ea58012abcffc848d536faa4"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a75219b38ea58012abcffc848d536faa4">calc_graph_radius</a></div><div class="ttdeci">threadsafe variable calc_graph_radius(variable polar, variable projection=defaultValue)</div><div class="ttdoc">calculate the projected polar angle</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l02369">pearl-anglescan-process.ipf:2369</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_acca0130cccf2286863bbf5b7f91c5b3b"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#acca0130cccf2286863bbf5b7f91c5b3b">interpolate_hemi_scan</a></div><div class="ttdeci">variable interpolate_hemi_scan(string nickname, variable projection=defaultValue)</div><div class="ttdoc">interpolate a hemispherical scan onto a rectangular grid</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l02920">pearl-anglescan-process.ipf:2920</a></div></div>
</div><!-- fragment --><p>The <code>matrix =</code> line optionally removes artefacts at high polar angles. Replace the cut-off angle with your own.</p>
<h2><a class="anchor" id="sec_modulation"></a>
Modulation function</h2>
@@ -288,17 +310,17 @@ Projection</h2>
<p>The <a class="el" href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a> and <a class="el" href="pearl-anglescan-process_8ipf.html#acca0130cccf2286863bbf5b7f91c5b3b">interpolate_hemi_scan</a> functions take an optional argument <code>projection</code> which selects one of the following projections. By default, stereographic projection is selected.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadCenter">Selector </th><th class="markdownTableHeadCenter">Projection </th><th class="markdownTableHeadCenter">Function </th><th class="markdownTableHeadLeft">Properties </th></tr>
<th class="markdownTableHeadCenter">Selector </th><th class="markdownTableHeadCenter">Projection </th><th class="markdownTableHeadCenter">Function </th><th class="markdownTableHeadLeft">Properties </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">kProjDist = 0 </td><td class="markdownTableBodyCenter">azimuthal equidistant </td><td class="markdownTableBodyCenter">r = c * theta </td><td class="markdownTableBodyLeft">radius is proportional to polar angle </td></tr>
<td class="markdownTableBodyCenter">kProjDist = 0 </td><td class="markdownTableBodyCenter">azimuthal equidistant </td><td class="markdownTableBodyCenter">r = c * theta </td><td class="markdownTableBodyLeft">radius is proportional to polar angle </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">kProjStereo = 1 </td><td class="markdownTableBodyCenter">stereographic </td><td class="markdownTableBodyCenter">r = c * tan theta/2 </td><td class="markdownTableBodyLeft">circles on sphere map to circles </td></tr>
<td class="markdownTableBodyCenter">kProjStereo = 1 </td><td class="markdownTableBodyCenter">stereographic </td><td class="markdownTableBodyCenter">r = c * tan theta/2 </td><td class="markdownTableBodyLeft">circles on sphere map to circles </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">kProjArea = 2 </td><td class="markdownTableBodyCenter">azimuthal equal-area </td><td class="markdownTableBodyCenter">r = c * sin theta/2 </td><td class="markdownTableBodyLeft">preserves area measure </td></tr>
<td class="markdownTableBodyCenter">kProjArea = 2 </td><td class="markdownTableBodyCenter">azimuthal equal-area </td><td class="markdownTableBodyCenter">r = c * sin theta/2 </td><td class="markdownTableBodyLeft">preserves area measure </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyCenter">kProjGnom = 3 </td><td class="markdownTableBodyCenter">gnomonic </td><td class="markdownTableBodyCenter">r = c * tan theta </td><td class="markdownTableBodyLeft">great circles map to straight lines </td></tr>
<td class="markdownTableBodyCenter">kProjGnom = 3 </td><td class="markdownTableBodyCenter">gnomonic </td><td class="markdownTableBodyCenter">r = c * tan theta </td><td class="markdownTableBodyLeft">great circles map to straight lines </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyCenter">kProjOrtho = 4 </td><td class="markdownTableBodyCenter">orthographic </td><td class="markdownTableBodyCenter">r = c * sin theta </td><td class="markdownTableBodyLeft">momentum mapping in ARPES and LEED </td></tr>
<td class="markdownTableBodyCenter">kProjOrtho = 4 </td><td class="markdownTableBodyCenter">orthographic </td><td class="markdownTableBodyCenter">r = c * sin theta </td><td class="markdownTableBodyLeft">momentum mapping in ARPES and LEED </td></tr>
</table>
<p>For a description of the different projections, see <a href="https://en.wikipedia.org/wiki/Map_projection">Wikipedia</a>, for example. The projections in this package are defined for 0 &lt;= theta &lt; 90.</p>
<h1><a class="anchor" id="sec_export"></a>
@@ -310,7 +332,8 @@ Export picture</h2>
</div><!-- fragment --><h2><a class="anchor" id="sec_export_data"></a>
Export processed data</h2>
<p>The following line saves the dataset to an Igor text file. The file contains all data necessary to recreate a polar plot without further processing.</p>
<div class="fragment"><div class="line"><a class="code" href="pearl-anglescan-process_8ipf.html#a48cbd596656bc6d849c53afb4c58b90d">save_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>, <span class="stringliteral">&quot;home&quot;</span>, <span class="stringliteral">&quot;some_filename&quot;</span>)</div>
<div class="fragment"><div class="line"><a class="code hl_function" href="pearl-anglescan-process_8ipf.html#a48cbd596656bc6d849c53afb4c58b90d">save_hemi_scan</a>(<span class="stringliteral">&quot;Nickname1&quot;</span>, <span class="stringliteral">&quot;home&quot;</span>, <span class="stringliteral">&quot;some_filename&quot;</span>)</div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a48cbd596656bc6d849c53afb4c58b90d"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a48cbd596656bc6d849c53afb4c58b90d">save_hemi_scan</a></div><div class="ttdeci">variable save_hemi_scan(string nickname, string pathname, string filename)</div><div class="ttdoc">save a hemispherical scan to an Igor text file</div><div class="ttdef"><b>Definition</b> <a href="pearl-anglescan-process_8ipf_source.html#l03097">pearl-anglescan-process.ipf:3097</a></div></div>
</div><!-- fragment --><p>For structural optimization using the PMSCO software, it is necessary to generate an ETPI file. There is currently no special function for this. Instead, you have to create and set an energy wave,</p>
<div class="fragment"><div class="line">duplicate pol, en</div>
<div class="line">en = 123.4 <span class="comment">// kinetic energy of the photoelectron</span></div>
@@ -319,29 +342,10 @@ Export processed data</h2>
</div><!-- fragment --> </div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<div class="ttc" id="apearl-anglescan-process_8ipf_html_ab65d25af7476ed18f7bf7359614a912b"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#ab65d25af7476ed18f7bf7359614a912b">crop_strip</a></div><div class="ttdeci">variable crop_strip(wave strip, variable xlo, variable xhi)</div><div class="ttdoc">crop a strip at the sides.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l00747">pearl-anglescan-process.ipf:747</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a5dc0cc7db9d3d7a6b3fa3f1b04d84a5e">trim_hemi_scan</a></div><div class="ttdeci">variable trim_hemi_scan(string nickname, variable theta_max)</div><div class="ttdoc">trim a hemispherical scan at grazing angle</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l03229">pearl-anglescan-process.ipf:3229</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a9b56897bd92d926d65f4c67bef1d41bb"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a9b56897bd92d926d65f4c67bef1d41bb">normalize_strip_theta</a></div><div class="ttdeci">variable normalize_strip_theta(wave strip, wave theta, variable theta_offset=defaultValue, variable smooth_method=defaultValue, variable smooth_factor=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by the average polar distribution.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l00433">pearl-anglescan-process.ipf:433</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a48b7d774ed8d3f4329e9923e18e580e8"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a48b7d774ed8d3f4329e9923e18e580e8">normalize_strip_x</a></div><div class="ttdeci">variable normalize_strip_x(wave strip, variable smooth_method=defaultValue, variable smooth_factor=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by the average X distribution.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l00252">pearl-anglescan-process.ipf:252</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_af662500c4f992ef7b956f37ed463513d"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#af662500c4f992ef7b956f37ed463513d">psh5_load_dataset_reduced</a></div><div class="ttdeci">string psh5_load_dataset_reduced(dfref file_df, string datasetpath, funcref reduction_func, string reduction_params, variable create_folders=defaultValue, variable progress=defaultValue, variable nthreads=defaultValue)</div><div class="ttdoc">load a dataset with reduced dimensionality</div><div class="ttdef"><b>Definition:</b> <a href="pearl-pshell-import_8ipf_source.html#l01472">pearl-pshell-import.ipf:1472</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_a23a2e4cb2dc5364bfdbab4367ed6f234"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#a23a2e4cb2dc5364bfdbab4367ed6f234">psh5_load_scan_meta</a></div><div class="ttdeci">string psh5_load_scan_meta(dfref file_df, string scanpath)</div><div class="ttdoc">load metadata of a PShell scan group.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-pshell-import_8ipf_source.html#l01954">pearl-pshell-import.ipf:1954</a></div></div>
<div class="ttc" id="apearl-area-display_8ipf_html_afa2546f9cb03dfa8bf0cc9966f0b7a45"><div class="ttname"><a href="pearl-area-display_8ipf.html#afa2546f9cb03dfa8bf0cc9966f0b7a45">ad_update_profiles</a></div><div class="ttdeci">variable ad_update_profiles(wave image)</div><div class="ttdoc">update a profiles graph with new data.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-area-display_8ipf_source.html#l00377">pearl-area-display.ipf:377</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a75219b38ea58012abcffc848d536faa4"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a75219b38ea58012abcffc848d536faa4">calc_graph_radius</a></div><div class="ttdeci">threadsafe variable calc_graph_radius(variable polar, variable projection=defaultValue)</div><div class="ttdoc">calculate the projected polar angle</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l02369">pearl-anglescan-process.ipf:2369</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_afed227ae79873fd32c96afbf606d1965"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#afed227ae79873fd32c96afbf606d1965">pizza_service</a></div><div class="ttdeci">variable pizza_service(wave data, string nickname, variable theta_offset, variable tilt_offset, variable phi_offset, variable npolar=defaultValue, variable nograph=defaultValue, variable folding=defaultValue, variable xpdplot=defaultValue)</div><div class="ttdoc">create a pizza plot from a measured (energy-integrated) data strip</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l00843">pearl-anglescan-process.ipf:843</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_acca0130cccf2286863bbf5b7f91c5b3b"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#acca0130cccf2286863bbf5b7f91c5b3b">interpolate_hemi_scan</a></div><div class="ttdeci">variable interpolate_hemi_scan(string nickname, variable projection=defaultValue)</div><div class="ttdoc">interpolate a hemispherical scan onto a rectangular grid</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l02920">pearl-anglescan-process.ipf:2920</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_af9874b5c1ce1d216741c7880a5fdcfcc"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#af9874b5c1ce1d216741c7880a5fdcfcc">set_contrast</a></div><div class="ttdeci">variable set_contrast(variable pcmin, variable pcmax, string graphname=defaultValue, string colortable=defaultValue, variable reversecolors=defaultValue, variable symmetric=defaultValue)</div><div class="ttdoc">set the pseudocolor contrast by percentile.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l03463">pearl-anglescan-process.ipf:3463</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_a48cbd596656bc6d849c53afb4c58b90d"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#a48cbd596656bc6d849c53afb4c58b90d">save_hemi_scan</a></div><div class="ttdeci">variable save_hemi_scan(string nickname, string pathname, string filename)</div><div class="ttdoc">save a hemispherical scan to an Igor text file</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l03097">pearl-anglescan-process.ipf:3097</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_a47513a1db5693f88d64739a5b28926b2"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#a47513a1db5693f88d64739a5b28926b2">psh5_close_file</a></div><div class="ttdeci">variable psh5_close_file(dfref file_df)</div><div class="ttdoc">close a HDF5 file opened by psh5_open_file.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-pshell-import_8ipf_source.html#l00509">pearl-pshell-import.ipf:509</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_aaa734fddecdd75c7cabe20ba777b41b9"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#aaa734fddecdd75c7cabe20ba777b41b9">normalize_strip_phi</a></div><div class="ttdeci">variable normalize_strip_phi(wave strip, wave theta, wave phi, variable theta_offset=defaultValue, variable theta_range=defaultValue, variable check=defaultValue)</div><div class="ttdoc">divide the strip by a sine function in phi (wobble correction).</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l00348">pearl-anglescan-process.ipf:348</a></div></div>
<div class="ttc" id="apearl-area-display_8ipf_html_a8fad5aebaca72887d5898b4c421bcdae"><div class="ttname"><a href="pearl-area-display_8ipf.html#a8fad5aebaca72887d5898b4c421bcdae">ad_display_profiles</a></div><div class="ttdeci">string ad_display_profiles(wave image, string filter=defaultValue)</div><div class="ttdoc">open a new profiles graph window.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-area-display_8ipf_source.html#l00168">pearl-area-display.ipf:168</a></div></div>
<div class="ttc" id="apearl-pshell-import_8ipf_html_ab684c44d5f0668631e42d9c9c9dfea9e"><div class="ttname"><a href="pearl-pshell-import_8ipf.html#ab684c44d5f0668631e42d9c9c9dfea9e">psh5_open_file</a></div><div class="ttdeci">dfr psh5_open_file(string path_name, string file_name, dfref dest_df=defaultValue)</div><div class="ttdoc">open a HDF5 file created by the PShell data acquisition program and prepare the data folder.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-pshell-import_8ipf_source.html#l00450">pearl-pshell-import.ipf:450</a></div></div>
<div class="ttc" id="apearl-anglescan-process_8ipf_html_ae57302acfc822c4817f2b7eef55efea2"><div class="ttname"><a href="pearl-anglescan-process_8ipf.html#ae57302acfc822c4817f2b7eef55efea2">display_hemi_scan</a></div><div class="ttdeci">string display_hemi_scan(string nickname, variable projection=defaultValue, variable graphtype=defaultValue, variable do_ticks=defaultValue, variable do_grids=defaultValue, string graphname=defaultValue)</div><div class="ttdoc">display a plot of a hemispherical angle scan.</div><div class="ttdef"><b>Definition:</b> <a href="pearl-anglescan-process_8ipf_source.html#l01858">pearl-anglescan-process.ipf:1858</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Tue Mar 1 2022 15:31:30 for PEARL Procedures by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
<li class="footer">Generated on Mon Dec 22 2025 17:26:40 for PEARL Procedures by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>