Follow-up from #679.
_load_res1d_network reads each selected location separately: _simplify_colnames calls
node.to_dataframe() per node and per boundary gridpoint, and Res1DReach does the same per
populated gridpoint. Each call crosses the pythonnet/.NET boundary on its own.
mikeio1d exposes a batched form, res.read(queries), taking a list of TimeSeriesId. A test user
measured ~0.5 s for 50 sensors that way, versus a per-trial cost of 18–25 s for a full build today.
Worth checking whether routing the selected locations through one batched read is faster than the
current per-location reads, and how it interacts with the quantities filter added in #679.
Follow-up from #679.
_load_res1d_networkreads each selected location separately:_simplify_colnamescallsnode.to_dataframe()per node and per boundary gridpoint, andRes1DReachdoes the same perpopulated gridpoint. Each call crosses the pythonnet/.NET boundary on its own.
mikeio1d exposes a batched form,
res.read(queries), taking a list ofTimeSeriesId. A test usermeasured ~0.5 s for 50 sensors that way, versus a per-trial cost of 18–25 s for a full build today.
Worth checking whether routing the selected locations through one batched read is faster than the
current per-location reads, and how it interacts with the
quantitiesfilter added in #679.