Earth Obs Att Api
Earth Obs Att Api
swagger: "2.0"
info:
version: "2.5.0"
title: "Spire Earth Observation Data Access"
description: "Provides access to [Spire](https://spire.com) Earth Observation
data\
\ through a RESTful API"
host: "api.earth-obs.spire.com"
basePath: "/"
tags:
- name: "RO"
description: "Radio Occultation (RO) neutral atmosphere retrievals"
- name: "POD"
description: "Precise Orbit Determination (POD) Data"
- name: "Attitude"
description: "LEO attitude (att) data"
- name: "Ionosphere"
description: "Ionospheric data"
- name: "Meta"
description: "Meta data related to the Spire Processing Center (SPC)"
schemes:
- "https"
paths:
/data/ro:
get:
tags:
- "RO"
operationId: "getRoData"
produces:
- "application/json"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "atmPhs"
- "bfrPrf"
- "bfrPrf_opt"
- "atmPrf_nn"
- "atmPrf_json"
- "opnGns"
- "atmPrf_nc"
description: "RO data type to retrieve, e.g., 'atmPhs'"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "badness"
in: "query"
required: false
type: "string"
description: "Filter by maximum badness score (an indicator of quality)
e.g.\
\ '35' represents data with badness < 35"
- name: "snr"
in: "query"
required: false
type: "number"
description: "SNR filter for both L1 and L2 signals, e.g. 1000 [V/V]"
- name: "gnss"
in: "query"
required: false
type: "string"
description: "GNSS constellation type filter, e.g. G,R,E"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by ro_ids, a unique identifier derived from the SPC
database,\
\ e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/RoPacket"
security:
- APIKeyHeader: []
/data/pod:
get:
tags:
- "POD"
operationId: "getPodData"
produces:
- "application/json"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "leoOrb"
- "podObs_rnx"
- "podObs_sp3"
description: "POD data type to retrieve, e.g., 'leoOrb'"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "rms"
in: "query"
required: false
type: "number"
format: "float"
description: "Filter by backward RMS error calculated from the orbit
solution"
- name: "num_sats"
in: "query"
required: false
type: "number"
format: "float"
description: "Filter by the mean number of usable GNSS satellites during
the\
\ observation period"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by pod_ids, a unique identifier derived from the SPC\
\ database, e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types (necessary\
\ if you do not have access to Spire's S3 bucket"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/PodPacket"
security:
- APIKeyHeader: []
/data/att:
get:
tags:
- "Attitude"
operationId: "getAttData"
produces:
- "application/json"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "leoAtt"
description: "Attitude data type to retrieve, e.g. 'leoAtt'"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by att_ids, a unique identifier derived from the SPC\
\ database, e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types (necessary\
\ if you do not have access to Spire's S3 bucket"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/AttPacket"
security:
- APIKeyHeader: []
/data/iono/tec:
get:
tags:
- "Ionosphere"
operationId: "getTecData"
produces:
- "application/json"
description: "Total electron content (TEC) line-of-sight (LOS) NetCDF data
files\
\ derived from POD observations"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "podTec"
description: "TEC data type to retrieve, e.g. 'podTec'"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "el"
in: "query"
required: false
type: "string"
description: "Filter by ending elevation [deg]"
- name: "prns"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by GNSS PRNs, e.g. 'G01,G05'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by tec_ids, a unique identifier derived from the SPC\
\ database, e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types (necessary\
\ if you do not have access to Spire's S3 bucket"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/TecPacket"
security:
- APIKeyHeader: []
/data/iono/scn:
get:
tags:
- "Ionosphere"
operationId: "getScnData"
produces:
- "application/json"
description: "Scintillation data"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "scnLv1"
description: "Scintillation data type to retrieve, e.g. 'scnLv1'"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "prns"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by GNSS PRNs, e.g. 'G01,G05'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by scn_ids, a unique identifier derived from the SPC\
\ database, e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types (necessary\
\ if you do not have access to Spire's S3 bucket"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/ScnPacket"
security:
- APIKeyHeader: []
/data/iono/eden:
get:
tags:
- "Ionosphere"
operationId: "getEdenData"
produces:
- "application/json"
description: "Electron density pofiles derived from POD TEC observations in\
\ NetCDF format"
parameters:
- name: "page"
in: "query"
required: true
type: "integer"
description: "Pagination number of results"
- name: "data_types"
in: "query"
required: false
type: "array"
items:
type: "string"
enum:
- "ionPrf"
description: "Retrieve electron density profile in NetCDF format"
- name: "t0"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by start time, e.g. '2018-03-01T00-00'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date-time"
description: "Filter by end time, e.g. '2018-03-01T02-00'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '044,056'"
- name: "ids"
in: "query"
required: false
type: "array"
items:
type: "integer"
description: "Filter by eden_ids, a unique identifier derived from the SPC\
\ database, e.g. '100,101'"
- name: "limit"
in: "query"
required: false
type: "integer"
description: "Limit the number of output entries, e.g. 1"
- name: "presigned"
in: "query"
required: false
type: "boolean"
default: "False"
description: "Switch to create presigned s3 keys for data types (necessary\
\ if you do not have access to Spire's S3 bucket"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/EdenPacket"
security:
- APIKeyHeader: []
/telemetry/attitude:
get:
tags:
- "Attitude"
operationId: "getTelemetryAttitude"
produces:
- "application/json"
parameters:
- name: "t0"
in: "query"
required: true
type: "string"
format: "date"
description: "Filter by start date, e.g. '2020-01-15'"
- name: "t1"
in: "query"
required: false
type: "string"
format: "date"
description: "Filter by end date, e.g. '2020-01-17'"
- name: "fms"
in: "query"
required: false
type: "array"
items:
type: "string"
description: "Filter by Spire flight models (FMs), e.g. '90,110'"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/TelemetryAttitudePacket"
security:
- APIKeyHeader: []
/data/meta/process_window:
get:
tags:
- "Meta"
operationId: "getMetaData"
produces:
- "application/json"
parameters:
- name: "ids"
in: "query"
required: true
type: "array"
items:
type: "string"
description: "Retreive processing windows based on Process IDs, e.g.
'564913,564914'"
responses:
"200":
description: "200 response"
schema:
$ref: "#/definitions/ProcessWindowPacket"
security:
- APIKeyHeader: []
definitions:
ApiMessage:
type: "object"
properties:
git_hash:
type: "string"
description: "Git hash of the API backend code"
info:
type: "array"
items:
type: "string"
description: "Information from the API call"
lag:
type: "integer"
format: "int32"
description: "Lag from real-time [days]"
n:
type: "integer"
format: "int32"
description: "Number of entries returned from the API call"
query_parameters:
type: "object"
items:
type: "object"
description: "Query parameters used for API call"
t0:
type: "string"
format: "date-time"
description: "Start time filter"
t1:
type: "string"
format: "date-time"
description: "End time filter"
time_it:
type: "object"
items:
type: "object"
description: "Latency information for API call"
version:
type: "string"
description: "API backend version"
warning:
type: "array"
items:
type: "string"
description: "Warnings from the API call"
RoPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfRoProfile"
PodPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfPodArc"
AttPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfAttData"
TecPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfTecArc"
ScnPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfScnArc"
EdenPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfEdenProfiles"
TelemetryAttitudePacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfTelemetryAttitudeData"
ProcessWindowPacket:
type: "object"
properties:
message:
$ref: "#/definitions/ApiMessage"
data:
$ref: "#/definitions/ArrayOfProcessWindow"
ArrayOfRoProfile:
type: "array"
items:
$ref: "#/definitions/RoProfile"
ArrayOfPodArc:
type: "array"
items:
$ref: "#/definitions/PodArc"
ArrayOfAttData:
type: "array"
items:
$ref: "#/definitions/AttData"
ArrayOfTecArc:
type: "array"
items:
$ref: "#/definitions/TecArc"
ArrayOfScnArc:
type: "array"
items:
$ref: "#/definitions/ScnArc"
ArrayOfEdenProfiles:
type: "array"
items:
$ref: "#/definitions/EdenProfile"
ArrayOfTelemetryAttitudeData:
type: "array"
items:
$ref: "#/definitions/TelemetryAttitudeData"
ArrayOfProcessWindow:
type: "array"
items:
$ref: "#/definitions/ProcessWindow"
RoProfile:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "RO ID used by the SPC database"
prn:
type: "string"
description: "GNSS PRN associated with occultation"
fm:
type: "string"
description: "Spire Flight Model (FM)"
occTime:
type: "string"
format: "date-time"
description: "Timestamp of occultation"
lat:
type: "number"
format: "float"
description: "Latitude of occultation [deg]"
lon:
type: "number"
format: "float"
description: "Longitude of occultation [deg]"
altMin:
type: "number"
format: "float"
description: "Minimum altitude of occultation [km]"
badness:
type: "number"
format: "float"
description: "'Badness' score of occultation, an indicator of occultation\
\ quality"
stdBa:
type: "number"
format: "float"
description: "Standard deviation of bending angle [urad]"
occDir:
type: "string"
description: "Occultation direction"
enum:
- "rising"
- "setting"
version_engine:
type: "string"
description: "Processing engine version"
pod_id:
type: "number"
format: "integer"
description: "POD ID used for orbit determination"
att_id:
type: "number"
format: "integer"
description: "Attitude ID used for attitude determination"
navbit:
type: "boolean"
description: "Boolean indicating if navigation bits were used for RO
inversion"
sig_types:
type: "array"
items:
type: "string"
description: "Array of signal types used for RO collection, e.g.
'GPS_L1_CA_OLOOP_10.ro'"
process_id:
type: "number"
format: "integer"
description: "Unique processing ID"
snr:
type: "number"
format: "integer"
description: "Averaged L1 and L2 SNR [V/V]"
s3Keys:
type: "object"
properties:
atmPhs:
$ref: "#/definitions/S3Key"
bfrPrf:
$ref: "#/definitions/S3Key"
bfrPrf_opt:
$ref: "#/definitions/S3Key"
atmPrf_json:
$ref: "#/definitions/S3Key"
atmPrf_nn:
$ref: "#/definitions/S3Key"
opnGns:
$ref: "#/definitions/S3KeyOpnGns"
atmPrf_nc:
$ref: "#/definitions/S3KeyOpnGns"
description: "Expiring s3 keys that are available to download"
PodArc:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "POD ID used by the SPC database"
fm:
type: "string"
description: "Spire Flight Model (FM)"
t0:
type: "string"
format: "date-time"
description: "Start time of POD collection"
rms:
type: "number"
format: "float"
description: "Backward RMS error calculated from orbit solution"
num_sats:
type: "number"
format: "float"
description: "Minimum threshold of the mean number of usable GNSS
satellites\
\ during the observation period, e.g., '4' represents that at least 4
GNSS\
\ satellites were observed (in the mean sense)"
version_engine:
type: "string"
description: "Processing engine version"
ant_types:
type: "array"
items:
type: "string"
description: "Array of antennas used for POD collection, e.g. ['antPOD',
'antRO']"
s3Keys:
type: "object"
properties:
leoOrb:
$ref: "#/definitions/S3Key"
podObs_sp3:
$ref: "#/definitions/S3Key"
podObs_rnx:
$ref: "#/definitions/S3KeyPodRnx"
description: "Expiring s3 keys that are available to download"
process_id:
type: "number"
format: "integer"
description: "Unique processing ID"
AttData:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "Attitude ID used by the SPC database"
fm:
type: "string"
description: "Spire Flight Model (FM)"
t0:
type: "string"
format: "date-time"
description: "Start time of attitude data"
s3Keys:
type: "object"
properties:
leoAtt:
$ref: "#/definitions/S3Key"
description: "Expiring s3 keys that are available to download"
version_engine:
type: "string"
description: "Processing engine version"
process_id:
type: "number"
format: "integer"
description: "Unique processing ID"
TecArc:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "TEC ID used by the SPC database"
fm:
type: "string"
description: "Spire Flight Model (FM)"
prn:
type: "string"
description: "GNSS PRN associated with TEC collection"
t0:
type: "string"
format: "date-time"
description: "Start time of TEC arc"
lat0:
type: "number"
format: "float"
description: "Starting FM latitude of TEC collection [deg]"
lon0:
type: "number"
format: "float"
description: "Starting FM longitude of TEC collection [deg]"
el:
type: "number"
format: "float"
description: "Ending elevation of TEC data arc [deg]"
nt:
type: "integer"
format: "int32"
description: "Number of TEC data points contained within the arc"
s3Keys:
type: "object"
properties:
podTec:
$ref: "#/definitions/S3Key"
description: "Expiring s3 keys that are available to download"
ScnArc:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "Scintillation ID used by the SPC database"
fm:
type: "string"
description: "Spire Flight Model (FM)"
prn:
type: "string"
description: "GNSS PRN associated with scintillation collection"
t0:
type: "string"
format: "date-time"
description: "Start time of scintillation arc"
nt:
type: "integer"
format: "int32"
description: "Number of scintillation data points contained within the arc"
s3Keys:
type: "object"
properties:
scnLv1:
$ref: "#/definitions/S3Key"
description: "Expiring s3 keys that are available to download"
EdenProfile:
type: "object"
properties:
id:
type: "integer"
format: "int32"
description: "Electron density profile ID used by the SPC database"
fm:
type: "string"
description: "Spire Flight Model (FM)"
prn:
type: "string"
description: "GNSS PRN associated with scintillation collection"
occ_time:
type: "string"
format: "date-time"
description: "Start time of electron density occultation"
s3Keys:
type: "object"
properties:
scnLv1:
$ref: "#/definitions/S3Key"
description: "Expiring s3 keys that are available to download"
TelemetryAttitudeData:
type: "object"
properties:
fm:
type: "string"
description: "Spire Flight Model (FM)"
date:
type: "string"
format: "date"
description: "Telemetry attitude data file date"
s3Keys:
type: "object"
properties:
attitude:
$ref: "#/definitions/S3Key"
description: "Expiring s3 keys that are available to download"
ProcessWindow:
type: "object"
properties:
process_time:
type: "string"
format: "date-time"
description: "Processing time"
data_type:
type: "string"
description: "Processing data type"
t0:
type: "string"
format: "date-time"
description: "Start of processing window (if applicable)"
t1:
type: "string"
format: "date-time"
description: "End of processing window (if applicable)"
fm:
type: "string"
description: "Spire Flight Model (FM)"
buffer_time:
type: "array"
minItems: 2
maxItems: 2
items:
type: "number"
format: "float"
description: "Buffer time padded to start and stop times for searching
data\
\ [minutes]"
raw_id:
type: "integer"
description: "Raw ID associated with processing (if applicable)"
id:
type: "integer"
description: "Process ID"
S3Key:
type: "string"
description: "AWS S3 presigned key that includes an expiration"
S3KeyPodRnx:
type: "object"
properties:
antPOD:
$ref: "#/definitions/S3Key"
antBRO:
$ref: "#/definitions/S3Key"
antFRO:
$ref: "#/definitions/S3Key"
description: "AWS S3 presigned key that includes an expiration"
S3KeyOpnGns:
type: "object"
additionalProperties:
$ref: "#/definitions/S3Key"
description: "AWS S3 presigned key that includes an expiration"
securityDefinitions:
APIKeyHeader:
type: "apiKey"
in: "header"
name: "x-api-key"