├── .gitignore ├── .pylintrc ├── .travis.yml ├── LICENSE ├── MANIFEST.in ├── RAPIDpy ├── __init__.py ├── dataset.py ├── gis │ ├── __init__.py │ ├── centroid.py │ ├── lsm_grids │ │ ├── runoff_ecmwf_t1279_grid.nc │ │ ├── runoff_ecmwf_tco639_grid.nc │ │ └── runoff_era_t511_grid.nc │ ├── muskingum.py │ ├── network.py │ ├── taudem.py │ ├── voronoi.py │ ├── weight.py │ └── workflow.py ├── helper_functions.py ├── inflow │ ├── CreateInflowFileFromERA5Runoff.py │ ├── CreateInflowFileFromERAInterimRunoff.py │ ├── CreateInflowFileFromGriddedRunoff.py │ ├── CreateInflowFileFromLDASRunoff.py │ ├── CreateInflowFileFromWRFHydroRunoff.py │ ├── __init__.py │ └── lsm_rapid_process.py ├── pangaea │ ├── .pylintrc │ ├── .travis.yml │ ├── LICENSE │ ├── __init__.py │ ├── log.py │ ├── meta.py │ ├── read.py │ └── xlsm.py ├── postprocess │ ├── __init__.py │ ├── generate_return_periods.py │ ├── generate_seasonal_averages.py │ ├── goodness_of_fit.py │ └── merge.py ├── rapid.py └── utilities.py ├── README.md ├── appveyor.yml ├── docs ├── Makefile ├── conf.py ├── gis_stream_network.rst ├── gis_tools.rst ├── index.rst ├── installation.rst ├── lsm_inflow.rst ├── make.bat ├── postprocessing.rst ├── rapid_dataset.rst ├── rapid_to_gssha.rst └── running_rapid.rst ├── rapidpy_env.yml ├── readthedocs.yml ├── requirements.readthedocs.txt ├── setup.py └── tests ├── compare ├── Qinit_seasonal_avg_jan_1.csv ├── Qout_merge.nc ├── Qout_nasa_lis_3hr_20020830.nc ├── Qout_nasa_lis_3hr_20020830_CF.nc ├── Qout_nasa_lis_3hr_20020830_CF_no_lat_lon_z.nc ├── Qout_nasa_lis_3hr_20020830_original.nc ├── cf_goodness_of_fit_analysis.csv ├── cf_goodness_of_fit_analysis_1.csv ├── cf_timeseries.csv ├── cf_timeseries.ihg ├── cf_timeseries.xys ├── cf_timeseries_daily.csv ├── cf_timeseries_daily.ihg ├── cf_timeseries_daily.xys ├── cf_timeseries_daily_date.csv ├── cf_timeseries_daily_date.ihg ├── cf_timeseries_daily_date.xys ├── cf_timeseries_daily_date_tz.ihg ├── cf_timeseries_daily_tz.ihg ├── cf_timeseries_date.csv ├── cf_timeseries_date.ihg ├── cf_timeseries_date.xys ├── cf_timeseries_date_tz.ihg ├── cf_timeseries_tz.ihg ├── gage_rivid.csv ├── gage_streamflow.csv ├── gis │ ├── ark-ms │ │ ├── k.csv │ │ ├── rapid_connect.csv │ │ ├── riv_bas_id.csv │ │ ├── weight_cmip5.csv │ │ └── x.csv │ ├── m-s │ │ ├── comid_lat_lon_z.csv │ │ ├── k.csv │ │ ├── kfac.csv │ │ ├── rapid_connect.csv │ │ ├── riv_bas_id.csv │ │ ├── weight_wrf.csv │ │ └── x.csv │ ├── mendocino │ │ ├── k.csv │ │ ├── rapid_connect.csv │ │ ├── riv_bas_id.csv │ │ ├── weight_era5.csv │ │ └── x.csv │ ├── mendocino_nhdplus_catchment │ │ ├── rapid_connectivity_mendocino_sample.csv │ │ ├── weight_lis_land_fraction_mendocino_subset.csv │ │ └── weight_mendocino_era5_land_mask.csv │ ├── u-k │ │ ├── comid_lat_lon_z.csv │ │ ├── k.csv │ │ ├── kfac.csv │ │ ├── rapid_connect.csv │ │ ├── riv_bas_id.csv │ │ ├── weight_joules.csv │ │ ├── weight_lis.csv │ │ ├── x.csv │ │ └── x_drain.csv │ ├── uk-no_intersect │ │ └── weight_lis_no_intersect.csv │ └── x-x │ │ ├── comid_lat_lon_z.csv │ │ ├── k.csv │ │ ├── kfac.csv │ │ ├── kfac1.csv │ │ ├── kfac2.csv │ │ ├── qinit_erai_t511_3hr_20030121to20030122.csv │ │ ├── rapid_connect.csv │ │ ├── rapid_connect_nhd.csv │ │ ├── riv_bas_id.csv │ │ ├── weight_area.csv │ │ ├── weight_ecmwf_t1279.csv │ │ ├── weight_ecmwf_tco639.csv │ │ ├── weight_era_t159.csv │ │ ├── weight_era_t255.csv │ │ ├── weight_era_t511.csv │ │ ├── weight_gldas2.csv │ │ ├── weight_nldas.csv │ │ ├── weight_polygons.csv │ │ └── x.csv ├── goodness_of_fit_obs_sim.csv ├── goodness_of_fit_obs_sim.txt ├── inflow │ ├── Qout_erai_t511_3hr_20030121to20030122.nc │ ├── Qout_erai_t511_3hr_20030121to20030122_init.nc │ ├── m3_riv_bas_cmip5_cmip5_24hr_20010101to20010103.nc │ ├── m3_riv_bas_era5_era5_3hr_20190101to20190101.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_0.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_1.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_2.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_3.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_4.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_5.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_6.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_7.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_8.nc │ ├── m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_9.nc │ ├── m3_riv_bas_erai_t255_3hr_20140820to20140821.nc │ ├── m3_riv_bas_erai_t511_24hr_19990109to19990110.nc │ ├── m3_riv_bas_erai_t511_3hr_20030121to20030122.nc │ ├── m3_riv_bas_met_office_joules_3hr_20080803to20080803.nc │ ├── m3_riv_bas_nasa_gldas2_3hr_20101231to20101231.nc │ ├── m3_riv_bas_nasa_lis_3hr_20110121to20110121.nc │ ├── m3_riv_bas_nasa_nldas_3hr_20030121to20030121.nc │ ├── m3_riv_bas_wrf_wrf_1hr_20080601to20080601.nc │ └── qinit_erai_t511_3hr_20030121to20030122.csv ├── new_timeseries_file.csv ├── original_timeseries-notime.csv ├── original_timeseries.csv ├── qinit_cf_rapid_qout.csv ├── qinit_original_rapid_qout.csv ├── rapid_namelist-GENERATE ├── rapid_namelist-GENERATE-NUMBERS ├── rapid_namelist-GENERATE-NUMBERS-FORCING ├── rapid_namelist-GENERATE-TIME ├── rapid_namelist-UPDATE ├── rapid_namelist-UPDATE-INVALID ├── return_periods_erai_t511_24hr_19800101to19861231.nc ├── return_periods_gumble_erai_t511_24hr_19800101to19861231.nc ├── return_periods_log_pearson_erai_t511_24hr_19800101to19861231.nc └── seasonal_averages_erai_t511_24hr_19800101to19861231.nc ├── data ├── Qout_erai_t511_24hr_19800101to19861231.nc ├── Qout_merge_3hr.nc ├── Qout_merge_6hr.nc ├── comid_lat_lon_z.csv ├── for_tot_id.csv ├── for_use_id.csv ├── gis │ ├── catchment.dbf │ ├── catchment.prj │ ├── catchment.shp │ ├── catchment.shx │ ├── flowline.dbf │ ├── flowline.prj │ ├── flowline.shp │ ├── flowline.shx │ ├── jamaica_dem.tif │ ├── m-s │ │ ├── catchment_subset.dbf │ │ ├── catchment_subset.prj │ │ ├── catchment_subset.shp │ │ ├── catchment_subset.shx │ │ ├── flowline_subset.dbf │ │ ├── flowline_subset.prj │ │ ├── flowline_subset.shp │ │ └── flowline_subset.shx │ ├── mendocino_nhdplus_catchment │ │ ├── NHDCat_mendocino_watershed_hopland_sample.cpg │ │ ├── NHDCat_mendocino_watershed_hopland_sample.dbf │ │ ├── NHDCat_mendocino_watershed_hopland_sample.prj │ │ ├── NHDCat_mendocino_watershed_hopland_sample.sbn │ │ ├── NHDCat_mendocino_watershed_hopland_sample.sbx │ │ ├── NHDCat_mendocino_watershed_hopland_sample.shp │ │ └── NHDCat_mendocino_watershed_hopland_sample.shx │ ├── test_catchments.cpg │ ├── test_catchments.dbf │ ├── test_catchments.prj │ ├── test_catchments.shp │ ├── test_catchments.shx │ ├── u-k │ │ ├── CatchmentSubset.dbf │ │ ├── CatchmentSubset.prj │ │ ├── CatchmentSubset.shp │ │ ├── CatchmentSubset.shx │ │ ├── DrainageLineSubset.dbf │ │ ├── DrainageLineSubset.prj │ │ ├── DrainageLineSubset.shp │ │ └── DrainageLineSubset.shx │ └── uk-no_intersect │ │ ├── Catchment_thames_drainID45390.dbf │ │ ├── Catchment_thames_drainID45390.prj │ │ ├── Catchment_thames_drainID45390.shp │ │ ├── Catchment_thames_drainID45390.shx │ │ └── rapid_connect_45390.csv ├── k.csv ├── lsm_grids │ ├── cmip5 │ │ └── conus_c5.ccsm4_rcp60_r1i1p1.daily.total_runoff.2001_subset.nc │ ├── era20cm │ │ ├── era_20cm_runoff_20000129_0.nc │ │ ├── era_20cm_runoff_20000129_1.nc │ │ ├── era_20cm_runoff_20000129_2.nc │ │ ├── era_20cm_runoff_20000129_3.nc │ │ ├── era_20cm_runoff_20000129_4.nc │ │ ├── era_20cm_runoff_20000129_5.nc │ │ ├── era_20cm_runoff_20000129_6.nc │ │ ├── era_20cm_runoff_20000129_7.nc │ │ ├── era_20cm_runoff_20000129_8.nc │ │ ├── era_20cm_runoff_20000129_9.nc │ │ ├── era_20cm_runoff_20000130_0.nc │ │ ├── era_20cm_runoff_20000130_1.nc │ │ ├── era_20cm_runoff_20000130_2.nc │ │ ├── era_20cm_runoff_20000130_3.nc │ │ ├── era_20cm_runoff_20000130_4.nc │ │ ├── era_20cm_runoff_20000130_5.nc │ │ ├── era_20cm_runoff_20000130_6.nc │ │ ├── era_20cm_runoff_20000130_7.nc │ │ ├── era_20cm_runoff_20000130_8.nc │ │ └── era_20cm_runoff_20000130_9.nc │ ├── era5 │ │ └── era5runoff.25km.20190101_mendocino_subset.nc │ ├── era5_land_mask │ │ └── era5_land-sea_mask_mendocino_subset.nc │ ├── erai24 │ │ ├── 19990109_erai_runoff.grib.nc │ │ └── 19990110_erai_runoff.grib.nc │ ├── erai3 │ │ ├── 20030121_erai3h_ro.nc │ │ └── 20030122_erai3h_ro.nc │ ├── erai3t255 │ │ ├── era_interim_runoff_20140820.nc │ │ └── era_interim_runoff_20140821.nc │ ├── gldas2 │ │ ├── GLDAS_NOAH025_3H.A20101231.0000.020.nc4 │ │ └── GLDAS_NOAH025_3H.A20101231.0300.020.nc4 │ ├── joules │ │ ├── ukv_test.runoff.20080803_00.nc │ │ ├── ukv_test.runoff.20080803_01.nc │ │ ├── ukv_test.runoff.20080803_02.nc │ │ ├── ukv_test.runoff.20080803_03.nc │ │ ├── ukv_test.runoff.20080803_04.nc │ │ ├── ukv_test.runoff.20080803_05.nc │ │ ├── ukv_test.runoff.20080803_06.nc │ │ ├── ukv_test.runoff.20080803_07.nc │ │ ├── ukv_test.runoff.20080803_08.nc │ │ ├── ukv_test.runoff.20080803_09.nc │ │ ├── ukv_test.runoff.20080803_10.nc │ │ ├── ukv_test.runoff.20080803_11.nc │ │ ├── ukv_test.runoff.20080803_12.nc │ │ ├── ukv_test.runoff.20080803_13.nc │ │ ├── ukv_test.runoff.20080803_14.nc │ │ ├── ukv_test.runoff.20080803_15.nc │ │ ├── ukv_test.runoff.20080803_16.nc │ │ ├── ukv_test.runoff.20080803_17.nc │ │ ├── ukv_test.runoff.20080803_18.nc │ │ ├── ukv_test.runoff.20080803_19.nc │ │ ├── ukv_test.runoff.20080803_20.nc │ │ ├── ukv_test.runoff.20080803_21.nc │ │ ├── ukv_test.runoff.20080803_22.nc │ │ └── ukv_test.runoff.20080803_23.nc │ ├── lis │ │ ├── LIS_HIST_201101210000.d01.nc │ │ ├── LIS_HIST_201101210100.d01.nc │ │ ├── LIS_HIST_201101210200.d01.nc │ │ ├── LIS_HIST_201101210300.d01.nc │ │ ├── LIS_HIST_201101210400.d01.nc │ │ ├── LIS_HIST_201101210500.d01.nc │ │ ├── LIS_HIST_201101210600.d01.nc │ │ ├── LIS_HIST_201101210700.d01.nc │ │ ├── LIS_HIST_201101210800.d01.nc │ │ ├── LIS_HIST_201101210900.d01.nc │ │ ├── LIS_HIST_201101211000.d01.nc │ │ ├── LIS_HIST_201101211100.d01.nc │ │ ├── LIS_HIST_201101211200.d01.nc │ │ ├── LIS_HIST_201101211300.d01.nc │ │ ├── LIS_HIST_201101211400.d01.nc │ │ ├── LIS_HIST_201101211500.d01.nc │ │ ├── LIS_HIST_201101211600.d01.nc │ │ ├── LIS_HIST_201101211700.d01.nc │ │ ├── LIS_HIST_201101211800.d01.nc │ │ ├── LIS_HIST_201101211900.d01.nc │ │ ├── LIS_HIST_201101212000.d01.nc │ │ ├── LIS_HIST_201101212100.d01.nc │ │ ├── LIS_HIST_201101212200.d01.nc │ │ └── LIS_HIST_201101212300.d01.nc │ ├── lis_land_mask │ │ └── lisglobalmask557ww_mendocino_subset.nc │ ├── nldas2 │ │ ├── NLDAS_VIC0125_H.A20030121.2100.002.nc │ │ ├── NLDAS_VIC0125_H.A20030121.2200.002.nc │ │ └── NLDAS_VIC0125_H.A20030121.2300.002.nc │ └── wrf │ │ ├── diffro_d02_20080601010000.nc │ │ ├── diffro_d02_20080601020000.nc │ │ ├── diffro_d02_20080601030000.nc │ │ ├── diffro_d02_20080601040000.nc │ │ ├── diffro_d02_20080601050000.nc │ │ ├── diffro_d02_20080601060000.nc │ │ ├── diffro_d02_20080601070000.nc │ │ ├── diffro_d02_20080601080000.nc │ │ ├── diffro_d02_20080601090000.nc │ │ ├── diffro_d02_20080601100000.nc │ │ ├── diffro_d02_20080601110000.nc │ │ ├── diffro_d02_20080601120000.nc │ │ ├── diffro_d02_20080601130000.nc │ │ ├── diffro_d02_20080601140000.nc │ │ ├── diffro_d02_20080601150000.nc │ │ ├── diffro_d02_20080601160000.nc │ │ ├── diffro_d02_20080601170000.nc │ │ ├── diffro_d02_20080601180000.nc │ │ ├── diffro_d02_20080601190000.nc │ │ ├── diffro_d02_20080601200000.nc │ │ ├── diffro_d02_20080601210000.nc │ │ ├── diffro_d02_20080601220000.nc │ │ └── diffro_d02_20080601230000.nc ├── m3_nasa_lis_3hr_20020830.nc ├── obs_flow.csv ├── obs_flow_1.csv ├── obs_reach_id.csv ├── obs_reach_id_1.csv ├── qfor.csv ├── rapid_connect.csv ├── rapid_gssha_connect_file1.csv ├── rapid_gssha_connect_file3.csv ├── rapid_namelist_invalid ├── rapid_namelist_valid ├── riv_bas_id.csv ├── usgs_gage_id_rivid.csv └── x.csv ├── output └── .gitignore ├── test_gis.py ├── test_inflow.py ├── test_postprocess.py └── test_rapidpy.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | *.egg-info/ 23 | .installed.cfg 24 | *.egg 25 | 26 | # PyInstaller 27 | # Usually these files are written by a python script from a template 28 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 29 | *.manifest 30 | *.spec 31 | 32 | # Installer logs 33 | pip-log.txt 34 | pip-delete-this-directory.txt 35 | 36 | # Unit test / coverage reports 37 | htmlcov/ 38 | .tox/ 39 | .coverage 40 | .coverage.* 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | *,cover 45 | 46 | # Translations 47 | *.mo 48 | *.pot 49 | 50 | # Django stuff: 51 | *.log 52 | 53 | # Sphinx documentation 54 | docs/_build/ 55 | 56 | # PyBuilder 57 | target/ 58 | 59 | #other 60 | *~ 61 | *.DS_Store 62 | 63 | # pycharm 64 | .idea/ 65 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | disable=invalid-name,bad-continuation,too-many-lines,superfluous-parens,too-many-arguments,too-many-branches,too-many-statements,too-many-locals,too-few-public-methods,too-many-instance-attributes 3 | [TYPECHECK] 4 | ignored-modules=numpy,netCDF4,scipy,scipy.spatial -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | #******************************************************************************* 2 | #.travis.yml 3 | #******************************************************************************* 4 | 5 | #Purpose: 6 | #Travis CI is a hosted continuous integration service, that is, it allows 7 | #running code directly from a repository and checking that the code acts as 8 | #expected. The purpose of the .travis.yml file is to give instructions to Travis 9 | #CI on how to do the work. 10 | #Authors: 11 | #Alan D. Snow, 2016, based on initial .yml file by Cedric H. David 12 | 13 | #******************************************************************************* 14 | #System specifications for Travis CI 15 | #******************************************************************************* 16 | language: c 17 | os: 18 | - linux 19 | - osx 20 | env: 21 | - TRAVIS_PYTHON_VERSION="2.7" 22 | - TRAVIS_PYTHON_VERSION="3.5" 23 | - TRAVIS_PYTHON_VERSION="3.6" 24 | matrix: 25 | fast_finish: true 26 | allow_failures: 27 | - os: osx 28 | notifications: 29 | email: false 30 | 31 | #******************************************************************************* 32 | #Before installing RAPIDpy 33 | #******************************************************************************* 34 | before_install: 35 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 36 | sudo apt-get update -qq; 37 | sudo apt-get install -y g++ gfortran; 38 | fi 39 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 40 | brew update; 41 | brew install gcc; 42 | fi 43 | 44 | #------------------------------------------------------------------------------- 45 | #Add miniconda - from https://gist.github.com/dan-blanchard/7045057 46 | #----------------------------------------------------------------------------- 47 | 48 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 49 | wget http://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-Linux-x86_64.sh -O miniconda.sh; 50 | fi 51 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 52 | curl -o miniconda.sh https://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-MacOSX-x86_64.sh; 53 | fi 54 | - chmod +x miniconda.sh 55 | - ./miniconda.sh -b -p $HOME/miniconda 56 | - export PATH=$HOME/miniconda/bin:$PATH 57 | - conda update --yes conda python 58 | #create environment in conda 59 | - conda create --yes --name rapid python=$TRAVIS_PYTHON_VERSION 60 | - source activate rapid 61 | 62 | #----------------------------------------------------------------------------- 63 | # Install required python packages 64 | #----------------------------------------------------------------------------- 65 | - conda config --add channels conda-forge 66 | - conda install --yes cmake gdal future netcdf4 numpy pandas pangaea pyproj pytz requests rtree scipy shapely 67 | - source deactivate rapid 68 | 69 | #------------------------------------------------------------------------------- 70 | #Creating directory for installation of libraries used by RAPID & RAPIDpy 71 | #------------------------------------------------------------------------------- 72 | - export INSTALLZ_DIR=$TRAVIS_BUILD_DIR/installz 73 | - mkdir $INSTALLZ_DIR 74 | 75 | #------------------------------------------------------------------------------- 76 | #Installing RAPID 77 | #------------------------------------------------------------------------------- 78 | - cd $TRAVIS_BUILD_DIR/.. 79 | - git clone https://github.com/c-h-david/rapid.git --branch 20161221 80 | - cd rapid 81 | # Installing RAPID Prereqs 82 | - bash rapid_install_prereqs.sh -i=$INSTALLZ_DIR 83 | - source rapid_specify_varpath.sh $INSTALLZ_DIR 84 | # Building RAPID 85 | - cd src 86 | - make rapid 87 | 88 | #------------------------------------------------------------------------------- 89 | #Installing TauDEM 90 | #------------------------------------------------------------------------------- 91 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 92 | cd $TRAVIS_BUILD_DIR/.. ; 93 | git clone https://github.com/dtarb/TauDEM.git ; 94 | cd TauDEM/src ; 95 | rm makefile ; 96 | source activate rapid ; 97 | cmake . ; 98 | make ; 99 | fi 100 | 101 | #******************************************************************************* 102 | #Installing RAPIDpy 103 | #******************************************************************************* 104 | install: 105 | - cd $TRAVIS_BUILD_DIR 106 | - pip install -e .[tests] 107 | #******************************************************************************* 108 | #Testing RAPIDpy 109 | #******************************************************************************* 110 | script: 111 | - py.test --cov-report term-missing --cov=RAPIDpy 112 | - flake8 RAPIDpy 113 | - pylint RAPIDpy 114 | ##ADD Coveralls stats for code coverage 115 | after_success: 116 | - coveralls 117 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, ERDC Computational Mechanics 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of RAPIDpy nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include LICENSE 2 | include README.md 3 | -------------------------------------------------------------------------------- /RAPIDpy/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | RAPIDpy 4 | 5 | Created by Alan D Snow, 2015. 6 | License: BSD 3-Clause 7 | """ 8 | from .rapid import RAPID # noqa 9 | from .dataset import RAPIDDataset # noqa 10 | -------------------------------------------------------------------------------- /RAPIDpy/gis/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | RAPIDpy.gis 4 | 5 | Created by Alan D Snow, 2016. 6 | Based on RAPID_Toolbox for ArcMap 7 | License: BSD 3-Clause 8 | """ 9 | from osgeo import ogr 10 | 11 | 12 | def open_shapefile(shapefile_path, file_geodatabase=None): 13 | """Opens a shapefile using either a shapefile path 14 | or a file geodatabase 15 | """ 16 | if file_geodatabase: 17 | gdb_driver = ogr.GetDriverByName("OpenFileGDB") 18 | ogr_shapefile = gdb_driver.Open(file_geodatabase) 19 | ogr_shapefile_lyr = ogr_shapefile.GetLayer(shapefile_path) 20 | else: 21 | ogr_shapefile = ogr.Open(shapefile_path) 22 | ogr_shapefile_lyr = ogr_shapefile.GetLayer() 23 | return ogr_shapefile_lyr, ogr_shapefile 24 | -------------------------------------------------------------------------------- /RAPIDpy/gis/centroid.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | centroid.py 4 | RAPIDpy 5 | 6 | Created by Alan D Snow, 2016. 7 | License: BSD 3-Clause 8 | """ 9 | from csv import writer as csv_writer 10 | 11 | from osgeo import gdal, osr 12 | 13 | # local 14 | from . import open_shapefile 15 | from ..helper_functions import open_csv 16 | 17 | # Enable GDAL/OGR exceptions 18 | gdal.UseExceptions() 19 | 20 | 21 | def FlowlineToPoint(in_drainage_line, 22 | river_id, 23 | out_csv_file, 24 | file_geodatabase=None): 25 | """ 26 | Converts flowline feature to a list of centroid points with their rivid 27 | in EPSG:4326. 28 | 29 | Parameters 30 | ---------- 31 | in_drainage_line: str 32 | Path to the stream network (i.e. Drainage Line) shapefile. 33 | river_id: str 34 | The name of the field with the river ID 35 | (Ex. 'HydroID', 'COMID', or 'LINKNO'). 36 | out_csv_file: str 37 | Path to the output csv file with the centroid points. 38 | file_geodatabase: str, optional 39 | Path to the file geodatabase. If you use this option, in_drainage_line 40 | is the name of the stream network feature class 41 | (WARNING: Not always stable with GDAL). 42 | 43 | 44 | Example:: 45 | 46 | from RAPIDpy.gis.centroid import FlowlineToPoint 47 | 48 | FlowlineToPoint( 49 | in_drainage_line='/path/to/drainageline.shp', 50 | river_id='LINKNO', 51 | out_csv_file='/path/to/comid_lat_lon_z.csv') 52 | 53 | """ 54 | ogr_drainage_line_shapefile_lyr, ogr_drainage_line_shapefile = \ 55 | open_shapefile(in_drainage_line, file_geodatabase) 56 | 57 | ogr_drainage_line_shapefile_lyr_proj = \ 58 | ogr_drainage_line_shapefile_lyr.GetSpatialRef() 59 | osr_geographic_proj = osr.SpatialReference() 60 | osr_geographic_proj.ImportFromEPSG(4326) 61 | proj_transform = None 62 | if ogr_drainage_line_shapefile_lyr_proj != osr_geographic_proj: 63 | proj_transform = osr.CoordinateTransformation( 64 | ogr_drainage_line_shapefile_lyr_proj, osr_geographic_proj) 65 | 66 | # print valid field names to table 67 | with open_csv(out_csv_file, 'w') as outfile: 68 | writer = csv_writer(outfile) 69 | writer.writerow(['rivid', 'lat', 'lon', 'z']) 70 | for feature in ogr_drainage_line_shapefile_lyr: 71 | feat_geom = feature.GetGeometryRef() 72 | if proj_transform: 73 | feat_geom.Transform(proj_transform) 74 | centroid = feat_geom.Centroid() 75 | centroid_pt = centroid.GetPoint(0) 76 | writer.writerow([ 77 | feature.GetField(river_id), 78 | centroid_pt[1], 79 | centroid_pt[0], 80 | centroid_pt[2] 81 | ]) 82 | 83 | del ogr_drainage_line_shapefile 84 | -------------------------------------------------------------------------------- /RAPIDpy/gis/lsm_grids/runoff_ecmwf_t1279_grid.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/RAPIDpy/gis/lsm_grids/runoff_ecmwf_t1279_grid.nc -------------------------------------------------------------------------------- /RAPIDpy/gis/lsm_grids/runoff_ecmwf_tco639_grid.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/RAPIDpy/gis/lsm_grids/runoff_ecmwf_tco639_grid.nc -------------------------------------------------------------------------------- /RAPIDpy/gis/lsm_grids/runoff_era_t511_grid.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/RAPIDpy/gis/lsm_grids/runoff_era_t511_grid.nc -------------------------------------------------------------------------------- /RAPIDpy/helper_functions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | helper_functions.py 4 | RAPIDpy 5 | 6 | Created by Alan D Snow, 2015. 7 | """ 8 | import csv 9 | from os import remove 10 | from sys import version_info 11 | 12 | from numpy.testing import assert_almost_equal 13 | from numpy import array as np_array 14 | from numpy import float32 as np_float32 15 | 16 | 17 | # ----------------------------------------------------------------------------- 18 | # HELPER FUNCTIONS 19 | # ----------------------------------------------------------------------------- 20 | # pylint: disable=line-too-long 21 | def open_csv(csv_file, mode='r'): 22 | """ 23 | Get mode depending on Python version 24 | Based on: http://stackoverflow.com/questions/29840849/writing-a-csv-file-in-python-that-works-for-both-python-2-7-and-python-3-3-in 25 | """ # noqa 26 | if version_info[0] == 2: # Not named on 2.6 27 | access = '{0}b'.format(mode) 28 | kwargs = {} 29 | else: 30 | access = '{0}t'.format(mode) 31 | kwargs = {'newline': ''} 32 | 33 | return open(csv_file, access, **kwargs) 34 | 35 | 36 | def log(message, severity="INFO", print_debug=True): 37 | """Logs, prints, or raises a message. 38 | 39 | Arguments: 40 | message -- message to report 41 | severity -- string of one of these values: 42 | CRITICAL|ERROR|WARNING|INFO|DEBUG 43 | """ 44 | 45 | print_me = ['WARNING', 'INFO', 'DEBUG'] 46 | if severity in print_me: 47 | if severity == 'DEBUG': 48 | if print_debug: 49 | print("{0}: {1}".format(severity, message)) 50 | else: 51 | print("{0}: {1}".format(severity, message)) 52 | else: 53 | raise Exception("{0}: {1}".format(severity, message)) 54 | 55 | 56 | def csv_to_list(csv_file, delimiter=','): 57 | """ 58 | Reads in a CSV file and returns the contents as list, 59 | where every row is stored as a sublist, and each element 60 | in the sublist represents 1 cell in the table. 61 | """ 62 | with open_csv(csv_file) as csv_con: 63 | if len(delimiter) > 1: 64 | dialect = csv.Sniffer().sniff(csv_con.read(1024), 65 | delimiters=delimiter) 66 | csv_con.seek(0) 67 | reader = csv.reader(csv_con, dialect) 68 | else: 69 | reader = csv.reader(csv_con, delimiter=delimiter) 70 | return list(reader) 71 | 72 | 73 | def compare_csv_decimal_files(file1, file2, header=True, timeseries=False): 74 | """ 75 | This function compares two csv files 76 | """ 77 | # CHECK NUM LINES 78 | with open_csv(file1) as fh1, \ 79 | open_csv(file2) as fh2: 80 | assert sum(1 for _ in fh1) == sum(1 for _ in fh2) 81 | 82 | with open_csv(file1) as fh1, \ 83 | open_csv(file2) as fh2: 84 | csv1 = csv.reader(fh1) 85 | csv2 = csv.reader(fh2) 86 | 87 | if header: 88 | assert next(csv1) == next(csv2) # header 89 | 90 | while True: 91 | try: 92 | row1 = next(csv1) 93 | row2 = next(csv2) 94 | compare_start_index = 0 95 | if timeseries: 96 | assert row1[0] == row2[0] # check dates 97 | compare_start_index = 1 98 | 99 | assert_almost_equal( 100 | np_array(row1[compare_start_index:], dtype=np_float32), 101 | np_array(row2[compare_start_index:], dtype=np_float32), 102 | decimal=2) 103 | except StopIteration: 104 | break 105 | return True 106 | 107 | 108 | def compare_csv_timeseries_files(file1, file2, header=True): 109 | """ 110 | This function compares two csv files 111 | """ 112 | return compare_csv_decimal_files(file1, file2, header, True) 113 | 114 | 115 | def remove_files(*args): 116 | """ 117 | This function removes all files input as arguments 118 | """ 119 | for arg in args: 120 | try: 121 | remove(arg) 122 | except OSError: 123 | pass 124 | 125 | 126 | def add_latlon_metadata(lat_var, lon_var): 127 | """Adds latitude and longitude metadata""" 128 | lat_var.long_name = 'latitude' 129 | lat_var.standard_name = 'latitude' 130 | lat_var.units = 'degrees_north' 131 | lat_var.axis = 'Y' 132 | 133 | lon_var.long_name = 'longitude' 134 | lon_var.standard_name = 'longitude' 135 | lon_var.units = 'degrees_east' 136 | lon_var.axis = 'X' 137 | -------------------------------------------------------------------------------- /RAPIDpy/inflow/CreateInflowFileFromERA5Runoff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | CreateInflowFileFromERA5Runoff.py 4 | RAPIDpy 5 | 6 | Adapted from CreateInflowFileFromERAInterimRunoff.py. 7 | License: BSD-3-Clause 8 | """ 9 | from netCDF4 import Dataset 10 | 11 | from .CreateInflowFileFromGriddedRunoff import \ 12 | CreateInflowFileFromGriddedRunoff 13 | 14 | 15 | class CreateInflowFileFromERA5Runoff(CreateInflowFileFromGriddedRunoff): 16 | """Create Inflow File From ERA Interim Runoff 17 | 18 | Creates RAPID NetCDF input of water inflow based on 19 | ERA5 runoff and previously created weight table. 20 | """ 21 | land_surface_model_name = "ERA5" 22 | header_wt = ['rivid', 'area_sqm', 'lon_index', 'lat_index', 'npoints'] 23 | dims_oi = ['time', 'longitude', 'latitude'] 24 | vars_oi = ['time', 'longitude', 'latitude', 'ro'] 25 | runoff_vars = ['ro'] 26 | length_time = {"Daily": 1, "3-Hourly": 8} 27 | 28 | def __init__(self): 29 | """Define the attributes to look for""" 30 | self.runoff_vars = ['ro'] 31 | super(CreateInflowFileFromERA5Runoff, self).__init__() 32 | 33 | def data_validation(self, in_nc): 34 | """Check the necessary dimensions and variables in the input 35 | netcdf data""" 36 | data_nc = Dataset(in_nc) 37 | 38 | dims = list(data_nc.dimensions) 39 | ndim = len(dims) 40 | 41 | ndim_intersect = len(set(dims) & set(self.dims_oi)) 42 | if not ndim_intersect == ndim: 43 | data_nc.close() 44 | raise Exception("{0} {1}".format(self.error_messages[1], dims)) 45 | 46 | nc_vars = list(data_nc.variables) 47 | nvar = len(nc_vars) 48 | 49 | nvar_intersect = len(set(nc_vars) & set(self.vars_oi)) 50 | if nvar_intersect == nvar: 51 | runoff_intersect = set(nc_vars) & set(self.runoff_vars) 52 | self.runoff_vars = [runoff_intersect.pop()] 53 | else: 54 | data_nc.close() 55 | raise Exception("{0} {1}".format(self.error_messages[2], nc_vars)) 56 | data_nc.close() 57 | -------------------------------------------------------------------------------- /RAPIDpy/inflow/CreateInflowFileFromERAInterimRunoff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | CreateInflowFileFromERAInterimRunoff.py 4 | RAPIDpy 5 | 6 | Created by Alan D. Snow, 2015 7 | Adapted from CreateInflowFileFromECMWFRunoff.py. 8 | License: BSD-3-Clause 9 | """ 10 | from netCDF4 import Dataset 11 | 12 | from .CreateInflowFileFromGriddedRunoff import \ 13 | CreateInflowFileFromGriddedRunoff 14 | 15 | 16 | class CreateInflowFileFromERAInterimRunoff(CreateInflowFileFromGriddedRunoff): 17 | """Create Inflow File From ERA Interim Runoff 18 | 19 | Creates RAPID NetCDF input of water inflow based on 20 | ERA Interim runoff and previously created weight table. 21 | """ 22 | land_surface_model_name = "ERA Interim" 23 | header_wt = ['rivid', 'area_sqm', 'lon_index', 'lat_index', 'npoints'] 24 | dims_oi = [['lon', 'lat', 'time'], ['longitude', 'latitude', 'time']] 25 | vars_oi = [["lon", "lat", "time", "RO"], 26 | ['longitude', 'latitude', 'time', 'ro']] 27 | length_time = {"Daily": 1, "3-Hourly": 8} 28 | 29 | def __init__(self): 30 | """Define the attributes to look for""" 31 | self.runoff_vars = ['ro'] 32 | super(CreateInflowFileFromERAInterimRunoff, self).__init__() 33 | 34 | def data_validation(self, in_nc): 35 | """Check the necessary dimensions and variables in the input 36 | netcdf data""" 37 | data_nc = Dataset(in_nc) 38 | 39 | dims = list(data_nc.dimensions) 40 | 41 | if dims not in self.dims_oi: 42 | data_nc.close() 43 | raise Exception("{0} {1}".format(self.error_messages[1], dims)) 44 | 45 | nc_vars = list(data_nc.variables) 46 | 47 | if nc_vars == self.vars_oi[0]: 48 | self.runoff_vars = [self.vars_oi[0][-1]] 49 | elif nc_vars == self.vars_oi[1]: 50 | self.runoff_vars = [self.vars_oi[1][-1]] 51 | else: 52 | data_nc.close() 53 | raise Exception("{0} {1}".format(self.error_messages[2], nc_vars)) 54 | data_nc.close() 55 | -------------------------------------------------------------------------------- /RAPIDpy/inflow/CreateInflowFileFromLDASRunoff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | CreateInflowFileFromLDASRunoff.py 4 | RAPIDpy 5 | 6 | Created by Alan D. Snow, 2015 7 | Adapted from CreateInflowFileFromECMWFRunoff.py. 8 | License: BSD-3-Clause 9 | """ 10 | from netCDF4 import Dataset 11 | 12 | from .CreateInflowFileFromGriddedRunoff import \ 13 | CreateInflowFileFromGriddedRunoff 14 | 15 | 16 | class CreateInflowFileFromLDASRunoff(CreateInflowFileFromGriddedRunoff): 17 | """Create Inflow File From LDAS Runoff 18 | 19 | Base class for creating RAPID NetCDF input 20 | of water inflow based on LDAS land surface model 21 | runoff and previously created weight table. 22 | """ 23 | land_surface_model_name = "LDAS" 24 | 25 | def __init__(self, 26 | lat_dim, # "g0_lat_0", 27 | lon_dim, # "g0_lon_1", 28 | lat_var, # "g0_lat_0", 29 | lon_var, # "g0_lon_1", 30 | runoff_vars): # ["Qsb_GDS0_SFC_ave1h", "Qs_GDS0_SFC_ave1h"], 31 | """Define the attributes to look for""" 32 | self.dims_oi = [lon_dim, lat_dim] 33 | self.vars_oi = [lon_var, lat_var] + runoff_vars 34 | self.runoff_vars = runoff_vars 35 | self.length_time = {"Hourly": 1} 36 | 37 | super(CreateInflowFileFromLDASRunoff, self).__init__() 38 | 39 | def data_validation(self, in_nc): 40 | """Check the necessary dimensions and variables in the 41 | input netcdf data""" 42 | data_nc = Dataset(in_nc) 43 | for dim in self.dims_oi: 44 | if dim not in data_nc.dimensions.keys(): 45 | data_nc.close() 46 | raise Exception(self.error_messages[1]) 47 | 48 | for var in self.vars_oi: 49 | if var not in data_nc.variables.keys(): 50 | data_nc.close() 51 | raise Exception(self.error_messages[2]) 52 | 53 | data_nc.close() 54 | return 55 | -------------------------------------------------------------------------------- /RAPIDpy/inflow/CreateInflowFileFromWRFHydroRunoff.py: -------------------------------------------------------------------------------- 1 | """ 2 | CreateInflowFileFromLDASRunoff.py 3 | RAPIDpy 4 | 5 | Created by Alan D. Snow, 2016 6 | Adapted from CreateInflowFileFromWRFHydroRunoff.py. 7 | License: BSD-3-Clause 8 | """ 9 | from .CreateInflowFileFromLDASRunoff import CreateInflowFileFromLDASRunoff 10 | 11 | 12 | class CreateInflowFileFromWRFHydroRunoff(CreateInflowFileFromLDASRunoff): 13 | """Create Inflow File From WRF-Hydro Runoff 14 | 15 | Base class for creating RAPID NetCDF input 16 | of water inflow based on WRF-Hydro 17 | runoff and previously created weight table. 18 | 19 | According to David Gochis, underground runoff is 20 | "a major fraction of total river flow in most places" 21 | """ 22 | land_surface_model_name = "WRF-Hydro" 23 | header_wt = ['rivid', 'area_sqm', 'west_east', 'south_north', 'npoints'] 24 | 25 | def __init__(self, lat_dim="south_north", 26 | lon_dim="west_east", 27 | lat_var="XLAT", 28 | lon_var="XLONG", 29 | surface_runoff_var="SFROFF", 30 | subsurface_runoff_var="UDROFF"): 31 | 32 | """Define the tool (tool name is the name of the class).""" 33 | self.dims_oi = ['Time', lat_dim, lon_dim] 34 | 35 | super(CreateInflowFileFromWRFHydroRunoff, self).\ 36 | __init__(lat_dim, lon_dim, lat_var, lon_var, 37 | [surface_runoff_var, subsurface_runoff_var]) 38 | -------------------------------------------------------------------------------- /RAPIDpy/inflow/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | inflow 4 | RAPIDpy 5 | 6 | This module is for generating inflow files for RAPID simulations. 7 | 8 | Created by: Alan D. Snow, 2015. 9 | License: BSD 3-Clause 10 | """ 11 | from .lsm_rapid_process import run_lsm_rapid_process # noqa: F401 12 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | disable=bad-continuation,broad-except,invalid-name,invalid-unary-operand-type,too-many-arguments,too-many-locals,too-many-instance-attributes,no-member,redefined-variable-type,too-many-branches,too-many-statements 3 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/.travis.yml: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------- 2 | # .travis.yml 3 | # Author: Alan D. Snow, 2017 4 | #------------------------------------------------------------------------------- 5 | #------------------------------------------------------------------------------- 6 | #System specifications for Travis CI 7 | #------------------------------------------------------------------------------- 8 | language: c 9 | os: 10 | - linux 11 | - osx 12 | env: 13 | - TRAVIS_PYTHON_VERSION="2.7" 14 | - TRAVIS_PYTHON_VERSION="3.5" 15 | - TRAVIS_PYTHON_VERSION="3.6" 16 | matrix: 17 | fast_finish: true 18 | allow_failures: 19 | - os: osx 20 | - env: TRAVIS_PYTHON_VERSION="3.5" 21 | - env: TRAVIS_PYTHON_VERSION="3.6" 22 | notifications: 23 | email: false 24 | 25 | before_install: 26 | #----------------------------------------------------------------------------- 27 | # Install minconda 28 | #----------------------------------------------------------------------------- 29 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 30 | wget -O miniconda.sh http://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-Linux-x86_64.sh; 31 | fi 32 | - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 33 | curl -o miniconda.sh https://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-MacOSX-x86_64.sh; 34 | fi 35 | - chmod +x miniconda.sh 36 | - ./miniconda.sh -b -p $HOME/miniconda 37 | - export PATH=$HOME/miniconda/bin:$PATH 38 | - conda config --set always_yes yes 39 | - conda update conda python 40 | #----------------------------------------------------------------------------- 41 | # Create conda environment for pangaea 42 | #----------------------------------------------------------------------------- 43 | - conda create -n pangaea python=$TRAVIS_PYTHON_VERSION 44 | - source activate pangaea 45 | - conda config --add channels conda-forge 46 | - conda env update -n pangaea -f conda_env.yml 47 | # restart environment 48 | - source deactivate 49 | - source activate pangaea 50 | #----------------------------------------------------------------------------- 51 | # Install additional required python packages 52 | #----------------------------------------------------------------------------- 53 | - conda install pynio -c conda-forge/label/dev 54 | #------------------------------------------------------------------------------- 55 | # Install pangaea 56 | #------------------------------------------------------------------------------- 57 | install: 58 | - cd $TRAVIS_BUILD_DIR 59 | - pip install -e .[tests] 60 | script: 61 | - py.test --cov-report term-missing --cov=pangaea 62 | - flake8 --ignore=F401 pangaea setup.py tests 63 | - pylint pangaea 64 | #------------------------------------------------------------------------------- 65 | # Coveralls stats for code coverage 66 | #------------------------------------------------------------------------------- 67 | after_success: 68 | - coveralls 69 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2017, Alan D. Snow 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # __init__.py 4 | # pangaea 5 | # 6 | # Created by Alan D Snow, 2017. 7 | # BSD 3-Clause 8 | """pangaea 9 | Module for reading in land surface model data with xarray. 10 | """ 11 | from .xlsm import LSMGridReader 12 | from .read import open_mfdataset 13 | from .log import log_to_console, log_to_file 14 | from .meta import version 15 | 16 | __version__ = version() 17 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/log.py: -------------------------------------------------------------------------------- 1 | # 2 | # Originally from quest python library 3 | # Adapted for pangaea 4 | # 5 | # License: BSD 3-Clause 6 | 7 | """pangaea.log 8 | This module is for logging with pangaea. 9 | Documentation can be found at `_pangaea Documentation HOWTO`_. 10 | 11 | .. _pangaea Documentation HOWTO: 12 | https://github.com/snowman2/pangaea 13 | """ 14 | # default modules 15 | import logging 16 | import os 17 | # external modules 18 | import appdirs 19 | # local modules 20 | from .meta import version 21 | 22 | LOGGER = logging.getLogger('pangaea') 23 | LOGGER.addHandler(logging.NullHandler()) 24 | LOGGER.propagate = False 25 | 26 | DEFAULT_LOG_DIR = appdirs.user_log_dir('pangaea', 'logs') 27 | DEFAULT_LOG_FILE = os.path.join(DEFAULT_LOG_DIR, 'pangaea.log') 28 | 29 | 30 | def log_to_console(status=True, level=None): 31 | """Log events to the console. 32 | 33 | Args: 34 | status (bool, Optional, Default=True) 35 | whether logging to console should be turned on(True) or off(False) 36 | level (string, Optional, Default=None) : 37 | level of logging; whichever level is chosen all higher levels 38 | will be logged. 39 | See: https://docs.python.org/2/library/logging.html#levels 40 | """ 41 | 42 | if status: 43 | if level is not None: 44 | LOGGER.setLevel(level) 45 | 46 | console_handler = logging.StreamHandler() 47 | # create formatter 48 | formatter = logging.Formatter('%(levelname)s-%(name)s: %(message)s') 49 | # add formatter to handler 50 | console_handler.setFormatter(formatter) 51 | LOGGER.addHandler(console_handler) 52 | 53 | LOGGER.info("pangaea %s", version()) 54 | 55 | else: 56 | for handle in LOGGER.handlers: 57 | if type(handle).__name__ == 'StreamHandler': 58 | LOGGER.removeHandler(handle) 59 | 60 | 61 | def log_to_file(status=True, filename=DEFAULT_LOG_FILE, level=None): 62 | """Log events to a file. 63 | 64 | Args: 65 | status (bool, Optional, Default=True) 66 | whether logging to file should be turned on(True) or off(False) 67 | filename (string, Optional, Default=None) : 68 | path of file to log to 69 | level (string, Optional, Default=None) : 70 | level of logging; whichever level is chosen all higher levels 71 | will be logged. 72 | See: https://docs.python.org/2/library/logging.html#levels 73 | """ 74 | 75 | if status: 76 | if level is not None: 77 | LOGGER.setLevel(level) 78 | 79 | try: 80 | os.mkdir(os.path.dirname(filename)) 81 | except OSError: 82 | pass 83 | 84 | file_handler = logging.FileHandler(filename) 85 | # create formatter 86 | fomat_str = '%(levelname)s-%(name)s: %(message)s' 87 | formatter = logging.Formatter(fomat_str) 88 | # add formatter to handler 89 | file_handler.setFormatter(formatter) 90 | LOGGER.addHandler(file_handler) 91 | 92 | LOGGER.info("pangaea %s", version()) 93 | 94 | else: 95 | for handle in LOGGER.handlers: 96 | if type(handle).__name__ == 'FileHandler': 97 | LOGGER.removeHandler(handle) 98 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/meta.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # meta.py 4 | # pangaea 5 | # 6 | # Created by Alan D Snow, 2017. 7 | # Modified by Sara Lytle & Matthew Geheran for Python 3.8 functionality, 2020 8 | # BSD 3-Clause 9 | """pangaea.meta 10 | Module containing metadata for pangaea 11 | """ 12 | 13 | 14 | def version(): 15 | """ 16 | Returns 17 | ------- 18 | str: Version of pangaea 19 | """ 20 | return '0.0.4' 21 | -------------------------------------------------------------------------------- /RAPIDpy/pangaea/read.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # read.py 4 | # pangaea 5 | # 6 | # Author : Alan D Snow, 2017. 7 | # License: BSD 3-Clause 8 | """pangea.read 9 | 10 | This module provides helper functions to read in 11 | land surface model datasets. 12 | """ 13 | import numpy as np 14 | import pandas as pd 15 | import xarray as xr 16 | 17 | 18 | def open_mfdataset(path_to_lsm_files, 19 | lat_var, 20 | lon_var, 21 | time_var, 22 | lat_dim, 23 | lon_dim, 24 | time_dim, 25 | lon_to_180=False, 26 | coords_projected=False, 27 | loader=None, 28 | engine=None, 29 | autoclose=True): 30 | """ 31 | Wrapper to open land surface model netcdf files 32 | using :func:`xarray.open_mfdataset`. 33 | 34 | .. warning:: The time dimension and variable will both be 35 | renamed to 'time' to enable slicing. 36 | 37 | Parameters 38 | ---------- 39 | path_to_lsm_files: :obj:`str` 40 | Path to land surface model files with wildcard. 41 | (Ex. '/path/to/files/*.nc') 42 | lat_var: :obj:`str` 43 | Latitude variable (Ex. lat). 44 | lon_var: :obj:`str` 45 | Longitude variable (Ex. lon). 46 | time_var: :obj:`str` 47 | Time variable (Ex. time). 48 | lat_dim: :obj:`str` 49 | Latitude dimension (Ex. lat). 50 | lon_dim: :obj:`str` 51 | Longitude dimension (Ex. lon). 52 | time_dim: :obj:`str` 53 | Time dimension (ex. time). 54 | lon_to_180: bool, optional, default=False 55 | It True, will convert longitude from [0 to 360] 56 | to [-180 to 180]. 57 | coords_projected: bool, optional, default=False 58 | It True, it will assume the coordinates are already 59 | in the projected coordinate system. 60 | loader: str, optional, default=None 61 | If 'hrrr', it will load in the HRRR dataset. 62 | engine: str, optional 63 | See: :func:`xarray.open_mfdataset` documentation. 64 | autoclose: :obj:`str`, optional, default=True 65 | If True, will use autoclose option with 66 | :func:`xarray.open_mfdataset`. 67 | 68 | Returns 69 | ------- 70 | :func:`xarray.Dataset` 71 | 72 | 73 | Read with pangaea example:: 74 | 75 | import pangaea as pa 76 | 77 | with pa.open_mfdataset('/path/to/ncfiles/*.nc', 78 | lat_var='lat', 79 | lon_var='lon', 80 | time_var='time', 81 | lat_dim='lat', 82 | lon_dim='lon', 83 | time_dim='time') as xds: 84 | print(xds.lsm.projection) 85 | """ 86 | def define_coords(xds): 87 | """xarray loader to ensure coordinates are loaded correctly""" 88 | # remove time dimension from lat, lon coordinates 89 | if xds[lat_var].ndim == 3: 90 | xds[lat_var] = xds[lat_var].squeeze(time_dim) 91 | # make sure coords are defined as coords 92 | # prior version was xds.set_coords, changed with deprecation of inplace routine 93 | if lat_var not in xds.coords \ 94 | or lon_var not in xds.coords \ 95 | or time_var not in xds.coords: 96 | xds = xds.set_coords([lat_var, lon_var, time_var]) 97 | # inplace=True) 98 | return xds 99 | 100 | def extract_hrrr_date(xds): 101 | """xarray loader for HRRR""" 102 | for var in xds.variables: 103 | if 'initial_time' in xds[var].attrs.keys(): 104 | grid_time = pd.to_datetime(xds[var].attrs['initial_time'], 105 | format="%m/%d/%Y (%H:%M)") 106 | if 'forecast_time' in xds[var].attrs.keys(): 107 | time_units = 'h' 108 | if 'forecast_time_units' in xds[var].attrs.keys(): 109 | time_units = \ 110 | str(xds[var].attrs['forecast_time_units'][0]) 111 | time_dt = int(xds[var].attrs['forecast_time'][0]) 112 | grid_time += np.timedelta64(time_dt, time_units) 113 | 114 | return xds.assign(time=grid_time) 115 | return xds 116 | 117 | if loader == 'hrrr': 118 | preprocess = extract_hrrr_date 119 | engine = 'pynio' if engine is None else engine 120 | else: 121 | preprocess = define_coords 122 | 123 | try: 124 | xds = xr.open_mfdataset(path_to_lsm_files, 125 | autoclose=autoclose, 126 | preprocess=preprocess, 127 | concat_dim=time_dim, 128 | engine=engine, 129 | combine = 'nested') 130 | except: 131 | xds = xr.open_mfdataset(path_to_lsm_files, 132 | autoclose=autoclose, 133 | preprocess=preprocess, 134 | concat_dim=time_dim, 135 | engine=engine) 136 | 137 | 138 | xds.lsm.y_var = lat_var 139 | xds.lsm.x_var = lon_var 140 | xds.lsm.y_dim = lat_dim 141 | xds.lsm.x_dim = lon_dim 142 | xds.lsm.lon_to_180 = lon_to_180 143 | xds.lsm.coords_projected = coords_projected 144 | 145 | # make sure time dimensions are same for slicing 146 | # prior version only xds.rename(... 147 | xds = xds.rename( 148 | { 149 | time_dim: 'time', 150 | time_var: 'time', 151 | } 152 | # inplace=True 153 | ) 154 | 155 | xds.lsm.to_datetime() 156 | return xds 157 | -------------------------------------------------------------------------------- /RAPIDpy/postprocess/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | RAPIDpy.postprocess 4 | 5 | Created by Alan D Snow, 2016. 6 | Based on RAPID_Toolbox for ArcMap 7 | License: BSD 3-Clause 8 | """ 9 | from .goodness_of_fit import find_goodness_of_fit, find_goodness_of_fit_csv # noqa 10 | from .merge import ConvertRAPIDOutputToCF # noqa 11 | -------------------------------------------------------------------------------- /RAPIDpy/postprocess/generate_seasonal_averages.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | generate_seasonal_averages.py 4 | RAPIDpy 5 | 6 | Created by: Alan D. Snow, 2016. 7 | License: BSD 3-Clause 8 | """ 9 | from calendar import isleap 10 | import multiprocessing 11 | from time import gmtime 12 | 13 | from netCDF4 import Dataset 14 | import numpy as np 15 | 16 | from ..dataset import RAPIDDataset 17 | from ..helper_functions import add_latlon_metadata 18 | 19 | 20 | def generate_single_seasonal_average(args): 21 | """ 22 | This function calculates the seasonal average for a single day of the year 23 | for all river segments 24 | """ 25 | qout_file = args[0] 26 | seasonal_average_file = args[1] 27 | day_of_year = args[2] 28 | mp_lock = args[3] 29 | 30 | min_day = day_of_year - 3 31 | max_day = day_of_year + 3 32 | 33 | with RAPIDDataset(qout_file) as qout_nc_file: 34 | time_indices = [] 35 | for idx, t in enumerate(qout_nc_file.get_time_array()): 36 | var_time = gmtime(t) 37 | compare_yday = var_time.tm_yday 38 | # move day back one past because of leap year adds 39 | # a day after feb 29 (day 60) 40 | if isleap(var_time.tm_year) and compare_yday > 60: 41 | compare_yday -= 1 42 | # check if date within range of season 43 | if max_day > compare_yday >= min_day: 44 | time_indices.append(idx) 45 | 46 | if not time_indices: 47 | raise IndexError("No time steps found within range ...") 48 | 49 | streamflow_array = qout_nc_file.get_qout(time_index_array=time_indices) 50 | 51 | avg_streamflow_array = np.mean(streamflow_array, axis=1) 52 | std_streamflow_array = np.std(streamflow_array, axis=1) 53 | max_streamflow_array = np.amax(streamflow_array, axis=1) 54 | min_streamflow_array = np.min(streamflow_array, axis=1) 55 | 56 | mp_lock.acquire() 57 | seasonal_avg_nc = Dataset(seasonal_average_file, 'a') 58 | seasonal_avg_nc.variables['average_flow'][:, day_of_year-1] = \ 59 | avg_streamflow_array 60 | seasonal_avg_nc.variables['std_dev_flow'][:, day_of_year-1] = \ 61 | std_streamflow_array 62 | seasonal_avg_nc.variables['max_flow'][:, day_of_year-1] = \ 63 | max_streamflow_array 64 | seasonal_avg_nc.variables['min_flow'][:, day_of_year-1] = \ 65 | min_streamflow_array 66 | seasonal_avg_nc.close() 67 | mp_lock.release() 68 | 69 | 70 | def generate_seasonal_averages(qout_file, seasonal_average_file, 71 | num_cpus=multiprocessing.cpu_count()): 72 | """ 73 | This function loops through a CF compliant rapid streamflow 74 | file to produce a netCDF file with a seasonal average for 75 | 365 days a year 76 | """ 77 | with RAPIDDataset(qout_file) as qout_nc_file: 78 | print("Generating seasonal average file ...") 79 | seasonal_avg_nc = Dataset(seasonal_average_file, 'w') 80 | 81 | seasonal_avg_nc.createDimension('rivid', qout_nc_file.size_river_id) 82 | seasonal_avg_nc.createDimension('day_of_year', 365) 83 | 84 | time_series_var = seasonal_avg_nc.createVariable('rivid', 'i4', 85 | ('rivid',)) 86 | time_series_var.long_name = ( 87 | 'unique identifier for each river reach') 88 | 89 | average_flow_var = \ 90 | seasonal_avg_nc.createVariable('average_flow', 'f8', 91 | ('rivid', 'day_of_year')) 92 | average_flow_var.long_name = 'seasonal average streamflow' 93 | average_flow_var.units = 'm3/s' 94 | 95 | std_dev_flow_var = \ 96 | seasonal_avg_nc.createVariable('std_dev_flow', 'f8', 97 | ('rivid', 'day_of_year')) 98 | std_dev_flow_var.long_name = 'seasonal std. dev. streamflow' 99 | std_dev_flow_var.units = 'm3/s' 100 | 101 | std_dev_flow_var = \ 102 | seasonal_avg_nc.createVariable('max_flow', 'f8', 103 | ('rivid', 'day_of_year')) 104 | std_dev_flow_var.long_name = 'seasonal max streamflow' 105 | std_dev_flow_var.units = 'm3/s' 106 | 107 | std_dev_flow_var = \ 108 | seasonal_avg_nc.createVariable('min_flow', 'f8', 109 | ('rivid', 'day_of_year')) 110 | std_dev_flow_var.long_name = 'seasonal min streamflow' 111 | std_dev_flow_var.units = 'm3/s' 112 | 113 | lat_var = seasonal_avg_nc.createVariable('lat', 'f8', ('rivid',), 114 | fill_value=-9999.0) 115 | 116 | lon_var = seasonal_avg_nc.createVariable('lon', 'f8', ('rivid',), 117 | fill_value=-9999.0) 118 | add_latlon_metadata(lat_var, lon_var) 119 | 120 | seasonal_avg_nc.variables['lat'][:] = \ 121 | qout_nc_file.qout_nc.variables['lat'][:] 122 | seasonal_avg_nc.variables['lon'][:] = \ 123 | qout_nc_file.qout_nc.variables['lon'][:] 124 | 125 | river_id_list = qout_nc_file.get_river_id_array() 126 | seasonal_avg_nc.variables['rivid'][:] = river_id_list 127 | seasonal_avg_nc.close() 128 | 129 | # generate multiprocessing jobs 130 | mp_lock = multiprocessing.Manager().Lock() # pylint: disable=no-member 131 | job_combinations = [] 132 | for day_of_year in range(1, 366): 133 | job_combinations.append((qout_file, 134 | seasonal_average_file, 135 | day_of_year, 136 | mp_lock 137 | )) 138 | 139 | pool = multiprocessing.Pool(num_cpus) 140 | pool.map(generate_single_seasonal_average, 141 | job_combinations) 142 | pool.close() 143 | pool.join() 144 | -------------------------------------------------------------------------------- /RAPIDpy/utilities.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | utilities.py 4 | RAPIDpy 5 | 6 | Created by Alan D. Snow, 2016. 7 | License BSD-3-Clause 8 | """ 9 | import os 10 | import re 11 | 12 | from past.builtins import xrange # pylint: disable=redefined-builtin 13 | 14 | 15 | # ----------------------------------------------------------------------------- 16 | # HELPER FUNCTIONS 17 | # ----------------------------------------------------------------------------- 18 | def case_insensitive_file_search(directory, pattern): 19 | """ 20 | Looks for file with pattern with case insensitive search 21 | """ 22 | try: 23 | return os.path.join( 24 | directory, 25 | [filename for filename in os.listdir(directory) 26 | if re.search(pattern, filename, re.IGNORECASE)][0]) 27 | except IndexError: 28 | print("{0} not found".format(pattern)) 29 | raise 30 | 31 | 32 | def partition(lst, n): 33 | """ 34 | Divide list into n equal parts 35 | """ 36 | q, r = divmod(len(lst), n) 37 | indices = [q*i + min(i, r) for i in xrange(n+1)] 38 | return [lst[indices[i]:indices[i+1]] for i in xrange(n)], \ 39 | [list(xrange(indices[i], indices[i+1])) for i in xrange(n)] 40 | 41 | 42 | def get_valid_directory_list(input_directory): 43 | """ 44 | Get a list of folders 45 | """ 46 | valid_input_directories = [] 47 | for directory in os.listdir(input_directory): 48 | if os.path.isdir(os.path.join(input_directory, directory)): 49 | valid_input_directories.append(directory) 50 | else: 51 | print("{0} not a directory. Skipping ...".format(directory)) 52 | return valid_input_directories 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RAPIDpy 2 | 3 | Documentation: http://rapidpy.readthedocs.io/en/latest 4 | 5 | RAPIDpy is a python interface for RAPID that assists to prepare inputs, runs the RAPID program, and provides post-processing utilities. 6 | More information about installation and the input parameters for RAPID can be found at http://rapid-hub.org. 7 | 8 | The source code for RAPID is located at https://github.com/c-h-david/rapid/. 9 | 10 | [![DOI](https://zenodo.org/badge/19918/erdc/RAPIDpy.svg)](https://zenodo.org/badge/latestdoi/19918/erdc/RAPIDpy) 11 | 12 | [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-yellow.svg)](https://github.com/erdc/RAPIDpy/blob/master/LICENSE) 13 | 14 | [![PyPI version](https://badge.fury.io/py/RAPIDpy.svg)](https://badge.fury.io/py/RAPIDpy) 15 | 16 | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/rapidpy/badges/version.svg)](https://anaconda.org/conda-forge/rapidpy) 17 | 18 | [![Build Status](https://travis-ci.org/erdc/RAPIDpy.svg?branch=master)](https://travis-ci.org/erdc/RAPIDpy) 19 | 20 | [![Build status](https://ci.appveyor.com/api/projects/status/04cg763i8w077lr9/branch/master?svg=true)](https://ci.appveyor.com/project/snowman2/rapidpy/branch/master) 21 | 22 | [![Docs](https://readthedocs.org/projects/rapidpy/badge/?version=latest)](http://rapidpy.readthedocs.io/en/latest) 23 | 24 | 25 | ## Credit 26 | 27 | - The development of RAPIDpy was funded by ERDC. 28 | - The pre-processing GIS tools and the inflow tools in RAPIDpy are based on the ESRI RAPID Toolbox (https://github.com/Esri/python-toolbox-for-rapid). 29 | 30 | 31 | ## How the Inflow and GIS tools work: 32 | 33 | Snow, Alan D., Scott D. Christensen, Nathan R. Swain, E. James Nelson, 34 | Daniel P. Ames, Norman L. Jones, Deng Ding, Nawajish S. Noman, Cedric H. 35 | David, Florian Pappenberger, and Ervin Zsoter, 2016. A High-Resolution 36 | National-Scale Hydrologic Forecast System from a Global Ensemble Land 37 | Surface Model. *Journal of the American Water Resources Association 38 | (JAWRA)* 1-15, DOI: 10.1111/1752-1688.12434 39 | https://onlinelibrary.wiley.com/doi/full/10.1111/1752-1688.12434 40 | 41 | Snow, Alan Dee, "A New Global Forecasting Model to Produce 42 | High-Resolution Stream Forecasts" (2015). All Theses and Dissertations. 43 | Paper 5272. 44 | http://scholarsarchive.byu.edu/etd/5272 45 | 46 | 47 | ## Publications using RAPID and RAPIDpy: 48 | 49 | Tavakoly, A. A., A. D. Snow, C. H. David, M. L. Follum, D. R. Maidment, and Z.-L. Yang, (2016) "Continental-Scale River Flow Modeling of the Mississippi River Basin Using High-Resolution NHDPlus Dataset", Journal of the American Water Resources Association (JAWRA) 1-22. DOI: 10.1111/1752-1688.12456 50 | 51 | 52 | ## Datasets produced using RAPID and RAPIDpy: 53 | 54 | Ahmad A Tavakoly. (2017). RAPID input files corresponding to the Mississippi River Basin using the NHDPlus v2 Dataset [Data set]. Zenodo. http://doi.org/10.5281/zenodo.322886 |Mississippi Dataset DOI| 55 | 56 | .. |Mississippi Dataset DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.322886.svg 57 | :target: https://doi.org/10.5281/zenodo.322886 58 | 59 | 60 | ## Other tools to prepare input for RAPID 61 | 62 | - For ESRI users: https://github.com/Esri/python-toolbox-for-rapid 63 | - Modified version of the ESRI RAPID Toolbox: https://github.com/erdc/python-toolbox-for-rapid 64 | - For the NHDPlus dataset: https://github.com/c-h-david/RRR 65 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | #FROM: http://tjelvarolsson.com/blog/how-to-continuously-test-your-python-code-on-windows-using-appveyor/ 2 | # and on: https://github.com/DynamicDevices/mono/blob/master/appveyor.yml 3 | environment: 4 | global: 5 | CYG_ROOT: "C:/cygwin64" 6 | CYG_MIRROR: "http://cygwin.mirror.constant.com" 7 | CYG_CACHE: "C:/cygwin/var/cache/setup" 8 | 9 | matrix: 10 | - PYTHON_VERSION: "2.7" 11 | MINICONDA: "C:\\Miniconda-x64" 12 | - PYTHON_VERSION: "3.5" 13 | MINICONDA: "C:\\Miniconda3-x64" 14 | - PYTHON_VERSION: "3.6" 15 | MINICONDA: "C:\\Miniconda3-x64" 16 | 17 | install: 18 | - 'SET PATH=%MINICONDA%;%MINICONDA%\\Scripts;%PATH%' 19 | # create environment in conda 20 | - conda config --set always_yes yes 21 | - conda update -q conda python 22 | - "conda create --name rapid python=%PYTHON_VERSION%" 23 | - activate rapid 24 | # Install required python packages 25 | - conda config --add channels conda-forge 26 | - conda install --yes cmake gdal future netcdf4 numpy pandas pangaea pyproj pytz requests rtree scipy shapely 27 | - deactivate rapid 28 | #install cygwin 29 | - '%CYG_ROOT%\setup-x86_64.exe -qnNdO -R "%CYG_ROOT%" -s "%CYG_MIRROR%" -l "%CYG_CACHE%" -P dos2unix,gcc-core,gcc-g++,gcc-fortran,gdb,git,make,time,wget,gdal,libgdal-devel > NULL' 30 | #Creating directory for installation of libraries used by RAPID 31 | #- 'cd %APPVEYOR_BUILD_FOLDER%' 32 | #- 'SET INSTALLZ_DIR=%APPVEYOR_BUILD_FOLDER%\..\installz' 33 | #- 'mkdir %INSTALLZ_DIR%' 34 | #- 'cd %INSTALLZ_DIR%' 35 | #Installing RAPID Prereqs 36 | #- '%CYG_ROOT%/bin/bash -lc "cd $(cygpath "$APPVEYOR_BUILD_FOLDER\.."); git clone https://github.com/c-h-david/rapid.git; cd rapid; bash rapid_install_prereqs.sh -i=$(cygpath "$INSTALLZ_DIR")' 37 | #Installing RAPID 38 | #- '%CYG_ROOT%/bin/bash -lc "cd $(cygpath "$APPVEYOR_BUILD_FOLDER\..\rapid"); source ./rapid_specify_varpath.sh $(cygpath "$INSTALLZ_DIR")"; cd src; make rapid"' 39 | #Installing TauDEM 40 | #- '%CYG_ROOT%/bin/bash -lc "cd $(cygpath "$APPVEYOR_BUILD_FOLDER\..); git clone https://github.com/dtarb/TauDEM.git; cd TauDEM/src; make"' 41 | #Installing RAPIDpy 42 | - activate rapid 43 | - 'cd %APPVEYOR_BUILD_FOLDER%' 44 | - pip install -e .[tests] 45 | 46 | build: false 47 | 48 | test_script: 49 | - py.test --cov-report term-missing --cov=RAPIDpy 50 | on_success: 51 | - 'coveralls' 52 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = _build 9 | 10 | # Internal variables. 11 | PAPEROPT_a4 = -D latex_paper_size=a4 12 | PAPEROPT_letter = -D latex_paper_size=letter 13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 14 | # the i18n builder cannot share the environment and doctrees with the others 15 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 16 | 17 | .PHONY: help 18 | help: 19 | @echo "Please use \`make ' where is one of" 20 | @echo " html to make standalone HTML files" 21 | @echo " dirhtml to make HTML files named index.html in directories" 22 | @echo " singlehtml to make a single large HTML file" 23 | @echo " pickle to make pickle files" 24 | @echo " json to make JSON files" 25 | @echo " htmlhelp to make HTML files and a HTML help project" 26 | @echo " qthelp to make HTML files and a qthelp project" 27 | @echo " applehelp to make an Apple Help Book" 28 | @echo " devhelp to make HTML files and a Devhelp project" 29 | @echo " epub to make an epub" 30 | @echo " epub3 to make an epub3" 31 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 32 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 33 | @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 34 | @echo " text to make text files" 35 | @echo " man to make manual pages" 36 | @echo " texinfo to make Texinfo files" 37 | @echo " info to make Texinfo files and run them through makeinfo" 38 | @echo " gettext to make PO message catalogs" 39 | @echo " changes to make an overview of all changed/added/deprecated items" 40 | @echo " xml to make Docutils-native XML files" 41 | @echo " pseudoxml to make pseudoxml-XML files for display purposes" 42 | @echo " linkcheck to check all external links for integrity" 43 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 44 | @echo " coverage to run coverage check of the documentation (if enabled)" 45 | @echo " dummy to check syntax errors of document sources" 46 | 47 | .PHONY: clean 48 | clean: 49 | rm -rf $(BUILDDIR)/* 50 | 51 | .PHONY: html 52 | html: 53 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 54 | @echo 55 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 56 | 57 | .PHONY: dirhtml 58 | dirhtml: 59 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 60 | @echo 61 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 62 | 63 | .PHONY: singlehtml 64 | singlehtml: 65 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 66 | @echo 67 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 68 | 69 | .PHONY: pickle 70 | pickle: 71 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 72 | @echo 73 | @echo "Build finished; now you can process the pickle files." 74 | 75 | .PHONY: json 76 | json: 77 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 78 | @echo 79 | @echo "Build finished; now you can process the JSON files." 80 | 81 | .PHONY: htmlhelp 82 | htmlhelp: 83 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 84 | @echo 85 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 86 | ".hhp project file in $(BUILDDIR)/htmlhelp." 87 | 88 | .PHONY: qthelp 89 | qthelp: 90 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 91 | @echo 92 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 93 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 94 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/RAPIDpy.qhcp" 95 | @echo "To view the help file:" 96 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/RAPIDpy.qhc" 97 | 98 | .PHONY: applehelp 99 | applehelp: 100 | $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp 101 | @echo 102 | @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." 103 | @echo "N.B. You won't be able to view it unless you put it in" \ 104 | "~/Library/Documentation/Help or install it in your application" \ 105 | "bundle." 106 | 107 | .PHONY: devhelp 108 | devhelp: 109 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 110 | @echo 111 | @echo "Build finished." 112 | @echo "To view the help file:" 113 | @echo "# mkdir -p $$HOME/.local/share/devhelp/RAPIDpy" 114 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/RAPIDpy" 115 | @echo "# devhelp" 116 | 117 | .PHONY: epub 118 | epub: 119 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 120 | @echo 121 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 122 | 123 | .PHONY: epub3 124 | epub3: 125 | $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 126 | @echo 127 | @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." 128 | 129 | .PHONY: latex 130 | latex: 131 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 132 | @echo 133 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 134 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 135 | "(use \`make latexpdf' here to do that automatically)." 136 | 137 | .PHONY: latexpdf 138 | latexpdf: 139 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 140 | @echo "Running LaTeX files through pdflatex..." 141 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 142 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 143 | 144 | .PHONY: latexpdfja 145 | latexpdfja: 146 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 147 | @echo "Running LaTeX files through platex and dvipdfmx..." 148 | $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 149 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 150 | 151 | .PHONY: text 152 | text: 153 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 154 | @echo 155 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 156 | 157 | .PHONY: man 158 | man: 159 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 160 | @echo 161 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 162 | 163 | .PHONY: texinfo 164 | texinfo: 165 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 166 | @echo 167 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 168 | @echo "Run \`make' in that directory to run these through makeinfo" \ 169 | "(use \`make info' here to do that automatically)." 170 | 171 | .PHONY: info 172 | info: 173 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 174 | @echo "Running Texinfo files through makeinfo..." 175 | make -C $(BUILDDIR)/texinfo info 176 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 177 | 178 | .PHONY: gettext 179 | gettext: 180 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 181 | @echo 182 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 183 | 184 | .PHONY: changes 185 | changes: 186 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 187 | @echo 188 | @echo "The overview file is in $(BUILDDIR)/changes." 189 | 190 | .PHONY: linkcheck 191 | linkcheck: 192 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 193 | @echo 194 | @echo "Link check complete; look for any errors in the above output " \ 195 | "or in $(BUILDDIR)/linkcheck/output.txt." 196 | 197 | .PHONY: doctest 198 | doctest: 199 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 200 | @echo "Testing of doctests in the sources finished, look at the " \ 201 | "results in $(BUILDDIR)/doctest/output.txt." 202 | 203 | .PHONY: coverage 204 | coverage: 205 | $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage 206 | @echo "Testing of coverage in the sources finished, look at the " \ 207 | "results in $(BUILDDIR)/coverage/python.txt." 208 | 209 | .PHONY: xml 210 | xml: 211 | $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 212 | @echo 213 | @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 214 | 215 | .PHONY: pseudoxml 216 | pseudoxml: 217 | $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 218 | @echo 219 | @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 220 | 221 | .PHONY: dummy 222 | dummy: 223 | $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy 224 | @echo 225 | @echo "Build finished. Dummy builder generates no files." 226 | -------------------------------------------------------------------------------- /docs/gis_stream_network.rst: -------------------------------------------------------------------------------- 1 | Generating Stream Network 2 | ========================= 3 | 4 | Using ArcHydro to Generate Stream Network 5 | ----------------------------------------- 6 | 7 | See: 8 | 9 | - https://github.com/Esri/python-toolbox-for-rapid 10 | - https://github.com/erdc/python-toolbox-for-rapid 11 | 12 | Using TauDEM to Generate Stream Network 13 | --------------------------------------- 14 | 15 | For more information about taudem, see: 16 | http://hydrology.usu.edu/taudem/taudem5/index.html 17 | 18 | Installation 19 | ------------ 20 | 21 | Step 1: Install TauDEM 22 | ~~~~~~~~~~~~~~~~~~~~~~ 23 | 24 | :: 25 | 26 | $ cd /path/to/scripts 27 | $ git clone https://github.com/dtarb/TauDEM.git 28 | $ cd TauDEM/src 29 | $ make 30 | 31 | Step 2: Install RAPIDpy with GIS Dependencies 32 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | 34 | See: :doc:`installation` 35 | 36 | How To Use 37 | ---------- 38 | 39 | Initialize TauDEM Manager 40 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 41 | .. autoclass:: RAPIDpy.gis.taudem.TauDEM 42 | 43 | Generate network from DEM 44 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 45 | 46 | .. automethod:: RAPIDpy.gis.taudem.TauDEM.demToStreamNetwork(output_directory,raw_elevation_dem="",pit_filled_elevation_grid="",flow_dir_grid_d8="",contributing_area_grid_d8="",flow_dir_grid_dinf="",contributing_area_grid_dinf="",use_dinf=False,threshold=1000,delineate=False) 47 | 48 | Add Length in meters attribute 49 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50 | 51 | .. automethod:: RAPIDpy.gis.taudem.TauDEM.addLengthMeters(stream_network) 52 | 53 | Extract Sub Network 54 | ~~~~~~~~~~~~~~~~~~~ 55 | 56 | STEP 1: Extract sub network from stream network 57 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 58 | There are two options to do this. 59 | 60 | 1. Choose your own outlet point: :func:`~RAPIDpy.gis.taudem.TauDEM.extractSubNetwork()` 61 | 2. Or let the code find the larges network: :func:`~RAPIDpy.gis.taudem.TauDEM.extractLargestSubNetwork()`. 62 | 63 | .. automethod:: RAPIDpy.gis.taudem.TauDEM.extractSubNetwork(network_file,out_subset_network_file,outlet_ids,river_id_field,next_down_id_field,river_magnitude_field,safe_mode=True) 64 | 65 | .. automethod:: RAPIDpy.gis.taudem.TauDEM.extractLargestSubNetwork(network_file,out_subset_network_file,river_id_field,next_down_id_field,river_magnitude_field,safe_mode=True) 66 | 67 | STEP 2: Extract sub network from catchments 68 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 69 | 70 | .. automethod:: RAPIDpy.gis.taudem.TauDEM.extractSubsetFromWatershed(subset_network_file,subset_network_river_id_field,watershed_file,watershed_network_river_id_field,out_watershed_subset_file) 71 | -------------------------------------------------------------------------------- /docs/gis_tools.rst: -------------------------------------------------------------------------------- 1 | RAPID GIS Tools 2 | =============== 3 | 4 | These tools generate the RAPID input files and weight table files from the GIS stream networks. 5 | 6 | 7 | .. note:: To generate your own network from a DEM see :doc:`gis_stream_network` 8 | 9 | .. note:: For these tools to work, you need GIS dependencies installed (See :doc:`installation`). 10 | 11 | 12 | Workflows 13 | --------- 14 | 15 | Static RAPID Files 16 | ~~~~~~~~~~~~~~~~~~ 17 | 18 | .. autofunction:: RAPIDpy.gis.workflow.CreateAllStaticRAPIDFiles 19 | 20 | 21 | Weight Table Files 22 | ~~~~~~~~~~~~~~~~~~ 23 | 24 | .. autofunction:: RAPIDpy.gis.workflow.CreateAllStaticECMWFFiles 25 | 26 | Static RAPID Files and Weight Table Files 27 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28 | 29 | .. autofunction:: RAPIDpy.gis.workflow.CreateAllStaticECMWFRAPIDFiles 30 | 31 | 32 | Individual Tools 33 | ---------------- 34 | 35 | Static RAPID Files 36 | ~~~~~~~~~~~~~~~~~~ 37 | .. autofunction:: RAPIDpy.gis.network.CreateNetworkConnectivity 38 | 39 | .. autofunction:: RAPIDpy.gis.network.CreateNetworkConnectivityNHDPlus 40 | 41 | .. autofunction:: RAPIDpy.gis.network.CreateSubsetFile 42 | 43 | .. autofunction:: RAPIDpy.gis.muskingum.CreateMuskingumKfacFile 44 | 45 | .. autofunction:: RAPIDpy.gis.muskingum.CreateMuskingumKFile 46 | 47 | .. autofunction:: RAPIDpy.gis.muskingum.CreateMuskingumXFileFromDranageLine 48 | 49 | .. autofunction:: RAPIDpy.gis.muskingum.CreateConstMuskingumXFile 50 | 51 | Weight Tables 52 | ~~~~~~~~~~~~~ 53 | .. autofunction:: RAPIDpy.gis.weight.CreateWeightTableECMWF 54 | 55 | .. autofunction:: RAPIDpy.gis.weight.CreateWeightTableLDAS 56 | 57 | 58 | Utilities 59 | --------- 60 | 61 | .. autofunction:: RAPIDpy.gis.centroid.FlowlineToPoint 62 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | RAPIDpy 2 | ======= 3 | 4 | RAPIDpy is a python interface for RAPID that assists to prepare inputs, 5 | runs the RAPID program, and provides post-processing utilities. More 6 | information about installation and the input parameters for RAPID can be 7 | found at http://rapid-hub.org. The source code for RAPID is located at 8 | https://github.com/c-h-david/rapid. 9 | 10 | |DOI| 11 | 12 | |PyPI version| 13 | 14 | |Build Status| 15 | 16 | |Coverage Status| 17 | 18 | |License (3-Clause BSD)| 19 | 20 | .. |DOI| image:: https://zenodo.org/badge/19918/erdc/RAPIDpy.svg 21 | :target: https://zenodo.org/badge/latestdoi/19918/erdc/RAPIDpy 22 | .. |PyPI version| image:: https://badge.fury.io/py/RAPIDpy.svg 23 | :target: https://badge.fury.io/py/RAPIDpy 24 | .. |Build Status| image:: https://travis-ci.org/erdc/RAPIDpy.svg?branch=master 25 | :target: https://travis-ci.org/erdc/RAPIDpy 26 | .. |Coverage Status| image:: https://coveralls.io/repos/github/erdc/RAPIDpy/badge.svg?branch=master 27 | :target: https://coveralls.io/github/erdc/RAPIDpy 28 | .. |License (3-Clause BSD)| image:: https://img.shields.io/badge/license-BSD%203--Clause-yellow.svg 29 | :target: https://github.com/erdc/RAPIDpy/blob/master/LICENSE 30 | 31 | Contents: 32 | 33 | .. toctree:: 34 | :maxdepth: 1 35 | 36 | installation 37 | gis_stream_network 38 | gis_tools 39 | running_rapid 40 | lsm_inflow 41 | rapid_dataset 42 | postprocessing 43 | rapid_to_gssha 44 | 45 | 46 | Credit 47 | ------ 48 | 49 | - The development of RAPIDpy was funded by ERDC. 50 | - The pre-processing GIS tools and the inflow tools in RAPIDpy are based on the ESRI RAPID Toolbox (https://github.com/Esri/python-toolbox-for-rapid). 51 | 52 | 53 | How the Inflow and GIS tools work: 54 | ---------------------------------- 55 | 56 | Snow, Alan D., Scott D. Christensen, Nathan R. Swain, E. James Nelson, 57 | Daniel P. Ames, Norman L. Jones, Deng Ding, Nawajish S. Noman, Cedric H. 58 | David, Florian Pappenberger, and Ervin Zsoter, 2016. A High-Resolution 59 | National-Scale Hydrologic Forecast System from a Global Ensemble Land 60 | Surface Model. *Journal of the American Water Resources Association 61 | (JAWRA)* 1-15, DOI: 10.1111/1752-1688.12434 62 | https://onlinelibrary.wiley.com/doi/full/10.1111/1752-1688.12434 63 | 64 | Snow, Alan Dee, "A New Global Forecasting Model to Produce 65 | High-Resolution Stream Forecasts" (2015). All Theses and Dissertations. 66 | Paper 5272. 67 | http://scholarsarchive.byu.edu/etd/5272 68 | 69 | 70 | Publications using RAPIDpy and RAPID: 71 | ------------------------------------- 72 | 73 | Tavakoly, A. A., A. D. Snow, C. H. David, M. L. Follum, D. R. Maidment, and Z.-L. Yang, (2016) 74 | "Continental-Scale River Flow Modeling of the Mississippi River Basin Using High-Resolution 75 | NHDPlus Dataset", Journal of the American Water Resources Association (JAWRA) 1-22. 76 | DOI: 10.1111/1752-1688.12456 77 | 78 | 79 | Datasets produced using RAPIDpy and RAPID: 80 | ------------------------------------------ 81 | 82 | Ahmad A Tavakoly. (2017). RAPID input files corresponding to the Mississippi River Basin using 83 | the NHDPlus v2 Dataset [Data set]. Zenodo. http://doi.org/10.5281/zenodo.322886 |Mississippi Dataset DOI| 84 | 85 | .. |Mississippi Dataset DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.322886.svg 86 | :target: https://doi.org/10.5281/zenodo.322886 87 | 88 | 89 | Other tools to prepare input for RAPID 90 | --------------------------------------- 91 | 92 | - For ESRI users: https://github.com/Esri/python-toolbox-for-rapid 93 | - Modified version of the ESRI RAPID Toolbox: https://github.com/erdc/python-toolbox-for-rapid 94 | - For the NHDPlus dataset: https://github.com/c-h-david/RRR 95 | 96 | 97 | 98 | Indices and tables 99 | ================== 100 | 101 | * :ref:`genindex` 102 | * :ref:`modindex` 103 | * :ref:`search` 104 | 105 | -------------------------------------------------------------------------------- /docs/installation.rst: -------------------------------------------------------------------------------- 1 | Installation 2 | ============ 3 | 4 | Step 1: Install RAPID 5 | --------------------- 6 | 7 | Before Installation Steps: 8 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 9 | 10 | Ubuntu: 11 | ^^^^^^^ 12 | 13 | :: 14 | 15 | $ sudo apt-get install gfortran g++ 16 | 17 | RedHat/CentOS: 18 | ^^^^^^^^^^^^^^ 19 | 20 | :: 21 | 22 | $ sudo yum install gcc-c++ gcc-gfortran 23 | 24 | Windows with Cygwin: 25 | ^^^^^^^^^^^^^^^^^^^^ 26 | 27 | Downloaded Cygwin (64-bit) (https://www.cygwin.com/) with these 28 | dependencies: 29 | 30 | - gcc-core 31 | - gcc-fortran 32 | - gcc-g++ 33 | - gdb 34 | - git 35 | - make 36 | - time 37 | - wget 38 | 39 | Installation Steps: 40 | ~~~~~~~~~~~~~~~~~~~ 41 | 42 | Manual: 43 | ^^^^^^^ 44 | 45 | - See: http://rapid-hub.org 46 | 47 | Bash: 48 | ^^^^^ 49 | 50 | 1. Clone RAPID repository:: 51 | 52 | $ git clone https://github.com/c-h-david/rapid.git 53 | 54 | 2. Install Prereqs:: 55 | 56 | $ cd rapid 57 | $ chmod u+x rapid_install_prereqs.sh 58 | $ ./rapid_install_prereqs.sh 59 | 60 | 3. Append *source rapid_specify_varpath.sh* to the ~/.bashrc or ~/.bash_profile:: 61 | 62 | source /path/to/cloned/rapid/rapid_specify_varpath.sh 63 | 64 | 4. Restart Terminal 65 | 66 | 5. Build RAPID:: 67 | 68 | $ cd rapid/src 69 | $ make rapid 70 | 71 | Step 2: Install RAPIDpy 72 | ----------------------- 73 | 74 | Due to the dependencies required, we recommend using Anaconda or Miniconda. 75 | They can be downloaded from https://www.continuum.io/downloads 76 | or from https://conda.io/miniconda.html. 77 | 78 | ~~~~~~~~~~~~~~~~~~~~~~ 79 | 80 | This is how you get the most up-to-date version of the code. 81 | 82 | .. note:: If you don't have git, you can download the code from https://github.com/erdc/RAPIDpy 83 | 84 | :: 85 | 86 | $ git clone https://github.com/erdc/RAPIDpy.git 87 | $ cd RAPIDpy 88 | $ conda env create -f rapidpy_env.yml 89 | $ conda activate rapidpy_env 90 | $ python setup.py install 91 | 92 | To develop on the latest version: 93 | 94 | :: 95 | 96 | $ git clone https://github.com/erdc/RAPIDpy.git 97 | $ cd RAPIDpy 98 | $ conda env create -f rapidpy_env.yml 99 | $ conda activate rapidpy_env 100 | $ python setup.py develop 101 | -------------------------------------------------------------------------------- /docs/lsm_inflow.rst: -------------------------------------------------------------------------------- 1 | Inflow from Land Surface Models 2 | =============================== 3 | 4 | Code to use to prepare input data for RAPID from Land Surface Models 5 | (LSM) such as: 6 | 7 | - ECMWF's ERA Interim Data 8 | - NASA's GLDAS/NLDAS/LIS Data 9 | - CMIP5 Data (daily VIC data available from 1950 to 2099) 10 | - Joules 11 | - WRF 12 | - FLDAS (http://disc.sci.gsfc.nasa.gov/uui/datasets?keywords=FLDAS) 13 | - ERA 20CM 14 | 15 | Step 1: Retrieve Land Surface Model Runoff Output 16 | ------------------------------------------------- 17 | 18 | Download the data into a local directory. 19 | 20 | - http://apps.ecmwf.int/datasets 21 | - http://ldas.gsfc.nasa.gov/index.php 22 | - ftp://gdo-dcp.ucllnl.org/pub/dcp/archive/cmip5/hydro/BCSD_daily_VIC_nc/ 23 | 24 | Step 2: Create folders for RAPID input and output 25 | ------------------------------------------------- 26 | 27 | In this instance: 28 | 29 | :: 30 | 31 | $ cd $HOME 32 | $ mkdir -p rapid-io/input rapid-io/output 33 | 34 | Step 3: Create script using LSM process 35 | --------------------------------------- 36 | 37 | Here is the API for the function to use. Follow the example to create a script to use the code such as in ~/run\_lsm.py. 38 | 39 | .. autofunction:: RAPIDpy.inflow.lsm_rapid_process.run_lsm_rapid_process 40 | 41 | Step 4: Add RAPID files to the rapid-io/input directory 42 | --------------------------------------------------------- 43 | 44 | Make sure the directory is in the format [watershed name]-[subbasin 45 | name] with lowercase letters, numbers, and underscores only. No spaces! 46 | 47 | Example: 48 | 49 | :: 50 | 51 | $ ls /rapid-io/input 52 | nfie_texas_gulf_region-huc_2_12 53 | 54 | $ ls /rapid-io/input/nfie_texas_gulf_region-huc_2_12 55 | comid_lat_lon_z.csv 56 | k.csv 57 | rapid_connect.csv 58 | riv_bas_id.csv 59 | weight_era_t511.csv 60 | weight_nldas.csv 61 | weight_gldas.csv 62 | weight_lis.csv 63 | weight_wrf.csv 64 | weight_cmip5.csv 65 | x.csv 66 | 67 | If you have not generated these files yet, see :doc:`gis_tools` 68 | 69 | Step 5: Run the code 70 | -------------------- 71 | 72 | :: 73 | 74 | $ python ~/run_lsm.py 75 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Command file for Sphinx documentation 4 | 5 | if "%SPHINXBUILD%" == "" ( 6 | set SPHINXBUILD=sphinx-build 7 | ) 8 | set BUILDDIR=_build 9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . 10 | set I18NSPHINXOPTS=%SPHINXOPTS% . 11 | if NOT "%PAPER%" == "" ( 12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% 14 | ) 15 | 16 | if "%1" == "" goto help 17 | 18 | if "%1" == "help" ( 19 | :help 20 | echo.Please use `make ^` where ^ is one of 21 | echo. html to make standalone HTML files 22 | echo. dirhtml to make HTML files named index.html in directories 23 | echo. singlehtml to make a single large HTML file 24 | echo. pickle to make pickle files 25 | echo. json to make JSON files 26 | echo. htmlhelp to make HTML files and a HTML help project 27 | echo. qthelp to make HTML files and a qthelp project 28 | echo. devhelp to make HTML files and a Devhelp project 29 | echo. epub to make an epub 30 | echo. epub3 to make an epub3 31 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 32 | echo. text to make text files 33 | echo. man to make manual pages 34 | echo. texinfo to make Texinfo files 35 | echo. gettext to make PO message catalogs 36 | echo. changes to make an overview over all changed/added/deprecated items 37 | echo. xml to make Docutils-native XML files 38 | echo. pseudoxml to make pseudoxml-XML files for display purposes 39 | echo. linkcheck to check all external links for integrity 40 | echo. doctest to run all doctests embedded in the documentation if enabled 41 | echo. coverage to run coverage check of the documentation if enabled 42 | echo. dummy to check syntax errors of document sources 43 | goto end 44 | ) 45 | 46 | if "%1" == "clean" ( 47 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 48 | del /q /s %BUILDDIR%\* 49 | goto end 50 | ) 51 | 52 | 53 | REM Check if sphinx-build is available and fallback to Python version if any 54 | %SPHINXBUILD% 1>NUL 2>NUL 55 | if errorlevel 9009 goto sphinx_python 56 | goto sphinx_ok 57 | 58 | :sphinx_python 59 | 60 | set SPHINXBUILD=python -m sphinx.__init__ 61 | %SPHINXBUILD% 2> nul 62 | if errorlevel 9009 ( 63 | echo. 64 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 65 | echo.installed, then set the SPHINXBUILD environment variable to point 66 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 67 | echo.may add the Sphinx directory to PATH. 68 | echo. 69 | echo.If you don't have Sphinx installed, grab it from 70 | echo.http://sphinx-doc.org/ 71 | exit /b 1 72 | ) 73 | 74 | :sphinx_ok 75 | 76 | 77 | if "%1" == "html" ( 78 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 79 | if errorlevel 1 exit /b 1 80 | echo. 81 | echo.Build finished. The HTML pages are in %BUILDDIR%/html. 82 | goto end 83 | ) 84 | 85 | if "%1" == "dirhtml" ( 86 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 87 | if errorlevel 1 exit /b 1 88 | echo. 89 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 90 | goto end 91 | ) 92 | 93 | if "%1" == "singlehtml" ( 94 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 95 | if errorlevel 1 exit /b 1 96 | echo. 97 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 98 | goto end 99 | ) 100 | 101 | if "%1" == "pickle" ( 102 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 103 | if errorlevel 1 exit /b 1 104 | echo. 105 | echo.Build finished; now you can process the pickle files. 106 | goto end 107 | ) 108 | 109 | if "%1" == "json" ( 110 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 111 | if errorlevel 1 exit /b 1 112 | echo. 113 | echo.Build finished; now you can process the JSON files. 114 | goto end 115 | ) 116 | 117 | if "%1" == "htmlhelp" ( 118 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 119 | if errorlevel 1 exit /b 1 120 | echo. 121 | echo.Build finished; now you can run HTML Help Workshop with the ^ 122 | .hhp project file in %BUILDDIR%/htmlhelp. 123 | goto end 124 | ) 125 | 126 | if "%1" == "qthelp" ( 127 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 128 | if errorlevel 1 exit /b 1 129 | echo. 130 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ 131 | .qhcp project file in %BUILDDIR%/qthelp, like this: 132 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\RAPIDpy.qhcp 133 | echo.To view the help file: 134 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\RAPIDpy.ghc 135 | goto end 136 | ) 137 | 138 | if "%1" == "devhelp" ( 139 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 140 | if errorlevel 1 exit /b 1 141 | echo. 142 | echo.Build finished. 143 | goto end 144 | ) 145 | 146 | if "%1" == "epub" ( 147 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 148 | if errorlevel 1 exit /b 1 149 | echo. 150 | echo.Build finished. The epub file is in %BUILDDIR%/epub. 151 | goto end 152 | ) 153 | 154 | if "%1" == "epub3" ( 155 | %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 156 | if errorlevel 1 exit /b 1 157 | echo. 158 | echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. 159 | goto end 160 | ) 161 | 162 | if "%1" == "latex" ( 163 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 164 | if errorlevel 1 exit /b 1 165 | echo. 166 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 167 | goto end 168 | ) 169 | 170 | if "%1" == "latexpdf" ( 171 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 172 | cd %BUILDDIR%/latex 173 | make all-pdf 174 | cd %~dp0 175 | echo. 176 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 177 | goto end 178 | ) 179 | 180 | if "%1" == "latexpdfja" ( 181 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 182 | cd %BUILDDIR%/latex 183 | make all-pdf-ja 184 | cd %~dp0 185 | echo. 186 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 187 | goto end 188 | ) 189 | 190 | if "%1" == "text" ( 191 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 192 | if errorlevel 1 exit /b 1 193 | echo. 194 | echo.Build finished. The text files are in %BUILDDIR%/text. 195 | goto end 196 | ) 197 | 198 | if "%1" == "man" ( 199 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 200 | if errorlevel 1 exit /b 1 201 | echo. 202 | echo.Build finished. The manual pages are in %BUILDDIR%/man. 203 | goto end 204 | ) 205 | 206 | if "%1" == "texinfo" ( 207 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo 208 | if errorlevel 1 exit /b 1 209 | echo. 210 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. 211 | goto end 212 | ) 213 | 214 | if "%1" == "gettext" ( 215 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale 216 | if errorlevel 1 exit /b 1 217 | echo. 218 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale. 219 | goto end 220 | ) 221 | 222 | if "%1" == "changes" ( 223 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 224 | if errorlevel 1 exit /b 1 225 | echo. 226 | echo.The overview file is in %BUILDDIR%/changes. 227 | goto end 228 | ) 229 | 230 | if "%1" == "linkcheck" ( 231 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 232 | if errorlevel 1 exit /b 1 233 | echo. 234 | echo.Link check complete; look for any errors in the above output ^ 235 | or in %BUILDDIR%/linkcheck/output.txt. 236 | goto end 237 | ) 238 | 239 | if "%1" == "doctest" ( 240 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 241 | if errorlevel 1 exit /b 1 242 | echo. 243 | echo.Testing of doctests in the sources finished, look at the ^ 244 | results in %BUILDDIR%/doctest/output.txt. 245 | goto end 246 | ) 247 | 248 | if "%1" == "coverage" ( 249 | %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage 250 | if errorlevel 1 exit /b 1 251 | echo. 252 | echo.Testing of coverage in the sources finished, look at the ^ 253 | results in %BUILDDIR%/coverage/python.txt. 254 | goto end 255 | ) 256 | 257 | if "%1" == "xml" ( 258 | %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml 259 | if errorlevel 1 exit /b 1 260 | echo. 261 | echo.Build finished. The XML files are in %BUILDDIR%/xml. 262 | goto end 263 | ) 264 | 265 | if "%1" == "pseudoxml" ( 266 | %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml 267 | if errorlevel 1 exit /b 1 268 | echo. 269 | echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. 270 | goto end 271 | ) 272 | 273 | if "%1" == "dummy" ( 274 | %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy 275 | if errorlevel 1 exit /b 1 276 | echo. 277 | echo.Build finished. Dummy builder generates no files. 278 | goto end 279 | ) 280 | 281 | :end 282 | -------------------------------------------------------------------------------- /docs/postprocessing.rst: -------------------------------------------------------------------------------- 1 | Postprocessing 2 | ============== 3 | 4 | Merge RAPID Output 5 | ------------------ 6 | 7 | .. autoclass:: RAPIDpy.postprocess.ConvertRAPIDOutputToCF 8 | 9 | Generate qinit from past qout 10 | ----------------------------- 11 | 12 | RAPIDpy also creates a qinit file from a RAPID qout file. This example 13 | shows how. 14 | 15 | .. automethod:: RAPIDpy.rapid.RAPID.generate_qinit_from_past_qout 16 | :noindex: 17 | 18 | Generate seasonal qinit from past qout 19 | -------------------------------------- 20 | 21 | .. automethod:: RAPIDpy.rapid.RAPID.generate_seasonal_intitialization 22 | :noindex: 23 | 24 | Goodness of Fit 25 | --------------- 26 | 27 | To check how well your simulation performed versus observations, these 28 | functions can help you. 29 | 30 | .. autofunction:: RAPIDpy.postprocess.find_goodness_of_fit_csv 31 | 32 | .. autofunction:: RAPIDpy.postprocess.find_goodness_of_fit 33 | 34 | -------------------------------------------------------------------------------- /docs/rapid_dataset.rst: -------------------------------------------------------------------------------- 1 | RAPIDDataset 2 | ============ 3 | 4 | This is a wrapper for the RAPID Qout netCDF file. Here are some basic 5 | examples for useage. 6 | 7 | .. autoclass:: RAPIDpy.dataset.RAPIDDataset 8 | :members: write_flows_to_csv, get_qout, get_river_index, 9 | get_time_array, is_time_variable_valid, get_time_index_range, 10 | get_river_id_array, write_flows_to_gssha_time_series_xys, 11 | write_flows_to_gssha_time_series_ihg -------------------------------------------------------------------------------- /docs/rapid_to_gssha.rst: -------------------------------------------------------------------------------- 1 | RAPID to GSSHA 2 | ============== 3 | 4 | It is possible to use RAPID streamflow as an overland flow boundary condition 5 | to the Gridded Surface Subsurface Hydrologic Analysis (GSSHA) model. 6 | 7 | What is GSSHA? 8 | -------------- 9 | 10 | GSSHA is a physically-based, distributed hydrologic model. GSSHA is developed 11 | and maintained by Coastal and Hydraulics Laboratory (CHL) which is 12 | a member of the Engineer Research & Development Center of the United 13 | States Army Corps of Engineers (USACE). 14 | 15 | .. note:: 16 | 17 | For more information about GSSHA please visit the the gsshawiki_ . 18 | 19 | .. _gsshawiki: http://www.gsshawiki.com/Main_Page 20 | 21 | Tutorial 22 | -------- 23 | There are two ways to input RAPID as a boundary condition for GSSHA. 24 | One is to connect the GSSHA stream network link and node to the RAPID 25 | river ID and generate the IHG file. The other is to generate an XYS 26 | timeseries file and add it to the netork using WMS. 27 | 28 | 29 | Method 1: Generate IHG File 30 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 | 32 | Step 1.1: Look at Stream Network in WMS to find Link & Node 33 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 34 | 1. Open GSSHA project in WMS 35 | 36 | - Switch to 2-D Grid Module 37 | - In the top menu: *GSSHA -> Open Project File* 38 | 39 | 2. Turn on *Stream Link Numbers* Display 40 | 41 | - In the top menu: *Display -> Display Options* 42 | - Select *Map Data* in top left box 43 | - In the center box, make sure *Stream Link Numbers* is checked under the Arcs subsection. 44 | 45 | 3. Determine the Link ID by looking on model. 46 | 47 | Step 1.2: Connect RAPID river ID to GSSHA Link & Node and Generate IHG 48 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 49 | 50 | .. automethod:: RAPIDpy.dataset.RAPIDDataset.write_flows_to_gssha_time_series_ihg 51 | :noindex: 52 | 53 | 54 | Method 2: Generate XYS File 55 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | 57 | Step 2.1: Generate XYS File 58 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 59 | .. automethod:: RAPIDpy.dataset.RAPIDDataset.write_flows_to_gssha_time_series_xys 60 | :noindex: 61 | 62 | Step 2.2: Add XYS File in WMS 63 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 64 | 65 | In the Distributed Hydrology section, go to *Overland Flow Boundary Conditions in GSSHA (Tutorial 55)* at http://www.aquaveo.com/software/wms-learning-tutorials 66 | 67 | Here is a direct link to the document: http://wmstutorials-10.1.aquaveo.com/55%20Gssha-Applications-OverlandBoundaryConditions.pdf 68 | -------------------------------------------------------------------------------- /docs/running_rapid.rst: -------------------------------------------------------------------------------- 1 | Running RAPID 2 | ============= 3 | 4 | Tutorial 5 | -------- 6 | 7 | Step 1: Initialize the RAPID manager class. 8 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9 | - First, add the path to you rapid executable location. 10 | - Next, you need to either tell it how many processors to use using the 11 | *num\_processors* input variable or to use all available processors 12 | set *use\_all\_processors* to true. 13 | - After that, add any other parameters you would like to use that would 14 | normally be in the rapid namelist file (this is case sensitive). 15 | 16 | .. autoclass:: RAPIDpy.rapid.RAPID 17 | 18 | 19 | Step 2 (optional): Add/update additional namelist parameters later 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 | 22 | .. automethod:: RAPIDpy.rapid.RAPID.update_parameters 23 | 24 | Step 3 (optional): Update reach number data 25 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26 | 27 | .. automethod:: RAPIDpy.rapid.RAPID.update_reach_number_data 28 | 29 | Step 4 (optional): Update simulation runtime data 30 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 | 32 | .. automethod:: RAPIDpy.rapid.RAPID.update_simulation_runtime 33 | 34 | Step 5: Run RAPID 35 | ~~~~~~~~~~~~~~~~~ 36 | 37 | .. automethod:: RAPIDpy.rapid.RAPID.run 38 | 39 | Step 6 (optional): Convert RAPID output to be CF Compliant 40 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41 | 42 | .. automethod:: RAPIDpy.rapid.RAPID.make_output_cf_compliant 43 | 44 | 45 | Full API Description 46 | -------------------- 47 | 48 | .. autoclass:: RAPIDpy.rapid.RAPID 49 | :members: -------------------------------------------------------------------------------- /rapidpy_env.yml: -------------------------------------------------------------------------------- 1 | # rapidpy_env.yml 2 | # 3 | # Configuration file for creating a conda environment with dependencies needed for RAPIDpy, updated 4 | # July 02, 2020 5 | # Sara Lytle 6 | # 7 | # os: linux 8 | # 9 | # Create the environment by running the following command (after installing Miniconda): 10 | # $ conda env create -f rapidpy_env.yml 11 | # 12 | # Run command: 13 | # $ python setup.py develop 14 | 15 | name: rapidpy_env 16 | channels: 17 | - conda-forge 18 | - defaults 19 | dependencies: 20 | - python=3.8 21 | - pytest 22 | - netcdf4 23 | - future 24 | - python-dateutil 25 | - requests 26 | - xarray 27 | - shapely 28 | - rtree 29 | - scipy 30 | - dask 31 | - gdal 32 | - affine 33 | - pyproj 34 | - gazar 35 | - wrf-python 36 | 37 | -------------------------------------------------------------------------------- /readthedocs.yml: -------------------------------------------------------------------------------- 1 | python: 2 | version: 2 3 | pip_install: false 4 | requirements_file: requirements.readthedocs.txt -------------------------------------------------------------------------------- /requirements.readthedocs.txt: -------------------------------------------------------------------------------- 1 | sphinxcontrib-napoleon -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | setup( 4 | name='RAPIDpy', 5 | version='2.6.0', 6 | description='Python interface for RAPID (rapid-hub.org)', 7 | long_description='RAPIDpy is a python interface for RAPID that assists ' 8 | 'to prepare inputs, runs the RAPID program, and provides ' 9 | 'post-processing utilities (http://rapidpy.readthedocs.io). ' 10 | 'More information about installation and the input ' 11 | 'parameters for RAPID can be found at http://rapid-hub.org.' 12 | ' The source code for RAPID is located at ' 13 | 'https://github.com/c-h-david/rapid/. \n\n' 14 | '.. image:: https://zenodo.org/badge/19918/erdc/RAPIDpy.svg \n' 15 | ' :target: https://zenodo.org/badge/latestdoi/19918/erdc/RAPIDpy', 16 | keywords='RAPID', 17 | author='Alan Dee Snow', 18 | author_email='alan.d.snow@usace.army.mil', 19 | url='https://github.com/erdc/RAPIDpy', 20 | license='BSD 3-Clause', 21 | packages=find_packages(), 22 | package_data={'': ['gis/lsm_grids/*.nc']}, 23 | classifiers=[ 24 | 'Intended Audience :: Developers', 25 | 'Intended Audience :: Science/Research', 26 | 'Operating System :: OS Independent', 27 | 'Programming Language :: Python', 28 | 'Programming Language :: Python :: 2', 29 | 'Programming Language :: Python :: 2.7', 30 | 'Programming Language :: Python :: 3', 31 | 'Programming Language :: Python :: 3.5', 32 | 'Programming Language :: Python :: 3.6', 33 | ], 34 | extras_require={ 35 | 'tests': [ 36 | 'pytest', 37 | 'pytest-cov', 38 | 'coveralls', 39 | 'pylint', 40 | 'flake8', 41 | ], 42 | 'docs': [ 43 | 'mock', 44 | 'sphinx', 45 | 'sphinx_rtd_theme', 46 | 'sphinxcontrib-napoleon', 47 | ] 48 | }, 49 | ) 50 | -------------------------------------------------------------------------------- /tests/compare/Qinit_seasonal_avg_jan_1.csv: -------------------------------------------------------------------------------- 1 | 0.0 2 | 8.836997585603967e-05 3 | 0.00051118218107149 4 | 0.0021298041101545095 5 | 0.0026858358178287745 6 | 0.0015686650294810534 7 | 0.0004693640221375972 8 | 0.00012480310397222638 9 | 0.0002827169082593173 10 | -------------------------------------------------------------------------------- /tests/compare/Qout_merge.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/Qout_merge.nc -------------------------------------------------------------------------------- /tests/compare/Qout_nasa_lis_3hr_20020830.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/Qout_nasa_lis_3hr_20020830.nc -------------------------------------------------------------------------------- /tests/compare/Qout_nasa_lis_3hr_20020830_CF.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/Qout_nasa_lis_3hr_20020830_CF.nc -------------------------------------------------------------------------------- /tests/compare/Qout_nasa_lis_3hr_20020830_CF_no_lat_lon_z.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/Qout_nasa_lis_3hr_20020830_CF_no_lat_lon_z.nc -------------------------------------------------------------------------------- /tests/compare/Qout_nasa_lis_3hr_20020830_original.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/Qout_nasa_lis_3hr_20020830_original.nc -------------------------------------------------------------------------------- /tests/compare/cf_goodness_of_fit_analysis.csv: -------------------------------------------------------------------------------- 1 | reach_id,percent_bias,abs_percent_bias,rmse,mae,bias,NSE,likelihood,correlation_coeff,index_agreement,KGE 2 | 75224,-74.858501076018868,74.858501076018868,23.8914,23.1687,-23.1687,-1350.0041578222406,0.0,-1.0,0.039352893829345703,-6.2918931170236574 3 | 75224,-74.858501076018868,74.858501076018868,23.8914,23.1687,-23.1687,-1350.0041578222406,0.0,-1.0,0.039352893829345703,-6.2918931170236574 4 | -------------------------------------------------------------------------------- /tests/compare/cf_goodness_of_fit_analysis_1.csv: -------------------------------------------------------------------------------- 1 | reach_id,percent_bias,abs_percent_bias,rmse,mae,bias,NSE,likelihood,correlation_coeff,index_agreement,KGE 2 | 75224,-74.858501076018868,74.858501076018868,23.8914,23.1687,-23.1687,-1350.0041578222406,0.0,-1.0,0.039352893829345703,-6.2918931170236574 3 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries.csv: -------------------------------------------------------------------------------- 1 | 2002-08-30 00:00:00,0.0 2 | 2002-08-30 03:00:00,0.033643104136 3 | 2002-08-30 06:00:00,0.0587439239025 4 | 2002-08-30 09:00:00,0.0518858879805 5 | 2002-08-30 12:00:00,0.0516051016748 6 | 2002-08-30 15:00:00,0.0518918484449 7 | 2002-08-30 18:00:00,0.05222312361 8 | 2002-08-30 21:00:00,0.0525727123022 9 | 2002-08-31 00:00:00,0.0529390275478 10 | 2002-08-31 03:00:00,0.0533189661801 11 | 2002-08-31 06:00:00,0.0538823418319 12 | 2002-08-31 09:00:00,0.054439779371 13 | 2002-08-31 12:00:00,0.0547072961926 14 | 2002-08-31 15:00:00,0.0555616356432 15 | 2002-08-31 18:00:00,0.0562346354127 16 | 2002-08-31 21:00:00,0.0560650490224 17 | 2002-09-01 00:00:00,0.0561376847327 18 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 1 2 | POINT 1 599 0.0 3 | NRPDS 17 4 | INPUT 2002 08 30 00 00 0.00000 5 | INPUT 2002 08 30 03 00 0.10073 6 | INPUT 2002 08 30 06 00 0.87412 7 | INPUT 2002 08 30 09 00 1.80970 8 | INPUT 2002 08 30 12 00 2.72844 9 | INPUT 2002 08 30 15 00 3.83714 10 | INPUT 2002 08 30 18 00 5.07205 11 | INPUT 2002 08 30 21 00 6.37279 12 | INPUT 2002 08 31 00 00 7.72781 13 | INPUT 2002 08 31 03 00 9.08265 14 | INPUT 2002 08 31 06 00 10.43755 15 | INPUT 2002 08 31 09 00 12.04025 16 | INPUT 2002 08 31 12 00 13.78219 17 | INPUT 2002 08 31 15 00 15.36506 18 | INPUT 2002 08 31 18 00 16.90097 19 | INPUT 2002 08 31 21 00 18.36924 20 | INPUT 2002 09 01 00 00 19.49250 21 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries.xys: -------------------------------------------------------------------------------- 1 | XYS 25 17 "RAPID_TO_GSSHA" 2 | "08/30/2002 12:00:00 AM" 0.00000 3 | "08/30/2002 03:00:00 AM" 0.03364 4 | "08/30/2002 06:00:00 AM" 0.05874 5 | "08/30/2002 09:00:00 AM" 0.05189 6 | "08/30/2002 12:00:00 PM" 0.05161 7 | "08/30/2002 03:00:00 PM" 0.05189 8 | "08/30/2002 06:00:00 PM" 0.05222 9 | "08/30/2002 09:00:00 PM" 0.05257 10 | "08/31/2002 12:00:00 AM" 0.05294 11 | "08/31/2002 03:00:00 AM" 0.05332 12 | "08/31/2002 06:00:00 AM" 0.05388 13 | "08/31/2002 09:00:00 AM" 0.05444 14 | "08/31/2002 12:00:00 PM" 0.05471 15 | "08/31/2002 03:00:00 PM" 0.05556 16 | "08/31/2002 06:00:00 PM" 0.05623 17 | "08/31/2002 09:00:00 PM" 0.05607 18 | "09/01/2002 12:00:00 AM" 0.05614 19 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily.csv: -------------------------------------------------------------------------------- 1 | 2002-08-30,0.044070713222 2 | 2002-08-31,0.0546435900033 3 | 2002-09-01,0.0561376847327 4 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 3 2 | POINT 1 599 0.0 3 | POINT 1 603 0.0 4 | POINT 1 605 0.0 5 | NRPDS 3 6 | INPUT 2002 08 30 00 00 2.59937 0.20775 0.10355 7 | INPUT 2002 08 31 00 00 12.96322 0.33463 0.15873 8 | INPUT 2002 09 01 00 00 19.49250 0.33966 0.14055 9 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily.xys: -------------------------------------------------------------------------------- 1 | XYS 25 3 "RAPID_TO_GSSHA" 2 | "08/30/2002 12:00:00 AM" 0.04407 3 | "08/31/2002 12:00:00 AM" 0.05464 4 | "09/01/2002 12:00:00 AM" 0.05614 5 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily_date.csv: -------------------------------------------------------------------------------- 1 | 2002-08-31,18.369239807128906 2 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily_date.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 1 2 | POINT 1 599 0.0 3 | NRPDS 1 4 | INPUT 2002 08 31 00 00 18.36924 5 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily_date.xys: -------------------------------------------------------------------------------- 1 | XYS 25 1 "RAPID_TO_GSSHA" 2 | "08/31/2002 12:00:00 AM" 18.36924 3 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily_date_tz.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 1 2 | POINT 1 599 0.0 3 | NRPDS 1 4 | INPUT 2002 08 31 00 00 19.49250 5 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_daily_tz.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 3 2 | POINT 1 599 0.0 3 | POINT 1 603 0.0 4 | POINT 1 605 0.0 5 | NRPDS 3 6 | INPUT 2002 08 29 00 00 0.05037 0.04395 0.04525 7 | INPUT 2002 08 30 00 00 4.68809 0.26494 0.12365 8 | INPUT 2002 08 31 00 00 15.19825 0.35303 0.16558 9 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_date.csv: -------------------------------------------------------------------------------- 1 | 2002-08-31 00:00:00,7.7278137207 2 | 2002-08-31 03:00:00,9.08265399933 3 | 2002-08-31 06:00:00,10.4375543594 4 | 2002-08-31 09:00:00,12.0402488708 5 | 2002-08-31 12:00:00,13.7821922302 6 | 2002-08-31 15:00:00,15.3650617599 7 | 2002-08-31 18:00:00,16.900970459 8 | 2002-08-31 21:00:00,18.3692398071 9 | 2002-09-01 00:00:00,19.4925003052 10 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_date.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 3 2 | POINT 1 599 0.0 3 | POINT 1 603 0.0 4 | POINT 1 605 0.0 5 | NRPDS 9 6 | INPUT 2002 08 31 00 00 7.72781 0.27208 0.12537 7 | INPUT 2002 08 31 03 00 9.08265 0.27336 0.12599 8 | INPUT 2002 08 31 06 00 10.43755 0.31118 0.16547 9 | INPUT 2002 08 31 09 00 12.04025 0.38636 0.19409 10 | INPUT 2002 08 31 12 00 13.78219 0.38593 0.16310 11 | INPUT 2002 08 31 15 00 15.36506 0.31870 0.13426 12 | INPUT 2002 08 31 18 00 16.90097 0.33592 0.18490 13 | INPUT 2002 08 31 21 00 18.36924 0.39349 0.17665 14 | INPUT 2002 09 01 00 00 19.49250 0.33966 0.14055 15 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_date.xys: -------------------------------------------------------------------------------- 1 | XYS 25 9 "RAPID_TO_GSSHA" 2 | "08/31/2002 12:00:00 AM" 7.72781 3 | "08/31/2002 03:00:00 AM" 9.08265 4 | "08/31/2002 06:00:00 AM" 10.43755 5 | "08/31/2002 09:00:00 AM" 12.04025 6 | "08/31/2002 12:00:00 PM" 13.78219 7 | "08/31/2002 03:00:00 PM" 15.36506 8 | "08/31/2002 06:00:00 PM" 16.90097 9 | "08/31/2002 09:00:00 PM" 18.36924 10 | "09/01/2002 12:00:00 AM" 19.49250 11 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_date_tz.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 3 2 | POINT 1 599 0.0 3 | POINT 1 603 0.0 4 | POINT 1 605 0.0 5 | NRPDS 7 6 | INPUT 2002 08 31 01 00 10.43755 0.31118 0.16547 7 | INPUT 2002 08 31 04 00 12.04025 0.38636 0.19409 8 | INPUT 2002 08 31 07 00 13.78219 0.38593 0.16310 9 | INPUT 2002 08 31 10 00 15.36506 0.31870 0.13426 10 | INPUT 2002 08 31 13 00 16.90097 0.33592 0.18490 11 | INPUT 2002 08 31 16 00 18.36924 0.39349 0.17665 12 | INPUT 2002 08 31 19 00 19.49250 0.33966 0.14055 13 | -------------------------------------------------------------------------------- /tests/compare/cf_timeseries_tz.ihg: -------------------------------------------------------------------------------- 1 | NUMPT 1 2 | POINT 1 599 0.0 3 | NRPDS 17 4 | INPUT 2002 08 29 19 00 0.00000 5 | INPUT 2002 08 29 22 00 0.10073 6 | INPUT 2002 08 30 01 00 0.87412 7 | INPUT 2002 08 30 04 00 1.80970 8 | INPUT 2002 08 30 07 00 2.72844 9 | INPUT 2002 08 30 10 00 3.83714 10 | INPUT 2002 08 30 13 00 5.07205 11 | INPUT 2002 08 30 16 00 6.37279 12 | INPUT 2002 08 30 19 00 7.72781 13 | INPUT 2002 08 30 22 00 9.08265 14 | INPUT 2002 08 31 01 00 10.43755 15 | INPUT 2002 08 31 04 00 12.04025 16 | INPUT 2002 08 31 07 00 13.78219 17 | INPUT 2002 08 31 10 00 15.36506 18 | INPUT 2002 08 31 13 00 16.90097 19 | INPUT 2002 08 31 16 00 18.36924 20 | INPUT 2002 08 31 19 00 19.49250 21 | -------------------------------------------------------------------------------- /tests/compare/gage_rivid.csv: -------------------------------------------------------------------------------- 1 | 16039510 2 | 22105603 3 | -------------------------------------------------------------------------------- /tests/compare/gage_streamflow.csv: -------------------------------------------------------------------------------- 1 | 4.8704976167876453,0.31148531270153546 2 | 4.8988144633968753,0.28316846609230495 3 | 4.8421807701784152,0.31148531270153546 4 | -------------------------------------------------------------------------------- /tests/compare/gis/ark-ms/k.csv: -------------------------------------------------------------------------------- 1 | 355.554697 2 | 334.484068 3 | 312.0305712 4 | 343.6241719 5 | 255.3056717 6 | 31.56296131 7 | 336.3321576 -------------------------------------------------------------------------------- /tests/compare/gis/ark-ms/rapid_connect.csv: -------------------------------------------------------------------------------- 1 | 22850939,22850949,0,0,0,0,0,0,0,0 2 | 22850941,22850949,0,0,0,0,0,0,0,0 3 | 22850947,22850951,0,0,0,0,0,0,0,0 4 | 22850953,22850951,0,0,0,0,0,0,0,0 5 | 22850949,22850969,2,22850939,22850941,0,0,0,0,0 6 | 22850951,22850969,2,22850947,22850953,0,0,0,0,0 7 | 22850969,22850977,2,22850949,22850951,0,0,0,0,0 8 | -------------------------------------------------------------------------------- /tests/compare/gis/ark-ms/riv_bas_id.csv: -------------------------------------------------------------------------------- 1 | 22850939 2 | 22850941 3 | 22850947 4 | 22850953 5 | 22850949 6 | 22850951 7 | 22850969 8 | -------------------------------------------------------------------------------- /tests/compare/gis/ark-ms/weight_cmip5.csv: -------------------------------------------------------------------------------- 1 | FEATUREID,area_sqm,lon_index,lat_index,npoints 2 | 22850969,409500.0268126891,260,73,1,1.0,-92.187499999999943,34.312500000000057 3 | 22850949,354599.971597633,260,73,1,1.0,-92.187499999999943,34.312500000000057 4 | 22850939,2155499.8197965883,260,73,1,1.0,-92.187499999999943,34.312500000000057 5 | 22850941,1353600.1401073174,260,73,1,1.0,-92.187499999999943,34.312500000000057 6 | 22850951,8099.9989194972195,260,73,1,1.0,-92.187499999999943,34.312500000000057 7 | 22850947,1074599.9314731625,260,73,1,1.0,-92.187499999999943,34.312500000000057 8 | 22850953,1800003.0099754902,260,73,1,1.0,-92.187499999999943,34.312500000000057 9 | -------------------------------------------------------------------------------- /tests/compare/gis/ark-ms/x.csv: -------------------------------------------------------------------------------- 1 | 0.3 2 | 0.3 3 | 0.3 4 | 0.3 5 | 0.3 6 | 0.3 7 | 0.3 -------------------------------------------------------------------------------- /tests/compare/gis/m-s/comid_lat_lon_z.csv: -------------------------------------------------------------------------------- 1 | rivid,lat,lon,z 2 | 18445186,38.621052578327394,-86.30411332474645,0.0 3 | 18445184,38.61901807619826,-86.27753353213048,0.0 4 | 18445550,38.62140171663975,-86.24862407496275,0.0 5 | 18445156,38.6314555031341,-86.22298121505749,0.0 6 | 18445168,38.6264846589461,-86.26523046123323,0.0 7 | 18445548,38.631645261648494,-86.23949953381434,0.0 8 | 18445198,38.61599656291627,-86.27111950355311,0.0 9 | 18445554,38.60965413546897,-86.2495465646815,0.0 10 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/k.csv: -------------------------------------------------------------------------------- 1 | 699.3665 2 | 3191.0024999999996 3 | 861.7175 4 | 7672.209999999999 5 | 1875.7619999999997 6 | 2753.5654999999997 7 | 5732.65 8 | 2987.026 9 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/kfac.csv: -------------------------------------------------------------------------------- 1 | 1998.19 2 | 9117.15 3 | 2462.05 4 | 21920.6 5 | 5359.32 6 | 7867.33 7 | 16379.0 8 | 8534.36 9 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/rapid_connect.csv: -------------------------------------------------------------------------------- 1 | 18445156,18445550,0,0,0 2 | 18445168,18445184,1,18445548,0 3 | 18445184,18445186,2,18445550,18445168 4 | 18445186,18445182,2,18445184,18445198 5 | 18445198,18445186,1,18445554,0 6 | 18445548,18445168,0,0,0 7 | 18445550,18445184,1,18445156,0 8 | 18445554,18445198,0,0,0 9 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/riv_bas_id.csv: -------------------------------------------------------------------------------- 1 | 18445156 2 | 18445548 3 | 18445554 4 | 18445168 5 | 18445198 6 | 18445550 7 | 18445184 8 | 18445186 9 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/weight_wrf.csv: -------------------------------------------------------------------------------- 1 | FEATUREID,area_sqm,west_east,south_north,npoints,Lon,Lat,x,y 2 | 18445156,769582.8838445453,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 3 | 18445168,4380750.241566651,48,63,2,-86.2484,38.5932,-318002.08659800142,42074.305479621515 4 | 18445168,87501.08318384667,48,64,2,-86.2539,38.701,-318002.08659800142,54074.30547962524 5 | 18445184,394681.37655812525,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 6 | 18445186,814710.7710376007,47,63,3,-86.3864,38.5888,-330002.08659800142,42074.305479621515 7 | 18445186,11017950.62998205,48,63,3,-86.2484,38.5932,-318002.08659800142,42074.305479621515 8 | 18445186,523821.01315912406,48,64,3,-86.2539,38.701,-318002.08659800142,54074.30547962524 9 | 18445198,1735163.7585762562,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 10 | 18445548,4271359.666684006,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 11 | 18445550,6553156.134220288,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 12 | 18445554,2950679.0401786533,48,63,1,-86.2484,38.5932,-318002.08659800142,42074.305479621515 13 | -------------------------------------------------------------------------------- /tests/compare/gis/m-s/x.csv: -------------------------------------------------------------------------------- 1 | 0.3 2 | 0.3 3 | 0.3 4 | 0.3 5 | 0.3 6 | 0.3 7 | 0.3 8 | 0.3 9 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino/rapid_connect.csv: -------------------------------------------------------------------------------- 1 | 8267669,8267695,0,0,0,0,0 2 | 8267671,8267695,0,0,0,0,0 3 | 8267697,8267725,0,0,0,0,0 4 | 8267723,8267745,0,0,0,0,0 5 | 8267695,8267725,2,8267669,8267671,0,0 6 | 8267725,8267745,2,8267695,8267697,0,0 7 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino/riv_bas_id.csv: -------------------------------------------------------------------------------- 1 | 8267665 2 | 8267667 3 | 8267669 4 | 8267671 5 | 8267681 6 | 8267683 7 | 8267685 8 | 8267697 9 | 8267711 10 | 8267723 11 | 8267727 12 | 8267729 13 | 8267737 14 | 8267743 15 | 8267755 16 | 8267757 17 | 8267759 18 | 8267765 19 | 8267771 20 | 8267783 21 | 8267785 22 | 8267789 23 | 8267799 24 | 8267803 25 | 8267807 26 | 8267811 27 | 8267815 28 | 8267821 29 | 8267823 30 | 8267825 31 | 8267849 32 | 8267851 33 | 8267863 34 | 8267867 35 | 8267869 36 | 8267873 37 | 8267877 38 | 8267879 39 | 8267885 40 | 8267887 41 | 8267895 42 | 8267899 43 | 8267901 44 | 8267903 45 | 8267911 46 | 8267933 47 | 8267937 48 | 8267947 49 | 8267949 50 | 8267955 51 | 8267965 52 | 8267969 53 | 8267973 54 | 8267979 55 | 8267987 56 | 8267991 57 | 8267997 58 | 8268001 59 | 8268003 60 | 8268021 61 | 8268023 62 | 8268027 63 | 8268031 64 | 8268035 65 | 8268049 66 | 8268055 67 | 8268057 68 | 8268063 69 | 8268079 70 | 8268081 71 | 8268089 72 | 8268093 73 | 8268095 74 | 8268097 75 | 8268111 76 | 8268123 77 | 8268127 78 | 8268131 79 | 8268133 80 | 8268137 81 | 8268141 82 | 8268143 83 | 8268149 84 | 8268151 85 | 8268155 86 | 8268161 87 | 8268163 88 | 8268167 89 | 8268169 90 | 8268175 91 | 8268177 92 | 8268181 93 | 8268183 94 | 8268185 95 | 8268193 96 | 8268195 97 | 8268197 98 | 8268201 99 | 8268205 100 | 8268211 101 | 8268217 102 | 8268221 103 | 8268223 104 | 8268227 105 | 8268229 106 | 8268231 107 | 8268233 108 | 8268237 109 | 8268241 110 | 8268245 111 | 8268255 112 | 8268261 113 | 8268263 114 | 8268265 115 | 8268267 116 | 8268269 117 | 8268271 118 | 8268275 119 | 8268289 120 | 8268307 121 | 8268309 122 | 8268315 123 | 8268319 124 | 8268327 125 | 8268329 126 | 8268333 127 | 8268337 128 | 8268339 129 | 8268341 130 | 8268351 131 | 8268355 132 | 8268357 133 | 8268363 134 | 8268371 135 | 8268375 136 | 8268377 137 | 8268385 138 | 8268387 139 | 8268389 140 | 8268391 141 | 8268397 142 | 8268399 143 | 8268401 144 | 8268409 145 | 8268413 146 | 8268415 147 | 8268419 148 | 8268425 149 | 8268435 150 | 8268441 151 | 8268445 152 | 8268447 153 | 8268457 154 | 8268461 155 | 8268465 156 | 8268467 157 | 8268471 158 | 8268473 159 | 8268475 160 | 8268479 161 | 8268483 162 | 8268491 163 | 8268493 164 | 8268497 165 | 8268499 166 | 8268503 167 | 8268507 168 | 8268509 169 | 8268517 170 | 8268519 171 | 8268525 172 | 8268529 173 | 8268535 174 | 8268539 175 | 8268543 176 | 8268549 177 | 8268553 178 | 8268559 179 | 8268563 180 | 8268567 181 | 8268571 182 | 8268573 183 | 8268579 184 | 8268583 185 | 8268597 186 | 8268601 187 | 8268603 188 | 8268609 189 | 8268613 190 | 8268615 191 | 8268619 192 | 8268623 193 | 8268631 194 | 8268633 195 | 8268635 196 | 8268637 197 | 8268643 198 | 8268647 199 | 8268655 200 | 8268657 201 | 8268671 202 | 8268681 203 | 8268683 204 | 8268689 205 | 8268693 206 | 8268695 207 | 8268697 208 | 8268701 209 | 8268705 210 | 8268723 211 | 8268727 212 | 8268733 213 | 8269047 214 | 8269049 215 | 8269051 216 | 8269053 217 | 8269065 218 | 8269073 219 | 8269077 220 | 8269079 221 | 8269081 222 | 8269107 223 | 8269115 224 | 8269151 225 | 8269597 226 | 8267677 227 | 8267695 228 | 8267717 229 | 8267719 230 | 8267731 231 | 8267741 232 | 8267761 233 | 8267775 234 | 8267791 235 | 8267795 236 | 8267797 237 | 8267801 238 | 8267837 239 | 8267855 240 | 8267859 241 | 8267871 242 | 8267907 243 | 8267909 244 | 8267915 245 | 8267925 246 | 8267945 247 | 8267961 248 | 8267975 249 | 8267981 250 | 8267983 251 | 8268005 252 | 8268009 253 | 8268039 254 | 8268051 255 | 8268075 256 | 8268085 257 | 8268115 258 | 8268121 259 | 8268145 260 | 8268173 261 | 8268187 262 | 8268207 263 | 8268209 264 | 8268225 265 | 8268243 266 | 8268251 267 | 8268253 268 | 8268257 269 | 8268277 270 | 8268287 271 | 8268297 272 | 8268313 273 | 8268331 274 | 8268335 275 | 8268347 276 | 8268395 277 | 8268403 278 | 8268405 279 | 8268407 280 | 8268433 281 | 8268463 282 | 8268469 283 | 8268477 284 | 8268481 285 | 8268485 286 | 8268501 287 | 8268527 288 | 8268541 289 | 8268551 290 | 8268581 291 | 8268591 292 | 8268607 293 | 8268625 294 | 8268629 295 | 8268641 296 | 8268645 297 | 8268665 298 | 8268677 299 | 8268709 300 | 8268725 301 | 8269059 302 | 8269087 303 | 8269093 304 | 8269097 305 | 8269125 306 | 8269127 307 | 8269129 308 | 8269137 309 | 8267687 310 | 8267725 311 | 8267747 312 | 8267751 313 | 8267769 314 | 8267781 315 | 8267845 316 | 8267857 317 | 8267893 318 | 8267913 319 | 8267929 320 | 8267943 321 | 8268013 322 | 8268059 323 | 8268077 324 | 8268087 325 | 8268099 326 | 8268103 327 | 8268113 328 | 8268239 329 | 8268247 330 | 8268259 331 | 8268311 332 | 8268325 333 | 8268349 334 | 8268393 335 | 8268417 336 | 8268421 337 | 8268437 338 | 8268455 339 | 8268459 340 | 8268487 341 | 8268511 342 | 8268513 343 | 8268523 344 | 8268565 345 | 8268599 346 | 8268627 347 | 8268639 348 | 8268651 349 | 8268663 350 | 8268731 351 | 8269123 352 | 8269131 353 | 8269133 354 | 8269141 355 | 8269147 356 | 8267715 357 | 8267745 358 | 8267779 359 | 8267831 360 | 8267883 361 | 8267891 362 | 8267963 363 | 8268015 364 | 8268109 365 | 8268119 366 | 8268191 367 | 8268235 368 | 8268285 369 | 8268301 370 | 8268323 371 | 8268345 372 | 8268383 373 | 8268411 374 | 8268423 375 | 8268451 376 | 8268495 377 | 8268545 378 | 8268595 379 | 8268621 380 | 8268653 381 | 8268735 382 | 8269067 383 | 8269089 384 | 8269117 385 | 8269155 386 | 8267735 387 | 8267753 388 | 8267805 389 | 8267827 390 | 8267919 391 | 8267959 392 | 8268037 393 | 8268069 394 | 8268219 395 | 8268293 396 | 8268321 397 | 8268365 398 | 8268381 399 | 8268429 400 | 8268443 401 | 8268505 402 | 8268555 403 | 8268617 404 | 8268673 405 | 8268703 406 | 8269095 407 | 8269149 408 | 8267749 409 | 8267767 410 | 8267809 411 | 8267923 412 | 8268067 413 | 8268125 414 | 8268199 415 | 8268291 416 | 8268367 417 | 8268379 418 | 8268449 419 | 8268515 420 | 8268605 421 | 8268659 422 | 8268691 423 | 8269063 424 | 8267773 425 | 8267777 426 | 8267839 427 | 8267935 428 | 8268135 429 | 8268139 430 | 8268179 431 | 8268273 432 | 8268353 433 | 8268453 434 | 8268537 435 | 8268661 436 | 8268679 437 | 8269083 438 | 8267787 439 | 8267793 440 | 8267881 441 | 8268171 442 | 8268189 443 | 8268281 444 | 8268439 445 | 8268561 446 | 8268667 447 | 8269085 448 | 8269111 449 | 8267813 450 | 8267819 451 | 8267957 452 | 8268065 453 | 8268165 454 | 8268203 455 | 8268279 456 | 8268359 457 | 8268569 458 | 8268675 459 | 8267817 460 | 8267847 461 | 8267993 462 | 8268053 463 | 8268159 464 | 8268215 465 | 8268295 466 | 8268373 467 | 8268585 468 | 8268687 469 | 8267841 470 | 8267843 471 | 8267889 472 | 8268041 473 | 8268147 474 | 8268587 475 | 8269061 476 | 8269109 477 | 8267853 478 | 8267917 479 | 8268011 480 | 8268019 481 | 8268105 482 | 8268305 483 | 8269113 484 | 8267865 485 | 8267939 486 | 8268033 487 | 8268107 488 | 8268577 489 | 8267875 490 | 8267967 491 | 8268045 492 | 8268101 493 | 8268575 494 | 8267905 495 | 8267977 496 | 8268043 497 | 8268047 498 | 8267931 499 | 8267985 500 | 8269069 501 | 8267951 502 | 8267995 503 | 8268073 504 | 8267971 505 | 8268029 506 | 8267999 507 | 8268071 508 | 8268007 509 | 8269075 510 | 8268017 511 | 8269091 512 | 8268025 513 | 8269135 514 | 8268061 515 | 8269139 516 | 8269071 517 | 8269143 518 | 8268083 519 | 8269145 520 | 8268091 521 | 8269153 522 | 8268129 523 | 8269105 524 | 8268153 525 | 8268157 526 | 8268213 527 | 8269099 528 | 8268283 529 | 8268299 530 | 8268303 531 | 8268317 532 | 8268343 533 | 8268361 534 | 8268369 535 | 8268427 536 | 8268431 537 | 8268489 538 | 8268521 539 | 8268531 540 | 8268533 541 | 8268547 542 | 8268557 543 | 8268589 544 | 8268593 545 | 8268611 546 | 8268649 547 | 8268669 548 | 8268685 549 | 8269119 550 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino/weight_era5.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 8267669,1017899.960910892,7,2,1,-123.25,39.5 3 | 8267671,675359.440375846,7,2,2,-123.25,39.5 4 | 8267671,311040.62364337244,7,3,2,-123.25,39.25 5 | 8267697,881099.9908478148,7,3,1,-123.25,39.25 6 | 8267723,1529100.0237058832,7,3,1,-123.25,39.25 7 | 8267695,706892.0671372067,7,2,2,-123.25,39.5 8 | 8267695,4217007.870436541,7,3,2,-123.25,39.25 9 | 8267725,2122200.0199336368,7,3,1,-123.25,39.25 10 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino_nhdplus_catchment/rapid_connectivity_mendocino_sample.csv: -------------------------------------------------------------------------------- 1 | 8267669,8267695,0,0,0,0,0 2 | 8267671,8267695,0,0,0,0,0 3 | 8267697,8267725,0,0,0,0,0 4 | 8267723,8267745,0,0,0,0,0 5 | 8267695,8267725,2,8267669,8267671,0,0 6 | 8267725,8267745,2,8267695,8267697,0,0 7 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino_nhdplus_catchment/weight_lis_land_fraction_mendocino_subset.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 8267669,1017899.960910892,0,2,1,-123.25781,39.421875 3 | 8267671,311040.62364337244,0,1,2,-123.25781,39.328125 4 | 8267671,675359.440375846,0,2,2,-123.25781,39.421875 5 | 8267697,881099.9908478148,0,1,1,-123.25781,39.328125 6 | 8267723,1529100.0237058832,0,1,1,-123.25781,39.328125 7 | 8267695,4217007.870436541,0,1,2,-123.25781,39.328125 8 | 8267695,706892.0671372067,0,2,2,-123.25781,39.421875 9 | 8267725,2122200.0199336368,0,1,1,-123.25781,39.328125 10 | -------------------------------------------------------------------------------- /tests/compare/gis/mendocino_nhdplus_catchment/weight_mendocino_era5_land_mask.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 8267669,1022424.4461225494,7,2,1,-123.25,39.5 3 | 8267671,678361.3599336375,7,2,2,-123.25,39.5 4 | 8267671,313143.12121458724,7,3,2,-123.25,39.25 5 | 8267697,887055.8385729626,7,3,1,-123.25,39.25 6 | 8267723,1539436.066144096,7,3,1,-123.25,39.25 7 | 8267695,710034.1467391531,7,2,2,-123.25,39.5 8 | 8267695,4245512.985625456,7,3,2,-123.25,39.25 9 | 8267725,2136545.1570262704,7,3,1,-123.25,39.25 10 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/comid_lat_lon_z.csv: -------------------------------------------------------------------------------- 1 | rivid,lat,lon,z 2 | 43575,52.02538887767525,-1.2866247223516292,0.0 3 | 43462,52.05134769164849,-1.3124986432867014,0.0 4 | 43289,52.10681732839724,-1.3626309727927888,0.0 5 | 43290,52.07922662560284,-1.323555224292924,0.0 6 | 43142,52.10403240964374,-1.3113799535953108,0.0 7 | 42978,52.12308683126911,-1.311611139214227,0.0 8 | 42918,52.13865832045047,-1.3165202308943316,0.0 9 | 42830,52.1573964970162,-1.3276087506604428,0.0 10 | 42831,52.15292122602174,-1.3116595413897194,0.0 11 | 42919,52.16113021338286,-1.290934232232367,0.0 12 | 42979,52.12552287341827,-1.279541513574388,0.0 13 | 42928,52.129084663216304,-1.2403796461683272,0.0 14 | 42911,52.132551628309955,-1.2321016642915124,0.0 15 | 42891,52.14835448082867,-1.2305344560810734,0.0 16 | 42747,52.1658673584567,-1.2279647734336623,0.0 17 | 42748,52.18080780033363,-1.2075177897983205,0.0 18 | 42892,52.141328954153266,-1.1979377130338815,0.0 19 | 42841,52.14533441731961,-1.1560045443530949,0.0 20 | 42846,52.143952203900895,-1.1652941172668776,0.0 21 | 43028,52.12023783561234,-1.2236099540190455,0.0 22 | 42932,52.12729167000005,-1.2456219474999553,0.0 23 | 43145,52.09202930661136,-1.297878999134436,0.0 24 | 43463,52.05118482343523,-1.268361382013925,0.0 25 | 43316,52.06276156164178,-1.236774630094867,0.0 26 | 43317,52.065208336906586,-1.226455281262579,0.0 27 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/k.csv: -------------------------------------------------------------------------------- 1 | 1232.4969999999998 2 | 7308.525 3 | 3997.4549999999995 4 | 2151.0335 5 | 1935.1779999999999 6 | 243.40575 7 | 3762.6399999999994 8 | 5947.025 9 | 716.6145 10 | 3317.454 11 | 10491.074999999999 12 | 1961.6869999999997 13 | 243.40575 14 | 2443.287 15 | 8165.3949999999995 16 | 2866.458 17 | 5086.829999999999 18 | 2674.5775 19 | 10491.074999999999 20 | 6727.0 21 | 333.2308 22 | 1624.7350000000001 23 | 7775.879999999999 24 | 8259.02 25 | 4945.045 26 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/kfac.csv: -------------------------------------------------------------------------------- 1 | 3521.42 2 | 20881.5 3 | 11421.3 4 | 6145.81 5 | 5529.08 6 | 695.445 7 | 10750.4 8 | 16991.5 9 | 2047.47 10 | 9478.44 11 | 29974.5 12 | 5604.82 13 | 695.445 14 | 6980.82 15 | 23329.7 16 | 8189.88 17 | 14533.8 18 | 7641.65 19 | 29974.5 20 | 19220.0 21 | 952.088 22 | 4642.1 23 | 22216.8 24 | 23597.2 25 | 14128.7 26 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/rapid_connect.csv: -------------------------------------------------------------------------------- 1 | 42747,42891,0,0,0 2 | 42748,42891,0,0,0 3 | 42830,42918,0,0,0 4 | 42831,42918,0,0,0 5 | 42841,42892,0,0,0 6 | 42846,42892,0,0,0 7 | 42891,42911,2,42747,42748 8 | 42892,42911,2,42841,42846 9 | 42911,42928,2,42891,42892 10 | 42918,42978,2,42830,42831 11 | 42919,42978,0,0,0 12 | 42928,42979,2,42911,43028 13 | 42932,42979,0,0,0 14 | 42978,43142,2,42918,42919 15 | 42979,43142,2,42928,42932 16 | 43028,42928,0,0,0 17 | 43142,43290,2,42978,42979 18 | 43145,43290,0,0,0 19 | 43289,43462,0,0,0 20 | 43290,43462,2,43142,43145 21 | 43316,43463,0,0,0 22 | 43317,43463,0,0,0 23 | 43462,43575,2,43289,43290 24 | 43463,43575,2,43316,43317 25 | 43575,43612,2,43462,43463 26 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/riv_bas_id.csv: -------------------------------------------------------------------------------- 1 | 42747 2 | 42748 3 | 42830 4 | 42831 5 | 42841 6 | 42846 7 | 42891 8 | 42892 9 | 42911 10 | 42918 11 | 42919 12 | 42928 13 | 42932 14 | 42978 15 | 42979 16 | 43028 17 | 43142 18 | 43145 19 | 43289 20 | 43290 21 | 43316 22 | 43317 23 | 43462 24 | 43463 25 | 43575 26 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/x.csv: -------------------------------------------------------------------------------- 1 | 0.3 2 | 0.3 3 | 0.3 4 | 0.3 5 | 0.3 6 | 0.3 7 | 0.3 8 | 0.3 9 | 0.3 10 | 0.3 11 | 0.3 12 | 0.3 13 | 0.3 14 | 0.3 15 | 0.3 16 | 0.3 17 | 0.3 18 | 0.3 19 | 0.3 20 | 0.3 21 | 0.3 22 | 0.3 23 | 0.3 24 | 0.3 25 | 0.3 26 | -------------------------------------------------------------------------------- /tests/compare/gis/u-k/x_drain.csv: -------------------------------------------------------------------------------- 1 | 0.3 2 | 0.3 3 | 0.3 4 | 0.3 5 | 0.3 6 | 0.3 7 | 0.3 8 | 0.3 9 | 0.3 10 | 0.3 11 | 0.3 12 | 0.3 13 | 0.3 14 | 0.3 15 | 0.3 16 | 0.3 17 | 0.3 18 | 0.3 19 | 0.3 20 | 0.3 21 | 0.3 22 | 0.3 23 | 0.3 24 | 0.3 25 | 0.3 26 | -------------------------------------------------------------------------------- /tests/compare/gis/uk-no_intersect/weight_lis_no_intersect.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 45277,0,14,67,1,-2.08496,51.625 3 | 45335,52434.357620913775,20,72,17,-2.02502,51.675 4 | 45335,55.984554445453185,21,70,17,-2.01501,51.655 5 | 45335,485581.85584087117,21,71,17,-2.01501,51.665 6 | 45335,710823.8970164629,21,72,17,-2.01501,51.675 7 | 45335,74470.03211707929,21,73,17,-2.01501,51.685 8 | 45335,754576.2995381241,22,71,17,-2.005,51.665 9 | 45335,770409.9489670037,22,72,17,-2.005,51.675 10 | 45335,267111.06136320217,22,73,17,-2.005,51.685 11 | 45335,770409.9489670037,23,72,17,-1.995,51.675 12 | 45335,759427.3314299228,23,73,17,-1.995,51.685 13 | 45335,770563.3771929154,24,71,17,-1.98499,51.665 14 | 45335,673041.478416246,24,72,17,-1.98499,51.675 15 | 45335,581842.3107594186,24,73,17,-1.98499,51.685 16 | 45335,346145.7208203935,25,71,17,-1.97498,51.665 17 | 45335,5227.110368987601,25,72,17,-1.97498,51.675 18 | 45335,192496.39671867166,23,74,17,-1.995,51.695 19 | 45335,90460.79386852724,24,74,17,-1.98499,51.695 20 | 45379,491209.97686555184,19,69,27,-2.03503,51.645 21 | 45379,770746.6014639866,19,70,27,-2.03503,51.655 22 | 45379,571286.700777996,19,71,27,-2.03503,51.665 23 | 45379,5390.720136128374,20,68,27,-2.02502,51.635 24 | 45379,722921.3321565578,20,69,27,-2.02502,51.645 25 | 45379,770746.6014639561,20,70,27,-2.02502,51.655 26 | 45379,770563.8523377388,20,71,27,-2.02502,51.665 27 | 45379,143887.2049118459,20,72,27,-2.02502,51.675 28 | 45379,594468.1804785177,21,69,27,-2.01501,51.645 29 | 45379,770686.7791778758,21,70,27,-2.01501,51.655 30 | 45379,285000.18183772924,21,71,27,-2.01501,51.665 31 | 45379,289.36473103138877,21,72,27,-2.01501,51.675 32 | 45379,530182.1005530214,22,69,27,-2.005,51.645 33 | 45379,16005.590343855169,22,71,27,-2.005,51.665 34 | 45379,186596.95055956754,15,70,27,-2.07501,51.655 35 | 45379,474996.7135691736,15,71,27,-2.07501,51.665 36 | 45379,5382.963087961355,16,69,27,-2.065,51.645 37 | 45379,690416.5784579928,16,70,27,-2.065,51.655 38 | 45379,732988.4367404213,16,71,27,-2.065,51.665 39 | 45379,21326.345845087126,16,72,27,-2.065,51.675 40 | 45379,10758.399753626876,17,69,27,-2.05499,51.645 41 | 45379,736510.5176222838,17,70,27,-2.05499,51.655 42 | 45379,693821.9451396705,17,71,27,-2.05499,51.665 43 | 45379,21346.70261572877,17,72,27,-2.05499,51.675 44 | 45379,116370.01994454888,18,69,27,-2.04504,51.645 45 | 45379,741574.5574108402,18,70,27,-2.04504,51.655 46 | 45379,421412.42198868404,18,71,27,-2.04504,51.665 47 | 45390,0,14,67,1,-2.08496,51.625 48 | 45398,0,14,67,1,-2.08496,51.625 49 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/comid_lat_lon_z.csv: -------------------------------------------------------------------------------- 1 | rivid,lat,lon,z 2 | 17880830,38.27495900388607,-106.49661969412226,0.0 3 | 17880268,38.26393714825848,-106.44347678466951,0.0 4 | 17880832,38.262818826634984,-106.46992625081815,0.0 5 | 17880258,38.2801335633626,-106.45474032038857,0.0 6 | 17880298,38.21769269378019,-106.47094451961267,0.0 7 | 17880284,38.23166800178719,-106.47629365649524,0.0 8 | 17880282,38.233653357746064,-106.46758637698422,0.0 9 | 17880836,38.25139225972157,-106.45604669355333,0.0 10 | 17880834,38.260799322005575,-106.46167313145538,0.0 11 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/k.csv: -------------------------------------------------------------------------------- 1 | 943.4425 2 | 1542.6985 3 | 3538.185 4 | 3838.45 5 | 2802.6145 6 | 9644.39 7 | 7143.045 8 | 4714.1849999999995 9 | 2540.5835 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/kfac.csv: -------------------------------------------------------------------------------- 1 | 2695.55 2 | 4407.71 3 | 10109.1 4 | 10967.0 5 | 8007.47 6 | 27555.4 7 | 20408.7 8 | 13469.1 9 | 7258.81 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/kfac1.csv: -------------------------------------------------------------------------------- 1 | 2167.2 2 | 5976.0 3 | 9169.2 4 | 7034.4 5 | 5252.4 6 | 32367.6 7 | 20610.0 8 | 14774.4 9 | 7527.6 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/kfac2.csv: -------------------------------------------------------------------------------- 1 | 1502.21 2 | 4260.52 3 | 9771.51 4 | 10600.8 5 | 7740.09 6 | 31240.7 7 | 19727.2 8 | 13019.3 9 | 7016.43 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/qinit_erai_t511_3hr_20030121to20030122.csv: -------------------------------------------------------------------------------- 1 | 0.0 2 | 8.56029237184e-06 3 | 0.000305152498186 4 | 0.00545477913693 5 | 0.00958865135908 6 | 0.00229106796905 7 | 0.000404788268497 8 | 4.18915078626e-05 9 | 3.08269300149e-05 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/rapid_connect.csv: -------------------------------------------------------------------------------- 1 | 17880258,17880834,0,0,0 2 | 17880268,17880836,0,0,0 3 | 17880282,17880298,2,17880836,17880834 4 | 17880284,17880298,2,17880830,17880832 5 | 17880298,-1,2,17880284,17880282 6 | 17880830,17880284,0,0,0 7 | 17880832,17880284,0,0,0 8 | 17880834,17880282,1,17880258,0 9 | 17880836,17880282,1,17880268,0 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/rapid_connect_nhd.csv: -------------------------------------------------------------------------------- 1 | 17880258,17880834,0,0,0 2 | 17880268,17880836,0,0,0 3 | 17880282,17880298,2,17880836,17880834 4 | 17880284,17880298,2,17880830,17880832 5 | 17880298,-1,2,17880284,17880282 6 | 17880830,17880284,0,0,0 7 | 17880832,17880284,0,0,0 8 | 17880834,17880282,1,17880258,0 9 | 17880836,17880282,1,17880268,0 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/riv_bas_id.csv: -------------------------------------------------------------------------------- 1 | 17880834 2 | 17880836 3 | 17880282 4 | 17880284 5 | 17880298 6 | 17880258 7 | 17880832 8 | 17880268 9 | 17880830 10 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_area.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,782,139,1,15.625,-25.125 3 | 17880268,0,782,139,1,15.625,-25.125 4 | 17880282,0,782,139,1,15.625,-25.125 5 | 17880284,0,782,139,1,15.625,-25.125 6 | 17880298,0,782,139,1,15.625,-25.125 7 | 17880830,0,782,139,1,15.625,-25.125 8 | 17880832,0,782,139,1,15.625,-25.125 9 | 17880834,0,782,139,1,15.625,-25.125 10 | 17880836,0,782,139,1,15.625,-25.125 11 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_ecmwf_t1279.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,3604,733,1,-106.59375,38.418276813744853 3 | 17880268,1790099.9932709397,3606,735,1,-106.453125,38.277679278560143 4 | 17880282,153126.88768082776,3606,735,2,-106.453125,38.277679278560143 5 | 17880282,1874573.1000156773,3606,736,2,-106.453125,38.20738051096145 6 | 17880284,1539000.0578630047,3606,736,1,-106.453125,38.20738051096145 7 | 17880298,603000.0084462471,3606,736,1,-106.453125,38.20738051096145 8 | 17880830,462680.7952628888,3605,734,6,-106.5234375,38.347978046154616 9 | 17880830,13561031.515948609,3605,735,6,-106.5234375,38.277679278560143 10 | 17880830,2.036786097111665,3605,736,6,-106.5234375,38.20738051096145 11 | 17880830,788785.3648360601,3606,734,6,-106.453125,38.347978046154616 12 | 17880830,10195969.86965246,3606,735,6,-106.453125,38.277679278560143 13 | 17880830,235630.26788878735,3606,736,6,-106.453125,38.20738051096145 14 | 17880832,7959506.341078113,3606,735,2,-106.453125,38.277679278560143 15 | 17880832,173793.59759493425,3606,736,2,-106.453125,38.20738051096145 16 | 17880834,2515500.0234715943,3606,735,1,-106.453125,38.277679278560143 17 | 17880836,3918600.033181359,3606,735,1,-106.453125,38.277679278560143 18 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_ecmwf_tco639.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,1801,365,1,-106.734375,38.5864861673127 3 | 17880268,1790099.9932709397,1803,367,1,-106.453125,38.305346022636385 4 | 17880282,1369745.7895350915,1803,367,2,-106.453125,38.305346022636385 5 | 17880282,657954.2012280006,1803,368,2,-106.453125,38.164775950196741 6 | 17880284,635981.820088995,1803,367,2,-106.453125,38.305346022636385 7 | 17880284,903018.2360333898,1803,368,2,-106.453125,38.164775950196741 8 | 17880298,603000.0084462471,1803,368,1,-106.453125,38.164775950196741 9 | 17880830,25244100.086063065,1803,367,1,-106.453125,38.305346022636385 10 | 17880832,8133299.9384264555,1803,367,1,-106.453125,38.305346022636385 11 | 17880834,2515500.0234715943,1803,367,1,-106.453125,38.305346022636385 12 | 17880836,3918600.033181359,1803,367,1,-106.453125,38.305346022636385 13 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_era_t159.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,224,44,1,-108.0,40.5 3 | 17880268,1790099.9932709397,225,46,1,-106.875,38.25 4 | 17880282,2027699.9924406856,225,46,1,-106.875,38.25 5 | 17880284,1539000.0578630047,225,46,1,-106.875,38.25 6 | 17880298,603000.0084462471,225,46,1,-106.875,38.25 7 | 17880830,25244100.086063065,225,46,1,-106.875,38.25 8 | 17880832,8133299.9384264555,225,46,1,-106.875,38.25 9 | 17880834,2515500.0234715943,225,46,1,-106.875,38.25 10 | 17880836,3918600.033181359,225,46,1,-106.875,38.25 11 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_era_t255.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,505,102,1,-107.5,39.0 3 | 17880268,1790099.9932709397,507,103,1,-106.5,38.5 4 | 17880282,2027699.9924406856,507,104,1,-106.5,38.0 5 | 17880284,1539000.0578630047,507,104,1,-106.5,38.0 6 | 17880298,603000.0084462471,507,104,1,-106.5,38.0 7 | 17880830,24277384.365009602,507,103,2,-106.5,38.5 8 | 17880830,966715.7213738186,507,104,2,-106.5,38.0 9 | 17880832,7220569.2090924345,507,103,2,-106.5,38.5 10 | 17880832,912730.7286842655,507,104,2,-106.5,38.0 11 | 17880834,2158260.5324247293,507,103,2,-106.5,38.5 12 | 17880834,357239.48561025114,507,104,2,-106.5,38.0 13 | 17880836,3354625.4548501438,507,103,2,-106.5,38.5 14 | 17880836,563974.582995896,507,104,2,-106.5,38.0 15 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_era_t511.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,720,145,1,-106.875,38.809734166395877 3 | 17880268,1790099.9932709397,721,147,1,-106.5234375,38.107295687204726 4 | 17880282,2027699.9924406856,721,147,1,-106.5234375,38.107295687204726 5 | 17880284,1539000.0578630047,721,147,1,-106.5234375,38.107295687204726 6 | 17880298,603000.0084462471,721,147,1,-106.5234375,38.107295687204726 7 | 17880830,14931602.816485418,721,146,2,-106.5234375,38.458514928127514 8 | 17880830,10312496.9799969,721,147,2,-106.5234375,38.107295687204726 9 | 17880832,3137213.5897901226,721,146,2,-106.5234375,38.458514928127514 10 | 17880832,4996086.335566437,721,147,2,-106.5234375,38.107295687204726 11 | 17880834,2515500.0234715943,721,147,1,-106.5234375,38.107295687204726 12 | 17880836,4342.992958308709,721,146,2,-106.5234375,38.458514928127514 13 | 17880836,3914256.613092825,721,147,2,-106.5234375,38.107295687204726 14 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_gldas2.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,292,391,1,-106.875,37.875 3 | 17880268,1790099.9932709397,294,393,1,-106.375,38.375 4 | 17880282,2027699.9924406856,294,392,1,-106.375,38.125 5 | 17880284,1539000.0578630047,294,392,1,-106.375,38.125 6 | 17880298,603000.0084462471,294,392,1,-106.375,38.125 7 | 17880830,6862561.165398135,293,393,3,-106.625,38.375 8 | 17880830,966715.7213738186,294,392,3,-106.375,38.125 9 | 17880830,17414823.2660081,294,393,3,-106.375,38.375 10 | 17880832,912730.7286842655,294,392,2,-106.375,38.125 11 | 17880832,7220569.2090924345,294,393,2,-106.375,38.375 12 | 17880834,357239.48561025114,294,392,2,-106.375,38.125 13 | 17880834,2158260.5324247293,294,393,2,-106.375,38.375 14 | 17880836,563974.582995896,294,392,2,-106.375,38.125 15 | 17880836,3354625.4548501438,294,393,2,-106.375,38.375 16 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_nldas.csv: -------------------------------------------------------------------------------- 1 | FEATUREID,area_sqm,lon_index,lat_index,npoints 2 | 17880258,0,148,105,1 3 | 17880268,1790100.0050404102,148,106,1 4 | 17880282,2027699.7955933737,148,105,1 5 | 17880284,1538999.6149864085,148,105,1 6 | 17880298,602999.8625117091,148,105,1 7 | 17880830,1022501.5475447015,148,105,3 8 | 17880830,17630312.052612178,148,106,3 9 | 17880830,6591285.597839415,147,106,3 10 | 17880832,955363.1123615956,148,105,2 11 | 17880832,7177937.130276213,148,106,2 12 | 17880834,390518.92356583173,148,105,2 13 | 17880834,2124981.0302708475,148,106,2 14 | 17880836,620753.5064074501,148,105,2 15 | 17880836,3297846.288935756,148,106,2 16 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/weight_polygons.csv: -------------------------------------------------------------------------------- 1 | rivid,area_sqm,lon_index,lat_index,npoints,lsm_grid_lon,lsm_grid_lat 2 | 17880258,0,782,139,1,15.625,-25.125 3 | 17880268,0,782,139,1,15.625,-25.125 4 | 17880282,0,782,139,1,15.625,-25.125 5 | 17880284,0,782,139,1,15.625,-25.125 6 | 17880298,0,782,139,1,15.625,-25.125 7 | 17880830,0,782,139,1,15.625,-25.125 8 | 17880832,0,782,139,1,15.625,-25.125 9 | 17880834,0,782,139,1,15.625,-25.125 10 | 17880836,0,782,139,1,15.625,-25.125 11 | -------------------------------------------------------------------------------- /tests/compare/gis/x-x/x.csv: -------------------------------------------------------------------------------- 1 | 0.3 2 | 0.3 3 | 0.3 4 | 0.3 5 | 0.3 6 | 0.3 7 | 0.3 8 | 0.3 9 | 0.3 10 | -------------------------------------------------------------------------------- /tests/compare/goodness_of_fit_obs_sim.csv: -------------------------------------------------------------------------------- 1 | 10, 7 2 | 20, 6 3 | 7, 8 4 | 19, 19 5 | 100, 50 -------------------------------------------------------------------------------- /tests/compare/goodness_of_fit_obs_sim.txt: -------------------------------------------------------------------------------- 1 | Percent Bias: -42.3077 2 | Absolute Percent Bias: 43.5897 3 | Root Mean Squared Error: 23.2637 4 | Mean Absolute Error: 13.6000 5 | Bias: -13.2 6 | Nash Sutcliffe efficiency coefficient: 0.5522 7 | Likelihood: 0.1066 8 | correlation coefficient: 0.9658 9 | index of agreement: 0.8054 10 | Kling-Gupta Efficiency: 0.3285 11 | -------------------------------------------------------------------------------- /tests/compare/inflow/Qout_erai_t511_3hr_20030121to20030122.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/Qout_erai_t511_3hr_20030121to20030122.nc -------------------------------------------------------------------------------- /tests/compare/inflow/Qout_erai_t511_3hr_20030121to20030122_init.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/Qout_erai_t511_3hr_20030121to20030122_init.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_cmip5_cmip5_24hr_20010101to20010103.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_cmip5_cmip5_24hr_20010101to20010103.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era5_era5_3hr_20190101to20190101.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era5_era5_3hr_20190101to20190101.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_0.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_0.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_1.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_1.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_2.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_2.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_3.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_3.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_4.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_4.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_5.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_5.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_6.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_6.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_7.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_7.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_8.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_8.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_9.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_era_20cm_t159_3hr_20000129to20000130_9.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_erai_t255_3hr_20140820to20140821.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_erai_t255_3hr_20140820to20140821.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_erai_t511_24hr_19990109to19990110.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_erai_t511_24hr_19990109to19990110.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_erai_t511_3hr_20030121to20030122.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_erai_t511_3hr_20030121to20030122.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_met_office_joules_3hr_20080803to20080803.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_met_office_joules_3hr_20080803to20080803.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_nasa_gldas2_3hr_20101231to20101231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_nasa_gldas2_3hr_20101231to20101231.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_nasa_lis_3hr_20110121to20110121.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_nasa_lis_3hr_20110121to20110121.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_nasa_nldas_3hr_20030121to20030121.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_nasa_nldas_3hr_20030121to20030121.nc -------------------------------------------------------------------------------- /tests/compare/inflow/m3_riv_bas_wrf_wrf_1hr_20080601to20080601.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/inflow/m3_riv_bas_wrf_wrf_1hr_20080601to20080601.nc -------------------------------------------------------------------------------- /tests/compare/inflow/qinit_erai_t511_3hr_20030121to20030122.csv: -------------------------------------------------------------------------------- 1 | 0.0 2 | 7.04012348477e-42 3 | 5.09207197011e-16 4 | 9.1273015812e-09 5 | 1.48859635729e-08 6 | 4.51591875006e-09 7 | 6.52369781459e-12 8 | 9.04366489872e-17 9 | 4.44216450415e-26 10 | -------------------------------------------------------------------------------- /tests/compare/new_timeseries_file.csv: -------------------------------------------------------------------------------- 1 | 0,0.10073 2 | 1,0.87412 3 | 2,1.80970 4 | 3,2.72844 5 | 4,3.83714 6 | 5,5.07205 7 | 6,6.37279 8 | 7,7.72781 9 | 8,9.08265 10 | 9,10.43755 11 | 10,12.04025 12 | 11,13.78219 13 | 12,15.36506 14 | 13,16.90097 15 | 14,18.36924 16 | 15,19.49250 17 | -------------------------------------------------------------------------------- /tests/compare/original_timeseries-notime.csv: -------------------------------------------------------------------------------- 1 | 0,0.100733 2 | 1,0.874117 3 | 2,1.8097 4 | 3,2.72844 5 | 4,3.83714 6 | 5,5.07205 7 | 6,6.37279 8 | 7,7.72781 9 | 8,9.08265 10 | 9,10.4376 11 | 10,12.0402 12 | 11,13.7822 13 | 12,15.3651 14 | 13,16.901 15 | 14,18.3692 16 | 15,19.4925 17 | -------------------------------------------------------------------------------- /tests/compare/original_timeseries.csv: -------------------------------------------------------------------------------- 1 | 1901/12/13 20:00,0.10073 2 | 1901/12/13 20:00,0.87412 3 | 1901/12/13 20:00,1.80970 4 | 1901/12/13 20:00,2.72844 5 | 1901/12/13 20:00,3.83714 6 | 1901/12/13 20:00,5.07205 7 | 1901/12/13 20:00,6.37279 8 | 1901/12/13 20:00,7.72781 9 | 1901/12/13 20:00,9.08265 10 | 1901/12/13 20:00,10.43755 11 | 1901/12/13 20:00,12.04025 12 | 1901/12/13 20:00,13.78219 13 | 1901/12/13 20:00,15.36506 14 | 1901/12/13 20:00,16.90097 15 | 1901/12/13 20:00,18.36922 16 | 1901/12/13 20:00,19.49250 17 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-GENERATE: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .false. 4 | BS_opt_dam = .false. 5 | BS_opt_for = .false. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 0 10 | IS_for_use = 0 11 | IS_max_up = 0 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 0 18 | IS_riv_tot = 0 19 | IS_strt_opt = 0 20 | Qout_file = 'Qout.nc' 21 | Vlat_file = 'm3_riv.nc' 22 | ZS_TauM = 1036800 23 | ZS_TauO = 0 24 | ZS_TauR = 86400 25 | ZS_dtF = 0 26 | ZS_dtM = 86400 27 | ZS_dtO = 0 28 | ZS_dtR = 900 29 | ZS_knorm_init = 0 30 | ZS_phifac = 0 31 | ZS_xnorm_init = 0 32 | k_file = 'k.csv' 33 | rapid_connect_file = 'rapid_connect.csv' 34 | riv_bas_id_file = 'riv_bas_id.csv' 35 | x_file = 'x.csv' 36 | / 37 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-GENERATE-NUMBERS: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .false. 4 | BS_opt_dam = .false. 5 | BS_opt_for = .false. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 0 10 | IS_for_use = 0 11 | IS_max_up = 3 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 4168 18 | IS_riv_tot = 4168 19 | IS_strt_opt = 0 20 | Qout_file = 'Qout.nc' 21 | Vlat_file = 'm3_nasa_lis_3hr_20020830.nc' 22 | ZS_TauM = 0 23 | ZS_TauO = 0 24 | ZS_TauR = 0 25 | ZS_dtF = 0 26 | ZS_dtM = 0 27 | ZS_dtO = 0 28 | ZS_dtR = 0 29 | ZS_knorm_init = 0 30 | ZS_phifac = 0 31 | ZS_xnorm_init = 0 32 | k_file = 'k.csv' 33 | rapid_connect_file = 'rapid_connect.csv' 34 | riv_bas_id_file = 'riv_bas_id.csv' 35 | x_file = 'x.csv' 36 | / 37 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-GENERATE-NUMBERS-FORCING: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .false. 4 | BS_opt_dam = .false. 5 | BS_opt_for = .true. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 4 10 | IS_for_use = 3 11 | IS_max_up = 3 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 4168 18 | IS_riv_tot = 4168 19 | IS_strt_opt = 0 20 | Qfor_file = 'qfor.csv' 21 | Qout_file = 'Qout.nc' 22 | Vlat_file = 'm3_nasa_lis_3hr_20020830.nc' 23 | ZS_TauM = 0 24 | ZS_TauO = 0 25 | ZS_TauR = 0 26 | ZS_dtF = 10800 27 | ZS_dtM = 0 28 | ZS_dtO = 0 29 | ZS_dtR = 0 30 | ZS_knorm_init = 0 31 | ZS_phifac = 0 32 | ZS_xnorm_init = 0 33 | for_tot_id_file = 'for_tot_id.csv' 34 | for_use_id_file = 'for_use_id.csv' 35 | k_file = 'k.csv' 36 | rapid_connect_file = 'rapid_connect.csv' 37 | riv_bas_id_file = 'riv_bas_id.csv' 38 | x_file = 'x.csv' 39 | / 40 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-GENERATE-TIME: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .false. 4 | BS_opt_dam = .false. 5 | BS_opt_for = .false. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 0 10 | IS_for_use = 0 11 | IS_max_up = 3 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 4168 18 | IS_riv_tot = 4168 19 | IS_strt_opt = 0 20 | Qout_file = 'Qout.nc' 21 | Vlat_file = 'm3_nasa_lis_3hr_20020830.nc' 22 | ZS_TauM = 172800 23 | ZS_TauO = 172800 24 | ZS_TauR = 10800 25 | ZS_dtF = 0 26 | ZS_dtM = 0 27 | ZS_dtO = 0 28 | ZS_dtR = 0 29 | ZS_knorm_init = 0 30 | ZS_phifac = 0 31 | ZS_xnorm_init = 0 32 | k_file = 'k.csv' 33 | rapid_connect_file = 'rapid_connect.csv' 34 | riv_bas_id_file = 'riv_bas_id.csv' 35 | x_file = 'x.csv' 36 | / 37 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-UPDATE: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .false. 4 | BS_opt_dam = .false. 5 | BS_opt_for = .false. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 0 10 | IS_for_use = 0 11 | IS_max_up = 4 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 67313 18 | IS_riv_tot = 67313 19 | IS_strt_opt = 0 20 | Qout_file = 'Qout.nc' 21 | Vlat_file = 'm3_riv.nc' 22 | ZS_TauM = 2678400 23 | ZS_TauO = 0 24 | ZS_TauR = 10800 25 | ZS_dtF = 0 26 | ZS_dtM = 10800 27 | ZS_dtO = 86400 28 | ZS_dtR = 900 29 | ZS_knorm_init = '0.3' 30 | ZS_phifac = 0 31 | ZS_xnorm_init = 3 32 | k_file = 'k.csv' 33 | rapid_connect_file = 'rapid_connect.csv' 34 | riv_bas_id_file = 'riv_bas_id.csv' 35 | x_file = 'x.csv' 36 | / 37 | -------------------------------------------------------------------------------- /tests/compare/rapid_namelist-UPDATE-INVALID: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | BS_opt_Qfinal = .false. 3 | BS_opt_Qinit = .true. 4 | BS_opt_dam = .true. 5 | BS_opt_for = .false. 6 | BS_opt_influence = .false. 7 | IS_dam_tot = 0 8 | IS_dam_use = 0 9 | IS_for_tot = 0 10 | IS_for_use = 0 11 | IS_max_up = 4 12 | IS_obs_tot = 0 13 | IS_obs_use = 0 14 | IS_opt_phi = 1 15 | IS_opt_routing = 1 16 | IS_opt_run = 1 17 | IS_riv_bas = 67313 18 | IS_riv_tot = 67313 19 | IS_strt_opt = 0 20 | Qout_file = 'Qout.nc' 21 | Vlat_file = 'm3_riv.nc' 22 | ZS_TauM = 2678400 23 | ZS_TauO = 0 24 | ZS_TauR = 10800 25 | ZS_dtF = 0 26 | ZS_dtM = 10800 27 | ZS_dtO = 86400 28 | ZS_dtR = 900 29 | ZS_knorm_init = '0.3' 30 | ZS_phifac = 0 31 | ZS_xnorm_init = 3 32 | k_file = 'k.csv' 33 | rapid_connect_file = 'rapid_connect.csv' 34 | riv_bas_id_file = 'riv_bas_id.csv' 35 | x_file = 'x.csv' 36 | / 37 | -------------------------------------------------------------------------------- /tests/compare/return_periods_erai_t511_24hr_19800101to19861231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/return_periods_erai_t511_24hr_19800101to19861231.nc -------------------------------------------------------------------------------- /tests/compare/return_periods_gumble_erai_t511_24hr_19800101to19861231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/return_periods_gumble_erai_t511_24hr_19800101to19861231.nc -------------------------------------------------------------------------------- /tests/compare/return_periods_log_pearson_erai_t511_24hr_19800101to19861231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/return_periods_log_pearson_erai_t511_24hr_19800101to19861231.nc -------------------------------------------------------------------------------- /tests/compare/seasonal_averages_erai_t511_24hr_19800101to19861231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/compare/seasonal_averages_erai_t511_24hr_19800101to19861231.nc -------------------------------------------------------------------------------- /tests/data/Qout_erai_t511_24hr_19800101to19861231.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/Qout_erai_t511_24hr_19800101to19861231.nc -------------------------------------------------------------------------------- /tests/data/Qout_merge_3hr.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/Qout_merge_3hr.nc -------------------------------------------------------------------------------- /tests/data/Qout_merge_6hr.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/Qout_merge_6hr.nc -------------------------------------------------------------------------------- /tests/data/for_tot_id.csv: -------------------------------------------------------------------------------- 1 | 70986 2 | 70990 3 | 71017 4 | 71029 5 | -------------------------------------------------------------------------------- /tests/data/for_use_id.csv: -------------------------------------------------------------------------------- 1 | 70990 2 | 71017 3 | 71029 4 | -------------------------------------------------------------------------------- /tests/data/gis/catchment.dbf: -------------------------------------------------------------------------------- 1 | tlOBJECTIDN 2 | GRIDCODEN 3 | FEATUREIDN 4 | SOURCEFCCAreaSqKMF Shape_LengF Shape_AreaF 54817 2645675 17880282NHDFlowline 2.02770000000e+000 8.76379636196e-002 2.08652003367e-004 54835 2645701 17880832NHDFlowline 8.13330000000e+000 2.10183015041e-001 8.37355563725e-004 54862 2645743 17880836NHDFlowline 3.91860000000e+000 1.51289304065e-001 4.03373793013e-004 54863 2645744 17880268NHDFlowline 1.79010000000e+000 9.79459629189e-002 1.84285307873e-004 54885 2645784 17880834NHDFlowline 2.51550000000e+000 1.20821472573e-001 2.58937069725e-004 55055 2657706 17880284NHDFlowline 1.53900000000e+000 6.93778023971e-002 1.58357642222e-004 55072 2657788 17880830NHDFlowline 2.52441000000e+001 3.21135901531e-001 2.59938490711e-003 55075 2657807 17880298NHDFlowline 6.03000000000e-001 4.55078504567e-002 6.20330190945e-005 -------------------------------------------------------------------------------- /tests/data/gis/catchment.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] -------------------------------------------------------------------------------- /tests/data/gis/catchment.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/catchment.shp -------------------------------------------------------------------------------- /tests/data/gis/catchment.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/catchment.shx -------------------------------------------------------------------------------- /tests/data/gis/flowline.dbf: -------------------------------------------------------------------------------- 1 | t ahCOMIDN 2 | LENGTHKMF StreamLeveNStreamOrdeNSLOPEF NextDownIDN 3 | DivergenceNHydroseqN 4 | FromNodeN 5 | ToNodeN 6 | 17880830 8.99100000000e+000 5 1 6.01221300000e-002 17880284 0 680042069 680048158 680022121 17880268 1.66000000000e+000 6 1 1.10192050000e-001 17880836 0 680042069 680048094 680022247 17880832 5.72500000000e+000 6 1 6.11336300000e-002 17880284 0 680042069 680048159 680022121 17880258 6.02000000000e-001 7 1 1.16570790000e-001 17880834 0 680042069 680048090 680022246 17880298 1.45900000000 5 3 0.02579163000 -1 0 680042069 680022126 680022138 17880284 1.95400000000e+000 5 2 2.46622300000e-002 17880298 0 680042069 680022121 680022126 17880282 2.54700000000e+000 6 2 4.93168400000e-002 17880298 0 680042069 680022120 680022126 17880836 2.09100000000e+000 6 1 6.44667600000e-002 17880282 0 680042069 680022247 680022120 17880834 4.10400000000e+000 7 1 7.21271900000e-002 17880282 0 680042069 680022246 680022120 -------------------------------------------------------------------------------- /tests/data/gis/flowline.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] -------------------------------------------------------------------------------- /tests/data/gis/flowline.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/flowline.shp -------------------------------------------------------------------------------- /tests/data/gis/flowline.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/flowline.shx -------------------------------------------------------------------------------- /tests/data/gis/jamaica_dem.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/jamaica_dem.tif -------------------------------------------------------------------------------- /tests/data/gis/m-s/catchment_subset.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/catchment_subset.dbf -------------------------------------------------------------------------------- /tests/data/gis/m-s/catchment_subset.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tests/data/gis/m-s/catchment_subset.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/catchment_subset.shp -------------------------------------------------------------------------------- /tests/data/gis/m-s/catchment_subset.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/catchment_subset.shx -------------------------------------------------------------------------------- /tests/data/gis/m-s/flowline_subset.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/flowline_subset.dbf -------------------------------------------------------------------------------- /tests/data/gis/m-s/flowline_subset.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tests/data/gis/m-s/flowline_subset.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/flowline_subset.shp -------------------------------------------------------------------------------- /tests/data/gis/m-s/flowline_subset.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/m-s/flowline_subset.shx -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.cpg: -------------------------------------------------------------------------------- 1 | UTF-8 -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.dbf -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.sbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.sbn -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.sbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.sbx -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.shp -------------------------------------------------------------------------------- /tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/mendocino_nhdplus_catchment/NHDCat_mendocino_watershed_hopland_sample.shx -------------------------------------------------------------------------------- /tests/data/gis/test_catchments.cpg: -------------------------------------------------------------------------------- 1 | ISO-8859-1 -------------------------------------------------------------------------------- /tests/data/gis/test_catchments.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/test_catchments.dbf -------------------------------------------------------------------------------- /tests/data/gis/test_catchments.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tests/data/gis/test_catchments.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/test_catchments.shp -------------------------------------------------------------------------------- /tests/data/gis/test_catchments.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/test_catchments.shx -------------------------------------------------------------------------------- /tests/data/gis/u-k/CatchmentSubset.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/CatchmentSubset.dbf -------------------------------------------------------------------------------- /tests/data/gis/u-k/CatchmentSubset.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tests/data/gis/u-k/CatchmentSubset.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/CatchmentSubset.shp -------------------------------------------------------------------------------- /tests/data/gis/u-k/CatchmentSubset.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/CatchmentSubset.shx -------------------------------------------------------------------------------- /tests/data/gis/u-k/DrainageLineSubset.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/DrainageLineSubset.dbf -------------------------------------------------------------------------------- /tests/data/gis/u-k/DrainageLineSubset.prj: -------------------------------------------------------------------------------- 1 | GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.017453292519943295]] -------------------------------------------------------------------------------- /tests/data/gis/u-k/DrainageLineSubset.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/DrainageLineSubset.shp -------------------------------------------------------------------------------- /tests/data/gis/u-k/DrainageLineSubset.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/u-k/DrainageLineSubset.shx -------------------------------------------------------------------------------- /tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.dbf -------------------------------------------------------------------------------- /tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.prj: -------------------------------------------------------------------------------- 1 | PROJCS["WGS_1984_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] -------------------------------------------------------------------------------- /tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.shp -------------------------------------------------------------------------------- /tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/gis/uk-no_intersect/Catchment_thames_drainID45390.shx -------------------------------------------------------------------------------- /tests/data/gis/uk-no_intersect/rapid_connect_45390.csv: -------------------------------------------------------------------------------- 1 | 45277,45335,0,0,0,0 2 | 45335,45390,3,45226,45227,45277 3 | 45379,45390,0,0,0,0 4 | 45390,45398,2,45335,45379,0 5 | 45398,45423,2,45390,45490,0 6 | -------------------------------------------------------------------------------- /tests/data/lsm_grids/cmip5/conus_c5.ccsm4_rcp60_r1i1p1.daily.total_runoff.2001_subset.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/cmip5/conus_c5.ccsm4_rcp60_r1i1p1.daily.total_runoff.2001_subset.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_0.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_0.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_1.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_1.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_2.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_2.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_3.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_3.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_4.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_4.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_5.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_5.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_6.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_6.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_7.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_7.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_8.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_8.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_9.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000129_9.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_0.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_0.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_1.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_1.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_2.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_2.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_3.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_3.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_4.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_4.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_5.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_5.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_6.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_6.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_7.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_7.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_8.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_8.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_9.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era20cm/era_20cm_runoff_20000130_9.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era5/era5runoff.25km.20190101_mendocino_subset.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era5/era5runoff.25km.20190101_mendocino_subset.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/era5_land_mask/era5_land-sea_mask_mendocino_subset.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/era5_land_mask/era5_land-sea_mask_mendocino_subset.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai24/19990109_erai_runoff.grib.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai24/19990109_erai_runoff.grib.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai24/19990110_erai_runoff.grib.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai24/19990110_erai_runoff.grib.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai3/20030121_erai3h_ro.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai3/20030121_erai3h_ro.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai3/20030122_erai3h_ro.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai3/20030122_erai3h_ro.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai3t255/era_interim_runoff_20140820.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai3t255/era_interim_runoff_20140820.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/erai3t255/era_interim_runoff_20140821.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/erai3t255/era_interim_runoff_20140821.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/gldas2/GLDAS_NOAH025_3H.A20101231.0000.020.nc4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/gldas2/GLDAS_NOAH025_3H.A20101231.0000.020.nc4 -------------------------------------------------------------------------------- /tests/data/lsm_grids/gldas2/GLDAS_NOAH025_3H.A20101231.0300.020.nc4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/gldas2/GLDAS_NOAH025_3H.A20101231.0300.020.nc4 -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_00.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_00.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_02.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_02.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_03.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_03.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_04.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_04.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_05.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_05.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_06.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_06.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_07.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_07.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_08.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_08.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_09.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_09.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_10.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_10.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_11.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_11.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_12.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_12.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_13.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_13.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_14.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_14.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_15.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_15.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_16.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_16.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_17.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_17.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_18.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_18.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_19.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_19.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_20.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_20.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_21.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_21.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_22.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_22.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/joules/ukv_test.runoff.20080803_23.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/joules/ukv_test.runoff.20080803_23.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210000.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210000.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210100.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210100.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210200.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210200.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210300.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210300.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210400.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210400.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210500.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210500.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210600.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210600.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210700.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210700.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210800.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210800.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101210900.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101210900.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211000.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211000.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211100.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211100.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211200.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211200.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211300.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211300.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211400.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211400.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211500.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211500.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211600.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211600.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211700.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211700.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211800.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211800.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101211900.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101211900.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101212000.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101212000.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101212100.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101212100.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101212200.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101212200.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis/LIS_HIST_201101212300.d01.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis/LIS_HIST_201101212300.d01.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/lis_land_mask/lisglobalmask557ww_mendocino_subset.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/lis_land_mask/lisglobalmask557ww_mendocino_subset.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2100.002.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2100.002.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2200.002.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2200.002.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2300.002.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/nldas2/NLDAS_VIC0125_H.A20030121.2300.002.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601010000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601010000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601020000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601020000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601030000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601030000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601040000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601040000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601050000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601050000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601060000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601060000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601070000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601070000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601080000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601080000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601090000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601090000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601100000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601100000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601110000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601110000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601120000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601120000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601130000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601130000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601140000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601140000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601150000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601150000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601160000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601160000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601170000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601170000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601180000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601180000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601190000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601190000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601200000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601200000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601210000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601210000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601220000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601220000.nc -------------------------------------------------------------------------------- /tests/data/lsm_grids/wrf/diffro_d02_20080601230000.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/lsm_grids/wrf/diffro_d02_20080601230000.nc -------------------------------------------------------------------------------- /tests/data/m3_nasa_lis_3hr_20020830.nc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erdc/RAPIDpy/7d6e92798c94d1532e9e7654f7c4f98f1d6d23a2/tests/data/m3_nasa_lis_3hr_20020830.nc -------------------------------------------------------------------------------- /tests/data/obs_flow.csv: -------------------------------------------------------------------------------- 1 | 31.60,31.60 2 | 30.30,30.30 3 | -------------------------------------------------------------------------------- /tests/data/obs_flow_1.csv: -------------------------------------------------------------------------------- 1 | 31.6,,,,,, 2 | 30.3,,,,,, 3 | -------------------------------------------------------------------------------- /tests/data/obs_reach_id.csv: -------------------------------------------------------------------------------- 1 | 75224 2 | 75224 3 | -------------------------------------------------------------------------------- /tests/data/obs_reach_id_1.csv: -------------------------------------------------------------------------------- 1 | 75224,,,,,, 2 | -------------------------------------------------------------------------------- /tests/data/qfor.csv: -------------------------------------------------------------------------------- 1 | 40, 4000, 400, 4 2 | 40, 4000, 400, 5 3 | 50, 4000, 700, 4 4 | 40, 7000, 400, 4 5 | 70, 4000, 400, 4 -------------------------------------------------------------------------------- /tests/data/rapid_gssha_connect_file1.csv: -------------------------------------------------------------------------------- 1 | link_id, node_id, baseflow, rapid_rivid 2 | 599, 1, 0.0, 75224 -------------------------------------------------------------------------------- /tests/data/rapid_gssha_connect_file3.csv: -------------------------------------------------------------------------------- 1 | link_id, node_id, baseflow, rapid_rivid 2 | 599, 1, 0.0, 75224 3 | 603, 1, 0.0, 75225 4 | 605, 1, 0.0, 75226 -------------------------------------------------------------------------------- /tests/data/rapid_namelist_invalid: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | !******************************************************************************* 3 | !Runtime options 4 | !******************************************************************************* 5 | BS_opt_Qinit =true 6 | !.false. --> no read initial flow .true. --> read initial flow 7 | 8 | BS_opt_Qfinal =.false 9 | !.false. --> no write final flow .true. --> write final flow 10 | 11 | BS_opt_dam =true 12 | !.false. --> no dam model used .true. --> dam model used 13 | 14 | BS_opt_for =.false. 15 | !.false. --> no forcing .true. --> forcing 16 | 17 | BS_opt_influence =.false. 18 | !.false. --> no output influence .true. --> output influence 19 | 20 | IS_opt_routing =1 21 | !1 --> matrix-based Muskingum 2 --> traditional Muskingum 22 | !3 --> Transbnd. matrix-based 23 | 24 | IS_opt_run =1 25 | !1 --> regular run 2 --> parameter optimization 26 | 27 | IS_opt_phi =1 28 | !1 --> phi1 2 --> phi2 29 | 30 | !******************************************************************************* 31 | !Temporal information 32 | !******************************************************************************* 33 | ZS_TauM =2678400 34 | !3600*24*31=2678400 35 | ZS_dtM =10800 36 | !3600*3=10800 37 | 38 | ZS_TauO =0 39 | !3600*24*366=31622400 40 | ZS_dtO =86400 41 | !3600*24 =86400 42 | 43 | ZS_TauR =10800 44 | !3600*3=10800 45 | ZS_dtR =900 46 | !60*15=900 47 | 48 | ZS_dtF =0 49 | !3600*24=86400 50 | 51 | !******************************************************************************* 52 | !Domain in which input data is available 53 | !******************************************************************************* 54 | IS_riv_tot =67313 55 | rapid_connect_file ='../../rapid/input/nfie_texas_gulf_region/rapid_connect.csv' 56 | IS_max_up =4 57 | Vlat_file = '../../rapid/input/nfie_texas_gulf_region/m3_riv_bas_erai_t255_3.nc' 58 | IS_riv_bas =67313 59 | riv_bas_id_file ='../../rapid/input/nfie_texas_gulf_region/riv_bas_id_huc_2_12.csv' 60 | 61 | !******************************************************************************* 62 | !Initial instantaneous flow file 63 | !******************************************************************************* 64 | Qinit_file ='' 65 | 66 | !******************************************************************************* 67 | !Final instantaneous flow file 68 | !******************************************************************************* 69 | Qfinal_file ='' 70 | 71 | !******************************************************************************* 72 | !Available dam data 73 | !******************************************************************************* 74 | IS_dam_tot =0 75 | dam_tot_id_file ='' 76 | 77 | !******************************************************************************* 78 | !Dam data used 79 | !******************************************************************************* 80 | IS_dam_use =0 81 | dam_use_id_file ='' 82 | 83 | !******************************************************************************* 84 | !Available forcing data 85 | !******************************************************************************* 86 | IS_for_tot =0 87 | for_tot_id_file ='' 88 | Qfor_file ='' 89 | 90 | !******************************************************************************* 91 | !Forcing data used as model runs 92 | !******************************************************************************* 93 | IS_for_use =0 94 | for_use_id_file ='' 95 | 96 | !******************************************************************************* 97 | !File where max (min) of absolute values of b (QoutR) are stored 98 | !******************************************************************************* 99 | babsmax_file ='' 100 | QoutRabsmin_file ='' 101 | QoutRabsmax_file ='' 102 | 103 | !******************************************************************************* 104 | !Regular model run 105 | !******************************************************************************* 106 | k_file ='../../rapid/input/nfie_texas_gulf_region/k.csv' 107 | x_file ='../../rapid/input/nfie_texas_gulf_region/x.csv' 108 | Qout_file = '../../rapid/output/nfie_texas_gulf_region/Qout_texas.nc' 109 | !------------------------------------------------------------------------------ 110 | !Routing parameters 111 | !------------------------------------------------------------------------------ 112 | kfac_file ='' 113 | xfac_file ='' 114 | ZS_knorm_init =0.3 115 | ZS_xnorm_init =3 116 | !------------------------------------------------------------------------------ 117 | !Gage observations 118 | !------------------------------------------------------------------------------ 119 | IS_obs_tot =0 120 | obs_tot_id_file ='' 121 | Qobs_file ='' 122 | Qobsbarrec_file ='' 123 | IS_obs_use =0 124 | obs_use_id_file ='' 125 | IS_strt_opt =0 126 | !1461*8+1=11689, 1461 full days pass, starts on first 3-hrly time step of 1462 127 | 128 | !******************************************************************************* 129 | !End name list 130 | !******************************************************************************* 131 | / 132 | -------------------------------------------------------------------------------- /tests/data/rapid_namelist_valid: -------------------------------------------------------------------------------- 1 | &NL_namelist 2 | !******************************************************************************* 3 | !Runtime options 4 | !******************************************************************************* 5 | BS_opt_Qinit =.false. 6 | !.false. --> no read initial flow .true. --> read initial flow 7 | 8 | BS_opt_Qfinal =.false. 9 | !.false. --> no write final flow .true. --> write final flow 10 | 11 | BS_opt_dam =.false. 12 | !.false. --> no dam model used .true. --> dam model used 13 | 14 | BS_opt_for =.false. 15 | !.false. --> no forcing .true. --> forcing 16 | 17 | BS_opt_influence =.false. 18 | !.false. --> no output influence .true. --> output influence 19 | 20 | IS_opt_routing =1 21 | !1 --> matrix-based Muskingum 2 --> traditional Muskingum 22 | !3 --> Transbnd. matrix-based 23 | 24 | IS_opt_run =1 25 | !1 --> regular run 2 --> parameter optimization 26 | 27 | IS_opt_phi =1 28 | !1 --> phi1 2 --> phi2 29 | 30 | !******************************************************************************* 31 | !Temporal information 32 | !******************************************************************************* 33 | ZS_TauM =2678400 34 | !3600*24*31=2678400 35 | ZS_dtM =10800 36 | !3600*3=10800 37 | 38 | ZS_TauO =0 39 | !3600*24*366=31622400 40 | ZS_dtO =86400 41 | !3600*24 =86400 42 | 43 | ZS_TauR =10800 44 | !3600*3=10800 45 | ZS_dtR =900 46 | !60*15=900 47 | 48 | ZS_dtF =0 49 | !3600*24=86400 50 | 51 | !******************************************************************************* 52 | !Domain in which input data is available 53 | !******************************************************************************* 54 | IS_riv_tot =67313 55 | rapid_connect_file ='../../rapid/input/nfie_texas_gulf_region/rapid_connect.csv' 56 | IS_max_up =4 57 | Vlat_file = '../../rapid/input/nfie_texas_gulf_region/m3_riv_bas_erai_t255_3.nc' 58 | IS_riv_bas =67313 59 | riv_bas_id_file ='../../rapid/input/nfie_texas_gulf_region/riv_bas_id_huc_2_12.csv' 60 | 61 | !******************************************************************************* 62 | !Initial instantaneous flow file 63 | !******************************************************************************* 64 | Qinit_file ='' 65 | 66 | !******************************************************************************* 67 | !Final instantaneous flow file 68 | !******************************************************************************* 69 | Qfinal_file ='' 70 | 71 | !******************************************************************************* 72 | !Available dam data 73 | !******************************************************************************* 74 | IS_dam_tot =0 75 | dam_tot_id_file ='' 76 | 77 | !******************************************************************************* 78 | !Dam data used 79 | !******************************************************************************* 80 | IS_dam_use =0 81 | dam_use_id_file ='' 82 | 83 | !******************************************************************************* 84 | !Available forcing data 85 | !******************************************************************************* 86 | IS_for_tot =0 87 | for_tot_id_file ='' 88 | Qfor_file ='' 89 | 90 | !******************************************************************************* 91 | !Forcing data used as model runs 92 | !******************************************************************************* 93 | IS_for_use =0 94 | for_use_id_file ='' 95 | 96 | !******************************************************************************* 97 | !File where max (min) of absolute values of b (QoutR) are stored 98 | !******************************************************************************* 99 | babsmax_file ='' 100 | QoutRabsmin_file ='' 101 | QoutRabsmax_file ='' 102 | 103 | !******************************************************************************* 104 | !Regular model run 105 | !******************************************************************************* 106 | k_file ='../../rapid/input/nfie_texas_gulf_region/k.csv' 107 | x_file ='../../rapid/input/nfie_texas_gulf_region/x.csv' 108 | Qout_file = '../../rapid/output/nfie_texas_gulf_region/Qout_texas.nc' 109 | !------------------------------------------------------------------------------ 110 | !Routing parameters 111 | !------------------------------------------------------------------------------ 112 | kfac_file ='' 113 | xfac_file ='' 114 | ZS_knorm_init =0.3 115 | ZS_xnorm_init =3 116 | !------------------------------------------------------------------------------ 117 | !Gage observations 118 | !------------------------------------------------------------------------------ 119 | IS_obs_tot =0 120 | obs_tot_id_file ='' 121 | Qobs_file ='' 122 | Qobsbarrec_file ='' 123 | IS_obs_use =0 124 | obs_use_id_file ='' 125 | IS_strt_opt =0 126 | !1461*8+1=11689, 1461 full days pass, starts on first 3-hrly time step of 1462 127 | 128 | !******************************************************************************* 129 | !End name list 130 | !******************************************************************************* 131 | / 132 | -------------------------------------------------------------------------------- /tests/data/usgs_gage_id_rivid.csv: -------------------------------------------------------------------------------- 1 | RIVID,USGS_SITE_NO 2 | 16039510,6463500 3 | 15954494,6639000 4 | 22105603,6646000 5 | -------------------------------------------------------------------------------- /tests/output/.gitignore: -------------------------------------------------------------------------------- 1 | #ignore all 2 | * 3 | #skip this file 4 | !.gitignore 5 | --------------------------------------------------------------------------------