NMWDI GWL Specification v0.0

Goals:

  1. Develop a list of required thing and location properties for groundwater wells in SensorThings

  2. Standardize style rules for SensorThings properties. Some potential rules:

    1. All lower case

    2. underscores between words

    3. spell out full words for clarity

    4. use nested properties instead of name qualifiers ( new addition by @Jake Ross see https://nmwaterdata.atlassian.net/wiki/pages/resumedraft.action?draftId=1614381069 )

Style Guide

see https://nmwaterdata.atlassian.net/wiki/spaces/TWG/pages/1614741505/NMWDI+Specification+Governance+model#Style-Guide

 

Agency Property Examples

New Mexico Bureau of Geology

 

City of Albuquerque

 

SensorThings Entity 

Proposed SensorThings

Field Name

SensorThings Namespace

Required?

What properties cannot have null values?

Data Type

A character string or numerical value?

Examples

Field Description

Valid Values

Locations

https://github.com/NMWDI/VocabService/blob/main/schemas/v0/locations.json

name

Location

yes

str

NM-12345

aka site_id, PointID, etc

 

description

Location

yes

str

Location of a groundwater well where measurements are made.

Human readable description of the location

 

longitude

Location.location.coordinates

yes

float

-104.41497

Longitude in decimal degrees in accordance with GeoJSON format using a geographic coordinate reference system, World Geodetic System 1984, and units of decimal degrees

-180,180

latitude

Location.location.coordinates

yes

float

33.2570077

Latitude in decimal degrees in accordance with GeoJSON format using a geographic coordinate reference system, World Geodetic System 1984, and units of decimal degrees

-90,90

elevation

Location.location.coordinates

no

float

30.01

GeoJSON spec as height in meters above, below wgs ellipsoid

-inf, inf

agency

Location.properties

yes

str

NMBGMR, OSE

The agency responsible for uploading this data

nmbgmr, nmose, nmenv, nmemrd, cabq, ebid

location_source

Location.properties

yes

str

address location, map interpolation, gps, PLSS, survey

how the location was derived. May also include include details about land surface vs. measuring point

address, map_interpolation, gps, plss, survey, unknown

collection_agency

Location.properties

no

str

NMBGMR, OSE, etc.

The agency that is collecting data

nmbgmr, nmose, nmenv, nmemrd, cabq, ebid

same_as

Location.properties

no

array[json{str,str,str}]

 

ID used by another agency or organization

 

.id

Location.properties.same_as

yes

str

 

 

 

.agency

Location.properties.same_as

yes

str

 

 

 

.url

Location.properties.same_as

no

str

 

 

url_regex

elevation

Location.properties

no

json{float,str,str}

 

Elevation of the land surface. Note: Also distinguish the height of the measuring point (relative to the elevation) within the well “thing” description. FYI, agencies differ in their default for land surface (e.g., USGS uses reference survey points) vs. well casing (e.g., ABQ).

 

.accuracy

location.properties.elevation

yes

float

 

accuracy of elevation in m (NM State plane values are in decimal feet values) - latter is used often by contractors for ABQ whereas NMBG doesn’t use state plane; FYI, well records requirement for OSE states accuracy within 5 meters

positive real number

or -1 use -1 if accuracy is unknown

.source

location.properties.elevation

yes

str

address location, map interpolation, gps, PLSS, survey

how the location was derived.

address, map_interpolation, gps, plss, survey, unknown

geoconnex

Location.properties

no

str

https://geoconnex.us/nmwdi/st/locations/9381

 

url_regex

 

Things

https://github.com/NMWDI/VocabService/blob/main/schemas/v0/groundwaterlevel.things.json

name

Things

yes

str

Jones Well

colloquial name for well, OSE well name, or the well ID

 

description

Things

yes

str

Groundwater well drilled or set into subsurface for the purposes of pumping water or monitoring groundwater

A description of the thing (in this case, a groundwater well)

 

 

type

Things.properties

yes

str

water well

The type of thing. → consider distinguishing for irrigation well, domestic well, etc. Driller records often have an initial depth at which water is encountered and static level upon completion, but the measurement details are often +/- 5 feet.

water well, stream gage, point of diversion

 

 

 

well_depth

Things.properties

yes

json{float,str}

 

Depth of the completed well (i.e., has casing/structure as opposed to borehole)

 

.value

Things.properties.well_depth

yes

float

231

the total depth of the well

positive real number

.units

Things.properties.well_depth

yes

str

ft

the units in which the well depth is measured

ft, m

borehole_depth

Things.properties

no

json{float,str}

 

 

 

.value

Things.properties.borehole_depth

yes

float

500

The total depth drilled, the depth of the borehole (as opposed to the depth of the completed well)

 

.units

Things.properties.borehole_depth

yes

str

ft

the units in which the borehole depth is measured

 

geologic_formation

Things.properties

no

str

 

Could/should be associated with each screen (vs. just for the entire well).

 

.name

Things.properties.geologic_formation

yes

str

the name of the geologic formation

 

 

.code

Things.properties.geologic_formation

no

str

 

USGS standard formation codes

3115

.source

Things.properties.geologic_formation

yes

str

driller’s log

the source of the information about the geologic formation

driller's log, soil boring log, USGS map

lithology

Things.properties

no

str

silty sand, sandy silt

a description of the lithology → could be a subfeature of the geologic formation but driller might not be viewing it as such. So better to keep this as separate.

 

aquifer

Things.properties

no

str

 

not always the same as geologic_formation. Sometimes aquifers can span multiple geologic formations; latter can also serve as aquitards, etc. Aquifer details could be specific to a screening depth.

 

.name

Things.properties.aquifer

no

str

 

Human readable name

SanAndres

.code

Things.properties.aquifer

no

int

 

USGS standard aquifer code

313

.type

Things.properties.aquifer

no

str

 

 

confined, unconfined

.source

Things.properties.aquifer

yes

str

 

 

driller, geologist, USGS map

casing

Things.properties

no

json{float,str,str}

 

 

 

.diameter

Things.properties.casing

yes

float

 

 

positive real number

.units

Things.properties.casing

yes

str

 

 

in

.description

Things.properties.casing

no

str

Schedule 80 PVC

Any specific descriptive information about the casing: PVC, stainless steel etc.

 

construction

Things.properties

no

str

 

 

 

.completion_date

Things.properties.construction

no

str

 

finish date for OSE, completion date, end of drilling etc.

 

.method

Things.properties.construction

no

str

auger, air-rotary, geoprobe etc.

similar to the drilling type, how was the well drilled?

 

status

Things.properties

yes

str

active; plugged; etc

 

 

current_use

Things.properties

yes

str

Production; Monitoring; etc

 

 

screens

Things.properties

no

array[json{float,float,str,str}]

 

there can be multiple screens for each well; so need to be clear that the top/bottom applies to each screen; also geological formation/aquifer details are specific to each screen

 

.top

Things.properties.screens

yes

float

 

 

positive real number

.bottom

Things.properties.screens

yes

float

 

 

positive real number

.units

Things.properties.screens

yes

str

 

 

ft, m

.description

Things.properties.screens

no

str

0.010 slot PVC

Any pertinent information about the screen: Slot size, wire wrap or slotted PVC, etc.

 

pod_url

Things.properties

no

str

https://ose.nm.state/waterdata/FROST/Locations(12345)

unique id to the pod in the OSE’s POD FROST Server.

url_regex

pod_file

Things.properties

no

str

 

 

 

ose_well_tag

Things.properties

no

str

 

 

probably a regex that could be used to validate this

agency

Things.properties

yes

str

OSE

The agency responsible for uploading this data.

 

FYI, USGS data is in its own std, so not planning to port into ST for now

nmbgmr, nmose, nmenv, nmemrd, cabq, ebid

 

 

Datastreams

https://github.com/NMWDI/VocabService/blob/main/schemas/v0/groundwaterlevel.datastreams.json

name

Datastreams

yes

str

groundwater level

A name for the data stream produced by the sensor.

 

description

Datastreams

yes

str

depth to water from

 

 

agency

Datastreams.properties

yes

str

NMBGMR, OSE

The agency responsible for uploading this data

nmbgmr, nmose, nmenv, nmemrd, cabq, ebid

topics

Datastreams.properties

no

array[str]

 

 

 

 

 

Sensors

https://raw.githubusercontent.com/NMWDI/VocabService/main/schemas/v0/groundwaterlevel.sensors.json

name

Sensors

yes

str

acoustic water level meter

 

 

description

Sensors

yes

str

 

 

 

 

 

 

 

 

 

 

 

Observations

https://raw.githubusercontent.com/NMWDI/VocabService/main/schemas/v0/groundwaterlevels.observations.json

result

Observations

yes

float

 

 

 

phenomenonTime

Observations

yes

str

 

 

 

parameters

Observations

yes

json

 

 

 

data_source

Observations.parameters

yes

str

 

 

 

measuring_agency

Observations.parameters

yes

str

 

 

nmbgmr, nmose, nmenv, nmemrd, cabq, ebid

 

 

Resources