pub struct RasterBuffer { /* private fields */ }Expand description
A typed buffer for raster data
Implementations§
Source§impl RasterBuffer
impl RasterBuffer
Sourcepub fn new(
data: Vec<u8>,
width: u64,
height: u64,
data_type: RasterDataType,
nodata: NoDataValue,
) -> Result<Self>
pub fn new( data: Vec<u8>, width: u64, height: u64, data_type: RasterDataType, nodata: NoDataValue, ) -> Result<Self>
Creates a new raster buffer
§Errors
Returns an error if the data size doesn’t match the dimensions and type
Sourcepub fn zeros(width: u64, height: u64, data_type: RasterDataType) -> Self
pub fn zeros(width: u64, height: u64, data_type: RasterDataType) -> Self
Creates a zero-filled buffer
Sourcepub fn nodata_filled(
width: u64,
height: u64,
data_type: RasterDataType,
nodata: NoDataValue,
) -> Self
pub fn nodata_filled( width: u64, height: u64, data_type: RasterDataType, nodata: NoDataValue, ) -> Self
Creates a buffer filled with the nodata value
Sourcepub fn fill_value(&mut self, value: f64)
pub fn fill_value(&mut self, value: f64)
Fills the buffer with a constant value
Sourcepub const fn data_type(&self) -> RasterDataType
pub const fn data_type(&self) -> RasterDataType
Returns the data type
Sourcepub const fn nodata(&self) -> NoDataValue
pub const fn nodata(&self) -> NoDataValue
Returns the nodata value
Sourcepub const fn pixel_count(&self) -> u64
pub const fn pixel_count(&self) -> u64
Returns the total number of pixels
Sourcepub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
Returns mutable raw bytes
Sourcepub fn into_bytes(self) -> Vec<u8> ⓘ
pub fn into_bytes(self) -> Vec<u8> ⓘ
Consumes the buffer and returns the raw bytes
Sourcepub fn from_typed_vec<T: Copy + 'static>(
width: usize,
height: usize,
data: Vec<T>,
data_type: RasterDataType,
) -> Result<Self>
pub fn from_typed_vec<T: Copy + 'static>( width: usize, height: usize, data: Vec<T>, data_type: RasterDataType, ) -> Result<Self>
Sourcepub fn as_slice_mut<T: Copy + 'static>(&mut self) -> Result<&mut [T]>
pub fn as_slice_mut<T: Copy + 'static>(&mut self) -> Result<&mut [T]>
Sourcepub fn get_u8(&self, x: u64, y: u64) -> Result<u8>
pub fn get_u8(&self, x: u64, y: u64) -> Result<u8>
Gets a pixel value as u8.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not UInt8.
Sourcepub fn get_i8(&self, x: u64, y: u64) -> Result<i8>
pub fn get_i8(&self, x: u64, y: u64) -> Result<i8>
Gets a pixel value as i8.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Int8.
Sourcepub fn get_u16(&self, x: u64, y: u64) -> Result<u16>
pub fn get_u16(&self, x: u64, y: u64) -> Result<u16>
Gets a pixel value as u16.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not UInt16.
Sourcepub fn get_i16(&self, x: u64, y: u64) -> Result<i16>
pub fn get_i16(&self, x: u64, y: u64) -> Result<i16>
Gets a pixel value as i16.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Int16.
Sourcepub fn get_u32(&self, x: u64, y: u64) -> Result<u32>
pub fn get_u32(&self, x: u64, y: u64) -> Result<u32>
Gets a pixel value as u32.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not UInt32.
Sourcepub fn get_i32(&self, x: u64, y: u64) -> Result<i32>
pub fn get_i32(&self, x: u64, y: u64) -> Result<i32>
Gets a pixel value as i32.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Int32.
Sourcepub fn get_u64(&self, x: u64, y: u64) -> Result<u64>
pub fn get_u64(&self, x: u64, y: u64) -> Result<u64>
Gets a pixel value as u64.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not UInt64.
Sourcepub fn get_i64(&self, x: u64, y: u64) -> Result<i64>
pub fn get_i64(&self, x: u64, y: u64) -> Result<i64>
Gets a pixel value as i64.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Int64.
Sourcepub fn get_f32(&self, x: u64, y: u64) -> Result<f32>
pub fn get_f32(&self, x: u64, y: u64) -> Result<f32>
Gets a pixel value as f32.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Float32.
Sourcepub fn get_f64(&self, x: u64, y: u64) -> Result<f64>
pub fn get_f64(&self, x: u64, y: u64) -> Result<f64>
Gets a pixel value as f64.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Float64.
Sourcepub fn set_u8(&mut self, x: u64, y: u64, value: u8) -> Result<()>
pub fn set_u8(&mut self, x: u64, y: u64, value: u8) -> Result<()>
Sets a pixel value from u8.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not UInt8.
Sourcepub fn set_f32(&mut self, x: u64, y: u64, value: f32) -> Result<()>
pub fn set_f32(&mut self, x: u64, y: u64, value: f32) -> Result<()>
Sets a pixel value from f32.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Float32.
Sourcepub fn set_f64(&mut self, x: u64, y: u64, value: f64) -> Result<()>
pub fn set_f64(&mut self, x: u64, y: u64, value: f64) -> Result<()>
Sets a pixel value from f64.
§Errors
Returns an error if coordinates are out of bounds or the buffer type is not Float64.
Sourcepub fn row_slice<T: Copy + 'static>(&self, y: u64) -> Result<&[T]>
pub fn row_slice<T: Copy + 'static>(&self, y: u64) -> Result<&[T]>
Returns a row of pixel data as a typed slice.
§Errors
Returns an error if y is out of bounds or type size mismatches.
Sourcepub fn window(&self, x: u64, y: u64, width: u64, height: u64) -> Result<Self>
pub fn window(&self, x: u64, y: u64, width: u64, height: u64) -> Result<Self>
Returns a rectangular window of pixel data as a new RasterBuffer.
§Errors
Returns an error if the window extends outside buffer bounds.
Sourcepub fn is_nodata(&self, value: f64) -> bool
pub fn is_nodata(&self, value: f64) -> bool
Returns true if the given value equals the nodata value
Sourcepub fn convert_to(&self, target_type: RasterDataType) -> Result<Self>
pub fn convert_to(&self, target_type: RasterDataType) -> Result<Self>
Sourcepub fn compute_statistics(&self) -> Result<BufferStatistics>
pub fn compute_statistics(&self) -> Result<BufferStatistics>
Computes basic statistics
Sourcepub fn compute_statistics_with_histogram(
&self,
bin_count: usize,
) -> Result<BufferStatistics>
pub fn compute_statistics_with_histogram( &self, bin_count: usize, ) -> Result<BufferStatistics>
Computes statistics and an optional histogram in one pass.
The returned BufferStatistics contains a histogram of bin_count bins
with uniform spacing covering the range [min, max]. Each bin holds the count
of valid pixels whose value falls within that bin’s interval.
§Arguments
bin_count— Number of histogram bins. Must be ≥ 1.
§Errors
Returns crate::error::OxiGdalError::InvalidParameter if bin_count is 0.
Returns errors from pixel access on corrupt buffers.
§Notes
- NaN and infinite values are excluded (same as
RasterBuffer::compute_statistics). - When all valid values are identical (
min == max), all counts go into bin 0. - When no valid pixels exist,
histogramisSome(vec![0; bin_count]).
Trait Implementations§
Source§impl Clone for RasterBuffer
impl Clone for RasterBuffer
Source§fn clone(&self) -> RasterBuffer
fn clone(&self) -> RasterBuffer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more