Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add traceability, capture detail, signal, spatial extension as json schema #324

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
304 changes: 265 additions & 39 deletions docs-generator.py

Large diffs are not rendered by default.

75 changes: 75 additions & 0 deletions extensions/capture-detail-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"$id": "https://github.com/sigmf/SigMF/spec/1.0.0/extensions/capture-details-schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Capture Details Schema extension for SigMF-meta file",
"description": "The `capture_details` namespace extension defines static IQ capture parameters extending `captures` and dynamic IQ capture parameters extending `annotations`.",
"type": "object",
"properties": {
"captures": {
"description": "The following names are specified in the `capture_details` namespace and should be used in the `captures` object:",
"type": "array",
"items": {
"type": "object",
"required": [
"capture_details:acq_scale_factor",
"capture_details:attenuation",
"capture_details:acquisition_bandwidth",
"capture_details:start_capture",
"capture_details:stop_capture",
"capture_details:source_file"
],
"properties": {
"capture_details:acq_scale_factor": {
"type": "number",
"description": "Scale factor of IQ collection from the spectrum analyzer used to convert back to real power."
},
"capture_details:attenuation": {
"type": "number",
"description": "Attenuation applied to the input of the sensor, in dB."
},
"capture_details:acquisition_bandwidth": {
"type": "number",
"description": "Bandwidth of the recording (if lower than the `samp_rate`, in Hz."
},
"capture_details:start_capture": {
"type": "string",
"description": "Time of the first sample of IQ recording. The time is UTC with the format of yyyy-mm-ddTHH:MM:SSZ."
},
"capture_details:stop_capture": {
"type": "string",
"description": "Time of the last sample of IQ recording. The time is UTC with the format of yyyy-mm-ddTHH:MM:SSZ."
},
"capture_details:source_file": {
"type": "string",
"description": "RF IQ recording filename that was used to create the file N.sigmf-data. The file N.sigmf-data may be the same or an edited versions of the source_file."
},
"capture_details:gain": {
"type": "number",
"description": "Gain setting of the sensor for this acquisition, distilled to a single number, in dB."
}
}
}
},
"annotations": {
"description": "The following names are specified in the `capture_details` namespace and should be used in the `annotations` object:",
"type": "array",
"items": {
"type": "object",
"required": [
"capture_details:SNRdB",
"capture_details:signal_reference_number"
],
"properties": {
"capture_details:SNRdB": {
"type": "number",
"description": "Root mean square (RMS) calculation of signal to noise ratio (SNR). The calculation is over windows of known signal and no known signal, in dB."
},
"capture_details:signal_reference_number": {
"type": "string",
"description": "Sequential reference labels for the elements that form the sequence of signals identified in a SigMF dataset file. The format of the string is the filename followed by an index that increases with each decoded signal."
}
}
}
}
}
}
36 changes: 0 additions & 36 deletions extensions/capture_details.sigmf-ext.md

This file was deleted.

112 changes: 112 additions & 0 deletions extensions/signal-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@

{
"$id": "https://github.com/sigmf/SigMF/spec/1.0.0/extensions/signal-schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Signal Schema extension for SigMF-meta file",
"description": "The signal extension namespace defines how to describe the attributes of wireless communications signals and their emitters",
"type": "object",
"properties": {
"annotations": {
"description": "The following names are specified in the `signal` namespace and should be used in the `annotations` object:",
"type": "array",
"items": {
"type": "object",
"properties": {
"signal:detail": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["analog", "digital"],
"description": "Type of modulation scheme"
},
"mod_class": {
"type": "string",
"enum": ["am", "fm", "pm", "ssb", "dsb", "vsb", "ask", "fsk", "psk", "qam", "ook", "cpm", "msk"],
"description": "Modulation class"
},
"standard": {
"type": "string",
"description": "Communication standard (e.g., 802.11ac)"
},
"carrier_variant": {
"type": "string",
"enum": ["with_carrier", "suppressed_carrier", "reduced_carrier", "single_carrier", "multi_carrier"],
"description": "Carrier variant type"
},
"symbol_variant": {
"type": "string",
"enum": ["differential", "offset"],
"description": "Symbol variant type"
},
"order": {
"type": "integer",
"minimum": 0,
"description": "Modulation order"
},
"duplexing": {
"type": "string",
"enum": ["tdd", "fdd"],
"description": "Duplexing type"
},
"multiplexing": {
"type": "string",
"enum": ["tdm", "fdm", "cdm", "ofdm", "sdm", "pdm"],
"description": "Multiplexing type"
},
"multiple_access": {
"type": "string",
"enum": ["fdma", "ofdma", "tdma", "cdma", "sdma", "pdma"],
"description": "Multiple access type"
},
"spreading": {
"type": "string",
"enum": ["fhss", "thss", "dsss", "css"],
"description": "Spreading type"
},
"channel_bw": {
"type": "number",
"description": "Channel bandwidth"
},
"channel": {
"type": "integer",
"minimum": 0,
"description": "Channel number"
},
"class_variant": {
"type": "string",
"description": "Modifier to modulation class"
}
}
},
"signal:emitter": {
"type": "object",
"properties": {
"seid": {
"type": "integer",
"minimum": 0,
"description": "Unique ID of the emitter"
},
"manufacturer": {
"type": "string",
"description": "Manufacturer of the hardware"
},
"power_tx": {
"type": "number",
"description": "Total transmitted power (dBm)"
},
"power_eirp": {
"type": "number",
"description": "Effective Isotropic Radiated Power (dBm)"
},
"geolocation": {
"type": "object",
"description": "GeoJSON location of emitter"
}
}
}
}
}
}
}
}
Loading