Other Information

Defining Output Settings

Most of the services will output routing and time data in different formats. The OutputSettings POST data specifies how often the data should occur and in what format it will be delivered. Routing data can be delivered in either Earth-Fixed or Earth-Inertial coordinates, and can be formatted as Latitude/Longitude/Altitude or Cartesian X/Y/Z. Note that inertial data can only be represented as X/Y/Z.

Dates and times are represented as either a date-time string in UTC, or as an offset from some initial time. The offset is in seconds, and is offset from the route or analysis start time.

{
    "Step": 60,
    "TimeFormat": "Epoch",
    "CoordinateFormat": {"Coord":"LLA"} or  {"Coord":"XYZ","Frame":"Inertial"} or {"Coord":"XYZ","Frame":"Fixed"} 
}
Step
The timestep specifying how often results are calculated, in seconds. Optional, must be > 0, default value is 60.
TimeFormat
The type of timing information in the results - UTC or epoch seconds. Optional, must be either "UTC" or "Epoch", default is "Epoch".
CoordinateFormat
The coordinate results return format - Cartesian (XYZ) or Cartographic (LLA). Optional, default is {"Coord":"LLA"}

Defining Airspace Options

All airspace services use an AirspaceOptions parameter that allows you to select which Airspaces you want to use in the analysis. Because the sheer number of possible airspaces is so large, we offer these filtering options to reduce the number of airspaces to search for intersections or display. You can select airspaces using the following methods.

Note that with the exception of the exact airspaceId method, all of these methods can be used together to filter the large list of airspaces down to your desired list.

Specify airspace categories

Airspace categories can be set to reduce the total number of airspaces to search through. The airspace categories are:

Specify exact airspaceIds

This method is the fastest. If the options parameter AirspaceIds has data in it, and the options parameter Search is false, the service will assume AirspaceIds contains exact airspace names and use only these airspaces. No other searching or filtering will be done for additional airspaces.

Search for airspaces by name

If you have a partial airspace name or names, you can put them in the AirspaceIds parameter and set the options Search parameter to true. This will tell the service to search for and return any airspaces that have the supplied partial name in their full name.

Note that the search is case sensitive and many airspaces use all capital letters in their names.

Search for airspaces by location

If you know the area you are in, you can search for airspaces by location. Specify the latitude and longitude in the RegionCenter parameter and value for the RegionRadius and set UseRegionalAirspaceQuery to true to search for airspaces in a circular region.

Return airspaces that touch the Earth's surface

You can limit your search to those airspaces that touch the surface of the Earth. To enable this constraint, set the OnSurface parameter to true.

Airspace Options Definition
{
    "AirspaceIds": ["AirspaceId1","AirspaceId2"],
    "Categories": ["ControlledAirspace","Laanc"],
    "OnSurface": false,
    "RegionCenter": {"Latitude":15.34,"Longitude": -120.92},
    "RegionRadius": 50000,
    "Search":false,
    "UseRegionalAirspaceQuery": true
}
AirspaceIds
An array of Airspace Id values to use when checking for intersections or proximity. If Search is false, these must match the official Airspace Id exactly. Use the Select Airspaces service to retrieve airspaceId values that can be used here. When Search is true, these values are the search terms for the airspaces to use. Lastly, if you specify airspaceIds for the service to check against, and any of those ids are unrecognized, they will be returned in the response. Required when 'Search' is true.
Categories
A list of airspace categories to use when searching. Optional, defaults to 'Default'. The 'Default' category includes Airports, ControlledAirspace, SpecialUseArea, Restricted and Parks airspaces. It excludes the Laanc airspace.
OnSurface
When true, only airspaces that touch the Earth's surface are returned. Optional, default is false.
RegionCenter
The location to use as the center when searching for airspaces. Required when UseRegionalAirspaceQuery is true.
RegionRadius
The search radius in meters, centered at RegionCenter, to use when searching for airspaces. Optional, default is 50000 m.
Search
When true, the AirspaceIds are considered terms to search for in the AirspaceId collection. Optional, default is false.
UseRegionalAirspaceQuery
When true, the service will search for airspaces within a circular region, defined by RegionCenter and RegionRadius. Optional, default is false.

Finding STK Data Federate Object URIs

SensorFOR services use catalog objects and must have a URI for the object definition. You can use the SocSearch query system to search for objects and retrieve their URIs for use in these analytical services. Note that the SensorFOR services require that a catalog object have a sensor attached. The SOC currently only supports optical sensors on spacecraft. Any object used in the SensorFOR services that does not have a sensor as a child object will fail. Search tips given below show how to get catalog objects with optical sensors.

You can search for spacecraft with sensors using a query object, specifying the name, or many other types of catalog object attributes. To query the SOC, use this URL:

Spacecraft
https://sdf10.agi.com/SocSearch/20140717/catalogs/spacecraft/definitions?query={...query object...}

For example, to get all of the spacecraft that have sensors (which can be used in these services), use the following query object:

{
    "criteria":
    [
        {   "type":"InSetCatalogCriterion",
            "attribute":"objectExtension",
            "values":["Optical Sensor"]
        }
    ]
}

The full search url for spacecraft that have optical sensors is then:

https://sdf10.agi.com/SocSearch/20140717/catalogs/spacecraft/definitions?query={"criteria":[{"type":"InSetCatalogCriterion","attribute":"objectExtension","values":["Optical Sensor"]}]}

To look for a specific satellite by name using wildcards, that has an optical sensor, use this query object:

{
    "criteria":
    [
        {   "type":"AsteriskWildcardCatalogCriterion",
            "attribute":"name",
            "value":"Noaa*"
        },
        {   "type":"InSetCatalogCriterion",
            "attribute":"objectExtension",
            "values":["Optical Sensor"]
        }
    ]
}

There are several criteria types that can be used.

The attributes you can use when searching for objects are defined here: https://sdf10.agi.com/SocSearch/20140717/catalogs/spacecraft/attributes.

Once you've retrieved the object definitions based on your search, the URI required by the SensorFOR services is listed in the returned object definition's "uri" field.


Declaring a site object

Some of the services allow you to specify a site object as part of the post data. Since this is not a route type, it is not listed in the routing section.

Where sites can be used, they can be defined as follows:

{	
    "Location":
        {   "Latitude":40.0012,
            "Longitude":-75.661,
            "Altitude":19.0
        },
    "MeanSeaLevel":true,
    "OutputSettings": {}
}
Location
The latitude, longitude and altitude for the site. Longitudes are measured negative west of the Prime Meridian. Altitude is in meters. Required.
MeanSeaLevel
Set this to true is the site's aititude is measured from mean sea level, false if it is measured from WGS-84. Optional, default is true.
OutputSettings
The output settings defined above. Optional.