Giter Club home page Giter Club logo

ngen-datastream's People

Contributors

arpita0911patel avatar dependabot[bot] avatar jordanlasergit avatar joshcu avatar zacharywills avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ngen-datastream's Issues

RAINRATE hack

Currently forcingprocessor contains a poor hack to calculate precip_rate for NextGen. RAINRATE should be converted in a physically consistent way.

nwm_variables = [
    "U2D",
    "V2D",
    "LWDOWN",
    "RAINRATE",
    "RAINRATE",
    "T2D",
    "Q2D",
    "PSFC",
    "SWDOWN",
]

global ngen_variables
ngen_variables = [
    "UGRD_10maboveground",
    "VGRD_10maboveground",
    "DLWRF_surface",
    "APCP_surface",
    "precip_rate",  # HACK RAINRATE * 3600
    "TMP_2maboveground",        
    "SPFH_2maboveground",
    "PRES_surface",
    "DSWRF_surface",
] 

t-route config

the t-route ngen.yaml config file needs to have a look over. Perhaps this repo should have several configs depending on vpu, ncores, or any other axis we may want variation along.

ngen bmi module config generation

Both t-route and NoahOWP require configuration files as input. Currently these are made from templates within the repository. Eventually, these should be created from pydantic models from ngen-cal (might be renamed to ngen-tools/utils).

forcingprocessor

the datastream should write out images of pre and post forcingprocessing.

decouple forcingprocessor

In the current datastream aws state machine, each VPU independently calculates it's own forcings. Based on the internal algorithm to forcingprocessor, this is more efficient (cheaper) if done on a single instance. Then the individual vpu runs can be supplied the path to the forcings bucket in an argument to stream.sh.

Add some warning/documentation/default settings to protect from accidental resource over scheduling

Downloading this repository to a basic laptop or desktop and turning it on will, in the current configuration, either not work or will consume every resource available to the computer and make it unusable.

Let's update the documentation on the front to make that a little more clear and then, as an additional update, make sure it gives the user a little warning in the initial startup: "Hey, you are about to do something a little painful. You need to sign here on your RAM with this magic marker before we put you under."

forcings nc

Implement validation for forcings if provided as netcdf

Add data_dir if missing with up to date NGIAB if missing

Screenshot 2023-12-31 at 14 40 33

By default we can just shove in the NGIAB defaults, then if CONUS is specified we can interpret the default CFE global config and let the user deal with any more specific configs.

Ideally we can build it so that the script will run a CONUS CFE with "DAILY" and CONUS specified.

It'll make it easier to spin up a stream and then customize, rather than have the user kind of walking blind until they get something functional.

Create ngen-datastream bucket

TF can't create the bucket, just connect to it. Add conditional to check if bucket name exists, create if not. Will need to deal with the resources directory object somehow upon bucket creation.

Add NGEN script and container that automatically runs the specified data structure

Interactive NGIAB can (and should) be easily converted to an automatic run provided that the configs are married to the data stream configs in a way that makes the upper level config the only necessary config file (for the run, models etc. still need their own configs, calibration etc.).

Ideally the defaults for this will "just work" to make a CONUS run using NGIAB to parallelize to the size of the resident host.

Get dockerfiles in DockerHub

The docker containers with NGIAB can be pulled from DockerHub. The 3 docker containers used in this repo should be in DockerHub as well so the installs are similar.

speed ups

  1. multiprocessing in validation (run_validator)
  2. multiprocessing substitute for tar in forcingprocessor
  3. save partition generator file for conus daily run and pull into resource_dir

ngen bmi module validation

ngen-datastream should be able to validate proper bmi module configuration within a realization file. i.e. make sure input/out variables are mapped correctly from one module to another.

arm64 support in install script

For Mac with:
โ‡’ uname -m
arm64

Getting "Unsupported architecture: arm64" while running install.sh. Please update the script to support this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.