Giter Club home page Giter Club logo

iris-ued's Introduction

Iris - Ultrafast Electron Scattering Data Exploration

Documentation Build Status PyPI Version Conda-forge Version DOI badge

Iris is both a library for interacting with ultrafast electron diffraction data, as well as a GUI frontend for interactively exploring this data.

Iris also includes a plug-in manager so that you can explore your data.

Two instances of the iris GUI showing data exploration for ultrafast electron diffraction of single crystals and polycrystals.

Contents:

Installation

To interact with iris datasets from a Python environment, the iris package must be installed. iris is available on PyPI; it can be installed with pip.:

python -m pip install iris-ued

iris is also available on the conda-forge channel:

conda config --add channels conda-forge
conda install iris-ued

To install the latest development version from Github:

python -m pip install git+git://github.com/LaurentRDC/iris-ued.git

Each version is tested against Python 3.8+. If you are using a different version, tests can be run using the pytest package.

Windows Installers

For Windows, installers are available on the Releases page. You will still need to install iris via pip or conda to use the scripting functionality.

Usage

Once installed, the package can be imported as iris.

The GUI component can be launched from a command line interpreter as python -m iris or pythonw -m iris (no console window). See the documentation for a visual guide.

Documentation

The Documentation on readthedocs.io provides API-level documentation, as well as tutorials.

Citations

If you find this software useful, please consider citing the following publication:

L. P. René de Cotret, M. R. Otto, M. J. Stern. and B. J. Siwick, An open-source software ecosystem for the interactive exploration of ultrafast electron scattering data, Advanced Structural and Chemical Imaging 4:11 (2018) DOI: 10.1186/s40679-018-0060-y.

If you are using the baseline-removal functionality of iris-ued, please consider citing the following publication:

L. P. René de Cotret and B. J. Siwick, A general method for baseline-removal in ultrafast electron powder diffraction data using the dual-tree complex wavelet transform, Struct. Dyn. 4 (2017) DOI: 10.1063/1.4972518.

Support / Report Issues

All support requests and issue reports should be filed on Github as an issue.

License

iris is made available under the GPLv3 License. For more details, see LICENSE.txt.

iris-ued's People

Contributors

kremeyer avatar laurentrdc avatar msternie avatar trbritt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

iris-ued's Issues

Q^2 norm

Hi Dingbat,

Add Q^2 norm function, perhaps in makes sense to do this during the symmetrization so that the center is defined.

Martimus Prime

Iris gui crash on ROI click in single diffraction image window

After loading a diffraction image from TIFF file and clicking the ROI button in the dialog displaying the image, the program crashes trying to access the "tVals" attribute (which a single diffraction image presumably does not have).

--- COMMAND LINE OUTPUT ---
(base) C:\Users\krecinic>python -m iris
C:\userprograms\anaconda3\lib\site-packages\h5py_init_.py:36: FutureWarning:
Conversion of the second argument of issubdtype from float to np.floating is
deprecated. In future, it will be treated as np.float64 == np.dtype(float).typ e.
from ._conv import register_converters as _register_converters
Traceback (most recent call last):
File "C:\userprograms\anaconda3\lib\site-packages\pyqtgraph\imageview\ImageVie
w.py", line 531, in roiClicked
self.roiChanged()
File "C:\userprograms\anaconda3\lib\site-packages\pyqtgraph\imageview\ImageVie
w.py", line 572, in roiChanged
self.roiCurve.setData(y=data, x=self.tVals)
AttributeError: 'ImageView' object has no attribute 'tVals'

Issues with loading dataset

Version / Platform Info

  • iris-ued version: 5.3.4
  • Happens in latest version? (Yes/No): Yes
  • Known Operating System(s) affected__: Windows 10 & 11
    • Windows
    • Linux
    • Mac OS
  • Installation method: conda install and git clone
    • Windows installer
    • pip
    • conda

Expected Behavior

