Coverage for stems/io/rasterio_.py : 85%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
""" Rasterio IO helpers """
#: Default Rasterio driver format #: Attributes to keep from output of ``xarray.open_rasterio``
crs=None, transform=None, nodata=None, **meta): """ Save a DataArray to a rasterio/GDAL dataset Parameters ---------- xarr : xarray.DataArray 2D or 3D DataArray to save. Shape is assumed to be ``(width, height, )`` for 2D or ``(count, width, height, )`` for 3D arrays path : str or Path Save DataArray to this file path driver : str, optional Rasterio dataset driver crs : str, dict, or rasterio.crs.CRS, optional Optionally, provide CRS information about ``xarr``. Will try to read from ``xarr`` if not provided transform : affine.Affine, optional Optionally, provide affine transform information about ``xarr``. Will try to read from ``xarr`` if not provided nodata : int or float, optional No data value to set **meta Additional keyword arguments to :py:func:`rasterio.open`. Useful for specifying block sizes, color interpretation, and other metadata.
Returns ------- path : Path Saved file path
Raises ------ ValueError Raised if ``xarr`` is not 2D or 3D """ raise TypeError('Can only save 2D or 3D ``xarray.DataArray``s to ' 'rasterio/GDAL datasets')
driver=driver, **meta)
# TODO: support some kind of block writing if chunked (dask array) # Write data
# Write 1st dim ("band") coordinate names as band descriptions
# Write attrs as tags (except "grid_mapping") k: v for k, v in xarr.attrs.items() if k not in ('grid_mapping', ) }
dst.nodata = nodata
dim_y=None, dim_x=None, dim_band=None, **meta): # Expand 2D to 3D before processing xarr = xarr.expand_dims(dim_band) xarr.coords['band'] = [xarr.name] if xarr.name else ['Band_1'] raise ValueError('Can only save 2D or 3D DataArrays')
raise KeyError(f'Cannot find band dimension "{dim_band}" in dims')
'driver': DEFAULT_RASTERIO_DRIVER, 'count': dims_[dim_band], 'width': dims_[dim_x], 'height': dims_[dim_y], 'dtype': xarr.dtype, 'crs': crs, 'transform': transform }
|