Getting Started | Issues | Contribute | Citation | Authors
Shapelets is a Python package that implements several shapelet functions and some of their significant applications in science and astronomy. Shapelet functions are a complete and orthogonal set of localized basis functions with mathematical properties convenient for manipulation and analysis of images from a broad range of applications.
Due to these properties, they have seen extensive use in recent years, including:
- Astronomy/astrophysics (A. Refregier (2003), R. Massey (2005), J. Berge (2019))
- Self-assembled nanomaterials (R. Suderman (2015), T. Akdeniz (2018), M. P. Tino (2024))
- Computational neuroscience (J. D. Victor (2006), T. O. Sharpee (2009))
- Medical imaging (J. Weissman (2004))
The shapelets package provides reference code and documentation for 4 shapelet function definitions:
- Cartesian shapelets (A. Refregier (2003)),
- Polar shapelets (R. Massey (2005)),
- Orthonormal polar shapelets with constant radial scale (T. Akdeniz (2018)), and
- Exponential shapelets (J. Berge (2019))
If you have Python 3.10+ installed on your machine, you can install the shapelets package in the terminal via pip: pip install shapelets
If you do not have Python 3.10+ installed on your machine, consult the installation guide.
New users are also encouraged to visit the official website to understand how the shapelets package can be used along with detailed examples, custom terminal commands provided by the package, and more. Additionally, if you plan to use the shapelets package for your own work, please cite appropriately using the citation below.
If you encounter any bugs or problems with shapelets, please create a post using our package issue tracker. Please provide a clear and concise description of the problem, with images or code-snippets where appropriate. We will do our best to address these problems as fast and efficiently as possible.
The authors of the shapelets package welcome external contributions to the source code. This process will be easiest if users adhere to the contribution policy:
- Open an issue on the package issue tracker clearly describing your intentions on code modifications or additions
- Ensure your modifications or additions adhere to the existing standard of the shapelets package, specifically detailed documentation for new methods (see existing methods for example documentation)
- Test your modifications to ensure that the core functionality of the package has not been altered by running the unit tests via the entry point:
shapelets-test
- Once the issue has been discussed with a package author, you may open a pull request containing your code modifications
If you plan to use shapelets in your own work, please cite using the following Bibtex citation:
@article{TinoShapelets2024,
author = {Tino, Matthew Peres and Abdulaziz, Abbas Yusuf and Suderman, Robert and Akdeniz, Thomas and Abukhdeir, Nasser Mohieddin},
title = {Shapelets: A Python package implementing shapelet functions and their applications},
doi = {10.21105/joss.06058},
journal = {Journal of Open Source Software},
number = {95},
pages = {6058},
volume = {9},
year = {2024},
url = {https://joss.theoj.org/papers/10.21105/joss.06058}
}
- Matthew Peres Tino (mptino@uwaterloo.ca)
- Abbas Yusuf Abdulaziz
- Nasser Mohieddin Abukhdeir
- Robert Suderman
- Thomas Akdeniz