Communication Services

Link Budget Analysis

The Communication System Link Budgets service allows you to set up a transmitter, receiver and any number of interference sources (jammers) each along any path supported by these services, and receive link budget information for the receiver by time.

API Path
communications/linkbudget
HTTP Method
POST
Input Format
 {
  "AnalysisStart": "2017-02-10T00:00:00Z",
  "AnalysisStop": "2017-02-10T01:00:00Z",
  "OutputUnits": "Decibels",
  "Transmitter": {
    "Path": {...},
    "PathRouteType": "FixedSite",
    "Frequency": 14500000000.0,
    "Power": 1000.0,
    "DataRate": 16000000.0
  },
  "InterferenceSources": 
   [
    {
     "Path": {...},
     "PathRouteType": "FixedSite",
     "Frequency": 14500000000.0,
     "Power": 1000.0,
     "DataRate": 16000000.0
    },
...
  ],
  "Receiver": {
    "Path": {...},
    "PathRouteType": "GreatArc",
    "TargetFrequency": 14500000000.0,
    "Bandwidth": 20000000.0,
    "AmplifierGain": 100.0,
    "NoiseFactor": 2.0,
    "ReferenceTemperature": 16.85
  },
  "UseTirem": false,
  "TiremSettings": {
    "SurfaceConductivity": 0.005,
    "SurfaceHumidity": 64.0,
    "SurfaceRefractivity": 310.0,
    "SurfaceRelativePermittivity": 15.0
  }
}

In the following definitions, Tx stands for the Transmitter and Rx stands for the Receiver.

AnalysisStart
The analysis start date and time to use when the receiver's PathRouteType is FixedSite. Note that this is required only in that case, it is not required (and ignored) in other cases.
AnalysisStop
The analysis stop date and time to use when the receiver's PathRouteType is FixedSite. Note that this is required only in that case, it is not required (and ignored) in other cases.
OutputUnits
A string specifying the units for certain link budget outputs. This can be either "Watts" or "Decibels". Optional, default is "Decibels"
Transmitter
The Transmitter object. Required.
Tx:Path
The path the transmitter will follow. This can be any route type defined in the routing section. Required.
Tx:PathRouteType
The type of Path specified in the Transmitter:Path object. Required. PathRouteType must be one of the following:
  • FixedSite
  • GreatArc
  • Catalog
  • PointToPoint
  • Raster
  • Sgp4
  • TakeOffAndLanding
  • SimpleFlight
Tx:Frequency
The frequency the transmitter broadcasts on, in Hertz. Required.
Tx:Power
The power the transmitter broadcasts with, in watts. Required.
Tx:DataRate
The rate at which data is modulated onto the transmitter's carrier, in bits/second. Required.
InterferenceSources
An array of transmitter objects that act as interference sources to the receiver. Each InterferenceSource transmitter is defined just as the main Transmitter is. Optional.
Receiver
A Receiver object, for which link budgets are desired. Required.
Rx:Path
The path the receiver will follow. This is defined just as Transmitter:Path is. Note that the receiver's path defines the time of analysis. If the receiver is using a PathRouteType of FixedSite, you must add AnalysisStart and AnalysisStop items to your post data. Required.
Rx:PathRouteType
The type of route defined for the receiver. This is defined just as Transmitter:PathRouteType is. Required.
Rx:TargetFrequency
The frequency at which the receiver will look for signals, in Hertz. Required.
Rx:Bandwidth
The bandwidth, centered on the TargetFrequncy, over which signals will be allowed in the receiver. Signals outside of this bandwidth will have zero power in the receiver. Optional, default is 20000000.
Rx:AmplifierGain
The gain defining how much the received signal is amplified in the receiver, in linear units. Optional, default is 100.
Rx:NoiseFactor
A number defining the amount of noise in the receiver. A NoiseFactor of 1 means zero noise, A NoideFactor of 2 represents noise from the ambient temperature divided by ReferenceTemperature. The relationship between NoiseFactor and ReferenceTemperature is: NoiseFactor = 1 + NoiseTemperature/ReferenceTemperature. Optional, Default is 2.
Rx:ReferenceTemperature
The temperature value used to determine the noise temperature, in conjunction with the NoiseFactor, in Celsius. Optional, default is 16.85.
UseTirem
When true, the Terrain Integrated Rough Earth Model (TIREM) is used as a signal propagator. This model takes terrain and sea level effects into account when propagating signals. Optional, default is false. Note that when TIREM is used, longer than normal wait times may be experienced for the service call to return results.
TiremSettings
These four values define how the TIREM model propagates signals across water and terrain. Optional, the values shown are the default values and need only be changed if desired, and when UseTirem is true. Surface Conductivity is measured in Siemens/meter and has a range of 0.00001 to 100.0. Surface Humidity is measured in grams/meter^3 and has a range of 0.0 to 110.0. Surface Refractivity is measured in N-units and has a range of 200.0 to 450.0. Surface Relative Permittivity is unitless and has a range of 1.0 to 100.0.
Input Sample

This sample has a receiver traveling on a GreatArc route, with a fixed transmitter and two fixed jammers.

{
    "OutputUnits": "Decibels",
    "Transmitter": {
        "Path": {
            "Location": {
                "Latitude": 42.0,
                "Longitude": -105.0,
                "Altitude": 2000.0
            },
            "MeanSeaLevel": true
        },
        "PathRouteType": "FixedSite",
        "Frequency": 14500000000.0,
        "Power": 1000.0,
        "DataRate": 16000000.0
    },
    "InterferenceSources": [
        {
            "Path": {
                "Location": {
                    "Latitude": 42.001,
                    "Longitude": -105.0,
                    "Altitude": 1900.0
                },
                "MeanSeaLevel": true
            },
            "PathRouteType": "FixedSite",
            "Frequency": 14500000000.0,
            "Power": 1000.0,
            "DataRate": 16000000.0
        },
        {
            "Path": {
                "Location": {
                    "Latitude": 41.997,
                    "Longitude": -105.0,
                    "Altitude": 1900.0
                },
                "MeanSeaLevel": true
            },
            "PathRouteType": "FixedSite",
            "Frequency": 14500000000.0,
            "Power": 1000.0,
            "DataRate": 16000000.0
        }
    ],
    "Receiver": {
        "Path": {
            "Waypoints": [
                {
                    "Position": {
                        "Latitude": 41.0,
                        "Longitude": -105.0,
                        "Altitude": 2000.0
                    },
                    "Time": "2016-02-23T04:44:00"
                },
                {
                    "Position": {
                        "Latitude": 43.0,
                        "Longitude": -104.0,
                        "Altitude": 2000.0
                    },
                    "Time": "2016-02-23T05:44:00"
                }
            ],
            "OutputSettings": {
                "Step": 900,
                "TimeFormat": "UTC",
                "CoordinateFormat": {
                    "Coord": "LLA",
                    "Frame": "Fixed"
                }
            }
        },
        "PathRouteType": "GreatArc",
        "TargetFrequency": 14500000000.0,
        "Bandwidth": 20000000.0,
        "AmplifierGain": 100.0,
        "NoiseFactor": 2.0,
        "ReferenceTemperature": 16.85
    },
    "UseTirem": true,
    "TiremSettings": {
        "SurfaceHumidity": 10.0,
        "SurfaceRefractivity": 200.0
    }
}
Output Sample

The outputs consist of an array of LinkBudget information, and extreme values and locations for each LinkBudget type after that.

{
    "LinkBudgets": [
        {
            "Location": {
                "Latitude": 41,
                "Longitude": -105.00000000000001,
                "Altitude": 1999.999999999674
            },
            "TransmitterAntennaGainInLinkDirection": 1,
            "ReceiverAntennaGainInLinkDirection": 1,
            "BitErrorRate": 0.49983855377614128,
            "CarrierToInterference": -2.1608318355745988,
            "CarrierToNoise": -71.837043334955325,
            "CarrierToNoiseDensity": 1.1732566216844889,
            "CarrierToNoisePlusInterference": -71.837043802866191,
            "EffectiveIsotropicRadiatedPower": 30,
            "EnergyPerBitToNoiseDensity": 8.18852500423912e-8,
            "PowerAtReceiverOutput": -195.15988318931272,
            "PropagationLoss": -243.1186833627535,
            "ReceivedIsotropicPower": -213.1186833627535,
            "ReceivedPowerFluxDensity": -168.43563694424051,
            "Time": "2016-02-23T04:44:00Z"
        },
        {
            "Location": {
                "Latitude": 41.50087312293234,
                "Longitude": -104.75580980964027,
                "Altitude": 2000.0000000004511
            },
            "TransmitterAntennaGainInLinkDirection": 1,
            "ReceiverAntennaGainInLinkDirection": 1,
            "BitErrorRate": 6.0563556524600539e-45,
            "CarrierToInterference": -3.0070368697517234,
            "CarrierToNoise": 18.954266156075075,
            "CarrierToNoiseDensity": 91.964566112714877,
            "CarrierToNoisePlusInterference": -3.0345966209426303,
            "EffectiveIsotropicRadiatedPower": 30,
            "EnergyPerBitToNoiseDensity": 98.250920658575652,
            "PowerAtReceiverOutput": -104.36857369828232,
            "PropagationLoss": -152.3273738717231,
            "ReceivedIsotropicPower": -122.32737387172308,
            "ReceivedPowerFluxDensity": -77.644327790121309,
            "Time": "2016-02-23T04:59:00Z"
        },
        {
            "Location": {
                "Latitude": 42.001176044132407,
                "Longitude": -104.50782938359944,
                "Altitude": 1999.9999999994202
            },
            "TransmitterAntennaGainInLinkDirection": 1,
            "ReceiverAntennaGainInLinkDirection": 1,
            "BitErrorRate": 0,
            "CarrierToInterference": -2.9954773868898594,
            "CarrierToNoise": 22.554962650028997,
            "CarrierToNoiseDensity": 95.5652626066688,
            "CarrierToNoisePlusInterference": -3.0075593101075428,
            "EffectiveIsotropicRadiatedPower": 30,
            "EnergyPerBitToNoiseDensity": 225.11595576623287,
            "PowerAtReceiverOutput": -100.7678772043284,
            "PropagationLoss": -148.72667737776914,
            "ReceivedIsotropicPower": -118.72667737776915,
            "ReceivedPowerFluxDensity": -74.043633418753942,
            "Time": "2016-02-23T05:14:00Z"
        },
        {
            "Location": {
                "Latitude": 42.500891115894241,
                "Longitude": -104.25593543718823,
                "Altitude": 1999.9999999992358
            },
            "TransmitterAntennaGainInLinkDirection": 1,
            "ReceiverAntennaGainInLinkDirection": 1,
            "BitErrorRate": 2.4668745655924611e-21,
            "CarrierToInterference": -2.9707202198067661,
            "CarrierToNoise": 15.492933969107206,
            "CarrierToNoiseDensity": 88.503233925747011,
            "CarrierToNoisePlusInterference": -3.0321450593362558,
            "EffectiveIsotropicRadiatedPower": 30,
            "EnergyPerBitToNoiseDensity": 44.279571543236045,
            "PowerAtReceiverOutput": -107.82990588525018,
            "PropagationLoss": -155.78870605869093,
            "ReceivedIsotropicPower": -125.78870605869093,
            "ReceivedPowerFluxDensity": -81.1056631260158,
            "Time": "2016-02-23T05:29:00Z"
        },
        {
            "Location": {
                "Latitude": 42.999999999999993,
                "Longitude": -104,
                "Altitude": 2000.0000000000823
            },
            "TransmitterAntennaGainInLinkDirection": 1,
            "ReceiverAntennaGainInLinkDirection": 1,
            "BitErrorRate": 6.0374581047838693e-7,
            "CarrierToInterference": -0.19268686208710331,
            "CarrierToNoise": 9.7433187949219331,
            "CarrierToNoiseDensity": 82.75361875156176,
            "CarrierToNoisePlusInterference": -0.61247050395192426,
            "EffectiveIsotropicRadiatedPower": 30,
            "EnergyPerBitToNoiseDensity": 11.782620569125538,
            "PowerAtReceiverOutput": -113.57952105943546,
            "PropagationLoss": -161.53832123287623,
            "ReceivedIsotropicPower": -131.53832123287623,
            "ReceivedPowerFluxDensity": -86.855278440704708,
            "Time": "2016-02-23T05:44:00Z"
        }
    ],
    "TransmitterAntennaGainInLinkDirectionExtremes": {
        "LocationOfMax": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T04:44:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 1,
        "Min": 1
    },
    "ReceiverAntennaGainInLinkDirectionExtremes": {
        "LocationOfMax": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T04:44:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 1,
        "Min": 1
    },
    "BitErrorRateExtremes": {
        "LocationOfMax": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "LocationOfMin": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "TimeOfMax": "2016-02-23T04:44:00Z",
        "TimeOfMin": "2016-02-23T05:14:00Z",
        "Max": 0.49983855377614128,
        "Min": 0
    },
    "CarrierToInterferenceExtremes": {
        "LocationOfMax": {
            "Latitude": 42.999999999999993,
            "Longitude": -104,
            "Altitude": 2000.0000000000823
        },
        "LocationOfMin": {
            "Latitude": 41.50087312293234,
            "Longitude": -104.75580980964027,
            "Altitude": 2000.0000000004511
        },
        "TimeOfMax": "2016-02-23T05:44:00Z",
        "TimeOfMin": "2016-02-23T04:59:00Z",
        "Max": -0.19268686208710331,
        "Min": -3.0070368697517234
    },
    "CarrierToNoiseExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 22.554962650028997,
        "Min": -71.837043334955325
    },
    "CarrierToNoiseDensityExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 95.5652626066688,
        "Min": 1.1732566216844889
    },
    "CarrierToNoisePlusInterferenceExtremes": {
        "LocationOfMax": {
            "Latitude": 42.999999999999993,
            "Longitude": -104,
            "Altitude": 2000.0000000000823
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:44:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": -0.61247050395192426,
        "Min": -71.837043802866191
    },
    "EffectiveIsotropicRadiatedPowerExtremes": {
        "LocationOfMax": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T04:44:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 30,
        "Min": 30
    },
    "EnergyPerBitToNoiseDensityExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": 23.52406278010956,
        "Min": -70.867943204874763
    },
    "PowerAtReceiverOutputExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": -100.7678772043284,
        "Min": -195.15988318931272
    },
    "PropagationLossExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": -148.72667737776914,
        "Min": -243.1186833627535
    },
    "ReceivedIsotropicPowerExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": -118.72667737776915,
        "Min": -213.1186833627535
    },
    "ReceivedPowerFluxDensityExtremes": {
        "LocationOfMax": {
            "Latitude": 42.001176044132407,
            "Longitude": -104.50782938359944,
            "Altitude": 1999.9999999994202
        },
        "LocationOfMin": {
            "Latitude": 41,
            "Longitude": -105.00000000000001,
            "Altitude": 1999.999999999674
        },
        "TimeOfMax": "2016-02-23T05:14:00Z",
        "TimeOfMin": "2016-02-23T04:44:00Z",
        "Max": -74.043633418753942,
        "Min": -168.43563694424051
    }
}