Introduction
API Endpoint
https://waterdatafortexas.org/coastal/api
A RESTful API is provided to access the data in this site. By default, responses are returned as JSON. Some routes do provide comma separated value (CSV) output as well. Tools such as curl and wget can be used to accesss the data, as well as direct calls in the browser.
In Situ Monitoring
- Get data from autonomous continuous monitoring at fixed stations.
Get Sites
Example
curl -g -L "https://waterdatafortexas.org/coastal/api/stations?bbox=[[-97.56,27.60],[-97.14,27.90]]"
import requests payload = {"bbox": [[-97.56,27.60],[-97.14,27.90]]} r = requests.get("https://waterdatafortexas.org/coastal/api/stations", params=payload) data = r.json()
Example Response
[ { "name": null, "estuary": "Colorado-Lavaca Estuary", "bay": "Matagorda Bay", "station_code": "6977", "agency": { "abbreviation": "LCRA", "id": 4, "name": "Lower Colorado River Authority"}, "id": 134, "coordinates": [-95.998506, 28.640239], "description": "Matagorda 4SSW" }, { "name": null, "estuary": "Colorado-Lavaca Estuary", "bay": "East Matagorda Bay", "station_code": "6980", "agency": { "abbreviation": "LCRA", "id": 4, "name": "Lower Colorado River Authority"}, "id": 136, "coordinates": [-95.933, 28.672], "description": "East Bay @ Tripod" }, .... { "name": "Upper Sabine Lake", "estuary": "Sabine-Neches Estuary", "bay": "Sabine Lake", "station_code": "USAB", "agency": { "abbreviation": "TWDB", "id": 6, "name": "Texas Water Development Board"}, "id": 2, "coordinates": [-93.82861111, 29.94444444], "description": "Upper Sabine Lake at Platform A" } ]
-
List all the stations, by default, for which we have actual data. If the
query parameer
all=true
is used, then return all stations regardless. Users can also filter by a rectangular bounding box with the bbox query parameter.
Resource URL
-
https://waterdatafortexas.org/coastal/api/stations
Request Parameters
name | type | format | Description |
---|---|---|---|
bbox | array | [[min_lon, min_lat], [max_lon, max_lat]] | bounding box |
all_stations | boolean | true or false | get stations regardless of data availability |
Get Site Parameters
Example
curl -L "https://waterdatafortexas.org/coastal/api/stations/6990/parameters"
import requests r = requests.get("https://waterdatafortexas.org/coastal/api/stations/6990/parameters") data = r.json()
Example Response
[ { "units_name": "Practical Salinity Unit", "description": null, "abbreviation": "Salinity", "code": "seawater_salinity", "units_abbreviation": "PSU", "id": 3, "name": "Salinity" }, { "units_name": "Milligrams Per Liter", "description": null, "abbreviation": "Dissolved Oxygen Concentration", "code": "water_dissolved_oxygen_concentration", "units_abbreviation": "mg/L", "id": 18, "name": "Dissolved Oxygen Concentration" }, { "units_name": "Degrees Celsius", "description": null, "abbreviation": "Water Temperature", "code": "water_temperature", "units_abbreviation": "degC", "id": 21, "name": "Water Temperature" }, ]
- Return a list of all the parameters for which there is data associated with a station
Resource URL
-
https://waterdatafortexas.org/coastal/api/stations/{station_code}/parameters
Request Parameters
- None
Get Site Parameter Data
Example
curl -L "https://waterdatafortexas.org/coastal/api/stations/MIDG/data/seawater_salinity?start_date=2010-01-01&end_date=2010-12-31&binning=hour"
import requests payload = {"start_date": "2010-01-01", "end_date": "2010-12-31", "binning": "hour"} r = requests.get("https://waterdatafortexas.org/coastal/api/stations/MIDG/data/seawater_salinity", params=payload) data = r.json()
Example Response
[ { "value":17.911, "datetime_utc":"2010-01-01T06:00:00.000Z" }, { "value":17.567, "datetime_utc":"2010-01-01T07:00:00.000Z" }, ..... { "value":26.958, "datetime_utc":"2010-12-31T04:00:00.000Z" }, { "value":27.058, "datetime_utc":"2010-12-31T05:00:00.000Z" } ]
-
Returns the timeseries of observations for a station/parameter pair. CSV output
if the
output_format=csv
query parameter is set. Filtering bystart_date
andend_date
is also allowed.
Resource URL
-
https://waterdatafortexas.org/coastal/api/stations/{station_code}/data/{parameter_code}
Request Parameters
name | type | format | Description |
---|---|---|---|
start_date | string | YYYY-MM-DD | get data after this date |
end_date | string | YYYY-MM-DD | get data before this date |
binning | string | mon/day(default)/hour | data averaging period |
output_format | string | csv or json | specify output format |
Point Measurements
- API for Texas Parks and Wildlife Coastal Fisheries spot measurement datasets.
Get Parameter Data
Example
curl -L "https://waterdatafortexas.org/coastal/api/point-measurements/water_dissolved_oxygen_concentration?start_date=2014-01-01&end_date=2014-01-31&geo_id=374"
import requests payload = {"start_date": "2014-01-01", "end_date":"2014-01-30", "geo_id": 374} r = requests.get("https://waterdatafortexas.org/coastal/api/point-measurements/dissolved_oxygen_concentration", params=payload) data = r.json()
Example Response
[ { "datetime_utc": "2014-01-07T16:18:00+00:00", "parameter_code": "water_dissolved_oxygen_concentration", "coordinates": [-94.9158333333, 29.4797222222], "value": 20.6 }, { "datetime_utc": "2014-01-07T16:35:00+00:00", "parameter_code": "water_dissolved_oxygen_concentration", "coordinates": [-94.9213888889, 29.4727777778], "value": 9.4 }, .... { "datetime_utc": "2014-01-30T18:20:00+00:00", "parameter_code": "water_dissolved_oxygen_concentration", "coordinates": [-95.1633333333, 29.09], "value": 9.9 }, { "datetime_utc": "2014-01-30T18:49:00+00:00", "parameter_code": "water_dissolved_oxygen_concentration", "coordinates": [-95.1744444444, 29.085], "value": 10.2 } ]
-
Returns a timeseries of all point measurements for the requested parameter.
Either a
date
,start_date
andend_date
, orbbox
must be specified. A maximum of 31 days of data are allowed per request when specifyingstart_date
andend_date
.
Resource URL
-
https://waterdatafortexas.org/coastal/api/point_measurements/{parameter_code}
Request Parameters
name | type | format | Description |
---|---|---|---|
bbox | array | [[min_lon, min_lat], [max_lon, max_lat]] | bounding box to get data points within |
start_date | string | YYYY-MM-DD | get data after this date |
end_date | string | YYYY-MM-DD | get data before this date |
geo_id | integer | 12 |
geo_id
of estuary to get data points within
|
output_format | string | csv or json (default) | specify output format |
Get Summary Statistics
Example
curl -L https://waterdatafortexas.org/coastal/api/point-measurements/water_temperature/summary-statistics?geo_id=369
import requests payload = {"geo_id": 369} r = requests.get("https://waterdatafortexas.org/coastal/api/point-measurements/water_temperature/summary-statistics", params=payload) data = r.json()
Example Response
[ { "count": 4, "mean": 22.25, "mon": 10.0, "year": 1976.0 }, { "count": 4, "mean": 16.5, "mon": 11.0, "year": 1976.0 }, .... { "count": 69, "mean": 15.8, "mon": 11.0, "year": 2014.0 }, { "count": 64, "mean": 17.4, "mon": 12.0, "year": 2014.0 } ]
- Returns monthly median values of spatially aggregated point measurement data.
Resource URL
-
/api/point-measurements/{parameter_code}/summary-statistics
Request Parameters
name | type | format | Description |
---|---|---|---|
bbox | array | [[min_lon, min_lat], [max_lon, max_lat]] | bounding box to filter data points within |
geo_id | integer | 12 |
geo_id
of estuary to filter data points within
|
Coastal Hydrology
- API for Texas Water Development Board's historical bays and estuaries freshwater inflow data.
Example
curl -L "https://waterdatafortexas.org/coastal/api/hydrology/700/timeseries?resample=month"
import requests payload = {"resample": "month"} r = requests.get("https://waterdatafortexas.org/coastal/api/hydrology/700/timeseries", params=payload) data = r.json()
Example Response
[ { "date":"1941-01-01T00:00:00.000Z", "gauge":3525880.0, "model":133731.0, "preersion":3000.0, "return":12000.0, "fresh_in":3668611.0 }, { "date":"1941-02-01T00:00:00.000Z", "gauge":1567360.0, "model":69357.0, "preersion":3000.0, "return":11000.0, "fresh_in":1644717.0 }, .... { "date":"2014-12-01T00:00:00.000Z", "gauge":343264.0, "model":173239.0, "preersion":10691.74999999, "return":129595.03023003, "fresh_in":635406.28022908 } ]
- Returns historical freshwater inflow data for a watershed or subwatershed. By default, the API returns freshwater inflow components in daily interval. A resample query parameter can be specified to get monthly or yearly summed values. Default data format is JSON and CSV format can be specified using the output_format parameter.
Resource URL
-
https://waterdatafortexas.org/coastal/api/hydrology/{geo_id}/timeseries
Request Parameters
name | type | format | Description |
---|---|---|---|
output_format | string | csv or json (default) | specify output format |
resample | string | month or year | specify period to calculate sums |
GIS Data
Example
curl -L "https://waterdatafortexas.org/coastal/api/geometries/watershed"
import requests r = requests.get("https://waterdatafortexas.org/coastal/api/geometries/watershed") data = r.json()
Example Response
{ "type": "FeatureCollection", "features": [ { "name": "Sabine-Neches Estuary", "geometry": { "type": "MultiPolygon", "coordinates": [[[[-94.10138, 30.13913], [-94.10284, 30.13834],... [-94.10445, 30.13787], [-94.10661, 30.13779]]]] }, "extradata": { "Acres": 71971.08675, "Area_m": 291256654.653, "MJRBY": "Sabine-Neches Estuary", "MJRcd": "1", "Hectares": 29125.6654653 } "type": "Feature", "id": 368 }, ... { "name": "Colorado-Lavaca Estuary", "geometry": { "type": "MultiPolygon", "coordinates": [[[[-95.79419, 28.82235], ...., [-95.7928, 28.82099], [-95.79214, 28.8205], [-95.7911, 28.82012]]]] }, "extradata": { "Acres": 285268.29345, "Area_m": 1154439825.45, "MJRBY": "Colorado-Lavaca Estuary", "MJRcd": "3", "Hectares": 115443.982545 }, "id": 369, "type": "Feature" } ] }
-
API to get various geographic boundaries in GeoJSON format. Available GIS datasets include:
- Basins
- Bays
- Estuaries
- Ungauged Subwatersheds
- Ungauged Watersheds
Resource URL
-
https://waterdatafortexas.org/coastal/api/geometries/{geometry_type}
Request Parameters
- None