-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deep-dive on time-interpolation in the data atmosphere/runoff stream files #256
Comments
Using 'linear' time interpolation for runoff can give differences between the incoming JRA product and the received MOM runoff of 0.1% for some days, although most days are much smaller than this (less than 0.015%). The monthly differences are small (0.0016% for january) and approaching single floating point precision for an annual sum - implying the differences average out over time. e.g. daily global sums for January (volume per second): |
FYI the mismatch between the mean, and mean of interpolated means, is discussed here, with a solution (which I guess is not available in NUOPC) https://dx.doi.org/10.1175/1520-0485(1996)026%3C0136:TIOFFI%3E2.0.CO;2 |
I dont think its available but would be straightforward to implement (here). I guess for daily/3 hourly source data the error is much less than the interpolation of monthly data discussed in that Killworth paper ? |
Maybe we should fix https://github.com/COSIMA/make_ryf to retain the IAF timestamp location in RYF to avoid this gotcha? |
There are also a few crumbs here I guess you've seen https://escomp.github.io/CDEPS/versions/master/html/streams.html |
Agreed, so I expect the linear interpolation error will be small enough to ignore. |
The TLDR: Should we use linear or no time interpolation for incoming runoff fields ?
Splitting this off from #231 for simplicity:
In the
drof.streams.xml
anddatm.streams.xml
files, there are spefications fortintalgo
- the time interpolation algorithm andoffset
- the offset between the time in the data file and the time used by the datm model. There is very little documentation on what these mean, but I did find this note from CESM:Starting with RYF:
DROF:
For our 1990-91 RYF, the frequency is daily, with timestamps at the start of the day:
It's not clear we need linear time interpolation for runoff ... so we can probably just set the time interpolation method to
lower
and use offset of 0Global sum of runoff to mediator with no time interpolation, no area weighting:
The alternative is 'linear' interpolation and 43200 seconds offset (0.5 days):
Global sum of runoff to mediator with linear interpolation, no area weighting:
DATM
The frequency is 3 hourly, timestamps are at the start of the interval. We presumably want to keep using
linear
time interpolation, so we need an offset of 5400 seconds (1.5 hours). This is true for all fields except the shortwave down field, wherecoszen
is correct and offset 0 (as currently set).IAF:
Annoyingly, the times in the IAF data are different relatively to the averaging period than for RYF ! For IAF, the original Input4MIPS has the timestamp in the middle of the averaging interval.
e.g for ROF:
So the time interpolation can be 'nearest' or 'linear' and no offset is needed. (Currently -43200)
For DATM:
For linear time interpolation, offset should be 0 (currently -5400). For coszen, it needs to be the start of the interval, so it should be -5400 (no change).
The text was updated successfully, but these errors were encountered: