The first thing that strikes me about your code is that you have a lot of variable and struct names that are unnecessarily abbreviated. While it saves some typing in the beginning, it ...
I can't see anything wrong with this code on a read through it (I did not compile it).
All my comments are minor and just nit picky.
So the below is just a few things I would do differently (...
You've landed in trouble with your indices again. I think the shape of your dataframe significantly mischaracterises what your data are actually saying:
per station observation time,