pub struct GeoTIFFReader<T: Reader> {
pub header: GeoTIFFHeaderReader,
/* private fields */
}Expand description
§GeoTIFF Reader
§Description
This class reads a GeoTIFF file and returns a list of GeoTIFF images.
Implements the FeatureReader trait
§Usage
The methods you have access to:
GeoTIFFReader::new: Create a new GeoTIFFReaderGeoTIFFReader::len: Get the length (number of features)GeoTIFFReader::is_empty: Check if the reader is emptyGeoTIFFReader::get_image: Get an image at indexGeoTIFFReader::iter: Iterate over the featuresGeoTIFFReader::par_iter: Iterate over the features
§File Reader
use gistools::{
parsers::{FeatureReader, FileReader},
readers::{GeoTIFFReader, GeoTIFFOptions},
};
use std::path::PathBuf;
let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
path.push("tests/readers/geotiff/fixtures/ycbcr.tif");
let geotiff = GeoTIFFReader::new(FileReader::from(path), None);
{
// you can pull in the image directly
let mut image = geotiff.get_image(None).unwrap();
// read the raster data as any data format
let raster = image.raster_data(None);
// or read in the RGB data as RGBA u8 linear encoded
let rgb = image.get_rgba();
}
// Or you can just pull in the all the grids
let grids: Vec<_> = geotiff.iter().collect();
assert_eq!(grids.len(), 1);§Buffer Reader
use gistools::{
parsers::{FeatureReader, BufferReader},
readers::{GeoTIFFReader, GeoTIFFOptions},
};
// Ignore this, used to setup example
use std::path::PathBuf;
let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
path.push("tests/readers/geotiff/fixtures/ycbcr.tif");
let bytes: Vec<u8> = std::fs::read(path).unwrap();
// read in the data and build the grid
let geotiff = GeoTIFFReader::new(BufferReader::from(bytes), None);
let grid: Vec<_> = geotiff.iter().collect();
assert_eq!(grid.len(), 1);§Links
Fields§
§header: GeoTIFFHeaderReaderThe GeoTIFF header
Implementations§
Source§impl<T: Reader> GeoTIFFReader<T>
impl<T: Reader> GeoTIFFReader<T>
Sourcepub fn new(reader: T, options: Option<GeoTIFFOptions>) -> GeoTIFFReader<T>
pub fn new(reader: T, options: Option<GeoTIFFOptions>) -> GeoTIFFReader<T>
Create a new GeoTIFFReader
Trait Implementations§
Source§impl<T: Clone + Reader> Clone for GeoTIFFReader<T>
impl<T: Clone + Reader> Clone for GeoTIFFReader<T>
Source§fn clone(&self) -> GeoTIFFReader<T>
fn clone(&self) -> GeoTIFFReader<T>
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: Default + Reader> Default for GeoTIFFReader<T>
impl<T: Default + Reader> Default for GeoTIFFReader<T>
Source§fn default() -> GeoTIFFReader<T>
fn default() -> GeoTIFFReader<T>
Returns the “default value” for a type. Read more
Source§impl<T: Reader> FeatureReader<GeoTIFFMetadata, Map<String, ValueType>, RGBA> for GeoTIFFReader<T>
A feature reader trait with a callback-based approach
impl<T: Reader> FeatureReader<GeoTIFFMetadata, Map<String, ValueType>, RGBA> for GeoTIFFReader<T>
A feature reader trait with a callback-based approach
Source§type FeatureIterator<'a> = GeoTIFFIterator<'a, T>
where
T: 'a
type FeatureIterator<'a> = GeoTIFFIterator<'a, T> where T: 'a
The Feature Reader should implement an iterator of some kind
Source§fn iter(&self) -> Self::FeatureIterator<'_>
fn iter(&self) -> Self::FeatureIterator<'_>
All readers have an iter function that returns a Iterator struct
impl<T: Reader> StructuralPartialEq for GeoTIFFReader<T>
Auto Trait Implementations§
impl<T> Freeze for GeoTIFFReader<T>
impl<T> !RefUnwindSafe for GeoTIFFReader<T>
impl<T> !Send for GeoTIFFReader<T>
impl<T> !Sync for GeoTIFFReader<T>
impl<T> Unpin for GeoTIFFReader<T>
impl<T> !UnwindSafe for GeoTIFFReader<T>
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().