0% found this document useful (0 votes)
19 views18 pages

Earth Obs Att Api

This API provides access to Earth observation data from Spire including radio occultation, precise orbit determination, attitude, and ionospheric data through queries. It supports filtering and pagination of the data.

Uploaded by

calm sky
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views18 pages

Earth Obs Att Api

This API provides access to Earth observation data from Spire including radio occultation, precise orbit determination, attitude, and ionospheric data through queries. It supports filtering and pagination of the data.

Uploaded by

calm sky
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 18

---

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"

You might also like