Orbit Determination

POST /filedrop/udl-orbitdetermination

Changed on

Service operation to take multiple OrbitDetermination records as a POST body and ingest into the database. This operation is intended to be used for automated feeds into UDL. A specific role is required to perform this service operation. Please contact the UDL team for assistance.

Request

  • Base URL
    https://unifieddatalibrary.com
  • URL
    https://unifieddatalibrary.com/filedrop/udl-orbitdetermination
  • Auth
    none declared

Request body

idstring

Unique identifier of the record, auto-generated by the system.

classificationMarkingstring required

Classification marking of the data in IC/CAPCO Portion-marked format.

startTimestring date-time required

Start time for OD solution in ISO 8601 UTC datetime format, with microsecond precision.

endTimestring date-time required

End time for OD solution in ISO 8601 UTC datetime format, with microsecond precision.

idOnOrbitstring

Unique identifier of the target satellite on-orbit object. This ID can be used to obtain additional information on an OnOrbit object using the 'get by ID' operation (e.g. /udl/onorbit/{id}). For example, the OnOrbit with idOnOrbit = 25544 would be queried as /udl/onorbit/25544.

origObjectIdstring

Optional identifier provided by the OD source to indicate the target on-orbit object of this OD solution. This may be an internal identifier and not necessarily map to a valid satellite number.

satNointeger

Satellite/Catalog number of the target on-orbit object.

aprioriIdElsetstring

Identifier of the element set used to seed this OD solution. This ID can be used to obtain additional information on an Elset object using the 'get by ID' operation (e.g. /udl/elset/{id}). For example, the Elset with idElset = abc would be queried as /udl/elset/abc.

aprioriIdStateVectorstring

Identifier of the state vector used to seed this OD solution. This ID can be used to obtain additional information on a StateVector object using the 'get by ID' operation (e.g. /udl/statevector/{id}). For example, the StateVector with idStateVector = abc would be queried as /udl/statevector/abc.

initialODboolean required

Flag indicating whether this is an initial orbit determination.

lastObStartstring date-time

The start of the time interval containing the time of the last accepted observation, in ISO 8601 UTC datetime format with microsecond precision. For an exact observation time, the lastObStart and lastObEnd are the same.

lastObEndstring date-time

The end of the time interval containing the time of the last accepted observation, in ISO 8601 UTC datetime format with microsecond precision. For an exact observation time, the lastObStart and lastObEnd are the same.

timeSpannumber double

The time span used for the OD of the object, in days.

effectiveFromstring date-time

Optional start time at which this OD solution is accurate, in ISO 8601 UTC datetime format with microsecond precision.

effectiveUntilstring date-time

Optional end time at which this OD solution may no longer be accurate, in ISO 8601 UTC datetime format with microsecond precision.

wrmsnumber double

The Weighted Root Mean Squared (RMS) of the differential correction of the target object that produced this OD state. WRMS is a quality indicator of the OD update, with a value of 1.00 being optimal. WRMS applies to batch least squares (BLS) processes.

previousWrmsnumber double

The Weighted Root Mean Squared (RMS) of the differential correction from the previous overhead pass of the satellite. Provides a point of comparison for assessing changes in the quality of the OD solution between consecutive passes.

firstPassWrmsnumber double

The Weighted Root Mean Squared (RMS) calculated for the first satellite pass in the observation span. Serves as the initial quality metric for the beginning of the observation period.

bestPassWrmsnumber double

Lowest Weighted Root Mean Squared (RMS) value achieved for any single satellite pass during the observation span, indicating the pass with the highest quality OD solution.

errorGrowthRatenumber double

Error growth rate of the OD solution in kilometers per day.

edrnumber double

Model parameter value for energy dissipation rate (EDR) in watts per kilogram.

methodstring required

Orbit determination method used to produce this record (e.g. BLS, KF, UKF, etc.).

methodSourcestring

