netcdf 200304_chilbolton_cloud-fraction-ecmwf-grid-stats { dimensions: height = 20 ; height_raw = 60 ; height_coarse = 4 ; fraction = 10 ; variables: float height(height) ; height:long_name = "Height above ground" ; height:units = "m" ; height:comment = "This height variable is regularly spaced (as opposed to the raw model height), thereby enabling the results for one model\n", "to be easily compared to those for another." ; float height_raw(height_raw) ; height_raw:long_name = "Mean height of model levels above ground" ; height_raw:units = "m" ; height_raw:comment = "This variable contains the mean heights of the levels in the model. All variables that are a function of \"height_raw\" are suffixed\n", "by \"_raw\". Note that such variables should not be compared between different models because the fact that there are different model\n", "resolutions is likely to favour models with a coarser vertical resolution. Use variables that are a function of \"height\" instead." ; float height_coarse_min(height_coarse) ; height_coarse_min:long_name = "Height above ground of the bottom of each range used for PDFs" ; height_coarse_min:units = "m" ; float height_coarse_max(height_coarse) ; height_coarse_max:long_name = "Height above ground of the top of each range used for PDFs" ; height_coarse_max:units = "m" ; float time_resolution ; time_resolution:long_name = "Temporal resolution of model" ; time_resolution:units = "hours" ; time_resolution:missing_value = -999.f ; time_resolution:_FillValue = -999.f ; float fraction(fraction) ; fraction:long_name = "Cloud fraction" ; fraction:units = "1" ; fraction:comment = "This variable provides the cloud-fraction thresholds for the contingency tables and the skill scores,\n", "and the mid-points of the bins used in the cloud-fraction probability density functions." ; float altitude ; altitude:units = "m" ; altitude:long_name = "Height of radar above mean sea level" ; float rain_rate_threshold ; rain_rate_threshold:long_name = "Rain rate threshold" ; rain_rate_threshold:units = "mm hr-1" ; rain_rate_threshold:comment = "Measurements above a surface rain rate of greater than this value were excluded due to the possibility of strong attenuation leading to an underestimate of cloud fraction." ; float forecast_time_min ; forecast_time_min:long_name = "Minimum time since forecast initialization" ; forecast_time_min:units = "hours" ; forecast_time_min:missing_value = -999.f ; forecast_time_min:_FillValue = -999.f ; forecast_time_min:comment = "The hourly model forecasts evaluated in this file are from a range of different forecast lead times.\n", "This variable is the minimum forecast lead time." ; float forecast_time_max ; forecast_time_max:long_name = "Maximum time since forecast initialization" ; forecast_time_max:units = "hours" ; forecast_time_max:missing_value = -999.f ; forecast_time_max:_FillValue = -999.f ; forecast_time_max:comment = "The hourly model forecasts evaluated in this file are from a range of different forecast lead times.\n", "This variable is the maximum forecast lead time." ; float mean_observed_fraction(height) ; mean_observed_fraction:long_name = "Mean observed cloud fraction" ; mean_observed_fraction:units = "1" ; mean_observed_fraction:missing_value = -999.f ; mean_observed_fraction:_FillValue = -999.f ; mean_observed_fraction:comment = "This variable is the mean cloud fraction versus height as determined by the radar and lidar.\n", "Only data coincident with the model were used, and measurements above a surface rain rate of greater than 2 mm h-1\n", "were not used due to the possibility of strong attenuation leading to an underestimate of cloud fraction.\n", "A missing value indicates that in this height range there were no simultaneous model and observational data." ; float mean_model_fraction(height) ; mean_model_fraction:long_name = "Mean model cloud fraction" ; mean_model_fraction:units = "1" ; mean_model_fraction:missing_value = -999.f ; mean_model_fraction:_FillValue = -999.f ; mean_model_fraction:comment = "This variable is the mean model cloud fraction versus height. Only data with coincident observations were used,\n", "and data above an observed surface rain rate of greater than 2 mm h-1 have not been used due to the possibility\n", "of bias in the observations leading to an unfair comparison. A missing value indicates that in this height range there were no\n", "simultaneous model and observational data." ; float mean_mod_model_fraction(height) ; mean_mod_model_fraction:long_name = "Mean model cloud fraction modified to remove undetectable cloud" ; mean_mod_model_fraction:units = "1" ; mean_mod_model_fraction:missing_value = -999.f ; mean_mod_model_fraction:_FillValue = -999.f ; mean_mod_model_fraction:comment = "This variable is the mean model cloud fraction versus height, after modification to remove ice clouds that are deemed to be below the\n", "radar sensitivity threshold. This was done by converting the known minimum detectable radar reflectivity as a function of height into\n", "a minimum detectable ice water content. Rather than simply setting the model cloud fraction to zero when the model ice water content\n", "falls below this threshold, the Hogan and Illingworth (2003, J. Atmos. Sci., 60, 756-767) formula has been used to estimate the PDF of\n", "ice water content to be expected in the model grid box. This modified cloud fraction is also used in the calculation of skill scores.\n", "The user is advised to compare this variable with the unmodified mean_model_fraction to see at which heights this modification has had\n", "a significant effect. Only data with coincident observations were used, and data above an observed surface rain rate of greater than\n", "2 mm h-1 have not been used due to the possibility of bias in the observations leading to an unfair comparison.\n", "A missing value indicates that in this height range there were no simultaneous model and observational data." ; float mean_observed_fraction_raw(height_raw) ; mean_observed_fraction_raw:long_name = "Mean observed cloud fraction on model grid" ; mean_observed_fraction_raw:units = "1" ; mean_observed_fraction_raw:missing_value = -999.f ; mean_observed_fraction_raw:_FillValue = -999.f ; mean_observed_fraction_raw:comment = "This variable is the same as mean_observed_fraction except that it was calculated on the original model grid." ; float mean_model_fraction_raw(height_raw) ; mean_model_fraction_raw:long_name = "Mean model cloud fraction on model grid" ; mean_model_fraction_raw:units = "1" ; mean_model_fraction_raw:missing_value = -999.f ; mean_model_fraction_raw:_FillValue = -999.f ; mean_model_fraction_raw:comment = "This variable is the same as mean_model_fraction except that it was calculated on the original model grid." ; float mean_mod_model_fraction_raw(height_raw) ; mean_mod_model_fraction_raw:long_name = "Mean model cloud fraction on model grid, modified to remove undetectable cloud" ; mean_mod_model_fraction_raw:units = "1" ; mean_mod_model_fraction_raw:missing_value = -999.f ; mean_mod_model_fraction_raw:_FillValue = -999.f ; mean_mod_model_fraction_raw:comment = "This variable is the same as mean_mod_model_fraction except that it was calculated on the original model grid." ; float mean_modmax_model_fraction_raw(height_raw) ; mean_modmax_model_fraction_raw:long_name = "Mean model cloud fraction on model grid, modified to remove undetectable cloud assuming radar 3 dB more sensitive than best estimate" ; mean_modmax_model_fraction_raw:units = "1" ; mean_modmax_model_fraction_raw:missing_value = -999.f ; mean_modmax_model_fraction_raw:_FillValue = -999.f ; mean_modmax_model_fraction_raw:comment = "This variable is the same as mean_mod_model_fraction_raw except that in removing undetectable cloud the radar has been assumed to be 3 dB more sensitive.\n", "In combination with mean_modmin_model_fraction_raw, this variable provides an estimate of the uncertainty in the procedure of removing undetectable clouds." ; float mean_modmin_model_fraction_raw(height_raw) ; mean_modmin_model_fraction_raw:long_name = "Mean model cloud fraction on model grid, modified to remove undetectable cloud assuming radar 3 dB less sensitive than best estimate" ; mean_modmin_model_fraction_raw:units = "1" ; mean_modmin_model_fraction_raw:missing_value = -999.f ; mean_modmin_model_fraction_raw:_FillValue = -999.f ; mean_modmin_model_fraction_raw:comment = "This variable is the same as mean_mod_model_fraction_raw except that in removing undetectable cloud the radar has been assumed to be 3 dB more sensitive.\n", "In combination with mean_modmax_model_fraction_raw, this variable provides an estimate of the uncertainty in the procedure of removing undetectable clouds." ; float foo_observed_raw(height_raw, fraction) ; foo_observed_raw:long_name = "Mean observed frequency of occurrence on model grid" ; foo_observed_raw:units = "1" ; foo_observed_raw:missing_value = -999.f ; foo_observed_raw:_FillValue = -999.f ; foo_observed_raw:comment = "This variable is the mean observed frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable." ; float foo_model_raw(height_raw, fraction) ; foo_model_raw:long_name = "Mean model frequency of occurrence on model grid" ; foo_model_raw:units = "1" ; foo_model_raw:missing_value = -999.f ; foo_model_raw:_FillValue = -999.f ; foo_model_raw:comment = "This variable is the mean model frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable." ; float foo_mod_model_raw(height_raw, fraction) ; foo_mod_model_raw:long_name = "Mean model frequency of occurrence on model grid, modified to remove undetectable cloud" ; foo_mod_model_raw:units = "1" ; foo_mod_model_raw:missing_value = -999.f ; foo_mod_model_raw:_FillValue = -999.f ; foo_mod_model_raw:comment = "This variable is the mean model frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable." ; float foo_modmax_model_raw(height_raw, fraction) ; foo_modmax_model_raw:long_name = "Mean model frequency of occurrence on model grid, modified to remove undetectable cloud assuming radar 3 dB more sensitive than best estimate" ; foo_modmax_model_raw:units = "1" ; foo_modmax_model_raw:missing_value = -999.f ; foo_modmax_model_raw:_FillValue = -999.f ; foo_modmax_model_raw:comment = "This variable is the mean model frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, but assuming the radar to be 3 dB more\n", "sensitive. In combination with foo_modmin_model_raw, it therefore provides an estimate of the uncertainty in\n", "this procedure." ; float foo_modmin_model_raw(height_raw, fraction) ; foo_modmin_model_raw:long_name = "Mean model frequency of occurrence on model grid, modified to remove undetectable cloud assuming radar 3 dB less sensitive than best estimate" ; foo_modmin_model_raw:units = "1" ; foo_modmin_model_raw:missing_value = -999.f ; foo_modmin_model_raw:_FillValue = -999.f ; foo_modmin_model_raw:comment = "This variable is the mean model frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, but assuming the radar to be 3 dB less\n", "sensitive. In combination with foo_modmax_model_raw, it therefore provides an estimate of the uncertainty in\n", "this procedure." ; float awp_observed_raw(height_raw, fraction) ; awp_observed_raw:long_name = "Mean observed amount when present on model grid" ; awp_observed_raw:units = "1" ; awp_observed_raw:missing_value = -999.f ; awp_observed_raw:_FillValue = -999.f ; awp_observed_raw:comment = "This variable is the mean observed cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable." ; float awp_model_raw(height_raw, fraction) ; awp_model_raw:long_name = "Mean model amount when present on model grid" ; awp_model_raw:units = "1" ; awp_model_raw:missing_value = -999.f ; awp_model_raw:_FillValue = -999.f ; awp_model_raw:comment = "This variable is the mean model cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable." ; float awp_mod_model_raw(height_raw, fraction) ; awp_mod_model_raw:long_name = "Mean model amount when present on model grid, modified to remove undetectable cloud" ; awp_mod_model_raw:units = "1" ; awp_mod_model_raw:missing_value = -999.f ; awp_mod_model_raw:_FillValue = -999.f ; awp_mod_model_raw:comment = "This variable is the mean model cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable." ; float awp_modmax_model_raw(height_raw, fraction) ; awp_modmax_model_raw:long_name = "Mean model amount when present on model grid, modified to remove undetectable cloud assuming radar 3 dB more sensitive than best estimate" ; awp_modmax_model_raw:units = "1" ; awp_modmax_model_raw:missing_value = -999.f ; awp_modmax_model_raw:_FillValue = -999.f ; awp_modmax_model_raw:comment = "This variable is the mean model cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, but assuming the radar to be 3 dB more\n", "sensitive. In combination with awp_modmin_model_raw, it therefore provides an estimate of the uncertainty in\n", "this procedure." ; float awp_modmin_model_raw(height_raw, fraction) ; awp_modmin_model_raw:long_name = "Mean model amount when present on model grid, modified to remove undetectable cloud assuming radar 3 dB more sensitive than best estimate" ; awp_modmin_model_raw:units = "1" ; awp_modmin_model_raw:missing_value = -999.f ; awp_modmin_model_raw:_FillValue = -999.f ; awp_modmin_model_raw:comment = "This variable is the mean model cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, but assuming the radar to be 3 dB less\n", "sensitive. In combination with awp_modmax_model_raw, it therefore provides an estimate of the uncertainty in\n", "this procedure." ; float mean_modsnow_model_fraction_raw(height_raw) ; mean_modsnow_model_fraction_raw:long_name = "Mean model cloud fraction on model grid, modified to remove undetectable cloud and to include snow" ; mean_modsnow_model_fraction_raw:units = "1" ; mean_modsnow_model_fraction_raw:missing_value = -999.f ; mean_modsnow_model_fraction_raw:_FillValue = -999.f ; mean_modsnow_model_fraction_raw:comment = "The ECMWF model treats ice cloud and snow separately, with snow not contributing to cloud fraction or ice water content.\n", "This variable is the same as mean_mod_model_fraction_raw except that model snow has been included, following\n", "Hogan et al. (2001, J. Appl. Meteorol., 40, 513-525)." ; float foo_modsnow_model_raw(height_raw, fraction) ; foo_modsnow_model_raw:long_name = "Mean model frequency of occurrence on model grid, modified to remove undetectable cloud and include snow" ; foo_modsnow_model_raw:units = "1" ; foo_modsnow_model_raw:missing_value = -999.f ; foo_modsnow_model_raw:_FillValue = -999.f ; foo_modsnow_model_raw:comment = "This variable is the mean model frequency of occurrence of cloud fractions above a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, as well as to include snow, as described\n", "in the comment to the mean_modsnow_model_fraction_raw variable." ; float awp_modsnow_model_raw(height_raw, fraction) ; awp_modsnow_model_raw:long_name = "Mean model amount when present on model grid, modified to remove undetectable cloud and include snow" ; awp_modsnow_model_raw:units = "1" ; awp_modsnow_model_raw:missing_value = -999.f ; awp_modsnow_model_raw:_FillValue = -999.f ; awp_modsnow_model_raw:comment = "This variable is the mean model cloud fraction when it exceeds a range of different values,\n", "as indicated by the \"fraction\" coordinate variable. The model has been modified to remove undetectable cloud,\n", "as described in the comment of the mean_mod_model_fraction variable, as well as to include snow, as described\n", "in the comment to the mean_modsnow_model_fraction_raw variable." ; float pdf_observed_fraction(height_coarse, fraction) ; pdf_observed_fraction:long_name = "PDF of observed cloud fraction" ; pdf_observed_fraction:units = "1" ; pdf_observed_fraction:missing_value = -999.f ; pdf_observed_fraction:_FillValue = -999.f ; pdf_observed_fraction:comment = "This variable is the probability density function of observed cloud fraction in four height ranges, with bin centres indicated by the\n", "\"fraction\" coordinate variable. Only data with coincident model and observations were used, and missing values indicate height ranges\n", "where no such data were available." ; float pdf_model_fraction(height_coarse, fraction) ; pdf_model_fraction:long_name = "PDF of model cloud fraction" ; pdf_model_fraction:units = "1" ; pdf_model_fraction:missing_value = -999.f ; pdf_model_fraction:_FillValue = -999.f ; pdf_model_fraction:comment = "This variable is the probability density function of model cloud fraction in four height ranges, with bin centres indicated by the\n", "\"fraction\" coordinate variable. Only data with coincident model and observations were used, and missing values indicate height ranges\n", "where no such data were available." ; float pdf_mod_model_fraction(height_coarse, fraction) ; pdf_mod_model_fraction:long_name = "PDF of model cloud fraction modified to remove undetectable cloud" ; pdf_mod_model_fraction:units = "1" ; pdf_mod_model_fraction:missing_value = -999.f ; pdf_mod_model_fraction:_FillValue = -999.f ; pdf_mod_model_fraction:comment = "This variable is the same as pdf_model_fraction, except that the model data have been modified to exclude undetectable cloud, as\n", "described in the comment of the mean_mod_model_fraction variable." ; short num_samples(height) ; num_samples:long_name = "Number of samples used" ; num_samples:units = "1" ; num_samples:comment = "This variable contains the number of samples at each height used in calculating the contingency table and the skill scores.\n", "Each sample is one hour apart in the original data." ; short num_samples_raw(height_raw) ; num_samples_raw:long_name = "Number of samples used for variables on model grid" ; num_samples_raw:units = "1" ; num_samples_raw:comment = "This variable contains the number of samples at each height used in calculating the contingency table and skill scores\n", "reported on the model grid. Each sample is one hour apart in the original data." ; int num_samples_coarse(height_coarse) ; num_samples_coarse:long_name = "Number of samples used for PDFs" ; num_samples_coarse:units = "1" ; num_samples_coarse:comment = "This variable contains the number of samples in the four coarse height ranges used in calculating the probability\n", "density functions of cloud fraction." ; short A(height, fraction) ; A:long_name = "Number of samples with cloud in model and observations" ; A:units = "1" ; A:comment = "This variable is used with \"B\", \"C\" and \"D\" to calculate various skill scores. It has been calculated for the full range\n", "of cloud fraction thresholds (indicated by the \"fraction\" coordinate variable). Thus for a threshold of 0.05, this variable\n", "is the number of samples with cloud fraction greater than 0.05 simultaneously in the model and the observations.\n", "Note that the modified model cloud fraction was used in the comparison, as described in the comment of the\n", "mean_mod_model_fraction variable. Skill scores for multiple months should be calculated by first summing the values\n", "of A, B, C and D for those months." ; short B(height, fraction) ; B:long_name = "Number of samples with cloud in model but not observations" ; B:units = "1" ; B:comment = "See the comment of the \"A\" variable." ; short C(height, fraction) ; C:long_name = "Number of samples with cloud in observations but not model" ; C:units = "1" ; C:comment = "See the comment of the \"A\" variable." ; short D(height, fraction) ; D:long_name = "Number of samples with cloud in neither model nor observations" ; D:units = "1" ; D:comment = "See the comment of the \"A\" variable." ; float ETS(height, fraction) ; ETS:long_name = "Equitable threat score" ; ETS:units = "1" ; ETS:missing_value = -999.f ; ETS:_FillValue = -999.f ; ETS:comment = "This variable is a measure of the skill of the forecasts calculated as ETS=(A-E)/(A+B+C-E), where E is the number of hits that\n", "occurred by chance, given by E=(A+B)*(A+C)/(A+B+C+D). A perfect forecast would have an ETS of 1 and a random forecast an ETS of 0." ; float Q(height, fraction) ; Q:long_name = "Yule\'s Q skill score" ; Q:units = "1" ; Q:missing_value = -999.f ; Q:_FillValue = -999.f ; Q:comment = "This variable is a measure of the skill of the forecasts calculated as Q=(A*D-B*C)/(A*D+B*C). It is closely related to the odds ratio,\n", "but ranges from -1 to 1." ; float ETS_all(fraction) ; ETS_all:long_name = "Equitable threat score for all heights" ; ETS_all:units = "1" ; ETS_all:missing_value = -999.f ; ETS_all:_FillValue = -999.f ; ETS_all:comment = "This variable is calculated from A, B, C and D at all heights." ; float Q_all(fraction) ; Q_all:long_name = "Yule\'s Q skill score for all heights" ; Q_all:units = "1" ; Q_all:missing_value = -999.f ; Q_all:_FillValue = -999.f ; Q_all:comment = "This variable is calculated from A, B, C and D at all heights." ; // global attributes: :Conventions = "CF-1.0" ; :title = "Evaluation of ECMWF cloud fraction at Chilbolton during Apr 2003" ; :location = "Chilbolton" ; :start_date = "20030412" ; :end_date = "20030411" ; :history = "30 Jan 2008 15:40:59 - Generated using matlab by Ewan O\'Connor \n", "Cloud fraction history: Cloud fraction on model grid history: 06 May 2005 23:41:00 - Generated from categorization data and ECMWF Integrated Forecast System (IFS) data by Ewan O\'Connor on anvil2\n", "Categorization history: 19 Jan 2005 12:40:16 - Generated from level 1 data by Ewan O\'Connor \n", "Radar history: Wed Feb 25 01:31:40 2004 - NetCDF generated from original data by Nicolas Gaussiat on hogwarts\n", "Wed May 12 09:48:59 2004 - Recalibrated (-2.1 dB) by Nicolas Gaussiat on hogwarts\n", "Wed May 12 11:13:06 2004 - Inserted incoherent reflectivity factor by radar on hogwarts\n", "(Incoherent processing history: Wed Feb 25 00:15:32 2004 - NetCDF generated from original data by Nicolas Gaussiat on hogwarts\n", "Wed May 12 10:30:29 2004 - Recalibrated (-2.4 dB) by Nicolas Gaussiat on hogwarts)\n", "Lidar history: Tue Sep 23 19:24:56 2003 - NetCDF generated from original data by Ewan O\'Connor on hogwarts\n", "Model history: Fri Sep 24 11:05:08 BST 2004 - NetCDF generated from original data by Ewan O\'Connor using cnmodel2nc on hogwarts\n", "Fri Nov 12 17:36:12 2004 - Comments added by radar on hogwarts\n", "Gauge history: Recorded using Microlink 3000 series DAQ\n", "2003-09-24 13:27:42 : converted to netCDF from FORMAT5 using Matlab 6.5.0.180913a (R13) running on GLNX86\n", "Microwave radiometer history: \n", "2005-01-13 14:25:31 : Liquid and vapour vater path produced by Nicolas Gaussiat on hagrid\n", "" ; :source = "CloudNet categorization product (software version 0.9.2)\n", "ECMWF Integrated Forecast System (IFS)" ; :institution = "Department of Meteorology, University of Reading." ; :software_version = "1.2" ; :comment = "This dataset contains statistics on the performance of ECMWF cloud fraction,\n", "including means as a function of height, probability density function, skill scores and the contingency table\n", "to allow other skill scores to be calculated." ; }