Rioxarray

import rioxarray # noqa

IO

Read xarray.Dataset


Read tif

rioxarray.open_rasterio("f.tif", masked=False)

rioxarray.open_rasterio("s3://bucket/f.tif")

Write tif

da.rio.set_spatial_dims('lon', 'lat').rio.write_crs("epsg:4326").rio.to_raster("file.tif")


with fsspec.open(f"s3://bucket/my.tif", "wb") as f:

da.rio.to_raster(f, driver='GTiff')

Projections

Reproject

da.rio.reproject(dst_crs=da1.rio.crs)

Reproject and clip

da.rio.reproject_clip(dst_crs=da1.rio.crs)


Analytics

Clip bounds

da = da.rio.set_spatial_dims('lon', 'lat').rio.write_crs("epsg:4326")

da = da.rio.clip(gdf.geometry, gdf.crs)

Attributes

da.rio.nodata

da.rio.bounds()

da.rio.width

da.rio.height

da.rio.crs.linear_units