RAVE
pyraveio.c File Reference

Python version of the RaveIO API. More...

#include "pyravecompat.h"
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include "pyraveio.h"
#include "pycartesian.h"
#include "pypolarvolume.h"
#include "pypolarscan.h"
#include "pycartesianvolume.h"
#include "pyverticalprofile.h"
#include "pyrave_debug.h"
#include "rave_alloc.h"
#include "hlhdf.h"
#include "hlhdf_debug.h"

Macros

#define PYRAVEIO_MODULE
 include correct part of pyraveio.h
 
#define raiseException_gotoTag(tag, type, msg)
 Sets a python exception and goto tag.
 
#define raiseException_returnNULL(type, msg)
 Sets a python exception and returns NULL.
 

Functions

 PYRAVE_DEBUG_MODULE ("_raveio")
 Name of the module debugged.
 
 PyDoc_STRVAR (_pyraveio_doc, "This instance wraps the IO-routines used when writing and/or reading files through RAVE.\n" "\n" "The members of each object are:\n" " * version - ODIM version that will be used when writing this object. Can be one of:\n" " + RaveIO_ODIM_Version_2_0\n" " + RaveIO_ODIM_Version_2_1\n" " + RaveIO_ODIM_Version_2_2\n" " + RaveIO_ODIM_Version_2_3 (default)\n" " * read_version - ODIM version of the read file. Note, this is only reflecting actual read file and not if file is written with different version. Can be one of:\n" " + RaveIO_ODIM_Version_UNDEFINED\n" " + RaveIO_ODIM_Version_2_0\n" " + RaveIO_ODIM_Version_2_1\n" " + RaveIO_ODIM_Version_2_2\n" " + RaveIO_ODIM_Version_2_3 (default)\n" "\n" " * h5radversion - showing the H5 rad version of the read file. Can be one of:\n" " + RaveIO_ODIM_H5rad_Version_UNDEFINED\n" " + RaveIO_ODIM_H5rad_Version_2_0\n" " + RaveIO_ODIM_H5rad_Version_2_1\n" " + RaveIO_ODIM_H5rad_Version_2_2\n" " + RaveIO_ODIM_H5rad_Version_2_3\n" "\n" " * objectType - What type of object that has been read. Can be one of the following:\n" " + Rave_ObjectType_PVOL\n" " + Rave_ObjectType_CVOL\n" " + Rave_ObjectType_SCAN\n" " + Rave_ObjectType_RAY\n" " + Rave_ObjectType_AZIM\n" " + Rave_ObjectType_IMAGE\n" " + Rave_ObjectType_COMP\n" " + Rave_ObjectType_XSEC\n" " + Rave_ObjectType_VP\n" " + Rave_ObjectType_PIC\n" "\n" " * file_format - The file format. Either read or the one to use when writing. Can be one of \n" " + RaveIO_ODIM_FileFormat_UNDEFINED\n" " + RaveIO_ODIM_FileFormat_HDF5\n" "\n" " * object - The actual object beeing written or read. Upon successful reading, this object will always be set and when writing\n" " this object has to be set.\n" "\n" " * compression_level- The compression level beeing used. Range between 0 and 9 where 0 means no compression and 9 means highest compression.\n" " Compression level 1 is lowest compression ratio but fastest and level 9 is highest compression ratio but slowest.\n " "\n" "The below fcp_<members> are all used for optimizing the file storage. Please refer to HDF5 documentation for more information.\n" " * fcp_userblock - Integer value." "\n" " * fcp_sizes - Sizes must be a tuple containing 2 integers representing (size, addr).\n" "\n" " * fcp_symk - Symk must be a tuple containing 2 integers representing (ik, lk).\n" "\n" " * fcp_istorek - Integer value.\n" "\n" " * fcp_metablocksize- Integer value.\n" "\n" "Besides the above members, there are a few methods that also are of interest and further information about these can" "be found by printing the doc about each invidivdual function.\n" " * close()\n" " * load()\n" " * save()\n")
 
 PyDoc_STRVAR (_pyraveio_module_doc, "This class provides functionality for reading and writing files supported by RAVE.\n" "\n" "There are few different ways to handle files and also a couple of different protocols that are supported all depending on\n" "how rave was configured and built.\n" "Currently, there are 3 different formats supported. ODIM H5, BUFR H5 (reading) and CF Conventions (NetCDF) (writing). This build supports\n" "ODIM H5 2.2\n" "\n" "This documentation will only provide information about ODIM H5 since this is the format mostly used within rave.\n" "\n" "To read a hdf-file:\n" ">>> import _raveio\n" ">>> obj = _raveio.open(\"seang_202001100000.h5\")\n" "\n" "After you have opened the file, you maybe want to know what type of product you have read\n" "Either you compare the objects format_type with _raveio:s list of constants:\n" " * Rave_ObjectType_PVOL\n" " * Rave_ObjectType_CVOL\n" " * Rave_ObjectType_SCAN\n" " * Rave_ObjectType_RAY\n" " * Rave_ObjectType_AZIM\n" " * Rave_ObjectType_IMAGE\n" " * Rave_ObjectType_COMP\n" " * Rave_ObjectType_XSEC\n" " * Rave_ObjectType_VP\n" " * Rave_ObjectType_PIC\n" "\n" "Like\n" ">>> if obj.format_type == _raveio.Rave_ObjectType_PVOL:\n" "and so on\n" "\n" "There are also the possibility to check odim version and file format and compare these against predefined constants and can be found by typing\n" ">>> dir(_raveio)\n")
 
 MOD_INIT (_raveio)
 

Variables

PyTypeObject PyRaveIO_Type
 

Detailed Description

Python version of the RaveIO API.

Author
Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
Date
2009-12-10

Macro Definition Documentation

◆ PYRAVEIO_MODULE

#define PYRAVEIO_MODULE

include correct part of pyraveio.h

◆ raiseException_gotoTag

#define raiseException_gotoTag ( tag,
type,
msg )
Value:
{PyErr_SetString(type, msg); goto tag;}

Sets a python exception and goto tag.

◆ raiseException_returnNULL

#define raiseException_returnNULL ( type,
msg )
Value:
{PyErr_SetString(type, msg); return NULL;}

Sets a python exception and returns NULL.

Function Documentation

◆ PYRAVE_DEBUG_MODULE()

PYRAVE_DEBUG_MODULE ( "_raveio" )

Name of the module debugged.