I have issues with loading dataset (hdf5). I have successfully used iris-ued before and experienced issues only recently. When I load dataset using gui it gives following error:

C:\Users\sumit\Documents\iris-ued\iris\gui\controller.py:38: UserWarning: Traceback (most recent call last):
File "C:\Users\sumit\Documents\iris-ued\iris\gui\controller.py", line 32, in aware_func
return func(self, *args, **kwargs)
File "C:\Users\sumit\Documents\iris-ued\iris\gui\controller.py", line 611, in load_dataset
self.dataset = cls(path, mode="r+")
File "C:\Users\sumit\Documents\iris-ued\iris\dataset.py", line 130, in init
self._migration_checks()
File "C:\Users\sumit\Documents\iris-ued\iris\dataset.py", line 140, in _migration_checks
self._autocenter()
File "C:\Users\sumit\Documents\iris-ued\iris\dataset.py", line 53, in newf
return f(self, *args, **kwargs)
File "C:\Users\sumit\Documents\iris-ued\iris\dataset.py", line 870, in _autocenter
raise ValueError(
ValueError: There is not enough data to determine a center; all valid pixels have zero intensity.

This error was present for dataset which were being loaded without any error.

Request: Cite iris on pyqtgraph poster board session at SciPy 2023

Hello iris maintainers,

PyQtGraph maintainer here, sorry for the noise on your issue tracker, I didn't know how else to reach out to you all.

We would like permission to use a screenshot of iris on our poster board session at SciPy this coming week. Yes, it's next week, yes this is last minute, yes, we did not plan far enough in advance 😅

We would of course site your project with the screenshot, but I wanted to get your permission before doing so. If you'd like to continue this discussion, not on github, my contact information is in my github user profile, feel free to contact me by whatever means is easiest.

The screenshot in your README is 🔥 🔥 🔥

Pattern alignment for single crystals is hit-or-miss

For performance reasons, the function diff_register has a crop = True parameter that can crop images before alignment. This makes sense for polycrystals (as they are very symmetric everywhere) but fails for some single crystal patterns.

The idea would be to add an option before processing, either Fast or Thorough.

Iris crashes on start-up (cannot import Crystal from skued)

Iris, skued and crystals was installed with pip3 (on "Linux Mint 19.1 Tessa")
pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
python3 --version
Python 3.6.7

Command line error:

Traceback (most recent call last):
  File "/home/krecinic/.local/bin/iris", line 7, in <module>
    from iris.gui import run
  File "/home/krecinic/.local/lib/python3.6/site-packages/iris/gui/__init__.py", line 17, in <module>
    from .gui import Iris, IMAGE_FOLDER
  File "/home/krecinic/.local/lib/python3.6/site-packages/iris/gui/gui.py", line 18, in <module>
    from .calibrate_q_dialog import QCalibratorDialog
  File "/home/krecinic/.local/lib/python3.6/site-packages/iris/gui/calibrate_q_dialog.py", line 9, in <module>
    from skued import Crystal, powder_calq
ImportError: cannot import name 'Crystal'

Loading raw dataset

error:
Traceback (most recent call last): File "C:\Miniconda3\lib\site-packages\iris\gui\controller.py", line 26, in aware_func return func(self, *args, **kwargs) File "C:\Miniconda3\lib\site-packages\iris\gui\controller.py", line 344, in load_raw_dataset self.raw_dataset = cls(path) File "C:\Miniconda3\lib\site-packages\iris\mcgill.py", line 28, in init metadata_dict = self.parse_metadata(join(source, 'metadata.cfg')) File "C:\Miniconda3\lib\site-packages\iris\mcgill.py", line 44, in parse_metadata exp_params = parser['EXPERIMENTAL PARAMETERS'] File "C:\Miniconda3\lib\configparser.py", line 959, in getitem raise KeyError(key) KeyError: 'EXPERIMENTAL PARAMETERS'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.