pub struct LambertGridDefinition {
    pub earth_shape: EarthShapeDefinition,
    pub ni: u32,
    pub nj: u32,
    pub first_point_lat: i32,
    pub first_point_lon: i32,
    pub lad: i32,
    pub lov: i32,
    pub dx: u32,
    pub dy: u32,
    pub scanning_mode: ScanningMode,
    pub latin1: i32,
    pub latin2: i32,
}

Fields§

§earth_shape: EarthShapeDefinition§ni: u32§nj: u32§first_point_lat: i32§first_point_lon: i32§lad: i32§lov: i32§dx: u32§dy: u32§scanning_mode: ScanningMode§latin1: i32§latin2: i32

Implementations§

source§

impl LambertGridDefinition

source

pub fn ij(&self) -> Result<GridPointIndexIterator, GribError>

Returns an iterator over (i, j) of grid points.

Note that this is a low-level API and it is not checked that the number of iterator iterations is consistent with the number of grid points defined in the data.

Examples

let def = grib::LambertGridDefinition {
    earth_shape: grib::EarthShapeDefinition {
        shape_of_the_earth: 1,
        scale_factor_of_radius_of_spherical_earth: 0,
        scaled_value_of_radius_of_spherical_earth: 6371200,
        scale_factor_of_earth_major_axis: 0,
        scaled_value_of_earth_major_axis: 0,
        scale_factor_of_earth_minor_axis: 0,
        scaled_value_of_earth_minor_axis: 0,
    },
    ni: 2,
    nj: 3,
    first_point_lat: 0,
    first_point_lon: 0,
    lad: 0,
    lov: 0,
    dx: 1000,
    dy: 1000,
    scanning_mode: grib::ScanningMode(0b01000000),
    latin1: 0,
    latin2: 0,
};
let ij = def.ij();
assert!(ij.is_ok());

let mut ij = ij.unwrap();
assert_eq!(ij.next(), Some((0, 0)));
assert_eq!(ij.next(), Some((1, 0)));
assert_eq!(ij.next(), Some((0, 1)));

Trait Implementations§

source§

impl Debug for LambertGridDefinition

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for LambertGridDefinition

source§

fn eq(&self, other: &LambertGridDefinition) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for LambertGridDefinition

source§

impl StructuralPartialEq for LambertGridDefinition

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.