This driver enables mapchete to write multidimensional arrays into a tile directory structure.
Example .mapchete
file:
process: process.py
zoom_levels:
min: 0
max: 12
input:
output:
format: xarray
path: /some/output/path
dtype: uint16
bands: 3
storage: zarr # or netcdf
pyramid:
grid: geodetic
metatiling: 2
Example process file:
from dateutil import parser
import numpy as np
import xarray as xr
def execute(mp, stack_height=10):
# create 4D arrays with current tile shape and dtype
arrs = [
np.ones((3, ) + mp.tile.shape, dtype="uint16")
for _ in range(1, stack_height)
]
# create timestamps for each array
timestamps = [parser.parse("2018-04-0%s" % i) for i in range(1, stack_height)]
# build xarray with time axis
timeseries = xr.DataArray(
np.stack(arrs), coords={'time': timestamps}, dims=('time', 'bands', 'x', 'y')
)
# return to write
return timeseries
# install using pip:
pip install mapchete_xarray
# verify driver is vailable ('xarray' should be listed as output format):
mapchete formats
- no reprojection allowed
- when reading from existing output, process metatiling must be smaller than xarray output metatiling
MIT License
Copyright (c) 2019-2020 EOX IT Services