Routing Services

SGP4 Orbits

The SGP4 service produces orbital ephemerides for satellites using Two Line Element (TLE) sets. A TLE or TLEs can be provided, or if the satellite's SSC number is known, that may be provided instead. When a satellite SSC number is used, the TLEs for that satellite are retrieved for the analysis time specified.

API Path
vehiclePath/sgp4
HTTP Method
POST
Input Format
{
    "Start": "YYYY-MM-DDTHH:mm:ss",
    "Stop" : "YYYY-MM-DDTHH:mm:ss",
    "SSC": 12345,
    "TLEs": ["TLE string 1","TLE string 2"],
    "OutputSettings": (see output POST Data Example)
}
Note: Either the SSC or the TLEs must be specified. If both SSC and TLEs are specified, the TLEs will be used.
Start
The start date and time for the ephemeris.
Stop
The stop date and time for the ephemeris.
SSC
The satellite SSC number as an integer.
TLEs
An array of strings of TLE information.
OutputSettings
The output settings for this analysis. Optional.
Input Sample

Generates a route for the ISS with Cartesian coordinates produced every 300 seconds for an hour, in the Earth-Inertial frame.

{
    "Start": "2014-02-20T03:00:00",
    "Stop": "2014-02-20T04:00:00",
    "SSC": 25544,
    "OutputSettings": {
        "Step": 300,
        "TimeFormat": "Epoch",
        "CoordinateFormat": {
            "Coord": "XYZ",
            "Frame": "Inertial"
        }
    }
}
Output Sample
[
    {
        "Position":       {
            "X": 3085496.511013002,
            "Y": 2898467.754969848,
            "Z": 5302752.503592044
        },
        "SensorStates": [],
        "Time": "0"
    },
    {
        "Position": {
            "X": 1256519.3593463688,
            "Y": 4263402.287469258,
            "Z": 5126245.4006900005
        },
        "SensorStates": [],
        "Time": "300"
    },
    {
        "Position":       {
            "X": -715009.3540436104,
            "Y": 5144567.499790819,
            "Z": 4366433.152269775
        },
        "SensorStates": [],
        "Time": "600"
    },
    {
        "Position":       {
            "X": -2605318.67957555,
            "Y": 5441534.987622223,
            "Z": 3109400.724052988
        },
        "SensorStates": [],
        "Time": "900"
    },
    {
        "Position":       {
            "X": -4199380.856303051,
            "Y": 5120231.219910903,
            "Z": 1498339.7332892409
        },
        "SensorStates": [],
        "Time": "1200"
    },
    {
        "Position":       {
            "X": -5316461.128251025,
            "Y": 4217058.298951931,
            "Z": -283730.65111991536
        },
        "SensorStates": [],
        "Time": "1500"
    },
    {
        "Position":       {
            "X": -5829785.904932874,
            "Y": 2834943.27605301,
            "Z": -2033524.9847030835
        },
        "SensorStates": [],
        "Time": "1800"
    },
    {
        "Position":       {
            "X": -5682075.136189737,
            "Y": 1131317.7837172367,
            "Z": -3552141.395508911
        },
        "SensorStates": [],
        "Time": "2100"
    },
    {
        "Position":       {
            "X": -4891379.350404393,
            "Y": -700396.5601252838,
            "Z": -4667721.229292416
        },
        "SensorStates": [],
        "Time": "2400"
    },
    {
        "Position":       {
            "X": -3548264.084661977,
            "Y": -2453077.161885626,
            "Z": -5254706.889790647
        },
        "SensorStates": [],
        "Time": "2700"
    },
    {
        "Position":       {
            "X": -1804965.4649591837,
            "Y": -3929141.197390009,
            "Z": -5247412.823058894
        },
        "SensorStates": [],
        "Time": "3000"
    },
    {
        "Position":       {
            "X": 141810.34794322288,
            "Y": -4962250.821805865,
            "Z": -4646871.540996537
        },
        "SensorStates": [],
        "Time": "3300"
    },
    {
        "Position":       {
            "X": 2072546.8722060202,
            "Y": -5435537.514825438,
            "Z": -3520631.450253616
        },
        "SensorStates": [],
        "Time": "3600"
    }
]

Point To Point Routes

Point to point routes move along straight lines between each point. The time at each point is also specified, so the velocity from point to point may vary. This type of route will not take ground level into consideration, It will simply interpolate between points when producing a route.

API Path
vehiclePath/pointToPoint
HTTP Method
POST
Input Format
{
    "Waypoints": [{"Position":{"Latitude":39.07096,"Longitude":-104.78509,"Altitude":2000.0}, "Time":"2014-03-25T18:30:00"},
                  {"Position":{"Latitude":39.06308,"Longitude":-104.78500,"Altitude":2010.0}, "Time":"2014-03-25T18:30:20"}
                 ],
    "IncludeWaypointsInRoute": true,
    "OutputSettings": {}
}
Waypoints
An array of position and time data. Must contain at least two waypoints.
IncludeWaypointsInRoute
When true, the Waypoints sent to the service will also be included in the output, whether or not they lie on the step boundary defined in OutputSettings. Optional, default is true.
OutputSettings
The output settings for this analysis. Optional.
Input Sample
{
    "Waypoints": [
        {
            "Position": {
                "Latitude": 39.07096,
                "Longitude": -104.78509,
                "Altitude": 2000.0
            },
            "Time": "2014-03-25T18:30:00"
        },
        {
            "Position": {
                "Latitude": 39.06308,
                "Longitude": -104.78500,
                "Altitude": 2010.0
            },
            "Time": "2014-03-25T18:30:20"
        }
    ],
    "IncludeWaypointsInRoute": true,
    "OutputSettings": {
        "Step": 5,
        "TimeFormat": "Epoch",
        "CoordinateFormat": { "Coord": "LLA" }
    }
}
Output Sample
[
    {
        "Position":       {
            "Latitude": 39.070960000000014,
            "Longitude": -104.78509,
            "Altitude": 1999.9999999992813
        },
        "SensorStates": [],
        "Time": "0"
    },
    {
        "Position":       {
            "Latitude": 39.06898999868754,
            "Longitude": -104.78506749809726,
            "Altitude": 2002.4887160549392
        },
        "SensorStates": [],
        "Time": "5"
    },
    {
        "Position": {
            "Latitude": 39.067019998246934,
            "Longitude": -104.78504499746309,
            "Altitude": 2004.9849547447313
        },
        "SensorStates": [],
        "Time": "10"
    },
    {
        "Position":       {
            "Latitude": 39.065049998682866,
            "Longitude": -104.78502249809738,
            "Altitude": 2007.4887160614594
        },
        "SensorStates": [],
        "Time": "15"
    },
    {
        "Position":       {
            "Latitude": 39.06308000000001,
            "Longitude": -104.785,
            "Altitude": 2009.999999999331
        },
        "SensorStates": [],
        "Time": "20"
    }
]

Simple Flight Routes

Simple flight routes are defined by a few waypoints, with the vehicle making smooth turns around each waypoint, all at a constant altitude.

