xESMF: Universal Regridder for Geospatial Data

xESMF is a Python package for regridding. It is

  • Powerful: It uses ESMF/ESMPy as backend and can regrid between general curvilinear grids with all ESMF regridding algorithms, such as bilinear, conservative and nearest neighbour.
  • Easy-to-use: It abstracts away ESMF’s complicated infrastructure and provides a simple, high-level API, compatible with xarray as well as basic numpy arrays.
  • Fast: It is faster than ESMPy’s original Fortran regridding engine in serial case, and also supports dask for out-of-core, parallel computation.

How to ask for help

The GitHub issue tracker is the primary place for bug reports. If you hit any issues, I recommend the following steps:

  • First, search for existing issues. Other people are likely to hit the same problem and probably have already found the solution.
  • For a new bug, please craft a minimal bug report with reproducible code. Use synthetic data or upload a small sample of input data (~1 MB) so I can quickly reproducible your error.
  • For platform-dependent problems (such as kernel dying and installation error), please also show how to reproduce your system environment, otherwise I have no way to diagnose the issue. The best approach is probably finding an official Docker image that is closest to your OS (such as Ubuntu or CentOS), and build your Python environment starting with such image, to see whether the error still exists. Alternatively you can select from public cloud images, such as Amazon Machine Images or Google Cloud Images. If the error only happens on your institution’s HPC cluster, please contact the system administrator for help.

For general “how-to” questions that are not bugs, you can also post on StackOverflow (ref: xarray questions) and send me the link. For small questions also feel free to @ me on Twitter.

The “Don’ts”:

  • Do not describe your problem in a private email, as this would require me to reply similar emails many times. Keep all discussions in public places like GitHub or StackOverflow.
  • Do not only show the error/problem without providing the steps to reproduce it.
  • Do not take screenshots of your code, as they are not copy-pastable.

How to support xESMF

xESMF is so far my personal unfunded project; most development happens during my (very limited) free time at graduate school. Your support in any form will be appreciated.

The easy ways (takes several seconds):

More advanced ways: