3 · USGS WaterData — Monitoring Stations, Parameters & Time-Series

Reads the watershed boundaries from notebook 1, discovers the USGS monitoring stations inside them via the new USGS Water Data API, and records which priority parameters each station measured. Primary source & API docs: https://api.waterdata.usgs.gov/.

Step 1 — Imports and setup

Show code
from io import StringIO
from urllib.parse import quote

import geopandas as gpd
import hvplot.pandas  # noqa: F401  (registers .hvplot on DataFrames — used by the availability plots)
import pandas as pd
import async_retriever as ar
from dataretrieval import waterdata

import geoviews as gv
import geoviews.tile_sources as gvts

from _helpers import (
    init_session,
    save_dataframe,
    load_dataframe,
    save_workbook,
    show,
    categorical_colors,
    make_legend_clickable,
    PRIORITY_GROUPS,
    PRIORITY_NAMES,
    classify_parameter,
    build_parameter_name_lookup,
    station_parameters,
    fetch_daily,
    fetch_samples,
    fetch_field,
    tidy_daily,
    tidy_samples,
    tidy_field,
    coverage,
    trend_by_group,
)

gv.extension("bokeh")
S = init_session()
USGS API key loaded.

Step 2 — Discover monitoring stations

We load the watershed boundaries saved by notebook 1, ask the Water Data API for every station in their bounding box, then keep only those that fall within the watershed polygons (a spatial join).

Caching note: dataretrieval.waterdata makes its own HTTP requests, bypassing the on-disk request cache (cache/) HyRiver calls use — so Steps 2-3 treat the final saved usgs_monitoring_locations_parameters.parquet as a backup cache (load_dataframe, one-week freshness window): if it’s still fresh, both steps’ fetches are skipped entirely.

Show code
boundaries_path = S.data_dir / "hydrography" / "huc8_watersheds.parquet"
if not boundaries_path.exists():
    raise FileNotFoundError(
        f"{boundaries_path} not found — run notebook 1 (1_usgs_hydrography) first."
    )
watersheds_gdf = gpd.read_parquet(boundaries_path)
bbox = list(watersheds_gdf.total_bounds)  # [min_lon, min_lat, max_lon, max_lat]; reused below

stations_path = S.data_dir / "usgs_waterdata" / "usgs_monitoring_locations_parameters.parquet"
stations_in_area = load_dataframe(stations_path, max_age_days=7)
stations_were_cached = stations_in_area is not None

if not stations_were_cached:
    stations_gdf, _ = waterdata.get_monitoring_locations(bbox=bbox)
    stations_gdf = stations_gdf.set_crs(4326)
    stations_in_area = gpd.sjoin(
        stations_gdf,
        watersheds_gdf[["huc8", "name", "geometry"]],
        predicate="within",
        how="inner",
    )
    print(
        f"{len(stations_gdf)} stations in the bounding box; "
        f"{len(stations_in_area)} within the watersheds."
    )
    save_dataframe(
        stations_in_area, S.data_dir / "usgs_waterdata" / "usgs_monitoring_locations.parquet"
    )
using cached data/usgs_waterdata/usgs_monitoring_locations_parameters.parquet (291 rows, < 7 days old)

What kinds of stations are there?

Show code
print("By site type:")
print(stations_in_area["site_type"].value_counts().to_string())
print("\nBy watershed:")
print(stations_in_area["name"].value_counts().to_string())
show(stations_in_area[["monitoring_location_id", "monitoring_location_name", "site_type", "name"]])
By site type:
site_type
Stream                          109
Diversion                        71
Estuary                          40
Well                             32
Lake, Reservoir, Impoundment     23
Canal                             5
Ditch                             5
Water-use establishment           4
Outfall                           1
Coastal                           1