API Path
vehiclePath/simpleFlight
HTTP Method
POST
Input Format
{
    "Start": "YYYY-MM-DDTHH:mm:ss",
    "Waypoints": [{"Latitude":0.0,"Longitude":0.0},{"Latitude":0.0,"Longitude":0.0},...],
    "TurningRadius": 200,
    "Speed": 65,
    "Altitude": 1000,
    "MeanSeaLevel": true,
    "OutputSettings": {} 
}
Start
The start date and time for the route.
Waypoints
An array of position data. Must contain at least two waypoints.
TurningRadius
The turning radius of the aircraft, in meters. Optional, must be > 0, default value is 200.
Speed
The constant speed of the aircraft, in meters/second. Optional, must be > 0, default value is 65.
Altitude
The constant altitude of the aircraft, in meters. Optional, must be > 0, default value is 1000.
MeanSeaLevel
Whether the altitude is referenced to Mean Sea Level (true) or the Earth Ellipsoid (false). Optional, default value is true.
OutputSettings
The output settings for this analysis. Optional. Note that this route type only supports the "Fixed" frame.
Input Sample
{
    "Start": "2014-01-18T08:34:56",
    "Waypoints": [
        {
            "Latitude": -32.6,
            "Longitude": 22.0
        },

        {
            "Latitude": 30.0,
            "Longitude": 30.16
        }
    ],
    "TurningRadius": 2500,
    "Speed": 500,
    "Altitude": 5000,
    "MeanSeaLevel": true,
    "OutputSettings": {
        "Step": 3600,
        "TimeFormat": "UTC",
        "CoordinateFormat": { "Coord": "LLA" }
    }
}
Output Sample
[
    {
        "Position":       {
            "Latitude": -32.599999999999774,
            "Longitude": 22.000000000000036,
            "Altitude": 5033.371999999755
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": -16.474552142455618,
            "Longitude": 24.203504242656916,
            "Altitude": 5007.649427109628
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": -0.3249196369311663,
            "Longitude": 26.228227829483213,
            "Altitude": 4982.502507799204
        },
        "SensorStates": [],
        "Time": "2014-01-18T10:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 15.825217650226044,
            "Longitude": 28.24967376437463,
            "Altitude": 5006.760907261212
        },
        "SensorStates": [],
        "Time": "2014-01-18T11:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 29.99999999999965,
            "Longitude": 30.15999999999995,
            "Altitude": 5016.203599997964
        },
        "SensorStates": [],
        "Time": "2014-01-18T12:27:39.8257217Z"
    }
]

Great Arc Routes

Great arc routes are propagated over the Earth's ellipsoid with the route endpoints defined by waypoints and time. The full route will continue from waypoint to waypoint, propagated as discrete great arc segments, with varying speeds along each segment, as defined by the time and distance between waypoints for that segment. The speed along any segment is a constant.

API Path
vehiclePath/greatArc
HTTP Method
POST
Input Format
{
    "Waypoints": [{"Position":{"Latitude":39.07096,"Longitude":-104.78509,"Altitude":2000.0}, "Time":"2014-03-25T18:30:00"},
                  {"Position":{"Latitude":39.06308,"Longitude":-104.78500,"Altitude":2010.0}, "Time":"2014-03-25T18:30:20"},
                  ...],
    "OutputSettings": {}
}
Waypoints
An array of position data. Must contain at least two waypoints.
OutputSettings
The output settings for this analysis.
Input Sample
{
    "Waypoints": [
        {
            "Position": {
                "Latitude": 39.07096,
                "Longitude": -104.78509,
                "Altitude": 2000.0
            },
            "Time": "2014-03-25T18:30:00"
        },
        {
            "Position": {
                "Latitude": 39.06308,
                "Longitude": -104.78500,
                "Altitude": 2010.0
            },
            "Time": "2014-03-25T18:30:20"
        }
    ],
    "OutputSettings": {
        "Step": 5,
        "TimeFormat": "Epoch",
        "CoordinateFormat": { "Coord": "LLA" }
    }
}
Output Sample
[
    {
        "Position":       {
            "Latitude": 39.070960000000646,
            "Longitude": -104.78509000000001,
            "Altitude": 1999.9999999992808
        },
        "SensorStates": [],
        "Time": "0"
    },
    {
        "Position":       {
            "Latitude": 39.06899000100831,
            "Longitude": -104.78506749812385,
            "Altitude": 2000.625000000331
        },
        "SensorStates": [],
        "Time": "5"
    },
    {
        "Position": {
            "Latitude": 39.067020001344105,
            "Longitude": -104.78504499749869,
            "Altitude": 2002.4999999989914
        },
        "SensorStates": [],
        "Time": "10"
    },
    {
        "Position":       {
            "Latitude": 39.06505000100824,
            "Longitude": -104.78502249812438,
            "Altitude": 2005.6249999999736
        },
        "SensorStates": [],
        "Time": "15"
    },
    {
        "Position":       {
            "Latitude": 39.063080000000674,
            "Longitude": -104.78500000000075,
            "Altitude": 2009.9999999987442
        },
        "SensorStates": [],
        "Time": "20"
    }
]

