pub struct Sounding {
pub station: Option<String>,
pub valid: Option<String>,
pub levels: Vec<SoundingLevel>,
}Expand description
A parsed sounding.
Fields§
§station: Option<String>Station identifier, if the header carried one.
valid: Option<String>Observation time string, if the header carried one (kept opaque: this crate never parses clocks).
levels: Vec<SoundingLevel>Measured levels in file order.
Implementations§
Source§impl Sounding
impl Sounding
Sourcepub fn surface_altitude_m(&self) -> Option<f64>
pub fn surface_altitude_m(&self) -> Option<f64>
The lowest measured altitude, metres above mean sea level. In a standard sounding this
is the station’s surface report, so it is the station’s elevation. None when there
are no levels.
Sourcepub fn to_profile_field(&self) -> Result<ProfileField, WindFieldError>
pub fn to_profile_field(&self) -> Result<ProfileField, WindFieldError>
The levels as a validated ProfileField (sorted and checked). Heights stay in metres
above mean sea level, as measured, so the field matches a frame whose y is altitude above
sea level (rockets-engine’s) with no conversion, wherever that frame’s ground sits.
Convert datums in one place only, never in these levels as well: wrap
the field in HeightOffset (offset = the
height of the caller’s y = 0 in this field’s datum), or read a
ground-relative field such as LogProfile or
EkmanProfile at y - ground elevation at its
single call site. This field, being above sea level, needs no offset
in a sea-level frame.
Trait Implementations§
impl StructuralPartialEq for Sounding
Auto Trait Implementations§
impl Freeze for Sounding
impl RefUnwindSafe for Sounding
impl Send for Sounding
impl Sync for Sounding
impl Unpin for Sounding
impl UnsafeUnpin for Sounding
impl UnwindSafe for Sounding
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.