Time zone and time stamp in ERA5 hourly

Hi. This question is mainly related to precipitation, however, the answer to it also influences all other (impulse) data usage.
Precipitation in ERA5 is cumulative, meaning that at every hour (timestamp), data contains cumulative P since 01:00, and at 0:00 of day 2 we get the total precipitation of day 1.
But what does this time stamp mean? Is it the local time? It makes sense as the maximum is achieved at 0:00. But, is this local time summer/winter time? Is it in the administrative timezone or solar timezone?
We usually do not pay attention to this in case of impulse data (e.g. temperature). However, if we try to synchronize precipitation and temperature, it becomes important.

As far as I know, all times in ERA5 are UTC.
On the other hand, I do not remember the exact time structure of the data, but for accumulated fields like precipitation, it is zero at the dataTime and step=0. At step=1 it is the accumulated rain for the one hour period starting at the dataTime, at step=2, it is the accumulated rain for the two hour period starting at the dataTime, and so on. Are you using the Grib or the NetCDF format?

Hi Antonio,
I’m using ncdf.
00:00 stamped value contains the total cumulative precipitation of the previous day.
UTC stuff is still unclear for me. Does that UTC mean that for a point located in Siberia I will observe cumulative value in the ERA5 datafile at the time stamp like 05:00?

UTC: Universal Time Coordinated. It is the time at Greenwich and is never adjusted for daylight saving time.
If the Siberia time zone is GMT+5, then, yes. If you have the accumulated rain from 00:00 UTC of 2000-01-01 to 00:00 UTC of 2000-01-02, it is the accumulated rain from 05:00 (local time) of 2000-01-01 to 05:00 (local time) of 2000-01-02. So, if you want to get the accumulated rain from 00:00 (local time) to 00:00 (local time), you have to calculate the accumulation from 19:00 UTC of 1999-12-31 to 19:00 UTC of 2000-01-01. And you have also to take into account the local daylight saving time, if applicable.

1 Like

Just checked data… It looks like, for 50 grad to East (as an example), the max value of Precipittion is recorded at 00:00. Thus, it it must be first converted into impulse value assuming that 00:00 contains total, and then summarized with the shift depending on time zone for every Lattitude/Longitude combination.
Is that suggestion correct?

Well I think that I am not very familiar with the terminology you use. What do you mean by impulse? And when you say that “00:00 contains total”, do you mean that 00:00 UTC contains the accumulated data for the previous 24 hours?
And for better clarification, have you downloaded from CDS as
ERA5 hourly time-series data on single levels from 1940 to present
or
ERA5 hourly data on single levels from 1940 to present

?

Anyway, perhaps this can be useful to you:

But we can continue our discussion if it helps you.

By impulse I mean non-cumulative, i.e. precipitation within one hour (perhaps not the best name, just to distinguish it). Yes, 00:00 UTC contains the total precipitation for the PREVIOUS day. I load ERA5-Land hourly data from 1950 to present.
What I’m doing now: shift the original timestamp by 1 minute back, convert it to date, calculate “impulse precipitation”, apply time zone shift (depends on Lat-Lon) in hours forward, convert to date, summarize for these new dates.

Sorry for my delay. I will assume that you have downloaded your data from the CDS , and not from MARS. You can see table 0 here , where the time organization of the data is specified.

So, as you stated in your first post, the data labeled with date 2000-01-01 and time 00, is the accumulated rain for the whole 2000-01-01, but these date-time is UTC, not your local date-time.

In order to have the accumulated rain in your local 2000-01-01 , you have to:

  1. get the accumulated rain from 19:00 UTC of 1999-12-31UTC (that corresponds to your local 00:00 2000-01-01) to 00:00UTC of 2000-01-01 (that corresponds to your local 05:00 2000-01-01). For this, you have to:
    I. get the accumulated rain from 00:00 UTC of 1999-12-31UTC to 00:00UTC of 2000-01-01UTC
    II. get the accumulated rain from 00:00UTC of 1999-12-31UTC to 19:00UTC of 1999-12-31UTC
    III. substract the II. value from the I. value

  2. get the accumulated rain from 00:00UTC of 2000-01-01UTC (that corresponds to your local 05:00 2000-01-01) to 19:00UTC of 2000-01-01UTC (your local 00:00 2000-01-02)

  3. sum both values
    This gives you the accumulated rain for your local date 2000-01-01.

1 Like