Takeoff and Landing Routes

Takeoff and landing routes start and end on a runway. There are three segments: takeoff & ascent, cruise, and descent & landing. The cruise portion is at a constant speed and altitude.

API Path
vehiclePath/tol
HTTP Method
POST
Input Format
{
    "Start": "YYYY-MM-DDTHH:mm:ss",
    "TakeOffPoint": {"Latitude":0.0,"Longitude":0.0, "Altitude": 0.0},
    "LandingPoint": {"Latitude":0.0,"Longitude":0.0, "Altitude":0.0},
    "Speed": 65,
    "Altitude": 1000,
    "MeanSeaLevel": true,
    "OutputSettings": {} 
}
Start
The start date and time for the route.
TakeoffPoint
The location of the runway on which the route begins.
LandingPoint
The location of the runway on which the route ends.
Speed
The constant speed of the aircraft in the cruise portion of the flight, in meters/second. Optional, must be > 0, default value is 65.
Altitude
The constant altitude of the aircraft in the cruise portion of the flight, in meters. Optional, must be > 0, default value is 1000.
MeanSeaLevel
Whether the altitude is referenced to Mean Sea Level (true) or the Earth Ellipsoid (false). Optional, default value is true.
OutputSettings
The output settings for this analysis. Optional.
Input Sample
{
    "Start": "2014-01-18T08:34:56",
    "TakeOffPoint": {
        "Latitude": 31.0,
        "Longitude": -122.0,
        "Altitude": 15.0
    },
    "LandingPoint": {
        "Latitude": 40.0,
        "Longitude": -77.0,
        "Altitude": 180.0
    },
    "Speed": 400,
    "Altitude": 9144,
    "MeanSeaLevel": true,
    "OutputSettings": {
        "Step": 3600,
        "TimeFormat": "UTC",
        "CoordinateFormat": { "Coord": "LLA" }
    }
}
Output Sample
[
    {
        "Position":       {
            "Latitude": 30.99999999999968,
            "Longitude": -122.00000000000075,
            "Altitude": 0
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:34:56.0000000Z"
    },
    {
        "Position": {
            "Latitude": 34.93812385045141,
            "Longitude": -111.39702636317952,
            "Altitude": 9144.000000000442
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 38.576439776638104,
            "Longitude": -95.89336473380986,
            "Altitude": 9143.99999999934
        },
        "SensorStates": [],
        "Time": "2014-01-18T10:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 39.993728143073106,
            "Longitude": -79.27828720573818,
            "Altitude": 9143.999999999298
        },
        "SensorStates": [],
        "Time": "2014-01-18T11:34:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 39.999958567049696,
            "Longitude": -76.99414502757574,
            "Altitude": -34.50893358444496
        },
        "SensorStates": [],
        "Time": "2014-01-18T11:43:07.7020282Z"
    }
]

Raster Search Routes

Raster pattern for defining a search route.