By watershed:
name
South Laguna Madre    224
Lower Rio Grande       34
Los Olmos              33
monitoring_location_id monitoring_location_name site_type name
0 USGS-08212985 E Main Drain at Hwy 77 nr Yturria, TX Stream South Laguna Madre
1 USGS-08212990 E Main Drain nr San Perlita, TX Stream South Laguna Madre
2 USGS-08213000 Unm Resaca at Hwy 497 nr Port Mansfield, TX Stream South Laguna Madre
5 USGS-08461200 Intern Fal Res nr Falcon Heights, TX Lake, Reservoir, Impoundment Los Olmos
6 USGS-08461300 Rio Grande bl Falcon Dam, TX Stream Los Olmos
7 USGS-08462300 Rio Grande Ups fr Rio Saladito nr Fronton, TX Stream Los Olmos
8 USGS-08462400 Rio Grande Dws fr Rio Saladito nr Fronton, TX Stream Los Olmos
9 USGS-08462500 Rio Grande at Roma, TX Stream Los Olmos
10 USGS-08464000 Rio Grande abv Rio San Juan nr Rio Grande City, TX Stream Los Olmos
11 USGS-08464300 Rio Grande bl Rio San Juan nr Rio Grande City, TX Stream Los Olmos
12 USGS-08464700 Rio Grande at Ft Ringgold, Rio Grande City,TX Stream Los Olmos
13 USGS-08464990 Los Olmos Ck at Rio Grande City, TX Stream Los Olmos
14 USGS-08465000 Los Olmos Ck at Olmos, TX Stream Los Olmos
15 USGS-08465100 Rio Grande nr Rio Grande City, TX Stream Los Olmos
16 USGS-08466100 Rio Grande Trib nr Rio Grande City, TX Stream Los Olmos
17 USGS-08466180 Unm Drain nr La Grulla, TX Stream Los Olmos
18 USGS-08466200 Rio Grande Trib nr Sullivan City, TX Stream Los Olmos
19 USGS-08466300 Rio Grande nr Los Ebanos, TX Stream Los Olmos
20 USGS-08467650 Unm Drain nr Abram, TX Stream Lower Rio Grande
21 USGS-08467670 Rio Grande at Mission Main Canal nr Mission, TX Stream Lower Rio Grande
22 USGS-08467675 Mission Main Canal at Mission, TX Canal South Laguna Madre
23 USGS-08467680 Rio Grande nr Mission, TX Stream Lower Rio Grande
24 USGS-08467700 La Parida Banco No. 144 nr Bentsen State Pk, TX Stream Lower Rio Grande
25 USGS-08467800 Morillo Drain in Mexico Ditch Lower Rio Grande
26 USGS-08467950 Unm drain nr Perezville, TX Stream South Laguna Madre
27 USGS-08467975 Sardinas Resaca nr Mission, TX Stream South Laguna Madre
28 USGS-08467995 Unm Drain at Hwy 1925 nr Lull, TX Stream South Laguna Madre
29 USGS-08468005 Main Floodway at Hwy 336 nr McAllen, TX Stream South Laguna Madre
30 USGS-08469125 Rio Grande Inlet abv Anzald Dam nr Misson, TX Stream Lower Rio Grande
31 USGS-08469150 Rio Grande abv Anzald Dam nr Misson, TX Stream Lower Rio Grande
32 USGS-08469175 Rio Grande at Anzalduas Dam nr Hidalgo, TX Stream Lower Rio Grande
33 USGS-08469200 Rio Grande bl Anzald Dam nr Misson, TX Stream Lower Rio Grande
34 USGS-08469400 Field Drain nr Anzald Dam nr Mission, TX Stream Lower Rio Grande
35 USGS-08470005 Hackney Lk Inlet at Hwy 336 nr McAllen, TX Stream South Laguna Madre
36 USGS-08470010 Main Floodway at Hwy 907 nr Alamo, TX Stream South Laguna Madre
37 USGS-08470050 Arroyo Colorado bl Siphon nr Donna, TX Stream South Laguna Madre
38 USGS-08470055 Main Floodway nr Donna, TX Stream South Laguna Madre
39 USGS-08470060 Unm Resaca at Hwy 493 nr Donna, TX Stream South Laguna Madre
40 USGS-08470062 Unm Resaca nr Donna, TX Stream South Laguna Madre
41 USGS-08470140 Main Floodway (Llano Grande) nr Progresso, TX Stream South Laguna Madre
42 USGS-08470142 Llano Grande Lk nr Weslaco, TX Lake, Reservoir, Impoundment South Laguna Madre
43 USGS-08470150 N Floodway at Hwy 491 nr Mercedes, TX Stream South Laguna Madre
44 USGS-08470155 N Floodway at Hwy 107 nr Edcouch, TX Stream South Laguna Madre
45 USGS-08470158 Donna Drain at Hwy 493 nr La Blanca, TX Stream South Laguna Madre
46 USGS-08470160 Donna Drain at Hwy 1015 nr Edcouch, TX Stream South Laguna Madre
47 USGS-08470195 N Floodway at Hwy 506 nr Sebastian, TX Stream South Laguna Madre
48 USGS-08470200 N Floodway nr Sebastian, TX Stream South Laguna Madre
49 USGS-08470225 N Floodway at Hwy 1420, Santa Monica, TX Stream South Laguna Madre
50 USGS-08470300 Arroyo Colorado at El Fuste Siphon nr Mercedes, TX Stream South Laguna Madre
51 USGS-08470310 Arroyo Colorado at Hwy 491 nr Mercedes, TX Stream South Laguna Madre
52 USGS-08470315 Unm Drain nr S Thompson Rd nr Primera, TX Stream South Laguna Madre
53 USGS-08470320 Arroyo Colorado at Hwy 506 nr La Feria, TX Stream South Laguna Madre
54 USGS-08470325 Unm Resaca nr Brownsville, TX Stream South Laguna Madre
55 USGS-08470330 Unm Drain nr San Benito, TX Stream South Laguna Madre
56 USGS-08470335 Resaca De Los Fresnos at Hwy 77, San Benito, TX Stream South Laguna Madre
57 USGS-08470395 Arroyo Colorado at Hwy 83, Harlingen, TX Stream South Laguna Madre
58 USGS-08470400 Arroyo Colorado at Harlingen, TX Stream South Laguna Madre
59 USGS-08470450 Arroyo Colorado abv Rio Hondo, TX Stream South Laguna Madre
60 USGS-08470460 Arroyo Colorado at Port Harlingen nr Rio Hondo, TX Stream South Laguna Madre
61 USGS-08470500 Arroyo Colorado at FM 106, Rio Hondo, TX Stream South Laguna Madre
62 USGS-08470520 Arroyo Colorado at Camp Perry nr Rio Hondo, TX Stream South Laguna Madre
63 USGS-08470990 Arroyo Colorado nr mouth nr Arroyo City, TX Stream South Laguna Madre
64 USGS-08471000 Arroyo Colorado at Laguna Atascosa NWR, TX Stream South Laguna Madre
65 USGS-08471005 Cayo Atascosa at Hwy 106 nr Rio Hondo, TX Stream South Laguna Madre
66 USGS-08471010 Resaca De Los Cuates at Hwy 100 nr Russeltown, TX Stream South Laguna Madre
67 USGS-08471020 Resaca De Los Cuates nr Los Fresnos, TX Stream South Laguna Madre
68 USGS-08471025 Field Drain at Hwy 106, Laguna Atascosa NWR, TX Stream South Laguna Madre
69 USGS-08471030 Resaca De Los Cuates at Hwy 106 nr Rio Hondo, TX Stream South Laguna Madre
70 USGS-08471035 Resaca De Los Cuates at Laguna Atascosa NWR, TX Stream South Laguna Madre
71 USGS-08471040 Cayo Atascosa at Crsg 1, Laguna Atascosa NWR, TX Stream South Laguna Madre
72 USGS-08471050 Cayo Atascosa at Crsg 2, Laguna Atascosa NWR, TX Stream South Laguna Madre
73 USGS-08471500 Rio Grande at Hidalgo, TX Stream South Laguna Madre
74 USGS-08471530 Unm Drain nr Hidalgo, TX Stream Lower Rio Grande
75 USGS-08471540 Unm Drain nr Las Milpas, TX Stream Lower Rio Grande
76 USGS-08471550 Unm Drain westside of Santa Ana NWR, TX Stream Lower Rio Grande
77 USGS-08473230 San Juan Del Rio Banco No. 40 nr Donna, TX Stream Lower Rio Grande
78 USGS-08473235 Santa Cruz Canal at Hwy 281 nr Faysville, TX Canal South Laguna Madre
79 USGS-08473251 Donna ID Canal at E Levee Rd nr Donna, TX Canal South Laguna Madre
80 USGS-0847325106 Donna Canal Sta 3RB nr Donna, TX Canal South Laguna Madre
81 USGS-08473259 Rio Grande at Ratamal Dam nr Donna, TX Stream Lower Rio Grande
82 USGS-08473260 McManus Tract (TPWD) nr Donna, TX Stream Lower Rio Grande
83 USGS-08473265 Zolezzi Banco No. 68 nr Donna, TX Stream Lower Rio Grande
84 USGS-08473300 Rio Grande nr Progreso, TX Stream Lower Rio Grande
85 USGS-08473325 Mercedes District Settling Basin nr Relampago, TX Stream South Laguna Madre
86 USGS-08473326 Rio Grande nr Mercedes, TX Stream Lower Rio Grande
87 USGS-08473327 Santa Maria Pond nr Santa Maria, TX Lake, Reservoir, Impoundment South Laguna Madre
88 USGS-08473350 Unm Drain at Hwy 493 nr Hargill, TX Stream South Laguna Madre
89 USGS-08473575 Rio Grande nr Los Indios, TX Stream Lower Rio Grande
90 USGS-08473700 Rio Grande nr San Benito, TX & Ramirez, MX Stream South Laguna Madre
91 USGS-08474090 Unm Drain at Hwy 511 nr Brownsville, TX Stream South Laguna Madre
92 USGS-08474095 N Main Drain at Boca Chica Hwy, Brownsville, TX Stream South Laguna Madre
93 USGS-08474100 Unm Resaca at Hwy 281, Brownsville, TX Stream South Laguna Madre
94 USGS-08474105 Twn Resaca at Hwy 281, Brownsville, TX Stream South Laguna Madre
95 USGS-08474107 Town Resaca at E 6th St, Brownsville, TX Stream South Laguna Madre
96 USGS-08474108 N Main Drain at Manzano St, Brownsville, TX Stream South Laguna Madre
97 USGS-08474110 Cameron Co Ditch 1 at FM 802, Brownsville, TX Ditch South Laguna Madre
98 USGS-08474115 Resaca del Rancho Viejo, Brownsville, TX Stream South Laguna Madre
99 USGS-08474118 Cameron Co Ditch 2 at FM 1847 nr Los Fresnos, TX Ditch South Laguna Madre
100 USGS-08474120 Main Ditch No. nr Los Fresnos, TX Ditch South Laguna Madre
101 USGS-08474300 Old Main Drain No 2 at SH 4, Brownsville, TX Ditch South Laguna Madre
102 USGS-08474320 North Main Drain at Ostos Rd, Brownsville, TX Stream South Laguna Madre
103 USGS-08474395 Brazos Santiago Pass at South Padre Island, TX Estuary South Laguna Madre
104 USGS-08474550 Rio Grande at US Hwy 77, Brownsville, TX Stream Lower Rio Grande
105 USGS-08474555 Ft Brown Resaca at Brownsville, TX Stream South Laguna Madre
106 USGS-08474990 Rio Grande at Brownsville, TX Stream South Laguna Madre
107 USGS-08475000 Rio Grande nr Brownsville, TX Stream Lower Rio Grande
108 USGS-08475200 Rio Grande at mouth Stream Lower Rio Grande
109 USGS-255446097311701 IT 3559 on Rio Grande River nr Brownsville TX Diversion South Laguna Madre
110 USGS-255453097312199 IT S0310001A CoB TR nr Brownsville TX Diversion South Laguna Madre
111 USGS-255508097314797 IT S0310001C Rio Grande nr Brownsville TX Diversion Lower Rio Grande
112 USGS-255530097231101 Unm Tract at Southmost Rh nr Brownsville, TX Stream South Laguna Madre
113 USGS-255535097275398 IT S0310001B Res de La Palma nr Brownsville TX Diversion South Laguna Madre
114 USGS-255557097315001 Stormwater Outfall nr Military Hwy, Brownsville TX Outfall South Laguna Madre
115 USGS-255702097240600 1232002Laguna Madre ES Line 320 Site 02 Estuary South Laguna Madre
116 USGS-255704097240601 Brownsville Ship Harbor nr Brownsville, TX Stream South Laguna Madre
117 USGS-255714097341801 BY-88-60-811 Well Lower Rio Grande
118 USGS-255845097191800 1233402Laguna Madre ES Line 334 Site 02 Estuary South Laguna Madre
119 USGS-255952097172400 1234302Laguna Madre ES Line 343 Site 02 Estuary South Laguna Madre
120 USGS-260012097363901 Garza Cavazos Stream South Laguna Madre
121 USGS-260034097161000 1234802Laguna Madre ES Line 348 Site 02 Estuary South Laguna Madre
122 USGS-260053097164301 Bahia Brande at Hwy 1792 nr Port Isabel, TX Stream South Laguna Madre
123 USGS-260106097151000 1235102Laguna Madre ES Line 351 Site 02 Estuary South Laguna Madre
124 USGS-260109097151101 Brownsville Ship Channel nr Port Isabel, TX Stream South Laguna Madre
125 USGS-260135097344401 BY-88-60-815 Well South Laguna Madre
126 USGS-260137097315299 IT S0310026A Main Supply Canal nr Olmito TX Diversion South Laguna Madre
127 USGS-260153097343601 BY-88-60-814 Well South Laguna Madre
128 USGS-260157097360601 BY-88-60-724 Well South Laguna Madre
129 USGS-260159097352401 BY-88-60-726 Well South Laguna Madre
130 USGS-260204097443701 BY-88-59-7xx2 Well Lower Rio Grande
131 USGS-260209097344101 BY-88-60-813 Well South Laguna Madre
132 USGS-260212097444301 BY-88-59-7xx Well Lower Rio Grande
133 USGS-260219097125000 1236402Laguna Madre ES Line 364 Site 02 Estuary South Laguna Madre
134 USGS-260220097352401 BY-88-60-725 Well South Laguna Madre
135 USGS-260220097360301 BY-88-60-413 Well South Laguna Madre
136 USGS-260223097110001 S Bay nr Port Isabel, TX Estuary South Laguna Madre
137 USGS-260224097343901 BY-88-60-812 Well South Laguna Madre
138 USGS-260233097340701 BY-88-60-521 Well South Laguna Madre
139 USGS-260245097335501 BY-88-60-517 Well South Laguna Madre
140 USGS-260245097355801 BY-88-60-412 Well South Laguna Madre
141 USGS-260252097341001 BY-88-60-516 Well South Laguna Madre
142 USGS-260252097343601 BY-88-60-520 Well South Laguna Madre
143 USGS-260255097351901 BY-88-60-411 Well South Laguna Madre
144 USGS-260256097115100 1237002Laguna Madre ES Line 370 Site 02 Estuary South Laguna Madre
145 USGS-260302097342601 BY-88-60-519 Well South Laguna Madre
146 USGS-260304097335201 BY-88-60-515 Well South Laguna Madre
147 USGS-260304097344601 BY-88-60-518 Well South Laguna Madre
148 USGS-260306097340801 BY-88-60-514 Well South Laguna Madre
149 USGS-260307097355501 BY-88-60-414 Well South Laguna Madre
150 USGS-260311097351701 BY-88-60-410 Well South Laguna Madre
151 USGS-260328097124300 1231302Laguna Madre ES Line 313 Site 02 Estuary South Laguna Madre
152 USGS-260341097092701 Back Bay nr Port Isabel, TX Stream South Laguna Madre
153 USGS-260347097454101 BY-88-58-610 Well South Laguna Madre
154 USGS-260348097131799 IT S0310005A Port Isabel Res nr Port Isabel TX Diversion South Laguna Madre
155 USGS-260355097285699 IT S0310004A Los Fresnos Res nr Los Fresnos TX Diversion South Laguna Madre
156 USGS-260356097100000 1237602Laguna Madre ES Line 376 Site 02 Estuary South Laguna Madre
157 USGS-260357097081000 1290195Laguna Madre ES Line 901 Site 95 Estuary South Laguna Madre
158 USGS-260359097124300 1230102Laguna Madre ES Line 301 Site 02 Estuary South Laguna Madre
159 USGS-260402098043498 IT S1080002B Rio Grande nr Donna TX Diversion Lower Rio Grande
160 USGS-260412097120600 1229702Laguna Madre ES Line 297 Site 02 Estuary South Laguna Madre
161 USGS-260417098092401 W Lk at Santa Ana NWR nr Las Milpas, TX Lake, Reservoir, Impoundment Lower Rio Grande
162 USGS-260427097113201 Laguna Madre at Port Isabel, TX Estuary South Laguna Madre
163 USGS-260438098075101 E Lk at Santa Ana NWR nr Las Milpas, TX Lake, Reservoir, Impoundment Lower Rio Grande
164 USGS-260439097131000 1228704Laguna Madre ES Line 287 Site 04 Estuary South Laguna Madre
165 USGS-260458098142101 Settling Basin nr Hidalgo, TX Lake, Reservoir, Impoundment South Laguna Madre
166 USGS-260521098154399 IT S1080001A Pharr-San Juan Main Canal nr Alamo TX Diversion Lower Rio Grande
167 USGS-260525098150501 Lk Tropicana nr Hidalgo, TX Lake, Reservoir, Impoundment Lower Rio Grande
168 USGS-260526097121000 1228702Laguna Madre ES Line 287 Site 02 Estuary South Laguna Madre
169 USGS-260527097572506 LU-88-57-206 Well South Laguna Madre
170 USGS-260545097165701 Laguna Madre ES at Laguna Vista, TX Estuary South Laguna Madre
171 USGS-260545097182598 IT S0310005B EL Tular Res nr Laguna Vista TX Diversion South Laguna Madre
172 USGS-260551097100901 Laguna Madre Site 2 nr South Padre Island, TX Estuary South Laguna Madre
173 USGS-260552097100701 Tompkins Channel at South Padre Island, TX Stream South Laguna Madre
174 USGS-260553097111200 1228701Laguna Madre ES Line 287 Site 01 Estuary South Laguna Madre
175 USGS-260606097101101 Laguna Madre Site 1 nr South Padre Island, TX Estuary South Laguna Madre
176 USGS-260616098152201 LU-87-62-304 Well South Laguna Madre
177 USGS-260629098153001 LU-87-62-303 Well South Laguna Madre
178 USGS-260704098125198 IT S1080009B unamed TR nr Pharr TX Diversion South Laguna Madre
179 USGS-260708098164501 Unm Resaca nr Hidalgo, TX Lake, Reservoir, Impoundment Lower Rio Grande
180 USGS-260810097380699 IT S0310007A Res de Los Fresnos nr San Benito TX Diversion South Laguna Madre
181 USGS-260822097493401 La Feria Res PS Site nr La Feria, TX Lake, Reservoir, Impoundment South Laguna Madre
182 USGS-260825097493399 IT S0310003A La Feria Res nr La Feria TX Diversion South Laguna Madre
183 USGS-260832097092501 Beach Rp Site 2018A nr South Padre Island, TX Coastal South Laguna Madre
184 USGS-260842098045601 Donna Res W Site nr Donna, TX Lake, Reservoir, Impoundment South Laguna Madre
185 USGS-260857097543702 LU-88-49-902 Well South Laguna Madre
186 USGS-260900097543699 IT S1080007A Merecedes EC nr Mercedes TX Diversion South Laguna Madre
187 USGS-260907098040301 Donna Res E Site nr Donna, TX Lake, Reservoir, Impoundment South Laguna Madre
188 USGS-260912097503101 BY-88-50-706 Well South Laguna Madre
189 USGS-260912098040601 Donna Res PS Site nr Donna, TX Lake, Reservoir, Impoundment South Laguna Madre
190 USGS-260915098040199 IT S1080002A Donna Res nr Donna TX Diversion South Laguna Madre
191 USGS-260933098041597 IT S1080002C DID #1 Canal nr Donna TX Diversion South Laguna Madre
192 USGS-261000097425701 IT S0310002B on Harlingen Res nr Harlingen TX Diversion South Laguna Madre
193 USGS-261036097340299 IT S0310096A Res de Los Fresnos nr San Benito TX Diversion South Laguna Madre
194 USGS-261059097592099 IT S1080011A WCID #9 Canal nr Weslaco TX Diversion South Laguna Madre
195 USGS-261104098114099 IT S1080009A unamed TR nr Pharr TX Diversion South Laguna Madre
196 USGS-261105097591998 IT S1080011B TR nr Weslaco TX Diversion South Laguna Madre
197 USGS-261108098111901 LU-87-55-504 Well South Laguna Madre
198 USGS-261111098091601 LU-87-55-602 Well South Laguna Madre
199 USGS-261117098144599 IT S1080006A Boeye Res nr McAllen TX Diversion South Laguna Madre
200 USGS-261147097355700 1222302Laguna Madre ES Line 223 Site 02 Estuary South Laguna Madre
201 USGS-261147097413301 IT S0310002A on Lk Harlingen nr Harlingen TX Diversion South Laguna Madre
202 USGS-261152098082599 IT S1080010A San Juan Res nr San Juan TX Diversion South Laguna Madre
203 USGS-261153097153400 1227403Laguna Madre ES Line 274 Site 03 Estuary South Laguna Madre
204 USGS-261216098131398 IT S1080006B TR nr McAllen TX Diversion South Laguna Madre
205 USGS-261226097135700 1227402Laguna Madre ES Line 274 Site 02 Estuary South Laguna Madre
206 USGS-261228098235701 IT 55098 on Rio Grande nr Mission TX Diversion South Laguna Madre
207 USGS-261236098194699 IT S1080008A Mission City Res nr Mission TX Diversion South Laguna Madre
208 USGS-261237097195001 Pelican Lk at Laguna Madre NWR, TX Lake, Reservoir, Impoundment South Laguna Madre
209 USGS-261256097121800 1227401Laguna Madre ES Line 274 Site 01 Estuary South Laguna Madre
210 USGS-261301098013895 IT S1080029E Donna N Res nr Midway North TX Diversion South Laguna Madre
211 USGS-261305098094598 IT S1080010B San Juan TR 2 nr San Juan TX Diversion South Laguna Madre
212 USGS-261310098234298 IT S1080022B Perezville Res nr Palmview TX Diversion South Laguna Madre
213 USGS-261320097238501 Laguna Atascosa in Laguna Atascosa NWR, TX Estuary South Laguna Madre
214 USGS-261326097215801 Athel Pond at Laguna Atascosa NWR, TX Lake, Reservoir, Impoundment South Laguna Madre
215 USGS-261340098233997 IT S1080022C Edinburg Main Canal nr Palmview TX Diversion South Laguna Madre
216 USGS-261356097195501 Stover Cove at Laguna Atascosa NWR, TX Estuary South Laguna Madre
217 USGS-261410097231201 Laguna Atascosa at Laguna Atascosa NWR, TX Lake, Reservoir, Impoundment South Laguna Madre
218 USGS-261417097343198 IT S0310006B unamed canal nr Rio Hondo TX Diversion South Laguna Madre
219 USGS-261417097343699 IT S0310006A Rio Hondo Res nr Rio Hondo TX Diversion South Laguna Madre
220 USGS-261417098201398 IT S1080008B unamed TR nr Mission TX Diversion South Laguna Madre
221 USGS-261421098073896 IT S1080029D Lopezville Res nr Nurillo TX Diversion South Laguna Madre
222 USGS-261430098384199 IT S2140006A Rio Grande nr La Grulla TX Diversion Los Olmos
223 USGS-261457097465401 BY-88-50-305 Well South Laguna Madre
224 USGS-261501098300099 IT S1080022A La Joya Lk nr La Joya TX Diversion Los Olmos
225 USGS-261508098242299 IT S1080088A Edinburg Main Canal nr Palmview TX Diversion South Laguna Madre
226 USGS-261509098233901 IT S1080022E on Unnamed Res nr Penitas TX Diversion South Laguna Madre
227 USGS-261510098242798 IT S1080088B Chihuahua N Res nr Palmview TX Diversion South Laguna Madre
228 USGS-261510098292499 IT S1080213A La Joya Lk nr La Joya TX Diversion Los Olmos
229 USGS-261518098232696 IT S1080022D Palmview Res nr Palmview TX Diversion South Laguna Madre
230 USGS-261535097494699 IT S0310009A La Feria Main Canal nr Santa Rosa TX Diversion South Laguna Madre
231 USGS-261540098374998 IT S2140006B La Grulla TR nr La Grulla TX Diversion Los Olmos
232 USGS-261646098164299 IT S1080033A Sharyland WSC TR 1 nr Alton TX Diversion South Laguna Madre
233 USGS-261656097331700 1223302Laguna Madre ES Line 233 Site 02 Estuary South Laguna Madre
234 USGS-261709098153097 IT S1080006C TR nr McAllen TX Diversion South Laguna Madre
235 USGS-261725097575299 IT S1080003A Hidalgo County ED nr Edcouch TX Diversion South Laguna Madre
236 USGS-261727098120999 IT S1080004A Edinburg Res nr Edinburg TX Diversion South Laguna Madre
237 USGS-261745097460201 Unm Tract nr Sebastian, TX Stream South Laguna Madre
238 USGS-261747097460301 Unm Tract nr Sebastian, TX Site 2 Stream South Laguna Madre
239 USGS-261750098001099 IT S1080005A Elsa Res nr Elsa TX Diversion South Laguna Madre
240 USGS-261758098440397 IT S2140004C Rio Grande nr Garciaville TX Diversion Los Olmos
241 USGS-261759097555398 IT S1080023B La Villa TR nr La Villa TX Diversion South Laguna Madre
242 USGS-261759098075299 IT S1080029A Edinburg East Res nr Edinburg TX Diversion South Laguna Madre
243 USGS-261806097555299 IT S1080023A WCID #9 Canal nr La Villa TX Diversion South Laguna Madre
244 USGS-261809098195501 IT S1080033C on Unnamed Canal nr Palmhurst TX Diversion South Laguna Madre
245 USGS-261850097582201 IT S1080029G on Unnamed Terminal Res nr Edcouch TX Diversion South Laguna Madre
246 USGS-261912098144198 IT S1080033B Sharyland WSC TR 2 nr Alton North TX Diversion South Laguna Madre
247 USGS-261922097182800 1226302Laguna Madre ES Line 263 Site 02 Estuary South Laguna Madre
248 USGS-261929097264500 1224702Laguna Madre ES Line 247 Site 02 Estuary South Laguna Madre
249 USGS-261946098433696 IT S2140004D Union WSC TR nr Garciaville TX Diversion Los Olmos
250 USGS-261949098453499 IT S2140004A Rio Grande nr Garciaville TX Diversion Los Olmos
251 USGS-261950097195501 Laguna Madre ES at Horse Island Estuary South Laguna Madre
252 USGS-261957098452498 IT S2140004B Union WSC TR nr Garciaville TX Diversion Los Olmos
253 USGS-262025097474399 IT S2450006A Sebastian Res nr Sebastian TX Diversion South Laguna Madre
254 USGS-262026098112601 IT 55123 from City of Edinburg nr Edinburg TX Diversion South Laguna Madre
255 USGS-262051097189001 Laguna Madre nr Laguna Atascosa NWR, TX Estuary South Laguna Madre
256 USGS-262075097273001 Arroyo Colorado nr Arroyo City, TX Diversion South Laguna Madre
257 USGS-262112097194401 Laguna Madre ES nr mouth of Harlingen Channel Estuary South Laguna Madre
258 USGS-262132097203100 1225802Laguna Madre ES Line 258 Site 02 Estuary South Laguna Madre
259 USGS-262208098482199 IT S2140018A Rio Grande nr Rio Grande City TX Diversion Los Olmos
260 USGS-262252098073498 IT S1080029B Santa Cruz Canal nr Edinburg TX Diversion South Laguna Madre
261 USGS-262324097450701 Hidalgo-Willacy County Drain nr Lyford, TX Stream South Laguna Madre
262 USGS-262423097204400 1221702Laguna Madre ES Line 217 Site 02 Estuary South Laguna Madre
263 USGS-262424099011399 IT S2140007A Rio Grande nr Roma TX Diversion Los Olmos
264 USGS-262435097471401 Unm Pond at Lyford, TX Lake, Reservoir, Impoundment South Laguna Madre
265 USGS-262440097473899 IT S2450003A TR nr Lyford TX Diversion South Laguna Madre
266 USGS-262441097584994 IT S1080029F Monte Alto Res Unit 1 nr Hargill TX Diversion South Laguna Madre
267 USGS-262444097572301 Monte Alto Res nr Hwy 88 nr Monte Alto, TX Lake, Reservoir, Impoundment South Laguna Madre
268 USGS-262449097212101 Laguna Madre at N edge Laguna Atascosa NWR, TX Estuary South Laguna Madre
269 USGS-262619097365001 Hidalgo-Willach Drain at Hwy 1420 nr Willamar, TX Stream South Laguna Madre
270 USGS-262702097541297 IT S1080029C Main Branch NE Canal nr Lasara TX Diversion South Laguna Madre
271 USGS-262926097234101 Laguna Madre ES nr Chubby Island Estuary South Laguna Madre
272 USGS-262930097471199 IT S2450001A Raymondville Res nr Raymondville TX Diversion South Laguna Madre
273 USGS-263023098024701 Unm Lk nr Hwy 186 E of Linn, TX Lake, Reservoir, Impoundment South Laguna Madre
274 USGS-263037097232800 1220302Laguna Madre ES Line 203 Site 02 Estuary South Laguna Madre
275 USGS-263052099070099 IT S2140003A Rio Grande nr Roma TX Diversion Los Olmos
276 USGS-263053099065898 IT S2140003B Rio Grande nr Roma TX Diversion Los Olmos
277 USGS-263115097213100 1220301Laguna Madre ES Line 203 Site 01 Estuary South Laguna Madre
278 USGS-263128097523501 La Sal Vieja (E) nr Hargill, TX Lake, Reservoir, Impoundment South Laguna Madre
279 USGS-263153097575501 Rudman Tract (73abcd-85) nr Hwy 106 nr Hargill, TX Stream South Laguna Madre
280 USGS-263156097572001 Rudman Tract nr Hwy 186 nr Hargill, TX Stream South Laguna Madre
281 USGS-263211097550301 La Sal Vieja (W) nr Hargill, TX Lake, Reservoir, Impoundment South Laguna Madre
283 USGS-263318099090800 Weir at 51+80 bl Falcon Dam nr Falcon Heights, TX Lake, Reservoir, Impoundment Los Olmos
284 USGS-263320099092900 Weir at 73+75 bl Falcon Dam nr Falcon Heights, TX Lake, Reservoir, Impoundment Los Olmos
285 USGS-263323097253400 1219404Laguna Madre ES Line 194 Site 04 Estuary South Laguna Madre
287 USGS-263328099094300 Gallery Weir 243 Stream Los Olmos
288 USGS-263328099094401 Weir US Gallery Falcon Dam nr Falcon Heights, TX Lake, Reservoir, Impoundment Los Olmos
370 USGS-948215029274000 Fordyce Holdings Fordyce Shower Plant Water-use establishment South Laguna Madre
371 USGS-948215089460800 Valley Caliche Products Beck Quarry Water-use establishment South Laguna Madre
373 USGS-948427110564100 L and R Aggregates La Grulla Site Water-use establishment Los Olmos
374 USGS-948427110565400 M and R Aggregates Starr County Plant Water-use establishment Los Olmos
375 USIBW-08468600 USIBW Div fr Rio Grande Anzald Canal nr Reynosa,MX Canal Lower Rio Grande
376 USIBW-08470400 USIBW Arroyo Colorado at Harlingen, TX Stream South Laguna Madre

