{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://json.schemastore.org/radiohound-v0.json",
  "$defs": {
    "DataType": {
      "description": "Data types supported by RadioHound.",
      "enum": ["periodogram"],
      "title": "DataType",
      "type": "string"
    },
    "_RHMetadataV0": {
      "additionalProperties": false,
      "description": "Metadata for a RadioHound capture.",
      "properties": {
        "data_type": {
          "$ref": "#/$defs/DataType",
          "description": "The category of this capture"
        },
        "fmax": {
          "description": "The maximum frequency in the sample",
          "exclusiveMaximum": 9223372036854775807,
          "exclusiveMinimum": 0,
          "title": "Fmax",
          "type": "integer"
        },
        "fmin": {
          "description": "The minimum frequency in the sample",
          "exclusiveMaximum": 9223372036854775807,
          "exclusiveMinimum": 0,
          "title": "Fmin",
          "type": "integer"
        },
        "gps_lock": {
          "description": "Whether a GPS satellite lock is obtained, otherwise the last known coordinates",
          "title": "Gps Lock",
          "type": "boolean"
        },
        "nfft": {
          "description": "Number of FFT bins, recommended to be a power of 2",
          "exclusiveMinimum": 0,
          "title": "Nfft",
          "type": "integer"
        },
        "scan_time": {
          "description": "The time taken to scan this sample, in seconds",
          "exclusiveMinimum": 0.0,
          "title": "Scan Time",
          "type": "number"
        },
        "xcount": {
          "anyOf": [
            {
              "exclusiveMaximum": 9223372036854775807,
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "deprecated": true,
          "description": "[Deprecated] The number of points in the periodogram",
          "title": "Xcount"
        },
        "xstart": {
          "anyOf": [
            {
              "exclusiveMaximum": 9223372036854775807,
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "deprecated": true,
          "description": "[Deprecated] The start frequency of the periodogram",
          "title": "Xstart"
        },
        "xstop": {
          "anyOf": [
            {
              "exclusiveMaximum": 9223372036854775807,
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "deprecated": true,
          "description": "[Deprecated] The stop frequency of the periodogram",
          "title": "Xstop"
        },
        "archive_result": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the data was archived",
          "title": "Archive Result"
        }
      },
      "required": [
        "data_type",
        "fmax",
        "fmin",
        "gps_lock",
        "nfft",
        "scan_time"
      ],
      "title": "_RHMetadataV0",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Describes a RadioHound capture.",
  "properties": {
    "data": {
      "format": "binary",
      "title": "Data",
      "type": "string"
    },
    "gain": {
      "title": "Gain",
      "type": "number"
    },
    "latitude": {
      "description": "The latitude where the data was captured, in decimal degrees",
      "exclusiveMaximum": 90.0,
      "exclusiveMinimum": -90.0,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "The longitude where the data was captured, in decimal degrees",
      "exclusiveMaximum": 180.0,
      "exclusiveMinimum": -180.0,
      "title": "Longitude",
      "type": "number"
    },
    "mac_address": {
      "description": "MAC address of the device, without separators",
      "maxLength": 12,
      "minLength": 12,
      "title": "Mac Address",
      "type": "string"
    },
    "metadata": {
      "$ref": "#/$defs/_RHMetadataV0",
      "description": "Metadata for this capture"
    },
    "sample_rate": {
      "description": "Sample rate of the capture, in Hz",
      "exclusiveMaximum": 9223372036854775807,
      "exclusiveMinimum": 0,
      "title": "Sample Rate",
      "type": "integer"
    },
    "short_name": {
      "description": "The short name of the device",
      "maxLength": 255,
      "title": "Short Name",
      "type": "string"
    },
    "timestamp": {
      "description": "Timestamp of the capture start, as ISO 8601 with timezone information",
      "format": "date-time",
      "title": "Timestamp",
      "type": "string"
    },
    "type": {
      "description": "Numpy-compatible dtype of `data` elements",
      "title": "Type",
      "type": "string"
    },
    "version": {
      "default": "v0",
      "description": "Version of the RadioHound data format",
      "maxLength": 255,
      "title": "Version",
      "type": "string"
    },
    "altitude": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The altitude where the data was captured, in meters",
      "title": "Altitude"
    },
    "center_frequency": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The center frequency of the capture, calculated as the mean of the start and end frequencies",
      "title": "Center Frequency"
    },
    "custom_fields": {
      "description": "Custom fields that are not part of the standard schema",
      "title": "Custom Fields",
      "type": "object"
    },
    "hardware_board_id": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The hardware board ID of the device capturing the data",
      "title": "Hardware Board Id"
    },
    "hardware_version": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The hardware version of the device capturing the data",
      "title": "Hardware Version"
    },
    "scan_group": {
      "anyOf": [
        {
          "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The scan group, used to group RH files. UUID version 4 as a 36 char string (with dashes).",
      "title": "Scan Group"
    },
    "software_version": {
      "anyOf": [
        {
          "maxLength": 255,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The software version of the device capturing the data",
      "title": "Software Version"
    },
    "batch": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "deprecated": true,
      "description": "[Deprecated | Use scan_group instead] Can be used to group scans together.",
      "title": "Batch"
    },
    "suggested_gain": {
      "anyOf": [
        {
          "exclusiveMinimum": 0.0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "deprecated": true,
      "description": "[Deprecated] Suggested gain for the device",
      "title": "Suggested Gain"
    },
    "uncertainty": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "deprecated": true,
      "description": "[Deprecated] Uncertainty of the measurement",
      "title": "Uncertainty"
    },
    "requested": {
      "anyOf": [
        {
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Attributes set by requestor",
      "title": "Requested"
    }
  },
  "required": [
    "data",
    "gain",
    "latitude",
    "longitude",
    "mac_address",
    "metadata",
    "sample_rate",
    "short_name",
    "timestamp",
    "type"
  ],
  "title": "_RadioHoundDataV0",
  "type": "object"
}
