Struct grib::PolarStereographicGridDefinition

source ·
pub struct PolarStereographicGridDefinition {
    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 projection_centre: ProjectionCentreFlag,
    pub scanning_mode: ScanningMode,
}

Fields§

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

Implementations§

source§

impl PolarStereographicGridDefinition

source

pub fn grid_shape(&self) -> (usize, usize)

Returns the shape of the grid, i.e. a tuple of the number of grids in the i and j directions.

Examples

let def = grib::PolarStereographicGridDefinition {
    earth_shape: grib::EarthShapeDefinition {
        shape_of_the_earth: 6,
        scale_factor_of_radius_of_spherical_earth: 0xff,
        scaled_value_of_radius_of_spherical_earth: 0xffffffff,
        scale_factor_of_earth_major_axis: 0xff,
        scaled_value_of_earth_major_axis: 0xffffffff,
        scale_factor_of_earth_minor_axis: 0xff,
        scaled_value_of_earth_minor_axis: 0xffffffff,
    },
    ni: 2,
    nj: 3,
    first_point_lat: 0,
    first_point_lon: 0,
    lad: 0,
    lov: 0,
    dx: 1000,
    dy: 1000,
    projection_centre: grib::ProjectionCentreFlag(0b00000000),
    scanning_mode: grib::ScanningMode(0b01000000),
};
let shape = def.grid_shape();
assert_eq!(shape, (2, 3));
source

pub fn short_name(&self) -> &'static str

Returns the grid type.

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::PolarStereographicGridDefinition {
    earth_shape: grib::EarthShapeDefinition {
        shape_of_the_earth: 6,
        scale_factor_of_radius_of_spherical_earth: 0xff,
        scaled_value_of_radius_of_spherical_earth: 0xffffffff,
        scale_factor_of_earth_major_axis: 0xff,
        scaled_value_of_earth_major_axis: 0xffffffff,
        scale_factor_of_earth_minor_axis: 0xff,
        scaled_value_of_earth_minor_axis: 0xffffffff,
    },
    ni: 2,
    nj: 3,
    first_point_lat: 0,
    first_point_lon: 0,
    lad: 0,
    lov: 0,
    dx: 1000,
    dy: 1000,
    projection_centre: grib::ProjectionCentreFlag(0b00000000),
    scanning_mode: grib::ScanningMode(0b01000000),
};
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 PolarStereographicGridDefinition

source§

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

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

impl PartialEq for PolarStereographicGridDefinition

source§

fn eq(&self, other: &PolarStereographicGridDefinition) -> 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 PolarStereographicGridDefinition

source§

impl StructuralPartialEq for PolarStereographicGridDefinition

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.