Skip to content

flows2fim is a command line utility program that creates composite FIMs for different flow conditions utilizing input FIM libraries and rating curves database

License

Notifications You must be signed in to change notification settings

Dewberry/flows2fim

 
 

Repository files navigation

flows2fim

alt text

Overview

flows2fim is a command line utility program that creates composite FIMs for different flow conditions utilizing input FIM libraries and rating curves database.

It has the following commands.

  • controls: Given a flow file and a rating curves database, create a control table of reach flows and downstream boundary conditions.
  • fim: Given a control table and a fim library folder. Create a flood inundation map for the control conditions.
  • validate: Given a FIM library folder and a rating curves database, validate there is one-to-one correspondence between the entries of the rating curves table and FIM library objects.

Dependencies:

  • 'fim' and 'validate' commands need access to GDAL. GDAL must be installed separately and made available in Path.

Units: Current support is for English units. The flow values must be in cfs

For Users

Getting Started

  1. Download flows2fim executables from s3://fimc-data/flows2fim/release-assets/v0.2.0/.

  2. Install GDAL if you don't already have it.

    GDAL can be installed through a variety of ways.

  3. Make sure flows2fim and GDAL both are available in your Path.

    • On Windows: The easiest way is to place the downloaded flows2fim.exe file from step 1 in C:\OSGeo4W\bin and then use OSGeo4W Shell for the next steps
    • On Linux: Simplest option is to place the downloaded flows2fim file in /bin folder
  4. Get familiar using flows2fim -h and flows2fim COMMAND -h.

  5. Download Baxter sample data from s3://fimc-data/flows2fim/sample_data/v0_2_0/Baxter if you don't have a dataset already.

  6. To create control file from 100yr flows file run flows2fim controls -db "Baxter/ripple.gpkg" -f "Baxter/flows/flows_100yr_cfs.csv" -o "Baxter/controls_100yr.csv" -sids 2821866

  7. To create Depth VRT run flows2fim fim -lib "Baxter/library" -c "Baxter/controls_100yr.csv" -o "Baxter/fim_100yr.vrt"

For Developers

Getting Started

  1. Clone the repository and perform following steps from the root of the repo.

  2. Download Baxter testdata from s3://fimc-data/flows2fim/sample_data/v0_2_0/Baxter to testdata/Baxter folder.

  3. Launch a docker container using docker compose up and run following commands inside the container

  4. Run go run main.go controls -db "testdata/Baxter/ripple.gpkg" -f "testdata/Baxter/flows/flows_100yr_cfs.csv" -o "testdata/Baxter/controls_100yr.csv" -sids 2821866 This will create a controls.csv file

  5. Run go run main.go fim -lib "testdata/Baxter/library" -c "testdata/Baxter/controls_100yr.csv" -o "testdata/Baxter/fim_100yr.vrt" This will create a VRT file. VRT can be tested by loading in QGIS.

Purpose of Directories

  • cmd: Contains individual folders for different commands.

  • pkg: Houses reusable packages potentially useful in other projects.

  • internal: For private application code not intended for external use.

  • scripts: Includes useful scripts for building, testing, and more.

Testing

  1. Run go test ./... to run automated tests.

Building

Run ./scripts/build-linux-amd64.sh This will place the executable in builds/linux-amd64.

About

flows2fim is a command line utility program that creates composite FIMs for different flow conditions utilizing input FIM libraries and rating curves database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.7%
  • Shell 3.4%
  • Dockerfile 0.9%