diff --git a/README.md b/README.md index ef7a4a9..2dea65b 100644 --- a/README.md +++ b/README.md @@ -34,12 +34,16 @@ Matthias Muntwiler, Copyright --------- -Copyright 2009-2018 by [Paul Scherrer Institut](http://www.psi.ch) +Copyright 2009-2019 by [Paul Scherrer Institut](http://www.psi.ch) Release Notes ============= +## rev-distro-2.0.3 + +- The interpolate_hemi_scan function now requires a projection argument unless stereographic projection is desired. + ## rev-distro-2.0.0 - The interface of data reduction functions has changed to make data reduction more efficient in multi-peak fits. The supplied reduction functions and dialogs have been refactored. If you want to use your own reduction functions written for pre-2.0, you have to adapt them to the new interface. diff --git a/doc/config.dox b/doc/config.dox index 6ec14eb..c68c68b 100644 --- a/doc/config.dox +++ b/doc/config.dox @@ -768,7 +768,8 @@ INPUT = ../pearl \ # possible encodings. # The default value is: UTF-8. -INPUT_ENCODING = CP1252 +#INPUT_ENCODING = CP1252 +INPUT_ENCODING = ISO-8859-15 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and @@ -874,14 +875,15 @@ INPUT_FILTER = # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. -FILTER_PATTERNS = "*.ipf=\"gawk -f doxygen-filter-ipf.awk\"" +#FILTER_PATTERNS = "*.ipf=\"/usr/bin/gawk -f doxygen-filter-ipf.awk\"" +FILTER_PATTERNS = "*.ipf=/bin/sh doxygen-filter-ipf.sh" # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. -FILTER_SOURCE_FILES = YES +FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and diff --git a/doc/doxygen-filter-ipf.sh b/doc/doxygen-filter-ipf.sh new file mode 100755 index 0000000..f572d6f --- /dev/null +++ b/doc/doxygen-filter-ipf.sh @@ -0,0 +1,3 @@ +#!/bin/sh +gawk -b -f doxygen-filter-ipf.awk "$1" + diff --git a/doc/src/anglescan-processing.dox b/doc/src/anglescan-processing.dox index 969dfd3..7b387b0 100644 --- a/doc/src/anglescan-processing.dox +++ b/doc/src/anglescan-processing.dox @@ -2,7 +2,7 @@ @tableofcontents -\section sec_intro Introduction +\section sec_anglescan_intro Introduction This page describes the data processing steps of angle-scans using the PEARL Procedures. The description relies on using the command line regardless of available GUIs. @@ -170,6 +170,9 @@ Depending on the quality of the measured data, only some of the following processing steps are necessary. Use your own judgement. +There is a GUI for the processing steps in @ref pearl-anglescan-panel.ipf +(@ref asp_show_panel function or the PEARL/process menu). + \subsection sec_norm_prep Preparations Start by creating a new copy of the data and inspecting it: @@ -216,7 +219,7 @@ Then set check=1 to apply the normalization to NormData1= 1.6)) DoAlert /T="display hemi scan" 0, "your dataset doesn't include the version 1.6 flag. if it was created with an earlier version that might be okay. please check that the orientation is correct!" @@ -2534,12 +2580,12 @@ end /// interpolate a hemispherical scan onto a rectangular grid /// +/// the scan data must exist in the current data folder +/// or in the sub-folder given by the nickname parameter. +/// /// the interpolated data is written to a new two-dimensional wave "matrix". /// the wave has a fixed size of 181 x 181 points optimized for 1-degree polar steps. /// -/// the function requires the ster_x and ster_y waves that are created by display_hemi_scan, -/// and thus implicitly uses the same projection. -/// /// missing values (nan) are interpolated. /// this works well only if the missing values are reasonable sparse. /// the function also applies a gaussian filter to smooth the image. @@ -2547,26 +2593,47 @@ end /// /// to display the result call display_hemi_scan() with graphtype=3. /// -function interpolate_hemi_scan(nickname) +/// @param nickname name prefix of holo waves. +/// may be empty. +/// +/// @param projection mapping function from polar to cartesian coordinates. +/// see @ref PageProjections for details. +/// @arg kProjDist = 0 azimuthal equidistant +/// @arg kProjStereo = 1 stereographic (default) +/// @arg kProjArea = 2 azimuthal equal-area +/// @arg kProjGnom = 3 gnomonic (0 <= polar < 90) +/// @arg kProjOrtho = 4 orthographic +/// +/// +function interpolate_hemi_scan(nickname, [projection]) string nickname + variable projection dfref savedf = GetDataFolderDFR() + + if (ParamIsDefault(projection)) + projection = 1 + endif string s_prefix = "" string s_int = "values" dfref df = find_hemi_data(nickname, s_prefix, s_int) - + prepare_hemi_scan_display(nickname, projection=projection) + string s_polar = s_prefix + "pol" string s_azim = s_prefix + "az" + string s_matrix = s_prefix + "matrix" + string s_ster_rad = s_prefix + "ster_rad" string s_ster_x = s_prefix + "ster_x" string s_ster_y = s_prefix + "ster_y" - - wave /sdfr=df values = $s_int - wave /sdfr=df azim = $s_azim - wave /sdfr=df polar = $s_polar - wave /sdfr=df ster_x = $s_ster_x - wave /sdfr=df ster_y = $s_ster_y + wave /sdfr=df /z values = $s_int + wave /sdfr=df /z azim = $s_azim + wave /sdfr=df /z polar = $s_polar + wave /sdfr=df /z ster_rad = $s_ster_rad + wave /sdfr=df /z ster_x = $s_ster_x + wave /sdfr=df /z ster_y = $s_ster_y + variable min_ster_x = wavemin(ster_x) variable max_ster_x = wavemax(ster_x) variable x0 = min_ster_x @@ -3040,7 +3107,6 @@ static function check_contrast(values, pcmin, pcmax, vmin, vmax) variable imax = round(numpnts(index) * (100 - pcmax) / 100) vmin = values[index[imin]] vmax = values[index[imax]] - KillDataFolder dfr setdatafolder save_df end