nd.tiling package
This module may be used to mosaic and tile multiple satellite image products.
TODO: Contain buffer information in NetCDF metadata?
- nd.tiling.auto_merge(datasets, buffer=True, chunks={}, meta_variables=[], use_xarray_combine=True)[source]
Automatically merge a split xarray Dataset. This is designed to behave like
xarray.open_mfdataset
, except it supports concatenation along multiple dimensions.- Parameters
datasets (str or list of str or list of xarray.Dataset) – Either a glob expression or list of paths as you would pass to xarray.open_mfdataset, or a list of xarray datasets. If a list of datasets is passed, you should make sure that they are represented as dask arrays to avoid reading the whole dataset into memory.
buffer (bool, optional) – If True, attempt to automatically remove any buffer from the tiles (default: True).
meta_variables (list, optional) – A list of metadata items to concatenate as variables.
use_xarray_combine (bool, optional) – Use xr.combine_by_coords to combine the datasets (default: True). Only available from
xarray>=0.12.2
. Will fallback to a custom implementation ifFalse
or unavailable.
- Returns
The merged dataset.
- Return type
xarray.Dataset
- nd.tiling.debuffer(datasets, flat=True)[source]
Remove buffer from tiled datasets.
- Parameters
datasets (list of xr.Dataset) – The overlapping tiles.
flat (bool, optional) – If
True
, return a flat list. Otherwise, return a numpy array representing the correct order of the tiles (default: True).
- nd.tiling.map_over_tiles(files, fn, args=(), kwargs={}, path=None, suffix='', merge=True, overwrite=False, compute=True)[source]
Apply function to each tile.
- Parameters
files (str or list of str) – A glob expression matching all tiles. May also be a list of file paths.
fn (function) – The function to apply to each tile.
args (tuple, optional) – Additional arguments to fn
kwargs (dict, optional) – Additional keyword arguments to fn
path (str, optional) – The output directory. If None, write to same directory as input files. (default: None)
suffix (str, optional) – If input file is part.0.nc, will create part.0{suffix}.nc. (default: ‘’)
merge (bool, optional) – If True, return a merged view of the result (default: True).
overwrite (bool, optional) – Force overwriting existing files (default: False).
compute (bool, optional) – If True, compute result immediately. Otherwise, return a dask.delayed object (default: True).
- Returns
The (merged) output dataset.
- Return type
xarray.Dataset
- nd.tiling.sort_into_array(datasets, dims=None)[source]
Create an array corresponding to the way the datasets are tiled.
- nd.tiling.tile(ds, path, prefix='part', chunks=None, buffer=0)[source]
Split dataset into tiles and write to disk. If chunks is not given, use chunks in dataset.
- Parameters
ds (xarray.Dataset) – The dataset to split into tiles.
path (str) – The output directory in which to place the tiles.
prefix (str, optional) – The tile names will start with
`{prefix}.`
chunks (dict, optional) – A dictionary of the chunksize for every dimension along which to split. By default, use the dask array chunksize if the data is represented as dask arrays.
buffer (int or dict, optional) – The number of overlapping pixels to store around each tile (default: 0). Can be given as an integer or per dimension as dictionary.