diff --git a/Igor Procedures/Boot Indra2.ipf b/Igor Procedures/Boot Indra2.ipf index 1ca63c08..5e8d7c53 100644 --- a/Igor Procedures/Boot Indra2.ipf +++ b/Igor Procedures/Boot Indra2.ipf @@ -1,9 +1,9 @@ #pragma rtGlobals=1 // Use modern global access method. -#pragma version = 1.976 -#pragma IgorVersion=7.05 +#pragma version = 1.98 +#pragma IgorVersion=8.03 -//1.976 Beta version July2020 release. -//1.97 February 2020 release. +//1.98 September2020 release. +//1.97 February 2020 release. //1.96 December 2018, updates 64 bit OSX xops, changes and fixes for 2018-03 cycle and general improvements. //1.95 July 2018 release, first official Igor 8 release //1.94 Converted all procedure files to UTF8 to prevent text encoding issues. diff --git a/Igor Procedures/Boot Irena1 modeling.ipf b/Igor Procedures/Boot Irena1 modeling.ipf index 0a550c26..f0e7fef8 100755 --- a/Igor Procedures/Boot Irena1 modeling.ipf +++ b/Igor Procedures/Boot Irena1 modeling.ipf @@ -1,8 +1,8 @@ #pragma rtGlobals=1 // Use modern global access method. -#pragma version = 2.696 -#pragma IgorVersion=7.05 +#pragma version = 2.70 +#pragma IgorVersion=8.03 -//2.695 Beta version July2020 release +//2.70 September2020 release //2.69 February 2020 release //2.68 December 2018,new 64 bit OSX xops. Data Merge improvements, many other fixes. //2.67 July 2018 release, first official Igor 8 release diff --git a/Igor Procedures/Boot Nika.ipf b/Igor Procedures/Boot Nika.ipf index 427993f4..2f71be27 100755 --- a/Igor Procedures/Boot Nika.ipf +++ b/Igor Procedures/Boot Nika.ipf @@ -1,8 +1,8 @@ #pragma rtGlobals=1 // Use modern global access method. -#pragma version = 1.826 -#pragma IgorVersion=7.05 +#pragma version = 1.83 +#pragma IgorVersion=8.03 -//1.826 Beta version July2020 release +//1.83 September2020 release //1.82 February 2020 release. Maintenance, many small changes. //1.81 December 2018. New OSX 64-bit xop version. //1.80 July 2018 release, first official Igor 8 release diff --git a/InstallMessage.ifn b/InstallMessage.ifn index 4c2d3cb7..4e62c234 100644 Binary files a/InstallMessage.ifn and b/InstallMessage.ifn differ diff --git a/UpdateMessage.ifn b/UpdateMessage.ifn index a080f9b1..53cd83ca 100644 Binary files a/UpdateMessage.ifn and b/UpdateMessage.ifn differ diff --git a/User Procedures/Indra 2/IN2_GeneralProcedures.ipf b/User Procedures/Indra 2/IN2_GeneralProcedures.ipf index 090289e7..a5f4ad19 100755 --- a/User Procedures/Indra 2/IN2_GeneralProcedures.ipf +++ b/User Procedures/Indra 2/IN2_GeneralProcedures.ipf @@ -16,9 +16,9 @@ Constant TypicalPanelHorizontalSize = 350 //For releases uncomment the next line and set to correct version number: //Strconstant ManualVersionString = "en/1.4/" //1.4 is December2018 release -//Strconstant ManualVersionString = "en/1.4.1/" //this was for February2020 release. +Strconstant ManualVersionString = "en/1.5.1/" //this was for September2020 release. //For development version uncomment next line, it points to latest (development) version of manuals: -Strconstant ManualVersionString = "en/latest/" //this is for beta version, so it sees current version of manual. +//Strconstant ManualVersionString = "en/latest/" //this is for beta version, so it sees current version of manual. strconstant strConstVerCheckwwwAddress="https://usaxs.xray.aps.anl.gov/staff/jan-ilavsky/IrenaNikaRecords/VersionCheck.php?" //this is probably useless... strconstant strConstVerCheckwwwAddress="http://usaxs.xray.aps.anl.gov/staff/ilavsky/IrenaNikaRecords/VersionCheck.php?" //constant useUserFileNames = 0 //this controls, if IN2G_ReturnUserSampleName(FolderPathToData) returns folder name (=0) or SmapleName (string, if exists, =1) diff --git a/User Procedures/Indra 2/IN2_Load Indra 2.ipf b/User Procedures/Indra 2/IN2_Load Indra 2.ipf index d1664ca1..25d5975c 100755 --- a/User Procedures/Indra 2/IN2_Load Indra 2.ipf +++ b/User Procedures/Indra 2/IN2_Load Indra 2.ipf @@ -1,15 +1,15 @@ #pragma rtGlobals=3 // Use modern global access method. #pragma IgorVersion=8.03 //requires Igor version 8.03 or higher -#pragma version=1.976 +#pragma version=1.98 //*************************************************************************\ -//* Copyright (c) 2005 - 2019, Argonne National Laboratory +//* Copyright (c) 2005 - 2020, Argonne National Laboratory //* This file is distributed subject to a Software License Agreement found //* in the file LICENSE that is included with this distribution. //*************************************************************************/ -//1.976 Beta version July2020 release. +//1.98 September2020 release. //1.97 February 2020 release. //1.96 December 2018 release. //1.95 July 2018 release @@ -31,7 +31,7 @@ // 1.74 update, Added new Crystal calculator, 15/1/2012 // Jan Ilavsky, ilavsky@aps.anl.gov, phone 630 252 0866 -// These macros allow evaluation of data obatined on Bonse-Hartman camera at 15ID beamline at APS +// These macros allow evaluation of data obatined on Bonse-Hartman camera at 9ID beamline at APS // The data are collected through spec program. // Report any bugs promptly to me, I'll try to fix them ASAP // The macros hould run fine on PC platform and with less ideal graphic on Mac platform too. @@ -42,25 +42,25 @@ //this is in Indra2 folder #include "IN2_ConversionProcedure", version>=1.10 #include "IN2_DesktopUSAXS", version>=0.3 -#include "IN2_GeneralProcedures", version>=2.20 +#include "IN2_GeneralProcedures", version>=2.25 #include "IN2_NotebookLogging", version>=1.10 #include "IN2_PlottingTools", version>=1.14 #include "IN2_SpecInput", version>=1.21 #include "IN2_StandardPlots", version>=1.13 -#include "IN2_USAXS", version>=1.97 +#include "IN2_USAXS", version>=1.98 #include "IN2_XtalCalculations", version>=1.1 #include "IN3_CalcScattering", version>=1.01 -#include "IN3_Calculations", version>=1.41 +#include "IN3_Calculations", version>=1.42 #include "IN3_FlyScan", version>=1.06 -#include "IN3_Main", version>=1.97 +#include "IN3_Main", version>=1.98 #include "IN3_Rwave", version>=1 #include "IN3_SupportFnct", version>=1.13 -#include "IN3_SamplePlate", version>=0.2 +#include "IN3_SamplePlate", version>=1.0 #include "spec", version>=2.21 //#include ":IN2_XtalCalculations", version>=1 #include "IonChamber3.1", version>=3.1 -#include "IR2_PanelCntrlProcs", version>=1.53 +#include "IR2_PanelCntrlProcs", version>=1.61 #include "IRNI_NexusSupport", version>=1.14 #if(IgorVersion()<9) //no need to include, Igor 9 has this by default. diff --git a/User Procedures/Indra 2/IN2_USAXS.ipf b/User Procedures/Indra 2/IN2_USAXS.ipf index cd0cf5da..e5bc6f4e 100644 --- a/User Procedures/Indra 2/IN2_USAXS.ipf +++ b/User Procedures/Indra 2/IN2_USAXS.ipf @@ -1,20 +1,21 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method. #pragma IgorVersion=8.03 //requires Igor version 8.03 or higher -#pragma version = 1.976 +#pragma version = 1.98 -constant CurrentIndraVersionNumber = 1.976 +constant CurrentIndraVersionNumber = 1.98 //*************************************************************************\ //* Copyright (c) 2005 - 2019, Argonne National Laboratory //* This file is distributed subject to a Software License Agreement found //* in the file LICENSE that is included with this distribution. //*************************************************************************/ -// require Igor 8.03, no testing for Igor 7 anymore. +//1.98 require Igor 8.03, no testing for Igor 7 anymore. +// step scanning from BS still not fully supported, needs more developement. //1.976 Beta version after February2020 release //1.97 Add print in history which version has compiled, Useful info later when debugging. // attempt to set automatically Qmin for the data. Increase default number of points to 500 -//1.96 December 2018 release. Updtaes 64 bit OSX xops. +//1.96 December 2018 release. Updates 64 bit OSX xops. //1.95 Igor 8 release, ongoing fixes for USAXS software changes. Modified behavior of Automatic blank selection in GUI. //1.94 Converted all procedure files to UTF8 to prevent text encoding issues. // Fixed Case spelling of USAXS Error data to SMR_Error and DSM_Error. @@ -156,6 +157,8 @@ Menu "USAXS" help={"Removes USAXS macros from current experiment"} + "Open Readme", IN2_OpenReadme() + help={"Open notes about recent changes in the code. "} "About", IN2_AboutPanel() help={"Information about the version"} end @@ -261,6 +264,19 @@ Function IN3_UpdatePanelVersionNumber(panelName, CurentProcVersion) end //*********************************************************** ////*********************************************************** + +Function IN2_OpenReadme() + DoWIndow IndraReadme + if(V_Flag) + DoWIndow/F IndraReadme + else + string PathToReadMe= RemoveListItem(ItemsInList(FunctionPath("IN2_OpenReadme"),":")-1, FunctionPath("IN2_OpenReadme"), ":") + PathToReadMe = PathToReadMe+"Readme.txt" + OpenNotebook /K=1 /R /N=IndraReadme /ENCG=3 /W=(20,20,720,600) /Z PathToReadMe + endif +end + + //Function IN3_PanelAppendSizeRecordNote(panelName) // string panelName // string PanelRecord="" diff --git a/User Procedures/Indra 2/IN3_Main.ipf b/User Procedures/Indra 2/IN3_Main.ipf index 9d3b3cb8..63723d97 100755 --- a/User Procedures/Indra 2/IN3_Main.ipf +++ b/User Procedures/Indra 2/IN3_Main.ipf @@ -1,6 +1,6 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method. -#pragma version = 1.976 +#pragma version = 1.98 #pragma IgorVersion=7.05 //DO NOT renumber Main files every time, these are main release numbers... @@ -11,7 +11,7 @@ //* in the file LICENSE that is included with this distribution. //*************************************************************************/ -//1.976 Beta version July2020 release. +//1.98 September2020 release. //1.97 February 2020, fix GUI for step scanning //1.97 add controls if to remove vibrations or not, seems sometimes is not vibrations which causes less points to be recorded... //1.97 add is2DCollimated and fix sbFLyscan handling. few more fixes. diff --git a/User Procedures/Indra 2/IN3_SamplePlate.ipf b/User Procedures/Indra 2/IN3_SamplePlate.ipf index 95521b60..9d29fea4 100644 --- a/User Procedures/Indra 2/IN3_SamplePlate.ipf +++ b/User Procedures/Indra 2/IN3_SamplePlate.ipf @@ -1,7 +1,7 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method and strict wave access #pragma DefaultTab={3,20,4} // Set default tab width in Igor Pro 9 and later -#pragma version = 0.61 +#pragma version = 1.0 #pragma IgorVersion=8.03 @@ -13,6 +13,7 @@ //this is tool to setup Sample Plates for USAXS, survey sample positions, and generate Command files. +//1.0 September2020, first release. //0.6 many fixes //0.4 developement, with beamline survey code... diff --git a/User Procedures/Indra 2/Readme.txt b/User Procedures/Indra 2/Readme.txt index efc0ffa4..de7cd809 100755 --- a/User Procedures/Indra 2/Readme.txt +++ b/User Procedures/Indra 2/Readme.txt @@ -1,4 +1,3 @@ - **** I n d r a ***** USAXS - data reduction macros. @@ -7,18 +6,18 @@ Jan Ilavsky, ilavsky@aps.anl.gov ************************************ This set of macros is developed for data reduction of USAXS data obtained on APS USAXS instrument beamline instrument. -It runs on Wavemetrics Igor Pro version 7.05 and higher. +It runs on Wavemetrics Igor Pro version 8.03 and higher. Modification history: _____________________________________________________________________________________ -1.975 beta +1.98 9/3/2020 Require Igor 8.03 or higher. Added "Smart select Blank" for selection of Blank measured BEFORE the sample measurements. -DataBrowser - Igor 8 - dded Buttons to display w1 vs w2 and extract info from USAXS Folder name strings. Same tools are in Igor 9 right click. +DataBrowser - Igor 8 - added Buttons to display w1 vs w2 and extract info from USAXS Folder name strings. Same tools are in Igor 9 right click. Added for every graph right click option to export as jpg and pxp. Also to duplicate graph (which Igor does on ctrl/cmd-D) but with duplicate of all data in the graph. 1D graphs only. Added new samplePlate tool for users to prepare command files. - +Working on step scan data reduction from BlueSky, it is not tested yet. Needs another round of development of both data collection and code development. 1.97 2/9/2020 diff --git a/User Procedures/Irena/IR1_Loader.ipf b/User Procedures/Irena/IR1_Loader.ipf index 9c45cd4d..3c9489e6 100644 --- a/User Procedures/Irena/IR1_Loader.ipf +++ b/User Procedures/Irena/IR1_Loader.ipf @@ -1,7 +1,6 @@ #pragma rtGlobals = 3 // Use strict wave reference mode and runtime bounds checking -//#pragma rtGlobals=2 // Use modern global access method. -#pragma IgorVersion=7.05 //requires Igor version 7.00 or higher -#pragma version=2.24 +#pragma IgorVersion=8.03 //requires Igor version 8.03 or higher +#pragma version=2.25 //*************************************************************************\ //* Copyright (c) 2005 - 2020, Argonne National Laboratory @@ -9,6 +8,7 @@ //* in the file LICENSE that is included with this distribution. //*************************************************************************/ +//2.25 September2020 release //2.24 added IRB1_bioSAXS, removed absolute paths to these included files. //2.23 February 2020 release //2.22 added 3DSupportFunctions, February 2019 @@ -47,26 +47,26 @@ //this function loads the modeling of Distribution modeling macros... //these should be all in /User Procedures/Irena folder -#include "IR1_CromerLiberman", version>=2.05 //cannot be rtG=1, runtime error in Cromer_Get_fp -#include "IR1_DataManipulation", version>=2.68 +#include "IR1_CromerLiberman", version>=2.05 //cannot be rtG=1, runtime error in Cromer_Get_fp +#include "IR1_DataManipulation", version>=2.70 #include "IR1_Desmearing", version>=2.13 #include "IR1_EvaluationGraph", version>=2.11 #include "IR1_FormFactors", version>=2.29 -#include "IR1_Fractals", version>=2.10 +#include "IR1_Fractals", version>=2.11 #include "IR1_ImportData", version>=2.40 -#include "IR1_Main", version>=2.69 +#include "IR1_Main", version>=2.70 #include "IR1_PlotingToolI", version >=2.34 #include "IR1_PlotingToolI2", version >=2.24 #include "IR1_ScattContrast", version>=2.27 #include "IR1_Sizes", version>=2.31 -#include "IR1_UnifiedFitFncts", version>=2.33 -#include "IR1_UnifiedFitPanel", version>=2.26 +#include "IR1_UnifiedFitFncts", version>=2.34 +#include "IR1_UnifiedFitPanel", version>=2.27 #include "IR2_AnalyticalModels", version>=4.16 -#include "IR2_DataExport", version>=1.13 -#include "IR2_DataMiner", version >=1.13 -#include "IR2_ModelingMain", version>=1.31 +#include "IR2_DataExport", version>=1.14 +#include "IR2_DataMiner", version >=1.14 +#include "IR2_ModelingMain", version>=1.32 #include "IR2_ModelingSupport", version>=1.51 -#include "IR2_PanelCntrlProcs", version>=1.53 +#include "IR2_PanelCntrlProcs", version>=1.61 #include "IR2_PlotingToolII", version>=1.1 #include "IR2_Reflectivity", version >=1.21 #include "IR2_ScriptingTool", version>=1.30 @@ -78,19 +78,19 @@ #include "IR3_3DTwoPhaseSolid", version>=1.02 #include "IR3_Anisotropy", version>=1.00 #include "IR3_GuinierPorodModel", version>=1.11 -#include "IR3_MergingData", version>=1.19 +#include "IR3_MergingData", version>=1.20 #include "IR3_MultiDataPlot", version>=1 -#include "IR3_SimpleFits", version>=1.10 -#include "IR3_WAXSDiffraction", version>=1.14 +#include "IR3_SimpleFits", version>=1.11 +#include "IR3_WAXSDiffraction", version>=1.16 -#include "IRB1_bioSAXS", version>=0.1 -#include "IRB1_EvaluationTools", version>=0.5 +#include "IRB1_bioSAXS", version>=1 +#include "IRB1_EvaluationTools", version>=1.0 //these are in different folders... #include "cansasXML_GUI", version>=1.04 #include "cansasXML", version>=1.12 -#include "IN2_GeneralProcedures", version>=2.20 +#include "IN2_GeneralProcedures", version>=2.25 #include "IRNI_NexusSupport", version>=1.14 diff --git a/User Procedures/Irena/IR1_Main.ipf b/User Procedures/Irena/IR1_Main.ipf index 1f4135f3..331637ac 100644 --- a/User Procedures/Irena/IR1_Main.ipf +++ b/User Procedures/Irena/IR1_Main.ipf @@ -1,11 +1,11 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals = 3 // Use strict wave reference mode and runtime bounds checking -#pragma version=2.696 +#pragma version=2.70 #pragma IgorVersion=8.03 //DO NOT renumber Main files every time, these are main release numbers... //define manual date and release verison -constant CurrentIrenaVersionNumber = 2.696 +constant CurrentIrenaVersionNumber = 2.70 //*************************************************************************\ //* Copyright (c) 2005 - 2020, Argonne National Laboratory @@ -13,7 +13,7 @@ constant CurrentIrenaVersionNumber = 2.696 //* in the file LICENSE that is included with this distribution. //*************************************************************************/ -// Require Igor 8.03 and higher. No testing for Igor 7. +//2.70 Require Igor 8.03 and higher. No testing for Igor 7 anymore. //2.696 Beta version after February2020 release // New bioSAXS tools // New Metadata Browser tool @@ -234,6 +234,8 @@ Menu "SAS" Submenu "Help, About, Manuals, Remove Irena" "About", IR1_AboutPanel() help={"Get Panel with info about this release of Irena macros"} + "Open Readme", IR1_OpenReadme() + help={"Open notes about recent changes in the code. "} "Check for updates", IR2C_CheckIrenaUpdate(1) help={"Run Check for update and present citations to use in publications"} "Check Igor display size", IN2G_CheckForGraphicsSetting(1) @@ -381,7 +383,16 @@ end // further variables and strings can be added, but need to be added to control panel too... // see example in : IR1_LogLogPlotU() in this procedure file... - +Function IR1_OpenReadme() + DoWIndow IrenaReadme + if(V_Flag) + DoWIndow/F IrenaReadme + else + string PathToReadMe= RemoveListItem(ItemsInList(FunctionPath("IR1_OpenReadme"),":")-1, FunctionPath("IR1_OpenReadme"), ":") + PathToReadMe = PathToReadMe+"Modification history.txt" + OpenNotebook /K=1 /R /N=IrenaReadme /ENCG=3 /W=(20,20,720,600) /Z PathToReadMe + endif +end //*********************************************************** //*********************************************************** //*********************************************************** diff --git a/User Procedures/Irena/IR2_PDDF.ipf b/User Procedures/Irena/IR2_PDDF.ipf index 1a9ad966..3fff77ee 100644 --- a/User Procedures/Irena/IR2_PDDF.ipf +++ b/User Procedures/Irena/IR2_PDDF.ipf @@ -861,19 +861,19 @@ Function IR2Pr_SelectAndCopyData() //this function selects data to be used and - Duplicate/O $(DataFolderName+Intname), root:Packages:Irena_PDDF:IntensityOriginal //here goes original Intensity + Duplicate/O $(DataFolderName+possiblyQuoteName(Intname)), root:Packages:Irena_PDDF:IntensityOriginal //here goes original Intensity Redimension/D root:Packages:Irena_PDDF:IntensityOriginal - Duplicate/O $(DataFolderName+Intname), root:Packages:Irena_PDDF:Intensity //and its second copy, for fixing + Duplicate/O $(DataFolderName+possiblyQuoteName(Intname)), root:Packages:Irena_PDDF:Intensity //and its second copy, for fixing Redimension/D root:Packages:Irena_PDDF:Intensity - Duplicate/O $(DataFolderName+Qname), root:Packages:Irena_PDDF:Q_vec //Q vector + Duplicate/O $(DataFolderName+possiblyQuoteName(Qname)), root:Packages:Irena_PDDF:Q_vec //Q vector Redimension/D root:Packages:Irena_PDDF:Q_vec - Duplicate/O $(DataFolderName+Qname), root:Packages:Irena_PDDF:Q_vecOriginal //second copy of the Q vector + Duplicate/O $(DataFolderName+possiblyQuoteName(Qname)), root:Packages:Irena_PDDF:Q_vecOriginal //second copy of the Q vector Redimension/D root:Packages:Irena_PDDF:Q_vecOriginal - Wave/Z ErrorOrg=$(DataFolderName+Ename) + Wave/Z ErrorOrg=$(DataFolderName+possiblyQuoteName(Ename)) if(WaveExists(ErrorOrg)) - Duplicate/O $(DataFolderName+Ename), root:Packages:Irena_PDDF:Errors //errors + Duplicate/O $(DataFolderName+possiblyQuoteName(Ename)), root:Packages:Irena_PDDF:Errors //errors Redimension/D root:Packages:Irena_PDDF:Errors - Duplicate/O $(DataFolderName+Ename), root:Packages:Irena_PDDF:ErrorsOriginal + Duplicate/O $(DataFolderName+possiblyQuoteName(Ename)), root:Packages:Irena_PDDF:ErrorsOriginal Redimension/D root:Packages:Irena_PDDF:ErrorsOriginal // UseNoErrors = 0 UseUserErrors=1 diff --git a/User Procedures/Irena/IRB1_EvaluationTools.ipf b/User Procedures/Irena/IRB1_EvaluationTools.ipf index e6c5feea..be6f6033 100644 --- a/User Procedures/Irena/IRB1_EvaluationTools.ipf +++ b/User Procedures/Irena/IRB1_EvaluationTools.ipf @@ -1,6 +1,6 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method and strict wave access. -#pragma version=0.5 +#pragma version=1.0 #pragma IgorVersion = 8.03 @@ -12,6 +12,7 @@ //functions for bioSAXS community // //version summary +//1.0 September2020 release //0.5 Jully 2020 version, first working version. //0.1 early version, June 2020 diff --git a/User Procedures/Irena/IRB1_bioSAXS.ipf b/User Procedures/Irena/IRB1_bioSAXS.ipf index 275cc01c..b82fe22a 100644 --- a/User Procedures/Irena/IRB1_bioSAXS.ipf +++ b/User Procedures/Irena/IRB1_bioSAXS.ipf @@ -1,6 +1,6 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method and strict wave access. -#pragma version=0.5 +#pragma version=1.0 #pragma IgorVersion = 8.03 @@ -16,6 +16,7 @@ constant IRB1_PDDFInterfaceVersion = 0.1 //IRB1_PDDFInterfaceFunction versio //functions for bioSAXS community // //version summary +//1.0 September2020 release //0.5 July 2020 version //0.2 Beta version June 2020 //0.1 early beta version @@ -2596,9 +2597,9 @@ Function IRB1_PDDFRunGNOM() Abort "Cannot find properly datgnom executable, something is worng here. Report as bug to author, please" endif //now export the data file. - Wave/Z SourceIntWv=$(DataFolderName+IntensityWaveName) - Wave/Z SourceQWv=$(DataFolderName+QWavename) - Wave/Z SourceErrorWv=$(DataFolderName+ErrorWaveName) + Wave/Z SourceIntWv=$(DataFolderName+possiblyQuoteName(IntensityWaveName)) + Wave/Z SourceQWv=$(DataFolderName+possiblyQuoteName(QWavename)) + Wave/Z SourceErrorWv=$(DataFolderName+possiblyQuoteName(ErrorWaveName)) if(!WaveExists(SourceIntWv)||!WaveExists(SourceQWv)||!WaveExists(SourceErrorWv)) Abort "Cannot find QRS data to export" endif @@ -2978,10 +2979,10 @@ Function IRB1_PDDFAppendOneDataSet(FolderNameStr) IRB1_PDDFResetValsToPrevStale () //get the names of waves, assume this tool actually works. May not under some conditions. In that case this tool will not work. IR3C_SelectWaveNamesData("Irena:PDDFInterface", FolderNameStr) //this routine will preset names in strings as needed, DataFolderName = DataStartFolder+FolderNameStr - Wave/Z SourceIntWv=$(DataFolderName+IntensityWaveName) - Wave/Z SourceQWv=$(DataFolderName+QWavename) - Wave/Z SourceErrorWv=$(DataFolderName+ErrorWaveName) - Wave/Z SourcedQWv=$(DataFolderName+dQWavename) + Wave/Z SourceIntWv=$(DataFolderName+possiblyQuoteName(IntensityWaveName)) + Wave/Z SourceQWv=$(DataFolderName+possiblyQuoteName(QWavename)) + Wave/Z SourceErrorWv=$(DataFolderName+possiblyQuoteName(ErrorWaveName)) + Wave/Z SourcedQWv=$(DataFolderName+possiblyQuoteName(dQWavename)) if(!WaveExists(SourceIntWv)|| !WaveExists(SourceQWv)||!WaveExists(SourceErrorWv)) Abort "Data selection failed for Data" endif diff --git a/User Procedures/Irena/Modification history.txt b/User Procedures/Irena/Modification history.txt index e36d4249..b00c3eaf 100755 --- a/User Procedures/Irena/Modification history.txt +++ b/User Procedures/Irena/Modification history.txt @@ -1,16 +1,15 @@ - ****** I r e n a ******* Jan Ilavsky, ilavsky@aps.anl.gov ************************************ This set of macros is developed for analysis data of USAXS, SAXS, and WAXS data from various instruments. -It runs on Wavemetrics Igor Pro version 7.05 and higher. +It runs on Wavemetrics Igor Pro version 8.03 and higher. Modification history: ******************************************** -2.262 (beta) +2.70 Require Igor 8.03 or higher. DataBrowser - Igor 8 - added Buttons to display w1 vs w2 and extract info from USAXS Folder name strings. Same tools are in Igor 9 right click. Added for every graph right click option to export as jpg and pxp. Also to duplicate graph (which Igor does on ctrl/cmd-D) but with duplicate of all data in the graph. 1D graphs only. @@ -19,10 +18,11 @@ WAXS - added "Distance correction" for sticks. Tweaks calculated 2Theta angle us Fractals - added optional use of Unified Fit Sphere form factor. This removes high-q Bessel function oscillations which are nto reasonable for most cases. Added Multi Data Plot tool, new tool to plot quickly many data sets. New ipf file... Added Metadata Browser tool, enables relatively easy extraction of values from metadata in wave notes. -Added Basic fits tool, new tool and new capabilities. Guinier, Porod, Sphere and Spheroid, more to coem as needed +Added Basic fits + Simple Analysis tool, new tool and new capabilities. Guinier, Porod, Sphere and Spheroid, more to coem as needed Added group of bioSAS tools - specialized simple import, data averaging and buffer subtraction, etc. Linked to menu also some existing tools for other functions bioSAS needs. tools: Import ASCII, Average/Subtract/Scale tool, and PDDF + Molecular weight calculator. Uses ATSAS to get PDDF. - +Added Concentration series extrapolation tool, it is BioSAXs tool. +Many smaller fixes. 2.69 2/9/2020 3D models - added new set of tools : 3DAggregate, 2PhaseSolid and support for import of data from SAXSMorph (POV) and ATSAS (PDB) for visualization diff --git a/User Procedures/Irena_CalcSavedCompounds/FeSi0.03.dat b/User Procedures/Irena_CalcSavedCompounds/FeSi0.03.dat new file mode 100644 index 00000000..ff883929 --- /dev/null +++ b/User Procedures/Irena_CalcSavedCompounds/FeSi0.03.dat @@ -0,0 +1 @@ +NumberOfAtoms=2;Density=7.5;ScattContrXrays=NaN;NeutronsScatlengthDens=NaN;UseWeightPercent=0;WeightPercentBalanceElem=0;El1_type=Fe;El1_content=0.97;El1_Isotope=natural;El2_type=Si;El2_content=0.03;El2_Isotope=natural; \ No newline at end of file diff --git a/User Procedures/Nika/Modification history.txt b/User Procedures/Nika/Modification history.txt index c92a610a..0b46acb7 100755 --- a/User Procedures/Nika/Modification history.txt +++ b/User Procedures/Nika/Modification history.txt @@ -1,25 +1,23 @@ - **** N i k a ****** Jan Ilavsky, ilavsky@aps.anl.gov ************************************ - This set of macros is developed for data reduction of SAXS and WAXS area detector data. -It runs on Wavemetrics Igor Pro version 7.05 and higher. +It runs on Wavemetrics Igor Pro version 8.03 and higher. Modification history: ******************************************** -1.822 beta +1.83 Require Igor 8.03 or higher. -DataBrowser - Igor 8 - dded Buttons to display w1 vs w2 and extract info from USAXS Folder name strings. Same tools are in Igor 9 right click. +DataBrowser - Igor 8 - added Buttons to display w1 vs w2 and extract info from USAXS Folder name strings. Same tools are in Igor 9 right click. Added for every graph right click option to export as jpg and pxp. Also to duplicate graph (which Igor does on ctrl/cmd-D) but with duplicate of all data in the graph. 1D graphs only. Main panel - change sorting option "_001". This will now look from the end of name for first number. This si to help with NSLS samples names MyName_00001_waxs.ext etc. Will work for normal files Myname_0001.ext also. -Attempt to fix NXcanSAS data importer. WIP, no data to test against. Fixed problem with Sector graph sometimes looking weird - apparently ImageLineProfile sometimes makes different point numbers and this needs to be accounted for. -Add Sector graph which accounts for tilts, requested by Josh. +Add Sector graph which accounts for tilts, requested by user. +Fixed/modified Calibrated 2D data canSAS/nexus input, needed by SMI instrument from NSLS-II. 1.82 - 2/9/2020 Many tools - changed code compiler instruction to rtGLobals=3, this is less forgiving compile which prevents more accidental bugs, but may generate new errors in old code. Report as many errors as possible to author, please. diff --git a/User Procedures/Nika/NI1_FileLoaders.ipf b/User Procedures/Nika/NI1_FileLoaders.ipf index 266b327c..0a3e9232 100755 --- a/User Procedures/Nika/NI1_FileLoaders.ipf +++ b/User Procedures/Nika/NI1_FileLoaders.ipf @@ -3924,7 +3924,7 @@ Function NI1_ReadCalibCanSASNexusFile(PathName, FileNameToLoad, NewWaveName) string PathName, FileNameToLoad, NewWaveName //this part of the code reads content by grabbing it from the file directly. - string FileContent=NI1_ReadNexusCanSAS(PathName, FileNameToLoad) + string FileContent=NI1_ListNexusCanSASContent(PathName, FileNameToLoad) variable fileID, UsedQXY, UsedAzimAngle, UnbinnedQx, UnbinnedQy, HaveMask, HaveErrors, i string TempStr, TempStr1, TempQWaveList TempQWaveList = "" @@ -4011,9 +4011,14 @@ Function NI1_ReadCalibCanSASNexusFile(PathName, FileNameToLoad, NewWaveName) endif //now, these Qx, Qy loaded here as Qx2D and Qy2D should really be vectors per definition. They could also be 2D images with Qx, Qy, and Qz... if(WaveDims(Qx2D)<2) //assume the others follow or this makes no sense... - reverse Qx2D /D=rQx2D //I think this is related to transpising the above images to make them same orientation as in Python. + //I think this is related to transposing the above images to make them same orientation as in Python. + wavestats Qx2D + wavestats Qy2D + reverse Qx2D /D=rQx2D reverse Qy2D /D=rQy2D - Wave CCDImageToConvert + //MatrixOp/O rQx2D = Qx2D + //MatrixOp/O rQy2D = Qy2D + Wave CCDImageToConvert Duplicate/Free CCDImageToConvert, tempQx2D, tempQy2D, tempQz2D //if(stringMatch(TempQWaveList,"QyQx")) if(QxIndex==0 && QyIndex==1) @@ -4062,6 +4067,12 @@ Function NI1_ReadCalibCanSASNexusFile(PathName, FileNameToLoad, NewWaveName) Wavestats/Q Q2DWave BeamCenterX = V_minRowLoc BeamCenterY = V_minColLoc + //need to make sure az wave has 0 to the rigth side... + if(AnglesWave [V_minRowLoc][DimSize(AnglesWave, 1 )-3] >0.2) //this should be pretty much 0, this is left from beam ceneter, 0 direction in NIka's terminology + AnglesWave -= pi/2 + AnglesWave = Qx2D > 0 ? AnglesWave : AnglesWave+pi + endif + //now we need to deal with metadata. This is stupid, but lets use 1D system where data are loaded in Igor and pouched from Igor string NewFileDataLocation = NEXUS_ImportAFile(PathName, FileNameToLoad) //import file as HFD5 in Igor if(strlen(NewFileDataLocation)<1) @@ -4213,7 +4224,7 @@ end //************************************************************************************************* //************************************************************************************************* -Function/S NI1_ReadNexusCanSAS(PathName, FileNameToLoad) +static Function/S NI1_ListNexusCanSASContent(PathName, FileNameToLoad) string PathName, FileNameToLoad variable GroupID @@ -4340,7 +4351,7 @@ Function/S NI1_ReadNexusCanSAS(PathName, FileNameToLoad) endfor HDF5CloseFile fileID if(strlen(DataIdentification)<5) - abort "Do not understand canSAS version/data in NI1_ReadNexusCanSAS" + abort "Do not understand canSAS version/data in NI1_ListNexusCanSASContent" endif return DataIdentification end diff --git a/User Procedures/Nika/NI1_Main.ipf b/User Procedures/Nika/NI1_Main.ipf index 262c9480..18cccf83 100755 --- a/User Procedures/Nika/NI1_Main.ipf +++ b/User Procedures/Nika/NI1_Main.ipf @@ -1,11 +1,11 @@ #pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method. -#pragma version=1.826 +#pragma version=1.83 #pragma IgorVersion=8.03 //DO NOT renumber Main files every time, these are main release numbers... -constant CurrentNikaVersionNumber = 1.826 +constant CurrentNikaVersionNumber = 1.83 constant FixBackgroundOversubScale=1.05 //this is used to fix oversubtracted background. Adds FixBackgroundOversubScale*abs(V_min) to all intensity value. constant NikaNumberOfQCirclesDisp=15 //*************************************************************************\ @@ -14,19 +14,20 @@ constant NikaNumberOfQCirclesDisp=15 //* in the file LICENSE that is included with this distribution. //*************************************************************************/ -// require Igor 8.03 now. Not testing Igor 7 anymore. +//1.83 require Igor 8.03 now. Not testing Igor 7 anymore. +// Improve NXcanSAS 2D calibrated data import for NSLS-SMI beamline. //1.826 Beta version after February2020 release //1.82 rtGlobal=3 forced for all // Added support for 12ID-C data. // Add print in history which version has compiled, Useful info later when debugging. //1.81 December 2018 release. Updated 64bit xops, mainly for OSX. // Added 12ID-C support, first release. -//1.80 Official Igor 8 release, Fixed NEXUS exporter to save data which are easily compatible with sasView. sasView has serious limitations on what it can accept as input NXcanSAS nexus data. +//1.80 Official Igor 8 release, Fixed NEXUS exporter to save data which are easily compatible with sasView. sasView has serious limitations on what it can accept as input NXcanSAS nexus data. // Removed range selection controls and moved Save data options to its own tab "Save" // Added ImageStatistics and control for user for delay between series of images. // Added font type and size control from configuration to be used for CCD image label. // Added ability to fix negative intensities oversubtraction. Checkbox on Empty tab and if checked, ~1.5*abs(V_min) is added to ALL points intensities. -//1.79 Converted all procedure files to UTF8 to prevent text encoding issues. +//1.79 Converted all procedure files to UTF8 to prevent text encoding issues. // Modified main interface to have radio buttons and only one button for action. This makes cleaner interface as some controls can be hidden. Unluckily, panel is now higher by 20 points. // Added support for ALS SRoXS soft energy beamline. // Improved 9IDC USAXS support. @@ -134,6 +135,8 @@ Menu "SAS 2D" help={"Closes all Panels and windows from Nika. "} "Check Igor display size", IN2G_CheckForGraphicsSetting(1) help={"Check if current display area is suitable for the code"} + "Open Readme", NI1_OpenReadme() + help={"Open notes about recent changes in the code. "} "About", NI1_AboutPanel() help={"Get Panel with info about this release of Nika macros"} // "---" @@ -256,6 +259,16 @@ Function NI1_KillGraphsAndPanels() end ////***************************************************************************************************************** +Function NI1_OpenReadme() + DoWIndow NikaReadme + if(V_Flag) + DoWIndow/F NikaReadme + else + string PathToReadMe= RemoveListItem(ItemsInList(FunctionPath("NI1_OpenReadme"),":")-1, FunctionPath("NI1_OpenReadme"), ":") + PathToReadMe = PathToReadMe+"Modification history.txt" + OpenNotebook /K=1 /R /N=NikaReadme /ENCG=3 /W=(20,20,720,600) /Z PathToReadMe + endif +end ////***************************************************************************************************************** ////***************************************************************************************************************** //***************************************************************************************************************** diff --git a/User Procedures/Nika/NI1_loader.ipf b/User Procedures/Nika/NI1_loader.ipf index 94e97644..d28fa7a6 100755 --- a/User Procedures/Nika/NI1_loader.ipf +++ b/User Procedures/Nika/NI1_loader.ipf @@ -1,6 +1,6 @@ #pragma rtGlobals=3 // Use modern global access method. //#pragma rtGlobals=1 // Use modern global access method. -#pragma IgorVersion=7.05 //requires Igor version 7.05 or higher +#pragma IgorVersion=8.03 //requires Igor version 8.03 or higher #pragma version=1.802 @@ -15,23 +15,23 @@ // 1.80 February 2020 release #include "NI1_BeamCenterUtils",version>=2.29 -#include "NI1_ConvProc", version>=2.69 +#include "NI1_ConvProc", version>=2.70 #include "NI1_DNDCATsupport",version>=1.12 -#include "NI1_FileLoaders",version>=2.51 +#include "NI1_FileLoaders",version>=2.52 #include "NI1_FITSLoader",version>=2.17 #include "NI1_HDF5Browser",version>=1.01 #include "NI1_InstrumentSupport",version>=1.22 #include "NI1_LineProfile", version>=2.07 -#include "NI1_Main", version>=1.82 -#include "NI1_MainPanel", version>=2.68 +#include "NI1_Main", version>=1.83 +#include "NI1_MainPanel", version>=2.69 #include "NI1_mask", version>=1.29 #include "NI1_pix2Dsensitivity",version>=1.07 #include "NI1_SaveRecallConfig", version>=1.03 -#include "NI1_SquareMatrix", version>=1.04 -#include "NI1_USAXSSupport",version>=1.51 +#include "NI1_SquareMatrix", version>=1.05 +#include "NI1_USAXSSupport",version>=1.52 #include "NI1_WinView",version>=1.87 -#include "IN2_GeneralProcedures", version>=2.20 +#include "IN2_GeneralProcedures", version>=2.25 #include "IRNI_NexusSupport", version>=1.14 diff --git a/User form factors for Irena/CoreShellEllipsoidsForIrena.ipf b/User form factors for Irena/CoreShellEllipsoidsForIrena.ipf index 28878410..a4b6fbad 100644 --- a/User form factors for Irena/CoreShellEllipsoidsForIrena.ipf +++ b/User form factors for Irena/CoreShellEllipsoidsForIrena.ipf @@ -20,13 +20,13 @@ //************************************************************************************************* //USE in Irena : //In Modeling II select User form factor -//In panel put in "Name of ForFactor function this string: IR1T_EllipsoidalCoreShell +//In panel put in "Name of FormFactor function this string: IR1T_EllipsoidalCoreShell //In Panel put in Name of volume FF function this string: IR1T_EllipsoidalVolume // // Par1 is the aspect ratio which for ellipsoids are defiend as rotational objects with dimensions R x R x AR*R, note, AR=1 may fail. -// par 2 is shell thickness in A, and it is the same thickness everywhere on teh ellipsoid. +// par2 is shell thickness in A, and it is the same thickness everywhere on the ellipsoid. // par3, 4 and 5 are contrasts as this is core shell system and contrasts are part of the form factor. -// par3, 4 and 5 are implicitelyu multipled by 10^10cm^-2, so insert only a number. These are rhos not, delta-rho-square +// par3, 4 and 5 are implicitely multiplied by 10^10cm^-2, so insert only a number. These are rhos not, delta-rho-square // In main panel set contrast = 1 !!!!! //************************************************************************************************* //************************************************************************************************* @@ -75,7 +75,7 @@ Function IR1T_EllipsoidalCoreShell(Qval,radius, par1,par2,par3,par4,par5) // IR1T_EllispodalVolume(radius, par1, par2,par3,par4,par5)/1e8 // oblatevol = IR1T_OblateVolume(trmaj, AspectRatio) // answer /= oblatevol -- this is needs to be taken out, Irena does its own volumehandling here... - // also creect for their conversion to [A-1] to [cm-1] + // also correct for their conversion to [A-1] to [cm-1] // answer *= 1.0e8 // not needed, set to 1 scale // answer *= scale @@ -172,22 +172,15 @@ static Function IR1T_fOblateForm(w,x) : FitFunc if(nfn ==1) //then // "f1" required for beta factor if(npro ==1) //then // prolate zi = ( z76[ii]*(vb-va) + vb + va )/2.0 -// yyy = w76[ii]*gfn1(zi,crmaj,crmin,trmaj,trmin,delpc,delps,qq) Endif -// if(npro ==0) //then // oblate zi = ( z76[ii]*(vb-va) + vb + va )/2.0 -// yyy = w76[ii]*gfn3(zi,crmaj,crmin,trmaj,trmin,delpc,delps,qq) Endif Endif //nfn = 1 - // - if(nfn !=1) //then //calculate"f2" = = averaged form factor + if(nfn !=1) //then //calculate"f2" = = averaged form factor if(npro ==1) //then //prolate zi = ( z76[ii]*(vb-va) + vb + va )/2.0 -// yyy = w76[ii]*gfn2(zi,crmaj,crmin,trmaj,trmin,delpc,delps,qq) - //printf "yyy = %g\r",yyy Endif -// if(npro ==0) //then //oblate zi = ( z76[ii]*(vb-va) + vb + va )/2.0 yyy = w76[ii]*IR1T_gfn4(zi,crmaj,crmin,trmaj,trmin,delpc,delps,qq) @@ -197,8 +190,7 @@ static Function IR1T_fOblateForm(w,x) : FitFunc summ = yyy + summ // get running total of integral ii+=1 while (ii