A grid for modelling, analyse, map and visualise multidimensional and multivariate data. The module contains a class for generating grid objects with variables and functions that defines a multidimensional space with defined extent.
Main features:
- Labelled dimensions coordinates using xarray
- Fast processing of high resolution and low resolution data
- Using dask arrays
- 2D map plots and cross-sections
- 3D visualisation
- Features for modelling, analysis and visualisation
The repository contains:
- Module with class for functions and variables.
- Jupyter notebook tutorials:
-
- The grid object
-
- Import data
-
- Visualize data
-
- Introduction to processing and modelling using grid.
Software paper availible here: JORS
The package can be installed by adding it to your Python path, but can also be an incorporated part of you project.
Alternative 1
Using pip:
pip install agrid
or pip3 install agrid
Set up an environment for the installation. Use e.g. virtualenv or venv to set up your environment. For more complex isnallations, have a look at pipenv or poetry.
OSX users can set up an environment directely in conda.
conda install -c tobbetripitaka agrid
Alternative 2 Download module and import agrid from local path
See example in the Jupyter Notebook agrid.
To get started:
from agrid.grid import Grid
world = Grid()
# The grid is already populated with default coordinates
print(world.ds)
Further tutorials are available at GitHub tutorials
Data can be imported from grids, vector data files, rasters or numerically.
Data can be exported and saved as netCDF, raster files, text files.
Visualisation is not the core use of agrid, but it contains basic functions to plot maps and 3D renderings.
Additional functions are included to download data and structure the content.
---
If used in publication, please consider to cite:
@article{Staal2020a,
abstract = {Researchers use 2D and 3D spatial models of multivariate data of differing resolutions and formats. It can be challenging to work with multiple datasets, and it is time consuming to set up a robust, performant grid to handle such spatial models. We share 'agrid', a Python module which provides a framework for containing multidimensional data and functionality to work with those data. The module provides methods for defining the grid, data import, visualisation, processing capability and export. To facilitate reproducibility, the grid can point to original data sources and provides support for structured metadata. The module is written in an intelligible high level programming language, and uses well documented libraries as numpy, xarray, dask and rasterio.},
author = {St{\aa}l, Tobias and Reading, Anya M.},
doi = {10.5334/JORS.287},
issn = {20499647},
journal = {Journal of Open Research Software},
keywords = {Multivariate processing, Python, Regular grid, Spatial model},
month = {jan},
number = {1},
pages = {1--10},
publisher = {Ubiquity Press, Ltd.},
title = {{A grid for multidimensional and multivariate spatial representation and data processing}},
volume = {8},
year = {2020}
}