Finding the Location Furthest from Water in the Conterminous United States
The idea for this post came a few months back when I received an email
that started, “I am a writer and teacher and am reaching out to you with
a question related to a piece I would like to write about the place in
the United States that is furthest from a natural body of surface water.
My question is, in short, might you know where this theoretical place is
located?”
As someone who works on the
National Water Census
and
National hydrography data,
this question piqued my interest. I also had an idea of one way to
answer the question that would use some tools and techniques I’ve
recently been developing in R. What follows is just that, one way
that this question might be answered. The code I used to find the
solution is presented in detail after the solution to the question.
The solution graphics shown below were generated with the following
code: The furthest_water.R script can be
found here.
source(&quot;furthest_water.R&quot;)
furthest_water(scenario = &quot;waterbodies&quot;)
furthest_water(scenario = c(&quot;waterbodies&quot;, &quot;filter_monthly_flow&quot;))
furthest_water(scenario = c(&quot;waterbodies&quot;, &quot;remove_intermittent&quot;, &quot;filter_monthly_flow&quot;))
Method
To answer the question, “where is the furthest place from a natural body
of water?”, I first had to decide where all the places I might want to
check are. To do this, I first built a search box around the
southwestern US to limit the data volume I had to process. I then
created a grid of points 5km apart within the search box and the US
coastline. This set of points, pictured below, will stand in for all the
places we might want to look. Note that there are actually about 150k
points on this image, but they draw as one area because their symbols
overlap.
With all possible places defined, I needed all the water bodies. The
National Hydrography Dataset contains data used to map rivers and lakes
across the country. As a bonus, there is a dataset known as the “NHDPlus
v2.1 National Seamless” that is available as a single geospatial
database for the whole conterminous US. See
this EPA page
for lots of helpful documentation and data downloads. The NHDPlus
contains a few million river segments and almost a half million water
bodies mapped at 1:100,000-scale. The NHDPlus also has some useful
attributes that categorize waterbodies as ephemeral (sometimes dry) or
perennial (always wet) and modeled estimates of mean flow by month of
the year for rivers. Geospatial data representing rivers and bodies of
water like lakes along with the attributes about how likely they are to
be wet is just what I needed. The maps below show how dense the rivers
and water bodies in the NHDPlus are.
The algorithm I used to figure out which of the search locations is
furthest from water uses a nearest neighbor search implemented in an
R package called RANN
which allowed me to find which points are within a given distance of a
flowline or water body. By starting with a small distance and
incrementing to larger and larger distances, removing locations as I
went, I was able to narrow down to one point that was further than any
other from all the water bodies. The marvel of this technique is that
it’s not just 150k points and a few million rivers and lakes. To make it
work, I converted the lines and polygons that represent rivers and water
bodies to more than 30 million individual points that make up all the
geometry!
In each of the three scenarios below, there are two graphics. The first,
is a simple visual showing where the location is relative to rivers and
water bodies that are in the vicinity. The second is an animated graphic
showing each step of the nearest neighbor search as the search radius
increases incrementally.
Furthest from where there might be water
In the first scenario, I included everything in the NHDPlus that might
be a water body. This includes lakes and rivers that are categorized as
ephemeral and rivers with attributes that show they are usually dry one
or more months a year. As you can see below, the location is in the
Bonneville salt flats. The irony is that, while not categorized as a
water body in the NHD, this picture taken from I-80 shows that the salt
flats do get filled with water periodically!
By
Ricraider
- Own work,
CC
BY-SA 3.0,
Link
Explore this place in google maps.
Furthest from modeled water
The place we say is the furthest from water shouldn’t be a dry lake bed,
should it? Let’s look at another scenario. In this one, I used the
monthly average flow estimates from the NHDPlus. These estimates are
calculated using the “Enhanced Runoff Method” or EROM. You can find
documentation
about the method here.
The EROM estimates are available for each month of the year, providing a
normal monthly-mean flow estimate for the period of the analysis (1971
to 2000). For this scenario, I removed any flowline that had a
monthly-mean flow estimate of zero for any month. As can be seen below,
I came up with a location almost on the US-Mexico border in the desert
in far south west Arizona.
This is a place I would believe is actually the furthest from a natural
body of water but I noticed that there were some small waterbodies in
the desert that almost certainly dry out in the summer.
Explore this place in google maps
Furthest from modeled and non-ephemeral water
For the third scenario, I used the same mean-monthly flow method to
remove rivers that probably dry out for a month or more a year and I
removed flowlines and water bodies that were categorized as ephemeral.
This removed many water body polygons in the desert that are only wet
part of the year. As can be seen below, now we are in the Sonoran desert
west of Phoenix, AZ. By the looks of things, this really may be the
furthest from a natural body of surface water in the US (over 72km/45mi)
– especially after a long period with no rain.
Explore this place in google maps
As the variety of results given different inputs shows, this question
doesn’t necessarily have one answer. It depends what we assume a body of
water is and how often that body of water needs to be wet. The factors
at play that determine if a river or water body is wet are diverse and
highly interrelated. Ranging from the obvious, like how much
it’s rained recently,
to less obvious, like how much
groundwater is flowing into or out of a river.
Ecosystems have a role to play too. In desert environments,
some plants depend on groundwater
which can actually draw down groundwater around rivers, reducing flows
or even causing surface flow to cease even though groundwater may
continue to be available just under the surface. This is just a brief
discussion of the complexities of the natural water cycle and the
natural features that arise from it. For more, the
USGS Water Science School
has a wealth of information and all
USGS publications
and
data
are free and available for everyone.
Code Explanation
The three scenarios above were run using a function that executes the
code described below. There is a mix of comments and summary text
written outside the code. To execute this, you will need to install the
required packages and download the
NHDPlus National Seamless Database
and a
state boundaries layer available here.
These two datasets are referenced in the code.
Load Packages and Data
In this first step, I load all the packages and data I need.
Packages include:
sf
dplyr
RANN
nhdplusTools
units
stringr
gifski
ggmap
Note that sf and dplyr do the vast majority of the work and they are
loaded with a library() command. All other packages are accessed using
the package::function() syntax
Variables created here are:
flowlines: NHDPlus flowlines with lots of attributes. Loaded with
nhdplusTools
as a helper.
water_bodies: NHDPlus waterbodies loaded directly from the
National Seamless using
sf
read_sf().
min_monthlies: Minimum of the twelve monthly flow estimates for
each flowline. Calculated by applying the min function to all the
monthly flow collumns from the flowlines attributes.
remove_fcodes: NHDPlus feature codes that should be removed.
crs: A coordinate reference system to perform the analysis in.
states: A set of US state boundaries loaded from shapefile with
sf.
bbox: A bounding box to limit the analysis to less than the whole
country. Created in the sf bbox format then converted in an sfc
geometry.
library(sf)
library(dplyr)
# to install nhdplusTools
# devtools::install_github(&quot;dblodgett-usgs/nhdplusTools&quot;)
# First we will use a nhdplusTools to load up the national seamless geodatabase.
nhdplusTools::nhdplus_path(&quot;nhdplus_data/NHDPlusV21_National_Seamless.gdb&quot;)
staged_data