We have downloaded grib2 files for GFS model from NOAA and extracted irradiance (Downwards shortwave radiation flux) data. Following is a sample output for cordinates at [52.0,4.0]:

|      Timestamp      | Value |
| 2017-01-01T03:00:00 |   00  |
| 2017-01-01T06:00:00 |   00  |
| 2017-01-01T09:00:00 |   00  |
| 2017-01-01T12:00:00 |   40  |
| 2017-01-01T15:00:00 |   50  |
| 2017-01-01T18:00:00 |   20  |
| 2017-01-01T21:00:00 |   00  |

We know that the values are averaged. We doubt that the averaging is performed over a window of 3 hours such as the values between $hour$ and $(hour-3)$ are averaged and assigned to the timestamp at $hour$.

We haven't found any documentation explaining this fact. Can you please explain the principle behind averaging and timestamping? A reference will be very helpful.

  • $\begingroup$ I've substantially edited my answer below, have a look now $\endgroup$ Jan 18, 2018 at 18:06

1 Answer 1


The GFS is a model, and the model have a given time-step equal or smaller than the time-step of the output, that in this case is 3 hours. Different processes can be computed using different or even multiple time-steps.

Some of the reported variables are instantaneous, others are cumulative, and others are time averaged.

According to the documentation for the GFS radiation driver module in the GFS Operational Physics Documentation, the Downwards shortwave radiation flux correspond to a time averaged output quantity, meaning that for each model grid cell, its value is stored every internal time step (deltim) to then report the time-weighted average of all stored values, which is what you get in the 3-hour output. However, I don't know what is the exact value used for deltim or how the time weights are computed.

Therefore, what you said seem to be pretty much the case. This is that the value reported for timestamp hour is the average of all the intermediate values computed between hour-3+deltim and hour using some time weights schema that is unclear to me.

In the link above, you can find all the source code for GFS, so it seem that to figure our the details of the time averaging you might need to search in the code where the values of the array fluxr (that store the intermediate time-step radiation flux values) is averaged and see there how it is done.

  • 1
    $\begingroup$ We have found following text in a paper titled "Evaluation of numerical weather prediction for intra‐day solar forecasting in the continental United States" by Patrick Mathiesen: Temporally, the GFS forecast is published at 00, 06, 12, and 18 UTC, at an average time‐step of 3 hours up to 180 hours (7.5 days) ahead. GFS forecasts are reported as alternating 3 (1st, 3rd, etc. forecasts in a series) and 6‐hour (2nd, 4th, etc.) averages. Consistent 3‐hour resolution forecasts are calculated from the raw data. It is not saying the same thing as you have explained. $\endgroup$
    – Amrit Gill
    Jan 18, 2018 at 9:23
  • 1
    $\begingroup$ To be picky, the model time step is more likely to be ~10 mins, with fields only being archived every 3 h. Radiation might be on a longer step (e.g., 1-3 h) if it's expensive to calculate. Fluxes are probably reported as means or accumulations so that budgets can be calculated from the archived 3h fields, but you'd need to look at the manual/metadata to be sure. $\endgroup$
    – Deditos
    Jan 18, 2018 at 11:13
  • $\begingroup$ I agree with @Deditos time step inside the model is smaller and different from the time step of the output. 3-hour average would be a meaningful way to output, but not all are smart enough to do so. $\endgroup$
    – Communisty
    Jan 18, 2018 at 13:32
  • 1
    $\begingroup$ Fair point by @Deditos, my answer was an oversimplification as a model can have multiple time steps for different variables and even two or three time-levels for a single variable to resolve different processes. The point about fluxes reported as means to compute fluxes made sense, so I checked and it is the case indeed. I've updated my answers above accordingly. $\endgroup$ Jan 18, 2018 at 17:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.