A package to analyze bolide data in Python.
bolides
is a community package primarily designed to work with bolide detections from the Geostationary Lightning Mapper instruments aboard GOES-16 and GOES-17 that are published at neo-bolide.ndc.nasa.gov. But bolides
can also read bolide data from ZODB database files produced by the GLM bolide detection pipeline, from US Government sensors, and from your own .csv files containing bolide data.
bolides
puts bolide detections from various sources into a common BolideDataFrame format. With this, bolides
can do things like:
- Automatically add metadata like lunar phase, solar time, and solar altitude to bolide detections.
- Filter the data sets by any variable.
- Search the data sets for particular bolides by time or location.
- Make histograms of bolides over time.
- Plot detections on arbitrary map projections, coloring by any categorical or quantitative variables.
- Plot GLM fields-of-view in the GOES-West and GOES-East positions, and filter bolide detections by the FOV.
- Augment one data set with data from another, automatically matching bolide detections from different sources.
- Pull corresponding bolide light curves from neo-bolide.ndc.nasa.gov and plot them.
- Pull meteor shower data from the IAU Meteor Data Center and plot their orbits.
- Run an interactive webapp.
All package documentation is hosted at bolides.readthedocs.io.
We want to make installation as easy as possible. If you have any problems with the installation process, please open an issue.
If using Conda, just use Conda to install cartopy: conda install -c conda-forge cartopy
.
If using pip:
- First, PROJ needs to be installed on your system using the installation instructions at the link. GEOS also needs to be installed. On Ubuntu both can be installed with
sudo apt install proj-bin libproj-dev libgeos-dev
- Next, due to known Cartopy and Shapely problems, Cartopy and Shapely need to be installed manually. This is done with:
pip install numpy && pip install cartopy==0.18.0 shapely --no-binary cartopy --no-binary shapely
. Note that an older Cartopy version is recommended to prevent it from requiring PROJ versions not yet in common repositories. If you already have PROJ 8.0.0, you may omit the==0.18.0
and install the latest Cartopy version.
While the package is still in development we recommend installing from source:
- Download this repository:
git clone https://github.com/SETI/bolides.git
- Move into it:
cd bolides
- Install the package in editable mode:
pip install -e .
Once this package is on the Python Package Index, you can install via pip using pip install bolides
.
For a usage tutorial, go here. An interactive version is hosted on binder.
The original version of bolides
was developed by Clemens Rumpf and Geert Barentsen. It has been rewritten since then, but all of the original code and functionality is still present.
Several informational files are located throughout this repository to help in understanding and maintaining the package:
- Uploading to the Python Package Index: PYPI.txt
- Documentation building: docs/README.txt
- Webapp setup and maintenance: webapp/README.txt
- Binder setup: binder/README.txt
This development is supported through NASA's Asteroid Threat Assessment Project (ATAP), which is funded through NASA's Planetary Defense Coordination Office (PDCO). Anthony Ozerov is supported through NASA Cooperative Agreement 80NSSC19M0089.