Step 3 — Which priority parameters does each station measure?

The README prioritizes these water-quality parameters, plus water-quantity (flow & level). For each we list the USGS parameter_codes (used by the time-series & field-measurement services) and the Water Quality characteristic-name patterns (used by the discrete-samples service) — see PRIORITY_GROUPS in _helpers/config.py. classify_parameter (from _helpers) maps any measured parameter code / characteristic to its priority group (or None). The fetches below are skipped when the station inventory above already came from the cache.

Show code
samples_summaries = None
if not stations_were_cached:
    SAMPLES_SUMMARY_URL = "https://api.waterdata.usgs.gov/samples-data/summary"

    # Time-series metadata (daily & continuous), split by computation period; carries parameter_codes.
    ts_meta, _ = waterdata.get_time_series_metadata(bbox=bbox, skip_geometry=True)
    period = ts_meta["computation_period_identifier"]
    daily_ids = set(ts_meta.loc[period == "Daily", "monitoring_location_id"])
    continuous_ids = set(ts_meta.loc[period == "Points", "monitoring_location_id"])

    # Field-measurement metadata; carries parameter_codes.
    fm_meta, _ = waterdata.get_field_measurements_metadata(bbox=bbox, skip_geometry=True)
    field_ids = set(fm_meta["monitoring_location_id"])

    # Per-station discrete-samples summaries, fetched concurrently (and cached) via async-retriever.
    station_ids = stations_in_area["monitoring_location_id"].tolist()
    summary_urls = [f"{SAMPLES_SUMMARY_URL}/{quote(sid, safe='')}?mimeType=text/csv" for sid in station_ids]
    summary_texts = ar.retrieve_text(
        summary_urls,
        request_kwds=[{"headers": S.api_headers}] * len(summary_urls) if S.api_headers else None,
        cache_name=S.cache_file,
        expire_after=S.cache_expire_seconds,
        limit_per_host=8,
    )
    samples_summaries = {  # station_id -> summary DataFrame (may be empty)
        sid: pd.read_csv(StringIO(txt)) for sid, txt in zip(station_ids, summary_texts) if txt
    }
    samples_ids = {sid for sid, df in samples_summaries.items() if len(df) > 0}
Show code
# parameter_code -> readable name, from the USGS reference table (verbatim source names). Needed
# by Step 4's tidy_daily/tidy_field regardless of the station-inventory cache above, so fetched
# unconditionally — it's a single small reference-table call, not the per-station bottleneck.
parameter_name_by_code = build_parameter_name_lookup()

if not stations_were_cached:
    # Build, per station: the set of measured parameter_codes/characteristics, the priority groups they
    # hit, and a sorted human-readable parameter list.
    ts_parameter_codes_by_site = ts_meta.groupby("monitoring_location_id")["parameter_code"].agg(set).to_dict()
    fm_parameter_codes_by_site = fm_meta.groupby("monitoring_location_id")["parameter_code"].agg(set).to_dict()

    groups_by_site, params_by_site = {}, {}
    for sid in station_ids:
        g, names = station_parameters(
            sid, ts_parameter_codes_by_site, fm_parameter_codes_by_site, parameter_name_by_code, samples_summaries
        )
        groups_by_site[sid] = g
        params_by_site[sid] = names

    # Data-type flags (kept) + one boolean column per priority group + the readable parameter list.
    sid_col = stations_in_area["monitoring_location_id"]
    stations_in_area["daily"] = sid_col.isin(daily_ids)
    stations_in_area["continuous"] = sid_col.isin(continuous_ids)
    stations_in_area["field_measurements"] = sid_col.isin(field_ids)
    stations_in_area["samples"] = sid_col.isin(samples_ids)
    for group in PRIORITY_NAMES:
        stations_in_area[group] = sid_col.map(lambda s, g=group: g in groups_by_site.get(s, set()))
    stations_in_area["parameters"] = sid_col.map(lambda s: params_by_site.get(s, []))

    save_dataframe(stations_in_area, stations_path)

Retrieving: parameter-codes · 1 page · 19,675 rows · 999/1,000 requests remaining

How many stations measure each priority parameter?

The audit below lists any measured parameter codes / characteristics that did NOT map to a priority group — useful for sanity-checking and refining PRIORITY_GROUPS. Skipped when using a cached station inventory (the raw per-station summaries aren’t kept around).

Show code
DATA_TYPES = ["daily", "continuous", "field_measurements", "samples"]
print("Stations by data type:")
print(stations_in_area[DATA_TYPES].sum().to_string())
print(f"\nStations by priority parameter (of {len(stations_in_area)}):")
print(stations_in_area[PRIORITY_NAMES].sum().to_string())

if samples_summaries is not None:
    # Audit: characteristics seen in samples that mapped to no priority group.
    unmatched = sorted({
        str(c)
        for df in samples_summaries.values()
        if "characteristic" in df.columns
        for c in df["characteristic"].dropna().unique()
        if classify_parameter(characteristic=c) is None
    })
    print(f"\n{len(unmatched)} unmatched sample characteristics (first 25):")
    print("\n".join(unmatched[:25]))
else:
    print("\n(unmatched-characteristics audit skipped — using cached station inventory, not a fresh fetch)")

show(stations_in_area[["monitoring_location_id", "monitoring_location_name", *PRIORITY_NAMES]])
Stations by data type:
daily                 10
continuous            28
field_measurements    15
samples               64

Stations by priority parameter (of 291):
conductivity        68
temperature         68
dissolved_oxygen    53
dissolved_solids    31
chlorophyll         17
pH                  59
nitrogen            36
phosphorus          35
turbidity           35
discharge           31
water_level         28

