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.
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()
andgradient()
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