DHI.Services.USGS for Time Series — Internal Developer Guide (Summary)¶
USGS is a read-only Time Series provider for Daily Values (DV). Full details live here: DHI.Services.USGS — Provider Guide.
When to use¶
- You need observed hydrologic DV data (e.g., discharge, stage, temp) from USGS.
- You want the data in the DHI TimeSeries model, with qualifiers and EUM metadata.
Quick start¶
using DHI.Services.Provider.USGS;
var repo = new TimeSeriesRepository(
"https://waterservices.usgs.gov/nwis/dv/?startDT=2024-01-01&endDT=2024-12-31");
var id = "USGS:11458000:00060:00003";
var tsMaybe = repo.Get(id);
if (!tsMaybe.HasValue) return;
var ts = (UsgsTimeSeries)tsMaybe.Value;
var data = ts.Data; // ITimeSeriesData<double>
var flags = ts.DataWFlag.Flags; // USGS qualifiers
ID format
{AgencyCode}:{SiteNumber}:{ParameterCode}:{StatisticsCode}
Example: USGS:01100000:00060:00003
Notes
- Optional default date window comes from the repository base URL (
startDT/endDT). - Values include qualifiers; human-readable qualifier texts are in metadata.
- EUM fields (
Quantity,Unit,DataType,Dimension) are auto-mapped; convert numeric values withUsgsToEumonly if you need them in EUM units.
Exposing via Web API¶
Add a connection like:
{
"$type": "DHI.Services.TimeSeries.WebApi.TimeSeriesServiceConnection, DHI.Services.TimeSeries.WebApi",
"ConnectionString": "https://waterservices.usgs.gov/nwis/dv/?startDT=2024-01-01&endDT=2024-12-31",
"RepositoryType": "DHI.Services.Provider.USGS.TimeSeriesRepository, DHI.Services.Provider.USGS",
"Name": "USGS Daily Values",
"Id": "usgs-dv"
}
Then call (URL-encode :):
GET /api/timeseries/usgs-dv/USGS%3A11458000%3A00060%3A00003/values
Need details?¶
- ID validation rules, metadata keys, EUM mapping, conversion helpers, custom query building, and troubleshooting are all in the USGS Provider Guide.