- 
                Notifications
    
You must be signed in to change notification settings  - Fork 6
 
Open
Description
Seems we just need to use the units of the variable linked with the "climatology" attribute.
Here is an ncgen that demonstrates the problem. climatology_bounds variable will be read in as Float64 rather than DateTime
netcdf climatological_seasons {
dimensions:
  time=4;
  nv=2;
  lat=10; // added
  lon=10; // added
variables:
  float temperature(time,lat,lon);
    temperature:long_name="surface air temperature";
    temperature:cell_methods="time: minimum within years time: mean over years";
    temperature:units="K";
  double time(time);
    time:climatology="climatology_bounds";
    time:units="days since 1960-1-1";
  double climatology_bounds(time,nv);
data:  // time coordinates translated to datetime format
  time="1960-4-16", "1960-7-16", "1960-10-16", "1961-1-16" ;
  climatology_bounds="1960-3-1",  "1990-6-1",
                     "1960-6-1",  "1990-9-1",
                     "1960-9-1",  "1990-12-1",
                     "1960-12-1", "1991-3-1" ;    
}
If you save that as climatological_seasons.ncgen and run:
using NCDatasets
using NCDatasets.NetCDF_jll
NetCDF_jll.ncgen() do exe
    run(`$exe -k nc4 -b -o clim.nc climatological_seasons.ncgen`)
endThen load the file with NCDataset, you get a Float64 eltype for "climatology_bounds"
julia> NCDataset("clim.nc")
Dataset: clim.nc
Group: /
Dimensions
   time = 4
   nv = 2
   lat = 10
   lon = 10
Variables
  temperature   (10 × 10 × 4)
    Datatype:    Float32 (Float32)
    Dimensions:  lon × lat × time
    Attributes:
     long_name            = surface air temperature
     cell_methods         = time: minimum within years time: mean over years
     units                = K
  time   (4)
    Datatype:    DateTime (Float64)
    Dimensions:  time
    Attributes:
     climatology          = climatology_bounds
     units                = days since 1960-1-1
  climatology_bounds   (2 × 4)
    Datatype:    Float64 (Float64)
    Dimensions:  nv × timeMetadata
Metadata
Assignees
Labels
No labels