Skip to main content

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.

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.

Installation

pybsm installation has been tested on Unix and Linux systems.

To install the current version via pip:

pip install pybsm[<extra1>,<extra2>,...]

To install the current version via conda-forge:

conda install -c conda-forge pybsm

Certain plugins may require additional runtime dependencies. Details on these requirements can be found here.

For more detailed installation instructions, visit the installation documentation.

Getting Started

Explore usage examples of the pybsm package in various contexts using the Jupyter notebooks provided in the ./docs/examples/ directory.

Documentation

Documentation for both release snapshots and the latest main branch is available on ReadTheDocs.

To build the Sphinx-based documentation locally for the latest reference:

# Install dependencies
poetry install --sync --with main,linting,tests,docs
# Navigate to the documentation root
cd docs
# Build the documentation
poetry run make html
# Open the generated documentation in your browser
firefox _build/html/index.html

Contributing

Contributions are encouraged!

The following points help ensure contributions follow development practices.

Developer Tools

Ensure the source tree is acquired locally before proceeding.

Poetry Install

You can install using Poetry:

[!IMPORTANT] pyBSM currently requires poetry<2.0

[!WARNING] Users unfamiliar with Poetry should use caution. See installation documentation for more information.

poetry install --with main,linting,tests,docs --extras "<extra1> <extra2> ..."

Pre-commit Hooks

Pre-commit hooks ensure that code complies with required linting and formatting guidelines. These hooks run automatically before commits but can also be executed manually. To bypass checks during a commit, use the --no-verify flag.

To install and use pre-commit hooks:

# Install required dependencies
poetry install --sync --with main,linting,tests,docs
# Initialize pre-commit hooks for the repository
poetry run pre-commit install
# Run pre-commit checks on all files
poetry run pre-commit run --all-files

License

Apache 2.0

Contacts

Principal Investigator: Brian Hu (Kitware) @brian.hu

Project Manager / Product Owner: Keith Fieldhouse (Kitware) @keith.fieldhouse

Scrum Master / Maintainer: Brandon RichardWebster (Kitware) @b.richardwebster

Deputy Scrum Master / Deputy Maintainer: Emily Veenhuis (Kitware) @emily.veenhuis

Program Representative: Austin Whitesell (MITRE) @awhitesell

Acknowledgment

This material is based upon work supported by the Chief Digital and Artificial Intelligence Office under Contract No. 519TC-23-9-2032. The views and conclusions contained herein are those of the author(s) and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the U.S. Government.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybsm-0.14.1.tar.gz (76.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pybsm-0.14.1-py3-none-any.whl (77.8 MB view details)

Uploaded Python 3

File details

Details for the file pybsm-0.14.1.tar.gz.

File metadata

  • Download URL: pybsm-0.14.1.tar.gz
  • Upload date:
  • Size: 76.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.10.19 Linux/6.14.0-1011-aws

File hashes

Hashes for pybsm-0.14.1.tar.gz
Algorithm Hash digest
SHA256 d6f267ef3163bba94b805717dda67588db3a47ef8b28c72b0d19a08b0a7904c0
MD5 cef627847a7640ba784184a5d1d702fc
BLAKE2b-256 56495f33c4d8e6717049001fcb33a8f8ecd7b1fafd788ee7960bc71b23b5510e

See more details on using hashes here.

File details

Details for the file pybsm-0.14.1-py3-none-any.whl.

File metadata

  • Download URL: pybsm-0.14.1-py3-none-any.whl
  • Upload date:
  • Size: 77.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.10.19 Linux/6.14.0-1011-aws

File hashes

Hashes for pybsm-0.14.1-py3-none-any.whl
Algorithm Hash digest
SHA256 01f9a71e49e5ee6b32d89569621d8124b9760b000cf7b8789841f83c1f626ceb
MD5 23d2fdbee0ce54b8ad811f84647527e8
BLAKE2b-256 7d300cfbbed1f137cd9f8147333f3b645c8236e0acabe1cd64ae723fdab22b5c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page