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.

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

License

Apache 2.0

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


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.9.0.tar.gz (76.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for pybsm-0.9.0.tar.gz
Algorithm Hash digest
SHA256 47aa88c7f0fde2cf886c6844c5fd1d7406a672c4e53c300051dbf752bfa7d826
MD5 9f6bc2323f27e1ba2d4a925d2610333d
BLAKE2b-256 7e3195e506986020211de02c097694ce0acafeb8f355abeb63a0878898cb4ea4

See more details on using hashes here.

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

Hashes for pybsm-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a56614e2161dd93ead5c1480c600e9b014ccacea21314ff98e553999855ea51
MD5 a9a7a965fc19ea4d99b63d3603df4a7e
BLAKE2b-256 4bb74b0878dbe143b04363c8cda36de6d35263ef0b6f5bb8877bb1141ff363b9

See more details on using hashes here.

Supported by

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