ajdawson / windspharm

A Python library for spherical harmonic computations on vector winds.
http://ajdawson.github.io/windspharm
MIT License
82 stars 36 forks source link

Reveal getuv methods from pyspharm #116

Open abrammer opened 3 years ago

abrammer commented 3 years ago

It can be desirable to perform vorticity / divergence surgery and then invert back to u/v components. pyspharm has this method internally and it'd be nice to reveal through the windspharm interfaces.

Seems to work well with pretty simple api calls, and some array checks on input. I duplicated the array checks used from .gradient() in each interface but I think this could be refactored to also work for the inputs totruncate() and gradient() and reduce some duplicate code.

I have no affinity to using the method name of getuv for now I just copied the pyspharm naming.

This worked surprisingly well with the test suite so I'm trusting that it works and that the tests work, will use it on some real cases to confirm.

Example workflow for this utility: https://colab.research.google.com/drive/1QcgI7IlQZnthnwCv42Y2pScuN1wWBCkn?usp=sharing