pub struct GeoTransform {
pub origin_x: f64,
pub pixel_width: f64,
pub skew_x: f64,
pub origin_y: f64,
pub skew_y: f64,
pub pixel_height: f64,
}Expand description
An affine geo-transform mapping pixel (col, row) to map (x, y).
Follows the GDAL convention:
x = origin_x + col * pixel_width + row * skew_x
y = origin_y + col * skew_y + row * pixel_heightFor north-up images, skew_x and skew_y are 0 and pixel_height is negative.
Fields§
§origin_x: f64§pixel_width: f64§skew_x: f64§origin_y: f64§skew_y: f64§pixel_height: f64Implementations§
Source§impl GeoTransform
impl GeoTransform
Sourcepub fn from_tiepoint_and_scale(
tiepoint: &[f64; 6],
pixel_scale: &[f64; 3],
) -> Self
pub fn from_tiepoint_and_scale( tiepoint: &[f64; 6], pixel_scale: &[f64; 3], ) -> Self
Build from ModelTiepoint (tag 33922) and ModelPixelScale (tag 33550).
Sourcepub fn from_tiepoint_and_scale_with_raster_type(
tiepoint: &[f64; 6],
pixel_scale: &[f64; 3],
raster_type: RasterType,
) -> Self
pub fn from_tiepoint_and_scale_with_raster_type( tiepoint: &[f64; 6], pixel_scale: &[f64; 3], raster_type: RasterType, ) -> Self
Build from ModelTiepoint and ModelPixelScale using the GeoTIFF raster type.
The returned transform is normalized to a corner-based affine transform so bounds and pixel-space math stay consistent for both PixelIsArea and PixelIsPoint rasters.
Sourcepub fn from_transformation_matrix(matrix: &[f64; 16]) -> Self
pub fn from_transformation_matrix(matrix: &[f64; 16]) -> Self
Build from a 4x4 ModelTransformation matrix (tag 34264), row-major.
Sourcepub fn from_origin_and_pixel_size(
origin_x: f64,
origin_y: f64,
pixel_width: f64,
pixel_height: f64,
) -> Self
pub fn from_origin_and_pixel_size( origin_x: f64, origin_y: f64, pixel_width: f64, pixel_height: f64, ) -> Self
Create from origin + pixel size (north-up, no skew).
Sourcepub fn pixel_to_geo(&self, col: f64, row: f64) -> (f64, f64)
pub fn pixel_to_geo(&self, col: f64, row: f64) -> (f64, f64)
Convert pixel coordinates (col, row) to map coordinates (x, y).
Sourcepub fn geo_to_pixel(&self, x: f64, y: f64) -> Option<(f64, f64)>
pub fn geo_to_pixel(&self, x: f64, y: f64) -> Option<(f64, f64)>
Convert map coordinates (x, y) to pixel coordinates (col, row).
Returns None if the transform is degenerate (zero determinant).
Sourcepub fn bounds(&self, width: u32, height: u32) -> [f64; 4]
pub fn bounds(&self, width: u32, height: u32) -> [f64; 4]
Returns the geographic bounds (min_x, min_y, max_x, max_y) for an image of the given width and height.
Sourcepub fn to_tiepoint_and_scale(&self) -> Option<([f64; 6], [f64; 3])>
pub fn to_tiepoint_and_scale(&self) -> Option<([f64; 6], [f64; 3])>
Serialize to a tiepoint + pixel_scale pair (for north-up, no-skew images).
Returns None if there is skew (use to_transformation_matrix instead).
Sourcepub fn to_transformation_matrix(&self) -> [f64; 16]
pub fn to_transformation_matrix(&self) -> [f64; 16]
Serialize to a 4x4 transformation matrix (row-major).
Trait Implementations§
Source§impl Clone for GeoTransform
impl Clone for GeoTransform
Source§fn clone(&self) -> GeoTransform
fn clone(&self) -> GeoTransform
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more