action cloudrf_path { label: "Point-to-point path profile analysis (Tx to Rx)" description: "A path profile is a single link from A to B. It is much faster than an area calculation and can be used out to 300km. A basic request needs transmitter, receiver, antenna and output objects defined as a minimum. Model and environment options will enhance accuracy." provider: cloudrf method: POST path: "/path" encoding: json input: { type: "object" properties: { antenna: { type: "object" properties: { ant: { type: "integer" format: "int32" description: "Antenna pattern code. 1=Vertical dipole (Omni-directional)" } azi: { type: "integer" format: "int32" description: "Antenna azimuth in degrees north" } hbw: { type: "integer" format: "int32" description: "Custom antenna horizontal beamwidth in degrees. For use only with ant=0" } pol: { type: "string" description: "Antenna polarization as either h or v" enum: ["h", "v"] } tlt: { type: "number" format: "float" description: "Antenna tilt in degrees below the horizon (inverted)" } txg: { type: "number" format: "float" description: "Transmitter antenna gain in dBi" } txl: { type: "number" format: "float" description: "Feeder loss in dB" } vbw: { type: "integer" format: "int32" description: "Custom antenna vertical beamwidth in degrees. For use only with ant=0" } } } environment: { type: "object" properties: { cll: { type: "integer" format: "int32" description: "Clutter loss. 0=None/DSM only, 1=Hard / LOS mode, 2=Soft / NLOS mode" } clm: { type: "integer" format: "int32" description: "Clutter mode. 0=None/DSM only, 1=System & custom clutter, 2=Custom clutter only" } mat: { type: "number" format: "float" description: "Clutter attenuation override in dB/m based on a tree block OR hollow building. Light foliage=0.1dB/m, brick=1.0dB/m, concrete=5dB/m" } } } model: { type: "object" properties: { cli: { type: "integer" format: "int32" description: "Radio climate for ITM model (1). 1: Equatorial (Congo) 2: Continental Subtropical (Sudan) 3: Maritime Subtropical (West coast of Africa) 4: Desert (Sahara) 5: Continental Temperate 6: Maritime Temperate, over land (UK and west coasts of US & EU) 7: Maritime Temperate, over sea" } ked: { type: "integer" description: "Knife edge diffraction for enhancing basic empirical models (Already in ITM)" } pe: { type: "integer" format: "int32" description: "Propagation model subtype/environment. 1=Conservative/Urban,2=Average/Suburban,3=Optimistic/rural" } pm: { type: "integer" format: "int32" description: "Propagation model. 1=Irregular Terrain Model, 2=Line of Sight (LOS), 3=Hata, 4=ECC33, 5=SUI Microwave, 6=COST231, 7=Free space path loss, 9=Ericsson9999, 10=Plane earth loss, 11=Egli." } rel: { type: "integer" format: "int32" description: "ITM model required reliability as %" } ter: { type: "integer" format: "int32" description: "Terrain code for ITM model (1). 1=Water,2=Wet ground,3=Farmland,4=Forest/Average,5=Mountain/Sand,6=City/Poor ground" } } } network: { type: "string" description: "Network name/group" } output: { type: "object" properties: { ber: { type: "integer" format: "int32" description: "Bit error rate. 1=0.1, 2=0.01, 3=0.001, 4=0.0001,5=0.00001,6=0.000001. >6=Lora: 7=SF7,8=SF8,9=SF9,10=SF10,11=SF11,12=SF12" } col: { type: "string" description: "Colour schema code OR filename. 1 = Cellular (5), 2=Red, 3=Green, 4=Blue, 5=Microwave(7), 7=Custom RGB, 8=Automatic by frequency, 9=Greyscale / GIS, 10=Rainbow(24), 11=Green/Blue/Red, 13=Sub noise floor (10), 14=TV broadcasting (4), 15=Red threshold, 16=Green threshold, 17=Blue threshold. RAINBOW.dBm, CUSTOMSCHEMA.dBm.." } mod: { type: "integer" format: "int32" description: "Modulation. 1=4QAM,2=16QAM,3=64QAM,4=256QAM,5=1024QAM,6=BPSK,7=QPSK,8=8PSK,9=16PSK,10=32PSK,11=LoRa" } nf: { type: "integer" format: "int32" description: "Noise floor in dBm for use with out=4 / SNR" } out: { type: "integer" format: "int32" description: "Measured units. 1=dB,2=dBm,3=dBuV,4=SNR" } rad: { type: "number" format: "float" description: "Radius in kilometres for output" } res: { type: "integer" format: "int32" description: "Resolution in metres for output" } units: { type: "string" description: "Distance units in either metres/kilometres (metric) or feet/miles (imperial)" enum: ["metric", "imperial"] } } } receiver: { type: "object" properties: { alt: { type: "number" format: "float" description: "Altitude above ground level in metres OR feet" } lat: { type: "number" format: "float" description: "Latitude in decimal degrees" } lon: { type: "number" format: "float" description: "Longitude in decimal degrees" } rxg: { type: "number" format: "float" description: "Receiver antenna gain in dBi" } rxs: { type: "number" format: "float" description: "Receiver sensitivity/threshold in measured units defined by 'out' param" } } } site: { type: "string" description: "Site name" } transmitter: { type: "object" properties: { alt: { type: "number" format: "float" description: "Altitude above ground level in metres OR feet" } bwi: { type: "number" format: "float" description: "Bandwidth in MHz. 1MHz has a noise floor of -114dBm. 10MHz = -104dBm, 20MHz = -101dBm" } frq: { type: "number" format: "float" description: "Centre frequency in megahertz" } lat: { type: "number" format: "float" description: "Latitude in decimal degrees" } lon: { type: "number" format: "float" description: "Longitude in decimal degrees" } txw: { type: "number" format: "float" description: "Transmitter power in watts before the antenna" } } } } } output: { type: "object" additionalProperties: true } }