pub struct Template3_20 {
pub earth_shape: EarthShape,
pub ni: u32,
pub nj: u32,
pub first_point_lat: i32,
pub first_point_lon: i32,
pub resolution_and_component_flags: ResolutionAndComponentFlags,
pub lad: i32,
pub lov: i32,
pub dx: u32,
pub dy: u32,
pub projection_centre: ProjectionCentreFlag,
pub scanning_mode: ScanningMode,
}Expand description
Grid definition template 3.20 - polar stereographic projection.
§Examples
use std::io::{BufReader, Read};
use grib::def::grib2::template::{Template3_20, param_set};
use grib_template_helpers::TryFromSlice;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut buf = Vec::new();
let f = std::fs::File::open(
"testdata/CMC_RDPA_APCP-024-0100cutoff_SFC_0_ps10km_2023121806_000.grib2.xz",
)?;
let f = BufReader::new(f);
let mut f = xz2::bufread::XzDecoder::new(f);
f.read_to_end(&mut buf)?;
let mut pos = 0x33;
let actual = Template3_20::try_from_slice(&buf, &mut pos)?;
let expected = Template3_20 {
earth_shape: param_set::EarthShape {
shape: 6,
spherical_earth_radius_scale_factor: 0xff,
spherical_earth_radius_scaled_value: 0xffffffff,
major_axis_scale_factor: 0xff,
major_axis_scaled_value: 0xffffffff,
minor_axis_scale_factor: 0xff,
minor_axis_scaled_value: 0xffffffff,
},
ni: 935,
nj: 824,
first_point_lat: 18145030,
first_point_lon: 217107456,
resolution_and_component_flags: param_set::ResolutionAndComponentFlags(0b00001000),
lad: 60000000,
lov: 249000000,
dx: 10000000,
dy: 10000000,
projection_centre: param_set::ProjectionCentreFlag(0b00000000),
scanning_mode: param_set::ScanningMode(0b01000000),
};
assert_eq!(actual, expected);
Ok(())
}Fields§
§earth_shape: EarthShape§ni: u32Nx - number of points along the x-axis.
nj: u32Ny - number of points along the y-axis.
first_point_lat: i32La1 - latitude of first grid point.
first_point_lon: i32Lo1 - longitude of first grid point.
resolution_and_component_flags: ResolutionAndComponentFlags§lad: i32LaD - latitude where Dx and Dy are specified.
lov: i32LoV - orientation of the grid (see Note 2).
dx: u32Dx - x-direction grid length (see Note 3).
dy: u32Dy - y-direction grid length (see Note 3).
projection_centre: ProjectionCentreFlag§scanning_mode: ScanningModeTrait Implementations§
Source§impl Debug for Template3_20
impl Debug for Template3_20
Source§impl Dump for Template3_20
impl Dump for Template3_20
Source§impl GridPointIndex for Template3_20
impl GridPointIndex for Template3_20
Source§fn grid_shape(&self) -> (usize, usize)
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.
Source§fn scanning_mode(&self) -> &ScanningMode
fn scanning_mode(&self) -> &ScanningMode
Returns
ScanningMode used for the iteration.Source§impl GridShortName for Template3_20
impl GridShortName for Template3_20
Source§fn short_name(&self) -> &'static str
fn short_name(&self) -> &'static str
Returns the grid type. Read more
Source§impl LatLons for Template3_20
Available on crate feature gridpoints-proj only.
impl LatLons for Template3_20
Available on crate feature
gridpoints-proj only.Source§impl PartialEq for Template3_20
impl PartialEq for Template3_20
Source§impl TryFromSlice for Template3_20
impl TryFromSlice for Template3_20
impl Eq for Template3_20
impl StructuralPartialEq for Template3_20
Auto Trait Implementations§
impl Freeze for Template3_20
impl RefUnwindSafe for Template3_20
impl Send for Template3_20
impl Sync for Template3_20
impl Unpin for Template3_20
impl UnsafeUnpin for Template3_20
impl UnwindSafe for Template3_20
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