-
Notifications
You must be signed in to change notification settings - Fork 63
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
Gridded Forcings Engine Data Provider #828
base: master
Are you sure you want to change the base?
Conversation
03cfd76
to
896b9a6
Compare
896b9a6
to
f7bbad7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: I'd like to reduce the size of this -- the majority of the size comes from including the elevation, slope, and aspect for the domain, which currently seems to be a requirement in the forcings engine.
though, documentation states otherwise... need to resolve this still, since this should only be necessary for regridding, but an exception is raised when no regridding is specified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be possible/reasonable to crop it to a smaller spatial domain, that still extends beyond the configured requested area? Or is it already as small as it gets in that respect?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's currently cropped to the (3 I think?) divides for the gage in the name -- for strictly testing purposes, I could crop it down to just 1 of the divides... Despite that, the larger issue is on the forcings engine side, so if I can find out more info on what's happening there, I can potentially just get rid of unnecessary variables in the NetCDF file
…verse dimension indexing)
…t to fix mpi finalization in test suite
…I comm; fix timing
); | ||
|
||
#if NGEN_WITH_MPI | ||
auto comm = MPI_Comm_c2f(MPI_COMM_WORLD); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be explicitly typed for clarity that we care about the specific type
auto comm = MPI_Comm_c2f(MPI_COMM_WORLD); | |
MPI_Fint comm = MPI_Comm_c2f(MPI_COMM_WORLD); |
Adds a
ForcingsEngineGriddedDataProvider
class inheriting fromForcingsEngineDataProvider<double, GriddedDataSelector>
.This provider provides the same interface as #845 but for gridded forcings, i.e.
GRID_TYPE="gridded"
in the forcings engine configuration file.Similar to how the lumped provider associates with a divide ID, the gridded provider associates with a mask of the underlying hydrofabric domain using a minimum bounding rectangle around a divide:
where,
Note
Related structs/functions for grid masking and indexing are:
data_access::GridSpecification
(Provider header)data_access::GridMask
(Provider header)construct_grid_spec(...)
(Provider source)construct_grid_mask(...)
(Provider source)Each provider assigned to a catchment will only provide data from the hydrofabric grid for their masked grid.
Additions
ForcingsEngineGriddedDataProvider
class.geojson::box_t
representing a geographic bounding box type.Changes
GridDataSelector
->GriddedDataSelector
Todos
GRID_TYPE
. Particularly, broadcasting and (legacy?) indexing schemes ingeoMod.py
(Includes file size optimization for domain file)Checklist
Segfault Details