Difference between revisions of "Software"

From GISAXS
Jump to: navigation, search
(General)
(General EM field)
 
(50 intermediate revisions by 2 users not shown)
Line 15: Line 15:
 
* '''NeXpy''': [[Python]] GUI for working with the [[NeXus data format]].
 
* '''NeXpy''': [[Python]] GUI for working with the [[NeXus data format]].
 
** [https://nexpy.github.io/nexpy/ Official site.]
 
** [https://nexpy.github.io/nexpy/ Official site.]
 +
* '''pycxdgui''': Very simple viewer for area images.
 +
** [https://github.com/CFN-softbio/pycxdgui Code available on github.]
 
* '''[[view.gtk]]''': A simple interface for viewing 2D data, calibrating your data into ''q''-space, and extracting linecuts. Written by Lin Yang for the [[X9]] beamline at [[NSLS]]. Installation requires (free) GTK libraries.
 
* '''[[view.gtk]]''': A simple interface for viewing 2D data, calibrating your data into ''q''-space, and extracting linecuts. Written by Lin Yang for the [[X9]] beamline at [[NSLS]]. Installation requires (free) GTK libraries.
 
** Citation:  L. Yang, [http://journals.iucr.org/s/issues/2013/02/00/issconts.html Using an in-vacuum CCD detector for simultaneous small- and wide-angle scattering at beamline X9] ''J. Synchrotron Rad.'' '''2013''', 20, 211. [http://dx.doi.org/10.1107/S0909049512048984 doi: 10.1107/S0909049512048984]
 
** Citation:  L. Yang, [http://journals.iucr.org/s/issues/2013/02/00/issconts.html Using an in-vacuum CCD detector for simultaneous small- and wide-angle scattering at beamline X9] ''J. Synchrotron Rad.'' '''2013''', 20, 211. [http://dx.doi.org/10.1107/S0909049512048984 doi: 10.1107/S0909049512048984]
Line 20: Line 22:
 
* '''[[pyXS]]''': Python scripts (with C++ backend) for performing analysis of 2D data.
 
* '''[[pyXS]]''': Python scripts (with C++ backend) for performing analysis of 2D data.
 
** [http://www.bnl.gov/ps/x9/software/pyXS.asp Official site.]
 
** [http://www.bnl.gov/ps/x9/software/pyXS.asp Official site.]
 +
* '''[[SciAnalysis]]''': Python scripts for analysis of 2D x-ray scattering data. Well-suited to batch analysis of many files.
 +
** [https://github.com/CFN-softbio/SciAnalysis Code available on github.]
 
* '''[[GIXSGUI]]''': Visualization and reduction package for GISAXS. Requires the commerical Matlab software. Written by Zhang Jiang ([[APS]]).
 
* '''[[GIXSGUI]]''': Visualization and reduction package for GISAXS. Requires the commerical Matlab software. Written by Zhang Jiang ([[APS]]).
 
** Citation: Z. Jiang [http://scripts.iucr.org/cgi-bin/paper?S1600576715004434 GIXSGUI: a MATLAB toolbox for grazing-incidence X-ray scattering data visualization and reduction, and indexing of buried three-dimensional periodic nanostructured films] ''J. Appl. Cryst.'' '''2015''', 48, 3, 917-926. [http://dx.doi.org/10.1107/S1600576715004434 doi: 10.1107/S1600576715004434]
 
** Citation: Z. Jiang [http://scripts.iucr.org/cgi-bin/paper?S1600576715004434 GIXSGUI: a MATLAB toolbox for grazing-incidence X-ray scattering data visualization and reduction, and indexing of buried three-dimensional periodic nanostructured films] ''J. Appl. Cryst.'' '''2015''', 48, 3, 917-926. [http://dx.doi.org/10.1107/S1600576715004434 doi: 10.1107/S1600576715004434]
** [https://www1.aps.anl.gov/Sectors/Sector-8/8-ID/Operations-and-Schedules/Useful-Links/Sector-8-GIXSGUI Official site.]
+
** [https://www.aps.anl.gov/Sector-8/8-ID/Operations-and-Schedules/Useful-Links/Sector-8-GIXSGUI Official site.]
 
* '''[[GISAXSshop]]''': 2D visualization and reduction for GISAXS. Requires the Igor (Wavemetrics). Written by Byeongdu Lee ([[APS]]).
 
* '''[[GISAXSshop]]''': 2D visualization and reduction for GISAXS. Requires the Igor (Wavemetrics). Written by Byeongdu Lee ([[APS]]).
 
** [https://sites.google.com/site/byeongdu/software Official site.]
 
** [https://sites.google.com/site/byeongdu/software Official site.]
* '''Xi Cam''': Robust GUI (pyQT based) and libraries for analyzing 2D scattering images. Developed at LBNL in connection with the [http://www.camera.lbl.gov/ CAMERA] project.
+
* '''Xi-Cam''': Robust GUI (pyQT based) and libraries for analyzing 2D scattering images. Developed at LBNL in connection with the [http://www.camera.lbl.gov/ CAMERA] project.
 +
** Citation: Pandolfi, R.J.; Hexemer, A.; et al. [http://journals.iucr.org/s/issues/2018/04/00/xe5032/index.html#BB14 Xi-cam: a versatile interface for data visualization and analysis] ''J. Syncr. Rad.'' '''2018''', 25 (4), 1261-1270. [https://doi.org/10.1107/S1600577518005787 doi: 10.1107/S1600577518005787]
 
** [http://www.camera.lbl.gov/#!xi-cam-interface/z8vcm Official site.]
 
** [http://www.camera.lbl.gov/#!xi-cam-interface/z8vcm Official site.]
  
Line 37: Line 42:
 
* '''DPDAK''': Open-source Python tool for analyzing large sets of SAXS data. Works on Linux and Windows.
 
* '''DPDAK''': Open-source Python tool for analyzing large sets of SAXS data. Works on Linux and Windows.
 
** [https://dpdak.desy.de/index.php/Hauptseite Official site.]
 
** [https://dpdak.desy.de/index.php/Hauptseite Official site.]
 +
* '''SAS-cam''': SAXS data reduction, using the [https://bio.tools/sastbx SASTBX package].
 +
** Citation: H. Wu, Y. Li, G. Liu, H. Liu and N. Li [http://scripts.iucr.org/cgi-bin/paper?ei5058 SAS-cam: a program for automatic processing and analysis of small-angle scattering data] ''J. Appl. Cryst.'' '''2020''', 53, 1147-1153. [https://doi.org/10.1107/S1600576720008985 doi: 10.1107/S1600576720008985]
  
 
==Data Modeling and Fitting==
 
==Data Modeling and Fitting==
Line 63: Line 70:
 
* '''pySAXS''': Package and GUI for SAXS analysis.
 
* '''pySAXS''': Package and GUI for SAXS analysis.
 
** [http://iramis.cea.fr/en/Phocea/Vie_des_labos/Ast/ast_sstechnique.php?id_ast=1799 Official site.]
 
** [http://iramis.cea.fr/en/Phocea/Vie_des_labos/Ast/ast_sstechnique.php?id_ast=1799 Official site.]
 +
* '''[[ScatterSim]]''': [[Python]] code for simulating the one-dimensional curve (circular average) for [[Lattices of nano-objects|nanoparticle superlattices]].
 +
** Citation: [[Yager, K.G.]]; Zhang, Y.; Lu, F.; Gang, O. "[http://scripts.iucr.org/cgi-bin/paper?S160057671302832X Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems]" ''Journal of Applied Crystallography'' '''2014''', 47, 118–129. [http://dx.doi.org/10.1107/S160057671302832X doi: 10.1107/S160057671302832X]
 +
*** See also [[Paper:Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems|summary of paper]].
 +
** [https://github.com/CFN-softbio/ScatterSim Code available on github.]
  
 
===[[BioSAXS]]===
 
===[[BioSAXS]]===
Line 68: Line 79:
 
** [http://www.bioisis.net/tutorial/9 Official site.]
 
** [http://www.bioisis.net/tutorial/9 Official site.]
 
* '''BioXTAS RAW''': Simple program for performing 1D [[Guinier plot|Guinier analysis]] for [[BioSAXS]] data. (Provided by [[CHESS]].)
 
* '''BioXTAS RAW''': Simple program for performing 1D [[Guinier plot|Guinier analysis]] for [[BioSAXS]] data. (Provided by [[CHESS]].)
 +
** Citation: J. B. Hopkins, R. E. Gillilan and S. Skou [http://scripts.iucr.org/cgi-bin/paper?ge5036 BioXTAS RAW: improvements to a free open-source program for small-angle X-ray scattering data reduction and analysis] ''J. Appl. Cryst.'' '''2017''', 50 [https://doi.org/10.1107/S1600576717011438 doi: 10.1107/S1600576717011438]
 
** [http://bioxtasraw.sourceforge.net/ Official site], [http://sourceforge.net/projects/bioxtasraw/ download].
 
** [http://bioxtasraw.sourceforge.net/ Official site], [http://sourceforge.net/projects/bioxtasraw/ download].
 
* '''[[ATSAS]]''': A suite of tools for small-angle scattering data of biological macromolecules.
 
* '''[[ATSAS]]''': A suite of tools for small-angle scattering data of biological macromolecules.
 
** Citation: P. V. Konarev, M. V. Petoukhov, V. V. Volkov and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889806004699 ATSAS 2.1, a program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2006''', 39, 277. [http://dx.doi.org/10.1107/S0021889806004699 doi: 10.1107/S0021889806004699]
 
** Citation: P. V. Konarev, M. V. Petoukhov, V. V. Volkov and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889806004699 ATSAS 2.1, a program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2006''', 39, 277. [http://dx.doi.org/10.1107/S0021889806004699 doi: 10.1107/S0021889806004699]
 
** Citation: M. V. Petoukhov, D. Franke, A. V. Shkumatov, G. Tria, A. G. Kikhney, M. Gajda, C. Gorba, H. D. T. Mertens, P. V. Konarev and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889812007662 New developments in the ATSAS program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2012''', 45, 342, [http://dx.doi.org/10.1107/S0021889812007662 doi: 10.1107/S0021889812007662]
 
** Citation: M. V. Petoukhov, D. Franke, A. V. Shkumatov, G. Tria, A. G. Kikhney, M. Gajda, C. Gorba, H. D. T. Mertens, P. V. Konarev and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889812007662 New developments in the ATSAS program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2012''', 45, 342, [http://dx.doi.org/10.1107/S0021889812007662 doi: 10.1107/S0021889812007662]
 +
** Citation: D. Franke, M. V. Petoukhov, P. V. Konarev, A. Panjkovich, A. Tuukkanen, H. D. T. Mertens, A. G. Kikhney, N. R. Hajizadeh, J. M. Franklin, C. M. Jeffries and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?ge5042 ATSAS 2.8: a comprehensive data analysis suite for small-angle scattering from macromolecular solutions] ''J. Appl. Cryst.'' '''2017''', 50 [https://doi.org/10.1107/S1600576717007786 doi: 10.1107/S1600576717007786]
 
** [http://www.embl-hamburg.de/biosaxs/software.html Official site.]
 
** [http://www.embl-hamburg.de/biosaxs/software.html Official site.]
 
* '''Biomachina''': Visualization of low-resolution bead-based models of proteins from SAXS data.
 
* '''Biomachina''': Visualization of low-resolution bead-based models of proteins from SAXS data.
Line 77: Line 90:
 
* '''ScatterBrain''': Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron.
 
* '''ScatterBrain''': Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron.
 
** [http://www.synchrotron.org.au/index.php/aussyncbeamlines/saxswaxs/software-saxswaxs Official site.]
 
** [http://www.synchrotron.org.au/index.php/aussyncbeamlines/saxswaxs/software-saxswaxs Official site.]
 +
 +
===[[CD-SAXS]]===
 +
* [https://bitbucket.org/dkumar75/cd-gisaxs/src/master/ cd-gisaxs]
 +
* [https://github.com/CEA-MetroCarac/cdsaxs CEA-MetroCarac/cdsaxs] (includes GPU parallelization)
  
 
===[[GISAXS]]===
 
===[[GISAXS]]===
Line 83: Line 100:
 
** [http://www.insp.jussieu.fr/oxydes/IsGISAXS/isgisaxs.htm Official site.]
 
** [http://www.insp.jussieu.fr/oxydes/IsGISAXS/isgisaxs.htm Official site.]
 
* '''FitGISAXS''': DWBA modeling. Requires commercial IgorPro software.
 
* '''FitGISAXS''': DWBA modeling. Requires commercial IgorPro software.
 +
** Citation: Babonneau, D. [http://scripts.iucr.org/cgi-bin/paper?hx5104 FitGISAXS: software package for modelling and analysis of GISAXS data using IGOR Pro] ''J. Appl. Cryst.'' '''2010''', 43(4), 929–936. [https://doi.org/10.1107/S0021889810020352 doi: 10.1107/S0021889810020352]
 
** [http://www.pprime.fr/?q=fr/nanoparticules-nanostructures Official site.]
 
** [http://www.pprime.fr/?q=fr/nanoparticules-nanostructures Official site.]
 
* '''NANOCELL''': Simulates 2D diffraction patterns from single-crystals for GISAXS/GISANS geometry
 
* '''NANOCELL''': Simulates 2D diffraction patterns from single-crystals for GISAXS/GISANS geometry
Line 89: Line 107:
 
* '''[[BornAgain]]''': Python/C++ implementation of DWBA modeling (similar to IsGISAXS, but more modern and with lots of extensions). Allows for polarized [[GISANS]] and GISAXS simulation and fitting. Available on Linux, MacOS and Windows. Written by the [http://apps.jcns.fz-juelich.de/doku/sc/start Scientific Computing Group] at [http://www.mlz-garching.de/ MLZ Garching].
 
* '''[[BornAgain]]''': Python/C++ implementation of DWBA modeling (similar to IsGISAXS, but more modern and with lots of extensions). Allows for polarized [[GISANS]] and GISAXS simulation and fitting. Available on Linux, MacOS and Windows. Written by the [http://apps.jcns.fz-juelich.de/doku/sc/start Scientific Computing Group] at [http://www.mlz-garching.de/ MLZ Garching].
 
** Citation: C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke (2015), BornAgain - Software for simulating and fitting X-ray and neutron small-angle scattering at grazing incidence, http://www.bornagainproject.org
 
** Citation: C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke (2015), BornAgain - Software for simulating and fitting X-ray and neutron small-angle scattering at grazing incidence, http://www.bornagainproject.org
 +
** Citation: G. Pospelov, W. Van Herck, J. Burle, J. M. Carmona Loaiza, C. Durniak, J. M. Fisher, M. Ganeva, D. Yurov and J. Wuttke [https://scripts.iucr.org/cgi-bin/paper?ge5067 BornAgain: software for simulating and fitting grazing-incidence small-angle scattering] ''J. Appl. Cryst.'' '''2020''',  53, 262-276. [https://doi.org/10.1107/S1600576719016789 doi: 10.1107/S1600576719016789]
 
** [http://www.bornagainproject.org/ Official site.]
 
** [http://www.bornagainproject.org/ Official site.]
 
* '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data.
 
* '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data.
Line 100: Line 119:
 
** Citation: A.K. Hailey, A.M. Hiszpanski, D.-M. Smilgies and Y.-L. Loo [http://scripts.iucr.org/cgi-bin/paper?fs5084 The Diffraction Pattern Calculator (DPC) toolkit: a user-friendly approach to unit-cell lattice parameter identification of two-dimensional grazing-incidence wide-angle X-ray scattering data] ''Journal of Applied Crystallography'' '''2014''', 47. [http://dx.doi.org/10.1107/S1600576714022006 doi: 10.1107/S1600576714022006]
 
** Citation: A.K. Hailey, A.M. Hiszpanski, D.-M. Smilgies and Y.-L. Loo [http://scripts.iucr.org/cgi-bin/paper?fs5084 The Diffraction Pattern Calculator (DPC) toolkit: a user-friendly approach to unit-cell lattice parameter identification of two-dimensional grazing-incidence wide-angle X-ray scattering data] ''Journal of Applied Crystallography'' '''2014''', 47. [http://dx.doi.org/10.1107/S1600576714022006 doi: 10.1107/S1600576714022006]
 
** [http://www.princeton.edu/cbe/people/faculty/loo/group/software Official site.]
 
** [http://www.princeton.edu/cbe/people/faculty/loo/group/software Official site.]
 +
* '''Indexing''': Python code for overlaying peak positions for a particular unit cell on a detector image.
 +
** Code available on [https://github.com/esther279/Indexing github].
  
 
===[[Reflectivity]]===
 
===[[Reflectivity]]===
Line 123: Line 144:
 
** [http://genx.sourceforge.net/ Official site.]
 
** [http://genx.sourceforge.net/ Official site.]
 
* '''Aurore''': Open source Matlab code for neutron reflectivity, including error estimates.
 
* '''Aurore''': Open source Matlab code for neutron reflectivity, including error estimates.
** Citation: Y. Gerelli [http://scripts.iucr.org/cgi-bin/paper?rg5094 Aurore: new software for neutron reflectivity data analysis] ''J. Appl. Cryst.'' '''2016''', 49, 330-339. [http://dx.doi.org/10.1107/S1600576716000108 10.1107/S1600576716000108]
+
** Citation: Y. Gerelli [http://scripts.iucr.org/cgi-bin/paper?rg5094 Aurore: new software for neutron reflectivity data analysis] ''J. Appl. Cryst.'' '''2016''', 49, 330-339. [http://dx.doi.org/10.1107/S1600576716000108 doi: 10.1107/S1600576716000108]
 
** [https://sourceforge.net/projects/aurorenr/ Official site.]
 
** [https://sourceforge.net/projects/aurorenr/ Official site.]
 +
* '''Web Reflectivity Calculator''': Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity.
 +
** [https://www.ncnr.nist.gov/instruments/magik/calculators/reflectivity-calculator.html Available online.]
 +
** Citation: Brian B. Maranville [http://nvlpubs.nist.gov/nistpubs/jres/122/jres.122.034.pdf Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity] ''Journal of Research of National Institute of Standards and Technology'' '''2017''', 122, 1-6. [https://doi.org/10.6028/jres.122.034 doi: 10.6028/jres.122.034]
 +
* '''refnx''': Python reflectivity code.
 +
** [https://github.com/refnx/refnx Available on github]
 +
** Citation:  A.R.J. Nelson and S.W. Prescott [http://scripts.iucr.org/cgi-bin/paper?rg5158 refnx: neutron and X-ray reflectometry analysis in Python] ''J. Appl. Cryst.'' '''2019'''. [https://doi.org/10.1107/S1600576718017296 doi: 10.1107/S1600576718017296]
 +
* '''Multifitting''': Reflectivity calculations for multilayer systems
 +
** Citation: M. Svechnikov [http://scripts.iucr.org/cgi-bin/paper?te5051 Multifitting: software for the reflectometric reconstruction of multilayer nanofilms] ''J. Appl. Cryst.'' '''2019''' [https://doi.org/10.1107/S160057671901584X doi: 10.1107/S160057671901584X]
 +
* '''MLReflect''': Machine-learning method for reflectivity curves
 +
** [https://mlreflect.readthedocs.io/en/latest/ Docs] and [https://github.com/schreiber-lab/mlreflect/tree/master code]
 +
** Citation: [https://arxiv.org/abs/2202.11609 arxiv]
  
 
===[[Crystallography]]===
 
===[[Crystallography]]===
Line 137: Line 169:
 
** Toby, B. H., & Von Dreele, R. B. [http://scripts.iucr.org/cgi-bin/paper?S0021889813003531 GSAS-II: the genesis of a modern open-source all purpose crystallography software package] ''Journal of Applied Crystallography'' '''2013''', 46(2), 544-549. [http://dx.doi.org/10.1107/S0021889813003531 doi: 10.1107/S0021889813003531]
 
** Toby, B. H., & Von Dreele, R. B. [http://scripts.iucr.org/cgi-bin/paper?S0021889813003531 GSAS-II: the genesis of a modern open-source all purpose crystallography software package] ''Journal of Applied Crystallography'' '''2013''', 46(2), 544-549. [http://dx.doi.org/10.1107/S0021889813003531 doi: 10.1107/S0021889813003531]
 
** [https://subversion.xor.aps.anl.gov/trac/pyGSAS Official site.]
 
** [https://subversion.xor.aps.anl.gov/trac/pyGSAS Official site.]
 +
* '''Jana2006''': Reconstruct electron density modulation from powder or single-crystal data.
 +
** Citations: Petricek, V., Dusek, M. & Palatinus, L. Crystallographic Computing System JANA2006: General features ''Z. Kristallogr.'' '''2014''', 229(5), 345-352. [10.1515/zkri-2014-1737 doi: 10.1515/zkri-2014-1737]
 +
** [http://jana.fzu.cz/ Official site.]
 +
* '''τompas''': TEM online multi-purpose analyzing system
 +
** Citation: R.-X. Xie and W.-Z. Zhang [http://scripts.iucr.org/cgi-bin/paper?ks5644 τompas: a free and integrated tool for online crystallographic analysis in transmission electron microscopy] ''J. Appl. Cryst.'' '''2020''', 53. [https://doi.org/10.1107/S1600576720000801 doi: 10.1107/S1600576720000801]
 +
* '''UnitCell Tools''': Determine unit-cell parameters from a single electron diffraction pattern.
 +
** Citation: Hong-Long Shi and Zi-An Li [https://journals.iucr.org/m/issues/2021/05/00/gq5014/index.html UnitCell Tools, a package to determine unit-cell parameters from a single electron diffraction pattern] ''IUCrJ'' '''2020''' [https://doi.org/10.1107/S2052252521007867 doi: 10.1107/S2052252521007867]
 +
 +
==Explicit Simulation==
 +
Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc.
 +
===X-rays===
 +
These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material:
 +
* '''SRW''' (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from [[synchrotron]] sources (e.g. [[undulator]]).
 +
** [https://www.esrf.fr/Accelerators/Groups/InsertionDevices/Software/SRW Official site.]
 +
* '''Shadow''': X-ray optics simulation package for coherent x-ray wavefront propagation simulations​​.
 +
** Citation: Niccolo Canestrari, Oleg Chubar and Manuel Sanchez del Rio [https://iopscience.iop.org/article/10.1088/1742-6596/425/16/162007 Improved models for synchrotron radiation sources in SHADOW] ''J. Phys.: Conf. Ser.'' '''2013''', 425 162007. [http://dx.doi.org/10.1088/1742-6596/425/16/162007 doi: 10.1088/1742-6596/425/16/162007]
 +
* '''WPG''' (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating [[XFEL]]
 +
** [https://wpg.readthedocs.io/en/stable/wpg.html Docs.]
 +
** [https://github.com/samoylv/WPG Code.]
 +
* '''McXtrace''': Monte-Carlo ray tracing (based on [https://www.mcstas.org/ McStas] neutron ray-tracing package).
 +
** [https://www.mcxtrace.org/ Official site.]
 +
** [https://github.com/McStasMcXtrace Code.]
 +
* '''xrt (XRayTracer)''': Python library for ray-tracing and wave propagation.
 +
** [https://xrt.readthedocs.io/ Docs.]
 +
===General EM field===
 +
* [https://github.com/flaport/fdtd Python 3D FDTD Simulator]
 +
* [https://github.com/kc-ml2/meent Meent]
 +
* [https://github.com/stefanmeili/FastFD FastFD]
 +
* [https://www.comsol.com/ COMSOL multiphysics]
 +
* [https://pypi.org/project/macromax/ Macromax] Maxwell solver
 +
* [https://jcmwave.com/ JCMWave] JCMSuite
  
 
==Computing [[Materials]] Properties==
 
==Computing [[Materials]] Properties==
Line 150: Line 213:
 
* '''DANSE Periodic Table''': Python library for x-ray and neutron elemental scattering properties.
 
* '''DANSE Periodic Table''': Python library for x-ray and neutron elemental scattering properties.
 
** [http://www.reflectometry.org/danse/elements.html Official site].
 
** [http://www.reflectometry.org/danse/elements.html Official site].
 +
 +
==Synchrotron==
 +
* '''[https://github.com/silx-kit/silx SILX]''': Data reading/writing for synchrotron data formats.
 +
* '''[https://nsls-ii.github.io/bluesky/ BlueSky]''': Instrument control, including data saving into a database and access via databroker.
  
 
==General==
 
==General==
 +
* '''MultiSciView''': Web-based tool for looking at arbitrary arrays of 2D image data. Convenient for looking at scattering images arranged based on metadata (coordinates, annealing history, etc.).
 +
** Citation: [https://www.sciencedirect.com/science/article/pii/S2468502X18300093 MultiSciView: Multivariate Scientific X-ray Image Visual Exploration with Cross-Data Space Views] ''Visual Informatics'' '''2018''', 1(2), 14-25 [http://dx.doi.org/10.1016/j.visinf.2018.04.003 doi: 10.1016/j.visinf.2018.04.003]
 +
* '''SciStreams''': Simple workflow/pipeline software (building on [http://dask.pydata.org/en/latest/ Dask] and [https://github.com/mrocklin/streams Streams]), intended for asynchronous and distributed computations at a beamline.
 +
** [https://github.com/CFN-softbio/SciStreams Code available on github.]
 
* '''ParaView''': Generalized GUI for visualizing scientific data, such as 3D images (uses [[Python]] and QT).
 
* '''ParaView''': Generalized GUI for visualizing scientific data, such as 3D images (uses [[Python]] and QT).
 
** [http://www.paraview.org/ Official site.]
 
** [http://www.paraview.org/ Official site.]
Line 161: Line 232:
  
 
==Custom==
 
==Custom==
It is of course possible to code your own software for modeling or fitting scattering data. This is not as difficult as it may at first seem. The fundamental scattering equations are well-known (c.f. [[scattering]], [[Fourier transform]], [[Form Factor]], [[Structure Factor]], [[Lattice Factor]]), and can be brute-force solved numerical. Or, they can be solved (or simplified) analytically for a particular case. Many modern programming languages provide libraries for numerical integration, fitting, minimizing multi-dimensional parameter spaces, etc. (e.g. [[Python]] is particularly clean and powerful).
+
It is of course possible to code your own software for modeling or fitting scattering data. This is not as difficult as it may at first seem. The fundamental scattering equations are well-known (c.f. [[scattering]], [[Fourier transform]], [[Form Factor]], [[Structure Factor]], [[Lattice Factor]]), and can be brute-force solved numerically. Or, they can be solved (or simplified) analytically for a particular case. Many modern programming languages provide libraries for numerical integration, fitting, minimizing multi-dimensional parameter spaces, etc. (e.g. [[Python]] is particularly clean and powerful).
  
 
==See Also==
 
==See Also==

Latest revision as of 10:01, 1 October 2024

A common question for new GISAXS users is: "What software can I use to analyze my data?" Unfortunately, there is no single package that will allow you to perform any possible analysis. This is in part due to the diversity of possible kinds of data analysis one might want to do on GISAXS or GIWAXS images. The following lists a variety of packages that are available.

Data Viewing, Reduction, and Simple Analysis

These packages provide ways to view data, and perform simple operations (linecuts, etc.).

Geared towards 2D data

Geared towards 1D data

Data Modeling and Fitting

These packages can predict scattering curves for various possible nano- or molecular- structures. Some of the packages allow fitting of experimental data.

SAXS

BioSAXS

CD-SAXS

GISAXS

Reflectivity

Crystallography

Explicit Simulation

Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc.

X-rays

These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material:

  • SRW (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from synchrotron sources (e.g. undulator).
  • Shadow: X-ray optics simulation package for coherent x-ray wavefront propagation simulations​​.
  • WPG (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating XFEL
  • McXtrace: Monte-Carlo ray tracing (based on McStas neutron ray-tracing package).
  • xrt (XRayTracer): Python library for ray-tracing and wave propagation.

General EM field

Computing Materials Properties

Synchrotron

  • SILX: Data reading/writing for synchrotron data formats.
  • BlueSky: Instrument control, including data saving into a database and access via databroker.

General

Custom

It is of course possible to code your own software for modeling or fitting scattering data. This is not as difficult as it may at first seem. The fundamental scattering equations are well-known (c.f. scattering, Fourier transform, Form Factor, Structure Factor, Lattice Factor), and can be brute-force solved numerically. Or, they can be solved (or simplified) analytically for a particular case. Many modern programming languages provide libraries for numerical integration, fitting, minimizing multi-dimensional parameter spaces, etc. (e.g. Python is particularly clean and powerful).

See Also