Jonathan Gregory wrote:
Dear Jonathan,
this is a very good idea.
I tried to include a sample of indices in this system and make some changes.
I hope that I have used it the right way.
I created the cdl with an example of my old proposed statistic indices list
and add the cell_methods and standard_names for the rest of this kind of
statistic
indices. If this works well we could add the rest.
> Dear Heinke
>
> To return to the discussion about thresholds.
>
>
>>>> The percentile is not only a value for example 0 degC. It is not
>>>> enough to say the percentile is a threshold with value '90 th' and period
>>>> 1961-1990.' It is a field. The percentile depends on lat and lon.
>>>> What can we do ?
>>>>
>>> In the general case, the air_temperature_threshold is simply a given field, and
>>> the quantity you want is defined as the fraction of occasions which exceeded
>>> this threshold field, which is a function of lat and lon. In that case the
>>> air_temperature_threshold would not be given as a coordinate value; some other
>>> method would be needed to point to the air_temperature_threshold variable. The
>>> description of the statistic itself would be simpler, while the
>>> air_temperature_threshold field would describe itself. That would be more
>>> convenient, because the field would have its own coordinate variables and so on
>>> and these could be used to specify the time-period, the percentile, etc.
>>>
>>>
>> This looks good. Do you want to allow a link to the
>> air_temperature_threshold
>> file in the header. Is this possible ?
>>
>
> I think that the air_temperature_threshold could be an auxiliary coordinate
> variable. That would be consistent with using a scalar coordinate variable for
> a constant threshold. For instance
>
> variables:
> float n1(lat,lon);
> n1:standard_name="number_of_days_with_air_temperature_above_threshold";
> n1:coordinates="c1 time";
> n1:cell_methods="time: minimum within days time: sum over days"
> float c1;
> c1:standard_name="air_temperature";
> c1:units="K";
>
float n1(lat,lon);
n1:standard_name="number_of_days_with_air_temperature_threshold";
n1:coordinates="c1 time";
n1:cell_methods="time: indicator of minimum above threshold within
days time: sum over longer period"
float c1;
c1:standard_name="air_temperature";
c1:units="C";
/* threshold in C */
cell_methods="time: {minimum|maximum} {above|below} threshold within
days time: sum over longer period"
standard_names=
number_of_days_with_air_temperature_threshold
number_of_days_with_lwe_thickness_of_precipitation_amount_threshold
number_of_days_with_wind_speed_threshold
frost_days_index_per_time_period
summer_daxs_index_per_time_period
ice_days_index_per_time_period
tropical_nights_index_per_time_period
heavy_precipitation_days_index_per_time_period
very_heavy_precipitation_days_index_per_time_period
wet_days_index_per_time_period
strong_breeze_days_index_per_time_period
strong_gale_days_index_per_time_period
hurricane_days_index_per_time_period
> float n2(c2,lat,lon);
>
This is a 3-dim field. I don't understand. Do you have an example ?
> n2:standard_name="number_of_days_with_air_temperature_above_threshold";
> n2:coordinates="time";
> n2:cell_methods="time: minimum within days time: sum over days"
> float c2(c2);
> c2:standard_name="air_temperature";
> c2:units="K";
>
> float n3(lat,lon);
> n3:standard_name="number_of_days_with_air_temperature_above_threshold";
> n3:coordinates="c3 time";
> n3:cell_methods="time: minimum within days time: sum over days"
> float c3(lat,lon);
> c3:standard_name="air_temperature";
> c3:units="K";
> double time;
> time:units="days since 1960-1-1";
>
float n3(lat,lon);
n3:standard_name="fraction_of_days_with_air_temperature_percentile";
n3:coordinates="c3 time";
/* depends on field c3 and time */
n3:cell_methods="time: daily mean below c3 time: fraction over
longer period"
/* cell method fraction is not degree Celsius */
float c3(lat,lon);
c3:standard_name="air_temperature";
c3:units="K";
c3:cell_methods="time: 5 days centered time: daily mean value:
time: 10 th percentile over 1961-1990"
double time;
time:units="days since 1960-1-1";
cell_methods="time: {daily mean|daily minimum|daily maximum|daily sum}
{above|below} [array]: fraction over longer period"
cell_methods="time: 5 days centered time: {daily mean|daily
minimum|daily maximum|daily sum} value: time: {values between 0 and 100}
th percentile over {period i.e.1961-1990} "
standard_names=fraction_of_days_with_air_temperature_percentile
cold_days_percent_wrt_10th_percentile_of_reference_period
warm_nights_percent_wrt_90th_percentile_of_reference_period
very_warm_days_percent_wrt_90th_percentile_of_reference_period
warm_days_percent_wrt_90th_percentile_of_reference_period
cold_nights_percent_wrt_10th_percentile_of_reference_period
very_cold_nights_percent_wrt_10th_percentile_of_reference_period
> for specifying the number of days with minimum temperature above a single
> threshold c1, a number of thresholds c2, or a geographically dependent
> threshold c3. c3 could be described by further attributes. It could, for
> example, be a data variable with its own scalar time coordinate and its own
> cell_methods, describing a climatological mean.
>
> It would be a requirement of a quantity having the standard name
> number_of_days_with_air_temperature_above_threshold that there must be a
> coordinate variable, scalar coordinate variable or auxiliary coordinate
> variable with standard name air_temperature to provide the threshold. It would
> also be stated that a cell_methods entry for "within days" would indicate the
> time-processing done on the air temperature before the threshold was
> applied. It would be fine to provide a description in the long_name as well,
> as you currently do.
>
>
>> I am still waiting for the 'where' proposal.
>>
> That proposal is on the CF trac system at
> http://cf-pcmdi.llnl.gov/trac/ticket/17
> and you are welcome to comment there.
>
I made a comment. Thank you
and
Best whishes
Heinke
> Best wishes
>
> Jonathan
>
Received on Wed Jan 16 2008 - 03:11:26 GMT