skip to navigation
skip to content

spacegrids 1.6.1

numpy array with grids and associated operations

Package Documentation

Latest Version: 1.9



The Python 2.7 Spacegrids module, “Numpy on grids”, provides useful classes for analyzing spatial data defined on grids (e.g. covering the Earth’s surface). It interprets Netcdf metadata, and is designed to ensure consistency between data and grid information via interacting objects of fields, grids, coordinates and axes. It provides intuitive short expressions for complex operations, including volume and distance related concepts such as integration and differentiation.

Interprets metadata for most climate model output and datasets in Netcdf format, and is confirmed to work with UVic (all versions), CSIRO Mk3L, FAMOUS, CCM3.6 (Atmosphere), Loveclim, various Levitus Data, GPlates output. If you have problems reading data and/ or interpreting metadata (or find a bug), the author would be happy to take a look (see also Github for email etc). Frequent updating is recommended for bug fixes and improvement.

Installs by typing “pip install spacegrids” on command line. On Mac, pip can be installed via “sudo easy_install pip”. On Ubuntu/ Debian, install dependencies via package manager if pip install fails:

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

Now using NetCDF4 by default. (If installed, with fallback to

More advanced tutorial:

The following statement provides all functionality:

Import with “import spacegrids as sg”. Once loaded, sg allows an overview of the available data via A project object is created via P = sg.Project(D[‘some_project’]). This then allows fields to be loaded automatically for all experiment subdirectories. Data grids are constructed based on the Netcdf metadata.

Data directory tree:

Before using projects, Netcdf data must be organised in a projects directory tree. Create a directory named PROJECTS inside your home directory (name default), to contain all the data for all the projects. Then create a subdirectory for each of your projects, say one is called test_project. When using and sg.project with the nonick = True argument (see documentation), this is all that is needed to allow the sg module to recognise these subdirectories as representing projects. This will allow the sg Python code to regard all Netcdf files placed directly inside test_project as belonging to individual experiments. Alternatively, instead of a single file, a subdirectory may represent an experiment. So directories inside the test_project directory are associated with output from a single experiment each, where all Netcdf files contained within are interpreted as belonging to that same experiment.

To get started in ipython (bring up with sg.overview() ):

import spacegrids as sg

D = = True)

P = sg.Project(D[‘my_project’] , nonick = True)


# obtain the axes under their names T, X, Y, Z in namespace:

for c in P[‘some_experiment’].axes:
exec + ‘ = c’

# some examples:

TEMP = P[‘some_experiment’][‘temperature’]

U = P[‘some_experiment’][‘u’]

TEMP_sliced = TEMP[Y,:50]

m_TEMP = TEMP_sliced/(X*Y)

TEMP_regridded = TEMP(

The following python modules are required:

numpy matplotlib (requires python-tk) scipy

To obtain pip on Ubuntu/ Debian: (sudo) apt-get install python-pip.

Tutorial: Older documentation:

File Type Py Version Uploaded on Size
spacegrids-1.6.1-py2.7.egg (md5) Python Egg 2.7 2014-07-28 205KB
spacegrids-1.6.1.tar.gz (md5) Source 2014-07-28 75KB