zarr in forcingprocessor #62
Replies: 1 comment 6 replies
|
I was going to open an issue about this but I'm glad I looked in discussions first! I'm running into writing the commands for the dHBV2 datastream right now. It's a small domain (44 catchments) requiring many timesteps (>8500 time steps), meaning that forcingprocessor is very slow and borderline unusable for the dHBV2. Given that we still want to run the dHBV2 datastream on an operational cadence, real-time, I wonder if switching to our kerchunked operational zarrs https://ciroh-nwm-zarr-copy.s3.amazonaws.com/ instead of the operational netCDFs would help speed things up? @jameshalgren suggested we could pull the standard analysis-assimilation 3-hour lookbacks for every hour and use the oldest hour from each file in the final preprocessed forcing input file. That is currently not how forcingprocessor is set up to work, but because dHBV2 requires inputs that are a non-standard forecast length, we would have to do some data wrangling anyway. Open to thoughts from anyone @leoglonz @JordanLaserGit @harshavemula-ua @JoshCu |

Uh oh!
There was an error while loading. Please reload this page.
Forcingprocessor was originally designed to serve as the forcings generation for the NRDS system. This motivated the design choice to optimize for large domain (>10,000 catchments), short time (<1000 time steps) processing of NWM forcing files. Forcingprocessor's internal algorithm performs a multi processed read and processing of each netcdf required. This is performant at scale, but would be considered a network heavy solution in the context of small domain (<100 catchments) simulations. Also, forcingprocessor is not currently capable of processing anything other than the NWM forcing files provided by nwmurl.
From here, we can implement algorithms (that are already in related tooling) that will generalize forcingprocessor to use the most efficient internal algorithm based on the domain size and time step count. For example, if forcingprocessor starts up with a large geopackage and a few number of nwm files listed in filenamelist.txt, then the original algorithm is used. However if a small geopackage and a large number of nwm files, forcingprocessor could then switch to a zarr based algorithm that is more suitable in that case.
Action items:
If these two are implemented, forcingprocessor could serve as a general purpose forcings tool that can be integrated in any workflow requiring forcings generation.
All reactions