GithubHelp home page GithubHelp logo

ncpp / ocgis Goto Github PK

View Code? Open in Web Editor NEW
70.0 11.0 19.0 12.3 MB

OpenClimateGIS is a set of geoprocessing and calculation tools for CF-compliant climate datasets.

License: Other

Shell 0.85% Python 99.12% Dockerfile 0.03%
climate climate-datasets thredds grid shapefiles gis mpi mpi4py netcdf gdal-python

ocgis's Introduction

Build Status

For documentation: https://ocgis.readthedocs.io/en/latest/

For additional project information: http://www.earthsystemcog.org/projects/openclimategis/

For questions or to file a bug report, please create a GitHub issue.

Overview

OpenClimateGIS (OCGIS) is a Python package designed for geospatial manipulation, subsetting, computation, and translation of spatiotemporal datasets stored in local NetCDF files or files served through THREDDS data servers. OpenClimateGIS has a straightforward, request-based API that is simple to use yet complex enough to perform a variety of computational tasks. The software is built entirely from open source packages.

OpenClimateGIS supports many file formats and NetCDF metadata conventions:

  • Climate & Forecast (CF) Grid
  • Unstructured Grid (UGRID)
  • SCRIP
  • ESMF Unstructured
  • GDAL-supported vector formats (ESRI Shapefiles, File Geodatabases, GeoPackage, GeoJSON, etc.)
  • Comma-Separated Value (CSV)

GIS Capabilities

  • Subsetting (intersects and intersection) of climate datasets by bounding box, Shapely geometries, or shapefiles (city centroid, river reach, a single county or watershed, state boundaries).
  • Time and level range subsetting. Also allows for arbitrary label-based slicing.
  • Single or multi-dataset requests (concatenation).
  • Area-weighted aggregation (spatial averaging) to selection geometries.
  • Handles CF-based coordinate systems with full support for coordinate transformations (including the rotated pole coordinate system)
  • Geometry wrapping and unwrapping to maintain logically consistent longitudinal domains.
  • Polygon, line, and point geometric abstractions.
  • ESMPy regridding

Data Conversion

  • Access to local NetCDF data or data hosted remotely on a THREDDS (OPeNDAP protocol) data server. Only the piece of data selected by an area-of-interest is transferred from the remote server.
  • Stream climate data to multiple formats.
  • Extensible converter framework to add custom formats.
  • Automatic generation of request metadata.
  • Push data to a familiar format to perform analysis or keep the data as NumPy arrays, perform analysis, and dump to a supported format.

Computation

  • Extensible computational framework for arbitrary inclusion of NumPy-based calculations.
  • Apply computations to entire data arrays or temporal groups.
  • Computed data may be streamed to any supported formats.

ocgis's People

Contributors

arthur-e avatar bekozi avatar huard avatar joshuasims avatar murphysj avatar rokuingh avatar timcera avatar tylere avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ocgis's Issues

disconnect download from geometric operations

This is useful for operations on remote data. A single request for the data would limit the number of hits to a remote server, but this may not be necessary and should only be implemented if the server loads are eventually deemed to high.

time: 2 to 3 days

spatial transformations for coordinate systems

spatial coordinates claim to be lat/lon but are often in ranges 0-360, etc. requiring a grid shift to actual WGS84 coordinates. provide options in the interface for requesting a spatial shift.

metadata formatting for nc

identify how to handle metadata extracted from a netcdf. nc metadata should also be provided with all outputs.

handle orphan variables in nc output

there may be variables contained in a netcdf file that are not associated with the target variable (excluding bounds which are searched for automatically). it is likely not a good idea to strip these, however, some may just be junk leftover from a processing output. right now what is written are only the target variable's bounds and dimensions.

fix nc output for non-calculation requests

currently, only sparse metadata is applied to netcdf outputs. also, for calculations, the time variables are wonky. for example, it is possible to generate a representative date for a month,year combination, but what in the case of just month? if the combinations were limited, it would be easier to implement. currently, a time group variable and dimension are created and the date parts added as variables (i.e. month, year).

ordering of coordinates in nc output

the need to handle wrapping of longitude causes potentially strange ordering of coordinates in the nc output for longitude values -180 to 0 (180 to 360). verifying coordinate shift through datum testing is also recommended.

transposed iterators

add support for transposed iterators (variable and calculation names as headers).

add spatial index intersection

currently only provides support for intersects. the spatial index is currently created inside the spatial interface. may need to move it out to connect to clip/intersection operations.

zipped output

add option to converters to provide zipped output in addition to folder location.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.