I've been looking for the cloud cover estimates provided in the NOAA GFS models. This page discusses all their weather products and one of the few I find that includes cloud cover data "Total Cloud Cover [%]" (variable TCDC) is gfs.t00z.pgrb2.0p25.f006 which you can find in its product description.
Upon extracting that file using the grib filter tool generated URL selecting for the proper layers and variables, this data appears to be just initial values (1 for cloud cover) and 9999 for many of the other values. I read a lot of gfs grib & cloud details here that suggest the .fxxx files like "gfs.t00z.pgrb2.0p25.f006" are
The cloud % field is probably output from some of the model physics (microphysics I guess) routines, which may not be setup to write out the fields after the very first model time step (the f00 files denote fields after the first model time step, not the actual analysis/initial condition). We do in fact initialize the cloud condensate field, however
My question is where are the TCDC cloud data numbers in the GFS grib models? They don't seem to be in the analysis files (gfs.t00z.pgrb2.0p25.anl) or the FH000 file.
Note: I'm using grib_api tools to read these fields (grib_ls and grib_get). I've used them successfully for currents and winds, but I can't seem to find the right GFS data for TCDC cloud cover.
EDIT: I've been testing the full files from http://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/
the gfs.t12z.pgrb2.0p25.anl file didn't contain cloud data, so I tried one of the .fxxx files (gfs.t12z.pgrb2.1p00.f384). There appeared to be fields set, but they were at initial values according to grib_ls tool. Here's a snippet:
[3036] => 260130 Total ozone 9999 [3037] => 228164 Total Cloud Cover 9999 [3038] => 228164 Total Cloud Cover 9999 [3039] => 228164 Total Cloud Cover 9999 [3040] => 228164 Total Cloud Cover 9999 [3041] => 54 Pressure 9999 [3042] => 54 Pressure 1 [3043] => 54 Pressure 9999 [3044] => 54 Pressure 1 [3045] => 54 Pressure 9999 [3046] => 54 Pressure 1 [3047] => 54 Pressure 9999 [3048] => 54 Pressure 1 [3049] => 130 Temperature 1 [3050] => 130 Temperature 9999 [3051] => 130 Temperature 1 [3052] => 228164 Total Cloud Cover 1 [3053] => 228164 Total Cloud Cover 1
I'm using a little older version of grib_api on my server: 1.10.0
I get a little different response with grib_api 1.14.4:
3054 Precipitable water 34.4
260102 Cloud water 0
157 Relative humidity 39
260130 Total ozone 283.1
228164 Total Cloud Cover 4
228164 Total Cloud Cover 0
228164 Total Cloud Cover 5
228164 Total Cloud Cover 9
54 Pressure 9999
54 Pressure 90670.4
54 Pressure 9999
54 Pressure 13200.4
54 Pressure 9999
54 Pressure 88060
54 Pressure 9999
54 Pressure 11470.4
130 Temperature 288.9
130 Temperature 9999
130 Temperature 198.2
228164 Total Cloud Cover 0
228164 Total Cloud Cover 2
But it still seems a bit odd for the results. Lots of 9999's and whole percentages like 0 or 2.
Edit 2: It appears that computing the cloud cover has to be done from the GFS layer data however it appears how it is done is unclear based on an old message from 2007: http://www.weather-watch.com/smf/index.php/topic,20158.msg216087.html#msg216087