(unmatched-characteristics audit skipped — using cached station inventory, not a fresh fetch)
monitoring_location_id monitoring_location_name conductivity temperature dissolved_oxygen dissolved_solids chlorophyll pH nitrogen phosphorus turbidity discharge water_level
0 USGS-08212985 E Main Drain at Hwy 77 nr Yturria, TX False False False False False False False False False False False
1 USGS-08212990 E Main Drain nr San Perlita, TX False False False False False False False False False False False
2 USGS-08213000 Unm Resaca at Hwy 497 nr Port Mansfield, TX False False False False False False False False False False False
5 USGS-08461200 Intern Fal Res nr Falcon Heights, TX True True True True False True True True False False True
6 USGS-08461300 Rio Grande bl Falcon Dam, TX True True True True True True True True True True True
7 USGS-08462300 Rio Grande Ups fr Rio Saladito nr Fronton, TX False False False False False False False False False False False
8 USGS-08462400 Rio Grande Dws fr Rio Saladito nr Fronton, TX False False False False False False False False False False False
9 USGS-08462500 Rio Grande at Roma, TX True True False False False False False False False True True
10 USGS-08464000 Rio Grande abv Rio San Juan nr Rio Grande City, TX False False False False False False False False False False False
11 USGS-08464300 Rio Grande bl Rio San Juan nr Rio Grande City, TX False False False False False False False False False False False
12 USGS-08464700 Rio Grande at Ft Ringgold, Rio Grande City,TX True True False True False True True False False True True
13 USGS-08464990 Los Olmos Ck at Rio Grande City, TX False False False False False False False False False False False
14 USGS-08465000 Los Olmos Ck at Olmos, TX False False False False False False False False False False False
15 USGS-08465100 Rio Grande nr Rio Grande City, TX True True False False False False False False False False False
16 USGS-08466100 Rio Grande Trib nr Rio Grande City, TX False False False False False False False False False True True
17 USGS-08466180 Unm Drain nr La Grulla, TX False False False False False False False False False False False
18 USGS-08466200 Rio Grande Trib nr Sullivan City, TX False False False False False False False False False True True
19 USGS-08466300 Rio Grande nr Los Ebanos, TX True True False True True True False False False True False
20 USGS-08467650 Unm Drain nr Abram, TX False False False False False False False False False False False
21 USGS-08467670 Rio Grande at Mission Main Canal nr Mission, TX True True False False False False False False False False False
22 USGS-08467675 Mission Main Canal at Mission, TX False False False False False False False False False False False
23 USGS-08467680 Rio Grande nr Mission, TX True True False False False False False False False False False
24 USGS-08467700 La Parida Banco No. 144 nr Bentsen State Pk, TX False False False False False False False False False False False
25 USGS-08467800 Morillo Drain in Mexico True True True True False True False False False True False
26 USGS-08467950 Unm drain nr Perezville, TX False False False False False False False False False False False
27 USGS-08467975 Sardinas Resaca nr Mission, TX False False False False False False False False False False False
28 USGS-08467995 Unm Drain at Hwy 1925 nr Lull, TX False False False False False False False False False False False
29 USGS-08468005 Main Floodway at Hwy 336 nr McAllen, TX False False False False False False False False False False False
30 USGS-08469125 Rio Grande Inlet abv Anzald Dam nr Misson, TX False False False False False False False False False False False
31 USGS-08469150 Rio Grande abv Anzald Dam nr Misson, TX True True True False False True False False False False False
32 USGS-08469175 Rio Grande at Anzalduas Dam nr Hidalgo, TX True True False False False False False False False False False
33 USGS-08469200 Rio Grande bl Anzald Dam nr Misson, TX True True False True False True True True False True True
34 USGS-08469400 Field Drain nr Anzald Dam nr Mission, TX False False False False False False False False False False False
35 USGS-08470005 Hackney Lk Inlet at Hwy 336 nr McAllen, TX False False False False False False False False False False False
36 USGS-08470010 Main Floodway at Hwy 907 nr Alamo, TX False False False False False False False False False False False
37 USGS-08470050 Arroyo Colorado bl Siphon nr Donna, TX False False False False False False False False False True True
38 USGS-08470055 Main Floodway nr Donna, TX False False False False False False False False False False False
39 USGS-08470060 Unm Resaca at Hwy 493 nr Donna, TX False False False False False False False False False False False
40 USGS-08470062 Unm Resaca nr Donna, TX False False False False False False False False False False False
41 USGS-08470140 Main Floodway (Llano Grande) nr Progresso, TX True True True False False True False False False False False
42 USGS-08470142 Llano Grande Lk nr Weslaco, TX False False False False False False False True False False False
43 USGS-08470150 N Floodway at Hwy 491 nr Mercedes, TX False False False False False False False False False False False
44 USGS-08470155 N Floodway at Hwy 107 nr Edcouch, TX False False False False False False False False False False False
45 USGS-08470158 Donna Drain at Hwy 493 nr La Blanca, TX False False False False False False False False False False False
46 USGS-08470160 Donna Drain at Hwy 1015 nr Edcouch, TX False False False False False False False False False False False
47 USGS-08470195 N Floodway at Hwy 506 nr Sebastian, TX False False False False False False False False False False False
48 USGS-08470200 N Floodway nr Sebastian, TX False True False False False False False False False True False
49 USGS-08470225 N Floodway at Hwy 1420, Santa Monica, TX False False False False False False False False False False False
50 USGS-08470300 Arroyo Colorado at El Fuste Siphon nr Mercedes, TX True True False True False True True False False True False
51 USGS-08470310 Arroyo Colorado at Hwy 491 nr Mercedes, TX False False False False False False False False False False False
52 USGS-08470315 Unm Drain nr S Thompson Rd nr Primera, TX False False False False False False False False False False False
53 USGS-08470320 Arroyo Colorado at Hwy 506 nr La Feria, TX False False False False False False False False False False False
54 USGS-08470325 Unm Resaca nr Brownsville, TX False False False False False False False False False False False
55 USGS-08470330 Unm Drain nr San Benito, TX False False False False False False False False False False False
56 USGS-08470335 Resaca De Los Fresnos at Hwy 77, San Benito, TX True True True False False True False False False False False
57 USGS-08470395 Arroyo Colorado at Hwy 83, Harlingen, TX False False False False False False False False False False False
58 USGS-08470400 Arroyo Colorado at Harlingen, TX True True True True False True True True True True True
59 USGS-08470450 Arroyo Colorado abv Rio Hondo, TX True True True True True True True True True True True
60 USGS-08470460 Arroyo Colorado at Port Harlingen nr Rio Hondo, TX True True True True True True True True True True True
61 USGS-08470500 Arroyo Colorado at FM 106, Rio Hondo, TX True True True True True True True True True True True
62 USGS-08470520 Arroyo Colorado at Camp Perry nr Rio Hondo, TX True True True True True True True True True False False
63 USGS-08470990 Arroyo Colorado nr mouth nr Arroyo City, TX True True True False False True False False False False False
64 USGS-08471000 Arroyo Colorado at Laguna Atascosa NWR, TX False False False False False False False False False True False
65 USGS-08471005 Cayo Atascosa at Hwy 106 nr Rio Hondo, TX True True True False False True False False False False False
66 USGS-08471010 Resaca De Los Cuates at Hwy 100 nr Russeltown, TX True True True False False True False False False False False
67 USGS-08471020 Resaca De Los Cuates nr Los Fresnos, TX False False False False False False False False False False False
68 USGS-08471025 Field Drain at Hwy 106, Laguna Atascosa NWR, TX False False False False False False False False False False False
69 USGS-08471030 Resaca De Los Cuates at Hwy 106 nr Rio Hondo, TX True True True False False True False False False False False
70 USGS-08471035 Resaca De Los Cuates at Laguna Atascosa NWR, TX False False False False False False False False False False False
71 USGS-08471040 Cayo Atascosa at Crsg 1, Laguna Atascosa NWR, TX True True True False False True False False False False False
72 USGS-08471050 Cayo Atascosa at Crsg 2, Laguna Atascosa NWR, TX True True True False False True False False False False False
73 USGS-08471500 Rio Grande at Hidalgo, TX False False False False False False False False False True True
74 USGS-08471530 Unm Drain nr Hidalgo, TX False False False False False False False False False False False
75 USGS-08471540 Unm Drain nr Las Milpas, TX False False False False False False False False False False False
76 USGS-08471550 Unm Drain westside of Santa Ana NWR, TX False False False False False False False False False False False
77 USGS-08473230 San Juan Del Rio Banco No. 40 nr Donna, TX False False False False False False False False False False False
78 USGS-08473235 Santa Cruz Canal at Hwy 281 nr Faysville, TX False False False False False False False False False False False
79 USGS-08473251 Donna ID Canal at E Levee Rd nr Donna, TX False False False False False False False False False True True
80 USGS-0847325106 Donna Canal Sta 3RB nr Donna, TX False False False False False False False False False False False
81 USGS-08473259 Rio Grande at Ratamal Dam nr Donna, TX False False False False False False False False False False False
82 USGS-08473260 McManus Tract (TPWD) nr Donna, TX False False False False False False False False False False False
83 USGS-08473265 Zolezzi Banco No. 68 nr Donna, TX False False False False False False False False False False False
84 USGS-08473300 Rio Grande nr Progreso, TX False False False False False False False False False True True
85 USGS-08473325 Mercedes District Settling Basin nr Relampago, TX False False False False False False False False False False False
86 USGS-08473326 Rio Grande nr Mercedes, TX True True False False False False False False False False False
87 USGS-08473327 Santa Maria Pond nr Santa Maria, TX False False False False False False False False False False False
88 USGS-08473350 Unm Drain at Hwy 493 nr Hargill, TX False False False False False False False False False False False
89 USGS-08473575 Rio Grande nr Los Indios, TX True True False False False False False False False False False
90 USGS-08473700 Rio Grande nr San Benito, TX & Ramirez, MX False False False False False False False False False True True
91 USGS-08474090 Unm Drain at Hwy 511 nr Brownsville, TX False False False False False False False False False False False
92 USGS-08474095 N Main Drain at Boca Chica Hwy, Brownsville, TX False False False False False False False False False True True
93 USGS-08474100 Unm Resaca at Hwy 281, Brownsville, TX False False False False False False False False False False False
94 USGS-08474105 Twn Resaca at Hwy 281, Brownsville, TX False False False False False False False False False False False
95 USGS-08474107 Town Resaca at E 6th St, Brownsville, TX False False False False False False False False False True True
96 USGS-08474108 N Main Drain at Manzano St, Brownsville, TX False False False False False False False False False True True
97 USGS-08474110 Cameron Co Ditch 1 at FM 802, Brownsville, TX False False False False False False False False False True True
98 USGS-08474115 Resaca del Rancho Viejo, Brownsville, TX True True True False False False False False True True True
99 USGS-08474118 Cameron Co Ditch 2 at FM 1847 nr Los Fresnos, TX False False False False False False False False False True True
100 USGS-08474120 Main Ditch No. nr Los Fresnos, TX False False False False False False False False False False False
101 USGS-08474300 Old Main Drain No 2 at SH 4, Brownsville, TX False False False False False False False False False True True
102 USGS-08474320 North Main Drain at Ostos Rd, Brownsville, TX True False True False False False False False True False True
103 USGS-08474395 Brazos Santiago Pass at South Padre Island, TX False False False False False False False False False True True
104 USGS-08474550 Rio Grande at US Hwy 77, Brownsville, TX True True True True False True True True True True False
105 USGS-08474555 Ft Brown Resaca at Brownsville, TX False False False False False False False False False False False
106 USGS-08474990 Rio Grande at Brownsville, TX False False False False False False False False False False False
107 USGS-08475000 Rio Grande nr Brownsville, TX True True True True True True True True True True True
108 USGS-08475200 Rio Grande at mouth False False False False False False False False False False False
109 USGS-255446097311701 IT 3559 on Rio Grande River nr Brownsville TX False False False False False False False False False False False
110 USGS-255453097312199 IT S0310001A CoB TR nr Brownsville TX False False False False False False False False False False False
111 USGS-255508097314797 IT S0310001C Rio Grande nr Brownsville TX False False False False False False False False False False False
112 USGS-255530097231101 Unm Tract at Southmost Rh nr Brownsville, TX False False False False False False False False False False False
113 USGS-255535097275398 IT S0310001B Res de La Palma nr Brownsville TX False False False False False False False False False False False
114 USGS-255557097315001 Stormwater Outfall nr Military Hwy, Brownsville TX False False False False False False False False False False False
115 USGS-255702097240600 1232002Laguna Madre ES Line 320 Site 02 True True True True True True True True True False False
116 USGS-255704097240601 Brownsville Ship Harbor nr Brownsville, TX False False False False False False False False False False False
117 USGS-255714097341801 BY-88-60-811 False False False False False False False False False False False
118 USGS-255845097191800 1233402Laguna Madre ES Line 334 Site 02 True True True False False True False False True False False
119 USGS-255952097172400 1234302Laguna Madre ES Line 343 Site 02 True True True False False True True True True False False
120 USGS-260012097363901 Garza Cavazos False False False False False False False False False False False
121 USGS-260034097161000 1234802Laguna Madre ES Line 348 Site 02 True True True False False True False False False False False
122 USGS-260053097164301 Bahia Brande at Hwy 1792 nr Port Isabel, TX False False False False False False False False False False False
123 USGS-260106097151000 1235102Laguna Madre ES Line 351 Site 02 True True True False True True True True True False False
124 USGS-260109097151101 Brownsville Ship Channel nr Port Isabel, TX False False False False False False False False False False False
125 USGS-260135097344401 BY-88-60-815 False False False False False False False False False False False
126 USGS-260137097315299 IT S0310026A Main Supply Canal nr Olmito TX False False False False False False False False False False False
127 USGS-260153097343601 BY-88-60-814 False False False False False False False False False False False
128 USGS-260157097360601 BY-88-60-724 False False False False False False False False False False False
129 USGS-260159097352401 BY-88-60-726 False False False False False False False False False False False
130 USGS-260204097443701 BY-88-59-7xx2 True True True True False True True True True False False
131 USGS-260209097344101 BY-88-60-813 False False False False False False False False False False False
132 USGS-260212097444301 BY-88-59-7xx False False False False False False False False False False False
133 USGS-260219097125000 1236402Laguna Madre ES Line 364 Site 02 True True True True False True True True True False False
134 USGS-260220097352401 BY-88-60-725 False False False False False False False False False False False
135 USGS-260220097360301 BY-88-60-413 False False False False False False False False False False False
136 USGS-260223097110001 S Bay nr Port Isabel, TX False False False False False False False False False False False
137 USGS-260224097343901 BY-88-60-812 False False False False False False False False False False False
138 USGS-260233097340701 BY-88-60-521 False False False False False False False False False False False
139 USGS-260245097335501 BY-88-60-517 False False False False False False False False False False False
140 USGS-260245097355801 BY-88-60-412 False False False False False False False False False False False
141 USGS-260252097341001 BY-88-60-516 False False False False False False False False False False False
142 USGS-260252097343601 BY-88-60-520 False False False False False False False False False False False
143 USGS-260255097351901 BY-88-60-411 False False False False False False False False False False False
144 USGS-260256097115100 1237002Laguna Madre ES Line 370 Site 02 True True True False False True True True True False False
145 USGS-260302097342601 BY-88-60-519 False False False False False False False False False False False
146 USGS-260304097335201 BY-88-60-515 False False False False False False False False False False False
147 USGS-260304097344601 BY-88-60-518 False False False False False False False False False False False
148 USGS-260306097340801 BY-88-60-514 False False False False False False False False False False False
149 USGS-260307097355501 BY-88-60-414 False False False False False False False False False False False
150 USGS-260311097351701 BY-88-60-410 False False False False False False False False False False False
151 USGS-260328097124300 1231302Laguna Madre ES Line 313 Site 02 True True True False False True False False True False False
152 USGS-260341097092701 Back Bay nr Port Isabel, TX False False False False False False False False False False False
153 USGS-260347097454101 BY-88-58-610 False False False False False False False False False False False
154 USGS-260348097131799 IT S0310005A Port Isabel Res nr Port Isabel TX False False False False False False False False False False False
155 USGS-260355097285699 IT S0310004A Los Fresnos Res nr Los Fresnos TX False False False False False False False False False False False
156 USGS-260356097100000 1237602Laguna Madre ES Line 376 Site 02 True True True False False True True True True False False
157 USGS-260357097081000 1290195Laguna Madre ES Line 901 Site 95 True True True False False True True True False False False
158 USGS-260359097124300 1230102Laguna Madre ES Line 301 Site 02 True True True False False True True True True False False
159 USGS-260402098043498 IT S1080002B Rio Grande nr Donna TX False False False False False False False False False False False
160 USGS-260412097120600 1229702Laguna Madre ES Line 297 Site 02 True True True True True True True True True False False
161 USGS-260417098092401 W Lk at Santa Ana NWR nr Las Milpas, TX False False False False False False False False False False False
162 USGS-260427097113201 Laguna Madre at Port Isabel, TX False False False False False False False False False False False
163 USGS-260438098075101 E Lk at Santa Ana NWR nr Las Milpas, TX False False False False False False False False False False False
164 USGS-260439097131000 1228704Laguna Madre ES Line 287 Site 04 True True True False False True True True True False False
165 USGS-260458098142101 Settling Basin nr Hidalgo, TX False False False False False False False False False False False
166 USGS-260521098154399 IT S1080001A Pharr-San Juan Main Canal nr Alamo TX False False False False False False False False False False False
167 USGS-260525098150501 Lk Tropicana nr Hidalgo, TX False False False False False False False False False False False
168 USGS-260526097121000 1228702Laguna Madre ES Line 287 Site 02 True True True True False True True True True False False
169 USGS-260527097572506 LU-88-57-206 False False False False False False False False False False False
170 USGS-260545097165701 Laguna Madre ES at Laguna Vista, TX False False False False False False False False False False False
171 USGS-260545097182598 IT S0310005B EL Tular Res nr Laguna Vista TX False False False False False False False False False False False
172 USGS-260551097100901 Laguna Madre Site 2 nr South Padre Island, TX False False False False False False False False False False False
173 USGS-260552097100701 Tompkins Channel at South Padre Island, TX False False False False False False False False False False True
174 USGS-260553097111200 1228701Laguna Madre ES Line 287 Site 01 True True True True False True True True True False False
175 USGS-260606097101101 Laguna Madre Site 1 nr South Padre Island, TX False False False False False False False False False False False
176 USGS-260616098152201 LU-87-62-304 False False False False False False False False False False False
177 USGS-260629098153001 LU-87-62-303 False False False False False False False False False False False
178 USGS-260704098125198 IT S1080009B unamed TR nr Pharr TX False False False False False False False False False False False
179 USGS-260708098164501 Unm Resaca nr Hidalgo, TX False False False False False False False False False False False
180 USGS-260810097380699 IT S0310007A Res de Los Fresnos nr San Benito TX False False False False False False False False False False False
181 USGS-260822097493401 La Feria Res PS Site nr La Feria, TX False False False False False False False False False False False
182 USGS-260825097493399 IT S0310003A La Feria Res nr La Feria TX False False False False False False False False False False False
183 USGS-260832097092501 Beach Rp Site 2018A nr South Padre Island, TX False False False False False False False False False False False
184 USGS-260842098045601 Donna Res W Site nr Donna, TX False False False False False False False False False False False
185 USGS-260857097543702 LU-88-49-902 False False False False False False False False False False False
186 USGS-260900097543699 IT S1080007A Merecedes EC nr Mercedes TX False False False False False False False False False False False
187 USGS-260907098040301 Donna Res E Site nr Donna, TX False False False False False False False False False False False
188 USGS-260912097503101 BY-88-50-706 False False False False False False False False False False False
189 USGS-260912098040601 Donna Res PS Site nr Donna, TX False False False False False False False False False False False
190 USGS-260915098040199 IT S1080002A Donna Res nr Donna TX False False False False False False False False False False False
191 USGS-260933098041597 IT S1080002C DID #1 Canal nr Donna TX False False False False False False False False False False False
192 USGS-261000097425701 IT S0310002B on Harlingen Res nr Harlingen TX False False False False False False False False False False False
193 USGS-261036097340299 IT S0310096A Res de Los Fresnos nr San Benito TX False False False False False False False False False False False
194 USGS-261059097592099 IT S1080011A WCID #9 Canal nr Weslaco TX False False False False False False False False False False False
195 USGS-261104098114099 IT S1080009A unamed TR nr Pharr TX False False False False False False False False False False False
196 USGS-261105097591998 IT S1080011B TR nr Weslaco TX False False False False False False False False False False False
197 USGS-261108098111901 LU-87-55-504 False False False False False False False False False False False
198 USGS-261111098091601 LU-87-55-602 False False False False False False False False False False False
199 USGS-261117098144599 IT S1080006A Boeye Res nr McAllen TX False False False False False False False False False False False
200 USGS-261147097355700 1222302Laguna Madre ES Line 223 Site 02 True True True True True True True True True False False
201 USGS-261147097413301 IT S0310002A on Lk Harlingen nr Harlingen TX False False False False False False False False False False False
202 USGS-261152098082599 IT S1080010A San Juan Res nr San Juan TX False False False False False False False False False False False
203 USGS-261153097153400 1227403Laguna Madre ES Line 274 Site 03 True True True True True True True True True False False
204 USGS-261216098131398 IT S1080006B TR nr McAllen TX False False False False False False False False False False False
205 USGS-261226097135700 1227402Laguna Madre ES Line 274 Site 02 True True True False False True True True True False False
206 USGS-261228098235701 IT 55098 on Rio Grande nr Mission TX False False False False False False False False False False False
207 USGS-261236098194699 IT S1080008A Mission City Res nr Mission TX False False False False False False False False False False False
208 USGS-261237097195001 Pelican Lk at Laguna Madre NWR, TX True True True False False True False False False False False
209 USGS-261256097121800 1227401Laguna Madre ES Line 274 Site 01 True True True False True True True True True False False
210 USGS-261301098013895 IT S1080029E Donna N Res nr Midway North TX False False False False False False False False False False False
211 USGS-261305098094598 IT S1080010B San Juan TR 2 nr San Juan TX False False False False False False False False False False False
212 USGS-261310098234298 IT S1080022B Perezville Res nr Palmview TX False False False False False False False False False False False
213 USGS-261320097238501 Laguna Atascosa in Laguna Atascosa NWR, TX False False False False False False False False False False False
214 USGS-261326097215801 Athel Pond at Laguna Atascosa NWR, TX True True True False False True False False False False False
215 USGS-261340098233997 IT S1080022C Edinburg Main Canal nr Palmview TX False False False False False False False False False False False
216 USGS-261356097195501 Stover Cove at Laguna Atascosa NWR, TX False False False False False False False False False False False
217 USGS-261410097231201 Laguna Atascosa at Laguna Atascosa NWR, TX True True True False False True False False False False False
218 USGS-261417097343198 IT S0310006B unamed canal nr Rio Hondo TX False False False False False False False False False False False
219 USGS-261417097343699 IT S0310006A Rio Hondo Res nr Rio Hondo TX False False False False False False False False False False False
220 USGS-261417098201398 IT S1080008B unamed TR nr Mission TX False False False False False False False False False False False
221 USGS-261421098073896 IT S1080029D Lopezville Res nr Nurillo TX False False False False False False False False False False False
222 USGS-261430098384199 IT S2140006A Rio Grande nr La Grulla TX False False False False False False False False False False False
223 USGS-261457097465401 BY-88-50-305 False False False False False False False False False False False
224 USGS-261501098300099 IT S1080022A La Joya Lk nr La Joya TX False False False False False False False False False False False
225 USGS-261508098242299 IT S1080088A Edinburg Main Canal nr Palmview TX False False False False False False False False False False False
226 USGS-261509098233901 IT S1080022E on Unnamed Res nr Penitas TX False False False False False False False False False False False
227 USGS-261510098242798 IT S1080088B Chihuahua N Res nr Palmview TX False False False False False False False False False False False
228 USGS-261510098292499 IT S1080213A La Joya Lk nr La Joya TX False False False False False False False False False False False
229 USGS-261518098232696 IT S1080022D Palmview Res nr Palmview TX False False False False False False False False False False False
230 USGS-261535097494699 IT S0310009A La Feria Main Canal nr Santa Rosa TX False False False False False False False False False False False
231 USGS-261540098374998 IT S2140006B La Grulla TR nr La Grulla TX False False False False False False False False False False False
232 USGS-261646098164299 IT S1080033A Sharyland WSC TR 1 nr Alton TX False False False False False False False False False False False
233 USGS-261656097331700 1223302Laguna Madre ES Line 233 Site 02 True True True True True True True True True False False
234 USGS-261709098153097 IT S1080006C TR nr McAllen TX False False False False False False False False False False False
235 USGS-261725097575299 IT S1080003A Hidalgo County ED nr Edcouch TX False False False False False False False False False False False
236 USGS-261727098120999 IT S1080004A Edinburg Res nr Edinburg TX False False False False False False False False False False False
237 USGS-261745097460201 Unm Tract nr Sebastian, TX False False False False False False False False False False False
238 USGS-261747097460301 Unm Tract nr Sebastian, TX Site 2 False False False False False False False False False False False
239 USGS-261750098001099 IT S1080005A Elsa Res nr Elsa TX False False False False False False False False False False False
240 USGS-261758098440397 IT S2140004C Rio Grande nr Garciaville TX False False False False False False False False False False False
241 USGS-261759097555398 IT S1080023B La Villa TR nr La Villa TX False False False False False False False False False False False
242 USGS-261759098075299 IT S1080029A Edinburg East Res nr Edinburg TX False False False False False False False False False False False
243 USGS-261806097555299 IT S1080023A WCID #9 Canal nr La Villa TX False False False False False False False False False False False
244 USGS-261809098195501 IT S1080033C on Unnamed Canal nr Palmhurst TX False False False False False False False False False False False
245 USGS-261850097582201 IT S1080029G on Unnamed Terminal Res nr Edcouch TX False False False False False False False False False False False
246 USGS-261912098144198 IT S1080033B Sharyland WSC TR 2 nr Alton North TX False False False False False False False False False False False
247 USGS-261922097182800 1226302Laguna Madre ES Line 263 Site 02 True True True False True True True True True False False
248 USGS-261929097264500 1224702Laguna Madre ES Line 247 Site 02 True True True True True True True True True False False
249 USGS-261946098433696 IT S2140004D Union WSC TR nr Garciaville TX False False False False False False False False False False False
250 USGS-261949098453499 IT S2140004A Rio Grande nr Garciaville TX False False False False False False False False False False False
251 USGS-261950097195501 Laguna Madre ES at Horse Island False False False False False False False False False False False
252 USGS-261957098452498 IT S2140004B Union WSC TR nr Garciaville TX False False False False False False False False False False False
253 USGS-262025097474399 IT S2450006A Sebastian Res nr Sebastian TX False False False False False False False False False False False
254 USGS-262026098112601 IT 55123 from City of Edinburg nr Edinburg TX False False False False False False False False False False False
255 USGS-262051097189001 Laguna Madre nr Laguna Atascosa NWR, TX False False False False False False False False False False False
256 USGS-262075097273001 Arroyo Colorado nr Arroyo City, TX False False False False False False False False False False False
257 USGS-262112097194401 Laguna Madre ES nr mouth of Harlingen Channel True True True False False True False False False False False
258 USGS-262132097203100 1225802Laguna Madre ES Line 258 Site 02 True True True True False True True True True False False
259 USGS-262208098482199 IT S2140018A Rio Grande nr Rio Grande City TX False False False False False False False False False False False
260 USGS-262252098073498 IT S1080029B Santa Cruz Canal nr Edinburg TX False False False False False False False False False False False
261 USGS-262324097450701 Hidalgo-Willacy County Drain nr Lyford, TX False False False False False False False False False False False
262 USGS-262423097204400 1221702Laguna Madre ES Line 217 Site 02 True True True False True True True True True False False
263 USGS-262424099011399 IT S2140007A Rio Grande nr Roma TX False False False False False False False False False False False
264 USGS-262435097471401 Unm Pond at Lyford, TX False False False False False False False False False False False
265 USGS-262440097473899 IT S2450003A TR nr Lyford TX False False False False False False False False False False False
266 USGS-262441097584994 IT S1080029F Monte Alto Res Unit 1 nr Hargill TX False False False False False False False False False False False
267 USGS-262444097572301 Monte Alto Res nr Hwy 88 nr Monte Alto, TX False False False False False False False False False False False
268 USGS-262449097212101 Laguna Madre at N edge Laguna Atascosa NWR, TX False False False False False False False False False False False
269 USGS-262619097365001 Hidalgo-Willach Drain at Hwy 1420 nr Willamar, TX False False False False False False False False False False False
270 USGS-262702097541297 IT S1080029C Main Branch NE Canal nr Lasara TX False False False False False False False False False False False
271 USGS-262926097234101 Laguna Madre ES nr Chubby Island False False False False False False False False False False False
272 USGS-262930097471199 IT S2450001A Raymondville Res nr Raymondville TX False False False False False False False False False False False
273 USGS-263023098024701 Unm Lk nr Hwy 186 E of Linn, TX False False False False False False False False False False False
274 USGS-263037097232800 1220302Laguna Madre ES Line 203 Site 02 True True True True False True True True True False False
275 USGS-263052099070099 IT S2140003A Rio Grande nr Roma TX False False False False False False False False False False False
276 USGS-263053099065898 IT S2140003B Rio Grande nr Roma TX False False False False False False False False False False False
277 USGS-263115097213100 1220301Laguna Madre ES Line 203 Site 01 True True True False False True False False False False False
278 USGS-263128097523501 La Sal Vieja (E) nr Hargill, TX False False False False False False False False False False False
279 USGS-263153097575501 Rudman Tract (73abcd-85) nr Hwy 106 nr Hargill, TX False False False False False False False False False False False
280 USGS-263156097572001 Rudman Tract nr Hwy 186 nr Hargill, TX False False False False False False False False False False False
281 USGS-263211097550301 La Sal Vieja (W) nr Hargill, TX False False False False False False False False False False False
283 USGS-263318099090800 Weir at 51+80 bl Falcon Dam nr Falcon Heights, TX True True False True False True False False False False False
284 USGS-263320099092900 Weir at 73+75 bl Falcon Dam nr Falcon Heights, TX True True False True False True False False False False False
285 USGS-263323097253400 1219404Laguna Madre ES Line 194 Site 04 True True True True False True True True True False False
287 USGS-263328099094300 Gallery Weir 243 True True False True False True False False False False False
288 USGS-263328099094401 Weir US Gallery Falcon Dam nr Falcon Heights, TX True True False True False True False False False False False
370 USGS-948215029274000 Fordyce Holdings Fordyce Shower Plant False False False False False False False False False False False
371 USGS-948215089460800 Valley Caliche Products Beck Quarry False False False False False False False False False False False
373 USGS-948427110564100 L and R Aggregates La Grulla Site False False False False False False False False False False False
374 USGS-948427110565400 M and R Aggregates Starr County Plant False False False False False False False False False False False
375 USIBW-08468600 USIBW Div fr Rio Grande Anzald Canal nr Reynosa,MX False False False False False False False False False True True
376 USIBW-08470400 USIBW Arroyo Colorado at Harlingen, TX False False False False False False False False False False False

