skip to navigation
skip to content

Not Logged In

PythonicGRIB 0.2.0

A Pythonic interface for the ECMWF's GRIB API

PythonicGrib is a Python wrapper for the ECMWF's GRIB API which allows interaction with GRIB messagese in a pythonic way and allows the user to be sure their code is free of memory leaks by transfering bookkeeping tasks to a context manager.

Working with GRIB files in a context manager like this:

>>> with GribFile(filename) as grib:
...     # Print number of messages in file
...     len(grib)
...     # Open all messages in file
...     for i in range(len(grib)):
...         msg = GribMessage(grib)
...         print(msg["shortName"])
...     len(grib.open_messages)
>>> # When the file is closed, any open messages are closed
>>> len(grib.open_messages)

Treat messages as a key-value pair:

>>> with GribFile(filename) as grib:
...     # Access shortNames of all messages
...     for i in range(len(grib)):
...         msg = GribMessage(grib)
...         print(msg["shortName"])
...     # Report number of keys in message
...     len(msg)
...     # Report message size in bytes
...     msg.size
...     # Report keys in message
...     msg.keys()
...     # Check if value is missing
...     msg.missing("scaleFactorOfSecondFixedSurface")
...     # Set scalar value
...     msg["scaleFactorOfSecondFixedSurface"] = 5
...     # Check key's value
...     msg["scaleFactorOfSecondFixedSurface"]
...     # Set value to missing
...     msg.set_missing("scaleFactorOfSecondFixedSurface")
...     # Missing values raise exception when read with dict notation
...     msg["scaleFactorOfSecondFixedSurface"]
...     # Array values are set transparently
...     msg["values"] = [1, 2, 3]
...     # Messages can be written to file
...     with open(testfile, "w") as test:
...         msg.write(test)
...     # Messages can be cloned from other messages
...     msg2 = GribMessage(clone=msg)
...     # If desired, messages can be closed manually or used in with
...     msg.close()

Let indexes worry about taking care of themselves:

>>> # Create index from file with keys
>>> with GribIndex(filename, keys) as idx:
...     # Write index to file
...     idx.write(index_file)
>>> # Read index from file
>>> with GribIndex(file_index=index_file) as idx:
...     # Add new file to index
...     idx.add(other_filename)
...     # Report number of unique values for given key
...     idx.size(key)
...     # Report unique values indexed by key
...     idx.values(key)
...     # Request GribMessage matching key, value
...     msg = idx.select({key: value})
... # No messages are left open after index closes
... idx.open_messages

Install from PyPI with:

pip install PythonicGRIB

Or manually from the sources with:

python setup.py install

Author: Daniel Lee

 
File Type Py Version Uploaded on Size
PythonicGRIB-0.2.0.tar.gz (md5) Source 2014-03-07 5KB
  • Downloads (All Versions):
  • 6 downloads in the last day
  • 65 downloads in the last week
  • 357 downloads in the last month