How are daily precipitation totals computed? I would like to use ASOS data from Iowa State University   to compute daily rainfall totals for specific locations. Using ASOS, I am unable to match the official NWS totals. I am assuming that the definition of a day is midnight to midnight, local time.

For example: KLGA had a record rainfall total of 3.33"  on June 7, 2013. An excerpt of the ASOS data covering June 7 is below. The "D" and "H" columns are EDT. It appears that rainfall totals are cumulative and reset hourly at 51 minutes (see hours 12 and 13 EDT for example). But I am unsure how to interpret certain cases. What do I do with hour 21, which reports 0.21" at 36 minutes, 0 at 48 minutes, and 0.24" at 49 minutes. Does that 0 denote a reset prior to 51 minutes, implying a total of 0.45" for that hour? Or does it indicate something else, such as a temporary cessation?

The general questions are: a) how does one parse the p01i column, and b) should it be possible to use ASOS precipitation data to match official NWS totals? Thanks!



Excerpt from ASOS data:

GMT                     M   D    H   M  p01i
...
2013-06-07T16:23:00Z    6   7   12  23  0.11
2013-06-07T16:43:00Z    6   7   12  43  0.19
2013-06-07T16:51:00Z    6   7   12  51  0.21
2013-06-07T17:35:00Z    6   7   13  35  0.18
2013-06-07T17:51:00Z    6   7   13  51  0.22
...
2013-06-08T01:16:00Z    6   7   21  16  0.18
2013-06-08T01:29:00Z    6   7   21  29  0.21
2013-06-08T01:36:00Z    6   7   21  36  0.21
2013-06-08T01:48:00Z    6   7   21  48  0
2013-06-08T01:49:00Z    6   7   21  49  0.24
2013-06-08T02:47:00Z    6   7   22  47  0.22
2013-06-08T02:51:00Z    6   7   22  51  0.22
2013-06-08T03:51:00Z    6   7   23  51  0.11
2013-06-08T03:58:00Z    6   7   23  58  0


Edit: See below. Note that the value of p01i at 6:59 (0.01") is less than that at 6:51 (0.05"), and greater than that at 7:40 (0"), which in turn is less than that at 7:51 (0.09"). What exactly is being reported here? 


GMT                     M   D   H    M  p01i
2013-06-07T10:51:00Z    6   7   6   51  0.05
2013-06-07T10:59:00Z    6   7   6   59  0.01
2013-06-07T11:40:00Z    6   7   7   40  0
2013-06-07T11:51:00Z    6   7   7   51  0.09


Edit #2: @JeopardyTempest  confirms the importance of 51 minutes past the hour. I have an algorithm that (almost!) works. Assume:


The day is measured from midnight to midnight local time, without a DST adjustment. So in June, LGA remains at -0500.
Precipitation totals are accumulated to 51 minutes each hour


The official daily 2013 rainfall totals for June 2, 3, 6, and 7 are 0.11, 0.96, 0.10, 3.33, 0.79. Using the algorithm above with the ASOS data for the same days yields 0.11, 0.96, 0.10, 3.32, 0.80.
Typical synoptic (hourly) obs come in about 51 past the hour (sometimes a couple minutes off).  The other reports you're seeing are generally subops (SPECIs) which generally only report precip since the last ob given, but the total of which should always be reflected in the hourly.

So for 2136/2148/2149 timed obshour... you just use the 0.24 from 2149, and it should include the others in it (so skip the others that would lead to double-counting).

On the other hand, the 659 ob being smaller than the 651 ob makes sense... as 659 is in the NEW hour... so would be reflected in the 751 ob (which is indeed higher).

I didn't get a chance to look too closely, but looks like all of these are unfortunately altered forms of the data.  I believe typical full data should have METAR or SPECI in it to indicate which obs you want?

But no big deal, if you look back at the rawer-looking data you gave, looks like you can find which ones you want by looking for the ones with SLP reported right about the end.  Or, even better, just look for the 6**** fields right about the end, which are the 6 hour total precipitation.  Just add the four of those up, and you'll have the daily total.

If you're trying to accomplish all this in Excel, some formulas could be worked up to automatically take what you need from the day's data, or you could use a regex in any of the variety of online regex testers.  Or writing some sort of script could save a lot of time if you're downloading a lot of data.  But the rawer data is often safer and more easy to work with.

I think I used a page like this for more info back in the day when I had to do it.