Comments (2)
The rationale for this design is that these methods are designed to operate on output of the VectorWind
instance, and require shape compatibility with them.
In general, methods that do not rely on any properties of the attached object should simply be functions.
I'm aware of this basic principle of object-oriented design, and although the gradient and truncate methods do not use the values of u and v, they do use the spherical harmonic transform kernel created from the properties of the u and v fields. If they were functions we'd have to create a new transforms engine for each quantity, or have the user pass one in.
The use case these methods were created for is when you produce a scalar quantity from the windspharm object then want to compute the gradient, you know the shape is compatible with the spherical harmonic transform engine used to compute it (by definition) so it makes sense to reuse this rather than create a new one. This is demonstrated in the Rossby wave source example where the gradients of vorticity are required.
windspharm was never really meant to be a general purpose wrapper for pyspharm, but a facility for computing properties of the flow (defined by u and v).
from windspharm.
If they were functions we'd have to create a new transforms engine for each quantity, or have the user pass one in.
Okay, this is a fair point that I didn't quite realize. It seems reasonable to keep these on VectorWind, then. A comment in the code to clarify this reason could be a worthwhile note to future contributors.
from windspharm.
Related Issues (20)
- numpy.float64 object cannot be interpreted as an index HOT 1
- Class instance fails if u and v are just lat,long arrays with no other (eg time) dimension HOT 3
- Memory conservation: legfunc kwarg HOT 2
- Conda Install Packages Not Found HOT 3
- Enhancement - including APIs for adding filters HOT 1
- Curious issue creating WindVector from 2D arrays HOT 2
- divergence is not right? HOT 4
- Calculating shear and stretch deform using windspharm HOT 4
- take divergence and vorticity as input HOT 1
- Issue attempting to import Windspharm in script HOT 2
- Importing JRA-55 files with windspharm
- Problem with computing vorticity of NWP model output
- ValueError: Cube 'U velocity' must contain a single 1D x coordinate. HOT 1
- Typo in windspharm.xarray docs
- windspharm future
- prep_data occur TypeError: unhashable type: 'list' HOT 1
- Possible issue with windspharm package's calculations of irrotational winds
- installation on Apple silicon HOT 2
- windspharm.iris.VectorWind fails with Numpy v1.24 HOT 1
- ValueError: equally-spaced latitudes are invalid (they may be non-global) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from windspharm.