Skip to main content

Crate winds_engine

Crate winds_engine 

Source
Expand description

Deterministic wind data for trajectory simulation, consumed by rockets-engine.

The wind-field types — the WindField trait, ConstantField, ProfileField, LogProfile, EkmanProfile and the HeightOffset datum wrapper — are ballistics-engine’s (its wind module, since ballistics-engine 0.49.0), re-exported here so this crate’s pipelines and its consumers share one definition. Everything is stateless and reproducible from inputs: no wall clock or unseeded randomness anywhere, and no network except the download feature.

  • sounding: radiosonde interchange-format parsing.
  • validate: profile-vs-sounding comparison metrics.
  • terrain: a diagnostic mass-consistent terrain wind.
  • grib (feature): GRIB2 forecast files into a ProfileField.
  • download (feature): live GFS/HRRR acquisition, the only networked code in the crate.

Re-exports§

pub use sounding::Sounding;
pub use sounding::SoundingLevel;
pub use terrain::from_flt;
pub use terrain::hgt_grid;
pub use terrain::local_en_m;
pub use terrain::monitors_from_geo_csv;
pub use terrain::HeightGrid;
pub use terrain::Monitor;
pub use terrain::SrtmResolution;
pub use terrain::TerrainFlowField;
pub use validate::LayerError;
pub use validate::ValidationReport;

Modules§

sounding
Radiosonde soundings in the crate’s line-based interchange format.
terrain
Diagnostic mass-consistent terrain wind (NOABL/CONMESS-style).
validate
Compare a wind profile against a measured sounding.

Structs§

ConstantField
Uniform wind everywhere.
EkmanProfile
Ekman spiral (constant eddy viscosity K; Holton’s classic solution): u = G(1 − e^(−γz)·cos(γz)), v = sign(f)·G·e^(−γz)·sin(γz), γ = sqrt(|f|/2K), f = 2Ω·sin(latitude). Zero at the surface, approaches the geostrophic wind aloft, rotated to direction_from_deg.
Error
Crate-wide error: invalid input with a field name and reason.
HeightOffset
Reads a field at a shifted height, so a field and its caller can use different height datums: wind(t, p) is the inner field’s wind at p.y + offset_m, with time and the horizontal position unchanged.
LogProfile
Log-law boundary layer: u(z) = u_ref · ln(z/z0) / ln(z_ref/z0), z > z0; zero below z0. Constant direction with height.
ProfileField
Piecewise-linear vertical profile: speed interpolates linearly in altitude, direction along the shortest circular arc; nearest level holds outside the range.
ProfileLevel
One level of a vertical profile.

Enums§

WindFieldError
A wind-field constructor input that failed validation.
WindFieldParam
Which constructor input failed validation.
WindFieldRule
The rule a constructor input violated.

Traits§

WindField
A deterministic, stateless wind field: same time and position always give the same wind, so integrator substeps, snapshots and seeded reproduction are exact.

Type Aliases§

Result
Crate-wide result.