Skip to main content

Meteoroid Ablation Models

metablate provides meteoroid ablation and atmospheric-entry models, MSIS atmospheres, material presets, and plasma-density calculations.

Install

Install the latest published release:

pip install metablate

The bleeding-edge version is available with:

pip install git+https://github.com/danielk333/ablate.git

or trough cloning this repo.

Minimal ablation example

Run the Kero–Szasz (2008) model with a cometary meteoroid and the default AtmPymsis atmosphere:

import numpy as np
from spacecoords import frames

import metablate.material as mat
import metablate.models.kero_szasz_2008 as ks

lat, lon = 67.0, 20.0
position = frames.geodetic_wgs84_to_ecef(lat, lon, 100e3, degrees=True)
direction = frames.azel_to_ecef(lat, lon, az=10, el=-45, degrees=True)

model = ks.KeroSzasz2008(
    options=ks.KeroSzaszOptions(
        material=mat.cometary,
        atmosphere_kwargs=dict(as_dataset=False),
    ),
)
result = model.run(
    parameters=ks.KeroSzaszInitialState(
        epoch=np.datetime64("2018-06-28T12:45:33"),
        position_ecef=position,
        velocity_ecef=direction * 60e3,
        mass=1e-6,
    ),
)
print(f"Runtime: {result.runtime:.3f} s")

Positions and velocities use ECEF coordinates in metres and metres per second; mass is in kilograms. Results include time, mass, velocity, temperature and position.

Atmospheres and computation

AtmPymsis uses pymsis, with MSIS 2.1 by default. Historical solar and geomagnetic indices are downloaded and cached when not supplied. Setting as_dataset=False in atmosphere_kwargs avoids constructing an xarray dataset at each solver step.

AtmMSISE00 is optional and requires the separate msise00 package and a Fortran compiler; see its installation instructions.

Some functions use Numba to speed up subsequent calls. The first call compiles the kernels, which are cached for subsequent runs. Set NUMBA_DISABLE_JIT=1 to run the same formulas in Python for debugging.

Examples

See docs/examples for e.g. ablation, fireball, alpha–beta and plasma examples. For example, after a repository checkout, generate an ablation sweep with:

python docs/examples/ablation_sweep.py --output ablation_sweep.png

Which produces this plot:

Kero-Szasz ablation sweep

Development

From a repository checkout:

pip install -e .[tests]
# or pip install -e .[develop] for all dev packages
pytest

Metadata

Release files for metablate 0.3.0

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

Source distribution (sdist)

Source distribution for metablate 0.3.0
File Size Uploaded Provenance Actions
metablate-0.3.0.tar.gz 83.8 kB Without provenance Details for metablate-0.3.0.tar.gz

Built distribution (wheel)

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

Total release size: 158.4 kB

Release files / metablate-0.3.0.tar.gz

Download URL metablate-0.3.0.tar.gz
Size 83.8 kB
Tags Source
SHA-256 checksum
How to use checksums
173d9f934ad6c99f849bd6cbbfd499b9615d89a5778105b82c34317fa85d236c
BLAKE2b-256 checksum
How to use checksums
048c273569df4151a7147dabb40b83edca1dfc842eb71065784db33748e7fcb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / metablate-0.3.0-py3-none-any.whl

Download URL metablate-0.3.0-py3-none-any.whl
Size 74.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d7904fba88e9047bf0697d9f7c12097cffee3870b9735027a51c9167cd89dfcd
BLAKE2b-256 checksum
How to use checksums
6c68c51cc4a5deff8b0baa8f8489a202dc4a3fc5bf81c9bbdebbe83e0ee918d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Security for metablate 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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