Expand description
An offline motor catalog: motor metadata, thrust curves, and each curve’s provenance and license.
Catalog::bundled is the catalog compiled into the crate: 32 curve files that ThrustCurve.org
marks public domain (the decision record on solid motors and the bundled catalog,
ADR-005; how they were chosen, and the curves left out, are in
docs/research/thrustcurve-data.md). Other curves are fetched and cached by hpr-net, the
online layer that starts at M5.1.
Every figure in the bundled index comes from its curve file alone, written by
cargo xtask motor-catalog (issue #295: ThrustCurve.org states no terms for its API’s motor
records, so none of their figures is copied). Size, masses and delays are the file header’s;
total impulse, average and peak thrust and burn time are worked out from the curve by
ThrustCurve’s own methods, the ones the simulator flies (the trapezoid integral and the
NFPA 1125 burn window; their definitions and sources are on crate::curve). Only the names
that identify a motor (ThrustCurve.org’s id for it, designation, maker, single-use or reload,
case, propellant) and the file’s provenance (its ThrustCurve.org data-file id, who produced the
data, its license and the download date) are written by hand, in the command’s table.
The index keeps the units motor files and catalogs use (mm, g, N·s, N, s), in fields named for
them. CatalogMotor::motor converts to SI and takes the envelope (diameter, length and
masses) from the index rather than the curve file’s header. In the bundled index the two are
the same; another index (from Catalog::from_json) can correct a header that is wrong
(Loft lesson L43: one said 75 mm for a 54 mm motor).
Structs§
- Catalog
- A motor catalog.
- Catalog
Curve - Where a thrust curve came from and under what terms.
- Catalog
Motor - One motor’s catalog entry, in the units motor files use.
- Snapshot
- Where and when a catalog’s curve files were downloaded. Each file’s own URL and SHA-256 are on
its
CatalogCurve.
Enums§
- Curve
Format - A thrust-curve file format.
- Curve
License - A curve’s data license, as ThrustCurve records it. ThrustCurve’s API leaves the key out when no
license is recorded, which reads as
CurveLicense::Unknown. - Curve
Source - Who produced a curve (ThrustCurve’s
source). - Motor
Type - Whether a motor is used once or reloaded into a reusable case.
Functions§
- bundled_
curve_ text - The text of a bundled curve file, by its path in the bundled index.