Geometry
Global Geometry
ClimaCore.Geometry.AbstractGlobalGeometry
— TypeAbstractGlobalGeometry
Determines the conversion from local coordinates and vector bases to a Cartesian basis.
ClimaCore.Geometry.CartesianGlobalGeometry
— TypeCartesianGlobalGeometry()
Specifies that the local coordinates align with the Cartesian coordinates, e.g. XYZPoint
aligns with Cartesian123Point
, and UVWVector
aligns with Cartesian123Vector
.
LocalGeometry
ClimaCore.Geometry.LocalGeometry
— TypeLocalGeometry
The necessary local metric information defined at each node.
Internals
ClimaCore.Geometry.Δz_metric_component
— FunctionΔz_metric_component(::Type{<:AbstractPoint})
The index of the z-component of an abstract point in an AxisTensor
.
Coordinates
ClimaCore.Geometry.AbstractPoint
— TypeAbstractPoint
Represents a point in space.
The following types are supported:
XPoint(x)
YPoint(y)
ZPoint(z)
XYPoint(x, y)
XZPoint(x, z)
XYZPoint(x, y, z)
LatPoint(lat)
LongPoint(long)
LatLongPoint(lat, long)
LatLongZPoint(lat, long, z)
Cartesian1Point(x1)
Cartesian2Point(x2)
Cartesian3Point(x3)
Cartesian12Point(x1, x2)
Cartesian13Point(x1, x3)
Cartesian123Point(x1, x2, x3)
ClimaCore.Geometry.float_type
— Functionfloat_type(T)
Return the floating point type backing T
: T
can either be an object or a type.
Points represent locations in space, specified by coordinates in a given coordinate system (Cartesian, spherical, etc), whereas vectors, on the other hand, represent displacements in space.
An analogy with time works well: times (also called instants or datetimes) are locations in time, while, durations are displacements in time.
Note 1: Latitude and longitude are specified via angles (and, therefore, trigonometric functions: cosd
, sind
, acosd
, asind
, tand
,...) in degrees, not in radians. Moreover, lat
(usually denoted by $\theta$) $\in [-90.0, 90.0]$, and long
(usually denoted by $\lambda$) $\in [-180.0, 180.0]$.
Note 2:: In a Geometry.LatLongZPoint(lat, long, z)
, z
represents the elevation above the surface of the sphere with radius R (implicitly accounted for in the geoemtry).
Note 3: There are also a set of specific Cartesian points (Cartesian1Point(x1)
, Cartesian2Point(x2)
, etc). These are occasionally useful for converting everything to a full Cartesian domain (e.g. for visualization purposes). These are distinct from XYZPoint
as ZPoint
can mean different things in different domains.