pyBSM is a Python-based tool for sensor modeling. It provides common components useful for simulating the image formation process through different imaging systems.
Project description
pyBSM
pyBSM is a Python-based tool for sensor modeling. It provides common components useful for simulating the image formation process through different imaging systems.
This repo builds off of the work done by LeMaster and Eismann in creating the original pyBSM package for modeling image systems [1] as well as LeMaster, et al. in their work in validating the pyBSM package [2].
NOTE: A set of functions which infer OTFs from user data has been removed from the current distribution of pyBSM. They are archived under the v0.7.0 tag if they are needed.
Installation
The following steps assume the source tree has been acquired locally.
Install the current version via pip:
pip install pybsm
Alternatively, you can also use Poetry:
poetry install --sync --with dev-linting,dev-testing,dev-docs
See here for more installation documentation.
Installing using the previous commands will not install OpenCV. While pyBSM will still function, there are a handful of functions that require OpenCV.
There are two options for installing pyBSM with OpenCV: graphics or headless. Graphics will install opencv-python
as the OpenCV implementation while headless will install opencv-python-headless
as the OpenCV implementation.
To install pybsm with opencv-python
- using pip:
pip install pybsm[graphics]
- using Poetry
poetry install --sync --with dev-linting,dev-testing,dev-docs --extras graphics
To install pybsm with opencv-python-headless
- using pip:
pip install pybsm[headless]
- using Poetry
poetry install --sync --with dev-linting,dev-testing,dev-docs --extras headless
Getting Started
We provide a number of examples based on Jupyter notebooks in the
./examples/
directory to show usage of the pybsm
package in a number
of different contexts.
Contributions are welcome! See the CONTRIBUTING.md file for details.
Documentation
Documentation snapshots for releases as well as the latest master are hosted on ReadTheDocs.
The sphinx-based documentation may also be built locally for the most up-to-date reference:
# Install dependencies
poetry install --sync --with dev-linting,dev-testing,dev-docs
# Navigate to the documentation root.
cd docs
# Build the docs.
poetry run make html
# Open in your favorite browser!
firefox _build/html/index.html
Developer tools
pre-commit hooks
pre-commit hooks are used to ensure that any code meets all linting and
formatting guidelines required. After installing, this will always run before
committing to ensure that any commits are following the standards, but you
can also manually run the check without committing. If you want to commit
despite there being errors, you can add --no-verify
to your commit command.
Installing pre-commit hooks:
# Ensure that all dependencies are installed
poetry install --sync --with dev-linting,dev-testing,dev-docs
# Initialize pre-commit for the repository
poetry run pre-commit install
# Run pre-commit check on all files
poetry run pre-commit run --all-files
Contributing
- We follow the general guidelines outlined in the JATIC Design Principles.
- We use the Git Flow branching strategy.
- See docs/release_process.rst for detailed release information.
- See CONTRIBUTING.md for additional contributing information.
License
Contacts
Principal Investigator: Brian Hu (Kitware) @brian.hu
Product Owner: Austin Whitesell (MITRE) @awhitesell
Scrum Master / Tech Lead: Brandon RichardWebster (Kitware) @b.richardwebster
Deputy Tech Lead: Emily Veenhuis (Kitware) @emily.veenhuis
References
[1] LeMaster, Daniel A., and Michael T. Eismann. ‘pyBSM: A Python Package for Modeling Imaging Systems’. Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, edited by Eric J. Kelmelis, vol. 10204, 2017, p. 1020405, https://doi.org10.1117/12.2262561. Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series.
[2] LeMaster, Daniel, et al. Validating pyBSM: A Python Package for Modeling Imaging Systems. 05 2018, p. 19, https://doi.org10.1117/12.2305228.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pybsm-0.9.0.tar.gz
.
File metadata
- Download URL: pybsm-0.9.0.tar.gz
- Upload date:
- Size: 76.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.9.20 Linux/6.5.0-1021-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47aa88c7f0fde2cf886c6844c5fd1d7406a672c4e53c300051dbf752bfa7d826 |
|
MD5 | 9f6bc2323f27e1ba2d4a925d2610333d |
|
BLAKE2b-256 | 7e3195e506986020211de02c097694ce0acafeb8f355abeb63a0878898cb4ea4 |
File details
Details for the file pybsm-0.9.0-py3-none-any.whl
.
File metadata
- Download URL: pybsm-0.9.0-py3-none-any.whl
- Upload date:
- Size: 77.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.9.20 Linux/6.5.0-1021-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a56614e2161dd93ead5c1480c600e9b014ccacea21314ff98e553999855ea51 |
|
MD5 | a9a7a965fc19ea4d99b63d3603df4a7e |
|
BLAKE2b-256 | 4bb74b0878dbe143b04363c8cda36de6d35263ef0b6f5bb8877bb1141ff363b9 |