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 calls the Fortran extensions supplied by pymsis, with MSIS 2.1 by default. ODE models use atmosphere.total_density(...), which returns a NumPy array of total mass density in kg/m^3. density(...) also provides species data and temperature; e.g. sputtering calculation uses this full output. Historical solar and geomagnetic indices are downloaded when needed and cached within their three-hour interval. Custom atmospheres can override total_density for speed; its default implementation extracts "Total" from density.

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.5.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.5.0
File Size Uploaded Provenance Actions
metablate-0.5.0.tar.gz 90.3 kB Without provenance Details for metablate-0.5.0.tar.gz

Built distribution (wheel)

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

Total release size: 171.4 kB

Release files / metablate-0.5.0.tar.gz

Download URL metablate-0.5.0.tar.gz
Size 90.3 kB
Tags Source
SHA-256 checksum
How to use checksums
38d9136c056cb82cae7b782c61f11d326c049614fb714400e3b1560bda50a29b
BLAKE2b-256 checksum
How to use checksums
1e31ea3b5e933c44501fdd4ce5c7fae10833d366d1cfdd1d05d765e8927337e5
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.5.0-py3-none-any.whl

Download URL metablate-0.5.0-py3-none-any.whl
Size 81.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
975fbc57bf9f2f23599c1659670b12197130348412d61a6d8b96fa01b9e8ef8d
BLAKE2b-256 checksum
How to use checksums
66420683e372f73f4e49b9f19f195ef428f7e0b429d4000437a243cbdbe8fb16
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.5.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