Skip to content

[3pt] PR: Optimize FLASH FIM Workflow#1803

Open
RileyMcDermott-NOAA wants to merge 11 commits intodevfrom
dev-flash-optimization
Open

[3pt] PR: Optimize FLASH FIM Workflow#1803
RileyMcDermott-NOAA wants to merge 11 commits intodevfrom
dev-flash-optimization

Conversation

@RileyMcDermott-NOAA
Copy link
Copy Markdown
Contributor

@RileyMcDermott-NOAA RileyMcDermott-NOAA commented Apr 6, 2026

This PR updates the FLASH FIM workflow to make it more efficient for development of a rapidly updating service.

Additions

Changes


Testing

Tested for the CONUS for latest timestep and different archive timesteps.


Deployment Plan (For FIM developers use)

  • Does the change impact inputs, docker or python packages?

    • Yes
    • No (f no.. skip the rest of the Deployment Plan section)
  • If you are not a FIM dev team member: Please let us know what you need and we can help with it.

  • If you are a FIM Dev team member:

    • Please work with the DevOps team and do not just go ahead and do it without some co-ordination.

    • Copy where you can, assign where you can not, and it is your responsibility to ensure it is done. Please ensure it is completed before the PR is merged.

    • Has new or updated python packages, PipFile, Pipefile.lock or Dockerfile changes? DevOps can help or take care of it if you want. Just need to know if it is required.

      • Yes
      • No
    • Require new or adjusted data inputs? Does it have a way to version (folder or file dates)?

      • No
      • Yes
        • Require new pre-clip set or any other data reloads, such as DEMS, osm, etc. ie.. pre-requisite re-data upstream of your input changes.
          • Yes
          • No
        • Has the inputs been copied/exist in all four enviros:
          • FIM EFS
          • FIM S3
          • ESIP
          • Dev1
  • Please use caution in removing older version unless it is at least two versions ago. Confirm with DevOps if cleanup might be involved.

  • If new or updated data sets, has the FIM code, including running fim_pipeline.sh, been updated and tested with the new/adjusted data? You can dev test against subsets if you like.

    • Yes

Notes to DevOps Team or others:

Please add any notes that are helpful for us to make sure it is all done correctly. Do not put actual server names or full true paths, just shortcut paths like 'efs..../inputs/, or 'dev1....inputs', etc.


Issuer Checklist (For developer use)

You may update this checklist before and/or after creating the PR. If you're unsure about any of them, please ask, we're here to help! These items are what we are going to look for before merging your code.

  • Informative and human-readable title, using the format: [_pt] PR: <description>
  • Links are provided if this PR resolves an issue, or depends on another other PR
  • If submitting a PR to the dev branch (the default branch), you have a descriptive Feature Branch name using the format: dev-<description-of-change> (e.g. dev-revise-levee-masking)
  • Changes are limited to a single goal (no scope creep)
  • The feature branch you're submitting as a PR is up to date (merged) with the latest dev branch
  • pre-commit hooks were run locally
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future todos are captured in comments
  • CHANGELOG updated with template version number, e.g. 4.x.x.x
  • Add yourself as an assignee in the PR as well as the FIM Technical Lead
  • Where applicable, has fim_pipeline been tested with muliple HUCs, including some other unaffected HUCs?

Reviewer / Approver Checklist

  • Where applicable, has fim_pipeline been tested with muliple HUCs, including some other unaffected HUCs?
  • If there are new inputs, have you confirmed that they have been copied to all enviroments?

Merge Checklist (For Technical Lead use only)

  • Update CHANGELOG with latest version number and merge date
  • Update the Citation.cff file to reflect the latest version number in the CHANGELOG
  • If applicable, update README with major alterations

@RileyMcDermott-NOAA RileyMcDermott-NOAA self-assigned this Apr 6, 2026
@RileyMcDermott-NOAA RileyMcDermott-NOAA changed the title Dev flash optimization [3pt] PR: Optimize FLASH FIM Workflow Apr 6, 2026
@RileyMcDermott-NOAA RileyMcDermott-NOAA marked this pull request as ready for review April 7, 2026 17:18
Copy link
Copy Markdown
Contributor

@mluck mluck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested both conflate_flash_flows.py and optimized_flash_conflation.py and both created flow files that were used to create inundation with inundate_mosaic_wrapper.py. Both ran successfully and optimized_flash_conflation.py ran in about 1/4 the time as the other script.

One minor issue is that the scripts fail if the output folder doesn't exist. You may want to check if the folder exists and either create the folder so the output can be saved, or else exit gracefully.

I have a question about the two scripts. Do they have different use cases? Should the optimized_flash_conflation.py script be described in the README.md? Would it make sense to combine the two into a single script that uses an optional lookup table argument if the lookup file exists and otherwise uses zonal stats if it doesn't?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants