Navigation Services

Gps Satellite Outages

Gps satellites routinely go off-the-air for maintenance and other reasons. Knowing which satellites are out is crucial to correctly determining your location and location errors. This service retrieves outages for all satellites during a specified time, or a single satellite for a specified time, or for a single satellite for any time.

The outage data goes back to 1998 - outages prior to then are not reported.

API Paths
/navigation/gpsSatelliteOutages?u=APIKEY&from=YYYY-MM-DDTHH:mm:ss&to=YYYY-MM-DDTHH:mm:ss&sof="SOF Uri"
/navigation/gpsSatelliteOutages?u=APIKEY&from=YYYY-MM-DDTHH:mm:ss&to=YYYY-MM-DDTHH:mm:ss&prn=XX&sof="SOF Uri"
/navigation/gpsSatelliteOutages?u=APIKEY&prn=XX&sof="SOF Uri"
HTTP Method
GET
Input Format
from
The start date and time to look for Gps satellite outages.
to
The stop date and time to look for Gps satellite outages.
prn
The PseudoRandom Number for the desired satellite. Valid range is 1-32 inclusive. See the US Coast Guard Constellation Status for PRN information.
sof
The Uri specifying a Satellite Outage File (SOF) to use. When not specified, the service will find the appropriate SOF to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file.
Input Sample
    /navigation/gpsSatelliteOutages?u=YOUR_API_KEY&prn=22
Output Sample
[
 {
    "Start":"1998-03-24T14:10:00Z",
    "Stop":"1998-03-24T19:39:00Z",
    "NanuNumber":"1998042",
    "NanuLink":"https://celestrak.com/GPS/NANU/1998/nanu.1998042.txt",
    "NanuType":"FCSTSUMM",
    "Svn":22,
    "Prn":22,
    "Duration":19740.0,
    "OutageType":"Historical"
 },
 {
    "Start":"1998-09-13T09:53:00Z",
    "Stop":"1998-09-13T10:22:00Z",
    "NanuNumber":"1998130",
    "NanuLink":"https://celestrak.com/GPS/NANU/1998/nanu.1998130.txt",
    "NanuType":"UNUNOREF",
    "Svn":22,
    "Prn":22,
    "Duration":1740.0,
    "OutageType":"Historical"
 }
]

Gps Data

Different types of data are required to perform GPS navigation analyses. The navigation services on this site use the best data for a given request, however if you need the data separately, you can use these data services to retrieve it. There are four types of data available: Performance Assessment Files (PAF), Prediction Support files (PSF), Satellite Outage Files (SOF) and SEM Almanac Files. Files retrieved can be the latest on the server, or retrieved for a specific date. All data comes from AGI's FTP server.

API Paths
/navigation/PAFData?u=APIKEY (retrieves the latest)
/navigation/PAFData?u=APIKEY&date=YYYY-MM-DD
/navigation/PSFData?u=APIKEY (retrieves the latest)
/navigation/PSFData?u=APIKEY&date=YYYY-MM-DD
/navigation/SOFData?u=APIKEY (retrieves the latest)
/navigation/AlmanacData?u=APIKEY (retrieves the latest)
/navigation/AlmanacData?u=APIKEY&date=YYYY-MM-DD
HTTP Method
GET
Input Format
date
The date of the file to retrieve.
Input Sample
        /navigation/PSFData?u=APIKEY
Output Sample
{
    "date": "2016-09-18",
    "PredictionSupportFile": "...PSF contents..."
}

Gps Predicted Errors

This service provides statistical predictions of Gps errors calculated at a site or over different route types. Gps error predictions are statistical values that are returned at a 95% confidence level by default. You can specify different confidence levels if you wish. There are several returned values for errors; X and Y represent the East and North error respectively. Horizontal error is a combination of the X and Y errors. Vertical error is the error in the local zenith direction. Total error is a combination of horizontal and vertical errors. All position errors are in meters. Time error is the error in the Gps receiver's determination of the exact time, in seconds.

API Paths
navigation/predicted/site
navigation/predicted/pointToPoint
navigation/predicted/simpleFlight
navigation/predicted/tol
navigation/predicted/raster
navigation/predicted/greatArc
HTTP Method
POST
Input Format

All Gps predictions can be performed at a site or along a route specified in the API paths above. For the Path element below, use the JSON from the routing section or a site location. The service will use the route's start and stop times for the Gps error predictions if a route is used. If a site is used, you must set the AnalysisStart and AnalysisStop times below.

Note that the navigation services ignore the "CoordinateFormat" element supplied in the OutputSettings. All location data is returned in Earth-Fixed, LLA format for these services.

The defaults represent a typical, consumer level GPS receiver.

{
    "Path":{},
    "AnalysisStart": "YYYY-MM-DDTHH:mm:ss",
    "AnalysisStop": "YYYY-MM-DDTHH:mm:ss",
    "NumberOfChannels": 12,
    "MinimumElevationAngle": 5.0,
    "EarthLineOfSight": true,
    "ReceiverNoiseError": 0.8,
    "BestN": false,
    "ScaleToConfidence": true,
    "PercentConfidence": 95,
    "UseBestAvailableData": true,
    "PsfLocation":"Uri to specific Psf",
    "SemAlmanacLocation":"Uri to specific SEM Almanac",
    "SofLocation":"Uri to specific Sof"
}
Path
JSON object defining the location point(s) on which Gps predictions will be calculated.
AnalysisStart
The start date and time of the Gps predictions. Required for site paths, ignored when the Path is a route.
AnalysisStop
The stop date and time of the Gps predictions. Required for site paths, ignored when the Path is a route.
NumberOfChannels
The number of channels the Gps receiver uses to track Gps satellites. Optional, must be 4 or greater, default value is 12.
MinimumElevationAngle
The angle in degrees, from the horizon towards zenith, below which no Gps satellites will be used to determine the location error. Optional, default value is 5.
EarthLineOfSight
Whether to use the Earth as a visibility constraint for accessing satellites. Optional, default value is true.
ReceiverNoiseError
The amount of error, in meters, that the Gps receiver contributes to the location error. Optional, must be positive, default value is 0.8.
BestN
When true, a BestN algorithm is used to select which Gps satellites to use. when false, and All-In-View algorithm is used. Optional, default value is false.
ScaleToConfidence
When true, the Gps error predictions are scaled to a specified statistical confidence level. When false, the confidence level is the Root Mean Square (RMS) for the type of error being used. Optional, default value is true.
PercentConfidence
The statistical percent confidence value the Gps predicted errors will be scaled to, when ScaleToConfidence is true. Optional, must be 0-100 inclusive, default value is 95.
UseBestAvailableData
When true, if the specified PsfLocation does not provide a valid Psf, or if the Gps almanac for the analysis is not available, the service will find the best Psf and almanac to use based on the dates of analysis. Optional, default value is true.
PsfLocation
The Uri specifying a Prediction Support File (PSF) to use for individual Gps satellite error statistics. When not specified, the service will find the appropriate Psf to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file.
SemAlmanacLocation
The Uri specifying a SEM formatted almanac to use when determining Gps satellite positions. When not specified, the service will find the appropriate SEM almanac to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file.
SofLocation
The Uri specifying a Satellite Outage File (SOF) to use when determining individual Gps satellite outages. When not specified, the service will find the appropriate Sof to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file.
Input Sample: Single Site

This sample shows how to calculate predicted Gps errors for a single site. Use the url navigation/predicted/site with this example. To use a different path, find the Url for the type of path you want to use, then replace the "Path" JSON in this example with your path's JSON from the routing section.

{
    "Path": {
        "Location": {
            "Latitude": 39.0,
            "Longitude": -104.0,
            "Altitude": 1000.0
        },
        "MeanSeaLevel": true,
        "OutputSettings": {
            "Step": 900
        }
    },
    "AnalysisStart": "2014-05-03T00:00",
    "AnalysisStop": "2014-05-03T01:00",
    "NumberOfChannels": 10,
    "MinimumElevationAngle": 7.5,
    "ReceiverNoiseError": 1.2
}
Output Sample: Single Site
{
    "Errors":    [
        {
            "Time": "2014-05-03T00:00:00Z",
            "HorizontalError": 2.9836514129725282,
            "VerticalError": 4.9998436416239,
            "TimeError": 1.1470857653907375E-8,
            "PositionError": 5.430004295713714,
            "XError": 1.6343751256328605,
            "YError": 2.671596748279873,
            "NumberOfSatellites": 9
        },
        {
            "Time": "2014-05-03T00:15:00Z",
            "HorizontalError": 2.8382211211750255,
            "VerticalError": 4.993830460952492,
            "TimeError": 1.1243103532823227E-8,
            "PositionError": 5.351989891998048,
            "XError": 1.5788894801011106,
            "YError": 2.5264268235114757,
            "NumberOfSatellites": 9
        },
        {
            "Time": "2014-05-03T00:30:00Z",
            "HorizontalError": 2.60811428859489,
            "VerticalError": 4.579372889101017,
            "TimeError": 1.0023143074366072E-8,
            "PositionError": 4.910506052841392,
            "XError": 1.5446310038765965,
            "YError": 2.260308279294704,
            "NumberOfSatellites": 9
        },
        {
            "Time": "2014-05-03T00:45:00Z",
            "HorizontalError": 2.2310611351621477,
            "VerticalError": 3.6398266139995568,
            "TimeError": 7.546154226460806E-9,
            "PositionError": 3.9835288234139563,
            "XError": 1.5297675313789207,
            "YError": 1.7732108385758831,
            "NumberOfSatellites": 10
        },
        {
            "Time": "2014-05-03T01:00:00Z",
            "HorizontalError": 2.172123858906221,
            "VerticalError": 3.561131121778254,
            "TimeError": 7.052350400686875E-9,
            "PositionError": 3.891818496593766,
            "XError": 1.5324511423415916,
            "YError": 1.6882307883586223,
            "NumberOfSatellites": 10
        }
    ],
    "NumberOfSatellitesExtremes":    {
        "Max": 10,
        "Min": 9
    },
    "Location":    {
        "Latitude": 38.99999999999999,
        "Longitude": -104,
        "Altitude": 1000.0000000001264
    },
    "VerticalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 4.9998436416239,
        "Min": 3.561131121778254
    },
    "HorizontalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 2.9836514129725282,
        "Min": 2.172123858906221
    },
    "TimeExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 1.1470857653907375E-8,
        "Min": 7.052350400686875E-9
    },
    "TotalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 5.430004295713714,
        "Min": 3.891818496593766
    },
    "XExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T00:45:00Z",
        "Max": 1.6343751256328605,
        "Min": 1.5297675313789207
    },
    "YExtremes":    {
        "LocationOfMax":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin":       {
            "Latitude": 38.99999999999999,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 2.671596748279873,
        "Min": 1.6882307883586223
    }
}
Input Sample: Raster Search Route

This sample shows how to calculate predicted Gps errors for a route. Use the url navigation/predicted/raster with this example. To use a different path, find the Url for the type of path you want to use, then replace the "Path" JSON in this example with your path's JSON from the routing section.

{
    "Path": {
        "Start": "2014-05-03T08: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": 900
        }
    },
    "NumberOfChannels": 10,
    "MinimumElevationAngle": 7.5,
    "ReceiverNoiseError": 1.2
}
Output Sample: Raster Search Route
{
    "Errors":    [
        {
            "Location": {
                "Latitude": 31.02551127629426,
                "Longitude": -122.17778707896179,
                "Altitude": 1957.7894344951756
            },
            "Time": "2014-05-03T08:34:56Z",
            "HorizontalError": 2.155278785957263,
            "VerticalError": 3.517009918748047,
            "TimeError": 6.698097073484549E-9,
            "PositionError": 3.8488529697200073,
            "XError": 1.458990478510273,
            "YError": 1.729034044560885,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.015393412064803,
                "Longitude": -122.07102159994527,
                "Altitude": 1957.7767088363944
            },
            "Time": "2014-05-03T08:49:56Z",
            "HorizontalError": 2.1899440597976763,
            "VerticalError": 3.3902940690590326,
            "TimeError": 6.6283845014675475E-9,
            "PositionError": 3.7699899002116943,
            "XError": 1.4643025691932203,
            "YError": 1.7720032496391132,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.004959791921358,
                "Longitude": -121.96458419813436,
                "Altitude": 1957.7665186062563
            },
            "Time": "2014-05-03T09:04:56Z",
            "HorizontalError": 2.3709046801260087,
            "VerticalError": 3.6511967120711253,
            "TimeError": 7.74545460882783E-9,
            "PositionError": 4.066864660939501,
            "XError": 1.7075822654022041,
            "YError": 1.8104450676808341,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.99421117048924,
                "Longitude": -121.85847503287518,
                "Altitude": 1957.7592387321774
            },
            "Time": "2014-05-03T09:19:56Z",
            "HorizontalError": 2.398409655289929,
            "VerticalError": 3.479157906200179,
            "TimeError": 7.460161562617636E-9,
            "PositionError": 3.9525552404117095,
            "XError": 1.7038425092995286,
            "YError": 1.8533769399804072,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.974488622888096,
                "Longitude": -121.8221218118964,
                "Altitude": 1957.7394057434326
            },
            "Time": "2014-05-03T09:27:05.6783519Z",
            "HorizontalError": 3.2258368274389984,
            "VerticalError": 4.858058514991287,
            "TimeError": 1.1631495074326601E-8,
            "PositionError": 5.450190072156878,
            "XError": 2.2860880295516433,
            "YError": 2.4978760348922973,
            "NumberOfSatellites": 7
        }
    ],
    "NumberOfSatellitesExtremes":    {
        "Max": 9,
        "Min": 7
    },
    "VerticalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.015393412064803,
            "Longitude": -122.07102159994527,
            "Altitude": 1957.7767088363944
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:49:56Z",
        "Max": 4.858058514991287,
        "Min": 3.3902940690590326
    },
    "HorizontalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 3.2258368274389984,
        "Min": 2.155278785957263
    },
    "TimeExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.015393412064803,
            "Longitude": -122.07102159994527,
            "Altitude": 1957.7767088363944
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:49:56Z",
        "Max": 1.1631495074326601E-8,
        "Min": 6.6283845014675475E-9
    },
    "TotalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.015393412064803,
            "Longitude": -122.07102159994527,
            "Altitude": 1957.7767088363944
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:49:56Z",
        "Max": 5.450190072156878,
        "Min": 3.7699899002116943
    },
    "XExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 2.2860880295516433,
        "Min": 1.458990478510273
    },
    "YExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 2.4978760348922973,
        "Min": 1.729034044560885
    }
}

Gps Assessed Errors

This service provides actual Gps location errors after the fact, over different route types using actual Gps satellite error data. These assessed Gps errors are available up to three days in the past. For example, if today is February 4, assessed Gps errors would be available through February 1. Just as with Gps predictions, there are several returned values for errors; X and Y represent the East and North error respectively. Horizontal error is a combination of the X and Y errors. Vertical error is the error in the local zenith direction. Total error is a combination of horizontal and vertical errors. All position errors are in meters. Time error is the error in the Gps receiver's determination of the exact time, in seconds.

API Paths
navigation/assessed/site
navigation/assessed/pointToPoint
navigation/assessed/simpleFlight
navigation/assessed/tol
navigation/assessed/raster
navigation/assessed/greatArc
HTTP Method
POST
Input Format

All Gps assessed errors can be calculated at a site or along a route specified in the API paths above. For the Path element below, use the JSON from the routing section or a site location. The service will use the route's start and stop times for the Gps error assessments if a route is used. If a site is used, you must set the AnalysisStart and AnalysisStop times below.

Note that the navigation services ignore the "CoordinateFormat" element supplied in the OutputSettings. All location data is returned in Earth-Fixed, LLA format for these services.

Use the ExtrapolatePafdata setting with extreme care. Paf files contain Gps error data for one day, but only up to the 23:44 hour mark. If you try to calculate Gps Assessed Errors for a full 24 hours, Analytical Services will throw an error, because the default setting for ExtrapolatePafData is false. If you set ExtrapolatePafData to true, the final 16 minutes of the day will use extrapolated data from the 23:44 Paf data point. This usage is fine and recommended. If, however, you set ExtrapolatePafData to true and calculate Gps Assessed Errors for several days, Analytical Services will provide answers, but the Gps Assessed Errors it returns after extrapolating for more than an hour or so past the 23:44 data point in the file, are unreliable and should not be used. When setting ExtrapolatePafData to false, use analysis times (or path durations) that are less than or equal to the amount of data in a Paf file - from 00:00 hours to 23:44 hours for a given day, to avoid receiving errors from Analytical Services.

The defaults represent a typical, consumer level Gps receiver.

{
    "Path":{},
    "AnalysisStart": "YYYY-MM-DDTHH:mm:ss",
    "AnalysisStop": "YYYY-MM-DDTHH:mm:ss",
    "NumberOfChannels": 12,
    "MinimumElevationAngle": 5.0,
    "EarthLineOfSight": true,
    "ReceiverNoiseError": 0.8,
    "BestN": false,
    "ExtrapolatePafData": false,
    "PafLocation":"Uri to specific Paf",
    "SemAlmanacLocation":"Uri to specific SEM Almanac",
    "SofLocation":"Uri to specific Sof"
}
Path
JSON object defining the location point(s) on which Gps assessments will be calculated.
AnalysisStart
The start date and time of the Gps assessments. Required for site paths, ignored when the Path is a route.
AnalysisStop
The stop date and time of the Gps assessments. Required for site paths, ignored when the Path is a route.
NumberOfChannels
The number of channels the Gps receiver uses to track Gps satellites. Optional, must be 4 or greater, default value is 12.
MinimumElevationAngle
The angle in degrees, from the horizon towards zenith, below which no Gps satellites will be used to determine the location error. Optional, default value is 5.
EarthLineOfSight
Whether to use the Earth as a visibility constraint for accessing satellites. Optional, default value is true.
ReceiverNoiseError
The amount of error, in meters, that the Gps receiver contributes to the location error. Optional, must be positive, default value is 0.8.
BestN
When true, a BestN algorithm is used to select which Gps satellites to use. when false, and All-In-View algorithm is used. Optional, default value is false.
ExtrapolatePafData
When true, Analytical Services will extrapolate Gps Error data from the last data point in the file for analysis times past this last data point. Use with extreme caution - see the note above. Optional, default is false.
PafLocation
The Uri specifying a Performance Assessment File (PAF) to use for individual Gps satellite errors. When not specified, the service will find the appropriate Paf to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file.
SemAlmanacLocation
The Uri specifying a SEM formatted almanac to use when determining Gps satellite positions. When not specified, the service will find the appropriate SEM almanac to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file..
SofLocation
The Uri specifying a Satellite Outage File (SOF) to use when determining individual Gps satellite outages. When not specified, the service will find the appropriate Sof to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file..
Input Sample:

Samples for assessed Gps errors look identical to the samples for predicted Gps errors. See the Gps predicted error examples for more information.


Gps Dilution of Precision (DOP)

This service provides Dilution of Precision (DOP) for several GNSS constellations, calculated over different route types. There are several returned values for Dop; X and Y represent the East and North Dop respectively. Horizontal Dop is a combination of the X and Y Dops. Vertical Dop is the error in the local zenith direction. Total Dop is a combination of horizontal and vertical Dops. All Dop values are unitless. Additionally, the number of satellites used in the DOP computation is returned.

The following Global Navigation Satellite System (GNSS) constellations can be used in this service:

The SBAS constellation contains all geosynchronous satellites identified as an SBAS by Celestrak.

API Paths
navigation/dop/site
navigation/dop/pointToPoint
navigation/dop/simpleFlight
navigation/dop/tol
navigation/dop/raster
navigation/dop/greatArc
HTTP Method
POST
Input Format

All Gps dops can be calculated at a site or along a route specified in the API paths above. For the Path element below, use the JSON from the routing section or a site location. The service will use the route's start and stop times for the Gps dops if a route is used. If a site is used, you must set the AnalysisStart and AnalysisStop times below.

Note that the navigation services ignore the "CoordinateFormat" element supplied in the OutputSettings. All location data is returned in Earth-Fixed, LLA format for these services.

The defaults represent a typical, consumer level Gps receiver.

{
    "Path":{},
    "AnalysisStart": "YYYY-MM-DDTHH:mm:ss",
    "AnalysisStop": "YYYY-MM-DDTHH:mm:ss",
    "NumberOfChannels": 12,
    "MinimumElevationAngle": 5.0,
    "EarthLineOfSight": true,
    "BestN": false,
    "UseBestAvailableData": true,
    "Constellations": ["Gps"],
    "SemAlmanacLocation":"Uri to specific SEM Almanac",
    "SofLocation":"Uri to specific Sof"
}
Path
JSON object defining the location point(s) at which Gps dops will be calculated.
AnalysisStart
The start date and time of the Gps dops. Required for site paths, ignored when the Path is a route.
AnalysisStop
The stop date and time of the Gps dops. Required for site paths, ignored when the Path is a route.
NumberOfChannels
The number of channels the Gps receiver uses to track Gps satellites. Optional, must be 4 or greater, default value is 12.
MinimumElevationAngle
The angle in degrees, from the horizon towards zenith, below which no Gps satellites will be used to determine the location error. Optional, default value is 5.
EarthLineOfSight
Whether to use the Earth as a visibility constraint for accessing satellites. Optional, default value is true.
BestN
When true, a BestN algorithm is used to select which Gps satellites to use. When false, and All-In-View algorithm is used. Optional, default value is false.
UseBestAvailableData
When true, and the Gps almanac for the analysis date cannot be found, the best almanac closest to the date of analysis is used. Optional, default value is true.
Constellations
An array of constellation identifiers denoting which GNSS to use in the Dop calculations. Use any of the following: Gps, Glonass, Galileo, Sbas. Optional, default value is Gps.
SemAlmanacLocation
The Uri specifying a SEM formatted almanac to use when determining Gps satellite positions. When not specified, the service will find the appropriate SEM almanac to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file..
SofLocation
The Uri specifying a Satellite Outage File (SOF) to use when determining individual Gps satellite outages. When not specified, the service will find the appropriate SOF to use for the dates of analysis. Optional, but an internet connection is required to find the appropriate file..
Input Sample: Single Site

This sample shows how to calculate dop for a single site, using many GNSS constellations. Note that the number of channels is increased accordingly. Use the url navigation/dop/site with this example. To use a different path, find the Url for the type of path you want to use, then replace the "Path" JSON in this example with your path's JSON from the routing section.

{
    "Path": {
        "Location": {
            "Latitude": 39.0,
            "Longitude": -104.0,
            "Altitude": 1000.0
        },
        "MeanSeaLevel": true,
        "OutputSettings": {
            "Step": 3600
        }
    },
    "AnalysisStart": "2014-05-03T00:00",
    "AnalysisStop": "2014-05-03T04:00",
    "NumberOfChannels": 30,
    "MinimumElevationAngle": 7.5,
    "Constellations": [ "Gps", "Glonass", "Sbas" ]
}
Output Sample: Single Site
{
    "Dops": [
        {
            "Time": "2014-05-03T00:00:00Z",
            "Hdop": 0.76359312275442393,
            "Vdop": 1.3598844391995939,
            "Tdop": 0.942395323966702,
            "Pdop": 1.55960255997964,
            "Xdop": 0.50750598817070081,
            "Ydop": 0.57053670266577361,
            "NumberOfSatellites": 15
        },
        {
            "Time": "2014-05-03T01:00:00Z",
            "Hdop": 0.57192874281073713,
            "Vdop": 0.81568415979332487,
            "Tdop": 0.48252722455759745,
            "Pdop": 0.99621440232051084,
            "Xdop": 0.43382263611720862,
            "Ydop": 0.37269344942645066,
            "NumberOfSatellites": 20
        },
        {
            "Time": "2014-05-03T02:00:00Z",
            "Hdop": 0.59718203097246725,
            "Vdop": 0.8407823535392811,
            "Tdop": 0.50318980487107356,
            "Pdop": 1.0312814088014259,
            "Xdop": 0.42320723290192758,
            "Ydop": 0.42133361619492748,
            "NumberOfSatellites": 20
        },
        {
            "Time": "2014-05-03T03:00:00Z",
            "Hdop": 0.64198546616039,
            "Vdop": 1.0172267123085772,
            "Tdop": 0.62911498025002777,
            "Pdop": 1.202869703249396,
            "Xdop": 0.47294391467586333,
            "Ydop": 0.43413061667226704,
            "NumberOfSatellites": 19
        },
        {
            "Time": "2014-05-03T04:00:00Z",
            "Hdop": 0.63013301473361394,
            "Vdop": 1.0803271233586784,
            "Tdop": 0.69981127348818872,
            "Pdop": 1.25066954457271,
            "Xdop": 0.447042500782037,
            "Ydop": 0.44409528116364322,
            "NumberOfSatellites": 18
        }
    ],
    "NumberOfSatellitesExtremes": {
        "Max": 20,
        "Min": 15
    },
    "Location": {
        "Latitude": 38.999999999999993,
        "Longitude": -104,
        "Altitude": 1000.0000000001264
    },
    "VerticalExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 1.3598844391995939,
        "Min": 0.81568415979332487
    },
    "HorizontalExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 0.76359312275442393,
        "Min": 0.57192874281073713
    },
    "TimeExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 0.942395323966702,
        "Min": 0.48252722455759745
    },
    "TotalExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 1.55960255997964,
        "Min": 0.99621440232051084
    },
    "XExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T02:00:00Z",
        "Max": 0.50750598817070081,
        "Min": 0.42320723290192758
    },
    "YExtremes": {
        "LocationOfMax": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "LocationOfMin": {
            "Latitude": 38.999999999999993,
            "Longitude": -104,
            "Altitude": 1000.0000000001264
        },
        "TimeOfMax": "2014-05-03T00:00:00Z",
        "TimeOfMin": "2014-05-03T01:00:00Z",
        "Max": 0.57053670266577361,
        "Min": 0.37269344942645066
    }
}
Input Sample: Raster Search Route

This sample shows how to calculate Gps dop for a route. Use the url navigation/dop/raster with this example. To use a different path, find the Url for the type of path you want to use, then replace the "Path" JSON in this example with your path's JSON from the routing section.

{
    "Path": {
        "Start": "2014-05-03T08: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
        }
    },
    "NumberOfChannels": 10,
    "MinimumElevationAngle": 7.5
}
Output Sample: Raster Search Route
{
    "Dops":    [
        {
            "Location":          {
                "Latitude": 31.02551127629426,
                "Longitude": -122.17778707896179,
                "Altitude": 1957.7894344951756
            },
            "Time": "2014-05-03T08:34:56Z",
            "Hdop": 0.8398757039394424,
            "Vdop": 1.2824986782127399,
            "Tdop": 0.7304003689599419,
            "Pdop": 1.5330342650068847,
            "Xdop": 0.5326606911712022,
            "Ydop": 0.6493564399840746,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.07747559201466,
                "Longitude": -122.08778774052648,
                "Altitude": 1957.8449275164235
            },
            "Time": "2014-05-03T08:39:56Z",
            "Hdop": 0.8450620660028058,
            "Vdop": 1.2813866053115093,
            "Tdop": 0.7356446833334574,
            "Pdop": 1.5349532656301574,
            "Xdop": 0.5328925223046409,
            "Ydop": 0.6558623750976481,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.125696832951192,
                "Longitude": -122.00207253427746,
                "Altitude": 1957.890891434863
            },
            "Time": "2014-05-03T08:44:56Z",
            "Hdop": 0.8499954295201823,
            "Vdop": 1.2717936622518642,
            "Tdop": 0.7362586666014446,
            "Pdop": 1.5296899520978777,
            "Xdop": 0.5334434857209845,
            "Ydop": 0.6617630072367636,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.015393412064803,
                "Longitude": -122.07102159994527,
                "Altitude": 1957.7767088363944
            },
            "Time": "2014-05-03T08:49:56Z",
            "Hdop": 0.8551714584147642,
            "Vdop": 1.254376206957994,
            "Tdop": 0.7326363476980011,
            "Pdop": 1.5181494958895054,
            "Xdop": 0.5349178622049778,
            "Ydop": 0.6672189325710798,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 30.985648930079122,
                "Longitude": -122.07595959797722,
                "Altitude": 1957.7424298832018
            },
            "Time": "2014-05-03T08:54:56Z",
            "Hdop": 0.8598210770492425,
            "Vdop": 1.2312053051745369,
            "Tdop": 0.725331109659165,
            "Pdop": 1.5017186114675558,
            "Xdop": 0.536296571739824,
            "Ydop": 0.672070138957409,
            "NumberOfSatellites": 9
        },
        {
            "Location":          {
                "Latitude": 31.04498955268595,
                "Longitude": -121.94766194663912,
                "Altitude": 1957.8081291642907
            },
            "Time": "2014-05-03T08:59:56Z",
            "Hdop": 0.9219675969089235,
            "Vdop": 1.383417369335337,
            "Tdop": 0.871724616714689,
            "Pdop": 1.662488456359538,
            "Xdop": 0.6257790178948712,
            "Ydop": 0.6770708016984233,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 31.004959791921358,
                "Longitude": -121.96458419813436,
                "Altitude": 1957.7665186062563
            },
            "Time": "2014-05-03T09:04:56Z",
            "Hdop": 0.9249056590430683,
            "Vdop": 1.3721831471186103,
            "Tdop": 0.8702182244705934,
            "Pdop": 1.6547921523158813,
            "Xdop": 0.6252745844745801,
            "Ydop": 0.6815292892752547,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.89560016981543,
                "Longitude": -122.03461369650604,
                "Altitude": 1957.6335638309306
            },
            "Time": "2014-05-03T09:09:56Z",
            "Hdop": 0.9276009106953754,
            "Vdop": 1.356493273835204,
            "Tdop": 0.8646876304309608,
            "Pdop": 1.643325120444229,
            "Xdop": 0.6226024486972599,
            "Ydop": 0.6876115476045074,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.953579503969603,
                "Longitude": -121.93542821985244,
                "Altitude": 1957.7087966457557
            },
            "Time": "2014-05-03T09:14:56Z",
            "Hdop": 0.9308030075639983,
            "Vdop": 1.3371789173271766,
            "Tdop": 0.8558854129583456,
            "Pdop": 1.6292457444579884,
            "Xdop": 0.6241503181732486,
            "Ydop": 0.69052923125268,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.99421117048924,
                "Longitude": -121.85847503287518,
                "Altitude": 1957.7592387321774
            },
            "Time": "2014-05-03T09:19:56Z",
            "Hdop": 0.9339517848523193,
            "Vdop": 1.3154619758373018,
            "Tdop": 0.8442784383470043,
            "Pdop": 1.6132904717696102,
            "Xdop": 0.6236403409552626,
            "Ydop": 0.6952256191784338,
            "NumberOfSatellites": 8
        },
        {
            "Location":          {
                "Latitude": 30.8836797569601,
                "Longitude": -121.9278542593114,
                "Altitude": 1957.6286724230636
            },
            "Time": "2014-05-03T09:24:56Z",
            "Hdop": 1.2130769742406062,
            "Vdop": 1.7885577743946182,
            "Tdop": 1.2579260999016286,
            "Pdop": 2.161132725627969,
            "Xdop": 0.8001874608453265,
            "Ydop": 0.9117322923636375,
            "NumberOfSatellites": 7
        },
        {
            "Location":          {
                "Latitude": 30.974488622888096,
                "Longitude": -121.8221218118964,
                "Altitude": 1957.7394057434326
            },
            "Time": "2014-05-03T09:27:05.6783519Z",
            "Hdop": 1.2177544829670828,
            "Vdop": 1.7957495092114641,
            "Tdop": 1.26632391249793,
            "Pdop": 2.1697101835543937,
            "Xdop": 0.8021619123895621,
            "Ydop": 0.9162217237644759,
            "NumberOfSatellites": 7
        }
    ],
    "NumberOfSatellitesExtremes":    {
        "Max": 9,
        "Min": 7
    },
    "VerticalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 30.985648930079122,
            "Longitude": -122.07595959797722,
            "Altitude": 1957.7424298832018
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:54:56Z",
        "Max": 1.7957495092114641,
        "Min": 1.2312053051745369
    },
    "HorizontalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 1.2177544829670828,
        "Min": 0.8398757039394424
    },
    "TimeExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 30.985648930079122,
            "Longitude": -122.07595959797722,
            "Altitude": 1957.7424298832018
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:54:56Z",
        "Max": 1.26632391249793,
        "Min": 0.725331109659165
    },
    "TotalExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 30.985648930079122,
            "Longitude": -122.07595959797722,
            "Altitude": 1957.7424298832018
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:54:56Z",
        "Max": 2.1697101835543937,
        "Min": 1.5017186114675558
    },
    "XExtremes":    {
        "LocationOfMax":       {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin":       {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 0.8021619123895621,
        "Min": 0.5326606911712022
    },
    "YExtremes": {
        "LocationOfMax": {
            "Latitude": 30.974488622888096,
            "Longitude": -121.8221218118964,
            "Altitude": 1957.7394057434326
        },
        "LocationOfMin": {
            "Latitude": 31.02551127629426,
            "Longitude": -122.17778707896179,
            "Altitude": 1957.7894344951756
        },
        "TimeOfMax": "2014-05-03T09:27:05.6783519Z",
        "TimeOfMin": "2014-05-03T08:34:56Z",
        "Max": 0.9162217237644759,
        "Min": 0.6493564399840746
    }
}