MOVE3

Maintence of Variance Toolbox


Keywords
engineering, hydrology, science
License
MIT
Install
pip install MOVE3==0.7

Documentation

DOI

Installation

pip install MOVE3

MOVE1

MOVE1 code reads directly from a HEC-DSS file.

MOVE3/move3/test/test.py

Lines 39 to 68 in 2fce4a7

def test_move1(self):
shortPath = '/LITTLE WHITE SALMON RIVER/COOK, WA/FLOW//1DAY/USGS/'
longPath = '/WIND RIVER/CARSON, WA/FLOW//1DAY/USGS/'
extendPath = '/LITTLE WHITE SALMON RIVER/COOK, WA/FLOW//1DAY/USGS-EXTENDED_CARSON/'
dssFile = r'move3\data\MOVE1_testData.dss'
shortData = self.getDSSdata(
shortPath,
dssFile,
'Short Record'
)
longData = self.getDSSdata(
longPath,
dssFile,
'Long Record'
)
extendData = self.getDSSdata(
extendPath,
dssFile,
'Extended Record'
)
mergeData = self.merge_flow_data(
short_data=shortData,
long_data = longData
)
res = MOVE1(mergeData)
res.calculate()

Code is tested against an example provided by the USACE Hydrologic Engineering Center.

MOVE3

MOVE3 code read directly from a text file.

Code is tested aginst an example from Appendix 8 in Bulletin 17C.

Data are read from a csv format with the following format:

WY flow
1900 3000
1901 5000

There should be a individual files for short and long records. The files get merged into a single dataframe within the code. Example input is provided in data/

MOVE3/move3/test/test.py

Lines 88 to 95 in 2fce4a7

def test_move3(self):
short_data = self.getCSVdata(DATA_URLS['short'], 'Short Record')
long_data = self.getCSVdata(DATA_URLS['long'], 'Long Record')
merge = self.merge_flow_data(short_data, long_data)
res = MOVE3(merge)
res.calculate()

This application is designed to perform Bulletin 17C (England et al. 2019) record extension using MOVE.3 and MOVE.1 Methodologies.

There are three possible extension using the MOVE.3:

  1. Full N2 extension - This provides the longest possible short record extension. Be careful because this type of extension has the potential to be artificially long and could result in underestimation of uncertainty of the resulting flood frequency curve.
  2. ne (mean) extension - This provides extension based upon the variance of the mean.
  3. ne (variance extension) - This provides the shortest possible short record extension using the variance of variance. This type of extension is preferable when uncertainty is primary concern. Note: This is the preferred approach presented in Bulletin 17C

References

  • England, John F., Jr., Timothy A. Cohn, Beth A. Faber, Jery R. Stedinger, Wilbert O. Thomas Jr., Andrea G. Veilleux, Julie E. Kiang, and Robert R. Mason, Jr. 2019. “Guidelines for Determining Flood Flow Frequency—Bulletin 17C.” Techniques and Methods. US Geological Survey. https://doi.org/10.3133/tm4b5.

Requirements

Tested on python 3.9

  1. altair
  2. sklearn
  3. numpy
  4. pandas
  5. streamlit

To run app

Working dashboard for MOVE.3 streamflow record extension.

streamlit run move3\ui_move.py

To Test Algorthims

pytest -v move3\test\test.py