nansencenter / DAPPER

Data Assimilation with Python: a Package for Experimental Research
https://nansencenter.github.io/DAPPER
MIT License
341 stars 119 forks source link

Observations object #99

Closed Balinus closed 1 year ago

Balinus commented 2 years ago

Hello!

I'm trying to understand the Chronology object with respect to observations. I am not sure how to build it with the following constraints:

Some context : We want to use Dapper with an external model (hydrologic model) that we linked by defining dxdt (do we formally need a step function?)

patnr commented 2 years ago

Ah, sorry, non-uniform time sequences are not supported in DAPPER at the moment.

It is in principle a trivial thing, but as you can see from the DA algorithm implementations, they mostly use a loop that checks if the remainder is zero, of the current time step divided by the number of steps between observations.

We hope to improve this situation in the future.

Feel free to extract (copy/paste) the algorithms and test cases you use and adapt them to your needs.

Balinus commented 2 years ago

Thanks!

Could we simply check in the loop if there is an observation and if so, do an assimilation step. If no observations, continue the loop to next timestep? Not sure where I should look.

patnr commented 2 years ago

Yes, you could very well implement your own looping and cycling, not using Chronology. But the diagnostic/stats time series are pre-allocated with a given length based on the given Chronology, which is likely to cause headache.

Balinus commented 2 years ago

ok, thanks! I'll see if I can write something that short-circuit the Chronology object. I guess I'll have to copy/paste and adapt each DA method I want to test?

patnr commented 2 years ago

I'm afraid so.