1. Roberto De Almeida
  2. Pupynere


Pupynere / docs / index.rst


This is a Python implementation of the NetCDF specification written from scratch. The name started as a tongue-in-cheek joke, being a contraction of PUre PYthon NEtcdf REader. Since the module is written in pure Python there's no need to compile and link it against Unidata's NetCDF library, so this small module became somewhat popular before a more serious name could be found. The module is now also a NetCDF writer, so it can be used to create files.

Pupynere implements the same API as other NetCDF modules such as Scientific.IO.NetCDF, pynetcdf, netCDF4-python and scipy.io.netcdf (which is based on Pupynere). If you want to use a more Pythonic API to create NetCDF files, take a look at Puppy.

Even though it is written in Python, Pupynere can efficiently access large NetCDF files since the header will contain the position of the data in the file. This allows the module too mmap() the data, creating Numpy arrays mapped directly to the data on disk, so that only the data used is read into memory.


To create a NetCDF file:

Note the assignment of range(10) to time[:]. Exposing the slice of the time variable allows for the data to be set in the object, rather than letting range(10) overwrite the time variable.

To read the NetCDF file we just created:


You can install the latest version (|release|) using pip. After installing pip you can install Pupynere with this command:

$ pip install Pupynere

This will install Pupynere together with Numpy.


If you need any help with Pupynere, please feel free to send an email to the mailing list. You can also open an issue at the repository.