Source of orbit determination method used to produce this record (e.g. ASW, ACTRAC, FreeFlyer, GEODYNE, GDTS, etc.).

fitSpannumber double

The fit span, in days, used in a Batch Least Squares (BLS) OD.

ballisticCoeffEstboolean

Flag indicating whether the ballistic coefficient was estimated during this OD solution.

ballisticCoeffModelstring

Model used to estimate the ballistic coefficient.

agomEstboolean

Flag indicating whether the AGOM was estimated during this OD solution.

agomModelstring

Model used to estimate the AGOM.

rmsConvergenceCriterianumber double

OD parameter value for the Root Mean Square (RMS) convergence criteria to successfully close the OD solution.

numIterationsinteger

The number of iterations taken for the algorithm to converge on an OD solution.

acceptedObTypsstring[]

Array of UDL observation types (e.g. DOA, EO, RADAR, RF) of the observations that were accepted in this OD solution. See the associated acceptedObIds array for the records UUID(s), positionally corresponding to the record types in this array. The acceptedObTyps and acceptedObIds arrays must match in size.

acceptedObIdsstring[]

Array of UDL data (observation) UUIDs that were accepted in this OD solution. See the associated acceptedObTyps array for the specific types of observations for the positionally corresponding UUIDs in this array (the two arrays must match in size).

rejectedObTypsstring[]

Array of UDL observation types (e.g. DOA, EO, RADAR, RF) of the observations that were rejected in this OD solution. See the associated rejectedObIds array for the records UUID(s), positionally corresponding to the record types in this array. The rejectedObTyps and rejectedObIds arrays must match in size.

rejectedObIdsstring[]

Array of UDL data (observation) UUIDs that were rejected in this OD solution. See the associated rejectedObTyps array for the specific types of observations for the positionally corresponding UUIDs in this array (the two arrays must match in size).

sensorIdsstring[]

Array of UDL UUIDs (idSensor) of the sensors that contributed observations in this OD solution.

createdAtstring date-time

Time the row was created in the database, auto-populated by the system.

createdBystring

Application user who created the row in the database, auto-populated by the system.

sourceDLstring

The source data library from which this record was received. This could be a remote or tactical UDL or another data library. If null, the record should be assumed to have originated from the primary Enterprise UDL.

sourcestring required

Source of the data.

originstring

Originating system or organization which produced the data, if different from the source. The origin may be different than the source if the source was a mediating system which forwarded the data on behalf of the origin system. If null, the source may be assumed to be the origin.

origNetworkstring

The originating source network on which this record was created, auto-populated by the system.

dataMode'REAL' | 'TEST' | 'SIMULATED' | 'EXERCISE' required

Indicator of whether the data is REAL, TEST, EXERCISE, or SIMULATED data:

REAL: Data collected or produced that pertains to real-world objects, events, and analysis.

TEST: Specific datasets used to evaluate compliance with specifications and requirements, and for validating technical, functional, and performance characteristics.

EXERCISE: Data pertaining to a government or military exercise. The data may include both real and simulated data.

SIMULATED: Synthetic data generated by a model to mimic real-world datasets.

Example request

