Skip to content

wankoelias/mapchete_xarray

 
 

Repository files navigation

mapchete xarray

This driver enables mapchete to write multidimensional arrays into a tile directory structure.

https://travis-ci.org/ungarj/mapchete_xarray.svg?branch=master https://coveralls.io/repos/github/ungarj/mapchete_xarray/badge.svg?branch=master

Usage

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

Installation

# install using pip:
pip install mapchete_xarray
# verify driver is vailable ('xarray' should be listed as output format):
mapchete formats

Current Limitations

  • no reprojection allowed
  • when reading from existing output, process metatiling must be smaller than xarray output metatiling

License

MIT License

Copyright (c) 2019-2020 EOX IT Services

About

xarray output driver for mapchete

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%