Skip to main content

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:

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.

Metadata

Release files for pybsm 0.16.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pybsm 0.16.1
File Size Uploaded
pybsm-0.16.1.tar.gz 76.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pybsm 0.16.1
File Interpreter ABI Platform
pybsm-0.16.1-py3-none-any.whl Python 3 none any Details

Total release size: 154.3 MB

Release files / pybsm-0.16.1.tar.gz

Download URL pybsm-0.16.1.tar.gz
Size 76.5 MB
Tags Source
SHA-256 checksum
How to use checksums
b198373d2de701bf48a8c0720c30d1435a3fb20899900c8b1a3d75d86c61a078
BLAKE2b-256 checksum
How to use checksums
f13237e2c5d808824d20263d18414b500de09655ba53977896c1d23f15d6b6de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.10.22 Linux/6.14.0-1011-aws

Release files / pybsm-0.16.1-py3-none-any.whl

Download URL pybsm-0.16.1-py3-none-any.whl
Size 77.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ad910922d0a33c033db2f29f0c80ebbfebe2870142c788de10bf5e8b74945ee9
BLAKE2b-256 checksum
How to use checksums
d42c5c52012aef3e2f26f80bcd1d0c94e62ecb20d2b494acf2639a6221561810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.10.22 Linux/6.14.0-1011-aws

Release history Release notifications | RSS feed

This release

0.16.1 This release

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page