[
  {
    "id": "026dd511-8ba5-47d3-9909-836149f87686",
    "classificationMarking": "U",
    "startTime": "2023-08-28T11:20:21.247192Z",
    "endTime": "2023-08-28T15:20:21.247192Z",
    "idOnOrbit": "54741",
    "origObjectId": "ORIGOBJECT-ID",
    "satNo": 54741,
    "aprioriIdElset": "80e544b7-6a17-4554-8abf-7301e98f8e5d",
    "aprioriElset": {
      "idElset": "ELSET-ID",
      "classificationMarking": "U",
      "satNo": 12,
      "epoch": "2018-01-01T16:00:00.123456Z",
      "meanMotion": 1.1,
      "idOnOrbit": "ONORBIT-ID",
      "eccentricity": 0.333,
      "inclination": 45.1,
      "raan": 1.1,
      "argOfPerigee": 1.1,
      "meanAnomaly": 179.1,
      "revNo": 111,
      "bStar": 1.1,
      "agom": 0.0126,
      "ballisticCoeff": 0.00815,
      "meanMotionDot": 1.1,
      "meanMotionDDot": 1.1,
      "semiMajorAxis": 1.1,
      "period": 1.1,
      "apogee": 1.1,
      "perigee": 1.1,
      "origObjectId": "ORIGOBJECT-ID",
      "idOrbitDetermination": "026dd511-8ba5-47d3-9909-836149f87686",
      "line1": "Example line1",
      "line2": "Example line2",
      "descriptor": "Example description",
      "createdAt": "2018-01-01T16:00:00.123Z",
      "createdBy": "some.user",
      "rawFileURI": "Example URI",
      "origin": "THIRD_PARTY_DATASOURCE",
      "sourceDL": "AXE",
      "source": "Bluestaq",
      "dataMode": "TEST",
      "tags": [
        "PROVIDER_TAG1",
        "PROVIDER_TAG2"
      ],
      "algorithm": "Example algorithm",
      "sourcedData": [
        "OBSERVATION_UUID1",
        "OBSERVATION_UUID2"
      ],
      "sourcedDataTypes": [
        "RADAR",
        "RF"
      ],
      "transactionId": "TRANSACTION-ID",
      "ephemType": 1,
      "origNetwork": "OPS1"
    },
    "aprioriIdStateVector": "6e291992-8ae3-4592-bb0f-055715bf4803",
    "aprioriStateVector": {
      "idStateVector": "STATEVECTOR-ID",
      "classificationMarking": "U",
      "epoch": "2018-01-01T16:00:00.123456Z",
      "pedigree": "CONJUNCTION",
      "idOnOrbit": "ONORBIT-ID",
      "satNo": 12,
      "origObjectId": "ORIGOBJECT-ID",
      "idOrbitDetermination": "026dd511-8ba5-47d3-9909-836149f87686",
      "msgTs": "2018-01-01T16:00:00.123456Z",
      "uct": true,
      "xpos": -1118.577381,
      "ypos": 3026.231084,
      "zpos": 6167.831808,
      "xvel": -4.25242784,
      "yvel": 5.291107434,
      "zvel": -3.356493869,
      "xaccel": -2.12621392,
      "yaccel": 2.645553717,
      "zaccel": -1.06310696,
      "referenceFrame": "J2000",
      "cov": [
        1.1,
        2.4,
        3.8,
        4.2,
        5.5,
        6
      ],
      "covReferenceFrame": "J2000",
      "covMethod": "CALCULATED",
      "eqCov": [
        1.1,
        2.2
      ],
      "xposAlt1": -1145.688502,
      "yposAlt1": 3020.729572,
      "zposAlt1": 6165.55187,
      "xvelAlt1": -4.270832252,
      "yvelAlt1": 5.27074276,
      "zvelAlt1": -3.365155181,
      "alt1ReferenceFrame": "TEME",
      "xposAlt2": -1456.915926,
      "yposAlt2": -2883.540406,
      "zposAlt2": 6165.55187,
      "xvelAlt2": -1.219814294,
      "yvelAlt2": -6.602080212,
      "zvelAlt2": -3.365155181,
      "alt2ReferenceFrame": "EFG/TDR",
      "posUnc": 0.333399744452,
      "velUnc": 0.000004,
      "mass": 164.5,
      "area": 5.065,
      "solarRadPressCoeff": 0.0244394,
      "dragCoeff": 0.0224391269775,
      "dragArea": 4.739,
      "revNo": 7205,
      "geopotentialModel": "EGM-96",
      "dragModel": "JAC70",
      "lunarSolar": true,
      "solarRadPress": true,
      "srpArea": 4.311,
      "solidEarthTides": true,
      "inTrackThrust": true,
      "bDot": 1.23,
      "edr": 1.23,
      "thrustAccel": 1.23,
      "cmOffset": 1.23,
      "lastObStart": "2022-11-09T11:20:21.247192Z",
      "lastObEnd": "2022-11-09T11:20:21.247192Z",
      "obsAvailable": 376,
      "obsUsed": 374,
      "tracksAvail": 163,
      "tracksUsed": 163,
      "recODSpan": 3.5,
      "actualODSpan": 3.5,
      "residualsAcc": 99.5,
      "solarFluxF10": 1.23,
      "solarFluxF10Avg": 1.23,
      "solarFluxAPAvg": 1.23,
      "taiUtc": 1.23,
      "ut1Utc": 1.23,
      "ut1Rate": 1.23,
      "polarMotionX": 1.23,
      "polarMotionY": 1.23,
      "iau1980Terms": 4,
      "leapSecondTime": "2021-01-01T01:01:01.123Z",
      "integratorMode": "integratorMode",
      "partials": "ANALYTIC",
      "stepMode": "AUTO",
      "fixedStep": true,
      "stepSizeSelection": "AUTO",
      "stepSize": 1.23,
      "errorControl": 1.23,
      "sigmaPosUVW": [
        1.23,
        4.56
      ],
      "sigmaVelUVW": [
        1.23,
        4.56
      ],
      "rms": 0.991,
      "rawFileURI": "rawFileURI",
      "source": "Bluestaq",
      "origin": "THIRD_PARTY_DATASOURCE",
      "dataMode": "TEST",
      "tags": [
        "TAG1",
        "TAG2"
      ],
      "algorithm": "SAMPLE_ALGORITHM",
      "sourcedData": [
        "DATA1",
        "DATA2"
      ],
      "sourcedDataTypes": [
        "RADAR"
      ],
      "createdAt": "2018-01-01T16:00:00.123Z",
      "createdBy": "some.user",
      "descriptor": "descriptor",
      "missionCenter": "Mission Center A",
      "transactionId": "transactionId",
      "origNetwork": "OPS1",
      "sourceDL": "AXE"
    },
    "lastObStart": "2023-08-28T11:20:21.247192Z",
    "lastObEnd": "2023-08-28T11:20:21.247192Z",
    "timeSpan": 3.5,
    "effectiveFrom": "2023-08-28T11:20:21.247192Z",
    "effectiveUntil": "2023-08-30T08:15:00.123456Z",
    "wrms": 0.991,
    "previousWrms": 1.02,
    "firstPassWrms": 0.985,
    "bestPassWrms": 0.975,
    "errorGrowthRate": 1.23,
    "edr": 1.23,
    "method": "BLS",
    "methodSource": "ASW",
    "fitSpan": 0.6,
    "ballisticCoeffModel": "GaussMarkov",
    "agomModel": "RandomWalk",
    "rmsConvergenceCriteria": 0.001,
    "numIterations": 8,
    "acceptedObTyps": [
      "EO",
      "RADAR"
    ],
    "acceptedObIds": [
      "EOOBSERVATION-ID1",
      "RADAROBSERVATION-ID1"
    ],
    "rejectedObTyps": [
      "DOA",
      "RF"
    ],
    "rejectedObIds": [
      "DIFFOFARRIVAL-ID2",
      "RFOBSERVATION-ID2"
    ],
    "sensorIds": [
      "SENSOR-ID1",
      "SENSOR-ID2"
    ],
    "createdAt": "2018-01-01T16:00:00.123Z",
    "createdBy": "some.user",
    "sourceDL": "AXE",
    "source": "Bluestaq",
    "origin": "THIRD_PARTY_DATASOURCE",
    "origNetwork": "OPS1",
    "dataMode": "TEST"
  }
]

Response

Accepted

Changes

    • info

      added the new optional request property //

    • info

      added the non-success response with the status

    • info

      added the new ECR/ECEF enum value to the request property //

Some revisions have not been checked yet.