or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

config-utilities.mdcoordinate-systems.mddata-management.mdindex.mdio-operations.mdspatial-operations.md
tile.json

tessl/pypi-rioxarray

Geospatial xarray extension powered by rasterio for raster data manipulation and analysis

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/rioxarray@0.19.x

To install, run

npx @tessl/cli install tessl/pypi-rioxarray@0.19.0

index.mddocs/

rioxarray

A geospatial extension for xarray that enables powerful raster data manipulation and analysis through integration with rasterio. rioxarray provides coordinate reference system (CRS) transformations, reprojection operations, clipping and masking of raster data, and seamless integration with the scientific Python ecosystem.

Package Information

  • Package Name: rioxarray
  • Language: Python
  • Installation: pip install rioxarray

Core Imports

import rioxarray

The package automatically registers the .rio accessor when imported:

import rioxarray  # Registers the .rio accessor
import xarray as xr

# Now .rio is available on all xarray objects
da = xr.open_dataarray('file.nc')
da.rio.crs  # Access rioxarray functionality

For merge functionality:

from rioxarray.merge import merge_arrays, merge_datasets

Basic Usage

import rioxarray
import xarray as xr

# Open a raster file directly
da = rioxarray.open_rasterio('path/to/raster.tif')

# Or use with existing xarray objects
ds = xr.open_dataset('file.nc')
# Access geospatial functionality via .rio accessor
print(ds.rio.crs)

# Reproject to a new coordinate system
reprojected = da.rio.reproject('EPSG:4326')

# Clip to a bounding box
clipped = da.rio.clip_box(minx=-10, miny=40, maxx=10, maxy=60)

# Set coordinate reference system
da_with_crs = da.rio.set_crs('EPSG:3857')

# Save to raster format
da.rio.to_raster('output.tif')

# Merge multiple raster files
from rioxarray.merge import merge_arrays
da1 = rioxarray.open_rasterio('tile1.tif')
da2 = rioxarray.open_rasterio('tile2.tif')
merged = merge_arrays([da1, da2])

Architecture

rioxarray extends xarray through the accessor pattern, providing geospatial capabilities without modifying xarray's core functionality:

  • Accessor Pattern: All geospatial functionality available via .rio accessor on DataArrays and Datasets
  • Backend Integration: rioxarray provides an xarray backend for seamless file opening
  • Type-Specific Functionality: Different capabilities for DataArrays vs Datasets
  • Rasterio Integration: Leverages rasterio for all geospatial operations and file I/O

Capabilities

File I/O Operations

Reading and writing geospatial raster data with comprehensive parameter support for chunking, caching, coordinate parsing, and format-specific options.

def open_rasterio(
    filename: Union[str, os.PathLike, rasterio.io.DatasetReader, rasterio.vrt.WarpedVRT],
    *,
    parse_coordinates: Optional[bool] = None,
    chunks: Optional[Union[int, tuple, dict]] = None,
    cache: Optional[bool] = None,
    lock: Optional[Any] = None,
    masked: bool = False,
    mask_and_scale: bool = False,
    variable: Optional[Union[str, list[str], tuple[str, ...]]] = None,
    group: Optional[Union[str, list[str], tuple[str, ...]]] = None,
    default_name: Optional[str] = None,
    decode_times: bool = True,
    decode_timedelta: Optional[bool] = None,
    band_as_variable: bool = False,
    **open_kwargs
) -> Union[xarray.Dataset, xarray.DataArray, list[xarray.Dataset]]: ...

I/O Operations

Coordinate Reference Systems

Comprehensive CRS management including setting, transforming, and reprojecting coordinate systems with support for various CRS formats and automatic UTM zone estimation.

# Properties
@property
def crs: Optional[rasterio.crs.CRS]: ...

# Methods  
def set_crs(self, crs: Any, allow_override: bool = False, inplace: bool = False): ...
def estimate_utm_crs(self, datum_name: str = "WGS 84"): ...
def write_crs(self, crs: Any = None, grid_mapping_name: Optional[str] = None, inplace: bool = False): ...

Coordinate Systems

Spatial Operations

Clipping, reprojection, padding, and geometric operations on raster data with support for vector geometries, bounding boxes, and pixel-based operations.

def reproject(
    self, dst_crs: Any, *, resolution: Optional[Union[float, tuple[float, float]]] = None,
    shape: Optional[tuple[int, int]] = None, transform: Optional[rasterio.Affine] = None,
    resampling: rasterio.enums.Resampling = rasterio.enums.Resampling.nearest, **kwargs
): ...

def clip(self, geometries: Any, crs: Optional[Any] = None, all_touched: bool = False, drop: bool = True, invert: bool = False, from_disk: bool = False): ...
def clip_box(self, minx: float, miny: float, maxx: float, maxy: float, crs: Optional[Any] = None, auto_expand: bool = False, auto_expand_limit: int = 3): ...

Spatial Operations

Data Management

NoData value handling, attribute and encoding management, and data merging operations for combining multiple raster datasets.

# NoData handling
@property  
def nodata: Any: ...
def set_nodata(self, nodata: Any, inplace: bool = False): ...

# Attribute management
def set_attrs(self, inplace: bool = False, **attrs): ...
def update_attrs(self, inplace: bool = False, **attrs): ...

# Merging
def merge_arrays(dataarrays: Sequence[xarray.DataArray], *, bounds: Optional[tuple] = None, res: Optional[tuple] = None, nodata: Optional[float] = None, precision: Optional[float] = None, method: Union[str, Callable, None] = None, crs: Optional[rasterio.crs.CRS] = None, parse_coordinates: bool = True) -> xarray.DataArray: ...

def merge_datasets(datasets: Sequence[xarray.Dataset], *, bounds: Optional[tuple] = None, res: Optional[tuple] = None, nodata: Optional[float] = None, precision: Optional[float] = None, method: Union[str, Callable, None] = None, crs: Optional[rasterio.crs.CRS] = None) -> xarray.Dataset: ...

Data Management

Configuration and Utilities

Global configuration options, version information, exception handling, and utility functions for CRS conversion and coordinate management.

def set_options(**kwargs): ...
def show_versions(): ...

# Exception hierarchy
class RioXarrayError(Exception): ...
class NoDataInBounds(RioXarrayError): ...
class MissingSpatialDimensionError(RioXarrayError): ...
class MissingCRS(RioXarrayError): ...

Configuration and Utilities

Types

# Union types for file inputs
FileInput = Union[str, os.PathLike, rasterio.io.DatasetReader, rasterio.vrt.WarpedVRT]

# CRS input types
CRSInput = Union[rasterio.crs.CRS, str, dict, int]

# Geometry input types  
GeometryInput = Union[dict, Any]  # GeoJSON-like dict or geometry objects

# Sequence types
Sequence = collections.abc.Sequence
Callable = collections.abc.Callable

# Resampling options from rasterio
Resampling = rasterio.enums.Resampling