ESMPy: A Python Package for High-Performance Grid Remapping Using the Earth System Modeling Framework
At the present time, the ESMPy supports bilinear, finite element patch recovery and first-order conservative methods. There is also an option to ignore unmapped destination points and mask out points on either the source or destination. Regridding on the sphere takes place in 3D Cartesian space, so the pole problem is not an issue as it can be with other Earth system grid remapping software. The previous Python interface to ESMF regridding, called ESMP (2012), provided interfaces that looked and functioned in a manner very similar to those in the ESMF Fortran interface. In ESMP, the functionality to create logically rectangular and unstructured grid objects from file was only partially completed, and the build system was based on GNU Make and uses environment variables. The ESMP package is still supported but it is no longer under active development.
ESMPy (2013), which is intended to replace ESMP, is designed to function in a more Pythonic fashion. The installation is done with distutils using a standard Python approach. The ability to create logically rectangular and unstructured grids from NetCDF files based on proposed Climate and Forecast conventions (GridSpec and UGRID, respectively), is complete. Several new examples have been added to the website, and the module structure has been organized to allow for incorporation of other helpful packages for Earth system modeling.
ESMPy requires Python 2.6, numpy 1.6.1 (which contains ctypes) and an ESMF installation. Numpy arrays and callable objects are used to access and modify object data allocated from within the ESMF library. ESMPy is regression tested nightly, and is supported on Darwin, Linux and Cray systems with the GNU compiler suite and OpenMPI communications.
As part of the greater ESMF project, ESMPy is distinguished by its strong emphasis on open source and access, community governance, and distributed development. The user base has grown quickly, and the package is being incorporated into several other software tools and frameworks. These include the Ultrascale Visualization Climate Data Analysis Tools (UV-CDAT), Iris, PyFerret, and the Community Surface Dynamics Modeling System (CSDMS).
Upcoming development plans for ESMPy involve incorporation of the Open Climate Geographic Information Systems (OCGIS) package to handle data manipulation between GIS and climate data formats. Also, incorporation of a discretization type for observational data streams, a higher order conservative regridding method, parallel input of grids from file, and support for other ESMF utilities like time keeping and components is anticipated.