Step 4 — Fetch the time-series records

For the stations that actually have data, fetch the full available record of the priority parameters from three USGS Water Data services (docs: https://api.waterdata.usgs.gov/) and save one tidy (long-format) table per data type. Daily values and field measurements filter by USGS parameter_code; discrete samples are keyed by characteristic name, so we fetch all and keep rows whose characteristic maps to a priority group. (Analysis later subsets to the 25-year study window — we keep everything.) Each fetch_*/tidy_* pair (from _helpers/usgs.py) is shown below: first the raw API response, then the tidy result actually saved — each pair is skipped when its own saved product is still fresh (same load_dataframe-as-backup-cache pattern as Steps 2-3).

Show code
# All priority parameter codes, flattened, for the code-keyed services (daily, field).
PRIORITY_CODES = sorted({c for spec in PRIORITY_GROUPS.values() for c in spec["parameter_codes"]})

# Reusable lookup (built from the inventory in Step 3).
huc8_by_station = dict(zip(stations_in_area["monitoring_location_id"], stations_in_area["huc8"]))

Daily values

Daily statistics (mostly discharge & water level) for the stations flagged daily.

Show code
daily_path = S.data_dir / "usgs_waterdata" / "usgs_daily_values.parquet"
daily = load_dataframe(daily_path, max_age_days=7)
if daily is None:
    daily_station_ids = stations_in_area.loc[stations_in_area["daily"], "monitoring_location_id"].tolist()
    daily_raw = fetch_daily(daily_station_ids, PRIORITY_CODES)
    show(daily_raw.head())  # peek at the raw USGS response shape before we tidy it
using cached data/usgs_waterdata/usgs_daily_values.parquet (86131 rows, < 7 days old)
Show code
if daily is None:
    # Tidy to a long-format table tagged with priority_group / parameter_name / huc8 (see _helpers/usgs.py).
    daily = tidy_daily(daily_raw, huc8_by_station, parameter_name_by_code)
    show(daily.head())
    save_dataframe(daily, daily_path)

Discrete water-quality samples

Lab samples for the stations flagged samples. The samples service is keyed by characteristic name, so we fetch all results per station and keep those whose characteristic maps to one of our priority groups via classify_parameter.

Show code
samples_path = S.data_dir / "usgs_waterdata" / "usgs_samples.parquet"
samples = load_dataframe(samples_path, max_age_days=7)
if samples is None:
    samples_station_ids = stations_in_area.loc[stations_in_area["samples"], "monitoring_location_id"].tolist()
    samples_raw = fetch_samples(samples_station_ids)
    show(samples_raw.head())  # peek at the raw USGS response shape before we tidy it
using cached data/usgs_waterdata/usgs_samples.parquet (47007 rows, < 7 days old)
Show code
if samples is None:
    samples = tidy_samples(samples_raw, huc8_by_station)
    show(samples.head())
    save_dataframe(samples, samples_path)

Field measurements

In-situ readings (temperature, DO, pH, conductivity, turbidity, …) for the stations flagged field_measurements.

Show code
field_path = S.data_dir / "usgs_waterdata" / "usgs_field_measurements.parquet"
field = load_dataframe(field_path, max_age_days=7)
if field is None:
    field_station_ids = stations_in_area.loc[stations_in_area["field_measurements"], "monitoring_location_id"].tolist()
    field_raw = fetch_field(field_station_ids, PRIORITY_CODES)
    show(field_raw.head())  # peek at the raw USGS response shape before we tidy it
using cached data/usgs_waterdata/usgs_field_measurements.parquet (628 rows, < 7 days old)
Show code
if field is None:
    field = tidy_field(field_raw, huc8_by_station, parameter_name_by_code)
    show(field.head())
    save_dataframe(field, field_path)

Step 5 — Map stations by priority parameter

One colored layer per priority parameter, over the watershed outlines on the topo basemap. A station that measures several parameters appears in several layers.

Interactive selector: click a legend entry to hide/show that parameter’s layer.

Show code
PARAM_COLORS = categorical_colors(PRIORITY_NAMES)
watershed_outlines = gv.Path(watersheds_gdf).opts(color="black", line_width=1.5)

stations_param_map = gvts.EsriWorldTopo * watershed_outlines
for param in PRIORITY_NAMES:
    subset = stations_in_area[stations_in_area[param]]
    if len(subset) == 0:
        continue
    stations_param_map = stations_param_map * gv.Points(
        subset,
        vdims=["monitoring_location_name", "monitoring_location_id", "site_type"],
        label=param,
    ).opts(color=PARAM_COLORS[param], size=7, line_color="white", tools=["hover"])

stations_param_map = stations_param_map.opts(
    data_aspect=1,
    title="Monitoring stations by priority parameter (click legend to toggle)",
    legend_position="right",
    hooks=[make_legend_clickable],
)
stations_param_map

Step 6 — Data availability & a sample series

Confirm the fetch: per data type, how many records and what date span each station × priority group has, a quick availability heatmap, and one illustrative series. (Pre/post-restoration comparisons live in a later shared display notebook; trends are Step 7, below.)

Show code
show(coverage(daily, "date"))
monitoring_location_id priority_group n start end
0 USGS-08470500 conductivity 21771 2014-05-30 2021-03-22
4 USGS-08474095 discharge 1535 2022-04-27 2026-07-09
5 USGS-08474107 discharge 1561 2022-04-01 2026-07-09
6 USGS-08474108 discharge 1561 2022-04-01 2026-07-09
7 USGS-08474110 discharge 1626 2022-01-26 2026-07-09
9 USGS-08474118 discharge 580 2024-11-21 2026-07-08
10 USGS-08474300 discharge 1561 2022-04-01 2026-07-09
1 USGS-08470500 dissolved_oxygen 16830 2015-10-08 2021-03-22
2 USGS-08470500 temperature 22068 2014-05-30 2021-03-22
3 USGS-08470500 water_level 12096 2005-04-27 2025-08-24
8 USGS-08474110 water_level 1620 2022-01-26 2026-07-08
11 USGS-08474300 water_level 1736 2021-10-07 2026-07-08
12 USGS-260552097100701 water_level 1586 2021-08-20 2023-02-07
Show code
show(coverage(samples, "datetime"))
monitoring_location_id priority_group n start end
7 USGS-08461300 chlorophyll 7 1996-03-21 16:10:00+00:00 1999-01-12 22:30:00+00:00
23 USGS-08466300 chlorophyll 2 1981-06-15 21:20:00+00:00 1981-06-15 21:20:00+00:00
72 USGS-08470450 chlorophyll 8 2006-02-22 23:00:00+00:00 2006-05-24 16:30:00+00:00
81 USGS-08470460 chlorophyll 6 2006-02-22 22:00:00+00:00 2006-05-24 15:30:00+00:00
90 USGS-08470500 chlorophyll 8 2006-02-22 21:00:00+00:00 2006-05-24 14:30:00+00:00
99 USGS-08470520 chlorophyll 8 2006-02-22 19:30:00+00:00 2006-05-24 12:30:00+00:00
141 USGS-08475000 chlorophyll 51 1976-11-16 20:00:00+00:00 2023-02-14 16:00:00+00:00
151 USGS-255702097240600 chlorophyll 6 1974-10-22 16:50:00+00:00 1975-06-03 17:00:00+00:00
176 USGS-260106097151000 chlorophyll 9 1974-04-23 15:50:00+00:00 1975-06-03 15:40:00+00:00
232 USGS-260412097120600 chlorophyll 6 1974-10-22 14:50:00+00:00 1975-06-03 15:15:00+00:00
264 USGS-261147097355700 chlorophyll 10 1974-04-23 18:50:00+00:00 1975-06-03 20:00:00+00:00
273 USGS-261153097153400 chlorophyll 3 1974-04-23 16:55:00+00:00 1974-04-23 16:55:00+00:00
293 USGS-261256097121800 chlorophyll 4 1974-10-22 17:10:00+00:00 1975-06-03 18:15:00+00:00
309 USGS-261656097331700 chlorophyll 6 1974-10-22 20:15:00+00:00 1975-02-04 22:15:00+00:00
318 USGS-261922097182800 chlorophyll 4 1974-10-22 17:50:00+00:00 1975-06-03 19:00:00+00:00
326 USGS-261929097264500 chlorophyll 15 1974-04-23 19:50:00+00:00 1976-02-10 18:15:00+00:00
347 USGS-262423097204400 chlorophyll 1 1974-10-22 20:50:00+00:00 1974-10-22 20:50:00+00:00
0 USGS-08461200 conductivity 3 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
8 USGS-08461300 conductivity 590 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
17 USGS-08464700 conductivity 586 1977-06-20 17:10:00+00:00 2000-09-12 13:35:00+00:00
24 USGS-08466300 conductivity 443 1977-06-22 13:00:00+00:00 2000-09-19 16:45:00+00:00
29 USGS-08467800 conductivity 412 1982-12-16 17:20:00+00:00 2000-09-19 15:10:00+00:00
35 USGS-08469150 conductivity 1 1986-06-24 19:30:00+00:00 1986-06-24 19:30:00+00:00
39 USGS-08469200 conductivity 529 1969-01-14 20:45:00+00:00 2000-09-19 15:30:00+00:00
46 USGS-08470140 conductivity 1 1986-06-24 22:15:00+00:00 1986-06-24 22:15:00+00:00
53 USGS-08470300 conductivity 2 1968-02-14 19:45:00+00:00 1968-02-14 19:45:00+00:00
59 USGS-08470335 conductivity 2 1986-06-26 18:45:00+00:00 1986-06-26 18:45:00+00:00
63 USGS-08470400 conductivity 298 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
73 USGS-08470450 conductivity 30 1986-06-25 13:30:00+00:00 2006-05-24 16:30:00+00:00
82 USGS-08470460 conductivity 75 2006-02-22 14:55:00+00:00 2006-05-24 15:30:00+00:00
91 USGS-08470500 conductivity 71 2006-02-22 16:48:00+00:00 2006-05-24 14:37:00+00:00
100 USGS-08470520 conductivity 76 2006-02-22 17:16:00+00:00 2006-05-24 12:54:00+00:00
108 USGS-08470990 conductivity 2 1986-06-25 19:20:00+00:00 1986-06-25 19:20:00+00:00
112 USGS-08471005 conductivity 2 1986-06-27 12:15:00+00:00 1986-06-27 12:15:00+00:00
116 USGS-08471010 conductivity 1 1986-06-26 20:15:00+00:00 1986-06-26 20:15:00+00:00
120 USGS-08471030 conductivity 2 1986-06-27 13:15:00+00:00 1986-06-27 13:15:00+00:00
124 USGS-08471040 conductivity 2 1986-06-27 19:05:00+00:00 1986-06-27 19:05:00+00:00
128 USGS-08471050 conductivity 1 1986-06-27 18:15:00+00:00 1986-06-27 18:15:00+00:00
132 USGS-08474550 conductivity 69 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
142 USGS-08475000 conductivity 797 1968-01-13 22:30:00+00:00 2026-06-16 15:00:00+00:00
152 USGS-255702097240600 conductivity 78 1968-08-21 22:20:00+00:00 1975-06-03 17:07:00+00:00
160 USGS-255845097191800 conductivity 57 1968-08-21 21:01:00+00:00 1975-06-03 16:44:00+00:00
165 USGS-255952097172400 conductivity 93 1968-08-21 22:30:00+00:00 1982-03-29 14:10:00+00:00
172 USGS-260034097161000 conductivity 6 1969-09-09 17:40:00+00:00 1969-09-09 17:45:00+00:00
177 USGS-260106097151000 conductivity 83 1969-09-09 16:50:00+00:00 1976-08-25 13:49:00+00:00
184 USGS-260204097443701 conductivity 2 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
192 USGS-260219097125000 conductivity 33 1968-08-21 20:10:00+00:00 1974-04-23 14:40:00+00:00
200 USGS-260256097115100 conductivity 50 1970-10-06 15:45:00+00:00 1975-06-03 14:49:00+00:00
207 USGS-260328097124300 conductivity 45 1969-09-09 15:45:00+00:00 1975-06-03 15:32:00+00:00
212 USGS-260356097100000 conductivity 63 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
219 USGS-260357097081000 conductivity 17 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
225 USGS-260359097124300 conductivity 42 1968-08-21 17:55:00+00:00 1975-06-03 15:08:00+00:00
233 USGS-260412097120600 conductivity 44 1968-08-21 17:10:00+00:00 1975-06-03 15:17:00+00:00
241 USGS-260439097131000 conductivity 52 1968-08-21 16:40:00+00:00 1982-03-29 15:15:00+00:00
248 USGS-260526097121000 conductivity 42 1968-08-21 15:35:00+00:00 1982-03-29 14:50:00+00:00
256 USGS-260553097111200 conductivity 39 1968-08-21 16:15:00+00:00 1982-03-29 15:10:00+00:00
265 USGS-261147097355700 conductivity 53 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
274 USGS-261153097153400 conductivity 82 1968-08-21 12:50:00+00:00 1982-03-29 15:45:00+00:00
282 USGS-261226097135700 conductivity 49 1968-08-21 14:15:00+00:00 1982-03-29 15:50:00+00:00
289 USGS-261237097195001 conductivity 2 1986-06-28 15:00:00+00:00 1986-06-28 15:00:00+00:00
294 USGS-261256097121800 conductivity 40 1968-08-21 14:40:00+00:00 1982-03-29 15:55:00+00:00
301 USGS-261326097215801 conductivity 2 1986-06-28 13:30:00+00:00 1986-06-28 13:30:00+00:00
305 USGS-261410097231201 conductivity 1 1986-06-27 16:10:00+00:00 1986-06-27 16:10:00+00:00
310 USGS-261656097331700 conductivity 59 1968-08-22 16:45:00+00:00 1975-06-03 20:33:00+00:00
319 USGS-261922097182800 conductivity 86 1968-08-22 13:00:00+00:00 1982-03-29 16:25:00+00:00
327 USGS-261929097264500 conductivity 115 1968-08-22 17:01:00+00:00 1982-03-29 16:55:00+00:00
335 USGS-262112097194401 conductivity 1 1986-06-25 20:40:00+00:00 1986-06-25 20:40:00+00:00
339 USGS-262132097203100 conductivity 50 1968-08-22 13:30:00+00:00 1975-06-03 19:22:00+00:00
348 USGS-262423097204400 conductivity 94 1968-08-22 18:40:00+00:00 1982-03-29 17:25:00+00:00
355 USGS-263037097232800 conductivity 39 1968-08-22 19:45:00+00:00 1975-06-03 20:22:00+00:00
363 USGS-263115097213100 conductivity 2 1968-08-22 19:35:00+00:00 1968-08-22 19:36:00+00:00
367 USGS-263318099090800 conductivity 86 1983-02-14 15:50:00+00:00 1995-04-19 18:00:00+00:00
371 USGS-263320099092900 conductivity 40 1983-02-14 15:30:00+00:00 1994-04-28 18:20:00+00:00
375 USGS-263323097253400 conductivity 45 1968-08-20 20:25:00+00:00 1975-06-03 22:28:00+00:00
383 USGS-263328099094300 conductivity 62 1985-10-03 16:00:00+00:00 1993-04-20 19:15:00+00:00
387 USGS-263328099094401 conductivity 84 1983-04-18 17:00:00+00:00 1993-04-20 19:00:00+00:00
9 USGS-08461300 discharge 528 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
18 USGS-08464700 discharge 598 1977-06-20 17:10:00+00:00 2000-09-12 13:35:00+00:00
25 USGS-08466300 discharge 460 1977-07-18 18:30:00+00:00 2000-09-19 16:45:00+00:00
30 USGS-08467800 discharge 318 1982-12-16 17:20:00+00:00 2000-09-19 15:10:00+00:00
40 USGS-08469200 discharge 600 1968-10-15 12:45:00+00:00 2000-09-19 15:30:00+00:00
51 USGS-08470200 discharge 30 1973-05-01 21:45:00+00:00 1983-02-27 17:00:00+00:00
54 USGS-08470300 discharge 54 1967-09-26 20:00:00+00:00 1977-08-16 14:20:00+00:00
64 USGS-08470400 discharge 292 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
133 USGS-08474550 discharge 10 1977-05-10 15:05:00+00:00 1977-09-13 15:15:00+00:00
143 USGS-08475000 discharge 908 1966-02-15 20:00:00+00:00 2025-07-30 13:30:00+00:00
1 USGS-08461200 dissolved_oxygen 6 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
10 USGS-08461300 dissolved_oxygen 114 1995-10-19 15:30:00+00:00 2005-06-28 17:30:00+00:00
31 USGS-08467800 dissolved_oxygen 3 1998-01-21 17:40:00+00:00 1998-07-22 15:00:00+00:00
36 USGS-08469150 dissolved_oxygen 2 1986-06-24 19:30:00+00:00 1986-06-24 19:30:00+00:00
47 USGS-08470140 dissolved_oxygen 2 1986-06-24 22:15:00+00:00 1986-06-24 22:15:00+00:00
60 USGS-08470335 dissolved_oxygen 2 1986-06-26 18:45:00+00:00 1986-06-26 18:45:00+00:00
65 USGS-08470400 dissolved_oxygen 379 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
74 USGS-08470450 dissolved_oxygen 55 1986-06-25 13:30:00+00:00 2006-05-24 16:30:00+00:00
83 USGS-08470460 dissolved_oxygen 120 2006-02-22 14:55:00+00:00 2006-05-24 15:30:00+00:00
92 USGS-08470500 dissolved_oxygen 113 2006-02-22 16:48:00+00:00 2006-05-24 14:37:00+00:00
101 USGS-08470520 dissolved_oxygen 116 2006-02-22 17:16:00+00:00 2006-05-24 12:54:00+00:00
109 USGS-08470990 dissolved_oxygen 2 1986-06-25 19:20:00+00:00 1986-06-25 19:20:00+00:00
113 USGS-08471005 dissolved_oxygen 2 1986-06-27 12:15:00+00:00 1986-06-27 12:15:00+00:00
117 USGS-08471010 dissolved_oxygen 2 1986-06-26 20:15:00+00:00 1986-06-26 20:15:00+00:00
121 USGS-08471030 dissolved_oxygen 2 1986-06-27 13:15:00+00:00 1986-06-27 13:15:00+00:00
125 USGS-08471040 dissolved_oxygen 2 1986-06-27 19:05:00+00:00 1986-06-27 19:05:00+00:00
129 USGS-08471050 dissolved_oxygen 2 1986-06-27 18:15:00+00:00 1986-06-27 18:15:00+00:00
134 USGS-08474550 dissolved_oxygen 164 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
144 USGS-08475000 dissolved_oxygen 1375 1974-10-22 13:40:00+00:00 2026-06-16 15:00:00+00:00
153 USGS-255702097240600 dissolved_oxygen 160 1968-08-21 22:20:00+00:00 1975-06-03 17:07:00+00:00
161 USGS-255845097191800 dissolved_oxygen 114 1968-08-21 21:01:00+00:00 1975-06-03 16:44:00+00:00
166 USGS-255952097172400 dissolved_oxygen 199 1968-08-21 22:30:00+00:00 1982-03-29 14:10:00+00:00
173 USGS-260034097161000 dissolved_oxygen 12 1969-09-09 17:40:00+00:00 1969-09-09 17:45:00+00:00
178 USGS-260106097151000 dissolved_oxygen 163 1969-09-09 16:50:00+00:00 1978-06-27 14:05:00+00:00
185 USGS-260204097443701 dissolved_oxygen 7 2013-09-09 16:00:00+00:00 2013-09-09 16:02:00+00:00
193 USGS-260219097125000 dissolved_oxygen 66 1968-08-21 20:10:00+00:00 1974-04-23 14:40:00+00:00
201 USGS-260256097115100 dissolved_oxygen 94 1970-10-06 15:45:00+00:00 1975-06-03 14:49:00+00:00
208 USGS-260328097124300 dissolved_oxygen 90 1969-09-09 15:45:00+00:00 1975-06-03 15:32:00+00:00
213 USGS-260356097100000 dissolved_oxygen 121 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
220 USGS-260357097081000 dissolved_oxygen 34 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
226 USGS-260359097124300 dissolved_oxygen 86 1968-08-21 17:55:00+00:00 1975-06-03 15:08:00+00:00
234 USGS-260412097120600 dissolved_oxygen 81 1968-08-21 17:10:00+00:00 1975-06-03 15:17:00+00:00
242 USGS-260439097131000 dissolved_oxygen 100 1968-08-21 16:40:00+00:00 1982-03-29 15:15:00+00:00
249 USGS-260526097121000 dissolved_oxygen 84 1968-08-21 15:35:00+00:00 1982-03-29 14:50:00+00:00
257 USGS-260553097111200 dissolved_oxygen 74 1968-08-21 16:15:00+00:00 1982-03-29 15:10:00+00:00
266 USGS-261147097355700 dissolved_oxygen 96 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
275 USGS-261153097153400 dissolved_oxygen 167 1968-08-21 12:50:00+00:00 1982-03-29 15:45:00+00:00
283 USGS-261226097135700 dissolved_oxygen 96 1968-08-21 14:15:00+00:00 1982-03-29 15:50:00+00:00
290 USGS-261237097195001 dissolved_oxygen 2 1986-06-28 15:00:00+00:00 1986-06-28 15:00:00+00:00
295 USGS-261256097121800 dissolved_oxygen 73 1968-08-21 14:40:00+00:00 1982-03-29 15:55:00+00:00
302 USGS-261326097215801 dissolved_oxygen 2 1986-06-28 13:30:00+00:00 1986-06-28 13:30:00+00:00
306 USGS-261410097231201 dissolved_oxygen 2 1986-06-27 16:10:00+00:00 1986-06-27 16:10:00+00:00
311 USGS-261656097331700 dissolved_oxygen 116 1968-08-22 16:45:00+00:00 1975-06-03 20:33:00+00:00
320 USGS-261922097182800 dissolved_oxygen 164 1968-08-22 13:00:00+00:00 1982-03-29 16:25:00+00:00
328 USGS-261929097264500 dissolved_oxygen 234 1968-08-22 17:01:00+00:00 1982-03-29 16:55:00+00:00
336 USGS-262112097194401 dissolved_oxygen 2 1986-06-25 20:40:00+00:00 1986-06-25 20:40:00+00:00
340 USGS-262132097203100 dissolved_oxygen 99 1968-08-22 13:30:00+00:00 1975-06-03 19:22:00+00:00
349 USGS-262423097204400 dissolved_oxygen 182 1968-08-22 18:40:00+00:00 1982-03-29 17:25:00+00:00
356 USGS-263037097232800 dissolved_oxygen 74 1968-08-22 19:45:00+00:00 1975-06-03 20:22:00+00:00
364 USGS-263115097213100 dissolved_oxygen 4 1968-08-22 19:35:00+00:00 1968-08-22 19:36:00+00:00
376 USGS-263323097253400 dissolved_oxygen 86 1968-08-20 20:25:00+00:00 1975-06-03 22:28:00+00:00
2 USGS-08461200 dissolved_solids 6 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
11 USGS-08461300 dissolved_solids 1021 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
19 USGS-08464700 dissolved_solids 1016 1977-06-20 17:10:00+00:00 2000-09-12 13:35:00+00:00
26 USGS-08466300 dissolved_solids 714 1977-06-22 13:00:00+00:00 2000-09-19 16:45:00+00:00
32 USGS-08467800 dissolved_solids 568 1982-12-16 17:20:00+00:00 2000-09-19 15:10:00+00:00
41 USGS-08469200 dissolved_solids 928 1977-09-19 15:00:00+00:00 2000-09-19 15:30:00+00:00
55 USGS-08470300 dissolved_solids 2 NaT NaT
66 USGS-08470400 dissolved_solids 591 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
75 USGS-08470450 dissolved_solids 16 2006-02-22 23:00:00+00:00 2006-05-24 16:30:00+00:00
84 USGS-08470460 dissolved_solids 16 2006-02-22 22:00:00+00:00 2006-05-24 15:30:00+00:00
93 USGS-08470500 dissolved_solids 16 2006-02-22 21:00:00+00:00 2006-05-24 14:30:00+00:00
102 USGS-08470520 dissolved_solids 16 2006-02-22 19:30:00+00:00 2006-05-24 12:30:00+00:00
135 USGS-08474550 dissolved_solids 113 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
145 USGS-08475000 dissolved_solids 1667 1974-10-22 13:40:00+00:00 2026-04-14 15:00:00+00:00
154 USGS-255702097240600 dissolved_solids 18 1968-08-21 22:28:00+00:00 1975-06-03 17:07:00+00:00
186 USGS-260204097443701 dissolved_solids 3 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
194 USGS-260219097125000 dissolved_solids 2 1968-08-21 20:17:00+00:00 1968-08-21 20:17:00+00:00
235 USGS-260412097120600 dissolved_solids 2 1972-09-09 16:13:00+00:00 1972-09-09 16:13:00+00:00
250 USGS-260526097121000 dissolved_solids 2 1968-08-21 15:38:00+00:00 1968-08-21 15:38:00+00:00
258 USGS-260553097111200 dissolved_solids 6 1974-10-22 16:05:00+00:00 1975-06-03 16:55:00+00:00
267 USGS-261147097355700 dissolved_solids 24 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
276 USGS-261153097153400 dissolved_solids 16 1969-09-10 13:20:00+00:00 1977-06-21 17:55:00+00:00
312 USGS-261656097331700 dissolved_solids 2 1975-02-04 22:19:00+00:00 1975-02-04 22:19:00+00:00
329 USGS-261929097264500 dissolved_solids 14 1975-10-29 22:10:00+00:00 1978-06-27 15:35:00+00:00
341 USGS-262132097203100 dissolved_solids 4 1968-08-22 13:30:00+00:00 1969-03-10 16:55:00+00:00
357 USGS-263037097232800 dissolved_solids 5 1973-10-30 19:10:00+00:00 1974-04-23 21:23:00+00:00
368 USGS-263318099090800 dissolved_solids 84 1983-02-14 15:50:00+00:00 1995-04-19 18:00:00+00:00
372 USGS-263320099092900 dissolved_solids 38 1983-02-14 15:30:00+00:00 1994-04-28 18:20:00+00:00
377 USGS-263323097253400 dissolved_solids 2 1968-08-20 20:29:00+00:00 1968-08-20 20:29:00+00:00
384 USGS-263328099094300 dissolved_solids 60 1985-10-03 16:00:00+00:00 1993-04-20 19:15:00+00:00
388 USGS-263328099094401 dissolved_solids 82 1983-04-18 17:00:00+00:00 1993-04-20 19:00:00+00:00
3 USGS-08461200 nitrogen 9 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
12 USGS-08461300 nitrogen 769 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
20 USGS-08464700 nitrogen 75 1977-06-20 17:10:00+00:00 1977-08-15 16:45:00+00:00
42 USGS-08469200 nitrogen 80 1969-01-14 20:45:00+00:00 1969-08-24 21:30:00+00:00
56 USGS-08470300 nitrogen 4 1981-07-14 19:14:00+00:00 1981-07-14 19:14:00+00:00
67 USGS-08470400 nitrogen 2023 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
76 USGS-08470450 nitrogen 60 2006-02-22 23:00:00+00:00 2006-05-24 16:30:00+00:00
85 USGS-08470460 nitrogen 60 2006-02-22 22:00:00+00:00 2006-05-24 15:30:00+00:00
94 USGS-08470500 nitrogen 60 2006-02-22 21:00:00+00:00 2006-05-24 14:30:00+00:00
103 USGS-08470520 nitrogen 60 2006-02-22 19:30:00+00:00 2006-05-24 12:30:00+00:00
136 USGS-08474550 nitrogen 223 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
146 USGS-08475000 nitrogen 5730 1974-10-22 13:40:00+00:00 2026-04-14 15:00:00+00:00
155 USGS-255702097240600 nitrogen 105 1968-08-21 22:20:00+00:00 1975-06-03 17:07:00+00:00
167 USGS-255952097172400 nitrogen 171 1977-01-31 21:20:00+00:00 1982-03-29 14:10:00+00:00
179 USGS-260106097151000 nitrogen 114 1969-09-09 16:50:00+00:00 1978-06-27 14:05:00+00:00
187 USGS-260204097443701 nitrogen 11 2013-09-09 16:00:00+00:00 2013-09-09 16:02:00+00:00
195 USGS-260219097125000 nitrogen 8 1968-08-21 20:10:00+00:00 1968-08-21 20:17:00+00:00
202 USGS-260256097115100 nitrogen 39 1974-10-22 14:20:00+00:00 1975-06-03 14:49:00+00:00
214 USGS-260356097100000 nitrogen 72 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
221 USGS-260357097081000 nitrogen 90 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
227 USGS-260359097124300 nitrogen 8 1968-08-21 17:55:00+00:00 1968-08-21 17:59:00+00:00
236 USGS-260412097120600 nitrogen 55 1970-10-06 14:35:00+00:00 1975-06-03 15:17:00+00:00
243 USGS-260439097131000 nitrogen 47 1968-08-21 16:40:00+00:00 1975-06-03 16:31:00+00:00
251 USGS-260526097121000 nitrogen 8 1968-08-21 15:35:00+00:00 1968-08-21 15:38:00+00:00
259 USGS-260553097111200 nitrogen 26 1974-10-22 16:05:00+00:00 1975-06-03 16:55:00+00:00
268 USGS-261147097355700 nitrogen 91 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
277 USGS-261153097153400 nitrogen 155 1968-08-21 12:50:00+00:00 1982-03-29 15:40:00+00:00
284 USGS-261226097135700 nitrogen 39 1969-09-10 13:36:00+00:00 1979-10-10 17:55:00+00:00
296 USGS-261256097121800 nitrogen 60 1969-09-10 13:56:00+00:00 1978-06-27 14:50:00+00:00
313 USGS-261656097331700 nitrogen 8 1974-10-22 20:15:00+00:00 1975-02-04 22:19:00+00:00
321 USGS-261922097182800 nitrogen 91 1968-08-22 13:00:00+00:00 1976-08-25 16:32:00+00:00
330 USGS-261929097264500 nitrogen 316 1972-09-26 20:50:00+00:00 1982-03-29 16:55:00+00:00
342 USGS-262132097203100 nitrogen 20 1968-08-22 13:30:00+00:00 1970-10-07 17:18:00+00:00
350 USGS-262423097204400 nitrogen 154 1968-08-22 18:40:00+00:00 1982-03-29 17:20:00+00:00
358 USGS-263037097232800 nitrogen 29 1973-05-22 21:30:00+00:00 1974-04-23 21:23:00+00:00
378 USGS-263323097253400 nitrogen 55 1968-08-20 20:25:00+00:00 1975-06-03 22:28:00+00:00
4 USGS-08461200 pH 3 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
13 USGS-08461300 pH 588 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
21 USGS-08464700 pH 585 1977-06-20 17:10:00+00:00 2000-09-12 13:35:00+00:00
27 USGS-08466300 pH 442 1977-06-22 13:00:00+00:00 2000-09-19 16:45:00+00:00
33 USGS-08467800 pH 411 1982-12-16 17:20:00+00:00 2000-09-19 15:10:00+00:00
37 USGS-08469150 pH 1 1986-06-24 19:30:00+00:00 1986-06-24 19:30:00+00:00
43 USGS-08469200 pH 527 1969-01-14 20:45:00+00:00 2000-09-19 15:30:00+00:00
48 USGS-08470140 pH 1 1986-06-24 22:15:00+00:00 1986-06-24 22:15:00+00:00
57 USGS-08470300 pH 1 NaT NaT
61 USGS-08470335 pH 2 1986-06-26 18:45:00+00:00 1986-06-26 18:45:00+00:00
68 USGS-08470400 pH 295 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
77 USGS-08470450 pH 30 1986-06-25 13:30:00+00:00 2006-05-24 16:30:00+00:00
86 USGS-08470460 pH 75 2006-02-22 14:55:00+00:00 2006-05-24 15:30:00+00:00
95 USGS-08470500 pH 71 2006-02-22 16:48:00+00:00 2006-05-24 14:37:00+00:00
104 USGS-08470520 pH 76 2006-02-22 17:16:00+00:00 2006-05-24 12:54:00+00:00
110 USGS-08470990 pH 2 1986-06-25 19:20:00+00:00 1986-06-25 19:20:00+00:00
114 USGS-08471005 pH 2 1986-06-27 12:15:00+00:00 1986-06-27 12:15:00+00:00
118 USGS-08471010 pH 1 1986-06-26 20:15:00+00:00 1986-06-26 20:15:00+00:00
122 USGS-08471030 pH 2 1986-06-27 13:15:00+00:00 1986-06-27 13:15:00+00:00
126 USGS-08471040 pH 2 1986-06-27 19:05:00+00:00 1986-06-27 19:05:00+00:00
130 USGS-08471050 pH 1 1986-06-27 18:15:00+00:00 1986-06-27 18:15:00+00:00
137 USGS-08474550 pH 69 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
147 USGS-08475000 pH 791 1974-10-22 13:40:00+00:00 2026-06-16 15:00:00+00:00
156 USGS-255702097240600 pH 59 1968-08-21 22:20:00+00:00 1975-02-04 18:30:00+00:00
162 USGS-255845097191800 pH 58 1968-08-21 21:01:00+00:00 1975-02-04 18:10:00+00:00
168 USGS-255952097172400 pH 88 1968-08-21 22:30:00+00:00 1981-12-16 18:30:00+00:00
174 USGS-260034097161000 pH 6 1969-09-09 17:40:00+00:00 1969-09-09 17:45:00+00:00
180 USGS-260106097151000 pH 69 1969-09-09 16:50:00+00:00 1978-06-27 14:08:00+00:00
188 USGS-260204097443701 pH 2 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
196 USGS-260219097125000 pH 37 1968-08-21 20:10:00+00:00 1974-04-23 14:40:00+00:00
203 USGS-260256097115100 pH 39 1970-10-06 15:45:00+00:00 1975-02-04 14:57:00+00:00
209 USGS-260328097124300 pH 42 1969-09-09 15:45:00+00:00 1975-02-04 17:09:00+00:00
215 USGS-260356097100000 pH 54 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
222 USGS-260357097081000 pH 17 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
228 USGS-260359097124300 pH 38 1968-08-21 17:55:00+00:00 1975-02-04 16:38:00+00:00
237 USGS-260412097120600 pH 32 1968-08-21 17:10:00+00:00 1975-02-04 16:43:00+00:00
244 USGS-260439097131000 pH 46 1968-08-21 16:40:00+00:00 1982-03-29 15:15:00+00:00
252 USGS-260526097121000 pH 41 1968-08-21 15:35:00+00:00 1982-03-29 14:50:00+00:00
260 USGS-260553097111200 pH 35 1968-08-21 16:15:00+00:00 1982-03-29 15:10:00+00:00
269 USGS-261147097355700 pH 33 1968-08-22 15:30:00+00:00 1975-02-04 21:36:00+00:00
278 USGS-261153097153400 pH 71 1968-08-21 12:50:00+00:00 1982-03-29 15:45:00+00:00
285 USGS-261226097135700 pH 46 1968-08-21 14:15:00+00:00 1982-03-29 15:50:00+00:00
291 USGS-261237097195001 pH 2 1986-06-28 15:00:00+00:00 1986-06-28 15:00:00+00:00
297 USGS-261256097121800 pH 32 1968-08-21 14:40:00+00:00 1982-03-29 15:55:00+00:00
303 USGS-261326097215801 pH 2 1986-06-28 13:30:00+00:00 1986-06-28 13:30:00+00:00
307 USGS-261410097231201 pH 1 1986-06-27 16:10:00+00:00 1986-06-27 16:10:00+00:00
314 USGS-261656097331700 pH 53 1968-08-22 16:45:00+00:00 1975-02-04 22:19:00+00:00
322 USGS-261922097182800 pH 75 1968-08-22 13:00:00+00:00 1982-03-29 16:25:00+00:00
331 USGS-261929097264500 pH 89 1968-08-22 17:01:00+00:00 1982-03-29 16:55:00+00:00
337 USGS-262112097194401 pH 1 1986-06-25 20:40:00+00:00 1986-06-25 20:40:00+00:00
343 USGS-262132097203100 pH 40 1968-08-22 13:30:00+00:00 1975-06-03 19:22:00+00:00
351 USGS-262423097204400 pH 81 1968-08-22 18:40:00+00:00 1982-03-29 17:25:00+00:00
359 USGS-263037097232800 pH 34 1968-08-22 19:45:00+00:00 1975-06-03 20:22:00+00:00
365 USGS-263115097213100 pH 2 1968-08-22 19:35:00+00:00 1968-08-22 19:36:00+00:00
369 USGS-263318099090800 pH 86 1983-02-14 15:50:00+00:00 1995-04-19 18:00:00+00:00
373 USGS-263320099092900 pH 40 1983-02-14 15:30:00+00:00 1994-04-28 18:20:00+00:00
379 USGS-263323097253400 pH 34 1968-08-20 20:25:00+00:00 1975-06-03 21:32:00+00:00
385 USGS-263328099094300 pH 62 1985-10-03 16:00:00+00:00 1993-04-20 19:15:00+00:00
389 USGS-263328099094401 pH 84 1983-04-18 17:00:00+00:00 1993-04-20 19:00:00+00:00
5 USGS-08461200 phosphorus 3 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
14 USGS-08461300 phosphorus 217 1995-10-19 15:30:00+00:00 2005-06-28 17:30:00+00:00
44 USGS-08469200 phosphorus 2 1969-01-14 20:45:00+00:00 1969-08-24 21:30:00+00:00
50 USGS-08470142 phosphorus 12 2001-07-03 15:00:00+00:00 2001-07-03 16:00:00+00:00
69 USGS-08470400 phosphorus 660 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
78 USGS-08470450 phosphorus 28 2006-02-22 23:00:00+00:00 2006-05-24 16:30:00+00:00
87 USGS-08470460 phosphorus 28 2006-02-22 22:00:00+00:00 2006-05-24 15:30:00+00:00
96 USGS-08470500 phosphorus 28 2006-02-22 21:00:00+00:00 2006-05-24 14:30:00+00:00
105 USGS-08470520 phosphorus 28 2006-02-22 19:30:00+00:00 2006-05-24 12:30:00+00:00
138 USGS-08474550 phosphorus 86 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
148 USGS-08475000 phosphorus 1593 1974-10-22 13:40:00+00:00 2026-04-14 15:00:00+00:00
157 USGS-255702097240600 phosphorus 44 1968-08-21 22:20:00+00:00 1975-06-03 17:07:00+00:00
169 USGS-255952097172400 phosphorus 33 1977-01-31 21:20:00+00:00 1982-03-29 14:10:00+00:00
181 USGS-260106097151000 phosphorus 43 1969-09-09 16:50:00+00:00 1978-06-27 14:05:00+00:00
189 USGS-260204097443701 phosphorus 2 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
197 USGS-260219097125000 phosphorus 6 1968-08-21 20:10:00+00:00 1968-08-21 20:17:00+00:00
204 USGS-260256097115100 phosphorus 6 1974-10-22 14:20:00+00:00 1975-06-03 14:49:00+00:00
216 USGS-260356097100000 phosphorus 27 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
223 USGS-260357097081000 phosphorus 18 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
229 USGS-260359097124300 phosphorus 6 1968-08-21 17:55:00+00:00 1968-08-21 17:59:00+00:00
238 USGS-260412097120600 phosphorus 18 1970-10-06 14:35:00+00:00 1975-06-03 15:17:00+00:00
245 USGS-260439097131000 phosphorus 12 1968-08-21 16:40:00+00:00 1975-06-03 16:31:00+00:00
253 USGS-260526097121000 phosphorus 6 1968-08-21 15:35:00+00:00 1968-08-21 15:38:00+00:00
261 USGS-260553097111200 phosphorus 4 1974-10-22 16:05:00+00:00 1975-06-03 16:55:00+00:00
270 USGS-261147097355700 phosphorus 43 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
279 USGS-261153097153400 phosphorus 56 1968-08-21 12:50:00+00:00 1982-03-29 15:40:00+00:00
286 USGS-261226097135700 phosphorus 14 1969-09-10 13:36:00+00:00 1979-10-10 17:55:00+00:00
298 USGS-261256097121800 phosphorus 16 1969-09-10 13:56:00+00:00 1978-06-27 14:50:00+00:00
315 USGS-261656097331700 phosphorus 2 1974-10-22 20:15:00+00:00 1975-02-04 22:19:00+00:00
323 USGS-261922097182800 phosphorus 18 1968-08-22 13:00:00+00:00 1976-08-25 16:32:00+00:00
332 USGS-261929097264500 phosphorus 69 1972-09-26 20:50:00+00:00 1982-03-29 16:55:00+00:00
344 USGS-262132097203100 phosphorus 15 1968-08-22 13:30:00+00:00 1970-10-07 17:18:00+00:00
352 USGS-262423097204400 phosphorus 35 1968-08-22 18:40:00+00:00 1982-03-29 17:20:00+00:00
360 USGS-263037097232800 phosphorus 14 1973-05-22 21:30:00+00:00 1974-04-23 21:23:00+00:00
380 USGS-263323097253400 phosphorus 22 1968-08-20 20:25:00+00:00 1975-06-03 22:28:00+00:00
6 USGS-08461200 temperature 3 1977-02-08 15:35:00+00:00 1977-10-04 15:20:00+00:00
15 USGS-08461300 temperature 277 1977-06-20 16:30:00+00:00 2005-06-28 17:30:00+00:00
22 USGS-08464700 temperature 274 1977-06-20 17:10:00+00:00 2000-09-12 13:35:00+00:00
28 USGS-08466300 temperature 239 1977-06-22 13:00:00+00:00 2000-09-19 16:45:00+00:00
34 USGS-08467800 temperature 203 1982-12-16 17:20:00+00:00 2000-09-19 15:10:00+00:00
38 USGS-08469150 temperature 1 1986-06-24 19:30:00+00:00 1986-06-24 19:30:00+00:00
45 USGS-08469200 temperature 263 1969-01-14 20:45:00+00:00 2000-09-19 15:30:00+00:00
49 USGS-08470140 temperature 1 1986-06-24 22:15:00+00:00 1986-06-24 22:15:00+00:00
52 USGS-08470200 temperature 15 1973-05-01 21:45:00+00:00 1983-02-27 17:00:00+00:00
58 USGS-08470300 temperature 67 1967-09-26 20:00:00+00:00 1981-07-14 19:14:00+00:00
62 USGS-08470335 temperature 1 1986-06-26 18:45:00+00:00 1986-06-26 18:45:00+00:00
70 USGS-08470400 temperature 148 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
79 USGS-08470450 temperature 38 1986-06-25 13:30:00+00:00 2006-05-24 16:30:00+00:00
88 USGS-08470460 temperature 83 2006-02-22 14:55:00+00:00 2006-05-24 15:30:00+00:00
97 USGS-08470500 temperature 79 2006-02-22 16:48:00+00:00 2006-05-24 14:37:00+00:00
106 USGS-08470520 temperature 84 2006-02-22 17:16:00+00:00 2006-05-24 12:54:00+00:00
111 USGS-08470990 temperature 1 1986-06-25 19:20:00+00:00 1986-06-25 19:20:00+00:00
115 USGS-08471005 temperature 1 1986-06-27 12:15:00+00:00 1986-06-27 12:15:00+00:00
119 USGS-08471010 temperature 1 1986-06-26 20:15:00+00:00 1986-06-26 20:15:00+00:00
123 USGS-08471030 temperature 1 1986-06-27 13:15:00+00:00 1986-06-27 13:15:00+00:00
127 USGS-08471040 temperature 1 1986-06-27 19:05:00+00:00 1986-06-27 19:05:00+00:00
131 USGS-08471050 temperature 1 1986-06-27 18:15:00+00:00 1986-06-27 18:15:00+00:00
139 USGS-08474550 temperature 55 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
149 USGS-08475000 temperature 638 1966-02-15 20:00:00+00:00 2026-06-16 15:00:00+00:00
158 USGS-255702097240600 temperature 67 1968-08-21 22:20:00+00:00 1975-06-03 17:07:00+00:00
163 USGS-255845097191800 temperature 63 1968-08-21 21:01:00+00:00 1975-06-03 16:44:00+00:00
170 USGS-255952097172400 temperature 96 1968-08-21 22:30:00+00:00 1981-12-16 18:30:00+00:00
175 USGS-260034097161000 temperature 6 1969-09-09 17:40:00+00:00 1969-09-09 17:45:00+00:00
182 USGS-260106097151000 temperature 76 1969-09-09 16:50:00+00:00 1978-06-27 14:08:00+00:00
190 USGS-260204097443701 temperature 2 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
198 USGS-260219097125000 temperature 37 1968-08-21 20:10:00+00:00 1974-04-23 14:40:00+00:00
205 USGS-260256097115100 temperature 44 1970-10-06 15:45:00+00:00 1975-06-03 14:49:00+00:00
210 USGS-260328097124300 temperature 45 1969-09-09 15:45:00+00:00 1975-06-03 15:32:00+00:00
217 USGS-260356097100000 temperature 54 1968-08-21 19:35:00+00:00 1976-08-25 13:59:00+00:00
224 USGS-260357097081000 temperature 17 1977-06-21 15:40:00+00:00 1981-03-25 15:54:00+00:00
230 USGS-260359097124300 temperature 42 1968-08-21 17:55:00+00:00 1975-06-03 15:08:00+00:00
239 USGS-260412097120600 temperature 35 1968-08-21 17:10:00+00:00 1975-06-03 15:17:00+00:00
246 USGS-260439097131000 temperature 46 1968-08-21 16:40:00+00:00 1982-03-29 15:15:00+00:00
254 USGS-260526097121000 temperature 41 1968-08-21 15:35:00+00:00 1982-03-29 14:50:00+00:00
262 USGS-260553097111200 temperature 35 1968-08-21 16:15:00+00:00 1982-03-29 15:10:00+00:00
271 USGS-261147097355700 temperature 35 1968-08-22 15:30:00+00:00 1975-06-03 20:01:00+00:00
280 USGS-261153097153400 temperature 71 1968-08-21 12:50:00+00:00 1982-03-29 15:45:00+00:00
287 USGS-261226097135700 temperature 46 1968-08-21 14:15:00+00:00 1982-03-29 15:50:00+00:00
292 USGS-261237097195001 temperature 1 1986-06-28 15:00:00+00:00 1986-06-28 15:00:00+00:00
299 USGS-261256097121800 temperature 32 1968-08-21 14:40:00+00:00 1982-03-29 15:55:00+00:00
304 USGS-261326097215801 temperature 1 1986-06-28 13:30:00+00:00 1986-06-28 13:30:00+00:00
308 USGS-261410097231201 temperature 1 1986-06-27 16:10:00+00:00 1986-06-27 16:10:00+00:00
316 USGS-261656097331700 temperature 57 1968-08-22 16:45:00+00:00 1975-06-03 20:33:00+00:00
324 USGS-261922097182800 temperature 75 1968-08-22 13:00:00+00:00 1982-03-29 16:25:00+00:00
333 USGS-261929097264500 temperature 97 1968-08-22 17:01:00+00:00 1982-03-29 16:55:00+00:00
338 USGS-262112097194401 temperature 1 1986-06-25 20:40:00+00:00 1986-06-25 20:40:00+00:00
345 USGS-262132097203100 temperature 46 1968-08-22 13:30:00+00:00 1975-06-03 19:22:00+00:00
353 USGS-262423097204400 temperature 85 1968-08-22 18:40:00+00:00 1982-03-29 17:25:00+00:00
361 USGS-263037097232800 temperature 34 1968-08-22 19:45:00+00:00 1975-06-03 20:22:00+00:00
366 USGS-263115097213100 temperature 2 1968-08-22 19:35:00+00:00 1968-08-22 19:36:00+00:00
370 USGS-263318099090800 temperature 42 1983-02-14 15:50:00+00:00 1995-04-19 18:00:00+00:00
374 USGS-263320099092900 temperature 19 1983-02-14 15:30:00+00:00 1994-04-28 18:20:00+00:00
381 USGS-263323097253400 temperature 38 1968-08-20 20:25:00+00:00 1975-06-03 22:28:00+00:00
386 USGS-263328099094300 temperature 28 1985-10-03 16:00:00+00:00 1993-04-20 19:15:00+00:00
390 USGS-263328099094401 temperature 39 1983-04-18 17:00:00+00:00 1993-04-20 19:00:00+00:00
16 USGS-08461300 turbidity 50 1995-10-19 15:30:00+00:00 2005-06-28 17:30:00+00:00
71 USGS-08470400 turbidity 151 1986-11-20 22:59:00+00:00 2007-09-10 18:30:00+00:00
80 USGS-08470450 turbidity 26 2006-02-22 16:01:00+00:00 2006-05-24 16:30:00+00:00
89 USGS-08470460 turbidity 60 2006-02-22 14:55:00+00:00 2006-05-24 15:30:00+00:00
98 USGS-08470500 turbidity 56 2006-02-22 16:55:00+00:00 2006-05-24 14:37:00+00:00
107 USGS-08470520 turbidity 67 2006-02-22 17:16:00+00:00 2006-05-24 12:54:00+00:00
140 USGS-08474550 turbidity 54 1977-05-10 15:05:00+00:00 1981-12-02 16:06:00+00:00
150 USGS-08475000 turbidity 473 1974-10-22 13:40:00+00:00 2026-06-16 15:00:00+00:00
159 USGS-255702097240600 turbidity 16 1974-04-23 16:05:00+00:00 1975-02-04 18:30:00+00:00
164 USGS-255845097191800 turbidity 17 1974-04-23 15:45:00+00:00 1975-02-04 18:10:00+00:00
171 USGS-255952097172400 turbidity 17 1974-04-23 15:15:00+00:00 1975-02-04 19:00:00+00:00
183 USGS-260106097151000 turbidity 29 1974-04-23 15:50:00+00:00 1976-02-10 14:23:00+00:00
191 USGS-260204097443701 turbidity 1 2013-09-09 16:00:00+00:00 2013-09-09 16:00:00+00:00
199 USGS-260219097125000 turbidity 6 1974-04-23 14:35:00+00:00 1974-04-23 14:40:00+00:00
206 USGS-260256097115100 turbidity 18 1972-09-26 15:20:00+00:00 1975-02-04 14:55:00+00:00
211 USGS-260328097124300 turbidity 18 1972-09-26 15:40:00+00:00 1975-02-04 17:09:00+00:00
218 USGS-260356097100000 turbidity 28 1972-09-26 14:55:00+00:00 1976-02-10 14:38:00+00:00
231 USGS-260359097124300 turbidity 16 1972-09-26 16:00:00+00:00 1975-02-04 16:38:00+00:00
240 USGS-260412097120600 turbidity 13 1972-09-26 15:50:00+00:00 1975-02-04 16:43:00+00:00
247 USGS-260439097131000 turbidity 16 1972-09-26 16:35:00+00:00 1975-06-03 16:31:00+00:00
255 USGS-260526097121000 turbidity 1 1973-05-22 16:40:00+00:00 1973-05-22 16:40:00+00:00
263 USGS-260553097111200 turbidity 8 1972-09-26 16:50:00+00:00 1975-06-03 16:55:00+00:00
272 USGS-261147097355700 turbidity 6 1974-04-23 18:50:00+00:00 1975-02-04 21:36:00+00:00
281 USGS-261153097153400 turbidity 25 1972-09-26 17:30:00+00:00 1976-02-10 16:37:00+00:00
288 USGS-261226097135700 turbidity 16 1973-05-22 17:40:00+00:00 1976-02-10 16:56:00+00:00
300 USGS-261256097121800 turbidity 11 1973-05-22 18:00:00+00:00 1975-10-29 20:05:00+00:00
317 USGS-261656097331700 turbidity 15 1974-04-23 19:15:00+00:00 1975-02-04 22:19:00+00:00
325 USGS-261922097182800 turbidity 29 1972-09-26 18:20:00+00:00 1976-02-10 17:27:00+00:00
334 USGS-261929097264500 turbidity 22 1974-04-23 19:50:00+00:00 1976-02-10 18:18:00+00:00
346 USGS-262132097203100 turbidity 20 1972-09-26 18:40:00+00:00 1975-06-03 19:22:00+00:00
354 USGS-262423097204400 turbidity 20 1974-04-23 20:50:00+00:00 1976-02-10 19:53:00+00:00
362 USGS-263037097232800 turbidity 22 1972-09-26 22:50:00+00:00 1975-06-03 20:22:00+00:00
382 USGS-263323097253400 turbidity 15 1973-05-23 12:30:00+00:00 1975-06-03 21:32:00+00:00
Show code
show(coverage(field, "datetime"))
monitoring_location_id priority_group n start end
0 USGS-08470500 discharge 1 2005-04-26 18:00:00+00:00 2005-04-26 18:00:00+00:00
2 USGS-08471000 discharge 1 2005-04-28 14:00:00+00:00 2005-04-28 14:00:00+00:00
3 USGS-08474095 discharge 21 2022-04-27 15:41:45+00:00 2026-06-16 18:35:56+00:00
5 USGS-08474107 discharge 20 2022-04-27 14:19:24+00:00 2026-06-16 17:22:48+00:00
7 USGS-08474108 discharge 20 2022-07-26 18:02:55+00:00 2026-06-17 18:52:50+00:00
9 USGS-08474110 discharge 22 2022-01-25 19:21:32+00:00 2026-06-17 17:23:06+00:00
11 USGS-08474115 discharge 11 2022-07-12 18:45:46+00:00 2025-04-23 22:30:00+00:00
13 USGS-08474118 discharge 19 2022-01-25 21:34:29+00:00 2026-06-16 15:54:42+00:00
15 USGS-08474300 discharge 21 2022-01-26 15:25:54+00:00 2026-06-17 15:18:19+00:00
18 USGS-08474395 discharge 80 2023-08-28 19:02:00+00:00 2026-04-15 18:28:01+00:00
1 USGS-08470500 water_level 1 2005-04-26 18:00:00+00:00 2005-04-26 18:00:00+00:00
4 USGS-08474095 water_level 21 2022-04-27 15:41:45+00:00 2026-06-16 18:35:56+00:00
6 USGS-08474107 water_level 20 2022-04-27 14:19:24+00:00 2026-06-16 17:22:48+00:00
8 USGS-08474108 water_level 51 2022-07-26 17:48:00+00:00 2026-06-17 19:05:00+00:00
10 USGS-08474110 water_level 64 2022-01-25 19:00:00+00:00 2026-06-17 17:45:00+00:00
12 USGS-08474115 water_level 41 2022-07-12 18:32:00+00:00 2026-06-17 13:25:00+00:00
14 USGS-08474118 water_level 56 2022-01-25 21:22:00+00:00 2026-06-16 16:06:00+00:00
16 USGS-08474300 water_level 67 2022-01-26 14:51:00+00:00 2026-06-17 15:33:00+00:00
17 USGS-08474320 water_level 11 2022-11-09 16:55:00+00:00 2026-06-17 14:00:00+00:00
19 USGS-08474395 water_level 80 2023-08-28 19:02:00+00:00 2026-04-15 18:28:01+00:00
Show code
# Daily-value availability: record count per station per year.
daily_year = daily.assign(year=pd.to_datetime(daily["date"]).dt.year)
availability = daily_year.groupby(["monitoring_location_id", "year"]).size().reset_index(name="records")
availability.hvplot.heatmap(
    x="year", y="monitoring_location_id", C="records", cmap="blues",
    title="Daily-value record availability (count per station-year)", colorbar=True, rot=45,
)
Show code
# Illustrative series: daily discharge at the station with the most discharge records.
discharge = daily[daily["priority_group"] == "discharge"].copy()
if discharge.empty:
    sample_series = None
    print("No discharge records found — skipping sample series.")
else:
    gauge = discharge.groupby("monitoring_location_id").size().idxmax()
    series = discharge[discharge["monitoring_location_id"] == gauge].assign(
        value=lambda d: pd.to_numeric(d["value"], errors="coerce")
    )
    sample_series = series.hvplot.line(
        x="date", y="value", title=f"Daily mean discharge — {gauge}", ylabel="ft³/s", xlabel="",
    )
sample_series

Step 8 — Export to Excel

Compiles all six saved tables into a single downloadable workbook — one sheet each, frozen header row + first column, with autofilter enabled on the header. usgs_monitoring_locations (the pre-classification station table) is reconstructed by dropping the columns Step 3 added, since by this point only the enriched station table still exists in memory — this works the same whether the station data came from a fresh fetch or the cache above. save_workbook strips timezone info from any tz-aware datetime column (e.g. samples/field’s UTC datetime, as returned by the USGS Water Data API) before writing, since Excel has no timezone-aware datetime type — the saved parquet/CSV keep the original tz-aware values.

Show code
station_enrichment_columns = [*DATA_TYPES, *PRIORITY_NAMES, "parameters"]
stations_basic = stations_in_area.drop(columns=station_enrichment_columns)

save_workbook(
    {
        "usgs_monitoring_locations": stations_basic,
        "usgs_monitoring_locations_parameters": stations_in_area,
        "usgs_daily_values": daily,
        "usgs_field_measurements": field,
        "usgs_samples": samples,
        "usgs_trends": usgs_trends,
    },
    S.data_dir / "usgs_waterdata" / "usgs_waterdata.xlsx",
)
saved 6 sheet(s) → data/usgs_waterdata/usgs_waterdata.xlsx
Back to top