Skip to content

Expanding forcings tooling in datastream #23

@JordanLaserGit

Description

@JordanLaserGit

There are (at least) two primary ways in which forcings tooling can improve in ngen-datastream:

  1. Expanding forcings sources. In the current implementation of forcingprocessor, nwmurl is called to generate URLs of national water model forcings files. So far it has been the goal to support any urlbaseinput option available in nwmurl. Reference this document to see progress on this. Ideally, forcingprocessor is capable of processing over additional grids like Analysis of Record for Calibration (AORC). Which leads to the next improvement: weight generation.

  2. Implementing weight generation: forcingprocessor extracts polygon averaged forcings data using weights provided by hfsubset. forcingprocessor is not currently capable of generating weights solely based on the polygons and forcings grid. Motivation for this choice is ngen-datastream will store the hfsubset/hydrofabric version in the metadata so the weights are effectively versioned, whereas it is not clear how to "version" user supplied weights without saving the weights themselves to the metadata. In addition, it seemed best for the community to abstract this step from users to avoid both miscalculation and needing to update our code with each hydrofabric release. This tooling primarily exists in hfsubset, though this tool is still under development and sometimes does not produce weights for some catchments.

If forcingprocessor is to support additional grids like AORC, then we will need:

  1. Expanding urlbaseinput options in nwmurl to generate URLs for AORC (and other sources?) @jameshalgren @sepehrkrz
  2. Allowing the user to supply weights manually at the CLI or a datastream supported weight generation algorithm. Should this repository support weight generation tools? I would prefer not to for reasons mentioned previously, but it might be a useful capability given current hinderances in the community. (@hellkite500 could your tools support this?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Priority level. P0: Critical, P1: High, P2: Medium, P3: LowenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions