Example 3 : Tiled Domain
This example first reads in Global Ocean variables, generated by the MITgcm, which are split into a collection of subdomain arrays ( tiles ) using MeshArrays.jl. It then writes them to a collection of NetCDF files ( nctiles ) using NCTiles.jl.
Packages & Helper Functions
using NCTiles
import NCTiles: Dates
p=dirname(pathof(NCTiles))
fil = joinpath(p, "../examples/helper_functions.jl")
include(fil);File Paths & I/O Back-End
inputs=NCTiles.NCTILES_TESTCASES
NCTiles.ensure_testcases_installed()
outputs = joinpath(tempdir(),"NCTILES_TESTCASES_OUTPUT/ex3/")
if ~ispath(outputs); mkpath(outputs); end
nc=NCTiles.NCDatasets # I/O Back-EndNCDatasetsProcess Global Ocean Variables
Here we process a two-dimensional field (ETAN), two three-dimensional tracer fields (THETA, SALT), and the three components of a vector field (UVELMASS, VVELMASS and WVELMASS). In each case, flds denotes the lazy representation of the processing chain (incl. all needed metadata) which the write function instantiates (i.e. outputs to files).
Note: on a C-grid these components are staggered in space.
writedir=outputs
readme = ["File created by","example 3 of NCTiles.jl","on "*string(Dates.now())]3-element Vector{String}:
"File created by"
"example 3 of NCTiles.jl"
"on 2024-05-04T19:09:38.448"2D example
(flds,savename,readme)=prep_nctiles_native(inputs,"state_2d_set1","ETAN",Float32)
write(flds,savename,README=readme);3D examples
(flds,savename,readme)=prep_nctiles_native(inputs,"state_3d_set1","THETA",Float32);
write(flds,savename,README=readme);
(flds,savename,readme)=prep_nctiles_native(inputs,"state_3d_set1","SALT",Float32);
write(flds,savename,README=readme);3D vector field examples
(flds,savename,readme)=prep_nctiles_native(inputs,"trsp_3d_set1","UVELMASS",Float32);
write(flds,savename,README=readme);
(flds,savename,readme)=prep_nctiles_native(inputs,"trsp_3d_set1","VVELMASS",Float32);
write(flds,savename,README=readme);
(flds,savename,readme)=prep_nctiles_native(inputs,"trsp_3d_set1","WVELMASS",Float32);
write(flds,savename,README=readme);This page was generated using Literate.jl.