Skip to content

Sensor Calibration

Anthony Romaniello edited this page May 10, 2024 · 1 revision

TODO: This page needs more information and an example differential calibration file

Calibration files allow SCOS Sensor to scale data based on a laboratory and/or in-field calibration of the sensor, and may also contain other useful metadata that characterizes the sensor performance. Two primary types of calibration files are used: sensor calibration files and differential calibration files.

Sensor calibration files may be provided upon sensor deployment or generated by onboard calibration actions. If both exist, onboard calibration data takes priority. The sensor will first attempt to load configs/onboard_sensor_calibration.json, and fall back to configs/sensor_calibration.json if the first option fails. Next, SCOS determines whether the loaded calibration data is expired, based on the threshold set by the CALIBRATION_EXPIRATION_LIMIT threshold. If calibration data is expired, the sensor will attempt to run the calibration action defined by STARTUP_CALIBRATION_ACTION.

SCOS Sensor also supports an additional calibration file, called a differential calibration. The differential calibration is used to provide additional scaling factors to shift the reference point of data from the onboard calibration terminal to elsewhere in the signal path. For instance, a differential calibration file can be provided with scaling factors to shift the data reference point from the onboard calibration terminal to the antenna port. The differential calibration is loaded separately, and used in addition to, either the onboard or lab-provided sensor calibration file.

Sensor Calibration File

In sensor calibration files, the unit of calibration data is defined by the NTIA-Sensor SigMF Calibration Object. In differential calibration files, the only key in the calibration data is loss.

The calibration_parameters key lists the parameters that will be used to obtain the calibration data. In the case of onboard calibration being generated from scratch, the startup calibration action's signal analyzer settings are used as the calibration_parameters. The calibration data is found directly within the calibration_data element and by default SCOS Sensor will not apply any additional gain. Typically, a sensor would be calibrated at particular sensing parameters. The calibration data for specific parameters should be listed within the calibration_data object and accessed by the values of the settings listed in the calibration_parameters element. For example, the sensor calibration below provides an example of a sensor calibrated at a sample rate of 140000000 samples per second at several frequencies with a signal analyzer reference level setting of -25.

{
  "last_calibration_datetime": "2023-10-23T14:39:13.682Z",
  "calibration_parameters": [
    "sample_rate",
    "frequency",
    "reference_level"
  ],
  "clock_rate_lookup_by_sample_rate": [],
  "calibration_data": {
    "14000000.0": {
      "3545000000.0": {
        "-25": {
          "datetime": "2023-10-23T14:38:02.882Z",
          "gain": 30.09194805857024,
          "noise_figure": 4.741521295220736,
          "temperature": 15.6
        }
      },
      "3555000000.0": {
        "-25": {
          "datetime": "2023-10-23T14:38:08.022Z",
          "gain": 30.401008416406599,
          "noise_figure": 4.394893979804061,
          "temperature": 15.6
        }
      },
      "3565000000.0": {
        "-25": {
          "datetime": "2023-10-23T14:38:11.922Z",
          "gain": 30.848049817892105,
          "noise_figure": 4.0751785215495819,
          "temperature": 15.6
        }
      }
    }
  }
}

When an action is run with the above calibration, SCOS will expect the action to have a sample_rate, frequency, and reference_level specified in the action config. The values specified for these parameters will then be used to retrieve the calibration data entry.