nd

Framework for the analysis of n-dimensional, multivariate Earth Observation data

https://github.com/jnhansen/nd

Science Score: 20.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.1%) to scientific vocabulary

Keywords

earth-observation netcdf remote-sensing sar satellite-imagery xarray
Last synced: 5 months ago · JSON representation

Repository

Framework for the analysis of n-dimensional, multivariate Earth Observation data

Basic Info
  • Host: GitHub
  • Owner: jnhansen
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 95.7 MB
Statistics
  • Stars: 17
  • Watchers: 2
  • Forks: 2
  • Open Issues: 5
  • Releases: 0
Topics
earth-observation netcdf remote-sensing sar satellite-imagery xarray
Created almost 8 years ago · Last pushed over 4 years ago
Metadata Files
Readme License

README.md

Build Status codecov Documentation PyPI version DOI

nd

Overview

The main goal of this library is to generalize methods that work in lower dimensions to higher-dimensional data.

Multi-dimensional data often arise as spatio-temporal datacubes, e.g. climate data or time series of geospatial satellite data. Many data analysis methods are designed to work on single images or time series at a single point. nd makes it easy to broadcast these methods across a whole dataset, adding additional features such as automatic parallelization.

Examples include

  • pixelwise change detection algorithms
  • reprojection between coordinate systems
  • machine learning algorithms

nd is built on xarray. Internally, all data are passed around as xarray Datasets and all provided methods expect this format as inputs. An xarray.Dataset is essentially a Python representation of the NetCDF file format and as such easily reads/writes NetCDF files.

nd is making heavy use of the xarray and rasterio libraries. The GDAL library is only used via rasterio as a compatibility layer to enable reading supported file formats. nd.open_dataset may be used to read any NetCDF file or any GDAL-readable file into an xarray.Dataset.

Read the Documentation for detailed user guides.

You can also have a look at these two example notebooks:

Installation

pip install nd

It is recommended that you have GDAL available before installation and also make sure to have the correct environment variable set:

bash export GDAL_DATA=$(gdal-config --datadir)

Note that the following algorithms require the libgsl-dev C library to be installed:

  • nd.change.OmnibusTest

What does this library add?

xarray provides all data structures required for dealing with n-dimensional data in Python. nd explicitly does not aim to add additional data structures or file formats. Rather, the aim is to bring the various corners of the scientific ecosystem in Python closer together.

As such, nd adds functionality to more seamlessly integrate libraries like xarray, rasterio, scikit-learn, etc.

For example:

  • nd allows to reproject an entire multivariate and multi-temporal dataset between different coordinate systems by wrapping rasterio methods.

  • nd provides a wrapper for scikit-learn estimators to easily apply classification algorithms to raster data.

Additionally, nd contains a growing library of algorithms that are especially useful for spatio-temporal datacubes, for example:

  • change detection algorithms

  • spatio-temporal filters

Since xarray is our library of choice for representing geospatial raster data, this is also an attempt to promote the use of xarray and the NetCDF file format in the Earth Observation community.

Why NetCDF?

NetCDF (specifically NetCDF-4) is a highly efficient file format that was built on top of HDF5. It is capable of random access which ties in with indexing and slicing in numpy. Because slices of a large dataset can be accessed independently, it becomes feasible to handle larger-than-memory file sizes. NetCDF-4 also supports data compression using zlib. Random access capability for compressed data is maintained through data chunking. Furthermore, NetCDF is designed to be fully self-descriptive. Crucially, it has a concept of named dimensions and coordinates, can store units and arbitrary metadata.

Feature requests and bug reports

For feature requests and bug reports please submit an issue on the Github repository.

GitHub Events

Total
Last Year

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 726
  • Total Committers: 3
  • Avg Commits per committer: 242.0
  • Development Distribution Score (DDS): 0.023
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Johannes Hansen j****n@e****k 709
Johannes Hansen j****n@g****m 15
Johannes Hansen j****n 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 48
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 8 days
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 0.19
  • Average comments per pull request: 0.98
  • Merged pull requests: 48
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jnhansen (14)
  • liuzd2017 (1)
  • hsz591031981 (1)
Pull Request Authors
  • jnhansen (48)
Top Labels
Issue Labels
enhancement (10) bug (4) docs (2) wontfix (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 57 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 5
  • Total versions: 5
  • Total maintainers: 1
pypi.org: nd

A Python library for n-dimensional Earth observation data processing

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 5
  • Downloads: 57 Last month
Rankings
Dependent repos count: 6.8%
Dependent packages count: 7.4%
Stargazers count: 14.5%
Average: 15.6%
Forks count: 22.8%
Downloads: 26.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

doc/environment.yml conda
  • gsl
  • numpy
  • python 3.7.*
doc/requirements.txt pypi
  • dask *
  • matplotlib *
  • numpy *
  • pandas *
  • shapely *
  • xarray *