pub struct WeatherRecord {Show 16 fields
pub station_id: u32,
pub station_name: String,
pub date: NaiveDate,
pub latitude: f64,
pub longitude: f64,
pub temp_min: Option<f32>,
pub temp_max: Option<f32>,
pub temp_avg: Option<f32>,
pub precipitation: Option<f32>,
pub wind_speed: Option<f32>,
pub temp_quality: Option<String>,
pub precip_quality: Option<String>,
pub wind_quality: Option<String>,
pub temp_validation: Option<PhysicalValidity>,
pub precip_validation: Option<PhysicalValidity>,
pub wind_validation: Option<PhysicalValidity>,
}Fields§
§station_id: u32§station_name: String§date: NaiveDate§latitude: f64§longitude: f64§temp_min: Option<f32>§temp_max: Option<f32>§temp_avg: Option<f32>§precipitation: Option<f32>§wind_speed: Option<f32>§temp_quality: Option<String>§precip_quality: Option<String>§wind_quality: Option<String>§temp_validation: Option<PhysicalValidity>§precip_validation: Option<PhysicalValidity>§wind_validation: Option<PhysicalValidity>Implementations§
Source§impl WeatherRecord
impl WeatherRecord
pub fn new( station_id: u32, station_name: String, date: NaiveDate, latitude: f64, longitude: f64, temp_min: Option<f32>, temp_max: Option<f32>, temp_avg: Option<f32>, precipitation: Option<f32>, wind_speed: Option<f32>, temp_quality: Option<String>, precip_quality: Option<String>, wind_quality: Option<String>, ) -> Self
Sourcepub fn new_raw(
station_id: u32,
station_name: String,
date: NaiveDate,
latitude: f64,
longitude: f64,
temp_min: Option<f32>,
temp_max: Option<f32>,
temp_avg: Option<f32>,
precipitation: Option<f32>,
wind_speed: Option<f32>,
temp_quality: Option<String>,
precip_quality: Option<String>,
wind_quality: Option<String>,
temp_validation: Option<PhysicalValidity>,
precip_validation: Option<PhysicalValidity>,
wind_validation: Option<PhysicalValidity>,
) -> Self
pub fn new_raw( station_id: u32, station_name: String, date: NaiveDate, latitude: f64, longitude: f64, temp_min: Option<f32>, temp_max: Option<f32>, temp_avg: Option<f32>, precipitation: Option<f32>, wind_speed: Option<f32>, temp_quality: Option<String>, precip_quality: Option<String>, wind_quality: Option<String>, temp_validation: Option<PhysicalValidity>, precip_validation: Option<PhysicalValidity>, wind_validation: Option<PhysicalValidity>, ) -> Self
Create a WeatherRecord without automatic validation (for reading from file)
pub fn builder() -> WeatherRecordBuilder
pub fn validate_relationships(&self) -> Result<()>
pub fn has_temperature_data(&self) -> bool
pub fn has_complete_temperature(&self) -> bool
pub fn has_precipitation(&self) -> bool
pub fn has_wind_speed(&self) -> bool
pub fn available_metrics(&self) -> Vec<&str>
pub fn metric_coverage_score(&self) -> f32
pub fn temperature_range(&self) -> Option<f32>
pub fn has_valid_temperature_data(&self) -> bool
pub fn has_valid_precipitation_data(&self) -> bool
pub fn has_valid_wind_data(&self) -> bool
pub fn has_suspect_data(&self) -> bool
pub fn has_missing_data(&self) -> bool
Sourcepub fn perform_physical_validation(&mut self)
pub fn perform_physical_validation(&mut self)
Perform physical validation on all metrics
Sourcepub fn assess_temperature_quality(&self) -> DataQuality
pub fn assess_temperature_quality(&self) -> DataQuality
Assess overall temperature data quality combining ECAD flags and physical validation
Sourcepub fn assess_precipitation_quality(&self) -> DataQuality
pub fn assess_precipitation_quality(&self) -> DataQuality
Assess overall precipitation data quality
Sourcepub fn assess_wind_quality(&self) -> DataQuality
pub fn assess_wind_quality(&self) -> DataQuality
Assess overall wind data quality
Sourcepub fn has_invalid_data(&self) -> bool
pub fn has_invalid_data(&self) -> bool
Check if record has any invalid data (physically impossible)
Sourcepub fn has_high_quality_data(&self) -> bool
pub fn has_high_quality_data(&self) -> bool
Check if record has high-quality data (valid with no flags)
Trait Implementations§
Source§impl Clone for WeatherRecord
impl Clone for WeatherRecord
Source§fn clone(&self) -> WeatherRecord
fn clone(&self) -> WeatherRecord
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WeatherRecord
impl Debug for WeatherRecord
Source§impl<'de> Deserialize<'de> for WeatherRecord
impl<'de> Deserialize<'de> for WeatherRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for WeatherRecord
impl Serialize for WeatherRecord
Source§impl Validate for WeatherRecord
impl Validate for WeatherRecord
Source§impl<'v_a> ValidateArgs<'v_a> for WeatherRecord
impl<'v_a> ValidateArgs<'v_a> for WeatherRecord
Auto Trait Implementations§
impl Freeze for WeatherRecord
impl RefUnwindSafe for WeatherRecord
impl Send for WeatherRecord
impl Sync for WeatherRecord
impl Unpin for WeatherRecord
impl UnwindSafe for WeatherRecord
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more