windspharm.xarray
¶
Spherical harmonic vector wind computations (xarray
interface).
- class windspharm.xarray.VectorWind(u, v, rsphere=6371200.0, legfunc='stored')[source]¶
Vector wind computations (
xarray
interface).Initialize a VectorWind instance.
Arguments:
- u, v
Zonal and meridional components of the vector wind respectively. Both components should be
DataArray
instances. The components must have the same dimension coordinates and contain no missing values.
Optional argument:
- rsphere
The radius in metres of the sphere used in the spherical harmonic computations. Default is 6371200 m, the approximate mean spherical Earth radius.
- legfunc
‘stored’ (default) or ‘computed’. If ‘stored’, associated legendre functions are precomputed and stored when the class instance is created. This uses O(nlat**3) memory, but speeds up the spectral transforms. If ‘computed’, associated legendre functions are computed on the fly when transforms are requested. This uses O(nlat**2) memory, but slows down the spectral transforms a bit.
Example:
Initialize a
VectorWind
instance with zonal and meridional components of the vector wind:from windspharm.xarray import VectorWind w = VectorWind(u, v)
- u()[source]¶
Zonal component of vector wind.
Returns:
- u
The zonal component of the wind.
Example:
Get the zonal component of the vector wind:
u = w.u()
- v()[source]¶
Meridional component of vector wind.
Returns:
- v
The meridional component of the wind.
Example:
Get the meridional component of the vector wind:
v = w.v()
- magnitude()[source]¶
Wind speed (magnitude of vector wind).
Returns:
- speed
The wind speed.
Example:
Get the magnitude of the vector wind:
spd = w.magnitude()
- vrtdiv(truncation=None)[source]¶
Relative vorticity and horizontal divergence.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- vrt, div
The relative vorticity and divergence respectively.
See also:
Examples:
Compute the relative vorticity and divergence:
vrt, div = w.vrtdiv()
Compute the relative vorticity and divergence and apply spectral truncation at triangular T13:
vrtT13, divT13 = w.vrtdiv(truncation=13)
- vorticity(truncation=None)[source]¶
Relative vorticity.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- vrt
The relative vorticity.
See also:
Examples:
Compute the relative vorticity:
vrt = w.vorticity()
Compute the relative vorticity and apply spectral truncation at triangular T13:
vrtT13 = w.vorticity(truncation=13)
- divergence(truncation=None)[source]¶
Horizontal divergence.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- div
The divergence.
See also:
Examples:
Compute the divergence:
div = w.divergence()
Compute the divergence and apply spectral truncation at triangular T13:
divT13 = w.divergence(truncation=13)
- planetaryvorticity(omega=None)[source]¶
Planetary vorticity (Coriolis parameter).
Optional argument:
- omega
Earth’s angular velocity. The default value if not specified is 7.292x10**-5 s**-1.
Returns:
- pvorticity
The planetary vorticity.
See also:
Example:
Compute planetary vorticity using default values:
pvrt = w.planetaryvorticity()
Override the default value for Earth’s angular velocity:
pvrt = w.planetaryvorticity(omega=7.2921150)
- absolutevorticity(omega=None, truncation=None)[source]¶
Absolute vorticity (sum of relative and planetary vorticity).
Optional arguments:
- omega
Earth’s angular velocity. The default value if not specified is 7.292x10**-5 s**-1.
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- avorticity
The absolute (relative + planetary) vorticity.
See also:
vorticity
,planetaryvorticity
.Examples:
Compute absolute vorticity:
avrt = w.absolutevorticity()
Compute absolute vorticity and apply spectral truncation at triangular T13, also override the default value for Earth’s angular velocity:
avrt = w.absolutevorticity(omega=7.2921150, truncation=13)
- sfvp(truncation=None)[source]¶
Streamfunction and velocity potential.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- sf, vp
The streamfunction and velocity potential respectively.
See also:
streamfunction
,velocitypotential
.Examples:
Compute streamfunction and velocity potential:
sf, vp = w.sfvp()
Compute streamfunction and velocity potential and apply spectral truncation at triangular T13:
sfT13, vpT13 = w.sfvp(truncation=13)
- streamfunction(truncation=None)[source]¶
Streamfunction.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- sf
The streamfunction.
See also:
sfvp
.Examples:
Compute streamfunction:
sf = w.streamfunction()
Compute streamfunction and apply spectral truncation at triangular T13:
sfT13 = w.streamfunction(truncation=13)
- velocitypotential(truncation=None)[source]¶
Velocity potential.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- vp
The velocity potential.
See also:
sfvp
.Examples:
Compute velocity potential:
vp = w.velocity potential()
Compute velocity potential and apply spectral truncation at triangular T13:
vpT13 = w.velocity potential(truncation=13)
- helmholtz(truncation=None)[source]¶
Irrotational and non-divergent components of the vector wind.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- uchi, vchi, upsi, vpsi
Zonal and meridional components of irrotational and non-divergent wind components respectively.
See also:
irrotationalcomponent
,nondivergentcomponent
.Examples:
Compute the irrotational and non-divergent components of the vector wind:
uchi, vchi, upsi, vpsi = w.helmholtz()
Compute the irrotational and non-divergent components of the vector wind and apply spectral truncation at triangular T13:
uchiT13, vchiT13, upsiT13, vpsiT13 = w.helmholtz(truncation=13)
- irrotationalcomponent(truncation=None)[source]¶
Irrotational (divergent) component of the vector wind.
Note
If both the irrotational and non-divergent components are required then
helmholtz
should be used instead.Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- uchi, vchi
The zonal and meridional components of the irrotational wind respectively.
See also:
Examples:
Compute the irrotational component of the vector wind:
uchi, vchi = w.irrotationalcomponent()
Compute the irrotational component of the vector wind and apply spectral truncation at triangular T13:
uchiT13, vchiT13 = w.irrotationalcomponent(truncation=13)
- nondivergentcomponent(truncation=None)[source]¶
Non-divergent (rotational) component of the vector wind.
Note
If both the non-divergent and irrotational components are required then
helmholtz
should be used instead.Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- upsi, vpsi
The zonal and meridional components of the non-divergent wind respectively.
See also:
Examples:
Compute the non-divergent component of the vector wind:
upsi, vpsi = w.nondivergentcomponent()
Compute the non-divergent component of the vector wind and apply spectral truncation at triangular T13:
upsiT13, vpsiT13 = w.nondivergentcomponent(truncation=13)
- gradient(chi, truncation=None)[source]¶
Computes the vector gradient of a scalar field on the sphere.
Argument:
- chi
A scalar field. It must be a
DataArray
with the same latitude and longitude dimensions as the vector wind components that initialized theVectorWind
instance.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation.
Returns:
- uchi, vchi
The zonal and meridional components of the vector gradient respectively.
Examples:
Compute the vector gradient of absolute vorticity:
avrt = w.absolutevorticity() avrt_zonal, avrt_meridional = w.gradient(avrt)
Compute the vector gradient of absolute vorticity and apply spectral truncation at triangular T13:
avrt = w.absolutevorticity() avrt_zonalT13, avrt_meridionalT13 = w.gradient(avrt, truncation=13)
- truncate(field, truncation=None)[source]¶
Apply spectral truncation to a scalar field.
This is useful to represent other fields in a way consistent with the output of other
VectorWind
methods.Argument:
- field
A scalar field. It must be a
DataArray
with the same latitude and longitude dimensions as the vector wind components that initialized theVectorWind
instance.
Optional argument:
- truncation
Truncation limit (triangular truncation) for the spherical harmonic computation. If not specified it will default to nlats - 1 where nlats is the number of latitudes.
Returns:
- truncated_field
The field with spectral truncation applied.
Examples:
Truncate a scalar field to the computational resolution of the
VectorWind
instance:scalar_field_truncated = w.truncate(scalar_field)
Truncate a scalar field to T21:
scalar_field_T21 = w.truncate(scalar_field, truncation=21)