Dear Thomas

> Would that mean something like:
> 
> float snow_extent(time) ;
>    snow_extent:standard_name = "surface_snow_extent" ;
>    snow_extent:cell_methods = "area: sum where land" ;

Yes, that's right. Also
     snow_extent:units="m2"; // or equivalent

> To define such a threshold might be tricky :) Intuitively it should be a 
> threshold on area_fraction, but maybe not always. In our processing, we 
> compute a "probability of snow", and apply a threshold on this probability 
> for deciding on snow/no-snow. This probability and how we compute it in the 
> first place has nothing standardized.
> 
> But let's take the sea_ice_extent as an example. Sea ice extent is (usually) 
> the area of sea ice where sea_ice_area_fraction is more than 0.15. How should 
> we properly define a ice_extent variable that specifies the threshold?

We already have a standard_name of sea_ice_extent, as you pointed out, and
I think its definition should include the threshold to define what defines
the ice edge, as a default. However if you wanted to state the threshold
explicitly, I'd do it like this:

float ice_extent(time) ; 
  ice_extent:standard_name = "sea_ice_extent"; // the existing stdname
  ice_extent:cell_methods = "area: sum";
  ice_extent:coordinates = "threshold"; // time is a Unidata coord var
  ice_extent:units = "m^2"

float threshold;
  threshold:standard_name = "sea_ice_area_fraction"
  threshold:long_name = "scalar value to separate ice-covered from ice-free 
area"

int time(time);
  time:units = "seconds since xxxx"

That's essentially what you said, but we don't need "where" in this case,
I think, because the sea ice extent can only apply where there is sea ice,
unlike the snow extent.

Best wishes

Jonathan
_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to