Skip to main content

numpy array with grids and associated operations

Project description

Spacegrids is an open source library providing a Numpy array with grids, labelled axes and associated grid-related mathematical methods such as regridding and integration. Spacegrids provides an object data model of Netcdf data that ensures consistency between a Numpy data array and its grid under common operations (and so avoiding common pitfalls related to axis interpretation), and much more. It is a write less do more library for everyday use.

These interactive plots from Netcdf data are based on Spacegrids.

The Field, Gr (grid) and Coord objects make everyday use easy:

>>> import spacegrids as sg
>>> D = sg.info(nonick = True)
>>> P = sgPproject(D['my_project'] , nonick = True)
>>> P.load(['temperature','u'])
>>> # obtain the axes objects under their names T,X,Y,Z:
>>> for c in P['some_experiment'].axes:
>>>   exec c.name + ' = c'  # now we can refer to X,Y
>>> TEMP = P['some_experiment']['temperature']
>>> U = P['some_experiment']['u'] # zonal velocity
>>> TEMP_sliced = TEMP[Y,:50] # slice. Note Y axis object
>>> m_TEMP = TEMP_sliced/(X*Y) # take hor. mean
>>> TEMP_regridded = TEMP.regrid(U.gr)  # U grid differs

Features

  • A numpy array with grid allowing automatic alignment and dimension broadcasting

  • Easy to use and intuitive regridding functionality

  • A data object model corresponding closely to Netcdf

  • Easier IO via abstraction of IO with multiple Netcdf files

  • Makes working with output of many experiments easy via aggregation methods

  • The Field class eliminates errors arising from picking the wrong array index

  • Quicker plotting due to automatic labels, axes etc.

  • Distance-related methods such as spatial differentiation and integration on sphere

  • Extensive unit tests and documentation

There is lots of documentation, both in the source code and elsewhere. Other documentation can be found at:

Installation

Install spacegrids simply by running (on command line):

pip install spacegrids

Dependencies: numpy, scipy, matplotlib (NetCDF4 optional). On Ubuntu/ Debian, install dependencies via package manager if pip install fails:

apt-get install python-{tk,numpy,matplotlib,scipy}

On Mac, pip can be installed via “sudo easy_install pip”.

Contribute

  • Issue Tracker: github.com/willo12/spacegrids/issues

  • Source Code: github.com/willo12/spacegrids

Support

If you are having issues, please let us know.

License

The project is licensed under the BSD license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spacegrids-1.9.tar.gz (91.6 kB view details)

Uploaded Source

File details

Details for the file spacegrids-1.9.tar.gz.

File metadata

  • Download URL: spacegrids-1.9.tar.gz
  • Upload date:
  • Size: 91.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for spacegrids-1.9.tar.gz
Algorithm Hash digest
SHA256 79bce87fb777899b0d014c1222e645849fab3c2f815bd44899f766a37d592d30
MD5 64345c263dc711ce1a89ba00f7284990
BLAKE2b-256 272fae92422f65f2c76c9c9a5fcdaff39df466b7d223f241eb6ddfda50ca2238

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page