Skip to main content

DSL for creating NetCDF files

Project description

A DSL for creating NetCDF files. Here’s a simple example:

from pup import *

class Test(NetCDF):
    # NC_GLOBAL attributes go here
    history = 'Created for a test'

    # dimensions need to be set explicitly only when they
    # have no variable associated with them
    dim0 = Dimension(2)

    # variables that don't specify dimensions are assumed to
    # be their own dimension
    time = Variable(range(10), record=True, units='days since 2008-01-01')

    # now a variable with dimensions (time,)
    temperature = Variable(range(10), (time,), units='deg C')

Test.save('simple.nc')

This will produce the following NetCDF file:

netcdf simple {
dimensions:
    dim0 = 2 ;
    time = UNLIMITED ; // (10 currently)
variables:
    int time(time) ;
        time:units = "days since 2008-01-01" ;
    int temperature(time) ;
        temperature:units = "deg C" ;

// global attributes:
        :history = "Created for a test" ;
data:

 time = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;

 temperature = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;
}

By default it uses pupynere for creating files, but this can be overloaded:

from netCDF4 import Dataset

class Test(NetCDF):
    loader = Dataset
    ...
Test.save('simple.nc', format='NETCDF4')

Changelog:

0.1.3:

Pass keyword arguments in save() to the loader.

0.1.2:

Improved optional loader detection.

0.1.1:

Added pupynere dependency.

0.1:

Initial release.

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

Puppy-0.1.3.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

Puppy-0.1.3-py2.6.egg (4.0 kB view details)

Uploaded Source

File details

Details for the file Puppy-0.1.3.tar.gz.

File metadata

  • Download URL: Puppy-0.1.3.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Puppy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e8439cea13bab9e528914cfec097679c68860f31c7a5428b034ab987ae37750c
MD5 e59effed90cf57c6d59109fb063629d5
BLAKE2b-256 96e1546038f85c686535956067d638ba9fb31e789528bb680efecd833a4fef3b

See more details on using hashes here.

Provenance

File details

Details for the file Puppy-0.1.3-py2.6.egg.

File metadata

  • Download URL: Puppy-0.1.3-py2.6.egg
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Puppy-0.1.3-py2.6.egg
Algorithm Hash digest
SHA256 f9b65c0622ad99a22bd417f9e00a0a13351d8662aaa763845b1abc061e23e641
MD5 85bc35b230d13f28fc9a77fbf0318031
BLAKE2b-256 d3eb24139186b1e28069dc7f67387b49dce825ff66288b2f5a83c6432fa44dde

See more details on using hashes here.

Provenance

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