updates: scaling of pshell data, matrix preview, elog panel
- elog panel supports multiple attachments - matrix (omicron STM) data file preview in data explorer - various improvements for the scaling of pshell data
This commit is contained in:
@ -703,3 +703,99 @@ function scienta_poly_bg(w, e, a): fitfunc
|
||||
|
||||
return bg * (base + pk1 + pk2 + pk3)
|
||||
end
|
||||
|
||||
/// parameter dialog for the redim_linbg_reduction() function
|
||||
///
|
||||
/// @param param parameter string in a key1=value1;key2=value2;... list.
|
||||
/// the parameter string is passed by reference.
|
||||
/// see redim_linbg_reduction() for a description of parameters.
|
||||
///
|
||||
/// @return zero if the user clicked OK, non-zero if the user clicked Cancel.
|
||||
///
|
||||
function prompt_redim_linbg_reduction(param)
|
||||
string ¶m
|
||||
|
||||
variable Lcrop = NumberByKey("Lcrop", param, "=", ";")
|
||||
variable Lsize = NumberByKey("Lsize", param, "=", ";")
|
||||
variable Hcrop = NumberByKey("Hcrop", param, "=", ";")
|
||||
variable Hsize = NumberByKey("Hsize", param, "=", ";")
|
||||
variable Cpos = NumberByKey("Cpos", param, "=", ";")
|
||||
variable Csize = NumberByKey("Csize", param, "=", ";")
|
||||
|
||||
prompt Lcrop, "Lower cropping region"
|
||||
prompt Hcrop, "Upper cropping region"
|
||||
prompt Lsize, "Lower background region"
|
||||
prompt Hsize, "Upper background region"
|
||||
prompt Cpos, "Center position"
|
||||
prompt Csize, "Center integration region"
|
||||
|
||||
doprompt "redim_linbg_reduction Parameters", lcrop, hcrop, lsize, hsize, cpos, csize
|
||||
if (v_flag == 0)
|
||||
param = ReplaceNumberByKey("Lcrop", param, Lcrop, "=", ";")
|
||||
param = ReplaceNumberByKey("Lsize", param, Lsize, "=", ";")
|
||||
param = ReplaceNumberByKey("Hcrop", param, Hcrop, "=", ";")
|
||||
param = ReplaceNumberByKey("Hsize", param, Hsize, "=", ";")
|
||||
param = ReplaceNumberByKey("Cpos", param, Cpos, "=", ";")
|
||||
param = ReplaceNumberByKey("Csize", param, Csize, "=", ";")
|
||||
endif
|
||||
|
||||
return v_flag
|
||||
end
|
||||
|
||||
/// linear background reduction function for incorrectly dimensioned scienta image
|
||||
///
|
||||
/// if the energy step size does not divide the energy range to an integer number,
|
||||
/// the scienta image is exported with the wrong array size.
|
||||
/// this can be fixed by redimensioning the array.
|
||||
///
|
||||
/// the current implementation works in the case where dimension 0 needs to be incremented.
|
||||
/// the function may be generalized to dimension 1 and/or decrementing by additional parameters.
|
||||
/// it is not known yet whether a generalization is needed or whether it can cover all cases.
|
||||
///
|
||||
/// background subtraction and peak integration is the same as by the int_linbg_reduction() function.
|
||||
///
|
||||
/// @param source source wave
|
||||
/// Scienta detector image, energy axis along X, angle axis along Y
|
||||
///
|
||||
/// @param dest1 destination wave 1
|
||||
///
|
||||
/// @param dest2 destination wave 2
|
||||
/// each wave is a one-dimensional intensity distribution
|
||||
/// the function may redimension these waves to one of the image dimensions
|
||||
/// (it must be clear to the user which dimension this is).
|
||||
/// the meaning of dest1 and dest2 is up to the particular function,
|
||||
/// e.g. dest1 could hold the mean value and dest2 the one-sigma error,
|
||||
/// or dest1 could hold the X-profile, and dest2 the Y-profile.
|
||||
///
|
||||
/// @param param parameter string in a key1=value1;key2=value2;... list.
|
||||
/// the parameter string is passed by reference.
|
||||
///
|
||||
/// all region parameters are relative to the image size (0...1).
|
||||
/// @arg Lcrop size of the lower cropping region
|
||||
/// @arg Hcrop size of the upper cropping region
|
||||
/// @arg Lsize size of the lower background integration region
|
||||
/// @arg Hsize size of the upper background integration region
|
||||
/// @arg Cpos center position of the of the peak integration region
|
||||
/// @arg Csize size of the peak integration region
|
||||
///
|
||||
/// typical values (peak centered on detector, FWHM ~ 20 % of image)
|
||||
/// Lcrop=0.11;Hcrop=0.11;Lsize=0.2;Hsize=0.2;Cpos=0.5;Csize=0.2
|
||||
///
|
||||
/// @return zero if successful, non-zero if an error occurs.
|
||||
///
|
||||
threadsafe function redim_linbg_reduction(source, dest1, dest2, param)
|
||||
wave source
|
||||
wave dest1, dest2
|
||||
string ¶m
|
||||
|
||||
variable nx = dimsize(source, 0)
|
||||
variable ny = dimsize(source, 1)
|
||||
|
||||
duplicate /free source, source_redim
|
||||
redimension /n=(nx * ny) source_redim
|
||||
nx += 1
|
||||
redimension /n=(nx, ny) source_redim
|
||||
|
||||
return int_linbg_reduction(source_redim, dest1, dest2, param)
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user