Hi-- playing with this very briefly. It is a nice start.
This is the file I looked at:
dimensions:
lat = 181 ;
lon = 360 ;
time = UNLIMITED ; // (112 currently)
variables:
float lat(lat) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
float lon(lon) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
double puq(time, lat, lon) ;
puq:_FillValue = -1.e+30f ;
puq:long_name = "Vertical integral of eastward water vapour flux" ;
puq:missing_value = -1.e+30f ;
puq:units = "kg m**-1 s**-1" ;
double pvq(time, lat, lon) ;
pvq:_FillValue = -1.e+30f ;
pvq:long_name = "Vertical integral of northward water vapour flux" ;
pvq:missing_value = -1.e+30f ;
pvq:units = "kg m**-1 s**-1" ;
int time(time) ;
time:units = "hours since 1900-01-01 00:00:00.0" ;
time:long_name = "time" ;
time:calendar = "gregorian" ;
// global attributes:
:Conventions = "CF-1.6" ;
Some critical things:
- the missing_value and _FillValue attributes are special and indicate data is not available -- they shouldn't be used for creating maximums / minimums / averages / any statistic. The above file has meaningless stats in aether b/c likely these values weren't skipped.
- things like fluxes, including precipitation, need a decent colorbar where the 0 value isn't saturated. I like the MeteoSwisse ones here-- https://www.ncl.ucar.edu/Document/Graphics/color_table_gallery.shtml
- Things like fluxes often have direction, and are stored by u (east-west) and v (north-south)-- the plot of the above file should combine puq and pvq into a vector-magnitude type plot
- The filtered and trend need user controlled options. Trend on 6-hourly, one month long output makes little sense. "Trend" on an annual cycle should be a cycle / sine function of some sort. It would be neat to be able to do EOF/PC analysis on the fly.
- Creating a simple anomaly between two files is a pretty important basic function - otherwise visualizing global data is often dominated by well known latitudinal land/sea gradients over the seasonal cycle which may (not) be of interest.
Hi-- playing with this very briefly. It is a nice start.
This is the file I looked at:
dimensions:
lat = 181 ;
lon = 360 ;
time = UNLIMITED ; // (112 currently)
variables:
float lat(lat) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
float lon(lon) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
double puq(time, lat, lon) ;
puq:_FillValue = -1.e+30f ;
puq:long_name = "Vertical integral of eastward water vapour flux" ;
puq:missing_value = -1.e+30f ;
puq:units = "kg m**-1 s**-1" ;
double pvq(time, lat, lon) ;
pvq:_FillValue = -1.e+30f ;
pvq:long_name = "Vertical integral of northward water vapour flux" ;
pvq:missing_value = -1.e+30f ;
pvq:units = "kg m**-1 s**-1" ;
int time(time) ;
time:units = "hours since 1900-01-01 00:00:00.0" ;
time:long_name = "time" ;
time:calendar = "gregorian" ;
// global attributes:
:Conventions = "CF-1.6" ;
Some critical things: