{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://data.geus.dk/sensornet/json/geus_sensor_schema_v1.json",
  "title": "Sensor data from well",
  "description": "Version 1.2. Defined 2026-05-06 by GEUS (www.geus.dk)",
  "type": "object",
  "required": [
    "schema_name",
    "boreholeno",
    "intakeid",
    "calibrated_status",
    "refpoint",
    "verticaref",
    "measurements"
  ],
  "properties": {
    "schema_name": {
      "type": "string",
      "title": "Schema name",
      "description": "the name of the scheam that the JSON data conforms to",
      "const": "http://data.geus.dk/sensornet/json/geus_sensor_schema_v1.json"
    },
    "boreholeno": {
      "type": "string",
      "title": "Borehole number",
      "description": "The DGU number assigned by GEUS to the borehole. Blank spaces are not required",
      "examples": [
        "201.4990",
        "201.409A"
      ]
    },
    "intakeid": {
      "type": "integer",
      "title": "Intake number",
      "description": "The intakeid related to the well. Matches the intakeno found in the Jupiter database at GEUS. Usually has the value 1",
      "examples": [
        "1"
      ],
      "minimum": 1,
      "maximum": 999
    },
    "calibrated_status": {
      "type": "string",
      "title": "Are the measurements calibrated",
      "enum": [
        "raw",
        "calibrated"
      ]
    },
    "refpoint": {
      "type": "string",
      "title": "The point that waterlevels are measured relative to",
      "description": "K=Kote, M=Pejlepunkt, T=Terræn",
      "enum": [
        "K",
        "M",
        "T"
      ]
    },
    "verticaref": {
      "type": "string",
      "title": "The vertical reference system for the waterlevel measurements",
      "description": "BFP=Boringsfikspunkt, DNN=DNN (Dansk Normal Nul incl. Københavns nul), DVR90=DVR90 (Dansk Vertikal Reference), HAV=Havets overflade",
      "enum": [
        "BFP",
        "DNN",
        "DVR90",
        "HAV"
      ]
    },
    "company_name": {
      "type": "string",
      "title": "Company name",
      "description": "Company responsible for performing the measurements",
      "examples": [
        "watsonc.dk"
      ]
    },
    "sensortype": {
      "type": "string",
      "title": "Sensortype",
      "description": "The model name of the sensor used for measurements",
      "examples": [
        "RKL-01M"
      ]
    },
    "method": {
      "type": "string",
      "title": "The method of measuring the waterlevel",
      "description": "F=flyder, J=fløjte, M=manometer, N=nedstik (el-pejleapparat), T=transducer/datalogger, U=ultralyd, A=andet",
      "default": "T",
      "enum": [
        "F",
        "J",
        "M",
        "N",
        "T",
        "U",
        "A"
      ]
    },
    "project": {
      "type": "string",
      "title": "The project related to the measurements",
      "description": "ANDET=Andre pejlinger, f.eks. senere pejlinger, enkeltpejlinger,BB=Brøndborers pejling i forb. med borearbejdet,GENET=GEUS pejlestationsnet,GEPRO=GEUS projekter,GNOI=Grundvand, natur og overfladevandsinteraktion,GRUMO=Grundvandsovervågning,LOOP=Landovervågning,NATPE=Det nationale pejlenet,VAIND=Vandværks pejling i indvindingsboring efter pumpestop,VANET=Vandforsynings pejlestationsnet,VAP=Varslingssystem",
      "enum": [
        "ANDET",
        "BB",
        "GENET",
        "GEPRO",
        "GNOI",
        "GRUMO",
        "LOOP",
        "NATPE",
        "VAIND",
        "VANET"
      ],
      "default": "ANDET"
    },
    "dataowner": {
      "type": "string",
      "title": "The owner of the data",
      "description": "BB=Brøndborer, GE=GEUS, GL=Grønland, KO=Kommune, MS=Miljoestyrelsen, NS=Naturstyrelsen, RE=Region, RG=Rådgiver, VV=Vandværk",
      "enum": [
        "BB",
        "GE",
        "GL",
        "KO",
        "MS",
        "NS",
        "RE",
        "RG",
        "VV"
      ],
      "default": "GE"
    },
    "remark": {
      "type": "string",
      "title": "Any remarks regarding the measurements"
    },
    "measurements": {
      "type": "array",
      "title": "sensor measurements",
      "items": {
        "type": "object",
        "required": [
          "timestamp"
        ],
        "properties": {
          "UUID": {
            "type": "string",
            "format": "uuid",
            "title": "Unique identifier for each measurement",
            "description": "The identifier can be used to refer to the measurement at a later stage. For example to replace raw data with calibrated data",
            "examples": [
              "bfc85bd2-00cb-4756-916d-8920199b0771"
            ]
          },
          "timestamp": {
            "type": "string",
            "description": "Time of measurement formatted in ISO8601 format.",
            "examples": [
              "2018-11-13T20:20:39+00:00"
            ]
          },
          "waterlevel": {
            "type": "number",
            "title": "The measurement of water level. Measured either in meters above sealevel (for refpoint=K), in meters below terrain (for refpoint=T) or meters below predefined measurement point (for refpoint=M)",
            "examples": [
              13.02
            ]
          },
          "extremes": {
            "type": "string",
            "title": "Set if the waterlevel is one of two extreme situations",
            "description": "O=Overløb, T=Tør",
            "enum": [
              "O",
              "T"
            ]
          },
          "situation": {
            "type": "integer",
            "title": "Is the waterlevel measurement taken while pumping water",
            "description": "0=I ro, 1=I drift",
            "default": "0",
            "enum": [0,1]
          },
          "hoursnopum": {
            "type": "number",
            "title": "How long time since last pumping from intake",
            "description": "Measured in hours"
          },
          "temperature": {
            "type": "number",
            "title": "Temperature",
            "decription": "Measured in degrees Celcius",
            "minimum": -30,
            "maximum": 50
          },
          "atmospress": {
            "type": "number",
            "title": "Atmospheric pressure",
            "decription": "Measured in hPa",
            "minimum": 900,
            "maximum": 1100
          },
          "conductivity": {
            "type": "number",
            "title": "Conductivity",
            "description": "Measured in uS/cm",
            "minimum": 0,
            "maximum": 50000
          },
          "chloride": {
            "type": "number",
            "title": "Chloride",
            "description": "Measured in mg/l",
            "minimum": 0,
            "maximum": 1000
          },
          "nitrate": {
            "type": "number",
            "title": "Nitrate",
            "description": "Measured in mg/l",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    }
  }
}