API Path
vehiclePath/raster
HTTP Method
POST
Input Format
{
    "Start": "YYYY-MM-DDTHH:mm:ss",
    "CenterPoint": {"Latitude":0.0,"Longitude":0.0},
    "Length": 20000,
    "Width": 30000,
    "SearchHeading": 45,
    "TurningRadius": 1000,
    "Speed": 65,
    "Altitude": 1000,
    "MeanSeaLevel": true,
    "OutputSettings": {} 
}
Start
The start date and time for the route.
CenterPoint
The location of the center of the search area.
Length
The length of the Search area, in meters.
Width
The width of the search area, in meters
SearchHeading
The direction of the main search route lines, in degrees. Must be between 0 and 360 inclusive. Optional, default is 0.
TurningRadius
The turning radius of the aircraft, in meters. Optional, must be > 0, default value is 200.
Speed
The constant speed of the aircraft, in meters/second. Optional, must be > 0, default value is 65.
Altitude
The constant altitude of the aircraft, in meters. Optional, must be > 0, default value is 1000.
MeanSeaLevel
Whether the altitude is referenced to Mean Sea Level (true) or the Earth Ellipsoid (false). Optional, default value is true.
OutputSettings
The output settings for this analysis. Optional.
Input Sample
{
    "Start": "2014-01-18T08:34:56",
    "CenterPoint": {
        "Latitude": 31.0,
        "Longitude": -122.0
    },
    "Length": 20000,
    "Width": 30000,
    "SearchHeading": 45,
    "TurningRadius": 1000,
    "Speed": 110,
    "Altitude": 2000,
    "MeanSeaLevel": true,
    "OutputSettings": {
        "Step": 300,
        "TimeFormat": "UTC",
        "CoordinateFormat": { "Coord": "LLA" }
    }
}
Output Sample
[
    {
        "Position":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:34:56.0000000Z"
    },
    {
        "Position": {
            "Latitude": 31.07747559201466,
            "Longitude": -122.08778774052648,
            "Altitude": 1957.8449275164235
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:39:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 31.125696832951192,
            "Longitude": -122.00207253427746,
            "Altitude": 1957.890891434863
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:44:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 31.015393412064803,
            "Longitude": -122.07102159994527,
            "Altitude": 1957.7767088363944
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:49:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.985648930079122,
            "Longitude": -122.07595959797722,
            "Altitude": 1957.7424298832018
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:54:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 31.04498955268595,
            "Longitude": -121.94766194663912,
            "Altitude": 1957.8081291642907
        },
        "SensorStates": [],
        "Time": "2014-01-18T08:59:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 31.004959791921358,
            "Longitude": -121.96458419813436,
            "Altitude": 1957.7665186062563
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:04:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.89560016981543,
            "Longitude": -122.03461369650604,
            "Altitude": 1957.6335638309306
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:09:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.953579503969603,
            "Longitude": -121.93542821985244,
            "Altitude": 1957.7087966457557
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:14:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.99421117048924,
            "Longitude": -121.85847503287518,
            "Altitude": 1957.7592387321774
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:19:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.8836797569601,
            "Longitude": -121.9278542593114,
            "Altitude": 1957.6286724230636
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:24:56.0000000Z"
    },
    {
        "Position":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "SensorStates": [],
        "Time": "2014-01-18T09:27:05.6783519Z"
    }
]

Catalog Object Routes

A route defined by the ephemeris associated with a STK Data Federate (SDF) catalog object. The returned route depends on how the route is defined in the catalog object.

API Path
vehiclePath/catalogObject
HTTP Method
POST
Input Format
{
    "Start": "2014-02-20T00:00:00",
    "Stop": "2014-02-21T00:00:00",
    "URI": "uri to the json object definition in the SDF",
    "OutputSettings": {
        "Step": 60,
        "TimeFormat": "Epoch",
        "CoordinateFormat": {
            "Coord": "XYZ",
            "Frame": "Fixed"
        }
    }
}
Start
The start date and time for the route.
Stop
The stop date and time for the route.
URI
A URI that points to the json object definition on the STK Data Federate (SDF). See Finding SDF Object URIs to get the URI for the object you're interested in.
OutputSettings
The output settings for this analysis. Optional.
Input Sample
{
    "Start": "2014-02-20T00:00:00",
    "Stop": "2014-02-21T00:00:00",
    "URI": "https://sdf10.agi.com/SocSearch/20140717/catalogs/spacecraft/items/h5k9QhmEhQ6nr_Z0tcrwRA/definition",
    "OutputSettings": {
        "Step": 60,
        "TimeFormat": "Epoch",
        "CoordinateFormat": {
            "Coord": "LLA"
        }
    }
}
Output Sample
[
    {
        "Position": {
            "Latitude": 13.294195282453124,
            "Longitude": 159.49413587740543,
            "Altitude": 677262.11122094688
        },
        "SensorStates": [],
        "Time": "0"
    },
    {
        "Position": {
            "Latitude": 9.64689929277828,
            "Longitude": 158.7040002604836,
            "Altitude": 677597.74714593939
        },
        "SensorStates": [],
        "Time": "60"
    }
]