scaling surface and subsurface flow processes in ... · on model resolution; and (iii) apply the...
TRANSCRIPT
SCALING SURFACE AND SUBSURFACE FLOW
PROCESSES IN HYDROLOGIC MODELS
A Dissertation Presented
By
Yuanhao Zhao
to
The Department of Civil and Environmental Engineering
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
in the field of
Civil Engineering
Northeastern University
Boston, Massachusetts
May, 2019
ii
ABSTRACT
Hydrologic models have improved significantly over the past 50 years, transforming from
empirically-based and spatially-lumped to physically-based and distributed. In light of
these advances, new challenges such as scaling have emerged. Although challenges related
to scaling in hydrology have been investigated for decades, they still persists throughout
the measurement and modeling communities. This dissertation investigates hydraulic
scaling in hydrologic models with three specific objectives: (i) quantify how simulated
flowpath and runoff response timing characteristics varying with spatial model resolution;
(ii) develop an approach for estimating scale-dependent routing process parameters based
on model resolution; and (iii) apply the scaling approach in a multi-scale model calibration
application.
To overcome scaling effects on simulated streamflow dynamics, an upscaling
framework is developed to minimize the surface and subsurface travel time differences
between conceptual model representations and distributed topographic-based methods.
Surface roughness and hydraulic conductivity are modified to increase and/or decrease the
surface and subsurface flow velocities and associated travel times. Results show that the
scaling approach leads to streamflow responses from coarse model resolutions that are
consistent with responses from fine model resolutions. The scaling method is used in a
model calibration application. Surface and subsurface routing parameters are upscaled to a
iii
coarse model resolution and calibrated using runoff derived from USGS streamflow
measurements. The calibrated parameters are then downscaled to a fine model resolution
and the resulting fine scale model performance are verified.
The scaling approach accounts for changes in flowpath processes and adjusts model
parameters such that the magnitude and timing of hydrologic responses from coarse model
resolutions are consistent with fine scale models. An application of this scaling approach
is in using coarser scale models for calibration and uncertainty analyses to decrease
computational demands. The study reveals non-linear relationships between model
resolution, topographic and surface/subsurface routing characteristics in the Ohio River
Basin. The scaling approach and findings provide insights for improving the representation
of flowpath processes in Earth System Models or other large-scale modeling applications.
iv
DEDICATION
To My Family,
especially my daughter Mia.
v
ACKNOWLEDGEMENTS
So many people I need to appreciate for their support on this long journey of my Ph.D.
study. I would like to express my deep gratitude to my advisor, Professor R. Edward
Beighley, for his patient guidance and useful critiques of this research work. I really
appreciate he gave me the opportunity to pursue my doctor degree. His mentorship was
essential for me to complete this research.
I would also like to thank my committee members for their thoughtful feedback and
valuable advice: Professor Auroop Ganguly, Professor Amy Mueller and Professor Aron
Stubbins. This dissertation cannot be finished without their suggestions.
I would also like to extend my thanks to my current and previous colleagues:
Dongmei Feng, Roozbeh Raoufi, Yeosang Yoon, and Cassandra Nickles. It was a great joy
to work with them and I thank to them for their help on my research.
Finally, I would like to acknowledge with gratitude, the support and love of my
family: my parents, Caihua Ju and Baoshun Zhao, you are my backbone and you always
have faith in me; my lovely and beautiful wife, Jun Gu, for your accompany on my Ph.D.
journey and many delightful moments.
vi
TABLE OF CONTENTS
ABSTRACT ....................................................................................................................... ii
DEDICATION.................................................................................................................. iv
ACKNOWLEDGEMENTS ............................................................................................. v
TABLE OF CONTENTS ................................................................................................ vi
LIST OF TABLES ............................................................................................................ x
LIST OF FIGURES ........................................................................................................ xii
1. INTRODUCTION..................................................................................................... 1
1.1. Background ....................................................................................................... 1
1.2. Research Questions ........................................................................................... 4
2. UPSCALING SURFACE RUNOFF PROCESSES IN LARGE SCALE
HYDROLOGIC MODELS: APPLICATION TO THE OHIO RIVER BASIN ........ 6
Abstract .......................................................................................................................... 6
2.1. Introduction ....................................................................................................... 7
2.2. Methods ............................................................................................................ 10
2.2.1. Study Site .................................................................................................. 10
2.2.2. Hydrologic Model ..................................................................................... 11
2.2.3. Scaling of Catchments and Streams .......................................................... 14
vii
2.2.4. Runoff Flowpaths and Travel Times ........................................................ 18
2.2.5. Scaling of Surface Roughness .................................................................. 21
2.3. Results and Discussion .................................................................................... 25
2.3.1. Beta Distribution for Travel Time ............................................................ 25
2.3.2. Travel Time CDF Matching Approach ..................................................... 26
2.3.3. Synthetic Runoff Experiment without Parameter Scaling ........................ 29
2.3.4. Synthetic Runoff Experiment with Parameter Scaling ............................. 31
2.3.5. Effect of Pixel Scale Drainage Pattern...................................................... 34
2.3.6. Refined Parameter Scaling ........................................................................ 37
2.4. Conclusions ...................................................................................................... 41
3. UPSCALING SURFACE RUNOFF ROUGHNESS USING SPATIALLY
DISTRIBUTED VELOCITIES IN THE TRAVEL TIME MATCHING (TTM)
METHOD ........................................................................................................................ 44
Abstract ........................................................................................................................ 44
3.1. Introduction ..................................................................................................... 45
3.2. Methodology .................................................................................................... 47
3.2.1. Study Site .................................................................................................. 47
3.2.2. Hillslope River Routing (HRR) Model ..................................................... 49
3.2.3. Simulated Travel Time and Velocity from Fine Scale Model .................. 49
3.2.4. Travel Time Matching .............................................................................. 55
3.3. Results & Discussion ....................................................................................... 57
3.3.1. Travel Time Grids ..................................................................................... 58
3.3.2. Simulated Stream Flow without TTM Method ......................................... 59
viii
3.3.3. Simulated Streamflow after TTM Method ............................................... 60
3.3.4. Uniform Factor.......................................................................................... 66
3.3.5. Scaled Surface Roughness ........................................................................ 70
3.4. Conclusion ....................................................................................................... 74
4. SCALING SURFACE AND SUBSURFACE ROUTING PROCESSES IN
HYDROLOGIC MODELS ............................................................................................ 76
Abstract ........................................................................................................................ 76
4.1. Introduction ..................................................................................................... 78
4.2. Methodology .................................................................................................... 80
4.2.1. Travel Time Matching Framework ........................................................... 82
4.2.2. Travel Time Distributions for Subsurface Runoff .................................... 82
4.2.3. Matching Travel Times by Adjusting Hydraulic Conductivity ................ 84
4.2.4. Runoff Generation .................................................................................... 86
4.2.5. Model Calibration ..................................................................................... 87
4.3. Results and Discussion .................................................................................... 88
4.3.1. Travel Time Matching for Subsurface Runoff.......................................... 88
4.3.2. Ohio River Basin Runoff .......................................................................... 92
4.3.3. TTM Method for both Surface and Subsurface Flow ............................... 94
4.3.4. Calibration Using USGS Streamflow ....................................................... 98
4.4. Conclusion ..................................................................................................... 105
5. SUMMARY AND FUTURE WORK .................................................................. 107
5.1. Summary ........................................................................................................ 107
5.2. Limitations ..................................................................................................... 110
ix
5.3. Future Work .................................................................................................. 112
REFERENCE ................................................................................................................ 115
APPENDIX .................................................................................................................... 135
A.1 USGS Gages in Ohio River Basin ..................................................................... 135
A.2 Sample Code ....................................................................................................... 139
x
LIST OF TABLES
Table 2.1: Catchment and flowpath summary statistics for each model scale. ................ 16
Table 2.2: Mean surface roughness adjustment factor (ks,i) for each ∆X segment along the
hillslope for each model scale. .......................................................................................... 28
Table 2.3. Mean percent change in the time-to-peak (∆Tp) and peak discharge (∆Qp) from
all gauge locations for each model scale compared to the 1 km2 model scale for the initial
setup, after CDF scaling and after the combination of both CDF scaling and uniform
correction coefficient (λ); values in parentheses represent the range in percent changes
between the different gauge locations. .............................................................................. 33
Table 3. 1. Difference in peak discharge from the outlet of Ohio River Basin and NSE for
all model resolution during the calibration process. ......................................................... 69
Table 4. 1. Average Nash–Sutcliffe efficiency coefficient (NSE), root mean square error
(RMSE), and peak error (Ep) for six U.S. Geological Survey gauges from the different
model resolutions with and without application of Travel Time Matching (TTM). ······· 96
Table 4.2. Combinations of surface (λs) and subsurface (λh) uniform scale factors at
different model resolutions with the optimal Nash–Sutcliffe efficiency coefficient (NSE)
and root mean square error (RMSE). ................................................................................ 98
Table 4.3. Comparison of average root mean square error (RMSE) and model run time for
selected U.S. Geological Survey gauges for the different model resolutions. .................. 99
xi
Table 4.4. Root mean square error (RMSE) for five selected gauges at 320 km2 model
resolution and a comparison of the same gauges at 1 km2 with and without the same
calibrated parameters. ..................................................................................................... 103
Table A. 1. Detailed information about the 6 USGS gages in Ohio River Basin used in
TTM method. ······················································································ 135
Table A. 2. Information for 90 USGS gauges used in the generation of runoff map for Ohio
River Basin...................................................................................................................... 136
xii
LIST OF FIGURES
Figure 1.1 Hydrologic processes and characteristics at varied temporal and spatial scales.
Adapted from Bloschl and Sivapalan (1995) ...................................................................... 2
Figure 2.1: Ohio River Basin with selected USGS stream gauge locations and stream
networks based on three different threshold areas (AT = 100, 1,000 and 10,000 km2). ... 11
Figure 2.2: Landscape partitioning in the Hillslope River Routing model: (a) basin-wide
river network, (b) individual river reach and catchment unit, (c) catchment split into two
planes, (d) conceptual model for plane and channel routing showing potential length
discretization, and (e) plane similarity assumption in HRR (i.e., only one representative
plane segment simulated for each model unit with lateral runoff applied uniformly along
both sides; note only one side shown here). ..................................................................... 13
Figure 2.3: Comparison between the longest flowpaths and river networks at each model
scale: (a) one 10,000 km2 scale catchment with individual 3,200; 1,000; and 320 km2 scale
catchment located along its longest flowpaths; (b) 320 km2 catchment with 100; 32; and 10
km2 catchments within; and (c) 10 km2 catchment with 3.2 and 1 km2 catchments within.
Note, see shaded area in Figure 1 for reference to the entire the Ohio River Basin ......... 15
xiii
Figure 2.4: Mean longest flowpath (Lm) and plane lengths (Lp) for all model units for
different model scales, and comparison between threshold area (AT) and mean model unit
area (Am). .......................................................................................................................... 16
Figure 2.5: Travel time Cumulative Distributions Function (CDFs) based on all individual
90-m grid cell travel times within a given catchment, and the Beta distribution
approximated using the mean and standard deviation of grid cell travel times in four
difference catchments for models scales of: (a) 10; (b) 100; (c) 1,000; (d). 10,000 km2. 19
Figure 2.6: Comparison between travel time CDFs based on the Beta distribution
approximated from individual 90-m grid cell travel times, uniform plane assumption in
HRR and CDF matching results in four difference catchments for models scales of: (a) 10;
(b) 100; (c) 1,000; (d) 10,000 km2. ................................................................................... 25
Figure 2.7: Simulated hydrographs at the outlet of the Ohio basin for 9 model scales based
on synthetic runoff experiment (i.e., uniformly distributed runoff, 1 cm in 24 hours) using
identical roughness values for all model scales. ............................................................... 31
Figure 2.8: Simulated hydrographs at the outlet of the Ohio basin for 8 model scales using
the: dynamic travel time estimation method: (a) without and (b) with the uniform roughness
coefficient correction. ....................................................................................................... 34
Figure 2.9: Area accumulation (a,c,e) for three catchments (b,d,f) for a 10 km2 model scale;
two headwater catchments (a-d) and one interbasin (e-f). ................................................ 36
Figure 2.10: Mean area accumulation ratios (γ) for each model scales (AT). ................... 39
Figure 2.11: Comparison between Correction coefficient (λ) and the average plane length
(Lp) for different model scales. ......................................................................................... 40
xiv
Figure 3.1. Illustration of model unit partitioning for Hillslope River Routing model for
model resolution of 1000 km2: (a) river network with USGS gauges represented in
triangular shape; (b) selected model unit; (c) catchment plane separation; (d) conceptual
model for hillslope and channel routing; (e) hillslope routing similarity. ........................ 48
Figure 3.2. Example of the relationship between average hillslope velocity and the length
of the plane from the sample unit at reference model resolution for: (a) constant (8.66%)
and (b) varied (10.59%) hillslope scenarios. .................................................................... 52
Figure 3.3. Approximation of channel width based on accumulated drainage area in Ohio
River Basin derived from (Allen and Pavelsky, 2015) ..................................................... 54
Figure 3.4. A zoom-in view of the travel time for a selected area in the Ohio River Basin
for four model resolutions and the varied slope scenario. ................................................ 59
Figure 3.5. Simulated discharge based on the 2-year 24 hour NRCS type II rainfall
synthetic experiment on Ohio River Basin for 2 scenarios: (a) constant and (b) varied
hillslope and channel slope without application of ITTM method ................................... 60
Figure 3.6. Simulated discharge after modification of surface roughness using ITTM
method for (a) uniform and (b) varied slope conditions at different model resolutions, and
the average surface roughness modification factor of (c) uniform and (d) varied slope for
different model resolutions. .............................................................................................. 62
Figure 3.7. Comparison of landscape-based and model based-travel time from 1 model unit
at 1km2 .............................................................................................................................. 63
xv
Figure 3.8. (a). Selected catchment at 3,200 km2 model resolution and the model units from
1km2 lay under the catchment and (b) the hydrographs for the same outlet of the catchment
from 3,200 and 1 km2 with varied situations of modified surface roughness................... 65
Figure 3.9. Hydrographs with the application of uniform scale factor for (a). uniform and
(b). varied slope scenarios for different model resolutions. .............................................. 67
Figure 3.10 Mean surface roughness from all model units at different model resolutions
after applying the TTM method for (a) uniform and (b) varied slope scenarios. ............. 71
Figure 3.11. Relationships for ratio of flowpath lengths (Rp) with the final surface
roughness (N’) and ratios of surface runoff velocity (RV) and surface roughness (RN). ... 72
Figure 3.12. Distribution and density of surface roughness and model flowpath length at
different model resolutions after applying the TTM method for the uniform (a,c,e) and
varied (b,d,f) slope scenario. Color indicates the density of the surface roughness. ........ 73
Figure 4.1. The Ohio River Basin and landscape partitioning in the hillslope river routing
model. (a) A river network of 1000 km2 with six selected U.S. Geological Survey gauges.
(b) One model unit (catchment). (c) A catchment split by a channel. (d) A conceptual
illustration of hillslope and channel routing. .................................................................... 81
Figure 4.2. Hydrographs from the outlet of the Ohio River Basin with synthetic subsurface
runoff at 1000 km2 for (a) before and (b) after apply the TTM framework. ..................... 89
Figure 4.3. The mean modified hydraulic conductivity (Kh) along the hillslope for each
model resolution................................................................................................................ 90
Figure 4.4. (a) uniform scale factors, (b) mean model unit scaled hydraulic conductivity,
and (c) simulated discharges for all model resolutions. .................................................... 91
xvi
Figure 4.5. U.S. Geological Survey (USGS) tributary gauges and their contributing land
area (90) selected to derive runoff throughout the Ohio River Basin. .............................. 92
Figure 4.6. Separation of surface and subsurface flow for the Ohio River Basin using
recursive digital filter. ....................................................................................................... 93
Figure 4.7. Simulated flow at the outlet of the Ohio River Basin at various model
resolutions using a U.S. Geological Survey Ohio River Basin runoff (a and c) without and
(b and d) with the travel time matching method. .............................................................. 95
Figure 4.8. Impacts of surface (λs) and subsurface (λh) uniform scale factors on peak
discharge error, Nash–Sutcliffe efficiency coefficient (NSE), and root mean square error
(RMSE) for the 3200 km2 model resolution. .................................................................... 97
Figure 4.9. Percent change in root mean square error (RMSE) and model run time from the
different model resolutions. .............................................................................................. 99
Figure 4.10 Calibration of the hillslope river routing model at 320 km2 for all five selected
U.S. Geological Survey gauges based on average root mean square error (RMSE) for three
parameters: (a) a uniform parameter for hydraulic conductivity (fh), (b) a uniform
parameter for surface roughness (fs), and (c) a uniform parameter for channel roughness
(fn). .................................................................................................................................. 101
Figure 4.11. (a) Four-dimensional and (b–d) three-dimensional plots of the root mean
square error from various ranges of three parameters during the HRR calibration process
after application of the travel time matching method. .................................................... 104
xvii
Figure 4.12. Estimated (a) surface roughness (N**) and (b) hydraulic conductivity (K**)
based on the TTM framework and calibration to USGS streamflow for different model
resolutions. ...................................................................................................................... 105
1
1. INTRODUCTION
1.1. Background
With advances in computational capability, hydrologic models have improved significantly
in the past 50 years (Bierkens, 2015; Farmer and Vogel, 2016; Yamazaki and Trigg, 2016),
transforming from lump and empirical solutions to physical based distributed models
(Sivapalan, 2018). Hydrologic modeling applications have also expanded in terms of
spatial extent from induvial catchments and basins to continental and global scale and
integrated with other disciplines such as atmospheric and oceanographic modeling. New
challenges are emerging in this process (Fatichi et al., 2016; Tan et al., 2015). One example
is “scaling” which represents how heterogeneous physical properties and processes
describing the hydrologic cycle vary based on the spatial resolution and/or temporal period
taken into account (Bergstrom and Graham, 1998; Beven, 1995; Bloschl and Sivapalan,
1995; Kitanidis, 2015; Merz et al., 2009; Skoien et al., 2003; Wood et al., 1990). Figure
1.1 shows numerous hydrologic processes across different temporal and spatial scales. For
example, surface and subsurface stormflow are shown to operate over similar length scales
ranging from roughly 10 m to 1 km, while channel flow length scales range from 1’s to
1000’s km. These processes also operate at different time scales ranging from min’s to
day’s. However, in many hydrologic models, the spatial and temporal model resolutions,
for which these processes are conceptualized, are not sufficient to differentiate these
dominant process components. This results in processes (e.g., overland flow) not being
included or forced to operate at much longer length scales (e.g., overland flow length in
2
model accounting for a combination of overland flow channel flow). In the case of
overland flow, surface roughness in the model would need to be altered (i.e., scaled) to
account for the aggregate flow processes.
Figure 1.1 Hydrologic processes and characteristics at varied temporal and spatial scales.
Adapted from Bloschl and Sivapalan (1995)
Common techniques to deal with scaling are downscaling and upscaling. The
purpose of downscaling (i.e., disaggregating) is to transfer the information from coarser to
finer scale. Upscaling (i.e., aggregating), in contrast, is to transfer the information from
finer to coarser scale. Numerous studies have leveraged advanced computational power
3
and downscaling techniques to parameterize and force hydrologic models operating at fine
scales (e.g., 1’s to 10’s meters). However, in applications using ensembles (i.e., multi:
models, parameters, forcings, initial conditions), including uncertainty, or requiring
calibration, it is debatable whether current computational resources are sufficient or will
be in the near future. Upscaling is an effective technique to increase computational
efficiency, which is especially useful for simulating large spatial scales: continental to
global (Kitanidis, 2015; Pau et al., 2016; Rakovec et al., 2016).
Progress has been made to understand and overcome scaling challenges in
hydrologic modeling. Many studies have focused on downscaling forcing data such as
precipitation or evapotranspiration (Charles et al., 2004; Stoll et al., 2011; Wang et al.,
2013). Advancements in satellite remote sensing have provided many new forcing data
sources for downscaling applications. For example, numerous studies present methods to
downscale Tropical Rainfall Measurement Mission (TRMM) precipitation for use in
hydrologic models (Bieniek et al., 2016; Chen et al., 2015). Land cover and soil properties,
which are vital in hydrologic modeling, can also be measured using remote sensing. Some
examples are the soil moisture from Soil Moisture Active/Passive Mission (SMAP) and
land cover characteristics from Moderate Resolution Imaging Spectroradiometer Mission
(MODIS) (De Jeu et al., 2014; Friedl et al., 2002; Liu et al., 2011; Pan et al., 2016).
However, few studies investigate the effect of model resolution (e.g., grid size) on scaling,
or overcome the scaling effects based on runoff generation or flowpath processes.
In general, model resolution (i.e., spatial scale) affects simulated hydrologic
response because the resolution imparts unique flowpath characteristics. For example,
Molnar and Julien (2000) show how calibrated parameters related to the surface runoff
4
vary with model grid cell size to match the peak discharge from the observed flow. They
found that the model requires overland and channel roughness to increase average 50% as
grid-cell size increases 100%. Casey et al. (2015) found that spatial model resolution
affects peak flow and time to peak significantly and propose guidelines for choosing
optimal subdivision spatial scale in the rainfall-runoff modeling. They suggested to
subdivide a catchment if mean subarea curve numbers differ by more than five (e.g.,
subareas with mean CN’s 65 and 71 should be subdivided). However, no methods have
been proposed to overcome spatial scaling when parameterizing semi-distributed
hydrologic models (i.e., sub-catchments or hydrologic response units used to define
computational units). This dissertation addresses that gap and provides a framework for
scaling surface and subsurface routing process model parameters applicable to any spatial
model resolution such that simulated hydrologic responses (i.e., streamflow) are scale
independent (i.e., consistent responses regardless of model scale). Moreover, the
dissertation will answer the following research questions.
1.2. Research Questions
The three primary Dissertation research questions are listed below:
1) How do simulated flowpath characteristics and runoff response timings change with
spatial model resolution?
2) Can representative travel time characteristics be used to estimate scale-dependent
process parameters in semi-distributed hydrologic models?
3) Can scaling be used to transfer calibrated model parameters across model resolutions?
5
Questions 1 and 2 are answered in Chapters 2 and 3. Question 3 is answered in
Chapter 4. Chapter 5 summarizes the answers to all questions and provides
recommendations for future research. Chapters 2-4 are adapted from independent journal
manuscripts.
6
2. UPSCALING SURFACE RUNOFF PROCESSES IN
LARGE SCALE HYDROLOGIC MODELS:
APPLICATION TO THE OHIO RIVER BASIN
Abstract
The objective of this research is to upscale surface runoff routing processes in larger scale
hydrologic models while maintaining event hydrograph peak discharge and timing
characteristics. A scaling method is developed and applied in the Ohio River Basin using
a synthetic 24-hr runoff experiment. The method combines statistical and physically-based
techniques. Cumulative Probability Distributions (CDFs) for surface flowpath travel times
based on 90-m topographic data and conceptualized model units representing individual
catchments in the Hillslope River Routing (HRR) model are equated by adjusting surface
roughness along HRR hillslopes. The CDF travel time for individual catchments based on
90-m topographic data are approximated using the beta distribution to facilitate
applications for large watersheds. Nine model scales are considered: 1, 3.2, 10, 32, 100,
320, 1000, 3200 and 10000 km2, where model scale represents the threshold area used to
define the underlying river network and catchment boundaries. In this study, the reference
model scale is 1 km2. Simulated hydrographs at the outlet of the Ohio River Basin for the
eight coarser model scales have peak discharge and time-to-peak discharge values that are
nearly identical to the reference scale model. To match hydrograph characteristics from
model scales ranging four orders of magnitude, surface roughness values along the
hillslope flowpaths are adjusted by, on average, -85% to +94%, where the positive values
are for the 3.2 km2 scale and the largest reductions are for the 10,000 km2 scale.
7
2.1. Introduction
Scaling is the transfer of information across space and time scales (Bloschl and Sivapalan,
1995). Although challenges related to scaling in hydrology have been investigated for
decades (Klemes, 1983; Sivapalan et al., 1987), scaling issues still persist throughout the
measurement and modeling communities (Wood et al., 2011). In general, more studies
have focused on space scale (Atkinson and Tate, 2000) as compared to temporal scale
(Koutsoyiannis, 2005), with even fewer investigating the coupled interactions of both space
and time scales (Ogden and Julien, 1993).
Scale can be categorized as: observation, process or model. Examples of
observation scale include point measurements of rainfall over hours or days, cross-
sectional measurements of streamflow (instantaneous or daily average), and topography in
the form of digital elevation models (DEMs) with different cell sizes (e.g., 30 or 90 m)
(Molnar and Julien, 2000). Process scale refers to the physical length and time over which
an individual hydrological process occurs. For example, overland flow travels meters to
kilometers in seconds to hours and is subjected to surface roughness features ranging from
millimeters to centimeters. Ideally, the process and observation scales should be similar
(Bloschl and Sivapalan, 1995). Model scale is the length and time steps used in a
hydrological model to discretize relevant processes, obtain input parameters/forcings, and
perform numerical solutions. Model scale can be somewhat arbitrary with the modeler
often determining the scale based on the balance between computational demands and
available input data. General techniques to deal with the scale challenges are upscaling and
downscaling (Sivapalan et al., 2003), which provide methods for transferring information
from one scale to a larger or smaller scale, respectively (Gupta et al., 2012).
8
Bloschl and Sivapalan (1995) proposed that the challenge in scaling is the
heterogeneity and variability of nature catchments over space and time. Numerous studies
have investigated strategies to overcome the scaling challenge. Schaake et al. (1996)
developed a lumped physically-based model using combined physical and statistical
methods to deal with spatial and temporal scales. Bachmair and Weiler (2014) investigated
interactions of runoff generation processes at different space scales and found that
hillslopes should not be considered as homogeneous units. Kim and Ivanov (2015)
developed a dynamic downscaling framework to apply climate forcings at the regional
scale for estimating surface and subsurface flow in ungauged basins. Examples of key
studies investigating the effect of grid cell size or spatial resolution include: (Horritt and
Bates, 2001; Molnar and Julien, 2000; Vazquez et al., 2002). The findings from these
studies suggest that the spatial resolution producing optimal performance (e.g., similarity
between simulated and observed streamflow hydrographs) varies for different models. For
example, Horritt and Bates (2001) found that the LISFLOOD-FP model (De Roo et al.,
2000) reaches the optimal performance at a resolution of 100m. (Molnar and Julien, 2000)
used the CASC2D model (Julien and Saghafian, 1991) and found that the model requires
overland and channel roughness to increase as grid-cell size increasing. Zhang and
Montgomery (1994) applied TOPMODEL (Beven et al., 1984) and proposed an optimal
grid size of 10m. McGlynn et al. (2004) investigated the role of catchment area and found
that event response lag times increased as catchment area increased. Sulis et al. (2011)
investigated the effects of different model resolutions and found that the discharge volume
increased as the grid cell size increased.
9
Rainfall is also an important input that varies significantly with different spatial and
temporal scales (Bell and Moore, 2000; Vieux and Imgarten, 2012). Depending on the
model scale, upscaling or downscaling methods are required to modify the rainfall data
(Ogden and Julien, 1993). Upscaling, which is the simpler of the two, tends to reduce
rainfall intensities, which can impact process models such as infiltration where runoff is
generated based on the difference between rainfall and infiltration rates (Jana and Mohanty,
2012). Although downscaling can produce local, higher intensities, there are many
challenges associated with building the spatial/temporal structure of rainfall events at finer
resolutions (Maraun et al., 2010).
Scaling of soil properties, such as soil moisture (Guo et al., 2015; Ojha and
Govindaraju, 2015) and hydraulic conductivity (Ojha et al., 2014), has received a lot of
focus given its importance in surface and subsurface runoff generation and
evapotranspiration (Rojas et al., 2008). Heuvelink and Pebesma (1999) presented a review
of methods for dealing with scaling and uncertainty in soil properties. Western and Bloschl
(1999) examined the change of soil moisture with varying measurement scale using
geostatistical techniques to define soil moisture patterns. Doubkova et al. (2014)
investigated spatial scale effects on soil moisture remote sensing products and found that a
spatial scale of 2 km lead to minimized noise and errors in the surface soil moisture
measurements. In general, statistical techniques have been widely used to deal with scaling:
temporal (Robinson and Sivapalan, 1997) and spatial (Skoien et al., 2003).
Although it is rational to assume that parameters may need to be change when
changing model scale (Bergstrom and Graham, 1998), the question is how to transfer the
information between scales, or can ‘effective’ parameters at small scales can be used at
10
large scales (Wood, 1994). For example, Bloschl (2001) supports identifying dominant
processes at a given scale and developing models to focus on those processes. In this study,
we focus on surface runoff, which we consider the dominant process in event streamflow
from the Ohio River Basin. We present a method that combines statistical techniques and
physically-based hydrological modeling. The method uses the information from hydrologic
flowpaths and surface runoff travel time distributions to modify surface roughness along
simulated hillslopes. Our approach captures information from the DEM scale and transfers
that information to coarser model scales while ensuring the simulated event runoff
hydrographs (peak and timing) match the response of finer model scales. One advantage
of this approach is a reduction in computational time with limited loss of hydrograph
accuracy.
2.2. Methods
2.2.1. Study Site
The Ohio River is the largest tributary of the Mississippi River based on discharge. The
Ohio River Basin drains an area of roughly 500,000 km2 (Figure 2.1) spanning fractions
of 14 states and integrates a population of nearly 25 million people. The main river flow
length is approximate 1,580 km (White et al., 2005). The mean annual discharge from the
Ohio River Basin is 7,900 m3/s, based on data from USGS gauge No. 03611500 for the
period 1929 - 2014. The land cover within the Ohio River Basin (ORB) is distributed
between developed, undeveloped (i.e., forests and grasses) and agriculture lands: 2, 36 and
62%, based on NASA’s moderate resolution imaging spectroradiometer (MODIS) type 1
11
land cover product: MCD12C1 (Friedl et al., 2002). In this study, the surface topography
is based on the DEM developed from NASA’s Shuttle Radar Topography Mission (SRTM)
(Farr et al., 2007), with a horizontal resolution of 3 arc-sec (∼90 m).
Figure 2.1: Ohio River Basin with selected USGS stream gauge locations and stream
networks based on three different threshold areas (AT = 100, 1,000 and 10,000 km2).
2.2.2. Hydrologic Model
For this study, we used the Hillslope River Routing (HRR) model (Beighley et al., 2009;
Beighley et al., 2011). The HRR model simulates: vertical water and energy balance to
estimate surface and subsurface runoff; lateral surface and subsurface runoff
12
transformation using kinematic waves; channel and floodplain discharge using diffusion
waves; and most recently, lake/reservoir storage and discharge routing (Beighley et al.,
2015; Yoon and Beighley, 2015). The HRR model operates on individual catchments using
an open book concept (Figure 2.2) to provide lateral surface and subsurface runoff to each
river reach and performs channel routing throughout the entire river network. Thus, the
key computational units are catchments and river reaches. Figure 2.2 shows how the
landscape is discretized in the HRR model. For a given catchment, the two planes are
separated into ∆Xp units from the drainage divide to the channel reach (i.e., hillslope
flowpath), and the river reach (i.e., stream segment) is separated into ∆Xc units from the
upstream to downstream ends (river flowpath). To reduce computational demands, HRR
typically assumes hillslope responses within a catchment are similar and only one
representative hillslope is simulated with the results applied to both sides of all ∆Xc
segment.
13
Figure 2.2: Landscape partitioning in the Hillslope River Routing model: (a) basin-wide river network, (b) individual river reach and
catchment unit, (c) catchment split into two planes, (d) conceptual model for plane and channel routing showing potential length
discretization, and (e) plane similarity assumption in HRR (i.e., only one representative plane segment simulated for each model unit
with lateral runoff applied uniformly along both sides; note only one side shown here).
14
2.2.3. Scaling of Catchments and Streams
In this study, the model scale is defined based on the source area (i.e., threshold area) used
to define the start of a stream reach and the resulting drainage network. For instance, a
model scale of 100 km2 implies that all streams drain an area of at least 100 km2. Figure
2.1 shows the Ohio River Basin with three different scales: 100; 1,000; and 10,000 km2.
Nine scales (incrementing by 0.5 log units) were investigated in this study: 1; 3.2; 10; 32;
100; 320; 1,000; 3,200 and 10,000 km2. Catchment (i.e., model unit) boundaries, land
areas and channel lengths were determined using python and ArcGIS. To define the model
unit dimensions (i.e., channel and hillslope/plane flowpath lengths), we use the channel
segment contained within the catchment. Currently, we assume each catchment is divided
equally, which means the left half plane (P1) is equal in area to the right half plane (P2),
see Figure 2.2. Note that, for headwater catchments, we extent the channel upstream along
its longest flowpath (Lm) until the channel’s drainage area is less than 1 km2. This
additional step is taken because the threshold area concept can provide very short channel
reaches in headwater catchments. Figure 3 illustrates how the catchments and channels
vary with scale (i.e., different threshold areas), and Table 1 provides summary statistics for
the nine model scales in the Ohio River Basin. For each catchment, the channel length (Lm)
(i.e., longest flowpath) is measured using ArcGIS. Then, the catchment plane length (Lp)
is calculated as (A/2)/Lm. The cumulative channel and plane length for each scale are the
sum of the channel and plane lengths from all model units.
15
Figure 2.3: Comparison between the longest flowpaths and river networks at each model
scale: (a) one 10,000 km2 scale catchment with individual 3,200; 1,000; and 320 km2
scale catchment located along its longest flowpaths; (b) 320 km2 catchment with 100; 32;
and 10 km2 catchments within; and (c) 10 km2 catchment with 3.2 and 1 km2 catchments
within. Note, see shaded area in Figure 1 for reference to the entire the Ohio River Basin
16
Table 2.1: Catchment and flowpath summary statistics for each model scale.
Scale,
km2 Unit
Mean
catchment
area, km2
Mean
plane
length,
km
Mean
channel
length
,km
Total
plane
length,
km
Total
channel
length, km
Model
compute
time, sec
10,000 37 14,200 21.2 348 784 12,900 1.6
3,200 109 4,820 12.8 192 2,790 20,900 1.7
1,000 347 1,510 7.41 102 5,140 35,400 1.7
320 1,085 484 4.45 52.1 9,660 56,500 1.7
100 3,517 149 2.74 25.9 19,300 91,400 2.3
32 10,788 48.7 1.75 12.9 37,800 140,000 4.1
10 34,613 15.2 1.12 6.34 77,200 219,000 29
3.2 107,565 4.88 0.76 3.03 163,000 326,000 289
1 342,283 1.53 0.73 1.25 496,000 671,000 4510
Figure 2.4: Mean longest flowpath (Lm) and plane lengths (Lp) for all model units for
different model scales, and comparison between threshold area (AT) and mean model unit
area (Am).
17
Given our focus on scale, we clarify our definition of model scale as the threshold
area used to develop the river network. Figure 2.4 shows a linear relationship between
average catchment (i.e., model unit) drainage area and threshold area, where the average
model unit area is roughly 1.43 times the corresponding threshold area. If we consider the
median area the relationship (not shown) is 1.15. Although the agreement is not one-to-
one, we use threshold area to represent model scale in this paper.
As noted above, we only consider variations in surface flowpath processes
(overland and channel flow hydraulics) at different model scales. Future efforts will
combine flowpath with hydrologic processes (i.e., averaging heterogeneous soil properties
and spatially distributed rainfall). To illustrate the impacts of model scale on flowpath
processes, Figure 2.4 shows how the average and cumulative plane length (Lp) vary non-
linearly with model scale. As the model scale increases, the plane lengths within a given
model unit increases. However, as model scale increases the number of model units
decreases (Table 2.1) and the cumulative plane length integrated throughout the entire
Ohio River Basin decreases. Similar relationships exist for channel length (Table 2.1).
Figure 2.4 highlights two important points: (i) the decrease in cumulative length with
increasing model scale implies that the model captures less flowpath processes as model
scale increases; and (ii) the increase in hillslope (i.e., plane) length with increasing model
scale indicates that within a given model unit, channel flowpaths are replaces with hillslope
or overland flowpaths, which are much slower (Di Lazzaro and Volpi, 2011; Grimaldi et
al., 2010) Thus, although larger model scales have less cumulative flowpaths, the hillslope
flowpaths within a given unit are much longer which significantly attenuates runoff
response.
18
2.2.4. Runoff Flowpaths and Travel Times
Here, we focus on the effect of model scale on surface runoff timing. Two travel times are
considered: model-based (TM) and landscape-based (TL). Model-based travel time is
defined by the spatial arrangement and open book assumption of the model units and their
approximated channel and plane lengths (Figure 2.2) as discussed above and in Beighley
et al. (2009; 2014). In HRR, surface runoff is generated on the hillslope, travels along the
hillslope as overland flow to a channel reach and is routed downstream to the watershed
outlet. Thus, TM for a given location within a model unit depends on the assumed flowpath
processes. For a given land area represented by different model scales (Figure 2.3), there
is a difference in flowpath processes (i.e., more or less overland or channel flow lengths).
To illustrate these differences, we define the model-based travel time (TM,k) for a given
location within a model unit as:
��,� = ��,�� + ��,�� 2.1
where Lp,k and Lc,k are the plane and channel flow lengths from a given location k within a
model unit to the unit’s outlet location, and Vp and Vc are the plane and channel flow
velocities. For this analysis, we assume that Vp is 0.01 m/s and Vc is 1 m/s; a velocity ratio
of channel and hillslope is 100. Grimaldi et al. (2010) proposed that for the manning’s
method the mean lower hillslope velocity is 0.02 m/s and the mean channel velocity is 2
m/s, which has the same velocity ratio. Note that, these assumed velocities are only used
to investigate the impacts of model scale on potential surface runoff timing.
In the HRR model, kinematic and diffusion wave methodologies are used to
simulate surface and channel routing, respectively. For each half catchment, the HRR
19
model typically uses 10 segments along the hillslope flow length and 10 segments along
the channel to solve the routing equations, which means there are 100 sub-catchment units
in each half plane (Figure 2.2d). The model travel time for each sub-catchment unit (TM,k)
is calculated using Eq. 1. If Lp,k is the total length of the plane and Lc,k is the total length
of the channel in a model unit, Eq. 1 represents the maximum travel time within a given
model unit. Thus, each model unit is characterized by 100 travel times. Figure 2.5 shows
the cumulative distribution function (CDF) of travel times (TM,k) for individual model units
at different model scales.
Figure 2.5: Travel time Cumulative Distributions Function (CDFs) based on all
individual 90-m grid cell travel times within a given catchment, and the Beta distribution
approximated using the mean and standard deviation of grid cell travel times in four
difference catchments for models scales of: (a) 10; (b) 100; (c) 1,000; (d). 10,000 km2.
20
The landscape-based travel time (TL,k) is also determined using Eq. 2.1 except that
channel and hillslope flow lengths are obtained from gridded D8 flow directions derived
from the SRTM elevation data using ArcGIS. For TL,k, we use a threshold area of 1 km2 to
separate hillslope and channel pathways and assign their associated flow velocities. Thus,
there are two differences between the two travel times: 1) the assumed flowpath
arrangement, and 2) the number of locations for which travel time is determined. For
example, TM,k is based on HRR model unit dimensions (see Figure 2.2), while TL,k is based
on pixel-to-pixel flow lengths and a dense river network (channel flow for all pixels
draining ≥ 1 km2; overland flow for all pixels draining < 1 km2). For TL,k, we use travels
times from each 90 by 90 meter pixel within the model unit (e.g., 1000’s of pixel per unit)
compared to the 100 sub-units in TM,k. Figure 2.5a-d shows the CDF of travel times (TL,k)
for 2,600; 32,000; 220,000; and 3.2M pixels, respectively, within one model unit at
different model scales.
Here, we use frequency distributions (cumulative distribution function, CDF) of
travel time to characterize catchment runoff response. Thus, for each model scale we
determine CDFs for both TM,k and TL,k for all catchments throughout the river network.
Although the process of determining TL,k is straightforward, if the size of a catchment (i.e.,
many pixels within) or number of catchments is large, characterizing the TL,k travel time
CDF for each catchment is time consuming. Here, we assume that TL,k can be approximated
with the beta distribution (Vose, 2008) as:
� ~ ����(�, �) 2.2
21
where X is the TL,k, and α and β are the shape parameters of the beta distribution. The
Momentum Matching Estimation (MME) (Vose, 2000) method is used to estimate shape
factors: α and β. The expected value (mean, µ) of the beta distribution is:
� = �(�) = �� + � 2.3
where E(X) is the first momentum and the second moment (variance, σ2) is:
�� = ��(� − �)�� = ��(� + �)�(� + � + 1) 2.4
For each catchment at each scale, the mean and standard deviation for TL,k are determined
using python and ArcGIS, and the shape factors α and β are found by solving Eqs 2.3 and
2.4.
2.2.5. Scaling of Surface Roughness
As discussed above, as model scale increases, the assumed hillslope flow length increases,
which slows the runoff response (see Figure 2.5). In order to maintain response timing
characteristics of the finest scale model, we propose to adjust the surface roughness
parameter to speed up surface runoff travel time in the coarser scale models (i.e., model
scales > 1 km2) to match the landscape-based travel time of finest scale mode (1 km2). In
other words, we modify the plane velocity in the HRR model to adjust the CDF of TM,k to
match the CDF of TL,k.
As discussed before, in the HRR model, both planes are assumed to be identical
and one plane is discretized into ∆Xp segments (e.g., 10) along the assumed hillslope
pathway and ∆Xc segments (e.g., 10) along the channel providing ∆Xp times ∆Xc space
22
steps (e.g., 10x10 =100) for each unit. However, in the current version of the HRR model,
the hillslope flowpaths to the channel are also assumed to be identical (excess water, length,
slope and roughness), and only one of the kinematic wave routing solution is performed
for the model unit (i.e., for each ∆Xc step along the channel, hillslope response is identical
from both sides). Thus, we only consider the number of ∆Xp steps (i.e., 10) in our procedure
for matching travel time distributions, and we evaluate the CDF’s at ten probably values:
5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, and 95%. We assume that the 5% is
controlled by the flowpath from the midpoint of the bottom hillslope segment (i.e., just
before runoff discharges into the channel), and the 95% is controlled by the flowpath from
the midpoint of the upper most hillslope segment.
Additionally, because the main channel within a model unit of any scale is also a
channel pathway in the fine scale model, we maintain the channel travel times (i.e., velocity)
for all scales. For example, as model scale increases, hillslope length increases to account
for both hillslope and channel flowpaths on either side of the main channel, but every main
channel in the coarse scale model is also a channel in the fine scale model. In other words,
there are less main channels (less cumulative channel length) in the coarser models, but for
those channels that are included, their pathways are identical to the fine scale model (i.e.,
channel pathways in the coarser models does not represent multiple flowpath processes).
In contrast, the hillslope pathways in the coarser scale models represent a combination of
both channel and hillslope flowpath processes from the fine scale model. Therefore, we
only consider hillslope roughness variations in order to maintain surface response timing
at the watershed outlet.
23
Starting from the bottom segment of the hillslope for each catchment, the difference
between the model- and landscape-based travel time CDF is:
∆�(5%) = CDF�(5%) − $%&'(5%) 2.5
where $%&� and $%&' are CDF values at 5% for a given catchment for HRR and
landscape. Figure 2.6 shows the initial CDFs for both. Next, to match CDF values, an
adjusted plane velocity for segment i (i.e., i = 1 for segment 1 for CDF values at 5%) is
assumed to be:
(,)∗ = '∆+,∆+-. /∆0(1%) 2.6
where L∆X is the plane segment length which is equal to the model unit plane length (LP)
divided by the number of hillslope ∆X steps (i.e., 10), ∆�(5%) is the travel time difference
calculated from Eq. 2.5, and Vp is the assumed plan velocity (see above). With the adjusted
plane velocity for the segment, the velocity modification ratio, 23,) , for the segment is
determined:
23,) = 45,6∗4� 2.7
Note that, the velocity ratio is not directly used in the HRR model to increase or
decrease the flow velocity on the plane, because the plane velocity in HRR is determined
based on a kinematic wave solution and Manning’s equation, which varies along the
flowpath and with flow depth. Rather, we determine a surface roughness adjustment factor:
78,) = 1/23,) 2.8
to increase/decrease roughness in the relationship between flow depth and discharge (y =
a qb) in the kinematic wave solution, where a = (ki*/1.49/Sp
0.5)b and b = 3/5 based on the
wide-rectangular channel assumption for Manning’s equation, Sp is the plane slope, and ki*
24
is the adjusted surface roughness factor for the first bottom segment, determined by N x
ks,i, where N is surface roughness value used in the fine scale model based on land cover
conditions. For each segment, the CDFM* is recalculated, and the procedure for determining
78,) is repeated for next uphill segment using Eqs. 5-8. For each segment, the representative
CDF probability (Pi) is determined by:
:) = 5 + 10 ∗ �< − 1� 2.9
Note that, the 78,) values above are the initial values for the 10 segments. To find the
optimum combination of the 78,) values, the procedure is repeated until the minimum
average difference of 78,) values (�=) is determined:
�= = ∑ 78,)?@A − ∑ 78,)? AB)C A AB)C A 10 2.10
where m is the iteration number and m > 1. Once, the minimum difference is determined,
considered the corresponding 78,) values are used as the optimal combination.
25
Figure 2.6: Comparison between travel time CDFs based on the Beta distribution
approximated from individual 90-m grid cell travel times, uniform plane assumption in
HRR and CDF matching results in four difference catchments for models scales of: (a)
10; (b) 100; (c) 1,000; (d) 10,000 km2.
2.3. Results and Discussion
2.3.1. Beta Distribution for Travel Time
Central to the travel time matching approach is our approximation of the landscape-based
travel time. As noted above, working with individual pixel-based distributions is a
significant challenge for large basins, and we assume the beta distribution to fit the data.
Figure 2.5 shows that the cumulative distribution function (CDF) of TL,k for sample
catchments from four model scales shown in Figure 2.3 (10; 100; 1000; 10,000 km2) based
on the individual pixel values and the approximated beta distribution. The figure shows
26
that the beta distribution matches the travel time distribution well. Based on the
Kolmogorov-Smirnov (KS) and Pearson correlation goodness-of-fit tests to tests and a 5%
level of significance, the CDFL’s for all sample catchments are shown to fit the beta
distributed.
2.3.2. Travel Time CDF Matching Approach
To illustrate our CDF matching approach, Figure 2.6 shows the initial (CFDM) and
adjusted (CFDM*) model-based travel time distributions compared to the landscape-based
(CDFL) distribution for 4 different model scales: 10; 100; 1000; and 10,000 km2. Two
points are highlighted. One, the initial CDFM is shifted to the right for model scales greater
than 10 km2 because of the increased hillslope flowpath length. At 10 km2, the model and
landscape-based CFDs are similar suggesting that for this particular model unit the “open
book” approximation for the resulting channel and hillslope flow lengths are consistent
with the fine scale model (1 km2). Two, Figure 2.6 shows that CDF matching procedure
works well, with essentially no difference between CDFM* and CDFL. Note that, here we
accomplish the task of capturing the detailed surface runoff response timing characteristics
(i.e., 1 km2) for coarser model scales. Table 2.2 lists the average ks,i of all model units
within each model scale. These results clearly show how the scaling works. For scales ≥
1,000 km2, all roughness values must be decreased (i.e., all ks,i values are less than 1.0) to
speed up runoff response. For scales 3.2 to 320 km2, a combination of increased and
decreased roughness is used to match travel times. For 3.2 km2, only 1 of the 10 segments
had a roughness value less than one. For the most part, roughness was increased to slow
the runoff response for 3.2 km2. In the above, results are based on assumed constant
27
channel and overland flow velocities. Next, we evaluate simulated hydrographs at the
outlet of the Ohio River Basin using the HRR model where channel and overland flow
velocities are varied with flow depth.
28
Table 2.2: Mean surface roughness adjustment factor (ks,i) for each ∆X segment along the hillslope for each model scale.
Scale,
Km2 1 2 3 4 5 6 7 8 9 10
10,000 0.0336 0.0987 0.0989 0.1123 0.1319 0.1202 0.1167 0.1416 0.1952 0.4666
3,200 0.0245 0.1112 0.1515 0.1613 0.1664 0.1738 0.1863 0.2197 0.2763 0.4423
1,000 0.0244 0.1727 0.2559 0.2676 0.2724 0.2820 0.2959 0.3411 0.4252 0.7049
320 0.0180 0.2673 0.3825 0.3876 0.3902 0.4065 0.4439 0.5195 0.6679 1.1473
100 0.0199 0.4057 0.5431 0.5481 0.5722 0.6213 0.7022 0.8299 1.0589 1.6472
32 0.0335 0.5925 0.7192 0.7690 0.8402 0.9369 1.0700 1.2626 1.5941 2.4427
10 0.0941 0.8092 0.9686 1.0864 1.2196 1.3800 1.5843 1.8664 2.3297 3.4441
3.2 0.1962 0.9986 1.2416 1.4407 1.6494 1.8836 2.1610 2.5181 3.0598 4.2296
29
Although our focus is on scaling, Table 2.1 lists the computational time required
to simulate each model scale. Here, we used a Dell Workstation with 2 CPUs each having
6 cores and hyper-threading providing a total to 24 compute cores. As the model scale
decreased, the number of compute cores used for simulation increased. For instance, the
simulation of 10,000 km2 scale used 4 compute cores, while 22 cores were utilized for the
100 km2 scale and finer. Still, the results show a large reduction in computational time for
the 32 km2 and larger scales; each taking less than 5 seconds. For the reference scale (1
km2), the computational time is 1.3 hours. Being able to represent the reference scale
flowpath characteristics and timing using even 10 or 32 km2 scale provides 2 to 3 orders
of magnitude decrease in computational time.
2.3.3. Synthetic Runoff Experiment without Parameter Scaling
To evaluate and compare simulated hydrographs, a synthetic runoff experiment was
performed (1 cm of effective surface runoff uniformly distributed over 24 hours).
Although the models were run for 30 days, we focus on the first 10 days to illustrate the
effect of model scale. Hydrographs from the different scales were exported from the model
at six USGS streamflow gauge locations (Fig. 2.1). Figure 7 shows hydrographs of the
outlet gauge for all 9 model scales without any scaling of roughness. As model scale
increases, peak flow magnitude decreases and time to peak increases. For example, the
peak and time to peak are 34,900 m3/s and 49 hours, respectively, for the 1 km2 model scale
and 21,700 m3/s and 61 hours for the 100 km2 model, which represents a decrease in Qp of
38% and an increase in Tp of 25%. For the 100 km2 model, as the drainage area decreases
from the outlet gauge to most upstream gauge (Fig. 2.1), the change in peak discharge
30
increases from 38% to 49% with a mean of 43% while the difference in Tp remains
relatively consistent with a mean of 21%. These results are consistent for all model scales.
Table 3 list the mean change of Tp and Qp as well as the range (max – min) from all gauge
locations.
The large change watershed response is because channel and hillslope flowpaths
are combined into longer hillslope flowpaths as model scale increases (i.e., hillslope flow
length increases with scale). For example, the 1 km2 scale model has a mean hillslope
length of 0.7 km compared to 2.7 km for the 100 km2 scale model. In general, the 2.7 km
hillslope in the 100 km2 scale model represents the 0.7 km hillslope plus 2 km of channel
flow length from the 1 km2 scale model. With our assumption of the plane velocity (0.01
m/s) and channel velocity (1 m/s), it takes much longer for the water to travel the 2.7 km
at the 100 km2 scale (3.1 days to travel 2.7 km at 0.01 m/s) as compared to the 1 km2 scale
(0.8 days to travel 0.7 km at 0.01 m/s and 2.0 km at 1 m/s). Although these results were
expected, understanding how flowpath processes are altered with increasing model scale
provides a basis for adjusting effective overland flow velocity (i.e., surface roughness) to
ensure flowpath response timing remains constant with scale.
31
Figure 2.7: Simulated hydrographs at the outlet of the Ohio basin for 9 model scales
based on synthetic runoff experiment (i.e., uniformly distributed runoff, 1 cm in 24
hours) using identical roughness values for all model scales.
2.3.4. Synthetic Runoff Experiment with Parameter Scaling
In this experiment, we use the same runoff event (i.e., 1 cm of effective rainfall) described
above with surface roughness scale factors determined to match travel time CDFs. Table
2 presents the mean surface roughness factor for the 10 hillslope flow segments at the
different model scales. It shows that the first segment (downhill-most) has the lowest ks,i
value relative to all 10 segments, which means the flow velocity is increased the most, and
the last (uphill-most) segment has the highest value. Starting with the scale 320 km2, ks,i
for one segment (i.e., uphill-most) is greater than 1, with the number of segments having
32
ks,i greater than 1 increasing as the scale is further reduced. This makes sense because we
match the response travel time CDF for the catchment. The response from the bottom
segments is speeded up to capture the quick response times and the upper segments are
slowed to capture the maximum travel time. Excluding the bottom segment, the mean ks,i
value increases as scale decreases in all cases. For the largest three scales, the mean ks,i
values for bottom segment begin to increase with scale, which is likely due to the overall
length of the segments getting large. For example, the mean segment length for 1,000 and
10,000 km2 scales are 2.1 and 1.3 km, respectively.
Figure 2.8a shows the hydrographs for all nine model scales at the outlet of the
Ohio River Basin based on the travel time matching method. Compared to the un-scaled
model results (Fig. 2.7), the scaled results show better agreement for the magnitude and
timing of the peak discharge from the 1 km2 model. For example, the difference in the
time to peak for the scaled models compared to the 1 km2 model ranges from 47 to 51
hours, and the difference in peak discharge ranges from 12 to 23%. In contrast, the
unscaled models resulted in timing differences of 49 to 71 hours and peak discharge
differences of 3.5 to 87%. Table 2.3 shows the improvement for Tp and Qp for all model
scales except Qp at 3.2 km2. The mean differences in Tp are less than 5.5% and the mean
differences in Qp are less than 20%. However, for model scale 3.2 km2, the mean difference
increased to 14% compared to un-scaled mean difference in Qp of 4.1%.
33
Table 2.3. Mean percent change in the time-to-peak (∆Tp) and peak discharge (∆Qp) from
all gauge locations for each model scale compared to the 1 km2 model scale for the initial
setup, after CDF scaling and after the combination of both CDF scaling and uniform
correction coefficient (λ); values in parentheses represent the range in percent changes
between the different gauge locations.
Scale,
Km2
Initial CDF Scaling CDF Scaling and λ
∆Tp ∆Qp ∆Tp ∆Qp ∆Tp ∆Qp
10000 39 (10) 90 (5.3) 5.4 (9.2) 17 (7.7) 16 (8.3) 6.4 (12)
3200 37 (23) 83 (5.3) 3.7 (2.1) 19 (3.9) 12 (6.5) 1.2 (3.6)
1000 30 (13) 72 (10) 2.4 (4.7) 15 (3.1) 8.1 (4.1) 0.9 (2.8)
320 25 (10) 59 (13) 1.0 (2.9) 16 (3.3) 6.3 (4.7) 0.7 (2.6)
100 21 (8.2) 43 (11) 2.7 (5.1) 17 (3.7) 4.9 (6.8) 0.7 (1.8)
32 14 (5.2) 29 (9.5) 3.2 (4.1) 16 (3.6) 2.8 (2.6) 0.3 (1.1)
10 5.7 (3.6) 15 (4.1) 2.8 (2.0) 15 (3.5) 2.8 (2.6) 0.4 (0.6)
3.2 1.0 (2.6) 4.1 (1.3) 2.8 (2.0) 14 (3.0) 2.0 (2.9) 0.2 (0.5)
The scaled surface roughness results show a dramatic improvement in the recession
limb of the hydrographs except for 3.2 km2, which results in less favorable results. This is
because our method only alters the plane surface roughness and not channel roughness.
From Table 1, we see that the average plane length increases by only 30 m (or 1.04 times
longer) as the scale increases from 1 and 3.2 km2, and the average channel length is roughly
2.4 times longer (1.8 km). In contrast, changes in hillslope and channel lengths tend to
increase by 1.6 and 2.0 times, respectively, from one scale to the next (e.g., from 10 to 32
km2). Additional research is needed to better understand why there is a disproportionately
large change in channel length and small change in hillslope length from the 1 and 3.2 km2
models scales.
34
Figure 2.8: Simulated hydrographs at the outlet of the Ohio basin for 8 model scales using
the: dynamic travel time estimation method: (a) without and (b) with the uniform roughness
coefficient correction.
2.3.5. Effect of Pixel Scale Drainage Pattern
Although the results show that the travel time CDF matching method improves the general
hydrograph shape, the peak discharges still do not match the peak from the 1 km2 scale.
We hypothesize that the difference in peak discharge is because of our “open book”
assumption, which is commonly used in numerous hydrological models, for estimating
idealized flowpaths and plane lengths. Using GIS, the accumulation of drainage area along
the channel flowpath from a sample catchment based on the integration of individual 90-
m pixels and their DEM-derived flow directions was determined. Similarly, the HRR
accumulation of drainage area along the channel was determined. Figure 2.9 compares the
35
two area accumulation patterns. Note that, in the HRR model, a uniform distribution of
area along the channel is assumed (Fig. 2.2d) and when accumulated, the result is a linear
relationship (Fig. 9c). For the sample catchments, we see that the pixel-based area
accumulation varies as compared than our assumed linear pattern. The vertical jumps in
area at roughly 90, 80 and 10% of the channel length in Fig. 9a,c,e, respectively, indicate
a tributary entered the main channel. However, the general patterns appear to agree
reasonably well and will likely improve as the drainage area of the upstream end of the
river reach increases.
To assess our uniform area assumption at all model scales, we determined the mean
difference in area accumulation between the two methods at the midpoint of each
catchment’s channel:
D = ∑ E̅(,)E̅',)?)CA
G 2.11
where E̅(,) is the mean pixel-based area accumulation along the main channel in model unit
i, E̅',) is mean of the linear area accumulation, and m is the total model units at a given
scale, If γ equals to 1, it means the HRR plane assumption agrees with the pixel-scale
drainage network at the midpoint along the main channel. If γ is less than 1, the pixel-scale
network has more land area draining to the main channel downstream of the midpoint.
36
Figure 2.9: Area accumulation (a,c,e) for three catchments (b,d,f) for a 10 km2 model
scale; two headwater catchments (a-d) and one interbasin (e-f).
If γ is greater than 1, the pixel-scale network has more area draining to the channel upstream
of the midpoint. Figure 2.10 shows the mean area differences for all model scales. We
see that γ approaches one for between the 10 and 32 km2 scales. For coarser scales, the
difference is slightly less than one but relatively stable until the coarsest scale. For the
finer scales, the difference rapidly increases suggesting that the pixel-scale drainage pattern
37
is not uniform and has more area entering the channel below the midpoint (i.e., small
tributaries draining parallel to the main channel then entering the channel just upstream of
the outlet).
Based on these results, river networks developed with threshold areas between 10
and 32 km2 provide drainage patterns that generally agree with the uniform plane
approximate used in HRR. The results also suggest that it may be possible to use the pixel-
based area patterns to develop additional idealized hillslope shapes for use in the HRR
model (e.g., triangular or trapezoid) that are better for select catchments/scales than our
assumed rectangle. Although future research is needed to investigate this possibility, it
could lead to better representation header water catchment response timing in hydrologic
models.
2.3.6. Refined Parameter Scaling
Although Figure 8a shows that the travel time matching approach improves model response
hydrograph shape and time as compared to no scaling (Fig. 2.7), the peak discharges are
still not the same as the finest scale model. As discussed above, there are three important
reasons for this discrepancy: (i) the uniform area contribution to HRR channels used to
determine reprehensive hillslope lengths, (ii) the uniform plane response along the channel
(i.e., only one hillslope response determined for each catchment and integrated along the
channel), (iii) the finite number of ∆X steps along the hillslope and channel (i.e., 10 steps),
and (iv) assumed uniform, constant channel and hillslope flow velocities. To clarify
reasons ii and iii, Figure 2.2 shows the assumed hillslope and channel arrangement used
in HRR. There are ten ∆XP steps along the hillslope and ten ∆Xc steps along the channel
38
for a total of 100 computational units. However, because of reason ii our approach to alter
the travel time distribution is limited to only 10 ks,i values along one hillslope, and the 10
ks,i values are assumed to be identical for all hillslope segments entering the channel along
each channel ∆Xc steps. Thus, in the current version of HRR, the 100 hillslope
computational units are approximated by the number of hillslope ∆Xp steps (i.e., 10).
Although future research on catchment shape approximations, representative flow
velocities, and HRR computational methods address the above, we investigate a uniform
scaling parameter to account for these issues and provide consistent peak discharges for all
model scales. To accomplish this, we use a uniform correction coefficient (λ) applied to
all model units. As discussed previously, the surface roughness in HRR’s hillslope
kinematic wave method (k*) is the adjusted surface roughness factor (k* = N x ks,i). Here,
we refine the adjusted roughness (k** = N x ks,i x λ) to improve peak discharge. Note that,
the correction coefficient is applied uniformly to all catchments. The criteria used to
optimize λ is to minimize the absolute value of the peak discharge error between the larger
and 1 km2 model scales at the outlet of the basin:
∆H = |HJ − HA| 2.12
where HJ is the peak discharge for scale x and HA is the peak discharge for scale 1 km2.
Figure 2.8b shows that the final hydrographs for the different model scales at the outlet of
Ohio River Basin match the 1 km2 scale. The comparison at other gauge locations are
similar to the results discussed for Figures 2.7 and 2.8a. Although the peak discharges are
identical at the outlet gauge, there are small differences at the other gauge locations with
the mean difference in Qp between gauges ranging from 0.2% for the 3.2 km2 scale to 6.4%
for the 10,000 km2 scale (Table 2.3). In terms of time, there is slight shift in the timing of
39
the peak discharge as compared the timing in Figure 8a with initial CDF matching results
(Table 2.3). For example, the coarsest model arrives 8 hours early with the finest scale
model (3.2 km2) arriving at roughly the same time. The reason for this is likely due to the
decrease in roughness along the bottom most hillslope segment which discharges directly
into the channel. As model scale increase, the length of this segment increases and when
combined with a uniform reduction in roughness, the response time tends to decrease more
than from finer scales.
Figure 2.10: Mean area accumulation ratios (γ) for each model scales (AT).
The optimized uniform correction coefficients are shown in Figure 2.11, which
suggests there is a relationship between the correction coefficient and the mean hillslope
length from each model scale. As hillslope length increases, roughness must be reduced
more (e.g., λ decreases from roughly 0.55 to 0.40). Using the equation for the correction
coefficient and average plane length at each scale, the HRR models were re-run for the
Ohio River Basin, see Fig. 2.12a. From the figure, we see that the difference for the time
40
of peak of each scale changed by 0.1 to 5 hours as compared to Fig. 2.8b, and the peak
flow of each scale changed by 0.3 to 1.9 % with a mean change of 0.9%. Given the relative
small change in hydrograph shape, the relationship in Fig. 2.11 can be directly used to
perform the surface roughness scaling correction. However, Figure 2.12b shows the
hydrographs from all model scales after using the relationship in Fig. 2.11 for each model
unit (i.e., no-uniform correction factors based on the length in each individual model unit).
Here, peak flows are higher than the peak flow of 1 km2 by 5 to 8.7% suggesting that the
uniform relationship shown in Figure 2.11 is less effective when applied to individual
model units. This is logical given that the relationship was developed using basin-wide
mean hillslope length values.
Figure 2.11: Comparison between Correction coefficient (λ) and the average plane length
(Lp) for different model scales.
41
2.4. Conclusions
Issues associated with hydrological scaling has been investigated for decades, and as
model scales continue to approach process scales, our hydrologic understanding gained
from model assessment and sensitivity analyses continues to grow. However, the data
and computational requirements to operate at relevant process scales still represent
significant challenges, especially in the context of regional and global modeling. Here,
we show that surface runoff processes related to flow hydraulics simulated in the HRR
model can be scaled for hillslopes representing catchments ranging from 1 to 10,000
km2, where “scaled” implies streamflow hydrographs simulated from all scales
maintain similar shape, peak and timing characteristics. One benefit of the presented
scaling approach is that it can be used to optimize model scale based on available data
and computational resources while maintaining hydrographs with peak and timing
properties associated with fine scale flowpath characteristics.
The presented method for surface runoff scaling is a two-step process. First,
travel time CDFs from flowpath characteristics derived from 90-m DEM pixels within
a given catchment and corresponding hillslope and channel flowpaths approximated in
the HRR model, which change with model scale, are matched. To approximate the
pixel scale travel time CDF, the beta distribution is used. For the model CDF, surface
roughness values are adjusted along the model’s hillslope flow length, and an
interactive approach is used to minimize the difference between the two CDFs.
Although the peak discharges from the coarser scale models scaled with only CDF
matching increase and agree more closely with the finest scale model (1 km2), the
“initial scaled model” results do not exactly match the peak or time-to-peak. For
42
example, the difference in peak discharge from the scaled model to the finest scale
model ranged from 12 to 23% at the basin outlet. Several possible reasons are: use of
representative, constant surface and channel flow velocities to determine pixel scale travel
time; catchment shape and similarity approximations in the HRR model; and the number
of computational ∆X steps along simulated hillslopes (i.e., 10).
To add count for these limitations, a second adjustment is performed using a
uniform correction coefficient. The correction coefficient was determined by minimizing
peak discharge error at the Ohio River Basin outlet gauge between a given model scale and
finest scale. The resulting hydrographs from each model scale match the finest scale
with a mean peak discharge error of 0.02%. A relationship between the correction
coefficient and average plane length for each scale was then determined. The resulting
relationship was used to re-simulate the hydrographs. Peak discharge errors only
increase slightly over the results for the optimized coefficients. Mean error increased
to only 0.04%. Similar, changes in model results were consistent at other gauge
locations.
The comparison of the accumulated drainage area along the river channels in
the HRR model and 90-m DEM derived drainage networks shows that the “open book”
catchment assumption in HRR does not always approximate the actual drainage pattern
which can impact surface runoff timing. Future research will investigate the use of
flexible model unit shapes based on accumulated drainage area and channel along
model channels, which can be broken into unique hillslopes along a model unit’s
channel. This will provide more flexibility for matching model unit and DEM-based
travel time CDFs. Note that, the present scaling is focused only on surface runoff.
43
Future efforts are planned for subsurface runoff routing and hydrologic (i.e., rainfall-
runoff processes) scaling to compliment the approach presented here.
44
3. UPSCALING SURFACE RUNOFF ROUGHNESS
USING SPATIALLY DISTRIBUTED VELOCITIES
IN THE TRAVEL TIME MATCHING (TTM)
METHOD
Abstract
This paper expands on the Travel Time Matching (TTM) method for scaling hillslope and
channel flow velocities within hydrologic models. Seven model resolutions are
investigated: 3.2, 10, 32, 100, 320, 1000, 3200 km2, where model resolution represents the
threshold area used to define the underlying river network and catchment boundaries (i.e.,
model units). The observational-scale model resolution is defined using a river network
with a threshold area of 1 km2. A case study in the Ohio River Basin (roughly 500,000 km2)
is presented using a synthetic 24-hr rainfall-runoff experiment and the Hillslope River
Routing (HRR) Model. Two scenarios are investigated: uniform and varied hillslope slopes.
For each model resolution, within each model unit, two travel time Cumulative Distribution
Functions (CDFs) derived from flowpaths and velocities at the pixel (90-m) and
conceptualized model scales are matched by adjusting surface roughness. The hillslope and
channel velocities are derived from kinematic wave overland flow routing and a
combination of Muskingum-Cunge channel routing and the Manning’s equation. Using the
scaled surface roughness, simulated hydrographs at the outlet of the Ohio River Basin for
seven model resolutions are shown to be nearly identical based on both correlation and
Nash-Sutcliffe efficiency. The proposed scaling framework can be used to transfer the
observational-scale hydrologic characteristics to selected model resolutions.
45
3.1. Introduction
Simulated hydrologic responses from models operating at different spatial scales (or model
resolution) have been investigated for decades (Bierkens, 2015; Bloschl, 2001; Bloschl and
Sivapalan, 1995; McDonnell et al., 2007; Western et al., 2001; Wood et al., 1988). Yet,
the issue of how to parameterize models operating at resolutions beyond the measurement
scale are not fully understood. Methods to overcome the challenges associated with spatial
scale are generally classified as upscaling or downscaling, with downscaling the most
common. Downscaling refers to the process of transferring information from coarse to
finer resolution (Charles et al., 2004; Kitanidis, 2015; Sivapalan et al., 2003). For example,
remote sensing data such as precipitation or evapotranspiration derived from the satellite
observations can be downscaled from grid cell dimensions of hundreds of kilometers to
hundreds of meters, which is quite useful especially for simulating of small, upland
catchments (Chen et al., 2015; Pau et al., 2016). In contrast, upscaling is the process of
transferring information from fine to coarser resolution (Soulsby et al., 2006; Wood, 2009).
Upscaling is especially useful for transferring field measurements to spatially averaged
model parameters representing individual hillslopes or even entire catchments (Crow et al.,
2012; Crow et al., 2005; Pau et al., 2016).
Travel time is an important characteristic describing the movement of water in a
catchment (Baiamonte and Singh, 2016; McGuire et al., 2005; Van der Velde et al., 2012).
Travel time is dependent on both surface and subsurface flowpath characteristics and has
broader implications than only rainfall-runoff response. For example, Benettin et al. (2013)
applied travel time distributions in several hydro-chemical models to estimate chemical
cycles in small catchments in the Netherlands. However, estimating travel time is
46
challenging and often achieved using empirical methods. For example, the Natural
Resources Conservation Service (NRCS, formally known as the Soil Conservation Service,
SCS) recommends estimating the time of concentration (i.e., longest surface water travel
time within a watershed) based on an empirical equation based on watershed response lag
time (NRCS, 1972), which is a function of watershed slope, longest flowpath and curve
number (CN). The method has been widely applied to catchments having varied land cover
and soil types. Recently, Botter et al. (2011) developed a stochastic framework to calculate
residence and travel time for a catchment. The framework is based on hydrologic forcings
such as precipitation and evapotranspiration, solved using analytical methods, and
considers soil-vegetation dynamics. With the advances in remotely sensed data such as
digital elevation model data and land cover, more physics-based methods have been
developed. Zuazo et al. (2014) investigated different analytical methods and numerical
modeling approaches for determining spatially distributed travel time based on DEMs.
They found that considering detailed information along the hillslope based on DEMs
characteristics improved model performance. They also suggested that the validity of
kinematic-wave approximation decreases as the length of the hillslope increases.
Central to estimating travel time, is the distribution of velocities along flowpaths,
which can vary significantly in space and time. Gad (2014) proposed a method derived
from DEM flowpaths and empirical relationships for channel velocity based on drainage
area. Zhao and Wu (2015) performed laboratory scale surface runoff experiments to
characterize travel times and developed a method to estimate dynamic velocities based on
a relationship with upstream drainage area. However, their mean velocity is based on
steady state conditions, which is difficult to estimate within large spatial scale systems.
47
Here, we expand upon the Travel Time Matching (TTM) method presented in
(Zhao and Beighley, 2017) for scaling surface roughness in hydrologic models to account
for variations in local slopes and velocities. A case study is presented for the Ohio River
Basin using the Hillslope River Routing model (HRR) (Beighley et al., 2009; Beighley et
al., 2015; Yoon and Beighley, 2015). Two scenarios are investigated: constant and varied
slope. The framework is applied to seven model resolutions (3.2, 10, 32, 100, 320, 1000,
3200 km2) using an observational-scale model resolution of 1 km2.
3.2. Methodology
3.2.1. Study Site
With a drainage area of roughly 500,000 km2 (14 US states), the Ohio River Basin is the
5th largest tributary to the Mississippi River Basin (Renfrew, 1991). According to the
National Aeronautics and Space Administration’s (NASA’s) moderate-resolution imaging
spectroradiometer (MODIS) Type I land-cover data product MCD12C1 (Friedl et al., 2002)
for year 2012, the basin is roughly 2% developed, 36% undeveloped (i.e., forests and
grasses), and 62% agricultural lands. In this research, the surface topography is derived
based on the DEM developed from NASA’s Shuttle Radar Topography Mission (SRTM)
with a horizontal resolution of 3 arc seconds (~90m) (Farr et al., 2007), which is widely
used in many large-scale hydrologic models. Figure 3.1a shows the river network on a
basis of a threshold area of 1,000 km2 and the 6 USGS gauges along the Ohio River used
in this study.
48
Figure 3.1. Illustration of model unit partitioning for Hillslope River Routing model for model resolution of 1000 km2: (a) river network
with USGS gauges represented in triangular shape; (b) selected model unit; (c) catchment plane separation; (d) conceptual model for
hillslope and channel routing; (e) hillslope routing similarity.
49
3.2.2. Hillslope River Routing (HRR) Model
The Hillslope River Routing (HRR) model (Beighley et al., 2009) is used in this study. The
model simulates vertical water and energy balance to estimate surface and subsurface
runoff; lateral surface and subsurface runoff transformation using kinematic wave routing;
and channel and floodplain discharge using a diffusion wave approximation. The key
computational units are hillslopes and channel reaches, where hillslope (i.e., planes) are
approximated as rectangular and draining laterally the unit’s river reach. Figure 3.1 shows
a discretized example of one catchment in HRR model. It illustrates the transformation
process for one catchment to one HRR model unit. The catchment is divided by the channel
into two planes, which are assumed identical (i.e. area, plane length, slope, etc.). The plane
and channel are divided into 10 sections, and to reduce the computational cost, lateral
overland and subsurface flows contributing to the channel are assumed uniformly
distributed along the channel. Plane and channel slopes are determined by averaging pixel
slopes, based on the SRTM DEM, within the catchment and along the channel segment,
respectively.
3.2.3. Simulated Travel Time and Velocity from Fine Scale Model
This study builds on the Travel Time Matching (TTM) method from (Zhao and Beighley,
2017) with spatially varied, average velocities instead of spatially uniform, prescribed
velocities (i.e., 0.01 m/s for hillslope flow and 1 m/s for channel flow). In general, the
TTM method matches the travel time distributions between two model resolutions (i.e.,
scales) by adjusting surface runoff roughness along the hillslope to account for differences
50
in flowpath processes between scales (i.e., typically, coarse scale model surface roughness
is reduced to match the faster response in the fine scale model due to its additional channel
density).
Given that surface flow velocities are not spatially uniform but rather influenced by
several factors such as slope, roughness and contributing area (i.e., runoff magnitude),
spatially varied velocities are used to match travel times. Travel time distributions are
generated for each model resolution and matched to a reference model resolution (i.e., 1
km2 in this study). The challenge in this process is estimating the reference scale travel
time distribution for a given coarse scale model unit. In general, velocities from the fine
scale model are extracted and transferred to pixel (i.e., DEM) scale velocities. Using the
DEM, flow directions and flowpaths are determined and combined with the pixel scale
velocities to calculate the downstream travel time for each pixel. With grid based travel
times and coarse resolution model unit boundaries, the fine scale travel time distribution
for the coarse scale model unit can be approximated using a Beta distribution with the mean
and standard deviation of pixel scale travel times within a the coarse scale model unit (Zhao
and Beighley, 2017). The following sections describe the generation of hillslope and
channel velocities, which are used to create the pixel scale travel times representing the
fine scale model.
Hillslope velocity from fine scale model
In order to generate spatially varied surface runoff velocities to implement the TTM
method, surface runoff velocities for a spatially uniform synthetic storm event (Zhao and
Beighley, 2017) are simulated using the fine resolution HRR model (i.e., 1 km2) on the
51
high performance computing cluster at Northeastern University. The synthetic runoff is
derived from a 2-year 24-hour rainfall event. The hourly runoff is determined using NRCS
runoff curve number (CN) method, the NRCS Type II rainfall distribution, a total rainfall
depth of 7.62 cm, and a CN value of 67 (i.e., typical to the watershed). After the 24-h period,
the simulation continued for 29 days for a total simulation duration of 30 days. Note that,
there are 10 model sections (∆X steps) along each HRR model unit’s hillslope. The
hillslope flow velocities from each section at each time step (i.e., 60 min) for each model
unit (i.e., 339,635 units) were exported and the maximum hillslope flow velocity for each
section was extracted. The average hillslope flow velocity (Va,i) for each model unit section
(i) is approximated as half of the maximum:
Va,i = 4K,6� 3.1
where Vm,i is maximum event hillslope flow velocity for section i, with i ranging from 1
to 10.
Next, for each model unit, a relationship between the hillslope velocity (Va,i) and
cumulative upslope flow length from section i to the top of the hillslope (i = 1) is developed:
�,) = ��8.)M 3.2
where Vp,i is the hillslope velocity at a location, i, along the plane, α and β are the fitted
parameters (i.e., unique values for each model unit), and Ls,i is the cumulative upslope flow
length along on the plane:
�8,) = <10 �� 3.3
where Lp is the length of the model unit plane and i is the section number in the model unit
number from 1 to 10, with 1 representing the most upslope section. Figure 3.2 shows the
52
velocity relations from a sample model unit ID 218,551. The goal of this step is to develop
a function (eq. 3.2) to transfer the velocities from the fine scale HRR model to the pixel
scale using cumulative upslope flow length for a given pixel within a model unit.
Figure 3.2. Example of the relationship between average hillslope velocity and the length
of the plane from the sample unit at reference model resolution for: (a) constant (8.66%)
and (b) varied (10.59%) hillslope scenarios.
Channel velocity from fine scale model
Unlike hillslope velocity, the channel velocity cannot be exported from HRR model
directly because HRR uses the Muskingum-Cunge routing method to estimates discharges
along the channel for each time step (i.e., does not determine velocities). Thus, river
discharges are exported, and the channel velocities are estimated based on Manning’s
equation with the wide rectangular channel assumption. In HRR, there are 10 sections
along the channel. The discharges for each channel section at each time step are exported
from fine scale model and the average channel discharge (Qa,i) is determined:
Qa,i = NK,6� 3.4
where Qm,i is the maximum channel discharge for each section i. Unlike hillslope velocities,
the channel discharges do not vary much from upstream to downstream in most cases. Thus,
53
the channel discharge for each section within a model unit is fit to linear function (Zhao
and Beighley, 2017):
Qa,i = � E) + O 3.5
where a and b are the parameters for linear function and Ai is the cumulated upstream
drainage area (km2) at each channel section i; i = 1 corresponds to the most upstream
section.
With the average channel discharge, the average channel velocity is determined
using the Manning’s equation assuming the channel a wide rectangular channel. The
estimated discharge Qa,i (m3/s) is used to solve the Manning’s equation for the average
water depth, Di, (m) at section i along the channel:
HP,) = 1Q %)1/RS)T)A/� 3.6
where n is the channel roughness, Si is the slope of the channel determined from the DEM,
and Wi is the average channel width (m) approximated using a relationship between channel
width (Allen and Pavelsky, 2015) and upstream drainage area; see Figure 3.3. Using the
derived width and depth, channel velocity is calculated as:
�,) = HP,)EJ,) 3.7
where Ax,i is cross-sectional area (DiWi) and both Di and Wi can be estimated at any location
along the channel based on upstream drainage area.
54
Figure 3.3. Approximation of channel width based on accumulated drainage area in Ohio
River Basin derived from (Allen and Pavelsky, 2015)
Travel time estimation
Two travel times are used in this study. One is the model-based travel time from HRR,
which is simply approximated based on rectangular shape assumption of the model unit.
The second is the landscape-based travel time derived using the average channel and
hillslope velocities, which are determined from the reference model resolution and re-
mapped to DEM pixel scale velocities within each fine scale model unit based on
downstream flow length and accumulated drainage area (Eqs. 3.2 & 3.5/3.7). The model-
based travel time is derived from HRR for each coarse model resolution. With the
assumption of a rectangular plane, the model-based travel time (��) for a given model unit
is determined as:
�� = U ∆��,)AB
)CA 3.8
55
where ∆X is plane flow length for one length step along the hillslope (∆X=Lp/10); and �,) is plane velocity for a given location i along the hillslope. Note that, �,) in this analysis is
spatially varied between model units based on their topography and drainage pattern
characteristics (i.e., slope and plane length) used in HRR to simulate surface runoff. Also,
the travel time allocated to channel flow is excluded because the main stream within a
model unit is also a channel in the reference model resolution. This concept is discussed in
more detail later for the landscape-based travel time.
The landscape-based travel time (�') for a model unit at the coarse model resolution
is generated using pixel scale travel times based on velocities from fine scale model. Note
that, the travel time associated with pixels along the main streams is excluded for
landscape-based travel time distributions generated for each coarser scale model. For
example, to generate the landscape-based travel time grid for 1,000 km2 model resolution,
the travel time along the channel pixels for the 1000 km2 model are removed. Thus, the
travel time grid for 1000 km2 model resolution is the travel time for only the hillslope
portion of the model unit. This is done because both the fine and coarse scale models
simulate channel flow along the exact same channel path. In addition, the model-based
travel time only considers the travel time on the plane. Thus, the flowpath process (i.e.,
channel flow) and computational methods are identical between models and no scaling of
surface roughness is required.
3.2.4. Travel Time Matching
The travel time distribution extracted from the travel time grid derived based on the fine
scale model simulation (�') using the coarse scale model boundary is considered as the
56
“true” travel time distribution. If the travel time distribution of the coarse scale model unit
based on HRR approximations (��) is different from the “true” distribution, the surface
roughness of the coarse model unit is adjusted to increase or decrease plane velocity and
the associated travel time.
As illustrated in Figure 3.1, for each model unit, only one of the kinematic wave
routing solution is implemented and the plane response to the channel is assumed to be
uniform along the channel. Ten quantiles of the travel time CDF are used: 10, 20, 30, 40,
50, 60, 70, 80, 90, and 99%. Several things should be noted here. First, unlike the quantiles
selected from the middle of the section in (Zhao and Beighley, 2017), this study uses
quantiles from the end of each the section to exactly match the location of average
velocities simulated for the hillslope. Secondly, the last CDF is 99% instead of 100% to
eliminate occasional large values in the last 1% of the travel time CDF due to the fitting
process. Using 99% instead of 100% of travel time CDF reduces computational time for
the matching process and ultimately yields less bias; see Results section. Lastly, as
discussed above, every section along the plane is divided into 10 sections. Since the
average hillslope velocity is determined at the end of each section, the average velocity for
a given section (Va,i) is estimated by:
�,) = ) + )/A 2 (< > 1) 3.9
where i is the section number. For the first section (i = 1; most upslope section), half of
the average velocity is used.
The travel time matching procedure starts from the bottom of the plane, and the
difference between the CDF of model- and landscape-based travel times is:
57
∆� (<%) = $%&�(<%) − $%&'(<%) 3.10
where M and L correspond to model-based and landscaped-based, respectively; and i is the
number of 10 quantiles of the CDFs: 10, 20, 30, 40, 50, 60, 70, 80, 90, and 99. The adjusted
model-based plane velocity (�,)∗ ) for segment i is determined by:
�,)∗ = �∆X�∆X?,) − ∆�(<%)
3.11
where �∆X is the model-based plane segment length and ?,) is the original plane velocity
exported from HRR, and the velocity modification ratio 2) is determined:
2) = �,)∗?,) 3.12
From this point, the matching process is identical to Zhao and Beighley (2017). The
surface roughness adjustment factor for the segment (7) ) is the inverse value of 2), and
surface roughness used for kinematic wave routing in HRR is multiplied by 7). Note that,
7) is adjusted for each hillslope section from the bottom to top, and the model-based travel
time CDF is recalculated with each newly generated 7). To obtain the optimal 7) values,
the procedure is repeated until the root mean square error (RMSE) between the CDF’s less
than the 1% of the initial RMSE between CDFL and CDFM.
3.3. Results & Discussion
Two slope scenarios are investigated: (1) spatially constant slopes for hillslopes (Sp =
8.66%) and channels (Sc = 2.57%) determined by averaging slopes for all model units in
the reference model resolution (1 km2); and (2) spatially varied slopes hillslopes and
58
channels representing the slopes derived from DEM. The purpose for the constant slope
condition is to compare with the results from Zhao and Beighley (2017), which used
constant velocities for hillslopes and channels. For the varied slope case, a minimum slope
was set to 0.01% to account to challenges associated with DEM accuracy.
3.3.1. Travel Time Grids
To develop the travel time grids, the velocities from reference model resolution (i.e., 1 km2)
are re-mapped to DEM pixel scale. For hillslope velocity, α and β in equation (3.2) are
determined for each model unit. The mean Pearson correlation coefficient for the power
functions for both uniform and varied slope scenarios from all model units (i.e., 339,635
units) at the reference model resolution is 0.99. The minimum correlation coefficient for
uniform slope case is 0.89 and 0.75 for varied slope case. Figure 3.2 shows an example
model unit for the uniform and varied slope scenarios, the correlations are both 0.99. Using
equation (3.2) and upstream flow lengths (Ls), a grid of hillslope velocities is generated. A
similar procedure is performed for channel velocity, where parameters a and b in equation
(3.5); channel widths derived based on (Allen and Pavelsky, 2015) in Figure 3.3; and
channel depths using equation (3.6) are determined. A combined velocity grid for both
hillslope and channel velocities was determined. As with surface runoff, the mean
correlation value for equation 3.5 from all model units was 0.99 ranging from 0.75 to 0.99.
The travel time grids for the varied slope scenario for 4 model resolutions are shown
in Figure 3.4. A rectangular area is selected to illustrate the effect of exclusion of the
shared common channel on travel time raster at different model resolutions. From 3200 to
59
100 km2, there are more channels in the finer spatial resolution. This results in shorter travel
times, especially for the pixels near the additional channels in the finer model resolution.
Figure 3.4. A zoom-in view of the travel time for a selected area in the Ohio River Basin
for four model resolutions and the varied slope scenario.
3.3.2. Simulated Stream Flow without TTM Method
As discussed above, a synthetic runoff experiment was applied to assess the hydrologic
response for uniform and varied slope conditions. Figure 3.5 shows the discharges from
the outlet of the Ohio River Basin for different model resolutions. Although the HRR model
runs for 30 days, the hydrograph only shows 10 days which tends to capture the key
hydrologic response and timing. For the uniform slope condition, the peak flow decreases
and the time to reach the peak increases as the model resolution increases. There are three
reasons for this pattern: (1) the plane and channel slopes are constant for all model units;
(2) more channels are represented in the finer scale models; and (3) planes are shorted in
60
the finer scale models. The hydrographs for the varied slope condition have the same
general trend. However, it should be noted that there are two peaks for the varied slope
condition, except for 3,200 km2 (i.e., the coarsest model). An explanation for this scenario
can be linked to the travel time grids for the varied slope condition in Figure 3.4, which
shows that the Ohio River Basin can be divided into two regions (i.e., northwest and
southeast). The travel time for northwestern region is longer as compared to southeastern
region.
Figure 3.5. Simulated discharge based on the 2-year 24 hour NRCS type II rainfall
synthetic experiment on Ohio River Basin for 2 scenarios: (a) constant and (b) varied
hillslope and channel slope without application of ITTM method
3.3.3. Simulated Streamflow after TTM Method
Figure 3.6a and 3.6b show the simulated hydrographs for uniform and varied slope cases
after applying the adjusted surface roughness from the TTM method. For the uniform slope
case, the method effectively improves the agreement of the coarser scale model
hydrographs to the fine scale model output in terms of both magnitude and timing. For the
61
varied slope case, the method improves the magnitude for both of the peaks with better
improvement in the second peak.
Figure 3.6c and 3.6d shows the mean values for the adjusted surface roughness
factors for each section of all model units at the difference spatial resolutions. For both
uniform and varied slope cases, the surface roughness factors follow a pattern where
correction factors increase from the bottom to top sections except for the first section (i.e.,
most downslope section). This indicates that surface roughness is often reduced at the
bottom of the hillslope and increased at the top (i.e., a larger correction factor at the top
increases travel time). Recall that in HRR, all sections on a given plane have the same
length (i.e., rectangular plane), which is not the same as in the landscape-based travel time.
For the bottom sections of the plane in HRR, the travel time CDF is often longer and
velocity needs to be decreased to match the landscape-based travel time. After the surface
roughness are reduced and velocities are increased for the bottom sections, the uppermost
sections of the plane need to be slower to match the landscape-based travel time. This
scenario suggests that the rectangular shape of planes in the HRR model needs to be re-
evaluated. For example, a triangular plane that has wider upslope area or multiple irregular
length planes along the channel could provide a better agreement with the landscape-based
travel time CDF.
Figure 3.6. Simulated discharge after modification of surface roughness using TTM method for (a) uniform and (b) varied slope
conditions at different model resolutions, and the average surface roughness modification factor of (c) uniform and (d) varied slope for
different model resolutions.
Another factor that leads to the mismatch of the hydrographs between coarse and
fine model resolutions is the travel time difference at 1 km2. Recall that a key assumption
in the TTM method is that the landscape travel time represents the model travel time at the
reference model resolution. A sample model unit from the 1km2 model resolution is
randomly selected to assess this assumption. The CDFs for the model-based and
landscape-based travel times (Figure 3.7) show that the model travel time at 1 km2 is
shorter than the landscape-based travel time. Although the TTM procedure matches the
travel time distributions from the coarser model resolutions to the landscape-based travel
time (i.e., not the 1km2 model-based travel time), the coarser scale models are compared
to the 1km2 model response (Figure 3.6). The mismatch highlighted in Figures 3.6 – 3.7
suggest that surface roughness from coarser models should be further reduced to match the
model-based travel time at 1km2.
Figure 3.7. Comparison of landscape-based and model based-travel time from 1 model
unit at 1km2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 20000 40000 60000 80000 100000
CD
F
Travel time, sec
GIS Travel Time
HRR Travel Time
64
The example discussed above is a single model unit at 1km2, which can be one of
the many units within a catchment at a coarser resolution. For instance, Figure 3.8a shows
a catchment for the 3,200 km2 model resolution, which contains 2,412 units from 1km2
model. As a test, the TTM method is applied on the 1km2 model units. The results show
that the surface roughness on the hillslope needs to be increased roughly 1.3 times for
model-based travel time to match the landscape-based travel time. Note that, the TTM was
not applied to the 1 km2 model scale in this study. It was initially assumed that this would
not be needed because the hillslope and channel velocities used to determine the landscape-
based travel time are derived from the 1 km2 model resolution. However, further analysis
suggests that even at the fine scale, there can be relatively large difference in travel time
due to differences in landscape and model flowpaths and velocity dynamics (i.e., mean
velocities, eqs. 3.1 and 3.9, used in TTM as compared to dynamic velocities simulated in
HRR to produce the hydrographs).
65
Figure 3.8. (a). Selected catchment at 3,200 km2 model resolution and the model units
from 1km2 lay under the catchment and (b) the hydrographs for the same outlet of the
catchment from 3,200 and 1 km2 with varied situations of modified surface roughness.
In this example, the 1km2 model surface roughness values should be increased by
1.3 time to decrease the velocities and increase the travel times. However, since the 1km2
model hydrographs serve as the benchmark in this study, the velocities used in the
landscape-based travel time should be increased 1.3 times to match the model-based travel
time at 1km2. Given that the coarse scale model travel time is matched to the landscape-
based travel time, the coarse scale model velocities should be increased 1.3 times as well
(i.e., reduced surface roughness by a factor of 1/1.3 or 0.8). However, the results (Figure
3.8b) indicate that 0.8 is not a sufficient decrease in the surface roughness for the coarser
0
0.2
0.4
0.6
0.8
1
1.2
8 20 32 44
Dis
cha
rge
, cm
sT
ho
usa
nd
s
Time, hour
1 km2
ITTM
Uniform factor ~0.8
Uniform factor ~ 0.4
Orig
(a)
(b)
66
model resolutions to match the 1km2 hydrographs. The 0.8 accounts for the hillslope travel
time differences at 1km2 but not channel travel times. Recall that velocities from both the
hillslopes and channels in the 1km2 model were used to derive the landscape-based travel
time grid. If the hillslope velocities are faster, the resulting channel velocities are also faster.
Thus, hillslope velocities in the coarser scale models, which integrate both hillslopes and
channels from the 1km2 model scale, should be increased more than 1.3 time to account
for the faster channel velocities from the 1km2 model. Assuming that the channel velocities
also needs to increase by a factor of 1.3 and that each 1km2 model unit within a coarser
scale model contributes one hillslope and channel segment to the landscape-based travel
time, the hillslope velocities for the catchment at 3200 km2 need to be increased by a factor
of 2x1.3 or 2.6 times (i.e., reduce surface roughness by a factor or 1/2.6 or 0.4). Figure
3.8b shows that the peak discharge and shape of the resulting hydrograph for a factor of
0.4 is nearly identical to the 1km2 model output. The factor ∼0.4 is specific to the selected
3200 km2 catchment but not exact because there are additional influences such as relative
importance of channel vs. hillslope travel time, model vs. landscape flowpaths, model unit
shape, etc. Given these additional factors, a uniform factor is determined manually for each
model resolution based on matching the coarser scale model hydrographs to the 1km2
model output.
3.3.4. Uniform Factor
To improve the hydrographs shown in Figure 3.6a and 3.6b, surface roughness values
from the TMM are multiplied a uniform scale factor (λ). To estimate the scale factor for
each model resolution, two error measurements are considered: Nash-Sutcliffe efficiency
67
(NSE) (Legates and McCabe, 1999) and difference in peak discharge using the fine model
resolution as the reference. For the uniform slope scenario, the calibration criteria is to
match the peak (i.e., minimize the difference in peak discharge). For the varied slope case,
which has two peaks in the simulated hydrographs at 1 km2, the criterion is to match the
larger peak and maximize NSE. NSE is used evaluate the performance of time to peak.
Figure 3.9. Hydrographs with the application of uniform scale factor for (a). uniform and
(b). varied slope scenarios for different model resolutions.
Figures 3.9a and 3.9b show the hydrographs at the outlet of Ohio River Basin after
applying the uniform scale factors for both uniform and varied slope cases at different
model resolutions. For the uniform slope condition, both peak flow and time to peak are
now nearly identical. For the varied slope condition, most of the coarse model resolutions
match both peaks except 3,200 km2, which does not match the second peak. This suggests
that 3,200 km2 maybe too coarse to capture the distributed response pattern for the basin.
Table 3.1 presents the uniform factors and goodness of fit measures for all model
resolutions at the outlet of the Ohio River Basin. Here, the peak difference (Ep) is
determined as |N’ / NZ|NZ , where Q1 is the peak discharge from reference model resolution and
68
Q’ is the peak discharge from the coarse model resolution after TTM method. After
applying the TTM method, both the peak flow difference and NSE improved for all model
resolutions. In addition to good performance at the outlet, NSE at five upstream locations
(Figure 3.1a) are all greater than 0.9 for all model resolution with a range of 0.914 ~ 0.999
for uniform slope scenario and 0.909 ~ 0.998 for varied slope scenario.
Table 3. 1. Difference in peak discharge from the outlet of Ohio River Basin and NSE for all model resolution during the calibration
process.
Slope
condition
Model
resolution, km2
Uniform
factor Ep
original
Ep w/
TTM Ep w/ λ
NSE
original
NSE w/
TTM
NSE
w/ λ
Uniform
3200 0.23 72% 23% 0% 0.02 0.88 0.98
1000 0.23 56% 18% 0% 0.23 0.89 0.99
320 0.21 41% 16% 0% 0.49 0.92 0.99
100 0.30 28% 14% 0% 0.69 0.92 1.00
32 0.35 18% 12% 0% 0.85 0.93 1.00
10 0.39 10% 10% 0% 0.95 0.95 1.00
Varied
3200 0.32 59% 19% 0% -0.12 0.94 0.97
1000 0.28 42% 16% 0% 0.16 0.93 0.98
320 0.27 27% 15% 0% 0.44 0.93 0.98
100 0.24 18% 14% 0% 0.65 0.91 0.99
32 0.24 15% 14% 0% 0.82 0.91 0.99
10 0.27 14% 14% 0% 0.92 0.92 0.99
3.3.5. Scaled Surface Roughness
Combining all steps, the final adjusted surface roughness ([\,)] ) is:
[\,)∗ = ^87\,)[\ 3.13
where ^8 is the uniform scale factor, kj,i is the adjusted surface roughness factor at location
i along the hillslope in model unit j, and Nj is the original surface roughness (assumed to
be 0.8). Figure 10a and 10b shows the mean value of the final adjusted surface roughness
(N’) from each section in each model unit for all model resolutions. In general, as the
model resolution gets coarser, the average hillslope length gets longer, and the surface
roughness on the hillslope must decrease to increase the hillslope velocity. The hillslope
velocity must increase in the coarse models to account for the combined flowpath processes
(hillslope runoff and channel flow) simulated as only one process (hillslope runoff). The
results for the varied and uniform slope cases are similar with the varied slope case showing
slightly larger roughness values are the coarser scale, which can be attributed to the
differences in simulated hillslope slopes. For the varied slope case, slope decreases as
model unit scale increases which is not the case for the uniform slope case. Figure 3.10
shows how surface roughness changes with model resolutions, which can be useful for
other modeling applications.
71
Figure 3.10 Mean surface roughness from all model units at different model resolutions
after applying the TTM method for (a) uniform and (b) varied slope scenarios.
The ratio of mean landscape flowpath to mean model-based flowpath (Rp), ratio of
mean surface roughness with and without application of TTM method (RN), and the ratio
of mean model hillslope velocity with and without TTM method (RV) are analyzed (Figure
3.11). As discussed above, the final surface roughness decreases as model resolution
coarsens to increase hillslope velocity. Meanwhile, as shown in Figure 3.11a, as model
resolution becomes coarser, Rp increases, which indicates that the model plane length
increases less than the landscape flowpath length (i.e., model approximation of an open
book with two parallel planes results in flowpaths that are much shorter than observed in
the landscape). In Figure 3.11b, as Rp increases (i.e., as the model resolution becomes
coarser), the relative change in required surface roughness decreases. A similar pattern is
shown in Figure 3.11d, where RN decreases as Rp increases. The combined effects on the
required hillslope velocity are shown in Figure 3.11c, where both roughness changes and
model vs. landscape flowpath differences are integrated into net changes in hillslope
velocity.
72
Figure 3.11. Relationships for ratio of flowpath lengths (Rp) with the final surface
roughness (N’) and ratios of surface runoff velocity (RV) and surface roughness (RN).
Figure 3.12 shows the density of required surface roughness values for 3 model
resolutions with corresponding model flowpath lengths for the uniform and varied slope
cases. For coarse model resolutions, the required roughness tends to decrease as the
hillslope length increases which is consistent with the pattern shown in Figure 3.11a. For
both constant and varied slope scenarios, the highest density of surface roughness
corresponds to larger roughness values as the model resolution becomes finer. However, it
also suggests something happens when plane length is less than about 1 km. For lengths
less than 1 km, the spread of surface roughness increases with no clear patterns. This could
be due to limitation in the kinematic wave method solution used in HRR. The
computational time step is this study is 1 hour which may be too long for these shorter
distance steps. Note that, the plane length of densest regions of modified surface roughness
is similar to the average plane lengths in Table 2.1. For example, the plane length with
73
densest area 3 km for the 100 km2 resolution model, which has an average plane length
2.74 km.
Figure 3.12. Distribution and density of surface roughness and model flowpath length at
different model resolutions after applying the TTM method for the uniform (a,c,e) and
varied (b,d,f) slope scenario. Color indicates the density of the surface roughness.
74
3.4. Conclusion
In this study, surface roughness is upscaled in the HRR model using the Travel Time
Matching (TTM) method described in (Zhao and Beighley, 2017) with: (1) spatially varied
velocities based on flowpath length and slope; and (2) the exclusion of travel time in
channels, which are contained in both the fine and coarse model resolutions. The upscaling
method is applied in the Ohio River Basin using two test cases: constant and varied slope,
and a synthetic 24-hr rainfall-runoff event (Zhao and Beighley, 2017). The reference
model resolution is assumed to be 1km2, and seven model resolutions are investigated: 3.2,
10, 32, 100, 320, 1000, 3200 km2.
After applying the TTM method, hydrographs from coarse model resolutions are
much closer to matching hydrographs from the reference model resolution for both uniform
and varied slope cases. However, they still do not exactly match the reference model
resolution (1km2). Further investigation shows that the landscape-based and 1km2 model-
based travel time distributions do not agree. Although the landscape-based travel time is
derived from the 1km2 model output, differences in flowpath lengths and velocity dynamics
result in the landscape-based travel time being rough 1.3 times longer than the reference
model. This finding indicates that surface roughness in the coarser model resolutions,
which are determined using the landscape-based travel time, need further reductions to
match the hydrograph from the 1km2 model. Thus, a uniform scale factor is determined
manually by minimizing peak flow differences and maximizing NSE between coarse and
reference model streamflow. Using the uniform scale factor, all simulated hydrographs
from the coarser models are shown to approximately match the output from the reference
model. The 3200 km2 model resolution for the varied slope case has the lowest NSE
75
compared to other model resolutions, suggesting the spatial scale may be too coarse to
effectively capture the response pattern of the basin.
After examining the distribution of surface roughness along the hillslope flowpath,
surface roughness decreases as the ratio of landscape and model flowpath increases. As
model resolution coarser, the landscape flowpaths are much longer than the model
flowpaths, even both landscape and model flowpaths increase. The ratio of landscape and
model hillslope velocity increases larger as the surface roughness decreases to minimize
the travel time difference. For the coarsest model resolution 3200 km2, the landscape
hillslope velocity is 14 times faster than the model hillslope velocity while the ratio of
landscape and model flowpaths is 2.5 and the surface roughness is decreased by 90%.
There are still several limitations in this study. The TTM method has been only
investigated for the surface runoff. Future efforts will investigate if the method can be
applied to subsurface or ground water flow. The study is based on the synthetic runoff
experiment, which limits our ability to compare results to observed streamflow. The
assumption that model travel time can be reasonably represented by landscape travel time
at 1 km2 using 50% of max model velocity is likely not optimal. Further study will explore
alternative methods for determining a representative velocity (e.g., changing percentage of
the max velocity). Finally, the rectangular shape assumption for the catchment is
questionable. Future study will explore possibilities of other shapes for simplification of
the model units in HRR model (e.g. triangular or irregular shapes).
76
4. SCALING SURFACE AND SUBSURFACE
ROUTING PROCESSES IN HYDROLOGIC
MODELS
Abstract
Hydrologic scaling studies have often focused on forcings (e.g., precipitation and
evapotranspiration) or stores (e.g., soil moisture, snow), but few have investigated hillslope
and channel routing processes. This study presents a scaling method for both surface and
subsurface flow routing processes in the Hillslope River Routing model that results in
nearly identical streamflow response (magnitude and timing) characteristics regardless of
model resolution. Here, a reference scale (i.e., resolution for which model and actual
flowpaths are similar) model resolution of 1 km2 is used as the benchmark. An application
is presented to illustrate how coarse scale model routing parameters are initialized by
upscaling reference model resolution response characteristics, calibrated using observed
streamflow, and downscaled to revise the reference model parametrization. Here, scaling
is performed by matching travel time distributions from DEM-derived and model-derived
flowpaths, which vary based on model resolution, by adjusting surface and channel
roughness and lateral hydraulic conductivity. To isolate routing processes in the model,
observed runoff from 90 U.S. Geological Survey (USGS) streamflow gauges in the Ohio
River Basin is used to force the model. USGS streamflow is separated into surface and
subsurface components using a recursive digital filtering method. Hourly surface and
subsurface runoffs are then distributed throughout the Ohio River Basin, assuming runoff
is spatially uniform over each gauge’s contributing area. Spatial interpolation is used to
77
estimate runoff for ungauged land areas. In this study, the reference model resolution (1
km2) and six coarser scale model resolutions are investigated: 10, 32, 100, 320, 1000, and
3200 km2. Results show that the coarser scale models have nearly identical response
characteristics to the reference scale model. A resolution of 320 km2 is selected as the
optimal model resolution for calibration to selected U.S. Geological Survey gauges based
on tradeoffs between computational efficiency and RMSE improvements. The routing
parameters in the 320 km2 model are calibrated to USGS streamflow and transformed back
to the reference model. The findings support that coarser model resolutions can be used for
calibration and multi-scale parameterizations.
78
4.1. Introduction
Hydrologic modeling has transformed from largely empirical to more physically-based
approaches over the past 50 years and has come to focus more on Earth system science
rather than engineering applications (Hall et al., 2014; Sivapalan, 2018). In addition,
hydrologic models are often integrated with models describing many biogeochemical
processes to enable understanding of more complex problems in both the natural and built
environments (Wagener et al., 2010). However, the balance between system spatial
heterogeneity (e.g., precipitation, soils, land cover) and model process representation (e.g.,
length and time scales in modeling frameworks) is still a challenge; often referred to as
scaling (Bloschl, 2001; Bloschl and Sivapalan, 1995; Kitanidis, 2015).
Downscaling and upscaling are the two main approaches to overcoming challenges
associated with mismatches between observation and model resolutions. Because of the
critical role of precipitation in rainfall-runoff modeling, downscaling is widely used for
meteorological data such as precipitation and temperature. For example, Maurer and
Hidalgo (2008) applied two different statistical method to downscale the monthly
temperature and precipitation gridded data to daily temporal scale for western US. Bieniek
et al. (2016) proposed a dynamic downscaling scheme to disaggregate precipitation and
temperature data in cold regions. Seyyedi et al. (2014) proposed a stochastic downscaling
scheme applicable to Global Reanalysis Precipitation Datasets (1°x1°) using finer-
resolution satellite and radar-gauge rainfall data products. A monthly high resolution
global precipitation database was created by Karger et al. (2017) using the statistical
downscaling and orographic enhancements.
79
Unlike fully distributed physically-based hydrologic models, computational units
in lumped and semi-distributed models (Krysanova et al., 1999) are conceptual and rely on
the simplification of catchment heterogeneity (i.e., uniformly distributed parameters). The
advantages are reduced parameter requirements and high computational efficiency.
However, the resolution of simplified model units is generally coarser than soil, landscape
and meteorological data, which requires these data to be aggregated to the same or a similar
spatial resolution to produce meaningful hydrologic output. Challenges associated with
upscaling are bias and uncertainty in the resulting model outputs (Ichiba et al., 2018).
Upscaling is often applied to soil parameters, soil moisture (Crow et al., 2005; Mohanty et
al., 2017; Qin et al., 2013; Vereecken et al., 2014), and topographic characteristics (Ozgen
et al., 2015; Pau et al., 2016; Shi et al., 2015). Given the complexity of many hydrologic
models, downscaling and upscaling are often utilized simultaneously (Pau et al., 2016;
Rakovec et al., 2016).
Numerous studies have used models to investigate subsurface process to monitor
the fluid dynamics and biogeochemical reactions (Binley et al., 2015). However, few have
focused on upscaling subsurface flow characteristics due to the complexity of subsurface
conditions (e.g., different soil types such as bedrock or aquifer). Most studies have focused
on soil porous media, i.e. pore-scale (Aguilar-Madera et al., 2019; Blunt et al., 2013;
Farmer, 2002; Frippiat and Holeyman, 2008; Gueguen et al., 2006; Konyukhov et al., 2019).
Vermeulen et al. (2006) reviewed several upscaling techniques for Darcy’s law and the
Richard’s equation and concluded that heterogeneity of hydraulic conductivity and the
boundary condition are key factors in subsurface flow upscaling. Hydraulic conductivity
in Darcy’s law has also been investigated in terms of upscaling (Bierkens and van der Gaast,
80
1998; Ghanbarian et al., 2017; Wen and GomezHernandez, 1996). However, methods have
either focused on soil pore to small catchment scales without considering large-to-regional
numerical modeling or have only been used in fully distributed models. Moreover, some
upscaling methods rely on overly complicated statistical or geostatistical techniques that
significantly increase computational demand and limit applicability to larger regions
(Andra et al., 2013; Zinn and Harvey, 2003). In addition, some upscaling methods lack
application to subsurface flow simulation in hydrologic models and fail to consider
parameter uncertainty and/or bias (Fatichi et al., 2016). Yet, it is critical to understand how
scale or model resolution influence uncertainty and bias for both model inputs and outputs
(Heuvelink, 1998; Saint-Geours et al., 2014; Verburg et al., 2011).
This study has three objectives: (1) integrate subsurface flow processes in the
Travel Time Matching (TTM) method presented in Zhao and Beighley (2017) for upscaling
routing parameters in a semi-distributed hydrologic model; (2) generate spatial-temporal
surface and subsurface runoff using hourly streamflow data from 90 USGS gauges
throughout the Ohio River Basin; and (3) combine both upscaling and downscaling of
surface, subsurface and channel routing parameters in a model calibration application.
4.2. Methodology
In this study, we apply the Hillslope River Routing (HRR) model (Beighley et al., 2009;
Beighley et al., 2015; Yoon and Beighley, 2015), a semi-distributed, physically-based
hydrologic model, to the Ohio River Basin. The model uses kinematic wave routing to
transform lateral surface and subsurface runoff and diffusion wave routing to for channel
and floodplain flows. The key computational units are hillslopes and channel reaches,
81
where hillslopes are approximated as rectangular planes and each catchment is divided into
two identical hillslopes with a channel (Figure 4.1). To reduce the computational cost,
surface and subsurface flow are assumed to be uniformly distributed along the channel
(Figure 4.1b–4.1d). Plane and channel slopes are determined by averaging pixel slopes for
the catchment or only pixels along the channel, and pixel slopes are determined using a
90m Digital Elevation Modeling (DEM). Six USGS gauges are used for calibration (Figure
4.1a).
Figure 4.1. The Ohio River Basin and landscape partitioning in the hillslope river routing
model. (a) A river network of 1000 km2 with six selected U.S. Geological Survey gauges.
(b) One model unit (catchment). (c) A catchment split by a channel. (d) A conceptual
illustration of hillslope and channel routing.
82
4.2.1. Travel Time Matching Framework
The Travel Time Matching (TTM) method (Zhao and Beighley, 2017) adjusts routing
parameters in the model to match travel time distributions generated from landscape (e.g.,
90-m DEM) and model scale flowpath assumptions. To develop the landscape-based travel
time, a reference scale model resolution is used to develop hillslope and channel flow
velocity functions based on flowpath length or contributing drainage area (see Chapter 3).
Previously, only overland flow was considered. The following sections provide a
framework for estimating travel time distribution for subsurface flow and an application
where surface and subsurface routing parameters are upscaled independently in a case
study using measured streamflow in the Ohio River Basin.
4.2.2. Travel Time Distributions for Subsurface Runoff
Similar to the surface flow experiment in Chapter 3, to evaluate the TTM method for
subsurface flow, we apply a synthetic subsurface runoff of 0.254 cm for 1 month to the
entire Ohio River Basin (i.e., roughly 520 m3/s at the outlet). Subsurface flow in the HRR
model is simulated based on the Dupuit approximation with an assumed kinematic wave
that is equal to the head gradient for the slope of the model unit plane slope. Based on
Darcy’s law, the subsurface flow rate (qss) per unit width along a catchment’s hillslope is:
qss = _T�ℎ* 4.1
where K is saturated hydraulic conductivity, Sp is surface slope of the catchment which is
assumed to be the subsurface surface slope, h* is the hydraulic flow depth which is h/Φ
where h is the depth of saturated flow in the aquifer and Φ is the effective porosity of the
subsurface layer. Saturated hydraulic conductivity and effective porosity are obtained from
83
the global data set of soil hydraulic and thermal parameters for earth system modeling (Dai
et al., 2013). From equation (4.1), the subsurface flow velocity (u) is:
a = _T� 4.2
Channel velocities are determined using identical procedures from Zhao and
Beighley (2017). Because the Muskingum–Cunge routing method is used in the HRR
model, the velocity in the channel cannot be exported directly from the model. Instead, the
channel discharge from the channel segment (i.e., 10) is exported. The average discharge
for the channel segment of each model unit (Qa,c) is calculated as half of the maximum
discharge (Qm,c):
Qa,c =
NK,b� 4.3
assume that the channel is wide and rectangular, the channel velocity (Vc) is calculated
using Manning’s equation:
� = 1Q %1/R S TA/�
4.4
where n is channel roughness, D is average water depth, W is average channel width, and
S is the slope of the channel. Note that the average channel width is derived from Allen
and Pavelsky (2015). The power function is fit to generate the relationship between the
average channel width and the accumulated area as explained in Chapter 3. From equation
4.2, the velocity of subsurface flow varies for each model unit. To be consistent with the
use of half velocity in the channel, we divide the velocity of subsurface flow by 2 as the
average velocity of subsurface flow.
There are two travel times in this study. One, model-based travel time from the
HRR model, which is based on the assumption of rectangular model unit shape. Two,
84
landscape-based travel time based on the velocities and flowpath lengths. Model-based
travel time for a given model unit (��) is:
�� = U ∆��,)AB
)CA 4.5
where M is represents the model, ∆� = ��/10 and is the plane flow length for one length
step along the hillslope, and �,) is the flow velocity at location i along the hillslope
obtained from the reference model. Because the travel time matching method focuses on
the plane subsurface flow travel time, travel time in the channel is ignored.
Landscape-based travel time ( �' ) is determined based on cumulating time
associated with DEM pixel flow lengths and velocities. The pixels velocities are derived
from the reference scale model as described above. A travel time grid is constructed and
the travel times for each pixel contained within a model unit boundary are used to derive
the travel time distribution.
4.2.3. Matching Travel Times by Adjusting Hydraulic Conductivity
In the Travel Time Matching (TTM) approach, the travel time distribution extracted from
the landscape-based travel time pixels within the coarse resolution model boundary is
considered to be the “true” travel time. If the model-based travel time is different from the
true travel time, the hydraulic conductivity of the model unit is adjusted. The goal is to
adjust the CDF of �� to match the CDF of �' by modifying the hydraulic conductivity in
the model along each section of the hillslope to increase or decrease the velocity of
subsurface flow.
85
The travel time CDF modification procedure from (Zhao and Beighley, 2017) is
applied here. For each model unit, only one kinematic wave routing solution is
implemented, and the plane response to the channel is assumed to be uniform along the
channel. Ten quantiles of CDF are used to evaluate the travel time matching: 10%, 20%,
30%, 40%, 50%, 60%, 70%, 80%, 90%, and 99%. The travel time matching procedure
starts from the bottom of the plane. The difference between the CDF of model- and
landscape-based travel time is
∆� (<%) = $%&�(<%) − $%&'(<%) 4.6
where M and L are model- and landscape-based travel time, respectively, and i is the
number of 10 quantiles of the CDFs. The adjusted model-based average plane velocity for
segment i can be determined as
�,)∗ = �∆X�∆X?,) − ∆�(<%)
4.7
where �∆X is the model-based plane segment length and ?,) is the original plane velocity
exported from the HRR model. The velocity modification ratio 2) is determined as:
2) = 4.,6∗4K,6. 4.8
The hydraulic conductivity adjustment factor for segment kd is set to Rd, and 7) is used to
increase or decrease hydraulic conductivity in the kinematic wave solution. Note that 7) is
adjusted for each segment from bottom to top, so the model-based travel time CDF is
recalculated with every new kd generated. To obtain the optimal combination of 10 kd values, the procedure is repeated until the root mean square error (RMSE) of CDFM is less
than 1% of the RMSE of CDFL.
86
4.2.4. Runoff Generation
The second goal of this study is to evaluate the TTM method for both surface and
subsurface runoff. For this experiment, spatial-temporal runoff for a 1-year period
distributed throughout the Ohio River Basin is developed based on USGS streamflow
measurements. Ninety USGS gauges were selected. All gauges have discharge data for
2015 and are located on tributaries to the mainstem of the Ohio River. The USGS gauges
provide daily and 15-min discharge data in most cases. If available, 15-min discharges
were averaged to 1-hr discharge. Otherwise, the daily discharge was used to determine the
hourly discharge, which was used for roughly 10% of the total hourly runoff values that
were generated. For each USGS drainage area, runoff (:f,)(�)) is:
:f,)(�) = H)(�)E) 4.9
where H)(�) is discharge from USGS gauge i at time t and E) is the drainage area for USGS
gauge i. In this research, the time period is 01/01/2015 through 12/31/2015, a period for
which all selected USGS gauges have daily or hourly discharge data.
Because the data from USGS gauges include both surface and subsurface flow, it
is necessary to separate the streamflow. Here, we use the separation technique from (Ayers
et al., 2019; Nathan and Mcmahon, 1990). This method is derived from signal processing,
which considers the hydrograph as the signal and is based on a recursive digital filter. The
filter is described as:
g� = �g�/A + (1 + �)2 (h� − h�/A) 4.10
87
where g� is the filtered quick response at the kth sampling instant, h� is the original
streamflow, and α is the filter parameter; base flow is thus defined as h� - g�. Here α and
k are parameters that must be determined.
Next, the TTM method was applied for both surface and subsurface flow
independently. Each model unit was assigned to one USGS gauge based on its location
(discussed in results section). The surface and subsurface runoffs were then simulated in
HRR for the calendar year 2015.
4.2.5. Model Calibration
Two calibration procedures are investigated. First, with the synthetic subsurface runoff, we
upscale the subsurface hydraulic conductivity for coarse model resolutions to match the
hydrologic responses from reference model resolution using a uniform scale factor. The
calibration is based on minimizing the peak discharge error between the coarse and
reference model resolutions. The peak discharge error (Ep) is:
�� = |H� − HA|HA 4.11
where Qc is the peak discharge at coarse model resolution and Q1 is the peak discharge at
1 km2 model resolution (i.e., reference resolution).
Secondly, we calibrate both surface and subsurface flow routing parameters from
the coarse and reference model resolutions using the runoff generated from the USGS
gauges in the Ohio River Basin (Figure 4.5). For this process, one coarse resolution model
is selected for calibration to USGS streamflow based on computational efficiency and
changes model performance as compared to the reference model. To evaluate model
88
performance in the calibration process, we use two goodness-of-fit indices, the Nash–
Sutcliffe Efficiency coefficient (NSE) and Root Mean Squared Error (RMSE):
[T� = 1.0 − ∑ (ij − :j)�k)CA∑ (ij − il)�k)CA 4.12
where t is the time, O is an observation, P is a prediction, and the overbar denotes the mean
for the entire period of the evaluation. The NSE ranges from minus infinity to 1.0, where a
higher value indicates better model performance. Note that, because NSE provides a
dimensionless measurement of model performance, many argue that it should not be used
exclusively (Legates and McCabe, 1999). RMSE is thus used in this research to quantify
the error in units of the variable:
2mT� = n∑ (ij − :j)�k)CA Q 4.13
where n is total number of observation or simulated flow data.
4.3. Results and Discussion
4.3.1. Travel Time Matching for Subsurface Runoff
As discussed previously, the velocity of subsurface flow is determined by saturated
hydraulic conductivity and plane slope (equation 4.2). The TTM method was successfully
applied in cases of both constant and varied slopes for surface runoff in Chapter 3 and
(Zhao and Beighley, 2017). Figure 4.2 shows how the TTM method improves the
simulated streamflow response for each model resolutions. The TTM method increases the
peak flow from all coarse model resolutions except 10 km2. However, the peak discharges
are still not large enough, which is similar to the issue noted in Chapter 3, due to travel
89
time differences between the reference model resolution and landscape-based travel time
used for the TTM method.
Figure 4.2. Hydrographs from the outlet of the Ohio River Basin with synthetic
subsurface runoff (Wei et al., 2014)(Wei et al., 2014)(Wei et al., 2014)(Wei et al.,
2014)at 1000 km2 for (a) before and (b) after apply the TTM framework.
Figure 4.3 shows the mean modified value the saturated hydraulic conductivity (Kh)
for each section from all model resolutions. The bottom section changes (increases) the
most compared to the other sections, which is the same trend as was found for surface
runoff in (Zhao and Beighley, 2017). The figure also shows that saturated hydraulic
conductivity increases more at a coarser model resolution. When the model resolution is
coarser, the plane length is longer, which indicates a longer travel time for subsurface flow.
Increasing the saturated hydraulic conductivity increases the velocity of subsurface flow.
To account for the difference between the reference model resolution and
landscape-based travel time distributions, the hydraulic conductivity is modified by
multiplying it by the uniform scale factor (^o). For each coarse model resolution, the model
is calibrated based on the minimizing peak discharge error (Ep) and maximizing NSE. The
90
Figure 4.3. The mean modified hydraulic conductivity (Kh) along the hillslope for each
model resolution.
resulting scale factors are show in Figure 4.4a. The scale factor increases (i.e., increases
the velocity of subsurface flow) for coarser model resolution, which decreases the travel
time for subsurface runoff. The average scaled hydraulic conductivity for each section of
each model unit is shown in Figure 4.4b. The scaled hydraulic conductivity K* is
calculated as:
_∗ = ^o_o_ 4.14
where K is the original data inputs of hydraulic conductivity, Kh is the modification value
of hydraulic conductivity for the section and ^o is uniform factor. As shown in the Figure
4.4b, scaled hydraulic conductivity increases as the model resolution increases, which
accelerates subsurface flow. The final hydrographs for different model resolutions for
varied effective porosity are shown in Figure 4.4c. Now, simulated discharges from the
coarse model resolution match the discharges from the reference resolution model.
91
Figure 4.4. (a) uniform scale factors, (b) mean model unit scaled hydraulic conductivity,
and (c) simulated discharges for all model resolutions.
92
4.3.2. Ohio River Basin Runoff
Figure 4.5 shows the river network derived from the HRR model at 320 km2 with the 90
USGS gauges selected. The drainage area was delineated for each USGS gauge. The range
of the drainage area is 115 ~ 13,732 km2, with a mean area of 965 km2. Each HRR model
unit was assigned to one USGS gauge. If a model unit is inside a gauge drainage area, that
gauge is used. If a model unit contains multiple gauges the gauge located closest to the
geographic center of the model unit is used. If the model unit does not contain a gauge or
is not within a gauged watershed, the nearest gauge is used.
Figure 4.5. U.S. Geological Survey (USGS) tributary gauges and their contributing land
area (90) selected to derive runoff throughout the Ohio River Basin.
93
The subsurface flow is hard to measure especially in a large basin like the Ohio.
Depending on factors (e.g., season, soil types, rainfall, etc.), the percentage of subsurface
flow in total streamflow can vary significantly (Miller et al., 2016; Sklash and Farvolden,
1979). Chen and Kumar (2001) applied a basin scale hydrologic model to estimate the
contribution of surface and subsurface runoff to streamflow in Mississippi River Basin.
Based on their study, the range of subsurface runoff fraction for Ohio River Basin is 4 ~
65%. Here, the average ratio for the 90 USGS gauges is assumed to be 25%. For baseflow
separation using equation 4.10, values for α and k were determined as 0.9975 and 4,
respectively, providing an annual averaged subsurface runoff fraction of 25%. The
separated baseflow and total runoff are shown in Figure 4.6.
Figure 4.6. Separation of surface and subsurface flow for the Ohio River Basin using
recursive digital filter.
94
4.3.3. TTM Method for both Surface and Subsurface Flow
Based on USGS streamflow and baseflow separation, surface and subsurface runoff time
series were generated throughout the Ohio River Basin. The TTM method was applied to
each model resolution to upscale surface roughness (Chapter 3) and subsurface hydraulic
conductivity (above) separately. The HRR model was then used to simulate streamflow
from the coarse and reference model resolutions using surface and subsurface runoff as
forcings.
Figure 4.7 shows simulated hydrographs with (including uniform scale factors) and
without TTM method for the coarse and reference resolutions models. Note that, the
uniform scale factor is not applied yet and results are only compared to the reference model
to assess TTM method for combined surface and subsurface routing parameters. The first
month of 2015 is used for model warm-up and excluded in the assessment. The TTM
method improves both peak discharge and baseflow, which is clearly seen for the April
through May period. Overall, the pattern is identical to the experiments in (Zhao and
Beighley, 2017) and Chapter 3. However, Figure 4.7d shows that two peak flows from
the 3200 km2 model resolution in April are higher than in the 1 km2 model after adjustment
for surface roughness and hydraulic conductivity. In the previous two studies with synthetic
runoff, peak flow from the coarse model resolution increased but always remained lower
than the peak from the 1 km2 model. This finding suggests that calibration based on peak
error may be not applicable.
95
Figure 4.7. Simulated flow at the outlet of the Ohio River Basin at various model
resolutions using a U.S. Geological Survey Ohio River Basin runoff (a and c) without and
(b and d) with the travel time matching method.
Table 4.1 shows the average NSE, RMSE, and peak error for the six USGS gauges
from the different model resolutions as well as the change in these three goodness-of-fit
indices. Note that, we convert RMSE to mm/day by dividing by the drainage area for each
gauge. For the no adjustment case, all goodness-of-fit indices improve as the model
resolution decreases because there are more channels in the finer model resolution, which
for unscaled surface roughness and subsurface conductivity provides better agreement to
the timing of the observed streamflow. After we adjust surface roughness and hydraulic
conductivity, all evaluation measures improve except for the 10 km2 model resolution. The
96
maximum increases in NSE and the peak error are 13% and 67% at 3200 km2, respectively.
The largest decrease in RMSE is 59% for 3200 km2.
Table 4. 1. Average Nash–Sutcliffe efficiency coefficient (NSE), root mean square error
(RMSE), and peak error (Ep) for six U.S. Geological Survey gauges from the different
model resolutions with and without application of Travel Time Matching (TTM).
Model
resolution,
km2
Without TTM After TTM
Peak
Error NSE
RMSE,
mm/day Peak
Error NSE
RMSE,
mm/day
3200 26% 0.87 0.566 9% 0.98 0.235
1000 25% 0.91 0.460 11% 0.98 0.212
320 14% 0.94 0.385 6% 0.98 0.196
100 10% 0.96 0.304 6% 0.99 0.189
32 7% 0.98 0.226 5% 0.99 0.172
10 4% 0.99 0.153 5% 0.99 0.153
Next, the uniform scale factors for surface roughness (λs) and hydraulic
conductivity (λh) are estimated. Although surface roughness and hydraulic conductivity
were upscaled independently, the two uniform scale factors, surface (λs) and subsurface
(λh), are determined simultaneously. For subsurface flow, hydraulic conductivity is
multiplied by the uniform scale factor (i.e., scale factor directly impacts conductivity; if
λh > 1, conductivity increases). For surface flow, roughness is also multiplied by a scale
factor. However, roughness is inversely related to velocity (i.e., scale factor inversely
impacts surface roughness; if λs < 1, roughness increases). Based 100’s of combination of
the two scale factors, Figure 4.8 shows the peak error, NSE, and RMSE for different
combinations of surface and subsurface scale factors using the 3200 km2 model resolution.
The peak discharge error shows the opposite trend from NSE and RMSE. For example, if
the subsurface factor is fixed at 10, NSE and RMSE continue to improve as the surface
scale factor increases but the peak discharge error increases. Recall that the peak error is
97
calculated using the only using the largest peak. Because this study aims to match the
overall hydrograph, the peak ratio is not used as a goodness-of-fit indicator in the
calibration procedure below. The optimal range in the surface scale factor is 0.6 to 0.8 and
2 to 5 for subsurface scale factor.
Figure 4.8. Impacts of surface (λs) and subsurface (λh) uniform scale factors on peak
discharge error, Nash–Sutcliffe efficiency coefficient (NSE), and root mean square error
(RMSE) for the 3200 km2 model resolution.
Numerous combinations of the surface and subsurface factors are simulated to find
the optimal values. A two-step procedure is used to find the optimal combination of
uniform surface and subsurface factors. First, RMSE is used to select the target factors
from the factor ensemble simulations, Next, the target factors are altered slightly and NSE
is used to select the optimal values. The procedure is applied for all model resolutions.
Table 4.2 shows the optimal combinations of the calibrated uniform factors from the
different model resolutions. The calibration criteria are minimum RMSE and maximum
98
NSE. For all model resolutions except 3200 km2, NSE is ≥0.99. The resulting scale factors
and TTM adjustments to hillslope roughness and hydraulic conductivity provide simulated
streamflow that from any of the coarse scale models that matches the reference scale model.
Table 4.2. Combinations of surface (λs) and subsurface (λh) uniform scale factors at
different model resolutions with the optimal Nash–Sutcliffe efficiency coefficient (NSE)
and root mean square error (RMSE).
model
resolution,
km2 λs λh NSE
RMSE,
mm/day
3200 0.68 2.63 0.979 0.224
1000 0.30 3.33 0.995 0.104
320 0.24 3.57 0.998 0.058
100 0.20 3.13 0.999 0.040
32 0.22 2.94 0.999 0.037
10 0.20 3.33 0.999 0.037
4.3.4. Calibration Using USGS Streamflow
In the discussion above, TTM method is used for surface and subsurface flow to match
hydrographs from the coarse model resolutions to the fine model resolution. The next step
is to calibrate a coarse resolution model with USGS streamflow measurements and
downscale the calibrated model parameters to the reference model for validation. This
concept is referenced as multi-scale calibration, herein. While multi-scale calibration can
be applied using any of the coarse resolution models, the optimal coarse resolution model
for calibration is identified based on two criteria: (i) model run time (i.e., computational
efficiency); (ii) RMSE between coarse model resolution and 1 km2. Table 4.3 shows
RMSE and model run time from the coarse resolution models and 1 km2 reference model
resolution. Figure 4.9 shows the percent increase in simulation time and percent decrease
in RMSE from the different model resolutions. For 100 and 3200 km2, the average RMSE
99
is much higher than other model resolutions. For 10 and 32 km2, although the average
RMSE is the lowest, the model run time is roughly 4-10 times longer. The 320 km2 model
resolution is selected as the optimal calibration model resolution because of the balance
between slightly lower RMSE and short run time.
Table 4.3. Comparison of average root mean square error (RMSE) and model run time
for selected U.S. Geological Survey gauges for the different model resolutions.
Model
resolution,
km2
RMSE,
mm/day RMSE
decrease
Run
time,
sec
Run
time
increase
3200 0.224 100% 9.9 0%
1000 0.104 54% 10.4 5%
320 0.058 44% 15.4 48%
100 0.040 31% 37.3 142%
32 0.037 7% 169.7 355%
10 0.037 2% 1961.3 1056%
Figure 4.9. Percent change in root mean square error (RMSE) and model run time from
the different model resolutions.
0%
20%
40%
60%
80%
100%
120%
0%
200%
400%
600%
800%
1000%
1200%
1 10 100 1000 10000
Pe
rce
nt
cha
ng
e,
RM
SE
Pe
rce
nta
ge
cha
ng
e,
com
pu
tati
on
tim
e
Model resolution, km2
Computation Time RMSE
100
The parameters used for calibration are surface roughness, hydraulic conductivity,
and channel roughness. First, surface roughness and hydraulic conductivity are calibrated
because they are scale-dependent and have potentially large parameter ranges. Then,
channel roughness is calibrated to fine-tune model performance. The 3 parameters are
calibrated in the HRR model for the 320 km2 model resolution using uniform correction
factors for hydraulic conductivity (fh), surface roughness (fs), and channel roughness (fn),
where the simulated parameter is the upscaled value times the correction factor. Here, we
use parameter-after-parameter calibration. That is, the values of two parameters are locked
and only the parameter calibrated is modified in the calibration process. In this study, the
initial factor ranges are 0.1–1000 for fh, 0.00001–10,000 for fs, and 0.1–3 for fn. Figure
4.10 shows the calibration process for the three factors. A fh value of 40 was selected based
on minimum RMSE. Although RMSE continues to improve slightly as fs decreases, a fs
value of 0.1 was selected because there is no significant improvement after 0.1. For channel
roughness, optimal average RMSE is 0.51 mm/day for fn = 1.5. The net effect of these three
factors are to decrease surface roughness (increase surface flow velocity), increase
subsurface conductivity (increase subsurface flow velocity) and increase channel
roughness (decrease channel flow velocity).
101
Figure 4.10 Calibration of the hillslope river routing model at 320 km2 for all five selected
U.S. Geological Survey gauges based on average root mean square error (RMSE) for three
parameters: (a) a uniform parameter for hydraulic conductivity (fh), (b) a uniform
parameter for surface roughness (fs), and (c) a uniform parameter for channel roughness
(fn).
102
Because surface roughness and hydraulic conductivity were initially upscaled in
the 320 km2 model using equations 3.13 ([\,)∗ = ^87\,)[\) and 4.14 (_∗ = ^o_o_), the
calibration provides:
[∗∗ = g8[\,)∗ = g8^87\,)[\ = ^87\,) × g8[\ 4.15
_∗∗ = go_∗ = go^o_o_ = _o^o × go_ 4.16
where N** and K** are the model parameters simulated in the coarse scale model resolutions
for surface roughness and hydraulic conductivity. Note that surface roughness and
hydraulic conductivity vary along hillslopes and between model units. Here, the calibration
is intended to adjust the reference model parameter values (i.e., the initial surface
roughness and hydraulic conductivity) as shown in equations 4.15 and 4.16. Thus, the
factors calibrated above can be directly applied to the 1 km2 model resolution parameter
values. The results (Table 4.4) show that RMSE for all gauges from the 1 km2 model are
improved and similar to the 320 km2 model with 39.4% less average RMSE. As shown in
Table 4.3, the minimum achievable RMSE for 320 km2 model resolution is 0.058 mm/day.
Of the three parameters calibrated for the 320 km2 model, fh and fs are uniform factors for
lateral flow (e.g., surface and subsurface) and can be applied to other model resolutions. In
contrast, channel roughness for the 320 km2 model can be applied to other model
resolutions but not directly because the channel network is varied for different model
resolutions.
103
Table 4.4. Root mean square error (RMSE) for five selected gauges at 320 km2 model
resolution and a comparison of the same gauges at 1 km2 with and without the same
calibrated parameters.
USGS
gauge
320 km2 original,
mm/day
320 km2 final,
mm/day
1 km2 original,
mm/day
1 km2 final,
mm/day
3086000 0.343 0.368 0.420 0.404
3216600 0.636 0.618 0.684 0.631
3277200 0.640 0.623 0.690 0.635
3294500 0.521 0.473 0.489 0.486
3303280 0.545 0.534 0.569 0.545
Average
RMSE 0.537 0.523 0.570 0.540
Average
NSE 0.838 0.846 0.816 0.838
The calibration process for the 320 km2 model resolution discussed above involves
calibrating factors one by one. Figure 4.11a shows that the optimal parameters determined
previously (i.e., fh - 40, fs - 0.1, fn - 1.5) are within the optimal range based on Monte Carlo
type simulations where all model parameters are changed randomly within their respective
ranges. Figure 4.11 shows there are many combinations of fh and fs that result in the optimal
RMSE, but a specific range for fn. This suggests that RMSE may not be ideal for
determining fh and fs because they both contribute to streamflow. Increasing one and
decreasing the other can lead to limited net change in RMSE. The importance of fn also
suggests that the TTM should be further modified to allow for channel roughness scaling.
Based on these calibration results, Figures 3.10b and 4.6c are updated to represent how
calibrated surface runoff and subsurface hydraulic conductivity vary with model resolution.
Based on comparisons to USGS streamflow, Figures 4.12a&b provide estimates of surface
roughness and subsurface hydraulic conductivity applicable to semi-distributed hydrologic
models for the Ohio River Basin. The change in model parameters with resolution may
provide insights for scaling behavior in other watersheds.
104
Figure 4.11. (a) Four-dimensional and (b–d) three-dimensional plots of the root mean square error from various ranges of three
parameters during the HRR calibration process after application of the travel time matching method.
105
Figure 4.12. Estimated (a) surface roughness (N**) and (b) hydraulic conductivity (K**)
based on the TTM framework and calibration to USGS streamflow for different model
resolutions.
4.4. Conclusion
This study demonstrates that the TTM method, which was developed for the surface runoff
routing, can be applied to subsurface routing in the HRR model. Furthermore, the method
can be applied to surface and subsurface routing simultaneously. Using the Ohio River
106
Basin as case study, relationships between surface roughness and hydraulic conductivity
and model resolution are presented and intended to provide insight on how lateral runoff
routing parameters scale in hydrologic models.
An analysis of model run time and improvements in RMSE suggests that the 320
km2 model resolution is ideal for calibration. Surface roughness, hydraulic conductivity,
and channel roughness were calibrated using the 320 km2 resolution model, with surface
roughness and hydraulic conductivity upscaled based on the TTM, and USGS streamflow
from six gauges along the Ohio River Basin. The calibrated model parameters were then
transformed to the 1 km2 resolution model, resulting in minimal changes in calibrated
RMSE and NSE (i.e., no loss in model performance from calibration resolution to reference
resolution). This application suggests that TTM method can be used for parameterization
and calibration in hydrologic modeling. Because the current method focuses on surface and
subsurface flow routing, future work will focus on methods to integrate runoff generation
model parameters and forcing data (e.g., precipitation and evapotranspiration) into the
scaling framework.
107
5. SUMMARY AND FUTURE WORK
5.1. Summary
This dissertation presents a scaling framework (Travel Time Matching) for lateral surface
and subsurface runoff routing in hydrologic models. The framework is demonstrated using
synthetic rainfall-runoff experiments and observed streamflow in the Ohio River Basin. A
multiscale calibration experiment is presented where a coarse resolution model is
parameterized using Travel Time Matching and calibrated using USGS streamflow. The
calibrated parameters are then transformed to a fine spatial resolution model without
degraded model performance. The findings from this research are used to answer the three
research questions:
(1) How do simulated flowpath characteristics and runoff response timing changes with
spatial model resolution?
With model resolution becomes finer (i.e., smaller spatial resolution), the mean model unit
area, plane length, and channel length become smaller or shorter (Figure 2.4 and Table
2.1). Here, model resolution corresponds to the threshold area used to define the river
network and corresponding model unit boundaries. For a threshold area of 1 or 1000 km2,
the mean model unit area increases from 1.5 km2 to 1,510 km2, which is similar but not
exactly the underlying threshold area. Here, we use the threshold area to define model
resolution. Changing model resolution from 1 km2 to 1000 km2, the mean plane length
108
increases from 0.73 to 7.41 or by a factor of 10.2. However, the cumulative length of
channels within the Ohio River Basin decreases from 671,000 km to 35,400 km. This
increased hillslope length and loss of channel density leads to surface and subsurface runoff
taking longer to reach a channel, increasing the time to peak discharge and decreasing the
peak discharge resulting from both surface and subsurface flow (Figure 2.7, 3.5, and 4.3).
For example, the peak discharge decreases from 56,800 to 13,500 m3/s (from 1 to 1000
km2 model resolution) for the synthetic rainfall-runoff experiment with constant velocity
assumption in Chapter 2. The time to peak increases from 38 to 59 hours. Although results
for only two resolutions are presented here, the findings presented in Chapters 2 and 3
provide details on how simulated flowpath characteristics and runoff response timing
changes with spatial model resolution.
(2) Can representative travel time characteristics be used to estimate scale-dependent
process parameters in semi-distributed hydrologic models?
Travel time estimates are used to alter surface roughness and hydraulic conductivity to
ensure similar response magnitude and timing regardless of model resolution. The time
difference between model- and landscape-based travel time is minimized by modifying the
surface roughness and hydraulic conductivity (i.e., adjusting surface and subsurface flow
velocities) along model unit hillslopes. The travel time matching method effectively
upscaled and transformed the information from finer to coarser model resolutions. In the
synthetic surface and subsurface runoff experiments, results show that hydrologic
responses from all coarse model resolutions match the reference model response with a
peak discharge error ≤ 1% and NSE ≥ 0.98. Over the range of model resolutions from 1 to
109
3200 km2, surface roughness and conductivity must be reduced a factor of 0.07 (i.e., from
0.8 to 0.056) and increased by a factor of 7 (i.e., from 0.59 to 4.23 cm/hr), respectively.
Based on mean model unit values, relationships are present to estimate surface roughness
and conductivity based on model resolution (Figure 4.12). These findings suggest that
representative travel time characteristics can be used estimate scale-dependent process
parameters in semi-distributed hydrologic models.
(3) Can scaling be used to transfer calibrated model parameters across model resolutions?
The upscaling framework was applied for both surface and subsurface flows using runoff
derived from observed USGS flow data in Ohio River Basin. Root Mean Squared Error
(RMSE) and Nash–Sutcliffe Efficiency (NSE) were used as goodness-of-fit indicators. The
upscaling results show that hydrologic responses from the coarse model resolution matched
the reference model resolution with all NSEs ≥ 0.95 and RMSEs ≤ 0.3 mm/day. A model
resolution of 320 km2 was selected based on a balance between changes in RMSE and
computational efficiency. The selected coarse model resolution (i.e., 320 km2), which was
parameterized by upscaling surface roughness and hydraulic conductivity values from the
reference model resolution, was calibrated using USGS streamflow measurements for a
one-year period by uniformly adjusting surface roughness and hydraulic conductivity to
minimize RMSE and maximize NSE. Given the upscaling approach maintains the initial
reference model parameter value (i.e., P* = ^ × &? × : ; see equation 3.14 and 4.14,
where P is the initial coarse scale model parameter), the calibrated model parameters (i.e.,
P** = f x P* = [f × P] × [^ × Fm]) can be used to estimate the reference model values. Using
this approach, the calibrated parameters were applied to reference model resolution and the
110
resulting NSE and RMSE between the reference model and USGS streamflow were similar
(NSE of 0.838 and RMSE of 0.54) to the values resulting from the calibrated 320 km2
model resolution (NSE of 0.846 and RMSE of 0.523). In other words, there was no loss
of model performance when using the parameter factors obtained from calibration at
resolution of 320 km2 in the reference 1 km2 model resolution. Thus, these findings suggest
that scaling can be used to transfer calibrated model parameters across model resolutions.
5.2. Limitations
In the velocity and travel time estimation process, there are several key assumptions. In
addition, several limitations have been identified and are discussed below:
(1) Several key assumptions are applied to estimate velocities. First, the velocity is assumed
to be steady state to estimate the travel time, e.g. 0.01 m/s for surface flow and 1 m/s for
channel flow in Chapter 2. The average velocity is used and defined as the 50% of the
maximum velocity for both hillslope and channel to simplify the calculation because
velocity is changeable with time. There are other options to determine the average velocity.
For example, instead of 50%, the percentage of the maximum velocity can be adjusted
based on optimal RMSE and NSE for travel time matching. An alternative approach is to
export the velocities during actual event periods (i.e., 1 day or 1 month) and calculate the
average velocity during that specific time period. For the channel velocity estimates,
channel width is derived using data from (Allen and Pavelsky, 2015) and drainage area.
However, in their study, there is no data for small channels with widths less than 30 meters,
because of the resolution of satellite images. In this dissertation, for the channel width less
111
than 23 meters (i.e., all rivers draining less than 1000 km2), we directly applied that derived
relationship. For example, the developed relationship (Figure 3.3) results in a width of 1.1
m for a river draining 1 km2, which is much less than the minimum width in the (Allen and
Pavelsky, 2015) dataset.
(2) In the travel time matching process, the CDF of landscape-based travel time is
approximated using a beta distribution because it is computationally expensive to extract
the pixel-based travel time CDF for each coarse model unit. For the coarser resolutions,
each model has hundreds of thousands of pixels. For the model-based travel time estimates,
there are only 10 segments for the HRR hillslope. Thus, the model-based travel time can
only be estimated from 10 segments. Although the velocity for each segment is interpolated
to generate the travel time CDF, and the CDF matching scheme is only based on the 10
segments. The number of segments on the plane could be increased to obtain more accurate
travel time CDF.
(3) In this study it is assumed that the landscape-based travel time represents the model-
based travel time for the reference model resolution. Plus, the hillslope velocities are
estimated as function of hillslope length derived from the HRR model and applied to the
landscape (i.e., lengths are not the same). In the travel time matching procedure, the model-
based travel time from the coarse model resolutions match the landscape-based travel time
at the reference model resolution. However, the discussion in Chapter 3 indicates that the
model-based and landscape-based travel time are different at the reference model
resolution (i.e., model-based travel time is 1.3 times shorted than landscape-based travel
112
time for just the hillslope portion). Thus, a uniform scale factor is applied to coarse model
resolutions to account for the difference between model-based and landscape-based travel
time at reference model resolution.
5.3. Future Work
The scaling framework presented herein can be further improved and integrated with other
research. Below are the suggestions for future work.
(1) The model-based travel time is generated using the open book assumption with the
rectangular planes. Based on the discussion in Chapter 2 (Figure 2.9 and 2.10), results
show that the rectangular shape is not an appropriate assumption. The average drainage
area ratio (defined as average ratio of mean landscape and model-based drainage area) is
not equal to 1 for all model resolutions, which suggests that the drainage area is not
uniformly distributed along the channel. The ratio varies from 0.93 to 1.31 among all model
resolutions. In general, as model resolution increases, the average drainage area ratio tends
to decrease, suggesting that rectangular shape assumption is less ideal as model resolution
increases. A model resolution of 10 km2 results in a ratio close to 1. An alternative approach
is to use a triangular shape, with the vertex at the outlet of the catchment, the plane length
at the upstream end would be longer than the downstream end. Another method is irregular
section based on the distribution of the cumulated area along the channel. First, the channel
could be broken into sections, e.g., 10 sections of channel in HRR. Then, the cumulated
area for each section could be estimated, and the plane length of each section could be
calculated based on the percentage of the section’s contributing area relative to the total
113
catchment drainage area. In general, future efforts are needed to better represent flowpath
characteristics in larger scale models.
(2) The runoff series derived from USGS streamflow data considers only 90 gauges from
tributary catchments. To improve runoff estimates, more gauges could be used. Although
the upscaling framework in this research focuses on runoff routing process, future research
is needed to integrate runoff generation processes and associated forcings such as
precipitation.
(3) In the TTM method, there are multiple assumptions related to the velocity and
flowpaths, uncertainties resulting from both those assumptions will be investigated in the
future. Instead of providing one value for scaled surface roughness or hydraulic
conductivity, the modified factors could be expressed as a range, and used for simulating
ensembles in the coarser scale models. Because of the computational efficiency of the
coarser models, the upscaling framework could be integrated with other uncertainty
analyses related to calibrated parameters, initial conditions, or multiple forcings.
(4) This dissertation only investigates routing parameter scaling in the Ohio River Basin.
It can also be applied to other hydrologic regions or globally. Developing relationships
between surface roughness, soil properties and spatial model resolution can be useful for
many modeling efforts. Global scaling relationships could provide insights for how to
account for sub-grid scale routing processes in current Earth System Models.
114
(5) The TTM framework can be extended and integrated with other interdisciplinary
studies. For example, the human impact has become an important factor in hydrologic cycle
(Aerts et al., 2018; Barnett et al., 2008; Fatichi et al., 2016), which is defined as ‘socio-
hydrology’. Sivapalan et al. (2012) suggested that socio-hydrology faces more complicated
prediction challenge across space and time scales, such as the urbanization development
that the urban area and population will increase in the future (Fletcher et al., 2013). It is
necessary to consider such scenarios for the improvement of the TTM framework. Such
improvement can also be valuable for investigation of climate change issues as TTM
framework can be integrated with other Earth System Models.
115
REFERENCE
Aerts, J. C. J. H., Botzen, W. J., Clarke, K. C., Cutter, S. L., Hall, J. W., Merz, B.,
Michel-Kerjan, E., Mysiak, J., Surminski, S., & Kunreuther, H. (2018).
Integrating human behaviour dynamics into flood disaster risk assessment. Nature
Climate Change, 8(3), 193-199. doi: 10.1038/s41558-018-0085-1
Aguilar-Madera, C. G., Herrera-Hernandez, E. C., & Espinosa-Paredes, G. (2019). Solute
transport in heterogeneous reservoirs: Upscaling from the Darcy to the reservoir
scale. Advances in Water Resources, 124, 9-28. doi:
10.1016/j.advwatres.2018.12.002
Allen, G. H. and Pavelsky, T. M. (2015). Patterns of river width and surface area revealed
by the satellite-derived North American River Width data set. Geophysical
Research Letters, 42(2), 395-402. doi: 10.1002/2014gl062764
Andra, H., Combaret, N., Dvorkin, J., Glatt, E., Han, J., Kabel, M., Keehm, Y., Krzikalla,
F., Lee, M., Madonna, C., Marsh, M., Mukerji, T., Saenger, E. H., Sain, R.,
Saxena, N., Ricker, S., Wiegmann, A., & Zhan, X. (2013). Digital rock physics
benchmarks-part II: Computing effective properties. Computers & Geosciences,
50, 33-43. doi: 10.1016/j.cageo.2012.09.008
116
Atkinson, P. M. and Tate, N. J. (2000). Spatial scale problems and geostatistical
solutions: A review. Professional Geographer, 52(4), 607-623. doi:
10.1111/0033-0124.00250
Ayers, J. R., Villarini, G., Jones, C., & Schilling, K. (2019). Changes in monthly
baseflow across the US Midwest. Hydrological Processes, 33(5), 748-758.
Bachmair, S. and Weiler, M. (2014). Interactions and connectivity between runoff
generation processes of different spatial scales. Hydrological Processes, 28(4),
1916-1930. doi: 10.1002/hyp.9705
Baiamonte, G. and Singh, V. P. (2016). Overland Flow Times of Concentration for
Hillslopes of Complex Topography. Journal of Irrigation and Drainage
Engineering, 142(3). doi: Artn 04015059, 10.1061/(Asce)Ir.1943-4774.0000984
Barnett, T. P., Pierce, D. W., Hidalgo, H. G., Bonfils, C., Santer, B. D., Das, T., Bala, G.,
Wood, A. W., Nozawa, T., Mirin, A. A., Cayan, D. R., & Dettinger, M. D. (2008).
Human-induced changes in the hydrology of the western United States. Science,
319(5866), 1080-1083. doi: 10.1126/science.1152538
Beighley, R. E., Eggert, K. G., Dunne, T., He, Y., Gummadi, V., & Verdin, K. L. (2009).
Simulating hydrologic and hydraulic processes throughout the Amazon River
Basin. Hydrological Processes, 23(8), 1221-1235. doi: 10.1002/hyp.7252
Beighley, R. E., Eggert, K. G., Wilson, C. J., Rowland, J. C., & Lee, H. (2015). A
hydrologic routing model suitable for climate-scale simulations of arctic rivers:
application to the Mackenzie River Basin. Hydrological Processes, 29(12), 2751-
2768. doi: 10.1002/hyp.10398
117
Beighley, R. E., Ray, R. L., He, Y., Lee, H., Schaller, L., Andreadis, K. M., Durand, M.,
Alsdorf, D. E., & Shum, C. K. (2011). Comparing satellite derived precipitation
datasets using the Hillslope River Routing (HRR) model in the Congo River
Basin. Hydrological Processes, 25(20), 3216-3229. doi: 10.1002/hyp.8045
Bell, V. A. and Moore, R. J. (2000). The sensitivity of catchment runoff models to
rainfall data at different spatial scales. Hydrology and Earth System Sciences,
4(4), 653-667.
Benettin, P., Van der Velde, Y., Van der Zee, S. M., Rinaldo, A., & Botter, G. (2013).
Chloride circulation in a lowland catchment and the formulation of transport by
travel time distributions. Water Resources Research, 49(8), 4619-4632. doi:
10.1002/wrcr.20309
Bergstrom, S. and Graham, L. P. (1998). On the scale problem in hydrological modelling.
Journal of Hydrology, 211(1-4), 253-265. doi: 10.1016/S0022-1694(98)00248-0
Beven, K. (1995). Linking Parameters across Scales - Subgrid Parameterizations and
Scale-Dependent Hydrological Models. Hydrological Processes, 9(5-6), 507-525.
doi: DOI 10.1002/hyp.3360090504
Beven, K. J., Kirkby, M. J., Schofield, N., & Tagg, A. F. (1984). Testing a Physically-
Based Flood Forecasting-Model (Topmodel) for 3 Uk Catchments. Journal of
Hydrology, 69(1-4), 119-143. doi: 10.1016/0022-1694(84)90159-8
Bieniek, P. A., Bhatt, U. S., Walsh, J. E., Rupp, T. S., Zhang, J., Krieger, J. R., & Lader,
R. (2016). Dynamical downscaling of ERA-Interim temperature and precipitation
for Alaska. Journal of Applied Meteorology and Climatology, 55(3), 635-654.
doi: 10.1175/jamc-d-15-0153.1
118
Bierkens, M. (2015). Global hydrology 2015: State, trends, and directions. Water
Resources Research, 51(7), 4923-4947. doi: 10.1002/2015WR017173
Bierkens, M. and van der Gaast, J. W. J. (1998). Upscaling hydraulic conductivity: theory
and examples from geohydrological studies. Nutrient Cycling in Agroecosystems,
50(1-3), 193-207. doi: 10.1023/a:1009740328153
Binley, A., Hubbard, S. S., Huisman, J. A., Revil, A., Robinson, D. A., Singha, K., &
Slater, L. D. (2015). The emergence of hydrogeophysics for improved
understanding of subsurface processes over multiple scales. Water Resources
Research, 51(6), 3837-3866. doi: 10.1002/2015wr017016
Bloschl, G. (2001). Scaling in hydrology. Hydrological Processes, 15(4), 709-711. doi:
10.1002/hyp.432
Bloschl, G. and Sivapalan, M. (1995). Scale Issues in Hydrological Modeling - a Review.
Hydrological Processes, 9(3-4), 251-290. doi: 10.1002/hyp.3360090305
Blunt, M. J., Bijeljic, B., Dong, H., Gharbi, O., Iglauer, S., Mostaghimi, P., Paluszny, A.,
& Pentland, C. (2013). Pore-scale imaging and modelling. Advances in Water
Resources, 51, 197-216. doi: 10.1016/j.advwatres.2012.03.003
Botter, G., Bertuzzo, E., & Rinaldo, A. (2011). Catchment residence and travel time
distributions: The master equation. Geophysical Research Letters, 38. doi: Artn
L11403, 10.1029/2011gl047666
Casey, M. J., Stagge, J. H., Moglen, G. E., & McCuen, R. H. (2015). Effects of
Watershed Subdivision on Peak Discharge in Rainfall-Runoff Modeling in the
WinTR-20 Model. Journal of Hydrologic Engineering, 20(10). doi:
10.1061/(Asce)He.1943-5584.0001188
119
Charles, S. P., Bates, B. C., Smith, I. N., & Hughes, J. P. (2004). Statistical downscaling
of daily precipitation from observed and modelled atmospheric fields.
Hydrological Processes, 18(8), 1373-1394. doi: DOI 10.1002/hyp.1418
Chen, C., Zhao, S., Duan, Z., & Qin, Z. (2015). An Improved Spatial Downscaling
Procedure for TRMM 3B43 Precipitation Product Using Geographically
Weighted Regression. Selected Topics in Applied Earth Observations and Remote
Sensing, IEEE Journal of, 8(9), 4592-4604.
Chen, J. and Kumar, P. (2001). Topographic influence on the seasonal and interannual
variation of water and energy balance of basins in North America. Journal of
Climate, 14(9), 1989-2014. doi: Doi 10.1175/1520-
0442(2001)014<1989:Tiotsa>2.0.Co;2
Crow, W. T., Berg, A. A., Cosh, M. H., Loew, A., Mohanty, B. P., Panciera, R., de
Rosnay, P., Ryu, D., & Walker, J. P. (2012). Upscaling Sparse Ground-Based Soil
Moisture Observations for the Validation of Coarse-Resolution Satellite Soil
Moisture Products. Reviews of Geophysics, 50. doi: Artn Rg2002,
10.1029/2011rg000372
Crow, W. T., Ryu, D., & Famiglietti, J. S. (2005). Upscaling of field-scale soil moisture
measurements using distributed land surface modeling. Advances in Water
Resources, 28(1), 1-14. doi: 10.1016/j.advwatres.2004.10.004
Dai, Y. J., Shangguan, W., Duan, Q. Y., Liu, B. Y., Fu, S. H., & Niu, G. (2013).
Development of a China Dataset of Soil Hydraulic Parameters Using Pedotransfer
Functions for Land Surface Modeling. Journal of Hydrometeorology, 14(3), 869-
887. doi: 10.1175/Jhm-D-12-0149.1
120
De Jeu, R., Holmes, T. R. H., Parinussa, R. M., & Owe, M. (2014). A spatially coherent
global soil moisture product with improved temporal resolution. Journal of
Hydrology, 516, 284-296.
De Roo, A., Wesseling, C. G., & Van Deursen, W. P. A. (2000). Physically based river
basin modelling within a GIS: the LISFLOOD model. Hydrological Processes,
14(11-12), 1981-1992. doi: 10.1002/1099-1085(20000815/30)
Di Lazzaro, M. and Volpi, E. (2011). Effects of hillslope dynamics and network
geometry on the scaling properties of the hydrologic response. Advances in Water
Resources, 34(11), 1496-1507. doi: 10.1016/j.advwatres.2011.07.012
Doubkova, M., Dostalova, A., van Dijk, A. I. J. M., Bloschl, G., Wagner, W., &
Fernandez-Prieto, D. (2014). How do Spatial Scale, Noise, and Reference Data
affect Empirical Estimates of Error in ASAR-Derived 1 km Resolution Soil
Moisture? Ieee Journal of Selected Topics in Applied Earth Observations and
Remote Sensing, 7(9), 3880-3891. doi: 10.1109/jstars.2014.2324657
Farmer, C. L. (2002). Upscaling: A review. International Journal for Numerical Methods
in Fluids, 40(1-2), 63-78. doi: 10.1002/fld.267
Farmer, W. and Vogel, R. (2016). On the deterministic and stochastic use of hydrologic
models. Water Resources Research, n/a-n/a. doi: 10.1002/2016WR019129
Farr, T. G., Rosen, P. A., Caro, E., Crippen, R., Duren, R., Hensley, S., Kobrick, M.,
Paller, M., Rodriguez, E., Roth, L., Seal, D., Shaffer, S., Shimada, J., Umland, J.,
Werner, M., Oskin, M., Burbank, D., & Alsdorf, D. (2007). The shuttle radar
topography mission. Reviews of Geophysics, 45(2). doi: 10.1029/2005rg000183
121
Fatichi, S., Vivoni, E. R., Ogden, F. L., Ivanov, V. Y., Mirus, B., Gochis, D., Downer, C.
W., Camporese, M., Davison, J. H., Ebel, B. A., Jones, N., Kim, J., Mascaro, G.,
Niswonger, R., Restrepo, P., Rigon, R., Shen, C., Sulis, M., & Tarboton, D.
(2016). An overview of current applications, challenges, and future trends in
distributed process-based models in hydrology. Journal of Hydrology, 537, 45-60.
doi: 10.1016/j.jhydrol.2016.03.026
Fletcher, T. D., Andrieu, H., & Hamel, P. (2013). Understanding, management and
modelling of urban hydrology and its consequences for receiving waters: A state
of the art. Advances in Water Resources, 51, 261-279. doi:
10.1016/j.advwatres.2012.09.001
Friedl, M., McIver, D., Hodges, J., Zhang, X., Muchoney, D., Strahler, A., Woodcock,
C., Gopal, S., Schneider, A., Cooper, A., Baccini, A., Gao, F., & Schaaf, C.
(2002). Global land cover mapping from MODIS: algorithms and early results.
Remote Sensing of Environment, 83(1-2), 287-302. doi: 10.1016/S0034-
4257(02)00078-0
Frippiat, C. and Holeyman, A. (2008). A comparative review of upscaling methods for
solute transport in heterogeneous porous media. Journal of Hydrology, 362(1-2),
150-176. doi: 10.1016/j.jhydrol.2008.08.015
Gad, M. (2014). Flow Velocity and Travel Time Determination on Grid Basis Using
Spatially Varied Hydraulic Radius. Journal of Environmental Informatics, 23(2),
36-46. doi: 10.3808/jei.201400259
122
Ghanbarian, B., Hunt, A. G., Skaggs, T. H., & Jarvis, N. (2017). Upscaling soil saturated
hydraulic conductivity from pore throat characteristics. Advances in Water
Resources, 104, 105-113. doi: 10.1016/j.advwatres.2017.03.016
Grimaldi, S., Petroselli, A., Alonso, G., & Nardi, F. (2010). Flow time estimation with
spatially variable hillslope velocity in ungauged basins. Advances in Water
Resources, 33(10), 1216-1223. doi: 10.1016/j.advwatres.2010.06.003
Gueguen, Y., Le Ravalec, M., & Ricard, L. (2006). Upscaling: Effective medium theory,
numerical methods and the fractal dream. Pure and Applied Geophysics, 163(5-
6), 1175-1192. doi: 10.1007/s00024-006-0053-y
Guo, W., Wang, C., Zeng, X., Ma, T., & Yang, H. W. (2015). Subgrid Parameterization
of the Soil Moisture Storage Capacity for a Distributed Rainfall-Runoff Model.
Water, 7(6), 2691-2706.
Gupta, V., Rodrâiguez-Iturbe, I., & Wood, E. (2012). Scale Problems in Hydrology
Runoff Generation and Basin Response. Dordrecht: Springer Science & Business
Media.
Hall, J., Arheimer, B., Borga, M., Brazdil, R., Claps, P., Kiss, A., Kjeldsen, T. R.,
Kriauciuniene, J., Kundzewicz, Z. W., Lang, M., Llasat, M. C., Macdonald, N.,
McIntyre, N., Mediero, L., Merz, B., Merz, R., Molnar, P., Montanari, A.,
Neuhold, C., Parajka, J., Perdigao, R. A. P., Plavcova, L., Rogger, M., Salinas, J.
L., Sauquet, E., Schar, C., Szolgay, J., Viglione, A., & Bloschl, G. (2014).
Understanding flood regime changes in Europe: A state-of-the-art assessment.
Hydrology and Earth System Sciences, 18(7), 2735-2772. doi: 10.5194/hess-18-
2735-2014
123
Heuvelink, G. and Pebesma, E. (1999). Spatial aggregation and soil process modelling.
Geoderma, 89(1-2), 47-65. doi: 10.1016/S0016-7061(98)00077-9
Heuvelink, G. B. M. (1998). Uncertainty analysis in environmental modelling under a
change of spatial scale. Nutrient Cycling in Agroecosystems, 50(1-3), 255-264.
doi: 10.1023/a:1009700614041
Horritt, M. and Bates, P. D. (2001). Effects of spatial resolution on a raster based model
of flood flow. Journal of Hydrology, 253(1-4), 239-249. doi: 10.1016/s0022-
1694(01)00490-5
Ichiba, A., Gires, A., Tchiguirinskaia, I., Schertzer, D., Bompard, P., & Ten Veldhuis, M.
C. (2018). Scale effect challenges in urban hydrology highlighted with a
distributed hydrological model. Hydrology and Earth System Sciences, 22(1),
331-350.
Jana, R. B. and Mohanty, B. P. (2012). A topography-based scaling algorithm for soil
hydraulic parameters at hillslope scales: Field testing. Water Resources Research,
48. doi: 10.1029/2011wr011205
Julien, P. and Saghafian, B. (1991). CASC2D user's manual: a two-dimensional
watershed rainfall-runoff model: Colorado State University, Center for
Geosciences, Hydrologic Modeling Group.
Karger, D. N., Conrad, O., Bohner, J., Kawohl, T., Kreft, H., Soria-Auza, R. W.,
Zimmermann, N. E., Linder, H. P., & Kessler, M. (2017). Data Descriptor:
Climatologies at high resolution for the earth's land surface areas. Scientific Data,
4. doi: ARTN 170122, 10.1038/sdata.2017.122
124
Kim, J. and Ivanov, V. Y. (2015). A holistic, multi-scale dynamic downscaling
framework for climate impact assessments and challenges of addressing finer-
scale watershed dynamics. Journal of Hydrology, 522, 645-660. doi:
10.1016/j.jhydrol.2015.01.025
Kitanidis, P. K. (2015). Persistent questions of heterogeneity, uncertainty, and scale in
subsurface flow and transport. Water Resources Research, 51(8), 5888-5904. doi:
10.1002/2015wr017639
Klemes, V. (1983). Conceptualization and Scale in Hydrology. Journal of Hydrology,
65(1-3), 1-23. doi: 10.1016/0022-1694(83)90208-1
Konyukhov, A., Pankratov, L., & Voloshin, A. (2019). The homogenized Kondaurov
type non-equilibrium model of two-phase flow in multiscale non-homogeneous
media. Physica Scripta, 94(5). doi: ARTN 054002, 10.1088/1402-4896/ab0048
Koutsoyiannis, D. (2005). Uncertainty, entropy, scaling and hydrological stochastics. 2.
Time dependence of hydrological processes and time scaling. Hydrological
Sciences Journal-Journal Des Sciences Hydrologiques, 50(3), 405-426. doi:
10.1623/hysj.50.3.405.65028
Krysanova, V., Bronstert, A., & Muller-Wohlfeil, D. I. (1999). Modelling river discharge
for large drainage basins: From lumped to distributed approach. Hydrological
Sciences Journal-Journal Des Sciences Hydrologiques, 44(2), 313-331. doi:
10.1080/02626669909492224
Legates, D. and McCabe, G. (1999). Evaluating the use of "goodness-of-fit" measures in
hydrologic and hydroclimatic model validation. Water Resources Research,
35(1), 233-241. doi: 10.1029/1998WR900018
125
Liu, Y. Y., de Jeu, R. A., McCabe, M. F., Evans, J. P., & van Dijk, A. I. (2011). Global
long‐term passive microwave satellite‐based retrievals of vegetation optical
depth. Geophysical Research Letters, 38(18).
Maraun, D., Wetterhall, F., Ireson, A. M., Chandler, R. E., Kendon, E. J., Widmann, M.,
Brienen, S., Rust, H. W., Sauter, T., Themessl, M., Venema, V. K. C., Chun, K.
P., Goodess, C. M., Jones, R. G., Onof, C., Vrac, M., & Thiele-Eich, I. (2010).
Precipitation Downscaling under Climate Change: Recent Developments to
Bridge the Gap between Dynamical Models and the End User. Reviews of
Geophysics, 48. doi: 10.1029/2009rg000314
Maurer, E. P. and Hidalgo, H. G. (2008). Utility of daily vs. monthly large-scale climate
data: an intercomparison of two statistical downscaling methods. Hydrology and
Earth System Sciences, 12(2), 551-563.
McDonnell, J. J., Sivapalan, M., Vache, K., Dunn, S., Grant, G., Haggerty, R., Hinz, C.,
Hooper, R., Kirchner, J., Roderick, M. L., Selker, J., & Weiler, M. (2007).
Moving beyond heterogeneity and process complexity: A new vision for
watershed hydrology. Water Resources Research, 43(7). doi: Artn W07301,
10.1029/2006wr005467
McGlynn, B. L., McDonnell, J. J., Seibert, J., & Kendall, C. (2004). Scale effects on
headwater catchment runoff timing, flow sources, and groundwater-streamflow
relations. Water Resources Research, 40(7). doi: 10.1029/2003wr002494
McGuire, K. J., McDonnell, J. J., Weiler, M., Kendall, C., McGlynn, B. L., Welker, J.
M., & Seibert, J. (2005). The role of topography on catchment-scale water
126
residence time. Water Resources Research, 41(5). doi: Artn W05002,
10.1029/2004wr003657
Merz, R., Parajka, J., & Bloschl, G. (2009). Scale effects in conceptual hydrological
modeling. Water Resources Research, 45. doi: 10.1029/2009wr007872
Miller, M. P., Buto, S. G., Susong, D. D., & Rumsey, C. A. (2016). The importance of
base flow in sustaining surface water flow in the Upper Colorado River Basin.
Water Resources Research, 52(5), 3547-3562. doi: 10.1002/2015wr017963
Mohanty, B. P., Cosh, M. H., Lakshmi, V., & Montzka, C. (2017). Soil moisture remote
sensing: State-of-the-Science. Vadose Zone Journal, 16(1), 9. doi:
10.2136/vzj2016.10.0105
Molnar, D. K. and Julien, P. Y. (2000). Grid-Size Effects on Surface Runoff Modeling.
Journal of Hydrologic Engineering, 5(1), 8-16.
Nathan, R. J. and Mcmahon, T. A. (1990). Evaluation of automated techniques for base-
flow and recession analyses. Water Resources Research, 26(7), 1465-1473. doi:
DOI 10.1029/WR026i007p01465
NRCS. (1972). Travel time, time of concentration, and lag. In N. R. C. Service (Ed.), The
national engineering handbook. Washington, D.C.: U. S. Department of
Agriculture.
Ogden, F. L. and Julien, P. Y. (1993). Runoff Sensitivity to Temporal and Spatial
Rainfall Variability at Runoff Plane and Small Basin Scales. Water Resources
Research, 29(8), 2589-2597. doi: 10.1029/93wr00924
127
Ojha, R. and Govindaraju, R. S. (2015). A physical scaling model for aggregation and
disaggregation of field-scale surface soil moisture dynamics. Chaos, 25(7),
075401. doi: 10.1063/1.4913235
Ojha, R., Prakash, A., & Govindaraju, R. S. (2014). Local‐and field‐scale stochastic‐
advective vertical solute transport in horizontally heterogeneous unsaturated soils.
Water Resources Research, 50(8), 6658-6678.
Ozgen, I., Teuber, K., Simons, F., Liang, D. F., & Hinkelmann, R. (2015). Upscaling the
shallow water model with a novel roughness formulation. Environmental Earth
Sciences, 74(11), 7371-7386. doi: 10.1007/s12665-015-4726-7
Pan, M., Cai, X. T., Chaney, N. W., Entekhabi, D., & Wood, E. F. (2016). An initial
assessment of SMAP soil moisture retrievals using high-resolution model
simulations and in situ observations. Geophysical Research Letters, 43(18), 9662-
9668.
Pau, G. S. H., Shen, C. P., Riley, W. J., & Liu, Y. N. (2016). Accurate and efficient
prediction of fine-resolution hydrologic and carbon dynamic simulations from
coarse-resolution models. Water Resources Research, 52(2), 791-812. doi:
10.1002/2015wr017782
Qin, J., Yang, K., Lu, N., Chen, Y. Y., Zhao, L., & Han, M. L. (2013). Spatial upscaling
of in-situ soil moisture measurements based on MODIS-derived apparent thermal
inertia. Remote Sensing of Environment, 138, 1-9. doi: 10.1016/j.rse.2013.07.003
Rakovec, O., Kumar, R., Mai, J., Cuntz, M., Thober, S., Zink, M., Attinger, S., Schafer,
D., Schron, M., & Samaniego, L. (2016). Multiscale and Multivariate Evaluation
128
of Water Fluxes and States over European River Basins. Journal of
Hydrometeorology, 17(1), 287-307. doi: 10.1175/jhm-d-15-0054.1
Renfrew, M. (1991). The water encyclopedia, 2nd ed. (Vol. 68).
Robinson, J. S. and Sivapalan, M. (1997). Temporal scales and hydrological regimes:
Implications for flood frequency scaling. Water Resources Research, 33(12),
2981-2999. doi: 10.1029/97wr01964
Rojas, R., Velleux, M., Julien, P. Y., & Johnson, B. E. (2008). Grid scale effects on
watershed soil erosion models. Journal of Hydrologic Engineering, 13(9), 793-
802. doi: 10.1061/(Asce)1084-0699(2008)13:9(793)
Saint-Geours, N., Bailly, J. S., Grelot, F., & Lavergne, C. (2014). Multi-scale spatial
sensitivity analysis of a model for economic appraisal of flood risk management
policies. Environmental Modelling & Software, 60, 153-166. doi:
10.1016/j.envsoft.2014.06.012
Schaake, J. C., Koren, V. I., Duan, Q. Y., Mitchell, K., & Chen, F. (1996). Simple water
balance model for estimating runoff at different spatial and temporal scales.
Journal of Geophysical Research-Atmospheres, 101(D3), 7461-7475. doi:
10.1029/95jd02892
Seyyedi, H., Anagnostou, E. N., Beighley, E., & McCollum, J. (2014). Satellite-driven
downscaling of global reanalysis precipitation products for hydrological
applications. Hydrology and Earth System Sciences, 18(12), 5077-5091. doi:
10.5194/hess-18-5077-2014
129
Shi, Y. C., Wang, J. D., Qin, J., & Qu, Y. H. (2015). An upscaling algorithm to obtain the
representative ground truth of LAI time series in heterogeneous land surface.
Remote Sensing, 7(10), 12887-12908. doi: 10.3390/rs71012887
Sivapalan, M. (2018). From engineering hydrology to Earth system science: Milestones
in the transformation of hydrologic science. Hydrology and Earth System
Sciences, 22(3), 1665-1693. doi: 10.5194/hess-22-1665-2018
Sivapalan, M., Beven, K., & Wood, E. F. (1987). On Hydrologic Similarity .2. A Scaled
Model of Storm Runoff Production. Water Resources Research, 23(12), 2266-
2278. doi: 10.1029/WR023i012p02266
Sivapalan, M., Bloschl, G., Zhang, L., & Vertessy, R. (2003). Downward approach to
hydrological prediction. Hydrological Processes, 17(11), 2101-2111. doi:
10.1002/hyp.1425
Sivapalan, M., Savenije, H. H. G., & Bloschl, G. (2012). Socio-hydrology: A new science
of people and water. Hydrological Processes, 26(8), 1270-1276. doi:
10.1002/hyp.8426
Sklash, M. G. and Farvolden, R. (1979). The role of groundwater in storm runoff.
Journal of Hydrology, 43(1), 45-65. doi: 10.1016/0022-1694(79)90164-1
Skoien, J. O., Bloschl, G., & Western, A. W. (2003). Characteristic space scales and
timescales in hydrology. Water Resources Research, 39(10). doi:
10.1029/2002wr001736
Soulsby, C., Tetzlaff, D., Dunn, S. M., & Waldron, S. (2006). Scaling up and out in
runoff process understanding: insights from nested experimental catchment
studies. Hydrological Processes, 20(11), 2461-2465. doi: 10.1002/hyp.6338
130
Stoll, S., Franssen, H. J. H., Butts, M., & Kinzelbach, W. (2011). Analysis of the impact
of climate change on groundwater related hydrological fluxes: a multi-model
approach including different downscaling methods. Hydrology and Earth System
Sciences, 15(1), 21-38. doi: 10.5194/hess-15-21-2011
Sulis, M., Paniconi, C., & Camporese, M. (2011). Impact of grid resolution on the
integrated and distributed response of a coupled surface-subsurface hydrological
model for the des Anglais catchment, Quebec. Hydrological Processes, 25(12),
1853-1865. doi: 10.1002/hyp.7941
Tan, J., Jakob, C., Rossow, W. B., & Tselioudis, G. (2015). Increases in tropical rainfall
driven by changes in frequency of organized deep convection. Nature, 519(7544),
451-+. doi: 10.1038/nature14339
Van der Velde, Y., Torfs, P. J. J. F., van der Zee, S. E. A. T. M., & Uijlenhoet, R. (2012).
Quantifying catchment-scale mixing and its effect on time-varying travel time
distributions. Water Resources Research, 48. doi: Artn W06536,
10.1029/2011wr011310
Vazquez, R. F., Feyen, L., Feyen, J., & Refsgaard, J. C. (2002). Effect of grid size on
effective parameters and model performance of the MIKE-SHE code.
Hydrological Processes, 16(2), 355-372. doi: 10.1002/hyp.334
Verburg, P. H., Neumann, K., & Nol, L. (2011). Challenges in using land use and land
cover data for global change studies. Global Change Biology, 17(2), 974-989. doi:
10.1111/j.1365-2486.2010.02307.x
Vereecken, H., Huisman, J. A., Pachepsky, Y., Montzka, C., van der Kruk, J., Bogena,
H., Weihermuller, L., Herbst, M., Martinez, G., & Vanderborght, J. (2014). On
131
the spatio-temporal dynamics of soil moisture at the field scale. Journal of
Hydrology, 516, 76-96. doi: 10.1016/j.jhydrol.2013.11.061
Vermeulen, P. M., Stroet, C., & Heemink, A. W. (2006). Limitations to upscaling of
groundwater flow models dominated by surface water interaction. Water
Resources Research, 42(10), 12. doi: 10.1029/2005wr004620
Vieux, B. E. and Imgarten, J. M. (2012). On the scale-dependent propagation of
hydrologic uncertainty using high-resolution X-band radar rainfall estimates.
Atmospheric Research, 103, 96-105. doi: 10.1016/j.atmosres.2011.06.009
Vose, D. (2000). Risk analysis : a quantitative guide (2nd ed.). Chichester ; New York:
John Wiley.
Vose, D. (2008). Risk analysis : a quantitative guide (3rd ed.). Chichester, England ;
Hoboken, NJ: Wiley.
Wagener, T., Sivapalan, M., Troch, P. A., McGlynn, B. L., Harman, C. J., Gupta, H. V.,
Kumar, P., Rao, P. S. C., Basu, N. B., & Wilson, J. S. (2010). The future of
hydrology: An evolving science for a changing world. Water Resources Research,
46, 10. doi: 10.1029/2009wr008906
Wang, W. G., Xing, W. Q., Shao, Q. X., Yu, Z. B., Peng, S. Z., Yang, T., Yong, B.,
Taylor, J., & Singh, V. P. (2013). Changes in reference evapotranspiration across
the Tibetan Plateau: Observations and future projections based on statistical
downscaling. Journal of Geophysical Research-Atmospheres, 118(10), 4049-
4068. doi: 10.1002/jgrd.50393
132
Wei, S., Dai, Y. J., Duan, Q. Y., Liu, B. Y., & Yuan, H. (2014). A global soil data set for
earth system modeling. Journal of Advances in Modeling Earth Systems, 6(1),
249-263. doi: 10.1002/2013ms000293
Wen, X. and GomezHernandez, J. J. (1996). Upscaling hydraulic conductivities in
heterogeneous media: An overview. Journal of Hydrology, 183(1-2), R9-R32.
doi: 10.1016/s0022-1694(96)80030-8
Western, A. W. and Bloschl, G. (1999). On the spatial scaling of soil moisture. Journal of
Hydrology, 217(3-4), 203-224. doi: 10.1016/S0022-1694(98)00232-7
Western, A. W., Bloschl, G., & Grayson, R. B. (2001). Toward capturing hydrologically
significant connectivity in spatial patterns. Water Resources Research, 37(1), 83-
97. doi: Doi 10.1029/2000wr900241
White, D., Johnston, K., & Miller, M. P. (2005). Ohio river basin. Rivers of North
America, 375-424.
Wood, B. D. (2009). The role of scaling laws in upscaling. Advances in Water Resources,
32(5), 723-736. doi: 10.1016/j.advwatres.2008.08.015
Wood, E. F. (1994). Scaling, Soil-Moisture and Evapotranspiration in Runoff Models.
Advances in Water Resources, 17(1-2), 25-34. doi: 10.1016/0309-1708(94)90021-
3
Wood, E. F., Roundy, J. K., Troy, T. J., van Beek, L. P. H., Bierkens, M. F. P., Blyth, E.,
de Roo, A., Doll, P., Ek, M., Famiglietti, J., Gochis, D., van de Giesen, N.,
Houser, P., Jaffe, P. R., Kollet, S., Lehner, B., Lettenmaier, D. P., Peters-Lidard,
C., Sivapalan, M., Sheffield, J., Wade, A., & Whitehead, P. (2011).
Hyperresolution global land surface modeling: Meeting a grand challenge for
133
monitoring Earth's terrestrial water. Water Resources Research, 47. doi:
10.1029/2010wr010090
Wood, E. F., Sivapalan, M., & Beven, K. (1990). Similarity and Scale in Catchment
Storm Response. Reviews of Geophysics, 28(1), 1-18. doi: DOI
10.1029/RG028i001p00001
Wood, E. F., Sivapalan, M., Beven, K., & Band, L. (1988). Effects of Spatial Variability
and Scale with Implications to Hydrologic Modeling. Journal of Hydrology,
102(1-4), 29-47. doi: 10.1016/0022-1694(88)90090-X
Yamazaki, D. and Trigg, M. A. (2016). HYDROLOGY The dynamics of Earth's surface
water. Nature, 540(7633), 348-349.
Yoon, Y. and Beighley, E. (2015). Simulating streamflow on regulated rivers using
characteristic reservoir storage patterns derived from synthetic remote sensing
data. Hydrological Processes, 29(8), 2014-2026. doi: 10.1002/hyp.10342
Zhang, W. and Montgomery, D. R. (1994). Digital Elevation Model Grid Size,
Landscape Representation, and Hydrologic Simulations. Water Resources
Research, 30(4), 1019-1028. doi: 10.1029/93wr03553
Zhao, L. and Wu, F. (2015). Simulation of Runoff Hydrograph on Soil Surfaces with
Different Microtopography Using a Travel Time Method at the Plot Scale. PLoS
One, 10(6), e0130794. doi: 10.1371/journal.pone.0130794
Zhao, Y. and Beighley, E. (2017). Upscaling surface runoff routing processes in large-
scale hydrologic models: Application to the Ohio River Basin. Journal of
Hydrologic Engineering, 22(4).
134
Zinn, B. and Harvey, C. F. (2003). When good statistical models of aquifer heterogeneity
go bad: A comparison of flow, dispersion, and mass transfer in connected and
multivariate Gaussian hydraulic conductivity fields. Water Resources Research,
39(3), 19. doi: 10.1029/2001wr001146
Zuazo, V., Gironas, J., & Niemann, J. D. (2014). Assessing the impact of travel time
formulations on the performance of spatially distributed travel time methods
applied to hillslopes. Journal of Hydrology, 519, 1315-1327. doi:
10.1016/j.jhydrol.2014.09.035
135
APPENDIX
A.1 USGS Gages in Ohio River Basin
This section provides information about the USGS gages.
Table A.1 shows detailed information about the 6 USGS gages used in TTM
method.
Table A.2 shows detailed information about the 90 USGS gages which are used to
generate the runoff map for Ohio River Basin.
Table A. 1. Detailed information about the 6 USGS gages in Ohio River Basin used in
TTM method.
Gauge ID Latitude Longitude Drainage
area, km2
03086000 -80.21 40.55 50424
03216600 -82.86 38.65 160532
03277200 -84.96 38.77 214718
03294500 -85.80 38.28 236027
03303280 -86.71 37.90 252134
03611500 -88.74 37.15 525341
136
Table A. 2. Information for 90 USGS gauges used in the generation of runoff map for
Ohio River Basin
Gauge ID Latitude Longitude
Drainage
area, km2
03010820 42.07 -78.45 1192
03015000 41.94 -79.13 816
03015500 41.85 -79.32 321
03020000 41.48 -79.44 479
03020500 41.48 -79.70 283
03024000 41.44 -79.96 1028
03030500 41.19 -79.44 951
03032500 40.99 -79.39 528
03036000 40.93 -79.29 344
03039000 40.72 -79.51 278
03048500 40.60 -79.55 1825
03049000 40.72 -79.70 137
03056000 39.32 -80.03 1182
03061000 39.42 -80.28 759
03070260 39.49 -79.64 1044
03070500 39.62 -79.70 200
03072000 39.76 -79.97 229
03083500 40.24 -79.81 1715
03085500 40.40 -80.10 257
03106000 40.82 -80.24 356
03106500 40.88 -80.23 398
03105500 40.89 -80.34 2235
03108000 40.63 -80.34 178
03109500 40.68 -80.54 496
03110000 40.54 -80.73 147
03111500 40.19 -80.73 123
03112000 40.04 -80.66 281
03114500 39.48 -81.00 458
03115786 39.51 -81.42 260
03139000 40.48 -81.99 464
03155220 39.08 -81.21 229
03155000 39.06 -81.39 1516
03164000 36.65 -80.98 1141
03167000 36.94 -80.89 258
03170000 37.04 -80.56 309
03173000 37.27 -80.71 299
03175500 37.31 -80.85 223
137
Gauge ID Latitude Longitude
Drainage
area, km2
03179000 37.54 -81.01 395
03184000 37.64 -80.81 1619
03192000 38.23 -81.18 1317
03197000 38.47 -81.28 1145
03200500 38.34 -81.84 862
03202000 38.87 -82.36 585
03202400 37.60 -81.65 306
03205470 38.60 -82.50 302
03216500 38.33 -82.94 400
03217000 38.56 -82.95 242
03221646 39.99 -83.07 1050
03229500 39.86 -82.96 544
03229796 39.71 -82.96 274
03230500 39.70 -83.11 534
03234300 39.32 -82.98 1136
03247500 39.14 -84.24 476
03245500 39.17 -84.30 1203
03250500 38.42 -84.00 1785
03251200 38.59 -84.02 226
03253000 38.66 -84.35 915
03259000 39.20 -84.47 115
03266000 39.87 -84.29 650
03263000 39.87 -84.16 1149
03270000 39.80 -84.09 635
03272000 39.64 -84.40 275
03276500 39.41 -85.01 1224
03291500 38.71 -84.82 437
03280000 37.55 -83.39 1101
03281000 37.56 -83.59 537
03281500 37.48 -83.68 722
03283500 37.86 -83.93 362
03289500 38.27 -84.81 473
03303000 38.24 -86.23 476
03314500 37.00 -86.43 1849
03373500 38.67 -86.79 4927
03376500 38.39 -87.55 822
03343010 38.68 -87.54 13732
03346500 38.72 -87.66 2333
03381500 38.06 -88.16 3102
03384100 37.40 -87.85 605
03430200 36.19 -86.63 934
138
Gauge ID Latitude Longitude
Drainage
area, km2
03434500 36.12 -87.10 683
03436100 36.55 -87.14 926
03438000 36.78 -87.72 244
03532000 36.54 -83.63 685
03540500 35.98 -84.56 764
03566000 35.30 -84.76 2298
03567500 35.01 -85.21 428
03571000 35.21 -85.50 402
03584600 35.01 -86.99 1805
03592500 34.66 -88.12 667
03604400 35.81 -87.78 702
03603000 35.93 -87.74 2557
139
A.2 Sample Code
The sample code for the entire TTM procedure is provided in this appendix, including the
code used to setup, run and calibrate the HRR model. For more information, please go to
github: github.com/yownho.
HRR Setup:
Step 1:
"""
GIS setup for Hillslope River Routing Model (HRR) step 1
Parts:
1. Creation of Flow Accumulation Threshold Grid, Stream Link, Watershed, Watershed
Polygon,
and Derived River Network;
2. Create longest flow path shapefile. Unlike stream shapefile, the lfp is based on 1sqkm
(or even smaller
drainage area).
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, os.path
from arcpy import env
from arcpy.sa import *
from operator import itemgetter, attrgetter
import sys
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
#####***** input parameters *****#####
unit = 'Meter' # Unit for DEM grid, Meter or Degree
DEMcellSize = 30 # Grid size of DEM data decimal degrees
targetWorkspace = r"C:\Research\HRR_python_example\MissionCreek\GIS_working"
# Folder. Output workspace
flowAccumulation = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fac"
# Raster file of flow accumulation
140
drainageDirection = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fdr"
# Raster file of flow direction
A_thrhld = 1.0 # Threshold area to determine stream network
tip area, sqkm
A_thrhold_lfp = 0.1 # Threshold area for longest flow path,
sqkm
num_tip = 1.0 # Threshold to determine longest flow path
(LFP) for headwater catchments. Here the number is
# number of pixels, determined by user (please
check lfpstr.shp in GIS after)
#####****************************#####
#####*****First part*****#####
if unit == 'Meter':
lngThreshold = int (A_thrhld/(DEMcellSize*0.001)/(DEMcellSize*0.001))
lfpThreshold = int(A_thrhold_lfp/(DEMcellSize*0.001)/(DEMcellSize*0.001))
lfptip = num_tip*DEMcellSize
elif unit == 'Degree':
lngThreshold = int
(A_thrhld/(DEMcellSize*60*60*30*0.001)/(DEMcellSize*60*60*30*0.001))
lfpThreshold =
int(A_thrhold_lfp/(DEMcellSize*60*60*30*0.001)/(DEMcellSize*60*60*30*0.001))
lfptip = num_tip*DEMcellSize
else:
print 'Error: Units are not set'
sys.exit()
arcpy.env.workspace = targetWorkspace
# Set output variables, no need to modify
strGrid = "StrGrid"
streamLink = "StrLink"
streams = "Streams.shp" #stream network feature
watershed = "Watersheds"
catchmentsAll = "Catch_many.shp"
catchments = "Catchments.shp" #catchments feature
maxFacc = "MaxFAcc.dbf"
rivPt = "River_Pts.shp"
lfpTable = "lfp.dbf"
maxfl = "maxfl"
outlfp = "lfp"
lfp_str = "lfpstr.shp" #longest flow path for headwater catchments. Same for inter basin
catchments.
desc = arcpy.Describe(targetWorkspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
141
if isGDB != "FileSystem":
catchments = catchments [:-4]
streams = streams [:-4]
catchmentsAll = catchmentsAll [:-4]
maxFacc = maxFacc [:-4]
rivPt = rivPt [:-4]
# Execute and Save Stream Grid file of all streams in catchments greater than lngThreshold
outFlowAccumulationRC = Raster(flowAccumulation) >= lngThreshold
outFlowAccumulationRC.save(strGrid)
# Print Message
arcpy.AddMessage("Stream Grid grid created successfully!")
print arcpy.GetMessages()
# Execute and Save Stream Link Grid
outStreamLink = StreamLink(strGrid, drainageDirection)
outStreamLink.save(streamLink)
# Print Message
arcpy.AddMessage("Stream link grid created successfully!")
print arcpy.GetMessages()
# Execute Stream to Feature
StreamToFeature(streamLink, drainageDirection, streams, "NO_SIMPLIFY")
# Print Message
arcpy.AddMessage("Derived streams feature class created successfully!")
print arcpy.GetMessages()
# Execute and Save Watershed Grid
outWatershed = Watershed(drainageDirection, streamLink)
outWatershed.save(watershed)
# Print Message
arcpy.AddMessage("Watershed grid created successfully!")
print arcpy.GetMessages()
# Convert watershed grid to polygons
arcpy.RasterToPolygon_conversion(watershed, catchmentsAll, "NO_SIMPLIFY",
"VALUE")
# Print Message
arcpy.AddMessage("Watershed grid converted to polygons successfully!")
print arcpy.GetMessages()
# Dissolve Watershed polygons
arcpy.Dissolve_management(catchmentsAll, catchments, "GRIDCODE")
# Print Message
142
arcpy.AddMessage("Watershed polygons dissolved successfully!")
print arcpy.GetMessages()
arcpy.RasterToPoint_conversion (streamLink, rivPt, "VALUE")
arcpy.AddMessage("Created stream link point file.")
print arcpy.GetMessages()
arcpy.AddMessage(catchments + "GRIDCODE"+ flowAccumulation+ maxFacc)
print arcpy.GetMessages()
arcpy.sa.ZonalStatisticsAsTable (catchments, "GRIDCODE", flowAccumulation,
maxFacc, "DATA", "MAXIMUM" )
arcpy.AddMessage ("Max Flow Accumulation table created")
print arcpy.GetMessages ()
#####*****Goal 2*****#####
print 'Create upd raster'
fdir1 = SetNull(flowAccumulation <= lfpThreshold,drainageDirection)
downl = FlowLength(fdir1, "DOWNSTREAM", "")
upl = FlowLength(fdir1, "UPSTREAM", "")
upd = downl + upl
print 'zonal'
ZonalStatisticsAsTable(catchments, "GRIDCODE", upd, lfpTable, "DATA",
"MAXIMUM")
arcpy.JoinField_management (catchments, "GRIDCODE", lfpTable, "GRIDCODE")
print 'Get maxfl raster'
arcpy.PolygonToRaster_conversion(catchments, "MAX", maxfl, "CELL_CENTER",
"NONE", DEMcellSize)
print 'Get LFP raster'
lfp = (upd + lfptip) > maxfl
#lfp.save(outlfp) #LFP grid
#Create LFP feature shapefile
print 'make raster to feature'
lfpR = SetNull(lfp, lfp, "Value = 0")
arcpy.RasterToPolyline_conversion(lfpR, lfp_str,"ZERO","","NO_SIMPLIFY","")
print 'Success!'
143
Step 2:
"""
GIS setup for Hillslope River Routing Model (HRR) Step 2
Parts:
1. Takes catchments table, streams table, Flow accumulation grid. Output is HRR setup
tables, with each catchment
grouped by Watershed IDs. Table is ordered by unique HRRID. In first table, HRRID
sorted in MAX. In final table,
HRRID is sorted on 1) WID and 2)Cumulative Area. Area is in number of grid pixels.
2. Calculate lfp length for each catchment, in km.
3. Takes HRR table, catchments shapefile projected, streams shapefile projected. Add
fields to catchments (Area sqkm) and streams (Length km) and CumA Sqkm.
Fill first two from joined fields. Cum A from variation of CumA HRR.
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, os.path
from arcpy import env
from arcpy.sa import *
from operator import itemgetter, attrgetter
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
#####************************************* input parameters
******************************************#####
cellSize = 30 #Raster size, in meter or degree
targetWorkspace = r"C:\Research\HRR_python_example\MissionCreek\GIS_working" #
Output workspace
flowAcc = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fac" # flow
accumulation raster
region = 'MC' #two letters represent simulated bas
zone = '01' #two numbers represent the model run
projection = r"C:\Users\Yuanhao\Google
Drive\Research_Yuanhao\HRR_Py_YZ\Raster\Lambert Azimuthal Eq Area N America
(Flood).prj" #shapefiles need to be projected in meters
projected = 'false' #True if streams and catchments already projected in meters
#####*******************************************************************
******************************#####
144
def main ():
arcpy.env.workspace = targetWorkspace
place = region + zone
#files generated from step1, no need to modify
streamsFC = "Streams.shp" #stream shapefile from step 1
maxFacc = "MaxFAcc.dbf" #dbf file from step 1
catch = "Catchments.shp" #HRR catchments
LFP = "lfpstr.shp" #LFP shapefile
#out feature, no need to modify
lfp_m = "LFPstr_m.shp"
lfpits = "lfpits.shp"
StrDis = "lfpstrd.shp"
#####***** part1 *****#####
#Check workspace type, and set output names
desc = arcpy.Describe(targetWorkspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
if isGDB != "FileSystem":
newTableFinal = "HRR_Table2_" + place
newTable = "HRR_Table1_" + place
else:
newTableFinal = "HRR_Table2_" + place + ".dbf"
newTable = "HRR_Table1_" + place + ".dbf"
arcpy.CopyRows_management (streamsFC, newTable)
joinTable (newTable, maxFacc)
addFieldsTable (newTable)
deleteFields (newTable)
fillZeroes (newTable)
buildChannels (newTable, 1)
cumArea (newTable)
assignWID (newTable)
arcpy.Copy_management (newTable, newTableFinal)
buildChannels (newTableFinal, 2)
cumArea (newTableFinal)
assignWID (newTableFinal)
145
relateHRR (newTableFinal)
arcpy.AddField_management(newTableFinal, "Error", "FLOAT")
expression = 'float(!CumArea!*1.0 - !MAX!) / float (!CumArea!)'
arcpy.CalculateField_management (newTableFinal, 'ERROR', expression, 'PYTHON')
print "Error calculated"
#####***** Part2 *****#####
desc = arcpy.Describe(targetWorkspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
if isGDB != "FileSystem":
hrr3 = "HRR_Table3_" + region + zone
else:
hrr3 = "HRR_Table3_" + region + zone + ".dbf"
arcpy.Copy_management (newTableFinal, hrr3)
arcpy.Intersect_analysis([LFP,catch], lfpits)
arcpy.Dissolve_management(lfpits, StrDis, "GRIDCODE", "", "MULTI_PART",
"DISSOLVE_LINES")
print 'Pjoject to meters'
if (str(projected) == 'false') or (projected == False):
print "Projecting streams and catchments"
arcpy.Project_management(StrDis, lfp_m, projection)
#calculate the channel length, add to the HRR3 table
print 'Calculate LFP'
fillFieldsLFP (hrr3, lfp_m)
#####***** Part3 *****#####
if (str (projected) == 'false') or (projected == False):
print "Projecting streams and catchments"
catch, streamsFC = projectFCs (catch, streamsFC, projection, targetWorkspace)
fillFields (hrr3, catch, streamsFC, region, zone)
arcpy.AddMessage ("Success")
print arcpy.GetMessages ()
def checkGC (table):
""" Returns correct Grid Code field. Can be either GRIDCODE or GRID_CODE """
fields = arcpy.ListFields (table)
#Get correct name for gridcode field
for f in fields:
146
if f.name.upper() == "GRID_CODE":
return "GRID_CODE"
elif f.name.upper() == "GRIDCODE":
return "GRIDCODE"
def joinTable (streamstable, table):
"""Joins streams shapefile to MaxFAcc on Grid Code, for max FAcc by
stream/catchment."""
fields = ['COUNT', 'MAX']
gcTable = checkGC (table) # Get correct grid code name
gcStream = checkGC (streamstable)
arcpy.JoinField_management(streamstable, gcStream, table, gcTable, fields)
def addFieldsTable (table):
"""Add new fields"""
#HRR_ID is the ID in order of sort from low MAX to high MAX
# WID is watershed ID
# Down_ID is the next grid code downstream
# NumUp is the number of watersheds directly upstream
# Up1, Up2, Up3 are grid codes of watersheds directly upstream
# CumArea is the cumulative area of the upstream watersheds.
fieldNames = [["HRR_ID", "LONG"], ["WID", "LONG"], ["Down_ID","LONG"],
["NumUp","SHORT"], ["Up1ID","LONG"],
["Up2ID", "LONG"], ["Up3ID", "LONG"], ["CumArea", "FLOAT"]
]
for f in fieldNames:
arcpy.AddField_management (table, f[0], f[1])
def deleteFields (table):
""" Delete unneeded fields"""
fieldNames = ['AREA', 'GRID_COD_1', 'SHAPE_LENG']
for f in fieldNames:
arcpy.DeleteField_management (table, f)
def fillZeroes (table):
""" Fill zeroes into columns where zero is the default value """
fieldNames = ["NumUp", "Up1ID", "Up2ID", "Up3ID", "WID"]
for f in fieldNames:
arcpy.CalculateField_management (table, f, 0)
def buildChannels (table, n):
#Build channels- associate from-to nodes with Grid Codes up and downstream,
#associate watershed values."""
numRec = int (arcpy.GetCount_management (table).getOutput (0))
147
##NumRec needs to be at least highest number found in from/to, because to and from
nodes labels can be > number of records.
numRec += numRec*10
gcNewTable = checkGC (table)
toFrom =[0 for x in range (numRec)] #List where record number n is the from value
fromTo = [0 for x in range (numRec)] #List where record number n is the to value
sink = [0 for x in range (numRec)] #List to hold values for all records that are sinks or
outlets.
downID = [-1 for x in range (numRec)]
numUp = [0 for x in range (numRec)]
up1 = [0 for x in range (numRec)]
up2 = [0 for x in range (numRec)]
up3 = [0 for x in range (numRec)]
hrr = [0 for x in range (numRec)]
dict = {} #Will contain {grCode:[0 downID, 1 numUp, 2 up1, 3 up2, 4 up3, 5 sink, 6
hrr]}
print 'new table grid code is', gcNewTable
fields = [gcNewTable, "MAX", "FROM_NODE", "TO_NODE", "HRR_ID",
"DOWN_ID", "NUMUP", \
"Up1ID", "Up2ID", "Up3ID", 'WID', 'CumArea']
with arcpy.da.SearchCursor (table, fields) as cursor:
# Stores all records referenced to grCode in a list of dictionaries.
for row in cursor:
grCode = row[0]
dict[grCode] =[0 for x in range (5)]
#Sorts cursor by MAX
cursor.reset ()
#Fills toFrom
for row in cursor:
fromID = int (row[2]) #From_Node
grCode = row[0]
# index fromID = grCode
toFrom [fromID] = grCode #c #ToFrom goes current from node to current grid
code.
cursor.reset ()
#Fills fromTo
m = 1 #sink num
148
# Sort records
if n == 1:
cursor = sorted (cursor, key = itemgetter (1)) # Sort on MAX
else:
cursor = sorted (cursor, key = itemgetter (10,11)) #sort on WID, then CumArea
for row in cursor:
grCode = row[0]
toID = int (row[3]) #To_Node
k = toFrom [toID] #k = grid code at the To_Node
if k == 0:
fromTo [grCode] = 0 #There is no down unit
sink [grCode] = m #This is a sink or terminus.
m +=1
else:
fromTo [grCode] = k #Row ID for the down unit (dpfaf)
sink [grCode] = 0 #This is not a sink or terminus.
#Fills column downValue
# Sort records
for row in cursor:
grCode = row[0]
downID [grCode] = fromTo [grCode] #Assigns DownID
if n == 1:
print "n = 1, sort on MAX"
cursor = sorted (cursor, key = itemgetter (1)) # Sort on MAX
else:
print "n != 1, sort on WID & CumArea"
cursor = sorted (cursor, key = itemgetter (10,11)) #sort on WID, then CumArea
#Fills upID values. Next two loops are where data MUST be sorted by area (MAX)
c = 1
for row in cursor:
grCode = row[0]
dstr = downID [grCode]
hrr[grCode] = c
if up1[dstr] == 0: #If up1 at the next downstream is 0
up1 [dstr] = grCode #upID1 at row num downID = current row (c)
numUp [dstr] = 1
elif up1[dstr] > 0:
if up2 [dstr] == 0:
up2 [dstr] = grCode
numUp [dstr] = 2
elif up3 [dstr] == 0:
149
up3 [dstr] = grCode
numUp [dstr]= 3
elif dstr > 0:
numUp = 9999
print (str (dstr) + "has more than 3 watersheds flowing into it")
c +=1
# Sort records
# fills dictionary with values for use in update cursor.
for row in cursor:
grCode = row[0]
dict[grCode] = [downID[grCode], numUp [grCode], up1[grCode], up2[grCode],\
up3[grCode], sink[grCode], hrr[grCode]]
print "Channels determined"
#Update rows
with arcpy.da.UpdateCursor (table, fields) as cursor:
for row in cursor:
grCode = row[0]
row [4] = dict [grCode] [6]
row [5] = dict [grCode][0]
row [6] = dict [grCode][1]
row [7] = dict [grCode][2]
row [8] = dict [grCode][3]
row [9] = dict [grCode][4]
row [10] = dict [grCode] [5]
cursor.updateRow (row)
print "Channels Built"
if cursor:
del cursor
def cumArea (table):
""" Calculates cumulative area of watershed at current catchment for each catchment in
a watershed"""
gcNewTable = checkGC (table)
fields = [gcNewTable, "COUNT", "UP1ID", "UP2ID", "UP3ID", "CumArea",
"HRR_ID"]
numRec = int (arcpy.GetCount_management (table).getOutput (0))
numRec += numRec*10
countL = [0 for x in range (numRec)] #List of all areas in Count field
sumArea = [0 for x in range (numRec)]
with arcpy.da.SearchCursor (table, fields) as cursor:
# Makes a list of all areas in order of Grid Code
150
for row in cursor:
id = row[0]
countL [id] = row[1]
cursor.reset()
#Sort on HRR_ID
cursor = sorted (cursor, key = lambda row:row[6])
# get all cumulative areas
for row in cursor:
# sumArea = area in count field + area in each Up field.
id = row [0]
sumArea[id] = countL [row[0]] + countL [row[2]] + countL [row[3]] \
+ countL [row[4]]
countL[id] = sumArea [id]
print "Cumulative area determined"
with arcpy.da.UpdateCursor (table, fields) as cursor:
for row in cursor:
id = row[0]
row[5] = sumArea [id]
cursor.updateRow (row)
print "Cumulative Area entered"
if cursor:
del cursor
def assignWID (table):
""" Assigns watershed ID to each catchment"""
gcNewTable = checkGC (table)
fields = [gcNewTable, "UP1ID", "UP2ID", "UP3ID", "WID", "HRR_ID"]
numRec = int (arcpy.GetCount_management (table).getOutput (0))
numRec += numRec*10
wid = [0 for x in range (numRec)]
with arcpy.da.SearchCursor (table, fields) as cursor:
# Makes a list of all areas in order of Grid Code
for row in cursor:
id = row[0]
wid [id] = row[4]
cursor.reset()
151
#Sort on HRR_ID
cursor = sorted (cursor, key = lambda row:row[5], reverse = True)
for row in cursor:
# fills list with appropriate watersheds.
id = row[0]
up1 = row[1]
up2 = row[2]
up3 = row[3]
if up1 > 0:
wid[up1] = wid[id]
if up2 > 0:
wid[up2] = wid[id]
if up3 > 0:
wid[up3] = wid[id]
print "WID determined"
#updates WID column in table
with arcpy.da.UpdateCursor (table, fields) as cursor:
for row in cursor:
id = row[0]
row [4] = wid[id]
cursor.updateRow (row)
print "WID entered"
if cursor:
del cursor
def relateHRR (table):
""" Relates up and down IDs on HRRID instead of Grid Code"""
gcNewTable = checkGC (table) # Get correct grid code name
fields = [ gcNewTable, "HRR_ID", "UP1ID", "UP2ID", "UP3ID", "DOWN_ID"]
with arcpy.da.SearchCursor (table, fields) as cursor:
allCodes = {} # dictionary relating grid codes to HRRID
for row in cursor:
# {grid code: hrr}
allCodes[row[0]] = row[1]
cursor.reset()
allCodes[0] = 0 # Takes care of entries with no up or down ID.
152
# update table replaceing grid code with HRRID in up and down IDs
with arcpy.da.UpdateCursor (table, fields) as cursor:
for row in cursor:
# up1 = allCodes[grid code from up1 column]= HRR at that column
row[2] = allCodes[row[2]]#up1
row[3] = allCodes[row[3]]#up2
row[4] = allCodes[row[4]]#up3
row[5] = allCodes[row[5]]#down
cursor.updateRow (row)
#Adds fields to feature class
def addFields (fc, fieldList):
""" Adds fields in a list of fields"""
for field in fieldList:
print "Adding field " + field + " to " + fc
arcpy.AddField_management (fc, field, "FLOAT", "", "", "", "", "NULLABLE",
"NON_REQUIRED", "")
def fillFieldsLFP (hrr3, stream):
fieldsTable = ["Lc_LFP_km"]
addFields (stream, fieldsTable) #channel length by LFP
#Update new fields
print "Updating simple fields"
arcpy.CalculateField_management (stream, "Lc_LFP_km",
"!SHAPE.LENGTH!/1000", "PYTHON")
newGC = checkGC (hrr3)
strGC = checkGC (stream)
arcpy.JoinField_management (hrr3, newGC, stream, strGC, "Lc_LFP_km")
def prjNames (workspace):
""" Check workspace type, and set output names """
desc = arcpy.Describe(workspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
m = isGDB, 'is the workspace type.'
arcpy.AddMessage (m)
if isGDB != "FileSystem":
catch_m = 'catchments_m'
153
str_m = 'streams_m'
else:
catch_m = 'catchments_m.shp'
str_m = 'streams_m.shp'
print arcpy.GetMessages ()
return catch_m, str_m
def projectFCs (catch, stream, prj, workspace):
""" Projects feature classes and returns names """
c_m, s_m = prjNames (workspace)
m = c_m, s_m, "Projecting catchments and streams, in ProjectFCs"
arcpy.Project_management(catch, c_m, prj)
arcpy.Project_management(stream, s_m, prj)
return c_m, s_m
def cumFields (table, count, cumulative ):
""" Calculates cumulative area of each catchment and all catchments upstream in sqkm.
"""
fields = [count, "UP1ID", "UP2ID", "UP3ID", cumulative, "HRR_ID"]
# Check for 4 up column
allFields = arcpy.ListFields (table)
for f in allFields:
if f.name.upper == "UP4ID":
check4up = True
break
else:
check4up = False
# Add up4ID to fields if it exists
if check4up:
fields.append ("UP4ID")
countArea = [0] #List of all areas in Count field. HRR IDs start at 1, so 0 is a filler. If no
HRRID listed, area is 0.
sumArea = {} #dictionart of cumulative sum of all areas.
with arcpy.da.SearchCursor (table, fields) as cursor:
#Sort on HRR_ID
cursor = sorted (cursor, key = lambda row:row[5])
# Makes a list of all areas at list index HRRID
for row in cursor:
countArea.append (row[0])
# get all cumulative areas
154
for row in cursor:
# sumArea = area in count field + area in each Up field.
id = row [5]
# sumArea = area at currentHRRID + area in HRRID in up1+ area in HRRID in
up2 + Aaea in HRRID in up3
sumArea[id] = countArea [row[5]] + countArea [row[1]] + countArea [row[2]] +
countArea [row[3]]
# Add up4ID to sum if it exists
if check4up:
sumArea [id] += countArea [row[6]]
countArea[id] = sumArea [id] # current cumulative area updated.
if cursor:
del cursor
print "Cumulative determined"
with arcpy.da.UpdateCursor (table, fields) as cursor:
for row in cursor:
id = row[5]
# cumulative area at current HRRID
row[4] = sumArea[id]
cursor.updateRow (row)
print "Cumulative entered"
def fillFields (hrr3, catch, stream, region, zone):
""" Fills in length, area, and cumulative length and area fields."""
#Add fields to both tables
fieldsTable = ["CumA_sqkm","CumL_km","cumLfp_km"] #added by YZ
addFields (hrr3, fieldsTable)
addFields (catch, ["A_sqkm"])
addFields (stream, ["L_km"])
addFields (hrr3, ["Lp_km"])
#Update new fields
print "Updating simple fields"
arcpy.CalculateField_management (stream, "L_km", "!SHAPE.LENGTH! / 1000",
"PYTHON") #GIS channel length
arcpy.CalculateField_management (catch, "A_sqkm",
"!SHAPE.AREA@SQUAREKILOMETERS!", "PYTHON")
155
newGC = checkGC (hrr3)
strGC = checkGC (stream)
catchGC = checkGC (catch)
arcpy.JoinField_management (hrr3, newGC, stream, strGC, "L_km")
arcpy.JoinField_management (hrr3, newGC, catch, catchGC, "A_sqkm" )
expression = "getClass(float(!Lc_LFP_km!),float(!A_sqkm!),cellSize)"
codeblock = """def getClass(lpkm,asqkm,dx):
if lpkm < dx:
return asqkm/dx/2
elif lpkm >= dx:
return asqkm/lpkm/2"""
arcpy.CalculateField_management (hrr3, "Lp_km", expression, "PYTHON", codeblock)
#EB
#arcpy.CalculateField_management (hrr3, "Lp_km", "!A_sqkm!/!Lc_LFP_km!/2",
"PYTHON") #yz
arcpy.JoinField_management (hrr3, newGC, catch, catchGC, "Lp_km" )
arcpy.DeleteField_management (catch, "A_sqkm")
arcpy.DeleteField_management (catch, "Lp_km")
arcpy.DeleteField_management (stream, "L_km")
print ("updating Cum fields")
cumFields (hrr3, "A_sqkm", "CumA_sqkm")
cumFields (hrr3, "L_km", "CumL_km")
cumFields (hrr3, "Lc_LFP_km", "cumLfp_km")
if __name__ == "__main__":
main ();
156
Step 3.1:
###########################
#read the nc file of hydraulic conductivity
# and make the raster of harmonic mean.
#By Yuanhao Zhao
###########################
rm(list = ls())
require(ncdf4)
require(maps)
require(raster)
require(rgdal)
#--------- INPUT ------------#
# Set netCDF folder path, put all nc files and this R code in fdir folder
fncdir <- "D:\\Data\\BNU\\K_sFromBNU\\k_s" #, Data source folder, Must use '\\'
# f_tiff <- 'C:\\Research\\Congo\\Congo_Lake2\\GlobalData\\k_s\\ks_1.tiff' #In case user
want to write a geotiff raster file
# working directory
wkdir <- 'C:\\Research\\HRR_python_example\\MissionCreek\\Soil_rast' #Must use '\\'
# Note: Put 'Catchments.shp in the wkdir folder' !!!!!!
#----------------------------#
#####***** MAIN *****#####
# Names of all nc files
names_ksat <- list.files(fncdir, pattern = '.nc')
# Read catchments shapefile, dsn is the folder name, layer is the shapefile name
catch <- readOGR(dsn = wkdir, layer = "Catchments")
prj <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
#Project catchment to wgs84
catch <- spTransform(catch, prj)
# loop to generate ascii raster
for (i in 1:length(names_ksat)){
# Generate the name of the nc file
nc_f <- paste(fncdir, names_ksat[i], sep='\\')
# Make the nc file to raster
157
ras_nc<-raster(nc_f, varname="k_s")
# ras_nc<- projectExtent(ras_nc, crs = prj_m)
# If want to write the raster to a tiff file, uncomment next line
# writeRaster(rast, filename = f_tiff, format = 'GTiff', overwrite = T)
# Extract the nc raster by catchments
nc_extr <- crop(ras_nc, extent(catch)+0.05, snap="out")
#ksat raster
ksat_lay <- paste('ksat',i,sep='_')
assign(ksat_lay, nc_extr)
#Name of the output raster, in ascii format
ext_ncras <- paste("ext_ncras",i,sep="_")
ext_nc <- paste(wkdir, ext_ncras,sep = "\\")
#Save the raster of each layer, comment next line if unnecessary
writeRaster(nc_extr, filename = ext_nc, format = 'ascii', overwrite = TRUE)
}
# Ksat harmonic mean
# The vertical variation of soil property was captured by eight layers to the depth of 2.3 m
# (i.e. 0- 0.045, 0.045- 0.091, 0.091- 0.166, 0.166- 0.289, 0.289- 0.493, 0.493- 0.829,
# 0.829- 1.383 and 1.383- 2.296 m).
ksat_hm <- 2.296/(0.045/ksat_1 + 0.046/ksat_2 + 0.075/ksat_3 + 0.123/ksat_4 +
0.204/ksat_5 + 0.336/ksat_6 + 0.554/ksat_7 + 0.913/ksat_8)
# SoilD <- 0.045*ksat_1/ksat_1 + 0.046*ksat_2/ksat_2 + 0.075*ksat_3/ksat_3 +
0.123*ksat_4/ksat_4 +
# 0.204*ksat_5/ksat_5 + 0.336*ksat_6/ksat_6 + 0.554*ksat_7/ksat_7 +
0.913*ksat_8/ksat_8
# Name of output ksat raster
name_kshm <- paste(wkdir,"ksat_hm_cm_d", sep="\\")
# name_soilD <- paste(wkdir, "soilD_m", sep="\\")
# Write raster, harmonic mean of ksat and soil depth
# Seems all layers have depth (2.296)
writeRaster(ksat_hm, filename = name_kshm, format = 'ascii', overwrite = TRUE)
# writeRaster(SoilD, filename = name_soilD, format = 'ascii', overwrite = TRUE)
158
Step 3.2:
###########################
#read the nc file of hydraulic conductivity
# and make the raster of harmonic mean.
#By Yuanhao Zhao
###########################
rm(list = ls())
require(ncdf4)
require(maps)
require(raster)
require(rgdal)
#--------- INPUT ------------#
# Set netCDF folder path, put all nc files and this R code in fdir folder
fncdir <- "D:\\Data\\BNU\\theta_s" #Data source folder, Must use '\\'
# working directory
wkdir <- 'C:\\Research\\HRR_python_example\\MissionCreek\\Soil_rast' #Must use '\\'
# Note: Put 'Catchments.shp in the wkdir folder' !!!!!!
#----------------------------#
#####***** MAIN *****#####
# Names of all nc files
names_theta <- list.files(fncdir, pattern = '.nc')
# Read catchments shapefile, dsn is the folder name, layer is the shapefile name
catch <- readOGR(dsn = wkdir, layer = "Catchments")
prj <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
#Project catchment to wgs84
catch <- spTransform(catch, prj)
# loop to generate ascii raster
for (i in 1:length(names_theta)){
# Generate the name of the nc file
nc_f <- paste(fncdir, names_theta[i], sep='\\')
# Make the nc file to raster
ras_nc<-raster(nc_f, varname="theta_s")
# Extract the nc raster by catchments
159
nc_extr <- crop(ras_nc, extent(catch) + 0.05, snap="out")
#theta raster
theta_lay <- paste('theta',i,sep='_')
assign(theta_lay, nc_extr)
#Name of the output raster, in ascii format
ext_ncras <- paste("ext_ncras",i,sep="_")
ext_nc <- paste(wkdir, ext_ncras,sep = "\\")
#Save the raster of each layer, comment next line if unnecessary
writeRaster(nc_extr, filename = ext_nc, format = 'ascii', overwrite = TRUE)
}
# theta mean
# The vertical variation of soil property was captured by eight layers to the depth of 2.3 m
# (i.e. 0- 0.045, 0.045- 0.091, 0.091- 0.166, 0.166- 0.289, 0.289- 0.493, 0.493- 0.829,
# 0.829- 1.383 and 1.383- 2.296 m).
theta_hm <- (0.045*theta_1 + 0.046*theta_2 + 0.075*theta_3 + 0.123*theta_4 +
0.204*theta_5 + 0.336*theta_6 + 0.554*theta_7 +
0.913*theta_8)/2.962
# SoilD <- 0.045*theta_1/theta_1 + 0.046*theta_2/theta_2 + 0.075*theta_3/theta_3 +
0.123*theta_4/theta_4 +
# 0.204*theta_5/theta_5 + 0.336*theta_6/theta_6 + 0.554*theta_7/theta_7 +
0.913*theta_8/theta_8
# Name of output theta raster
name_kshm <- paste(wkdir,"theta", sep="\\")
# name_soilD <- paste(wkdir, "soilD_m", sep="\\")
# Write raster, harmonic mean of theta and soil depth
# Seems all layers have depth (2.296)
writeRaster(theta_hm, filename = name_kshm, format = 'ascii', overwrite = TRUE)
# writeRaster(SoilD, filename = name_soilD, format = 'ascii', overwrite = TRUE)
160
Step 4.1:
# -*- coding: utf-8 -*-
"""
Note: Please extract soil raster files based on catchment before this step.
In: Take soil raster files, project them using flow direction raster file.
Out: Projected soil raster files have same coordinate system as flow direction raster
@author: Yuanhao
"""
import arcpy, os, os.path
from arcpy import env
from arcpy.sa import *
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
#####***** input parameters *****#####
targetWorkspace = r"C:\Research\HRR_python_example\MissionCreek\Soil_rast" #
Working folder
drainageDirection = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fdr"
# Raster file of flow direction
global_rastPath = r"C:\Research\modelsetupcode\HWSD" # Folder, contains all origin
golbal soil raster files
rast_global = ['soild_cm'] # Soil properties raster file in global raster path folder (above)
that user wants to extract by
# catchments.shp
rast_cat = ['ksat_hm_cm_d.asc',
'theta.asc',
'lc_cat',
'soild_cm_cat'] # Names of raster files for catchments will be projected
using
# flow direction raster
#####****************************#####
arcpy.env.workspace = targetWorkspace
arcpy.env.snapRaster = drainageDirection # Snap raster - fdir
#%% Part 1: extract soil property raster files by flow direction raster of basin
161
for name in rast_global:
print name
rast = os.path.join(global_rastPath, name)
outras = ExtractByMask(rast, drainageDirection)
outras.save(targetWorkspace+'\\'+name+'_cat')
#%% Part 2: Project the soil raster files which are not in projection of flow direction
fdircellsize = arcpy.GetRasterProperties_management(drainageDirection, "CELLSIZEX")
# cell size
desc_fdir = arcpy.Describe(drainageDirection)
coor_system = desc_fdir.spatialReference
print 'Start to project...'
for name in rast_cat:
print name
rast = os.path.join (targetWorkspace, name)
desc_rast = arcpy.Describe(rast)
if desc_rast.extension == 'asc':
rastN = rast[:-4]
arcpy.ASCIIToRaster_conversion(rast, rastN, "FLOAT")
desc_rastN = arcpy.Describe(rastN)
spatialRef_rastN = desc_rastN.spatialReference
if spatialRef_rastN.Name == 'Unknown':
arcpy.DefineProjection_management(rastN, '4326')
rastp = rastN+'p' # p means projected
arcpy.ProjectRaster_management(rastN, rastp, drainageDirection, 'BILINEAR',
fdircellsize)
else:
rastp = rast+'p'
if rast[-9:] == 'cover_cat':
arcpy.ProjectRaster_management(rast, rastp, drainageDirection, 'NEAREST',
fdircellsize)
else:
arcpy.ProjectRaster_management(rast, rastp, drainageDirection, 'BILINEAR',
fdircellsize)
print 'Success!'
162
Step 4.2:
"""
GIS setup for Hillslope River Routing Model (HRR) Step 3
Parts:
1. Extract DEM data from longest flow path (LFP), measure the slope of LFP for each
model unit in percent rise.
2. Extract information from HWSD for soil properties. Write to HRR3 table.
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, os, os.path
from arcpy import env
from arcpy.sa import *
#####***** input parameters *****#####
#cellsize = 0.00083333333
drainageDirection = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fdr"
# Raster file of flow direction
targetWorkspace = r"C:\Research\HRR_python_example\MissionCreek\GIS_working"
#Output workspace folder
DemRas = r'C:\Research\HRR_python_example\MissionCreek\GIS_basic\dem_m' # dem
raster file for whole basin, 90m X 90m
CatSlope = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\slope" # slope
raster for whole basin
rastPath = r"C:\Research\HRR_python_example\MissionCreek\Soil_rast" #Soil property
data raster folder path, user can create a folder which has the raster data
hrr3 = "HRR_Table3_MC01.dbf" #HRR3 table in 'GIS_working' folder
#####****************************#####
def main ():
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
arcpy.env.workspace = targetWorkspace
arcpy.env.snapRaster = drainageDirection # Snap raster - fdir
catchments = "Catchments.shp" #shapefile of catchments
lfp = "lfpstrd.shp" #longest flow path shapefile
163
#####***** part1 *****#####
isGDB = checkGDB (targetWorkspace) # True if output workspace a geodatabase
# Create copy of HRR table to add new field to.
if isGDB == False:
StrslpStat = 'StrslpStat.dbf'
slopeStat = 'slope_stats.dbf'
hrr4 = 'HRR_Table4.dbf'
else:
StrslpStat = 'StrslpStat'
slopeStat = 'slope_stats'
hrr4 = 'HRR_Table4'
StrslpStat = os.path.join (targetWorkspace, StrslpStat) #Stream (LFP) slope
slopeStat = os.path.join (targetWorkspace, slopeStat) #Catchment slope
print 'Slope for lfp'
StrDem = ExtractByMask(DemRas, lfp)
slp_str = Slope(StrDem, "PERCENT_RISE")
hrr4 = hrr3 # Commented out code above creates a new HRR table. Not needed,
since nothing is being removed, just added.
gridCode = checkGC (catchments)
m = ('zonal stats parameters : ' + catchments, gridCode, slp_str, StrslpStat, 'DATA',
'MEAN')
arcpy.AddMessage (m)
arcpy.GetMessages ()
arcpy.sa.ZonalStatisticsAsTable (catchments, gridCode, slp_str, StrslpStat,
'DATA', 'MEAN')
# Join fields from catchments and slope with HRR
slopeField (hrr4, StrslpStat)
print 'slope for catchment'
m = ('zonal stats parameters : ' + catchments, gridCode, CatSlope, slopeStat,
'DATA', 'MEAN')
arcpy.AddMessage (m)
arcpy.GetMessages ()
arcpy.sa.ZonalStatisticsAsTable (catchments, gridCode, CatSlope, slopeStat,
'DATA', 'MEAN')
# Join fields from catchments and slope with HRR
slopeFieldCat (hrr4, slopeStat)
164
#####***** Part2 *****#####
#arcpy.env.cellSize = cellsize
print 'Soil properties'
names = [
["KSat_cm_d", "FLOAT", "ksat_hm_cm_dp" , 1.0],
["Eff_Por", "FLOAT", "thetap", 1.0],
["depth10km", "SHORT", "soild_cm_catp", 1.0]
]
# These are other rasters of depth which are not used in the model at this time.
notUsed = [["Ref_Val", "FLOAT", "Ref_Depth" , 1000.0],
["Roots_Val", "FLOAT", "Roots_Depth", 1000.0],
["Suction_cm", "FLOAT", "suction_0", 1000.0],
["MDMax", "FLOAT", "mdmax_0", 100000.0],
["Imp_Wr", "FLOAT", "imp_water", 1.0],
["Imp_GG", "FLOAT", "imp_gg", 1.0],
["Imp_Rock", "FLOAT", "imp_rock", 1.0],
["Imp_Urban", "FLOAT", "imp_urban", 1.0],
["Min_Depth", "FLOAT", "Min_Depth_0", 1000.0],
["IL_Val", "FLOAT", "IL_Depth", 1000.0]
]
addFields (hrr3, names)
fillFields(catchments, hrr3, rastPath, names)
print 'Success!'
def addFields (table, names):
#print ("Adding fields")
for n in names:
arcpy.AddField_management (table, n[0], n[1])
def checkGC (table):
""" Returns correct Grid Code field. Can be either GRIDCODE or GRID_CODE """
fields = arcpy.ListFields (table)
#Get correct name for gridcode field
for f in fields:
if f.name.upper() == "GRID_CODE":
return "GRID_CODE"
elif f.name.upper() == "GRIDCODE":
return "GRIDCODE"
def checkGDB (workspace):
""" Returns true if GDB, false if not. """
desc = arcpy.Describe(workspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
165
if isGDB != "FileSystem":
return True
return False
# gets slope by stream, joins it to HRR table
def slopeField (hrrTable, StrslpStat):
print StrslpStat, 'is channel slope stat'
hrrGC = checkGC (hrrTable)
slopeGC = checkGC(StrslpStat)
f1 = arcpy.ListFields(hrrTable)
for f in f1:
if f == 'Slope_str' or f == 'Slope_cat':
arcpy.DeleteField_management (hrrTable, 'Slope_str')
# f2 = arcpy.ListFields (slopeStat)
fields = ['MEAN']
print 'adding field'
arcpy.AddField_management (hrrTable, 'Slope_str', 'FLOAT')
print 'joining mean'
arcpy.JoinField_management (hrrTable, hrrGC, StrslpStat, slopeGC, fields)
arcpy.CalculateField_management (hrrTable, 'Slope_str', '!MEAN!*0.01', 'PYTHON')
arcpy.DeleteField_management (hrrTable, fields)
def slopeFieldCat (hrrTable, slopeStat):
print slopeStat, 'is catchment slope'
hrrGC = checkGC (hrrTable)
slopeGC = checkGC(slopeStat)
f1 = arcpy.ListFields(hrrTable)
for f in f1:
if f == 'Slope_cat':
arcpy.DeleteField_management (hrrTable, 'Slope_cat')
fields = ['MEAN']
print 'adding field'
arcpy.AddField_management (hrrTable, 'Slope_cat', 'FLOAT')
print 'joining mean'
arcpy.JoinField_management (hrrTable, hrrGC, slopeStat, slopeGC, fields)
expression = '!MEAN!'
arcpy.CalculateField_management (hrrTable, 'Slope_cat', '!MEAN!', 'PYTHON')
arcpy.DeleteField_management (hrrTable, fields)
166
def fillFields (fc, outTable, rastPath, names):
"""Performs zonal statistics on all fields"""
outGC = checkGC(outTable)
fcGC = checkGC (fc)
for item in names:
field = item[0]
file = item[2]
divisor = item[3]
statTable = file
expression = "(!MEAN!) / " + str (divisor)
rast = os.path.join (rastPath, file)
print rast
desc_rast = arcpy.Describe(rast)
spatialRef_rast = desc_rast.spatialReference
# If it's ascii file, it doesn't have spatial reference, then define projection
if spatialRef_rast.Name == 'Unknown':
arcpy.DefineProjection_management(rast, '4326')
# IF it's asciii file, convert it to raster then perform zonal
if desc_rast.extension == 'asc':
rastN = rast[:-4]
arcpy.ASCIIToRaster_conversion(rast, rastN, "FLOAT")
statTableN = statTable[:-4]
desc_rastN = arcpy.Describe(rastN)
spatialRef_rastN = desc_rastN.spatialReference
if spatialRef_rastN.Name == 'Unknown':
arcpy.DefineProjection_management(rastN, '4326')
arcpy.sa.ZonalStatisticsAsTable (fc, fcGC, rastN, statTableN, "DATA", "MEAN")
statGC = checkGC (statTableN)
arcpy.JoinField_management (outTable, outGC, statTableN, statGC, "MEAN")
print ("calculating field")
arcpy.CalculateField_management (outTable, field, expression, "PYTHON")
arcpy.DeleteField_management (outTable, "MEAN")
arcpy.Delete_management(statTableN)
else:
arcpy.sa.ZonalStatisticsAsTable (fc, fcGC, rast, statTable, "DATA", "MEAN")
statGC = checkGC (statTable)
167
arcpy.JoinField_management (outTable, outGC, statTable, statGC, "MEAN")
print ("calculating field")
arcpy.CalculateField_management (outTable, field, expression, "PYTHON")
arcpy.DeleteField_management (outTable, "MEAN")
arcpy.Delete_management(statTable)
if __name__ == "__main__":
main ();
168
Step 5:
"""
GIS setup for Hillslope River Routing Model (HRR) Step 4
Procedure:
1. Take landcover, Ksat and slope raster of the basin, reclassify these 3 rasters and
combine them to 1 raster.
2. Reclassify the combined raster to n rasters (n as categories).
3. Run zonal statistics for each category to get weight in catchment, write to HRR table3.
4. Also determine surface roughness based on HECHMS.
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, os, os.path
from arcpy import env
from arcpy.sa import *
#####***** Input parameters *****#####
drainageDirection =
r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\fdr" # Raster file of flow
direction
targetWorkspace = r"C:\Research\HRR_python_example\MissionCreek\GIS_working"
#Output workspace folder
LandCover = r"C:\Research\HRR_python_example\MissionCreek\Soil_rast\lc_catp"
#land cover raster from MODIS for modeling basin
#these should be raster exactly like fdir grid (coordinate system, cell size and snapped
to fdir)
ksatras =
r"C:\Research\HRR_python_example\MissionCreek\Soil_rast\ksat_hm_cm_dp" #ksat
raster for modeling basin, from HWSD or defined by user
planeslope = r"C:\Research\HRR_python_example\MissionCreek\GIS_basic\slope"
#slope raster for modeling basin
region = 'MC' # Modeling basin
zone = '01' # Two numbers represent the model run
# Below are the runoff coefficients for different categories of landcover, ksat and plane
slope,
# please see user manual for details.
169
# RC - runoff coefficient
# slope: Fl - Flat, M - Moderate, S - Steep
# Ksat group: g1 - group 1, g2-group 2, g3-group 3
# Land cover: F-Forest, AGB-Agr/Grass/brush, U-Urban
RCFlg1F= 0.36
RCFlg1AGB= 0.52
RCFlg1WU = 0.68
RCFlg2F = 0.194
RCFlg2AGB = 0.357
RCFlg2WU = 0.512
RCFlg3F = 0.154
RCFlg3AGB = 0.2355
RCFlg3WU = 0.45
RCMg1F = 0.43
RCMg1AGB = 0.59
RCMg1WU = 0.745
RCMg2F = 0.2665
RCMg2AGB = 0.41
RCMg2WU = 0.5815
RCMg3F = 0.2
RCMg3AGB = 0.305
RCMg3WU = 0.48
RCSg1F = 0.586
RCSg1AGB = 0.746
RCSg1WU = 0.89
RCSg2F = 0.4225
RCSg2AGB = 0.5825
RCSg2WU = 0.7375
RCSg3F = 0.25
RCSg3AGB = 0.461
RCSg3WU = 0.66
#####*****************************#####
arcpy.env.workspace = targetWorkspace
arcpy.env.snapRaster = drainageDirection # Snap raster - fdir
catchments = "Catchments.shp"
#arcpy.env.mask = catchments
#output files, no need to modify
rasgdb1 = "reclass1.gdb" #This GDB file contains first step of reclassify
rasgdb2 = "reclass2.gdb" #This GDB file contains second step of reclassify
outLC = "ReclaLC" #land cover category raster
outSoil = "ReclaSoil" #soil type category raster
170
outSlp = "ReclaSlp" #slope type categoty raster
outSR = "ReclaSR" #surface roughness raster based on land cover
CatComb = "CatComb" #combined 3 catogeries raster
def main ():
arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
#Create gdb
gdb1path = os.path.join(targetWorkspace,rasgdb1)
gdb2path = os.path.join(targetWorkspace,rasgdb2)
HRR3 = "HRR_Table3_" + region + zone + ".dbf"
if not os.path.exists(gdb1path):
arcpy.CreateFileGDB_management(targetWorkspace,rasgdb1)
if not os.path.exists(gdb2path):
arcpy.CreateFileGDB_management(targetWorkspace,rasgdb2)
#####***** part1-reclassify *****#####
# ---reclassify land cover type to 3 categories:Forest, urban, Agr/Grass/brush
# Data source:
https://lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table/mcd12c1
# Use Layer 0 for land cover grid
# We use classification type1 (IGBP)
remap = RemapValue([[1,1],[2,1],[3,1],[4,1],[5,1], #forest
[6,2],[7,2],[8,2],[9,2],[10,2],[12,2],[14,2],
#Agr/Grass/brush
[15,3],[16,3],[13,3],[0,3],[11,3]])
#Urban,water
print 'start land cover reclassify'
outReclassify = Reclassify(LandCover, "VALUE", remap)
outLCras = os.path.join(gdb1path,outLC)
outReclassify.save(outLCras)
# ---reclassify ksat to 3 categories:loam, clay and sand. ksat is in cm/day
print 'start soil reclassify'
remap = RemapRange([[0,6,10], #ksat group 1
[6,24,20], #ksat group 2
[24,504,30]]) #ksat group 3
outReclassify = Reclassify(ksatras, "VALUE", remap)
outSoilras = os.path.join(gdb1path,outSoil)
outReclassify.save(outSoilras)
171
# ---reclassify plane slope to 3 categories
print 'start plane slope reclassify'
remap = RemapRange([[0,2,100], #flat
[2,10,200], #moderate
[10,1000,300]]) #steep
outReclassify = Reclassify(planeslope, "VALUE", remap)
outSlpras = os.path.join(gdb1path,outSlp)
outReclassify.save(outSlpras)
# ---reclassify land cover type to surface roughness raster
# based on Table6-1 in hecHMS mannual, P61.
remap = RemapValue([[1,5,600], #forest, 0.6
[6,10,180],[12,180],[14,180],
#Agr/Grass/brush, 0.18
[15,11],[16,11],[13,11],[11,11],[0,11]])
#Urban, 0.011
print 'start surface roughness reclassify'
outReclassify = Reclassify(LandCover, "VALUE", remap)
outSRras = os.path.join(gdb2path,outSR)
outReclassify.save(outSRras)
#%% Generate new raster, add three rasters to create a new raster
ReclaLC=Raster(outLCras)
ReclaSoil=Raster(outSoilras)
ReclaSlp=Raster(outSlpras)
ReclaSR=Raster(outSRras)
desc_soil = arcpy.Describe(ReclaSoil)
spatialRef_soil = desc_soil.spatialReference
if spatialRef_soil.Name == 'Unknown':
arcpy.DefineProjection_management(ReclaSoil, '4326')
ReclaSoil_N = os.path.join(gdb1path, 'ReclaSoil_N')
cellsize = arcpy.GetRasterProperties_management(ReclaSlp,
"CELLSIZEX")
arcpy.ProjectRaster_management(ReclaSoil, ReclaSoil_N, ReclaSlp, "",
cellsize)
arcpy.env.snapRaster = ReclaSlp
arcpy.env.extent = "MINOF"
CateCombination = ReclaLC+ReclaSoil_N+ReclaSlp
CatCombras = os.path.join(gdb1path,CatComb)
CateCombination.save(CatCombras)
else:
CateCombination = ReclaLC+ReclaSoil+ReclaSlp
CatCombras = os.path.join(gdb1path,CatComb)
CateCombination.save(CatCombras)
172
#####***** Part2 *****#####
print '1'
remap = RemapValue([[111,1], #flat, group 1, forest
[0,110,0],[112,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,'RclsFlg1F'))
print '2'
remap = RemapValue([[112,1], #flat, group 1, AGB
[0,111,0],[113,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg1AGB"))
print '3'
remap = RemapValue([[113,1], #flat, group 1, WU
[0,112,0],[114,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg1WU"))
print '4'
remap = RemapValue([[121,1], #flat, group 2, forest
[0,120,0],[122,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg2F"))
print '5'
remap = RemapValue([[122,1], #flat, group 2, AGB
[0,121,0],[123,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg2AGB"))
print '6'
remap = RemapValue([[123,1], #flat, group 2, WU
[0,122,0],[124,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg2WU"))
print '7'
remap = RemapValue([[131,1], #flat, group 3, forest
[0,130,0],[132,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg3F"))
print '8'
173
remap = RemapValue([[132,1], #flat, group 3, AGB
[0,131,0],[133,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg3AGB"))
print '9'
remap = RemapValue([[133,1], #flat, group 3, urban
[0,132,0],[134,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsFlg3WU"))
print '10'
remap = RemapValue([[211,1], #moderate, group1, forest
[0,210,0],[212,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg1F"))
print '11'
remap = RemapValue([[212,1], #moderate, group1, AGB
[0,211,0],[213,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg1AGB"))
print '12'
remap = RemapValue([[213,1], #moderate, group1, WU
[0,212,0],[214,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg1WU"))
print '13'
remap = RemapValue([[221,1], #moderate, group2, forest
[0,220,0],[222,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg2F"))
print '14'
remap = RemapValue([[222,1], #moderate, group2, AGB
[0,221,0],[223,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg2AGB"))
print '15'
remap = RemapValue([[223,1], #moderate, group2, WU
[0,222,0],[224,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg2WU"))
174
print '16'
remap = RemapValue([[231,1], #moderate, group3, forest
[0,230,0],[232,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg3F"))
print '17'
remap = RemapValue([[232,1], #moderate, group3, AGB
[0,231,0],[233,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg3AGB"))
print '18'
remap = RemapValue([[233,1], #moderate, group3, WU
[0,232,0],[234,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsMg3WU"))
print '19'
remap = RemapValue([[311,1], #steep, group1, forest
[0,310,0],[312,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg1F"))
print '20'
remap = RemapValue([[312,1], #steep, group1, AGB
[0,311,0],[313,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg1AGB"))
print '21'
remap = RemapValue([[313,1], #steep, group1, WU
[0,312,0],[314,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg1WU"))
print '22'
remap = RemapValue([[321,1], #steep, group2, forest
[0,320,0],[322,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg2F"))
print '23'
remap = RemapValue([[322,1], #steep, group2, AGB
[0,321,0],[323,1000,0]])
175
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg2AGB"))
print '24'
remap = RemapValue([[323,1], #steep, group2, WU
[0,322,0],[324,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg2WU"))
print '25'
remap = RemapValue([[331,1], #steep, group3, forest
[0,330,0],[332,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg3F"))
print '26'
remap = RemapValue([[332,1], #steep, group3, AGB
[0,331,0],[333,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg3AGB"))
print '27'
remap = RemapValue([[333,1], #steep, group3, WU
[0,332,0],[334,1000,0]])
outReclassify = Reclassify(CatCombras, "VALUE", remap)
outReclassify.save(os.path.join(gdb2path,"RclsSg3WU"))
#####***** Part3 *****#####
names = [
["Flg1F", "FLOAT", "RclsFlg1F", 1.0],
["Flg1AGB", "FLOAT", "RclsFlg1AGB", 1.0],
["Flg1WU", "FLOAT", "RclsFlg1WU", 1.0],
["Flg2F", "FLOAT", "RclsFlg2F", 1.0],
["Flg2AGB", "FLOAT", "RclsFlg2AGB", 1.0],
["Flg2WU", "FLOAT", "RclsFlg2WU", 1.0],
["Flg3F", "FLOAT", "RclsFlg3F", 1.0],
["Flg3AGB", "FLOAT", "RclsFlg3AGB", 1.0],
["Flg3WU", "FLOAT", "RclsFlg3WU", 1.0],
["Mg1F", "FLOAT", "RclsMg1F", 1.0],
["Mg1AGB", "FLOAT", "RclsMg1AGB", 1.0],
["Mg1WU", "FLOAT", "RclsMg1WU", 1.0],
["Mg2F", "FLOAT", "RclsMg2F", 1.0],
["Mg2AGB", "FLOAT", "RclsMg2AGB", 1.0],
["Mg2WU", "FLOAT", "RclsMg2WU", 1.0],
["Mg3F", "FLOAT", "RclsMg3F", 1.0],
176
["Mg3AGB", "FLOAT", "RclsMg3AGB", 1.0],
["Mg3WU", "FLOAT", "RclsMg3WU", 1.0],
["Sg1F", "FLOAT", "RclsSg1F", 1.0],
["Sg1AGB", "FLOAT", "RclsSg1AGB", 1.0],
["Sg1WU", "FLOAT", "RclsSg1WU", 1.0],
["Sg2F", "FLOAT", "RclsSg2F", 1.0],
["Sg2AGB", "FLOAT", "RclsSg2AGB", 1.0],
["Sg2WU", "FLOAT", "RclsSg2WU", 1.0],
["Sg3F", "FLOAT", "RclsSg3F", 1.0],
["Sg3AGB", "FLOAT", "RclsSg3AGB", 1.0],
["Sg3WU", "FLOAT", "RclsSg3WU", 1.0],
#surface roughness
["SRtemp", "FLOAT", "ReclaSR", 1000.0]
]
addFields(HRR3, names)
fillFields(catchments, HRR3, gdb2path, names)
arcpy.AddField_management (HRR3, "runco", "FLOAT")
arcpy.AddField_management (HRR3, "SR", "FLOAT")
print ("Calculate runoff coefficient")
rows = arcpy.SearchCursor(HRR3)
expression = "(!Flg1F!) * " + str (RCFlg1F) + " + (!Flg1AGB!) * " + str
(RCFlg1AGB) + " + (!Flg1WU!) * " + str (RCFlg1WU) + \
" + (!Flg2F!) * " + str (RCFlg2F) + " + (!Flg2AGB!) * " +
str (RCFlg2AGB) + " + (!Flg2WU!) * " + str (RCFlg2WU) + \
" + (!Flg3F!) * " + str (RCFlg3F) + " + (!Flg3AGB!) * " +
str (RCFlg3AGB) + " + (!Flg3WU!) * " + str (RCFlg3WU) + \
" + (!Mg1F!) * " + str (RCMg1F) + " + (!Mg1AGB!) * " +
str (RCMg1AGB) + " + (!Mg1WU!) * " + str (RCMg1WU) + \
" + (!Mg2F!) * " + str (RCMg2F) + " + (!Mg2AGB!) * " +
str (RCMg2AGB) + " + (!Mg2WU!) * " + str (RCMg2WU) + \
" + (!Mg3F!) * " + str (RCMg3F) + " + (!Mg3AGB!) * " +
str (RCMg3AGB) + " + (!Mg3WU!) * " + str (RCMg3WU) + \
" + (!Sg1F!) * " + str (RCSg1F) + " + (!Sg1AGB!) * " + str
(RCSg1AGB) + " + (!Sg1WU!) * " + str (RCSg1WU) + \
" + (!Sg2F!) * " + str (RCSg2F) + " + (!Sg2AGB!) * " + str
(RCSg2AGB) + " + (!Sg2WU!) * " + str (RCSg2WU) + \
" + (!Sg3F!) * " + str (RCSg3F) + " + (!Sg3AGB!) * " + str
(RCSg3AGB) + " + (!Sg3WU!) * " + str (RCSg3WU)
arcpy.CalculateField_management (HRR3, "runco", expression, "PYTHON")
arcpy.CalculateField_management (HRR3, "SR", "!SRtemp!", "PYTHON")
177
print 'Success!'
#------------------------------------------------------------
#functions
def addFields (table, names):
for n in names:
arcpy.AddField_management (table, n[0], n[1])
def checkGDB (workspace):
""" Returns true if GDB, false if not. """
desc = arcpy.Describe(workspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
arcpy.AddMessage (isGDB)
arcpy.GetMessages ()
if isGDB == "FileSystem":
arcpy.AddMessage (isGDB)
print arcpy.GetMessages ()
return False
else:
return True
def checkGC (table):
""" Returns correct Grid Code field. Can be either GRIDCODE or GRID_CODE """
fields = arcpy.ListFields (table)
#Get correct name for gridcode field
for f in fields:
if f.name.upper() == "GRID_CODE":
return f.name.upper ()
elif f.name.upper() == "GRIDCODE":
return f.name.upper ()
def fillFields (fc, outTable, rastPath, names):
#fc - catchments, outTable - HRR table, rastpath - folder save rasters
#"""Performs zonal statistics on all fields"""
outGC = checkGC(outTable)
fcGC = checkGC (fc)
for item in names:
field = item[0]
filex = item[2]
divisor = item[3]
178
expression = "(!MEAN!) / " + str (divisor)
rast = os.path.join (rastPath,filex)
statTable = os.path.join (targetWorkspace, filex)
print rast
print "Zonal stats on " + field
arcpy.sa.ZonalStatisticsAsTable (fc, fcGC, rast, statTable, "DATA", "MEAN")
statGC = checkGC (statTable)
print "joining field " + field
arcpy.JoinField_management (outTable, outGC, statTable, statGC, "MEAN")
print "calculating field"
arcpy.CalculateField_management (outTable, field, expression, "PYTHON")
print "Deleting Mean field"
arcpy.DeleteField_management (outTable, "MEAN")
arcpy.Delete_management(statTable)
def delFields (table, names):
for n in names:
arcpy.DeleteField_management (table, n[0])
if __name__ == "__main__":
main ();
179
Step 6:
"""
GIS setup for Hillslope River Routing Model (HRR) Step 5
Objectives:
1. Take HRR3 table, Returns 3 tab delimited .txt files for HRR model to run: channels.txt,
planes.txt. output_calibration.txt
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, os, os.path
from arcpy import env
from arcpy.sa import *
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
#####***** Input parameters *****#####
outputPath = r'C:\Research\HRR_python_example\MissionCreek\Input' #Path with
HRR table (see next line) and location to write text files
hrr = "HRR_Table3_MC01.dbf" #Final HRR table with all soil property fields, slopes,
lengths and areas
###******************************#####
def main ():
arcpy.env.workspace = outputPath
print ' running hrr to text on', hrr
# Fill lists with appropriate data
count = sum((1 for row in arcpy.da.SearchCursor(hrr, ['HRR_ID'])))
numRec = count + 1
gridCode = checkGC (hrr) ##""" only if split"""
dict = fillLists (hrr, numRec)
dict = removeFirst (dict)
#Write to files
makeFiles (outputPath, dict, numRec)
180
print 'Success!'
def checkGDB (workspace):
""" Returns true if GDB, false if not. """
desc = arcpy.Describe(workspace)
isGDB = desc.workspaceType # FileSystem if not GDB, else type of GDB.
if isGDB != "FileSystem":
return True
return False
def checkGC (table):
""" Returns correct Grid Code field. Can be either GRIDCODE or GRID_CODE """
fields = arcpy.ListFields (table)
for f in fields:
if "GRID_CODE" in f.name.upper ():
return "GRID_CODE"
elif "GRIDCODE" in f.name.upper ():
return "GRIDCODE"
def checkNumUp (hrrTable):
"""Check for up4 field"""
fields = [f.name for f in arcpy.ListFields(hrrTable)]
if 'UP4ID' in fields:
return True
else:
return False
#Recalculates null values to -999
def nullCheck (dict):
"""Recalculates slope from null to -999 where catchment has no null value in
raster."""
for id in dict['hrrID'][0]:
#slope
if not isinstance (dict['slope_ch'][0][id], float):
dict['slope_ch'][0][id] = -999
if not isinstance (dict['slope_p1'][0][id], float):
dict['slope_p1'][0][id] = -999
#HWSD
if not isinstance (dict['kSat'][0][id], float):
dict['kSat'][0][id] = -999
if not isinstance (dict['effPor'][0][id], float):
dict['effPor'][0][id] = -999
181
#depth10km
if not isinstance (dict['dep10km'][0][id], int):
dict['dep10km'][0][id] = -999
return dict
def fillLists (hrrTable, numRec):
""" Creates data structure to hold final output."""
# Data fields needed for final output, or needed to calculate final output.
# Fills with default of -999 so it is obvious when a record does not exist for
# a particular grid code.
dict = {'gridCode': [[0 for x in range (numRec*10)], 1, 'all'], #arc
'hrrID': [[0 for x in range (numRec)], 0, 'all'], #arc
'length_p1': [[-999 for x in range (numRec)], 2, 'planes'], #calc
'slope_p1': [[-999 for x in range (numRec)], 3, 'planes'], #arc, calc
'n_surface': [[0.8 for x in range (numRec)], 4, 'planes'], #constant
'kSat': [[-999 for x in range (numRec)], 5, 'planes'], #arc
'effPor': [[-999 for x in range (numRec)], 6, 'planes'], #arc
'dep10km': [[-999 for x in range (numRec)], 7, 'planes'], #arc
'runco': [[-999 for x in range (numRec)], 8, 'planes'], #calc
'downID': [[-999 for x in range (numRec)], 2, 'channels'], #arc
'numUp': [[-999 for x in range (numRec)], 3, 'channels'], #arc
'up1': [[-999 for x in range (numRec)], 4, 'channels'], #arc
'up2': [[-999 for x in range (numRec)], 5, 'channels'], #arc
'up3': [[-999 for x in range (numRec)], 6, 'channels'], #arc
'a_km2': [[999 for x in range (numRec)], 8, 'channels'], #arc
'cumA_km2': [[999 for x in range (numRec)], 9, 'channels'], #arc
'len_ch': [[-999 for x in range (numRec)], 10, 'channels'], #arc
'slope_ch': [[0.01 for x in range (numRec)], 11, 'channels'], #constant
'n': [[0.025 for x in range (numRec)], 12, 'channels'], #constant
'width_ch': [[-999 for x in range (numRec)], 13, 'channels'], #calc
'q_r': [[-999 for x in range (numRec)], 14, 'channels'], #calc
'guageA': [[-999 for x in range (numRec)], 2, 'output'] } #calc
# Add entry for 4up if it exists.
up4 = checkNumUp (hrrTable)
if up4:
dict [up4] = [[-999 for x in range (numRec)], 7, 'channels'], #arc, or none
# fill values directly from Arc
182
dict = fillArcLists (hrrTable, dict)
# Fill lists with calculated values
dict = nullCheck (dict)
dict = calcChannelsLists (dict)
return dict
def calcChannelsLists (dict):
"""Calculates values for fields with calculated values. """
hrrID = dict['hrrID'][0]
for id in hrrID:
dict['length_p1'][0][id] = dict['length_p1'][0][id] * 1000 #(m)
dict['len_ch'][0][id] = dict['len_ch'][0][id] * 1000 #(m)
dict['slope_p1'][0][id] = dict['slope_p1'][0][id] / 100 #(percent)
dict['slope_ch'][0][id] = dict['slope_ch'][0][id] / 1 #(percent)
dict['kSat'][0][id] = dict['kSat'][0][id] / 24 # ksat, cm/day to cm/hour
dict ['width_ch'][0][id] = 0.5 * ((dict['cumA_km2'][0][id]) ** 0.6)
dict ['q_r'][0][id]= 0.75 * (0.1 * ((dict['cumA_km2'][0][id]) ** 0.95))
dict ['guageA'][0][id] = int (dict['cumA_km2'][0][id])
return dict
def fillArcLists (hrrTable, dict):
""" Takes data from arc table and puts it into a list in memory."""
# Create lists of correct length
#list of fields in HRR3
gridCode = checkGC (hrrTable)
arcFields = [gridCode, 'HRR_ID', 'DOWN_ID', 'NUMUP', 'UP1ID',
'UP2ID', 'UP3ID', 'CUMA_SQKM', 'A_SQKM', 'LC_LFP_KM',
'LP_KM','KSAT_CM_D','EFF_POR','SLOPE_STR','SLOPE_CAT',
'DEPTH10KM','RUNCO','SR'
]
# Check if 4 upID fields
up4 = checkNumUp (hrrTable)
if up4:
arcFields.append ('UP4ID')
# list of lists
arcLists = [dict['gridCode'][0], #1
dict['hrrID'][0], #2
dict['downID'][0], #3
dict['numUp'][0], #4
dict['up1'][0], #5
dict['up2'][0], #6
183
dict['up3'][0], #7
dict['cumA_km2'][0], #8
dict['a_km2'][0], #9
dict['len_ch'][0], #10
dict['length_p1'][0], #11
dict['kSat'][0], #12
dict['effPor'][0], #13
dict['slope_ch'][0],#14
dict['slope_p1'][0], #15
dict['dep10km'][0], #16
dict['runco'][0], #17
dict['n_surface'][0] #18
]
if up4:
arcLists.append (dict ['UP4ID'][0])
with arcpy.da.SearchCursor (hrrTable, arcFields) as cursor:
for row in cursor:
hrrINT= row [1]
# Fill all lists, with HRRINT as index
for i in range(len(arcLists)):
arcLists[i][hrrINT] = row [i]
dict['gridCode'][0] = arcLists [0]
dict['hrrID'][0] = arcLists [1]
dict['downID'][0] = arcLists [2]
dict['numUp'][0] = arcLists [3]
dict['up1'][0] = arcLists [4]
dict['up2'][0] = arcLists [5]
dict['up3'][0] = arcLists [6]
dict['cumA_km2'][0] = arcLists [7]
dict['a_km2'][0] = arcLists [8]
dict['len_ch'][0] = arcLists [9]
dict['length_p1'][0] = arcLists [10]
dict['kSat'][0] = arcLists [11]
dict['effPor'][0] = arcLists [12]
dict['slope_ch'][0] = arcLists [13]
dict['slope_p1'][0] = arcLists [14]
dict['dep10km'][0] = arcLists [15]
dict['runco'][0] = arcLists [16]
dict['n_surface'][0] = arcLists [17]
if up4:
184
dict['up4'[0]] = arcLists [18]
return dict
def makeFiles (outPath, dict, numRec):
"""Creates and opens channels, planes, and ouput_calibration .txt files."""
channels = os.path.join (outPath, 'channels.txt')
planes = os.path.join (outPath, 'planes.txt')
output = os.path.join (outPath, 'output_calibration.txt')
input = os.path.join (outPath, 'input.txt')
# Put data into lists for files
chList, plList, outList = toLists (dict)
chList = sorted (chList, key = lambda ch:ch[1])
plList = sorted (plList, key = lambda pl:pl[1])
outList = sorted (outList, key = lambda ou:ou[1])
# make files
with open (planes, 'w') as handle:
wrFile (plList, handle)
with open (channels, 'w') as handle:
wrFile (chList, handle)
with open (output, 'w') as handle:
wrFile2 (outList, numRec, handle)
with open (input, 'w') as handle:
wrInput (numRec, handle)
def wrFile (dataLists, handle):
"""Writes data to open file"""
n = 0
#Iterate number of records in HRRID
#
hrrID = dataLists [0][0]
print len (dataLists)
while n < len (hrrID):
#Iterate fields for current file
i = 0
while i < (len (dataLists)):
handle.write (str (dataLists[i][0][n]))
if i == len (dataLists) - 1:
handle.write ('\n')
else:
handle.write ('\t')
185
i += 1
n += 1
def wrFile2 (dataLists, numRec, handle):
"""Writes data to open file"""
n = 0
#Iterate number of records in HRRID
hrrID = dataLists [0][0]
print len (dataLists)
handle.write (str (numRec-1)+ '\n')
while n < len (hrrID):
#Iterate fields for current file
i = 0
while i < (len (dataLists)):
handle.write (str (dataLists[i][0][n]))
if i == len (dataLists) - 1:
handle.write ('\n')
else:
handle.write ('\t')
i += 1
n += 1
def toLists (dict):
"""Creates list of data to be written to files from dictionary."""
ch = []
pl = []
out = []
all = []
for k, v in dict.iteritems ():
if v[2] == 'planes':
pl.append (v)
elif v[2] == 'channels':
ch.append (v)
elif v[2] == 'output':
out.append (v)
else:
all.append (v)
ch = all + ch
pl = all + pl
out = all + out
return ch, pl, out
# Removes first item of each list, where HRRID = 0. These are not valid datapoints
186
def removeFirst (dict):
for k, v in dict.iteritems():
v[0] = v[0][1:]
return dict
# Writes fill of inputs used to create data.
def wrInput (numRec, handle):
handle.write (str (numRec-1) + '\n' + str (10) + '\n' + str (122736) + '\n' + str (3600)
+ '\n' + str (2000) + '\n' + str (100) + '\n' + str (0.001)
+ '\n' + str (1) + '\n' + str (700) + '\n' + str (4.0)
+ '\n' + str (1.0) + '\n' + str (1.0) + '\n' + str (0.75)
+ '\n' + str (4.0))
main ()
187
Step 7:
"""
GIS setup for Hillslope River Routing Model (HRR) Step 5
Objectives:
1. Take catchment, met polygon IDs. Calculate area of each part of the catchment, then
calculate
weight (wt) by percent area for each part of the catchment. Sort by catchment ID
(GRID_CODE), small to large.
2. Output text file contains met data.
Hydro-Geo-Spatial Research Lab
Website: http://www.northeastern.edu/beighley/home/
By: Yuanhao Zhao
Email: [email protected]
"""
import arcpy, csv, os, os.path, subprocess, shutil, time
from operator import itemgetter, attrgetter
arcpy.CheckOutExtension("Spatial")
#####***** Input parameters *****#####
zone = '01'
region = 'MC'
outputSpace = r'C:\Research\HRR_python_example\MissionCreek\Met' #Location for
final text files contain met data
arcpy.env.workspace = outputSpace
arcpy.env.overwriteOutput = True
fortSpace = r'C:\Research\HRR_python_example\MissionCreek\Met\Met_bas' # Folder
contains origianl met data, location of overlay4.exe
hrr =
r"C:\Research\HRR_python_example\MissionCreek\Input\HRR_Table3_MC01.dbf"
#Location of final HRR 3 table in GIS folder
catchments =
r"C:\Research\HRR_python_example\MissionCreek\GIS_working\Catchments.shp"
#Fianl catchments shapefile in GIS folder
gridList = ['TRMM','MODIS'] # Name of met data, must match the met data grid in
'met_bas' folder.
#For example, 'TRMM' matches
'TRMM_Grid.shp'. If want to use other data source, the format must be ####_Grid.shp
#####****************************#####
188
def main ():
#Start run
place = '{1}{0}'.format (zone, region)
for cpcet in gridList:
# Run code for grid
cpcName = cpcet + '_Grid.shp'
cpcPoly = os.path.join(fortSpace,cpcName)
intTable = os.path.join (outputSpace, "{}_Zones_{}.shp".format (cpcet, place))
#intersected table, output
print 'working on', place, cpcet
setup (catchments, cpcPoly, intTable, hrr)
dataRec = getData (intTable, cpcet, cpcPoly)
dataRec = calcWt (dataRec)
writeCSV (dataRec, fortSpace, cpcet)
fortranCall (fortSpace, outputSpace, place, cpcet)
print 'success!'
def addFields (table, fields):
for f in fields:
arcpy.AddField_management (table, f[0], f[1])
def checkGC (table):
""" Returns correct Grid Code field. Can be either GRIDCODE or GRID_CODE """
fields = arcpy.ListFields (table)
#Get correct name for gridcode field
for f in fields:
if f.name.upper() == "GRID_CODE":
return f.name.upper ()
elif f.name.upper() == "GRIDCODE":
return f.name.upper ()
def setup (catch, cpc, iTable, hrr):
""" Creates intersected, projected shapefile, adds and calculates
weight field, and adds weight (wt) field. """
arcpy.Intersect_analysis ([catch, cpc], iTable)
print 'intersect done'
189
fields = ['AP_sqkm', "DOUBLE"]
arcpy.AddField_management (iTable, fields[0], fields[1])
print 'fields added'
iTableGC = checkGC (iTable)
hrrGC = checkGC (hrr)
arcpy.JoinField_management (iTable, iTableGC, hrr, hrrGC, "HRR_ID")
print "joined hrr"
expression = "!SHAPE.AREA@SQUAREKILOMETERS !"
arcpy.CalculateField_management (iTable, fields [0], expression, "PYTHON")
print 'field calculated'
print 'Setup completed'
def getData (table, cpcet,cpc):
""" Reads data from the intersected cpc/grid table. """
gc = checkGC (table)
print 'gridcode is ', gc
field_names = [f.name for f in arcpy.ListFields(cpc)]
metID = field_names[2]
print metID
fields = ["HRR_ID", gc, metID, "AP_SQKM", "SHAPE@AREA"]
data = {"grid": [],
"hrr": [],
"cpc": [],
"ap": [],
"area": [],
"wt": []
}
with arcpy.da.SearchCursor (table, fields) as cursor:
# Sort on HRR_ID
cursor = sorted(cursor, key = itemgetter(0))
# extract data to lists
for row in cursor:
190
data["cpc"].append (row[2])
data["grid"].append (row[1])
data["hrr"].append (row [0])
data["ap"].append (row[3])
data["area"].append (row [4])
print 'cursor run'
return data
def calcWt (data):
numRecs = len(data["hrr"])
areaDict = {} # Dictionary of total areas by grid code
for n in range (numRecs):
# fill gridDict with sum of areas by grid code
hrr = data["hrr"][n]
# if the 2nd or later entry of a grid code, cumulative sum of area,
# else add entry for that grid code.
if hrr in areaDict:
areaDict [hrr] = areaDict [hrr] + data ["ap"][n]
else :
areaDict [hrr] = data ["ap"][n]
for n in range (numRecs):
# Calculate weighted average of areas
hrr = data["hrr"][n]
data ["wt"].append (round((data ["ap"][n] / areaDict [hrr]), 3))
return data
def writeCSV(data, workspace, cpcet):
# Writes data to Pgrid.txt
numRecs = len(data["grid"])
csvFile = os.path.join(workspace, "Pgrid.txt")
print "file name is", csvFile
with open(csvFile, "w") as myFile:
writer = csv.writer(myFile, delimiter = ",", lineterminator = "\n")
# Header row
writer.writerow(["ID", "HRR_ID", "wt"])
for n in range(numRecs):
row = [data["cpc"][n], data["hrr"][n], data["wt"][n]]
191
writer.writerow (row)
myFile.close()
def fortranCall (fortSpace, outPath, place, cpcet):
""" Runs overlay4.exe, and puts the output in the current workspace"""
newPgrid = 'Pgrid_{}_{}.txt'.format (cpcet, place)
newOverlay = 'Grid_overlay_{}.txt'.format (cpcet)
pGrid = 'Pgrid.txt'
overlayGrid = 'Pgrid_overlay.txt'
exe = os.path.join (fortSpace, 'overlay4.exe')
fromFile = [os.path.join (fortSpace, pGrid),
os.path.join (fortSpace, overlayGrid)
]
toFile = [os.path.join (outPath, newPgrid),
os.path.join (outPath, newOverlay)
]
subprocess.Popen (exe, cwd = fortSpace)
time.sleep(20) # Without this, computer would sometimes have Pgrid.txt open,
# or would not recognize Pgrid_overlay.txt
# Move results to output location and rename.
for n in range (2):
print 'moving ', toFile [n]
shutil.copy (fromFile [n], toFile [n])
time.sleep(20)
print 'have run overlay4.exe'
if __name__ == '__main__':
main ()