Example 6 : Climatological Mean
An example of one tile with a climatology time axis from the global ocean domain available in https://github.com/gaelforget/nctiles-testcases
using NCTiles
import NCTiles: NCDatasets, Dates
File Paths
inputs=NCTiles.NCTILES_TESTCASES
NCTiles.ensure_testcases_installed()
outputs = joinpath(tempdir(),"NCTILES_TESTCASES_OUTPUT/")
if ~ispath(outputs); mkpath(outputs); end
savedir = joinpath(outputs,"ex6")
if ~ispath(savedir); mkpath(savedir); end
field_name = "FeT"
README = ["File created by","example 1 of NCTiles.jl","on "*string(Dates.now())]
3-element Vector{String}:
"File created by"
"example 1 of NCTiles.jl"
"on 2024-05-04T18:20:19.323"
One tile example
ncvars,ncdims,fileatts = readncfile(joinpath(inputs,"diags_nctiles/FeT.0062.nc"))
rm(joinpath(savedir,"ex6a.nc"),force=true)
write(ncvars,joinpath(savedir,"ex6a.nc"),README=README)
closed Dataset
Define Dimensions
For reference:
- i_c: NCvar("i_c", "1", 30, 1.0:30.0, Dict("units" => "1","long_name" => "Cartesian coordinate 1"), NCDatasets)
- j_c: NCvar("j_c", "1", 30, 1.0:30.0, Dict("units" => "1","long_name" => "Cartesian coordinate 2"), NCDatasets)
- k_c: NCvar("k_c", "1", 50, 1.0:50.0, Dict("units" => "1","long_name" => "Cartesian coordinate 3"), NCDatasets)
- t: NCvar("t", "1", 12, 1.0:12.0, Dict("units" => "1","long_name" => "Time coordinate"), NCDatasets)
- tcb: NCvar("tcb", "", 2, Any[], Dict{Any,Any}(), NCDatasets)
Note : tcb is unitles, only has a dimension, no values
FeT_dims = [ncdims["i_c"],
ncdims["j_c"],
ncdims["k_c"],
ncdims["t"]]
clim_dims = [ncdims["tcb"],
ncdims["t"]]
2-element Vector{NCvar}:
NCvar("tcb", "", 2, Any[], Dict{Any, Any}(), NCDatasets)
NCvar("t", "1", 12, [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0], Dict("units" => "1", "long_name" => "Time coordinate"), NCDatasets)
Define Variables
Note : lat, lon, dep, tim, thic, area, land defined same as non-climatology example
FeT = NCvar("FeT", # name
"mmol Fe", # units
FeT_dims, # dimensions
NCData(joinpath(inputs,"diags_nctiles/FeT.0062.nc"), "FeT", NCDatasets, Float32), # values- to be read from file
Dict("coordinates" => "lon lat dep tim","long_name" => "FeT concentration"), # attributes
NCDatasets) # backend
climatology_bounds = NCvar("climatology_bounds", # name
"days since 1992-1-1 0:0:0", # units
clim_dims, # dimensions
NCData(joinpath(inputs,"diags_nctiles/FeT.0062.nc"), "climatology_bounds", NCDatasets, Float32), # values- to be read from file
Dict("long_name" => "climatology_bounds"), # attributes
ncvars["climatology_bounds"].backend) # backend
NCvar("climatology_bounds", "days since 1992-1-1 0:0:0", NCvar[NCvar("tcb", "", 2, Any[], Dict{Any, Any}(), NCDatasets), NCvar("t", "1", 12, [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0], Dict("units" => "1", "long_name" => "Time coordinate"), NCDatasets)], NCData("/home/runner/.julia/artifacts/4c36bdda8c1f8388b7f6de8da17d965dab33431e/nctiles-testcases-0.1/diags_nctiles/FeT.0062.nc", "climatology_bounds", NCDatasets, Float32), Dict("long_name" => "climatology_bounds"), NCDatasets)
Write to file
writevars = Dict(["FeT" => FeT,
"lon" => ncvars["lon"],
"lat" => ncvars["lat"],
"dep" => ncvars["dep"],
"tim" => ncvars["tim"],
"thic" => ncvars["thic"],
"area" => ncvars["area"],
"land" => ncvars["land"],
"climatology_bounds" => climatology_bounds])
rm(joinpath(savedir,"ex6b.nc"),force=true)
write(writevars,joinpath(savedir,"ex6b.nc"),README=README)
closed Dataset
This page was generated using Literate.jl.