Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIVA presubmission #223

Closed
4 of 16 tasks
pudeIko opened this issue Dec 16, 2024 · 2 comments
Closed
4 of 16 tasks

PIVA presubmission #223

pudeIko opened this issue Dec 16, 2024 · 2 comments

Comments

@pudeIko
Copy link

pudeIko commented Dec 16, 2024

Submitting Author: Wojciech Radoslaw Pudelko (@pudeIko)
Package Name: PIVA
One-Line Description of Package: Visualization and analysis toolkit for experimental data from Angle-Resolved Photoemission Spectroscopy (ARPES)
Repository Link (if existing): https://github.com/pudeIko/piva
EiC: Szymon Molinski (@SimonMolinsky )


Code of Conduct & Commitment to Maintain Package

Description

  • Include a brief paragraph describing what your package does:

PIVA (Photoemission Interface for Visualization and Analysis) is a GUI application designed for the interactive and intuitive exploration of large, image-like datasets. While it accommodates the visualization of any multidimensional data, its features are specifically optimized for researchers conducting Angle-Resolved Photoemission Spectroscopy (ARPES) experiments. In addition to numerous image processing tools and the ability to apply technique-specific corrections, PIVA includes an expanding library of functions and methods for detailed fitting and advanced spectral analysis.

Community Partnerships

We partner with communities to support peer review with an additional layer of
checks that satisfy community requirements. If your package fits into an
existing community please check below:

Scope

  • Please indicate which category or categories this package falls under:

    • Data retrieval
    • Data extraction
    • Data processing/munging
    • Data deposition
    • Data validation and testing
    • Data visualization
    • Workflow automation
    • Citation management and bibliometrics
    • Scientific software wrappers
    • Database interoperability

Domain Specific

  • Geospatial
  • Education

  • Explain how and why the package falls under these categories (briefly, 1-2 sentences). For community partnerships, check also their specific guidelines as documented in the links above. Please note any areas you are unsure of:

Data extraction: Within the ARPES community, it is common for each beamline and lab to use their own file formats and conventions, which means one often need a custom script to get everything into a common format. To handle these discrepancies, PIVA comes with a data_loaders module that converts them into a standardized Dataset object. The current version includes specific Dataloader classes implemented for numerous sources and beamlines around the world.

Data visualization: The package enables efficient and intuitive exploration of large, image-like datasets. It includes specialized interactive viewers designed to handle 2D, 3D, and 4D datasets, depending on the experimental mode or conditions under which they were collected.

  • Who is the target audience and what are the scientific applications of this package?

Experimental physicists conducting ARPES measurements. The package provides a comprehensive framework addressing most of the experimenter's needs, including data extraction, inspection, validation, and detailed analysis.

  • Are there other Python packages that accomplish similar things? If so, how does yours differ?

Regarding software tailored for ARPES, two notable packages are ARPES Python Tools and PyARPES. However, they differ significantly from PIVA.

The visualization module in the former is limited to generating static plots and lacks any interactive features.

The latter is focused on post-processing and detailed analysis of the spectra, and is different in the following respects:

  • interactive exploration and browsing through data is either restricted to 2D data, or conducted inside the Jupyter environment, which highly affects efficiency and makes working with multiple datasets simultaneously difficult.
  • Viewers designed for 4D datasets are not implemented.
  • PIVA's data_loader module contains richer library of data loading scripts for different light sources around the world.

Furthermore, PyARPES has not been maintained for several years.

  • Any other questions or issues we should be aware of:
    • Along with the submission, a manuscript on the PIVA package is included, which is intended to be considered for publication in the Journal of Open Source Software.

P.S. Have feedback/comments about our review process? Leave a comment here

@SimonMolinsky
Copy link
Collaborator

SimonMolinsky commented Dec 26, 2024

Hi @pudeIko !

Thanks for submitting the PIVA package to pyOpenSci! Your package is definitively within the scope of pyOpenSci, and it contains mostly everything required for a package in our ecosystem. We are waiting for your submission, but first, you should address three issues:

  1. automatic testing: consider using GitHub Actions to run automated tests whenever a specific branch is updated or you publish a new release of the package (how to: https://www.pyopensci.org/python-package-guide/tests/tests-ci.html )
  2. you should also move the build from setup.py to pyproject.toml - this is the example that might be useful: https://www.pyopensci.org/python-package-guide/tutorials/setup-py-to-pyproject-toml.html
  3. README lacks information. Here is the guidance for reviewers. I've marked missing parts of the PIVA README:

The README should include, from top to bottom:

  • The package name

  • Badges for:

    • Continuous integration and test coverage,
    • Docs building (if you have a documentation website),
    • A repostatus.org badge,
    • Python versions supported,
    • Current package version (on PyPI / Conda).
  • Short description of package goals.

  • Package installation instructions

  • Any additional setup required to use the package (authentication tokens, etc.)

  • Descriptive links to all vignettes. If the package is small, there may only be a need for one vignette which could be placed in the README.md file.

    • Brief demonstration of package usage (as it makes sense - links to vignettes could also suffice here if the package description is clear)
  • Link to your documentation website.

  • If applicable, how the package compares to other similar packages and/or how it relates to other packages in the scientific ecosystem.

  • Citation information


When you add CI/CD tests, change the structure from setup.py-based to pyproject.toml, and add missing README parts then feel free to submit PIVA. If you have any more questions, please continue the discussion here!

If you plan to submit your package to JOSS, you should first submit it to pyOpenSci. We perform primarily technical/engineering checks, and your package is fast-tracked to JOSS, where reviewers focus on the scientific aspects.

@pudeIko
Copy link
Author

pudeIko commented Jan 4, 2025

Hi @SimonMolinsky,
Thank you for taking the time to evaluate my project and for providing valuable feedback. I’m thrilled to hear that the package aligns with the scope of PyOpenSci!

I’ve implemented the requested changes and believe the package is now ready, so I’ll proceed with the submission.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: pre-submission
Development

No branches or pull requests

2 participants