TLDR ¶ In this document, I go over some notation
Coordinates ¶ The coordinates define the space
Spatial Coordinates : x ∈ R D s Temporal Coordinates : t ∈ R + \begin{aligned}
\text{Spatial Coordinates}: &&
\mathbf{x}\in\mathbb{R}^{D_s} \\
\text{Temporal Coordinates}: &&
t\in\mathbb{R}^+
\end{aligned} Spatial Coordinates : Temporal Coordinates : x ∈ R D s t ∈ R + We have some spatiotemporal coordinates which are comprised the x vector and t scalar. Some spatial coordinate systems include some idealized ones like Spherical, Cartesian and Cylindrical.
Cartesian Coordinates : x = [ x , y , z ] ∈ R 3 Spherical Coordinates : x = [ λ , φ , r ] ∈ R 3 Cylindrical Coordinates : x = [ ρ , φ , z ] ∈ R 3 \begin{aligned}
\text{Cartesian Coordinates}: &&
\mathbf{x} &= [x,y,z] \in\mathbb{R}^{3} \\
\text{Spherical Coordinates}: &&
\mathbf{x} &= [\lambda, \varphi, r] \in\mathbb{R}^{3} \\
\text{Cylindrical Coordinates}: &&
\mathbf{x} &= [\rho, \varphi, z] \in\mathbb{R}^{3}
\end{aligned} Cartesian Coordinates : Spherical Coordinates : Cylindrical Coordinates : x x x = [ x , y , z ] ∈ R 3 = [ λ , φ , r ] ∈ R 3 = [ ρ , φ , z ] ∈ R 3 However, there are some more geographic coordinate systems. Most of these can be found within the Coordinate Reference System (CRS).
Domain ¶ The domain is the region or convex hull which is a subset of the coordinate space, R \mathbb{R} R .
Spatial Domain : x ∈ Ω ⊆ R D s Temporal Domain : t ∈ T ⊆ R + \begin{aligned}
\text{Spatial Domain}: &&
\boldsymbol{x}\in\Omega\subseteq\mathbb{R}^{D_s} \\
\text{Temporal Domain}: &&
t\in\mathcal{T}\subseteq\mathbb{R}^+
\end{aligned} Spatial Domain : Temporal Domain : x ∈ Ω ⊆ R D s t ∈ T ⊆ R + The spatial domain can be though of as the convex hull. However, the temporal domain is a real, ordered number line of positive integers.
Boundaries ¶ We also have boundaries associated with the domain, i.e., along the convex hull of the spatial domain or at the end-points of the line.
Spatial Domain Boundaries : x ∈ ∂ Ω ⊆ R D s Temporal Domain Boundaries : t ∈ ∂ T ⊆ R + \begin{aligned}
\text{Spatial Domain Boundaries}: &&
\boldsymbol{x}\in\partial\Omega\subseteq\mathbb{R}^{D_s} \\
\text{Temporal Domain Boundaries}: &&
t\in\partial\mathcal{T}\subseteq\mathbb{R}^+
\end{aligned} Spatial Domain Boundaries : Temporal Domain Boundaries : x ∈ ∂ Ω ⊆ R D s t ∈ ∂ T ⊆ R + Field ¶ A field is a scaler or vector-value which is associated with a coordinate within some domain.
u ⃗ = u ⃗ ( x , t ) u ⃗ : R D s × R + → R D u \begin{aligned}
\vec{\boldsymbol{u}}=\vec{\boldsymbol{u}}(\boldsymbol{x}, t) && &&
\vec{\boldsymbol{u}}:\mathbb{R}^{D_s}\times\mathbb{R}^+\rightarrow \mathbb{R}^{D_u}
\end{aligned} u = u ( x , t ) u : R D s × R + → R D u These could include some essential variables like height, temperature, or salinity. However, these could also be some derived variables like NDVI, sadness or poverty. In the geoscience case, thes can include some subjective variables like polar amplification, tropical amplification, and/or vortex stratification.
Pseudo-Code ¶ # initialize domain
domain: Domain = ...
# initialize values
init_fn: Callable = ...
u_values: Array["Nx Ny"] = init_fn(domain)
# initialize field
u: Field = Field(u_values, domain)
Discretized Domain ¶ Discretized Spatial Domain : x ∈ Ω ⊆ R D s Discretized Temporal Domain : t ∈ T ⊆ R + \begin{aligned}
\text{Discretized Spatial Domain}: &&
\boldsymbol{x}\in\boldsymbol{\Omega}\subseteq\mathbb{R}^{D_s} \\
\text{Discretized Temporal Domain}: &&
t\in\boldsymbol{\mathcal{T}}\subseteq\mathbb{R}^+
\end{aligned} Discretized Spatial Domain : Discretized Temporal Domain : x ∈ Ω ⊆ R D s t ∈ T ⊆ R + Boundaries ¶ We also have boundaries associated with the domain, i.e., along the convex hull of the spatial domain or at the end-points of the line.
Spatial Domain Boundaries : x ∈ ∂ Ω ⊆ R D s Temporal Domain Boundaries : t ∈ ∂ T ⊆ R + \begin{aligned}
\text{Spatial Domain Boundaries}: &&
\boldsymbol{x}\in\partial\boldsymbol{\Omega}\subseteq\mathbb{R}^{D_s} \\
\text{Temporal Domain Boundaries}: &&
t\in\partial\boldsymbol{\mathcal{T}}\subseteq\mathbb{R}^+
\end{aligned} Spatial Domain Boundaries : Temporal Domain Boundaries : x ∈ ∂ Ω ⊆ R D s t ∈ ∂ T ⊆ R + Coordinates ¶ Because we have a discretized domain, we don’t have an infinite set of coordinates that we can get from the domain. So, we can stack
Spatial Coordinates : X ∈ R D Ω × D s Temporal Coordinates : T ∈ R D T \begin{aligned}
\text{Spatial Coordinates}: &&
\mathbf{X}\in\mathbb{R}^{D_\Omega\times D_s} \\
\text{Temporal Coordinates}: &&
\mathbf{T}\in\mathbb{R}^{D_\mathcal{T}}
\end{aligned} Spatial Coordinates : Temporal Coordinates : X ∈ R D Ω × D s T ∈ R D T StepSize ¶ Again, because we have a discretized domain, we don’t have an infinite set of coordinates that we can get from the domain. In addition to stacking the coordinates, we can also draw
Spatial Coordinate Step : Δ x ∈ R D Ω × D s Temporal Coordinates : Δ t ∈ R D T \begin{aligned}
\text{Spatial Coordinate Step}: &&
\Delta\mathbf{x}\in\mathbb{R}^{D_\Omega\times D_s} \\
\text{Temporal Coordinates}: &&
\Delta t\in\mathbb{R}^{D_\mathcal{T}}
\end{aligned} Spatial Coordinate Step : Temporal Coordinates : Δ x ∈ R D Ω × D s Δ t ∈ R D T In many cases, we can make some simplifications about the size. For example, we can have a constant step size in space, e.g., Cartesian grid.
dx: Array[""] = ...
dy: Array[""] = ...
We can have a variable stepsize in each direction independently. This is analogous to a Rectilinear grid.
dx: Array["Dx"] = ...
dy: Array["Dy"] = ...
We can also have a variable stepsize in each direction. This is often referred to as a Curvilinear Grid.
dx: Array["Dx Dy"] = ...
dy: Array["Dx Dy"] = ...