Skip to main content

Dataset

Struct Dataset 

Source
pub struct Dataset { /* private fields */ }
Expand description

Unified dataset handle — the central abstraction (analogous to GDALDataset).

Opens any supported geospatial format and provides uniform access to raster bands, vector layers, and metadata.

§Example

use oxigdal::Dataset;

let ds = Dataset::open("elevation.tif").expect("failed to open");
println!("{}×{} pixels, {} bands", ds.width(), ds.height(), ds.band_count());
println!("Format: {}", ds.format());
if let Some(crs) = ds.crs() {
    println!("CRS: {crs}");
}

Implementations§

Source§

impl Dataset

Source

pub fn open(path: &str) -> Result<Self>

Open a geospatial dataset from a file path — the universal entry point.

Format is auto-detected from file extension (and in the future, magic bytes), just like GDALOpen() in C GDAL.

§Supported Formats

Which formats are available depends on enabled feature flags. With default features: GeoTIFF, GeoJSON, Shapefile.

§Errors

Returns OxiGdalError::NotSupported if the format is not recognized or the corresponding feature flag is not enabled.

Returns OxiGdalError::Io if the file cannot be read.

Source

pub fn open_with_format(path: &str, format: DatasetFormat) -> Result<Self>

Open a dataset with an explicitly specified format.

Use this when auto-detection from extension is insufficient (e.g., .json files that could be GeoJSON or STAC).

§Errors

Returns error if the format’s feature flag is not enabled or file is unreadable.

Source

pub fn path(&self) -> &str

File path this dataset was opened from.

Source

pub fn format(&self) -> DatasetFormat

Detected dataset format.

Source

pub fn info(&self) -> &DatasetInfo

Full dataset info.

Source

pub fn width(&self) -> u32

Width in pixels (raster datasets). Returns 0 for vector-only datasets.

Source

pub fn height(&self) -> u32

Height in pixels (raster datasets). Returns 0 for vector-only datasets.

Source

pub fn crs(&self) -> Option<&str>

Coordinate reference system (WKT, EPSG code, or PROJ string).

Source

pub fn band_count(&self) -> u32

Number of raster bands.

Source

pub fn layer_count(&self) -> u32

Number of vector layers.

Source

pub fn geotransform(&self) -> Option<&GeoTransform>

Geotransform coefficients.

[origin_x, pixel_width, rotation_x, origin_y, rotation_y, pixel_height]

Trait Implementations§

Source§

impl Debug for Dataset

Source§

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

Formats the value using the given formatter. Read more

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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>,

Source§

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>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more