├── .github ├── ISSUE_TEMPLATE │ ├── 1_Bug_report.md │ └── 2_Feature_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bash ├── 3d │ ├── README.md │ ├── combined.png │ ├── hello_world.glb │ ├── input.png │ └── output.png ├── README.md ├── area.bash ├── area.csv ├── area_tmpl_A.json ├── cloudrf.ini ├── path.bash ├── path.csv ├── path_tmpl_A.json └── templates │ ├── drone.json │ ├── drone_path.json │ └── points.json ├── integrations ├── ADSB │ ├── ADSB_demo.py │ ├── README.md │ └── demo.jpg ├── AGC demo │ ├── Keypad.py │ ├── LCD1602.py │ ├── README.md │ ├── lcd.jpg │ ├── path_demo.py │ └── radio_template.json ├── AIS │ ├── README.md │ ├── ais_demo.cpp │ ├── demo │ ├── example.jpg │ ├── example2.jpg │ └── include │ │ ├── json.hpp │ │ └── json_fwd.hpp ├── CRFS │ ├── CloudRF.py │ ├── README.md │ ├── core │ │ ├── ArgparseCustomFormatter.py │ │ ├── PythonValidator.py │ │ └── __pycache__ │ │ │ ├── ArgparseCustomFormatter.cpython-38.pyc │ │ │ └── PythonValidator.cpython-38.pyc │ ├── csv │ │ ├── area.csv │ │ ├── multisite.csv │ │ ├── path.csv │ │ └── points.csv │ ├── noise.py │ ├── requirements.txt │ ├── rfeye_fft.png │ └── template.json ├── SSRF │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── README.md │ ├── cloudrf │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── antenna.rs │ │ │ ├── area.rs │ │ │ ├── environment.rs │ │ │ ├── interference.rs │ │ │ ├── lib.rs │ │ │ ├── misc.rs │ │ │ ├── model.rs │ │ │ ├── multisite.rs │ │ │ ├── output.rs │ │ │ ├── receiver.rs │ │ │ └── transmitter.rs │ ├── gen_kmz.sh │ ├── gen_xml.sh │ ├── network_interference.jpg │ ├── openssrf │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── assignment.rs │ │ │ ├── assignment │ │ │ ├── config.rs │ │ │ ├── link.rs │ │ │ └── station.rs │ │ │ ├── io.rs │ │ │ ├── lib.rs │ │ │ ├── location.rs │ │ │ └── serial.rs │ ├── openssrf_interference_analysis │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── openssrf_multisite_pipeline │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── openssrf_test_xml_generator │ │ ├── Cargo.toml │ │ └── src │ │ │ ├── generate.rs │ │ │ └── main.rs │ ├── openssrf_to_cloudrf │ │ ├── Cargo.toml │ │ └── src │ │ │ └── lib.rs │ ├── openssrf_xml_merger │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── two-32-radio-networks-1W-1W.ssrf.xml │ └── two-32-radio-networks-1W-50W.ssrf.xml ├── Trellisware │ ├── README.md │ └── dynamic_planning.jpg ├── blender │ ├── CloudRF_3D.zip │ ├── CloudRF_3D_1.0.1.zip │ ├── CloudRF_tx.png │ ├── Plugin page │ │ └── description.md │ ├── README.md │ ├── __init__.py │ ├── blender_3d_RF_api.jpg │ └── blender_manifest.toml └── noise │ └── noise_client.html ├── model-gallery ├── demos │ ├── antenna │ │ ├── antenna.jpg │ │ └── antenna_out.glb │ ├── hello_world │ │ ├── hello_world.jpg │ │ ├── hello_world.json │ │ ├── hello_world_in.glb │ │ └── hello_world_out.glb │ ├── house │ │ ├── house.jpg │ │ ├── house.json │ │ ├── house_in.glb │ │ └── house_out.glb │ ├── microwave │ │ ├── microwave.jpg │ │ ├── microwave.json │ │ ├── microwave_in.glb │ │ └── microwave_out.glb │ ├── railroad │ │ ├── railroad.jpg │ │ ├── railroad.json │ │ ├── railroad_in.glb │ │ └── railroad_out.glb │ ├── subway │ │ ├── subway.jpg │ │ └── subway_out.glb │ ├── tower-block │ │ ├── tower-block.jpg │ │ ├── tower-block_in.glb │ │ └── tower-block_out.glb │ └── tower-blocks │ │ ├── tower-blocks.jpg │ │ ├── tower-blocks_in.glb │ │ └── tower-blocks_out.glb ├── images │ ├── AIR-ANT2513P4M-NS_EDCS-22050602-2.4GHz.png │ ├── AIR-ANT2588P4M-NS-2.4Ghz.png │ ├── CloudRF_logo.png │ ├── FM-PANEL-19-5.2Ghz.png │ ├── IW-ANT-SKD-513-Q-5GHz.png │ ├── cube.png │ ├── dipole.png │ ├── horses.png │ ├── subway_big.png │ ├── test_chamber.png │ ├── test_chamber_hard.png │ ├── test_chamber_med_refl.png │ ├── test_chamber_med_refr.png │ ├── test_chamber_soft_refl.png │ ├── test_chamber_soft_refr.png │ ├── three_buildings_horizontal.png │ └── three_buildings_vertical.png └── index.html ├── python ├── .gitignore ├── CloudRF.py ├── Performance demo │ └── random-mesh-demo.py ├── README.md ├── archived │ ├── .gitignore │ ├── 3sites.csv │ ├── README.md │ ├── area.py │ ├── area.spec │ ├── build.bat │ ├── cloudrf.ini │ ├── cloudrf.py │ ├── custom.json │ ├── drivetest.py │ ├── drivetestdata.csv │ ├── drone.json │ ├── link.csv │ ├── network.csv │ ├── network.py │ ├── network.spec │ ├── offline_calibration │ │ ├── Offline_Calibration.py │ │ ├── README.txt │ │ ├── cloudrf_coverage.tiff │ │ ├── measurements.csv │ │ ├── receiver_calibration.py │ │ └── receiver_calibration_3km_LOS.csv │ ├── path.py │ ├── path.spec │ ├── points.py │ ├── points.spec │ ├── points_A.csv │ ├── requirements.txt │ ├── route.csv │ ├── templates │ │ ├── drone.json │ │ ├── drone_path.json │ │ ├── enodeb.json │ │ └── points.json │ ├── test_area.py │ ├── test_network.py │ ├── test_path.py │ ├── test_points.py │ └── towercoverage.csv ├── area.csv ├── area_long.csv ├── autopoints.py ├── core │ ├── ArgparseCustomFormatter.py │ └── PythonValidator.py ├── multisite.csv ├── path.csv ├── points.csv └── requirements.txt ├── slippy-maps ├── CloudRF.css ├── CloudRF.js ├── README.md ├── assets │ └── openlayers │ │ ├── 6.7.0 │ │ ├── ol.css │ │ ├── ol.css.map │ │ ├── ol.js │ │ └── ol.js.map │ │ └── README.md ├── images │ ├── CPE.png │ ├── car.png │ ├── car_blue.png │ ├── car_red.png │ ├── marker.png │ ├── markerRx.png │ └── tower.png ├── index.html ├── leaflet-area.html ├── leaflet-celltowers.html ├── leaflet-interference.html ├── leaflet-multisite.html ├── leaflet-path.html ├── leaflet-points.html ├── leaflet-trilateration.html ├── mapbox-area.html ├── openlayers-area.html └── radioTemplates.js └── templates ├── 5G-CBand-sector.json ├── CBRS-ClassA-sector.json ├── CBRS-ClassB-sector.json ├── Carkey-434MHz.json ├── CloudRF_Meshtastic-Heltec-EU.json ├── DTC ├── DTC6161 (L-1W-1.25M).json ├── DTC6161 (L-1W-10M).json ├── DTC6161 (L-2W-1.25M).json ├── DTC6161 (L-2W-10M).json ├── DTCBlu200 (C-30W-1.25M).json ├── DTCBlu200 (C-30W-10M).json ├── DTCBlu200 (S-30W-1.25M).json ├── DTCBlu200 (S-30W-10M).json ├── DTCBlu30 (High C-2W-1.25M).json ├── DTCBlu30 (High C-2W-10M).json ├── DTCBlu30 (High S-2W-1.25M).json ├── DTCBlu30 (High S-2W-10M).json ├── DTCBlu30 (L-2W-1.25M).json ├── DTCBlu30 (L-2W-10M).json ├── DTCBlu30 (Low C-2W-1.25M).json ├── DTCBlu30 (Low C-2W-10M).json ├── DTCBlu30 (Low S-2W-1.25M).json ├── DTCBlu30 (Low S-2W-10M).json ├── DTCBlu6 (C-0.2W-1.25M).json ├── DTCBlu6 (C-0.2W-10M).json ├── DTCBlu6 (High S-0.4W-1.25M).json ├── DTCBlu6 (High S-0.4W-10M).json ├── DTCBlu6 (L-0.2W-1.25M).json ├── DTCBlu6 (L-0.2W-10M).json ├── DTCBlu6 (Low S-0.4W-1.25M).json ├── DTCBlu6 (Low S-0.4W-10M).json ├── DTCBlu90 (C-10W-1.25M).json ├── DTCBlu90 (C-10W-10M).json ├── DTCBlu90 (L-10W-1.25M).json ├── DTCBlu90 (L-10W-10M).json ├── DTCBlu90 (Low S-10W-1.25M).json ├── DTCBlu90 (Low S-10W-10M).json ├── DTCBlu90 (S-10W-1.25M).json └── DTCBlu90 (S-10W-10M).json ├── Fenix-BTR-LTEb3.json ├── Fluidmesh ├── CiscoFM3500 (C-1W-10M).json ├── CiscoFM3500 (C-1W-20M).json ├── CiscoFM3500 (C-1W-40M).json ├── CiscoFM3500 (C-1W-5M).json └── CiscoFM3500 (C-1W-80M).json ├── Garmin-923xsv-1kw-8m-mast.json ├── GoTenna_PROX2_480M.json ├── LTE-eNodeB-B3-RSRP.json ├── LTE800-UE-RSRP.json ├── LoRa-GW-EU.json ├── LoRa-GW-US.json ├── MOTO-DMR-470M.json ├── MOTO-DMR-VHF.json ├── MOTO-TRBO-ION-450.json ├── Mimosa-A6-6GHz.json ├── PMR446-Mobile.json ├── PMR446-Repeater.json ├── PersistentSystems ├── PS-MPU5-LBand.json ├── PS-MPU5-SBand.json ├── PS-MPU5-Sector-LBand.json ├── PSGVR5-01 (C-20W-3.33M).json ├── PSGVR5-01 (L-20W-3.33M).json ├── PSGVR5-02 (C-20W-3.33M).json ├── PSGVR5-02 (S-20W-3.33M).json ├── PSGVR5-03 (L-20W-3.33M).json ├── PSGVR5-03 (S-20W-3.33M).json ├── PSRF-1150 (L-2W-20M).json ├── PSRF-1150 (L-2W-5M).json ├── PSRF-2125 (BAS-2W-20M).json ├── PSRF-2125 (BAS-2W-5M).json ├── PSRF-2150 (S-2W-20M).json ├── PSRF-2150 (S-2W-5M).json ├── PSRF-4100 (LC-2W-20M).json ├── PSRF-4100 (LC-2W-5M).json ├── PSRF-5100 (UC-2W-20M).json └── PSRF-5100 (UC-2W-5M).json ├── RAYMARINE-Q24W-8m-mast.json ├── README.md ├── Silvus ├── KWTS-890S (HF-100W-1.6M).json ├── KWTS-890S (HF-5W-1.6M).json ├── SC4200 E (L-10W-1.25M).json ├── SC4200 E (L-10W-20M).json ├── SC4200 E (L-1W-1.25M).json ├── SC4200 E (L-1W-20M).json ├── SC4200 E (L-4W-1.25M).json ├── SC4200 E (L-4W-20M).json ├── SC4200 E (S-10W-1.25M).json ├── SC4200 E (S-10W-20M).json ├── SC4200 E (S-1W-1.25M).json ├── SC4200 E (S-1W-20M).json ├── SC4200 E (S-4W-1.25M).json ├── SC4200 E (S-4W-20M).json ├── SC4200 E (UHF-10W-1.25M).json ├── SC4200 E (UHF-10W-20M).json ├── SC4200 E (UHF-1W-1.25M).json ├── SC4200 E (UHF-1W-20M).json ├── SC4200 E (UHF-4W-1.25M).json ├── SC4200 E (UHF-4W-20M).json ├── SC4200 L (L-1W-1.25M).json ├── SC4200 L (L-1W-5M).json ├── SC4200 L (S-1W-1.25M).json ├── SC4200 L (S-1W-5M).json ├── SC4400 E (L-10W-1.25M).json ├── SC4400 E (L-10W-20M).json ├── SC4400 E (L-1W-1.25M).json ├── SC4400 E (L-1W-20M).json ├── SC4400 E (L-4W-1.25M).json ├── SC4400 E (L-4W-20M).json ├── SC4400 E (S-10W-1.25M).json ├── SC4400 E (S-10W-20M).json ├── SC4400 E (S-1W-1.25M).json ├── SC4400 E (S-1W-20M).json ├── SC4400 E (S-4W-1.25M).json ├── SC4400 E (S-4W-20M).json ├── SC4400 E (UHF-10W-1.25M).json ├── SC4400 E (UHF-10W-20M).json ├── SC4400 E (UHF-1W-1.25M).json ├── SC4400 E (UHF-1W-20M).json ├── SC4400 E (UHF-4W-1.25M).json └── SC4400 E (UHF-4W-20M).json ├── Starlink_12GHz_UE.json ├── Trellisware ├── TW135 (L-0.1W-1.2M).json ├── TW135 (L-0.1W-40M).json ├── TW135 (L-20W-1.2M).json ├── TW135 (L-20W-40M).json ├── TW135 (L-UHF-0.1W-1.2M).json ├── TW135 (S-0.1W-1.2M).json ├── TW135 (S-0.1W-40M).json ├── TW135 (S-20W-1.2M).json ├── TW135 (S-20W-40M).json ├── TW135 (U-UHF-0.1W-1.2M).json ├── TW135 (U-UHF-0.1W-40M).json ├── TW135 (U-UHF-20W-1.2M).json ├── TW135 (U-UHF-20W-40M).json ├── TW650 (L-1W-1.2M).json ├── TW650 (L-1W-40M).json ├── TW650 (L-UHF-1W-1.2M).json ├── TW650 (L-UHF-1W-40M).json ├── TW650 (S-1W-1.2M).json ├── TW650 (S-1W-40M).json ├── TW650 (U-UHF-1W-1.2M).json ├── TW650 (U-UHF-1W-40M).json ├── TW860 (L-1W-1.2M).json ├── TW860 (L-1W-20M).json ├── TW860 (L-UHF-1W-1.2M).json ├── TW860 (L-UHF-1W-20M).json ├── TW860 (S-1W-1.2M).json ├── TW860 (S-1W-20M).json ├── TW860 (U-UHF-1W-1.2M).json ├── TW860 (U-UHF-1W-20M).json ├── TW860IC (S-1W-1.2M).json ├── TW860IC (S-1W-20M).json ├── TW870 (L-1W-1.2M).json ├── TW870 (L-1W-40M).json ├── TW870 (L-UHF-1W-1.2M).json ├── TW870 (L-UHF-1W-40M).json ├── TW870 (S-1W-1.2M).json ├── TW870 (S-1W-40M).json ├── TW870 (U-UHF-1W-1.2M).json ├── TW870 (U-UHF-1W-40M).json ├── TW870IC (S-1W-1.2M).json ├── TW870IC (S-1W-20M).json ├── TW875 (L-1W-1.2M).json ├── TW875 (L-1W-40M).json ├── TW875 (L-UHF-1W-1.2M).json ├── TW875 (S-1W-1.2M).json ├── TW875 (S-1W-40M).json ├── TW875 (U-UHF-1W-1.2M).json ├── TW875 (U-UHF-1W-40M).json ├── TW875 IC (S-1W-1.2M).json ├── TW875 IC (S-1W-40M).json ├── TW880 (L-1W-1.2M).json ├── TW880 (L-1W-40M).json ├── TW880 (L-UHF-1W-1.2M).json ├── TW880 (L-UHF-1W-40M).json ├── TW880 (S-1W-1.2M).json ├── TW880 (S-1W-40M).json ├── TW880 (U-UHF-1W-1.2M).json ├── TW880 (U-UHF-1W-40M).json ├── TW900 (L-1W-1.2M).json ├── TW900 (L-1W-20M).json ├── TW900 (L-UHF-1W-1.2M).json ├── TW900 (L-UHF-1W-20M).json ├── TW900 (S-1W-1.2M).json ├── TW900 (S-1W-20M).json ├── TW900 (U-UHF-1W-1.2M).json ├── TW900 (U-UHF-1W-20M).json ├── TW950 IC (S-1W-1.2M).json ├── TW950 IC (S-1W-20M).json ├── Trellisware-950-LBand.json ├── Trellisware-950-SBand.json ├── Trellisware-950-UHF-L.json └── Trellisware-950-UHF-U.json ├── UBNT-NBE-5AC.json ├── UBNT-PBE-2AC-400.json ├── VHF160-Handheld.json ├── VHF160-Yacht.json └── WiFi-2.4G-AP-Omni.json /.github/ISSUE_TEMPLATE/1_Bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Bug report" 3 | about: "Report something that's broken." 4 | labels: bug 5 | --- 6 | 7 | # Environment 8 | 9 | 12 | 13 | - Operating System: COMPLETEME 14 | - API Client (Python, Bash, Slippy Map, etc.): COMPLETE_ME 15 | - Python version (if using Python clients): COMPLETE_ME 16 | - Web browser (if using Slippy Maps): COMPLETE_ME 17 | 18 | # Description 19 | 20 | 24 | 25 | # Steps to Reproduce 26 | 27 | 30 | 31 | # Settings/Debug Output 32 | 33 | 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2_Feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Feature request" 3 | about: "Request a new feature be added to the platform." 4 | labels: enhancement 5 | --- 6 | 7 | # Description 8 | 9 | 13 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Pull Request for CloudRF API Clients 2 | 3 | 7 | 8 | ## Checklist 9 | 10 | - [ ] I have merged the `master` branch into my working branch. 11 | - [ ] I have updated the `CHANGELOG.md` file with a brief overview of the change. 12 | 13 | ## Description 14 | 15 | 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.kmz 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2023 Farrant Consulting Ltd 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | 'Cloud-RF' and 'Keyhole Radio' are trademarks of Farrant Consulting Ltd 23 | -------------------------------------------------------------------------------- /bash/3d/combined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/bash/3d/combined.png -------------------------------------------------------------------------------- /bash/3d/hello_world.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/bash/3d/hello_world.glb -------------------------------------------------------------------------------- /bash/3d/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/bash/3d/input.png -------------------------------------------------------------------------------- /bash/3d/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/bash/3d/output.png -------------------------------------------------------------------------------- /bash/README.md: -------------------------------------------------------------------------------- 1 | # General 2 | 3 | A script needs a template (`-t`) and a CSV list of sites/variables (`-i`). 4 | 5 | * Use `-h` on all bash scripts for help. 6 | * Use `-r` to save the JSON output. 7 | * Use `-v` for more information. 8 | 9 | # Area API Example 10 | 11 | ``` 12 | ./area.bash -t templates/drone.json -i area.csv -o out -v 13 | ``` 14 | 15 | # Path API Example 16 | 17 | ``` 18 | ./path.bash -t templates/drone_path.json -i path.csv -o out -v -r 19 | ``` 20 | -------------------------------------------------------------------------------- /bash/area.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,nam,net 2 | 38.914,1.45,1,A1,DRONE_PATH 3 | -------------------------------------------------------------------------------- /bash/area_tmpl_A.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 868, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "receiver": { 13 | "lat": 0, 14 | "lon": 0, 15 | "alt": 0.1, 16 | "rxg": 2.15, 17 | "rxs": -90 18 | }, 19 | "antenna": { 20 | "txg": 2.15, 21 | "txl": 0, 22 | "ant": 1, 23 | "azi": 0, 24 | "tlt": 0, 25 | "hbw": 0, 26 | "vbw": 0, 27 | "pol": "v" 28 | }, 29 | "model": { 30 | "pm": 1, 31 | "pe": 2, 32 | "cli": 6, 33 | "ked": 0, 34 | "rel": 95, 35 | "ter": 4 36 | }, 37 | "environment": { 38 | "clm": 1, 39 | "cll": 2, 40 | "mat": 0.25 41 | }, 42 | "output": { 43 | "units": "metric", 44 | "col": "RAINBOW.dBm", 45 | "out": 2, 46 | "ber": 0, 47 | "mod": 0, 48 | "nf": -114, 49 | "res": 10, 50 | "rad": 5 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /bash/cloudrf.ini: -------------------------------------------------------------------------------- 1 | [user] 2 | key = 101-IBIZA.DEMO.KEY 3 | 4 | [api] 5 | strict_ssl = True 6 | base_url = https://api.cloudrf.com/v2 7 | 8 | [data] 9 | dir = out 10 | 11 | -------------------------------------------------------------------------------- /bash/path.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,rlat,rlon,ralt,nam,net 2 | 38.915,1.407,2.1,38.91,1.429,20,OMNI KMZ,APITEST 3 | -------------------------------------------------------------------------------- /bash/path_tmpl_A.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 868, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "antenna": { 13 | "txg": 2.15, 14 | "txl": 0, 15 | "ant": 1, 16 | "azi": 0, 17 | "tlt": 0, 18 | "hbw": 0, 19 | "vbw": 0, 20 | "pol": "v" 21 | }, 22 | "receiver": { 23 | "lat": {{rlat}}, 24 | "lon": {{rlon}}, 25 | "alt": {{ralt}}, 26 | "rxg": 2.15, 27 | "rxs": -90 28 | }, 29 | "model": { 30 | "pm": 1, 31 | "pe": 2, 32 | "cli": 6, 33 | "ked": 0, 34 | "rel": 95, 35 | "ter": 4 36 | }, 37 | "environment": { 38 | "clm": 1, 39 | "cll": 2, 40 | "mat": 0.25 41 | }, 42 | "output": { 43 | "units": "metric", 44 | "col": "RAINBOW.dBm", 45 | "out": 2, 46 | "ber": 0, 47 | "mod": 0, 48 | "nf": -114, 49 | "res": 10, 50 | "rad": 5 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /bash/templates/drone.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 446.997, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": 0, 15 | "lon": 0, 16 | "alt": 2, 17 | "rxg": 2.15, 18 | "rxs": -100 19 | }, 20 | "antenna": { 21 | "txg": 2.15, 22 | "txl": 0, 23 | "ant": 1, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 0, 35 | "rel": 95, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.25 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -114, 50 | "res": 30, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /bash/templates/drone_path.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 2450, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "antenna": { 13 | "txg": 2.15, 14 | "txl": 0, 15 | "ant": 1, 16 | "azi": 0, 17 | "tlt": 0, 18 | "hbw": 0, 19 | "vbw": 0, 20 | "pol": "v" 21 | }, 22 | "receiver": { 23 | "lat": {{rlat}}, 24 | "lon": {{rlon}}, 25 | "alt": {{ralt}}, 26 | "rxg": 2.15, 27 | "rxs": -90 28 | }, 29 | "model": { 30 | "pm": 1, 31 | "pe": 2, 32 | "cli": 6, 33 | "ked": 0, 34 | "rel": 95, 35 | "ter": 4 36 | }, 37 | "environment": { 38 | "clm": 1, 39 | "cll": 2, 40 | "mat": 0.25 41 | }, 42 | "output": { 43 | "units": "metric", 44 | "col": "RAINBOW.dBm", 45 | "out": 2, 46 | "ber": 0, 47 | "mod": 0, 48 | "nf": -114, 49 | "res": 30, 50 | "rad": 5 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /bash/templates/points.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 868, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": 38.8, 15 | "lon": 1.5, 16 | "alt": 0.1, 17 | "rxg": 2.15, 18 | "rxs": -90 19 | }, 20 | "antenna": { 21 | "txg": 2.15, 22 | "txl": 0, 23 | "ant": 1, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 0, 35 | "rel": 95, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.4 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -114, 50 | "res": 10, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /integrations/ADSB/demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/ADSB/demo.jpg -------------------------------------------------------------------------------- /integrations/AGC demo/lcd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/AGC demo/lcd.jpg -------------------------------------------------------------------------------- /integrations/AGC demo/radio_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "site":"Site","ui":3,"network":"DMR", 3 | "transmitter":{"lat":"51.7747","lon":"-2.425474","alt":2,"frq":"450","txw":"2","bwi":"0.1"}, 4 | "receiver":{"lat":"51.774","lon":"-2.425","alt":4,"rxg":"2","rxs":"-100"}, 5 | "antenna":{"txg":"2","txl":"0","ant":"39","azi":"0","tlt":"0","hbw":"1","vbw":"1","pol":"v"}, 6 | "model":{"pm":"1","pe":"2","ked":"1","rel":"50"}, 7 | "environment":{"clt":"Minimal.clt","elevation":"2","landcover":"1","buildings":"1","obstacles":"0"}, 8 | "output":{"units":"m","col":"LTE.dBm","out":"2","ber":"1","mod":null,"nf":"-124","res":"10","rad":"7"} 9 | } 10 | -------------------------------------------------------------------------------- /integrations/AIS/README.md: -------------------------------------------------------------------------------- 1 | # Automatic Identification System (AIS) demo 2 | 3 | ## Background 4 | 5 | AIS is a system that transmits a ship's position so that other ships are aware of its position. Most ships are required to have an AIS to avoid collisions. APIs like [aprs.fi](https://aprs.fi) allow tracking of ships. 6 | 7 | CloudRF allowed the simulation of radio communications. When combined these APIs allow a live line of sight calculation of any ship. 8 | 9 | ## Demo 10 | 11 | ![DEMO](example2.jpg) 12 | 13 | In this demo you can pick a ship from [aprs.fi](https://aprs.fi) and enter it's associated **MMSI number** into the c++ program in this demo. The program will then send a request to aprs.fi for the ships location data, send a request to CloudRF for heatmap data of where the ship can see. It will then save a pin of the ships location and the heatmap data into a kml file. This kml file can be loaded into Google Earth to view the plane and it's line of sight. 14 | 15 | ### Requirements 16 | 17 | 1. A KML viewer like (Google Earth)[https://earth.google.com/intl/earth/download/ge/agree.html] 18 | 19 | 2. An API key for CloudRF in a file named rf-api-key.txt 20 | 21 | 3. An API key for aprs in a file named ais-api-key.txt 22 | 23 | ### Install 24 | 25 | g++ ais_demo.cpp -o demo -lcurl 26 | 27 | ### Operation 28 | 29 | ./demo or demo.exe 30 | 31 | 32 | ## References 33 | 34 | ### APRS 35 | 36 | https://aprs.fi 37 | 38 | ### CloudRF 39 | 40 | https://cloudrf.com 41 | -------------------------------------------------------------------------------- /integrations/AIS/demo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/AIS/demo -------------------------------------------------------------------------------- /integrations/AIS/example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/AIS/example.jpg -------------------------------------------------------------------------------- /integrations/AIS/example2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/AIS/example2.jpg -------------------------------------------------------------------------------- /integrations/CRFS/core/ArgparseCustomFormatter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | 5 | # This is used with argparse in the formatter_class argument to customise multiple formattings into one 6 | class ArgparseCustomFormatter( 7 | # Don't do any line wrapping on descriptions 8 | argparse.RawDescriptionHelpFormatter, 9 | # Include default values when running --help 10 | argparse.ArgumentDefaultsHelpFormatter 11 | ): 12 | pass 13 | -------------------------------------------------------------------------------- /integrations/CRFS/core/PythonValidator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | 5 | class PythonValidator: 6 | def version(): 7 | requiredMajor = 3 8 | minimumMinor = 8 9 | 10 | if sys.version_info.major != requiredMajor or sys.version_info.minor < minimumMinor: 11 | sys.exit('Your Python version (%s) does not meet the minimum required version of %s' % ( 12 | str(sys.version_info.major) + '.' + str(sys.version_info.minor), 13 | str(requiredMajor) + '.' + str(minimumMinor) 14 | ) 15 | ) 16 | -------------------------------------------------------------------------------- /integrations/CRFS/core/__pycache__/ArgparseCustomFormatter.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/CRFS/core/__pycache__/ArgparseCustomFormatter.cpython-38.pyc -------------------------------------------------------------------------------- /integrations/CRFS/core/__pycache__/PythonValidator.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/CRFS/core/__pycache__/PythonValidator.cpython-38.pyc -------------------------------------------------------------------------------- /integrations/CRFS/csv/area.csv: -------------------------------------------------------------------------------- 1 | transmitter.lat,transmitter.lon,output.rad 2 | 38.91221362528743,1.4424780924817322,1 3 | 38.91644035695448,1.4334922706641564,2 4 | 38.915401454409896,1.4467363340728456,4 -------------------------------------------------------------------------------- /integrations/CRFS/csv/multisite.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,frq,txw,bwi,antenna.txg,antenna.txl,antenna.ant,antenna.azi,antenna.tlt,antenna.hbw,antenna.vbw,antenna.fbr,antenna.pol 2 | 38.91536700498808,1.4368970817590394,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v 3 | 38.90965685566209,1.4515312147203798,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v 4 | 38.90351208831982,1.4376695579857375,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v -------------------------------------------------------------------------------- /integrations/CRFS/csv/path.csv: -------------------------------------------------------------------------------- 1 | transmitter.lat,transmitter.lon,receiver.lat,receiver.lon 2 | 38.91040327824226,1.4375701430488481,38.9162438089909,1.4505615948938841 3 | 38.916131495624455,1.4348635905811322,38.909167719764675,1.4408901807425798 4 | 38.903635523653364,1.4367040462849194,38.90489926123347,1.4573099324057959 -------------------------------------------------------------------------------- /integrations/CRFS/csv/points.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt 2 | 38.913379657076696,1.4386801753805118,10 3 | 38.91116010264457,1.4381187792245942,10 4 | 38.9107326095897,1.4427643734906024,10 5 | 38.910201919399206,1.4485387121588924,10 -------------------------------------------------------------------------------- /integrations/CRFS/noise.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # A class for different noise sources 3 | import ncplib 4 | import matplotlib.pyplot as plt 5 | import numpy as np 6 | 7 | class NoiseSource: 8 | 9 | # CRFS RFEye https://python3-ncplib.readthedocs.io 10 | async def rfeye(IPaddress,frequency,bandwidth,verbose=0): 11 | startFreq = int(frequency - (bandwidth/2)) 12 | stopFreq = int(frequency + (bandwidth/2)) 13 | 14 | # Convert positive dB value to dBm by subtracting a constant 15 | def todbm(x): 16 | return x - 180 17 | 18 | # Connect to the RFEye 19 | async with await ncplib.connect(IPaddress) as connection: 20 | response = connection.send("DSPC", "SWEP", FSTA=startFreq, FSTP=stopFreq, INPT=1, BDEX=1, BINP=2) 21 | field = await response.recv() 22 | fft = field["PDAT"] # Measurements array 23 | dBm = np.array(list(map(todbm, fft))) # Convert to dBm 24 | meanNoise = int(np.mean(dBm)) # Average noise figure. You may want max() if signal is vulnerable 25 | 26 | # Plot the FFT? 27 | if verbose: 28 | fig, ax = plt.subplots() 29 | step = bandwidth / len(fft) 30 | frequencies = np.arange(startFreq,stopFreq,step) 31 | ax.plot(frequencies,dBm) 32 | ax.set_ylabel('dBm') 33 | ax.set_xlabel('MHz') 34 | ax.set_title('%d MHz with %d MHz Bandwidth' % (frequency,bandwidth)) 35 | plt.ylim([-120, -10]) 36 | plt.show() 37 | 38 | return meanNoise -------------------------------------------------------------------------------- /integrations/CRFS/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | ncplib 3 | asyncio 4 | matplotlib 5 | numpy 6 | -------------------------------------------------------------------------------- /integrations/CRFS/rfeye_fft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/CRFS/rfeye_fft.png -------------------------------------------------------------------------------- /integrations/SSRF/.gitignore: -------------------------------------------------------------------------------- 1 | target/ -------------------------------------------------------------------------------- /integrations/SSRF/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = [ "cloudrf","openssrf", "openssrf_to_cloudrf", "openssrf_interference_analysis", "openssrf_multisite_pipeline", "openssrf_test_xml_generator", "openssrf_xml_merger"] 4 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cloudrf" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | reqwest = { version = "0.11.24", features = ["blocking", "json"] } 10 | serde = { version = "1.0.196", features = ["derive"] } 11 | serde_json = "1.0.113" 12 | serde_repr = "0.1.18" 13 | serde_tuple = "0.5.0" 14 | thiserror = "1.0.57" 15 | regex = "1.5.4" -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/antenna.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | 3 | #[derive(Debug, Serialize)] 4 | pub struct Antenna { 5 | pub txg: f64, 6 | pub txl: f64, 7 | pub ant: u64, 8 | pub azi: f64, 9 | pub tlt: f64, 10 | pub hbw: f64, 11 | pub vbw: f64, 12 | pub fbr: f64, 13 | pub pol: Polarisation, 14 | } 15 | 16 | impl Default for Antenna { 17 | fn default() -> Self { 18 | Self { 19 | txg: 2.0, 20 | txl: 0.0, 21 | ant: 1, 22 | azi: 0.0, 23 | tlt: 0.0, 24 | hbw: 0.0, 25 | vbw: 0.0, 26 | fbr: 0.0, 27 | pol: Polarisation::Vertical, 28 | } 29 | } 30 | } 31 | 32 | #[derive(Debug, Serialize)] 33 | pub enum Polarisation { 34 | #[serde(rename(serialize = "v"))] 35 | Vertical, 36 | #[serde(rename(serialize = "h"))] 37 | Horizontal, 38 | } 39 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/environment.rs: -------------------------------------------------------------------------------- 1 | use serde::{Serialize, Serializer}; 2 | use serde_repr::Serialize_repr; 3 | 4 | #[derive(Debug, Serialize)] 5 | pub struct Environment { 6 | pub clt: String, 7 | pub elevation: Elevation, 8 | #[serde(serialize_with = "serialize_bool")] 9 | pub landcover: bool, 10 | #[serde(serialize_with = "serialize_bool")] 11 | pub buildings: bool, 12 | #[serde(serialize_with = "serialize_bool")] 13 | pub obstacles: bool, 14 | } 15 | 16 | fn serialize_bool(b: &bool, serializer: S) -> Result 17 | where 18 | S: Serializer, 19 | { 20 | let i = if *b { 1 } else { 0 }; 21 | 22 | serializer.serialize_u8(i) 23 | } 24 | 25 | impl Default for Environment { 26 | fn default() -> Self { 27 | Self { 28 | clt: "Temperate.clt".to_owned(), 29 | elevation: Elevation::Surface, 30 | landcover: false, 31 | buildings: false, 32 | obstacles: false, 33 | } 34 | } 35 | } 36 | 37 | #[derive(Debug, Serialize_repr)] 38 | #[repr(u8)] 39 | pub enum Elevation { 40 | Surface = 1, 41 | Terrain = 2, 42 | } 43 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/misc.rs: -------------------------------------------------------------------------------- 1 | use serde::Deserialize; 2 | use serde_repr::Serialize_repr; 3 | use serde_tuple::Deserialize_tuple; 4 | 5 | #[derive(Debug, Serialize_repr)] 6 | #[repr(u8)] 7 | pub enum Engine { 8 | CPU = 2, 9 | GPU = 1, 10 | } 11 | 12 | #[allow(dead_code)] 13 | #[derive(Debug, Clone, Deserialize)] 14 | pub struct ColourKeyValue { 15 | l: String, 16 | r: u8, 17 | g: u8, 18 | b: u8, 19 | } 20 | 21 | #[allow(dead_code)] 22 | #[derive(Debug, Clone, Copy, Deserialize_tuple)] 23 | pub struct Bounds { 24 | north: f64, 25 | east: f64, 26 | south: f64, 27 | west: f64, 28 | } 29 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/model.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | use serde_repr::Serialize_repr; 3 | 4 | #[derive(Debug, Serialize)] 5 | pub struct Model { 6 | pub pm: PropagationModel, 7 | pub pe: Propagationenvironment, 8 | pub ked: DiffractionModel, 9 | pub rel: u64, 10 | } 11 | 12 | impl Default for Model { 13 | fn default() -> Self { 14 | Self { 15 | pm: PropagationModel::GP, 16 | pe: Propagationenvironment::Average, 17 | ked: DiffractionModel::Deygout, 18 | rel: 90, 19 | } 20 | } 21 | } 22 | 23 | #[derive(Debug, Serialize_repr)] 24 | #[repr(u8)] 25 | pub enum PropagationModel { 26 | ITM = 1, 27 | GP = 10, 28 | EGLI = 11, 29 | } 30 | 31 | #[derive(Debug, Serialize_repr)] 32 | #[repr(u8)] 33 | pub enum Propagationenvironment { 34 | Conservative = 1, 35 | Average = 2, 36 | Optimistic = 3, 37 | } 38 | 39 | #[derive(Debug, Serialize_repr)] 40 | #[repr(u8)] 41 | pub enum DiffractionModel { 42 | LineOfSight = 0, 43 | SingleKnifeEdge = 1, 44 | Bullington = 2, 45 | Deygout = 4, 46 | } 47 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/output.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | 3 | #[derive(Debug, Serialize)] 4 | pub struct Output { 5 | pub units: Units, 6 | pub col: String, 7 | pub out: u64, 8 | pub nf: f64, 9 | pub res: f64, 10 | pub rad: f64, 11 | } 12 | 13 | impl Default for Output { 14 | fn default() -> Self { 15 | Self { 16 | units: Units::MetersAGL, 17 | col: "LTE.dBm".to_owned(), 18 | out: 2, 19 | nf: -100.0, 20 | res: 4.0, 21 | rad: 2.0, 22 | } 23 | } 24 | } 25 | 26 | #[derive(Debug, Serialize)] 27 | pub enum Units { 28 | #[serde(rename(serialize = "m"))] 29 | MetersAGL, 30 | #[serde(rename(serialize = "m_amsl"))] 31 | MetersASL, 32 | #[serde(rename(serialize = "f"))] 33 | FeetAGL, 34 | #[serde(rename(serialize = "f_amsl"))] 35 | FeetASL, 36 | } 37 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/receiver.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | 3 | #[derive(Debug, Serialize)] 4 | pub struct Receiver { 5 | pub lat: f64, 6 | pub lon: f64, 7 | pub alt: f64, 8 | pub rxg: f64, 9 | pub rxs: f64, 10 | } 11 | 12 | impl Default for Receiver { 13 | fn default() -> Self { 14 | Self { 15 | lat: 0.0, 16 | lon: 0.0, 17 | alt: 2.0, 18 | rxg: 1.0, 19 | rxs: -110.0, 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /integrations/SSRF/cloudrf/src/transmitter.rs: -------------------------------------------------------------------------------- 1 | use serde::Serialize; 2 | 3 | #[derive(Debug, Serialize)] 4 | pub struct Transmitter { 5 | pub lat: f64, 6 | pub lon: f64, 7 | pub alt: f64, 8 | pub frq: f64, 9 | pub txw: f64, 10 | pub bwi: f64, 11 | } 12 | 13 | impl Default for Transmitter { 14 | fn default() -> Self { 15 | Self { 16 | lat: 38.916, 17 | lon: 1.448, 18 | alt: 2.0, 19 | frq: 2200.0, 20 | txw: 2.0, 21 | bwi: 1.0, 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /integrations/SSRF/gen_kmz.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sh 2 | 3 | API_URL=https://api.cloudrf.com 4 | cargo run -q -p openssrf_multisite_pipeline -- -k $API_KEY --url $API_URL -i ./xml -o ./kmz -ncv 5 | -------------------------------------------------------------------------------- /integrations/SSRF/gen_xml.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/sh 2 | 3 | cargo run -q -p openssrf_test_xml_generator -- --lat 47 --lon 8 -m 512 --std 0.2 -o ./xml -------------------------------------------------------------------------------- /integrations/SSRF/network_interference.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/SSRF/network_interference.jpg -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | serde = { version = "1.0.196", features = ["derive"] } 10 | thiserror = "1.0.57" 11 | quick-xml = { version = "0.31.0", features = ["serde", "serialize"] } 12 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/src/assignment/config.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, Serialize, Deserialize)] 4 | #[serde(rename_all = "PascalCase")] 5 | pub struct Configuration { 6 | #[serde(rename = "ConfigID")] 7 | pub config_id: String, 8 | pub config_emission: ConfigEmission, 9 | pub config_freq: ConfigFreq, 10 | #[serde(rename = "EIRPMin")] 11 | pub eirp_min: f64, 12 | } 13 | 14 | #[derive(Debug, Serialize, Deserialize)] 15 | #[serde(rename_all = "PascalCase")] 16 | pub struct ConfigFreq { 17 | pub freq_min: f64, 18 | } 19 | 20 | #[derive(Debug, Serialize, Deserialize)] 21 | #[serde(rename_all = "PascalCase")] 22 | pub struct ConfigEmission { 23 | pub necessary_bw_min: f64, 24 | } 25 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/src/assignment/link.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Debug, Serialize, Deserialize)] 4 | #[serde(rename_all = "PascalCase")] 5 | pub struct Link { 6 | #[serde(rename = "LinkID")] 7 | pub link_id: String, 8 | pub station_config: StationConfig, 9 | } 10 | 11 | #[derive(Debug, Serialize, Deserialize)] 12 | #[serde(rename_all = "PascalCase")] 13 | pub struct StationConfig { 14 | #[serde(rename = "ConfigID")] 15 | pub config_id: String, 16 | #[serde(rename = "StationID")] 17 | pub station_id: String, 18 | pub feedline_loss: f64, 19 | pub pointing_az_min: f64, 20 | pub pointing_elev_min: f64, 21 | } 22 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/src/assignment/station.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | use crate::serial::{deserialize_serial, serialize_serial, Serial}; 4 | 5 | #[derive(Debug, Serialize, Deserialize)] 6 | #[serde(rename_all = "PascalCase")] 7 | pub struct Station { 8 | #[serde(rename = "StationID")] 9 | pub station_id: String, 10 | pub station_name: Option, 11 | pub ant_structure_height: i32, 12 | pub station_loc: StationLoc, 13 | } 14 | 15 | #[derive(Debug, Serialize, Deserialize)] 16 | #[serde(rename_all = "PascalCase")] 17 | pub struct StationLoc { 18 | #[serde(deserialize_with = "deserialize_serial", serialize_with = "serialize_serial")] 19 | pub loc_sat_ref: Serial, 20 | pub location_radius: f64, 21 | } 22 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/src/io.rs: -------------------------------------------------------------------------------- 1 | use std::{fs::File, io::{BufReader, BufWriter, Read, Write}, path::Path}; 2 | 3 | use serde::Serialize; 4 | 5 | use crate::{OpenssrfErr, SSRF}; 6 | 7 | pub fn write_ssrf_xml(path: &Path, ssrf: &SSRF) -> Result<(), OpenssrfErr> { 8 | let mut str = String::new(); 9 | let mut se = quick_xml::se::Serializer::new(&mut str); 10 | se.indent(' ', 4); 11 | ssrf.serialize(se)?; 12 | 13 | 14 | let file = File::create(path)?; 15 | let mut file_writer = BufWriter::new(file); 16 | 17 | file_writer.write_all(str.as_bytes())?; 18 | 19 | Ok(()) 20 | } 21 | 22 | pub fn read_ssrf_xml(path: &Path) -> Result { 23 | let file = File::open(path)?; 24 | let mut file_reader = BufReader::new(file); 25 | 26 | let mut str = String::new(); 27 | file_reader.read_to_string(&mut str)?; 28 | 29 | let ssrf: SSRF = quick_xml::de::from_str(&str).unwrap(); 30 | 31 | Ok(ssrf) 32 | } -------------------------------------------------------------------------------- /integrations/SSRF/openssrf/src/serial.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Deserializer, Serializer}; 2 | 3 | #[derive(Debug, PartialEq, Eq, Clone)] 4 | pub struct Serial { 5 | pub country: String, 6 | pub org: Option, 7 | pub r#type: String, 8 | pub name: String, 9 | } 10 | 11 | impl std::fmt::Display for Serial { 12 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 13 | write!( 14 | f, 15 | "{}:{}:{}:{}", 16 | self.country, 17 | match &self.org { 18 | Some(org) => org, 19 | None => "", 20 | }, 21 | self.r#type, 22 | self.name 23 | ) 24 | } 25 | } 26 | 27 | pub(crate) fn deserialize_serial<'de, D>(deserializer: D) -> Result 28 | where 29 | D: Deserializer<'de>, 30 | { 31 | let s: String = Deserialize::deserialize(deserializer)?; 32 | let mut it = s.split(':'); 33 | 34 | let country = it.next().unwrap_or("ERR_EXPECTED_COUNTRY").to_owned(); 35 | let org = match it.next() { 36 | Some(org) if !org.is_empty() => Some(org.to_owned()), 37 | _ => None, 38 | }; 39 | let r#type = it.next().unwrap_or("ERR_EXPECTED_TYPE").to_owned(); 40 | let name = it.next().unwrap_or("ERR_EXPECTED_NAME").to_owned(); 41 | 42 | Ok(Serial { 43 | country, 44 | org, 45 | r#type, 46 | name, 47 | }) 48 | } 49 | 50 | pub(crate) fn serialize_serial(serial: &Serial, serializer: S) -> Result 51 | where 52 | S: Serializer, 53 | { 54 | let str = format!("{}", serial); 55 | 56 | serializer.serialize_str(&str) 57 | } 58 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf_interference_analysis/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf_interference_analysis" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | anyhow = "1.0.79" 8 | openssrf = {path = "../openssrf"} 9 | cloudrf = {path = "../cloudrf"} 10 | chrono = "0.4.34" 11 | reqwest = { version = "0.11.24", features = ["blocking"] } 12 | openssrf_to_cloudrf = {path = "../openssrf_to_cloudrf"} 13 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf_multisite_pipeline/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf_multisite_pipeline" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | anyhow = "1.0.79" 10 | openssrf = {path = "../openssrf"} 11 | cloudrf = {path = "../cloudrf"} 12 | chrono = "0.4.34" 13 | reqwest = { version = "0.11.24", features = ["blocking"] } 14 | openssrf_to_cloudrf = {path = "../openssrf_to_cloudrf"} -------------------------------------------------------------------------------- /integrations/SSRF/openssrf_test_xml_generator/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf_test_xml_generator" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | anyhow = "1.0.79" 10 | openssrf = {path = "../openssrf"} 11 | rand = "0.8.5" 12 | rand_distr = "0.4.3" 13 | quick-xml = { version = "0.31.0", features = ["serde", "serialize"] } 14 | serde = { version = "1.0.196", features = ["derive"] } 15 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf_to_cloudrf/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf_to_cloudrf" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | openssrf = {path = "../openssrf"} 8 | cloudrf = {path = "../cloudrf"} 9 | thiserror = "1.0.57" 10 | -------------------------------------------------------------------------------- /integrations/SSRF/openssrf_xml_merger/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "openssrf_xml_merger" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | anyhow = "1.0.79" 8 | openssrf = {path = "../openssrf"} 9 | quick-xml = { version = "0.31.0", features = ["serde", "serialize"] } 10 | serde = { version = "1.0.196", features = ["derive"] } 11 | -------------------------------------------------------------------------------- /integrations/Trellisware/README.md: -------------------------------------------------------------------------------- 1 | # Trellisware plugin 2 | 3 | A python script was created in June 2022 to interface between the Trellisware API on a TW-950 radio and the CloudRF API to enable real time planning and situational awareness. It displays radios and links, and uses the data from the radio to enable quicker, more accurate, planning. 4 | 5 | ![Dynamic network planning](dynamic_planning.jpg) 6 | 7 | This script has not been published as it exposes details about a private API but a demonstration of this powerful capability is available at CloudRF: 8 | 9 | [Dynamic network planning with hardware APIs](https://cloudrf.com/dynamic-network-planning-with-hardware-apis/) 10 | 11 | For more information on radio integrations get in touch via cloudrf.com 12 | 13 | -------------------------------------------------------------------------------- /integrations/Trellisware/dynamic_planning.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/Trellisware/dynamic_planning.jpg -------------------------------------------------------------------------------- /integrations/blender/CloudRF_3D.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/blender/CloudRF_3D.zip -------------------------------------------------------------------------------- /integrations/blender/CloudRF_3D_1.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/blender/CloudRF_3D_1.0.1.zip -------------------------------------------------------------------------------- /integrations/blender/CloudRF_tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/blender/CloudRF_tx.png -------------------------------------------------------------------------------- /integrations/blender/blender_3d_RF_api.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/integrations/blender/blender_3d_RF_api.jpg -------------------------------------------------------------------------------- /model-gallery/demos/antenna/antenna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/antenna/antenna.jpg -------------------------------------------------------------------------------- /model-gallery/demos/antenna/antenna_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/antenna/antenna_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/hello_world/hello_world.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/hello_world/hello_world.jpg -------------------------------------------------------------------------------- /model-gallery/demos/hello_world/hello_world.json: -------------------------------------------------------------------------------- 1 | { 2 | "transmitters": [ 3 | { 4 | "frq": 1000.0, 5 | "txw": 5.0, 6 | "pos": { 7 | "x": 0.0, 8 | "y": 1.5, 9 | "z": 0.0 10 | }, 11 | "antenna": { 12 | "ant": 1, 13 | "txg": 2.15, 14 | "txl": 0.0 15 | } 16 | } 17 | ], 18 | "3d": { 19 | "input_file": "hello_world_in.glb", 20 | "max_reflections": 25 21 | }, 22 | "output": { 23 | "res": 0.2, 24 | "col": "RAINBOW.dBm", 25 | "out": 2 26 | }, 27 | "receiver": { 28 | "rxs": -110, 29 | "rxg": 0.0 30 | } 31 | } -------------------------------------------------------------------------------- /model-gallery/demos/hello_world/hello_world_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/hello_world/hello_world_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/hello_world/hello_world_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/hello_world/hello_world_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/house/house.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/house/house.jpg -------------------------------------------------------------------------------- /model-gallery/demos/house/house.json: -------------------------------------------------------------------------------- 1 | { 2 | "transmitters": [ 3 | { 4 | "frq": 1000.0, 5 | "txw": 5.0, 6 | "pos": { 7 | "x": -1.86, 8 | "y": 4.45, 9 | "z": 0.44 10 | }, 11 | "antenna": { 12 | "ant": 1, 13 | "txg": 2.15, 14 | "txl": 0.0 15 | } 16 | } 17 | ], 18 | "3d": { 19 | "input_file": "house_in.glb", 20 | "max_reflections": 25 21 | }, 22 | "output": { 23 | "res": 0.1, 24 | "col": "RAINBOW.dBm", 25 | "out": 2 26 | }, 27 | "receiver": { 28 | "rxs": -110, 29 | "rxg": 0.0 30 | } 31 | } -------------------------------------------------------------------------------- /model-gallery/demos/house/house_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/house/house_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/house/house_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/house/house_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/microwave/microwave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/microwave/microwave.jpg -------------------------------------------------------------------------------- /model-gallery/demos/microwave/microwave.json: -------------------------------------------------------------------------------- 1 | { 2 | "transmitters": [ 3 | { 4 | "frq": 2450.0, 5 | "txw": 1.0, 6 | "pos": { 7 | "x": 0.25, 8 | "y": 0.25, 9 | "z": 0.05 10 | }, 11 | "antenna": { 12 | "ant": 1, 13 | "txg": 2.15, 14 | "txl": 0.0 15 | } 16 | } 17 | ], 18 | "3d": { 19 | "input_file": "microwave_in.glb", 20 | "max_reflections": 25 21 | }, 22 | "output": { 23 | "res": 0.005, 24 | "col": "RAINBOW.dBm", 25 | "out": 2 26 | }, 27 | "receiver": { 28 | "rxs": -110, 29 | "rxg": 0.0 30 | } 31 | } -------------------------------------------------------------------------------- /model-gallery/demos/microwave/microwave_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/microwave/microwave_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/microwave/microwave_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/microwave/microwave_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/railroad/railroad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/railroad/railroad.jpg -------------------------------------------------------------------------------- /model-gallery/demos/railroad/railroad.json: -------------------------------------------------------------------------------- 1 | { 2 | "transmitters": [ 3 | { 4 | "frq": 1000.0, 5 | "txw": 5.0, 6 | "pos": { 7 | "x": 5, 8 | "y": 10, 9 | "z": -47 10 | }, 11 | "antenna": { 12 | "ant": 27297, 13 | "txg": 17.65, 14 | "txl": 0 15 | }, 16 | "up": { 17 | "x": 0, 18 | "y": 1, 19 | "z": 0 20 | }, 21 | "fwd": { 22 | "x": 0, 23 | "y": -0.05, 24 | "z": 0.95 25 | } 26 | } 27 | ], 28 | "3d": { 29 | "input_file": "railroad_in.glb", 30 | "max_reflections": 25 31 | }, 32 | "output": { 33 | "res": 0.2, 34 | "col": "RAINBOW.dBm", 35 | "out": 2 36 | }, 37 | "receiver": { 38 | "rxs": -110, 39 | "rxg": 0.0 40 | } 41 | } -------------------------------------------------------------------------------- /model-gallery/demos/railroad/railroad_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/railroad/railroad_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/railroad/railroad_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/railroad/railroad_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/subway/subway.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/subway/subway.jpg -------------------------------------------------------------------------------- /model-gallery/demos/subway/subway_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/subway/subway_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/tower-block/tower-block.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-block/tower-block.jpg -------------------------------------------------------------------------------- /model-gallery/demos/tower-block/tower-block_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-block/tower-block_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/tower-block/tower-block_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-block/tower-block_out.glb -------------------------------------------------------------------------------- /model-gallery/demos/tower-blocks/tower-blocks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-blocks/tower-blocks.jpg -------------------------------------------------------------------------------- /model-gallery/demos/tower-blocks/tower-blocks_in.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-blocks/tower-blocks_in.glb -------------------------------------------------------------------------------- /model-gallery/demos/tower-blocks/tower-blocks_out.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/demos/tower-blocks/tower-blocks_out.glb -------------------------------------------------------------------------------- /model-gallery/images/AIR-ANT2513P4M-NS_EDCS-22050602-2.4GHz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/AIR-ANT2513P4M-NS_EDCS-22050602-2.4GHz.png -------------------------------------------------------------------------------- /model-gallery/images/AIR-ANT2588P4M-NS-2.4Ghz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/AIR-ANT2588P4M-NS-2.4Ghz.png -------------------------------------------------------------------------------- /model-gallery/images/CloudRF_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/CloudRF_logo.png -------------------------------------------------------------------------------- /model-gallery/images/FM-PANEL-19-5.2Ghz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/FM-PANEL-19-5.2Ghz.png -------------------------------------------------------------------------------- /model-gallery/images/IW-ANT-SKD-513-Q-5GHz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/IW-ANT-SKD-513-Q-5GHz.png -------------------------------------------------------------------------------- /model-gallery/images/cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/cube.png -------------------------------------------------------------------------------- /model-gallery/images/dipole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/dipole.png -------------------------------------------------------------------------------- /model-gallery/images/horses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/horses.png -------------------------------------------------------------------------------- /model-gallery/images/subway_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/subway_big.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber_hard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber_hard.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber_med_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber_med_refl.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber_med_refr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber_med_refr.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber_soft_refl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber_soft_refl.png -------------------------------------------------------------------------------- /model-gallery/images/test_chamber_soft_refr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/test_chamber_soft_refr.png -------------------------------------------------------------------------------- /model-gallery/images/three_buildings_horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/three_buildings_horizontal.png -------------------------------------------------------------------------------- /model-gallery/images/three_buildings_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/model-gallery/images/three_buildings_vertical.png -------------------------------------------------------------------------------- /python/.gitignore: -------------------------------------------------------------------------------- 1 | output/ 2 | core/__pycache__ -------------------------------------------------------------------------------- /python/archived/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ -------------------------------------------------------------------------------- /python/archived/3sites.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,rlat,rlon,ralt,nam,net 2 | 38.914,1.45,50,0,0,10,10m,APITEST2 3 | 38.913,1.46,50,0,0,20,20m,APITEST2 4 | 38.911,1.47,50,0,0,30,30m,APITEST2 5 | -------------------------------------------------------------------------------- /python/archived/area.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: python ; coding: utf-8 -*- 2 | 3 | block_cipher = None 4 | 5 | 6 | a = Analysis(['area.py'], 7 | pathex=['.'], 8 | binaries=[], 9 | datas=[], 10 | hiddenimports=['requests','pystache'], 11 | hookspath=[], 12 | runtime_hooks=[], 13 | excludes=[], 14 | win_no_prefer_redirects=False, 15 | win_private_assemblies=False, 16 | cipher=block_cipher, 17 | noarchive=False) 18 | pyz = PYZ(a.pure, a.zipped_data, 19 | cipher=block_cipher) 20 | exe = EXE(pyz, 21 | a.scripts, 22 | a.binaries, 23 | a.zipfiles, 24 | a.datas, 25 | [], 26 | name='area', 27 | debug=False, 28 | bootloader_ignore_signals=False, 29 | strip=False, 30 | upx=True, 31 | upx_exclude=[], 32 | runtime_tmpdir=None, 33 | console=True ) 34 | -------------------------------------------------------------------------------- /python/archived/build.bat: -------------------------------------------------------------------------------- 1 | python -m pip install -r requirements.txt 2 | 3 | pyinstaller area.spec 4 | pyinstaller path.spec 5 | pyinstaller network.spec 6 | pyinstaller points.spec 7 | -------------------------------------------------------------------------------- /python/archived/cloudrf.ini: -------------------------------------------------------------------------------- 1 | [user] 2 | key = 101-IBIZA.DEMO.KEY 3 | 4 | [api] 5 | strict_ssl = True 6 | base_url = https://api.cloudrf.com/v2 7 | 8 | [data] 9 | dir = out 10 | 11 | -------------------------------------------------------------------------------- /python/archived/custom.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{covename}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{antennaheight}}, 8 | "frq": {{frq}}, 9 | "txw": {{txw}}, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "alt": {{ClientAverageAntennaHeight}}, 15 | "rxg": {{ClientAntennaGain}}, 16 | "rxs": {{RxThreshold}} 17 | }, 18 | "antenna": { 19 | "txg": {{AntennaGain}}, 20 | "txl": {{TxLineLoss}}, 21 | "ant": {{ant}}, 22 | "azi": {{AntennaAzimuth}}, 23 | "tlt": {{AntennaTilt}}, 24 | "hbw": 0, 25 | "vbw": 0, 26 | "pol": "v" 27 | }, 28 | "model": { 29 | "pm": 1, 30 | "pe": 2, 31 | "cli": 6, 32 | "ked": 0, 33 | "rel": 99, 34 | "ter": 4 35 | }, 36 | "environment": { 37 | "clm": 1, 38 | "cll": 2, 39 | "mat": 0.1 40 | }, 41 | "output": { 42 | "units": "metric", 43 | "col": "RAINBOW.dBm", 44 | "out": 2, 45 | "ber": 0, 46 | "mod": 0, 47 | "nf": -115, 48 | "res": 25, 49 | "rad": {{MaxRange}} 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /python/archived/drone.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 446.997, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": {{rlat}}, 15 | "lon": {{rlon}}, 16 | "alt": {{ralt}}, 17 | "rxg": 2.15, 18 | "rxs": -100 19 | }, 20 | "antenna": { 21 | "txg": 2.15, 22 | "txl": 0, 23 | "ant": 1, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 0, 35 | "rel": 95, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.25 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -114, 50 | "res": 30, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /python/archived/link.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,rlat,rlon,ralt,nam,net 2 | 38.915,1.41,2.1,38.91,1.44,10,Link,APITEST 3 | -------------------------------------------------------------------------------- /python/archived/network.csv: -------------------------------------------------------------------------------- 1 | net,lat,lon,rxh,rxg 2 | EnergisaSE,-10.861602,-37.154871,200,2.15 3 | 4 | -------------------------------------------------------------------------------- /python/archived/network.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: python ; coding: utf-8 -*- 2 | 3 | block_cipher = None 4 | 5 | 6 | a = Analysis(['network.py'], 7 | pathex=['.'], 8 | binaries=[], 9 | datas=[], 10 | hiddenimports=['requests'], 11 | hookspath=[], 12 | runtime_hooks=[], 13 | excludes=[], 14 | win_no_prefer_redirects=False, 15 | win_private_assemblies=False, 16 | cipher=block_cipher, 17 | noarchive=False) 18 | pyz = PYZ(a.pure, a.zipped_data, 19 | cipher=block_cipher) 20 | exe = EXE(pyz, 21 | a.scripts, 22 | a.binaries, 23 | a.zipfiles, 24 | a.datas, 25 | [], 26 | name='network', 27 | debug=False, 28 | bootloader_ignore_signals=False, 29 | strip=False, 30 | upx=True, 31 | upx_exclude=[], 32 | runtime_tmpdir=None, 33 | console=True ) 34 | -------------------------------------------------------------------------------- /python/archived/offline_calibration/README.txt: -------------------------------------------------------------------------------- 1 | Dependencies 2 | 3 | pip3 install rasterio 4 | 5 | 6 | CALIBRATE RECEIVER ERROR: 7 | 8 | python3 receiver_calibration.py receiver_calibration_3km_LOS.csv 9 | 10 | 11 | CALIBRATE A CELL: 12 | 13 | python3 Offline_Calibration.py measurements.csv cloudrf_coverage.tiff 14 | 15 | WARNING: Only the Greyscale GIS colour schema is supported. Other colour schemas will not work. 16 | -------------------------------------------------------------------------------- /python/archived/offline_calibration/cloudrf_coverage.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/python/archived/offline_calibration/cloudrf_coverage.tiff -------------------------------------------------------------------------------- /python/archived/offline_calibration/receiver_calibration.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import csv 3 | import math 4 | import numpy as np 5 | 6 | # Receiver calibration script for CloudRF field testing 7 | # Use readings from the same position and orientation as used during the survey, ideally at several kilometres with line of sight. 8 | # CSV format: latitude,longitude,id where id is the measured rssi in dBm 9 | 10 | 11 | if len(sys.argv) < 1: 12 | print("Calibrate a receiver with field measurements") 13 | print("Use: python3 receiver_calibration.py measurements.csv") 14 | quit() 15 | 16 | with open(sys.argv[1]) as csvfile: 17 | reader = csv.DictReader(csvfile) 18 | 19 | rssi = "id" # CloudRF CSV import for customer locations: latitude,longitude,id 20 | rssi_actual = [] 21 | for row in reader: 22 | rssi_actual.append(float(row[rssi])) 23 | print(rssi_actual) 24 | print("Mean: %.1fdB" % np.mean(rssi_actual)) 25 | print("Error: %.1fdB" % np.std(rssi_actual)) 26 | 27 | if np.std(rssi_actual) > 4: 28 | print("Variation is > 4. These readings are bad! Measurements should be from the same location.") 29 | -------------------------------------------------------------------------------- /python/archived/path.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: python ; coding: utf-8 -*- 2 | 3 | block_cipher = None 4 | 5 | 6 | a = Analysis(['path.py'], 7 | pathex=['.'], 8 | binaries=[], 9 | datas=[], 10 | hiddenimports=['requests'], 11 | hookspath=[], 12 | runtime_hooks=[], 13 | excludes=[], 14 | win_no_prefer_redirects=False, 15 | win_private_assemblies=False, 16 | cipher=block_cipher, 17 | noarchive=False) 18 | pyz = PYZ(a.pure, a.zipped_data, 19 | cipher=block_cipher) 20 | exe = EXE(pyz, 21 | a.scripts, 22 | a.binaries, 23 | a.zipfiles, 24 | a.datas, 25 | [], 26 | name='path', 27 | debug=False, 28 | bootloader_ignore_signals=False, 29 | strip=False, 30 | upx=True, 31 | upx_exclude=[], 32 | runtime_tmpdir=None, 33 | console=True ) 34 | -------------------------------------------------------------------------------- /python/archived/points.spec: -------------------------------------------------------------------------------- 1 | # -*- mode: python ; coding: utf-8 -*- 2 | 3 | block_cipher = None 4 | 5 | 6 | a = Analysis(['points.py'], 7 | pathex=['.'], 8 | binaries=[], 9 | datas=[], 10 | hiddenimports=['requests'], 11 | hookspath=[], 12 | runtime_hooks=[], 13 | excludes=[], 14 | win_no_prefer_redirects=False, 15 | win_private_assemblies=False, 16 | cipher=block_cipher, 17 | noarchive=False) 18 | pyz = PYZ(a.pure, a.zipped_data, 19 | cipher=block_cipher) 20 | exe = EXE(pyz, 21 | a.scripts, 22 | a.binaries, 23 | a.zipfiles, 24 | a.datas, 25 | [], 26 | name='points', 27 | debug=False, 28 | bootloader_ignore_signals=False, 29 | strip=False, 30 | upx=True, 31 | upx_exclude=[], 32 | runtime_tmpdir=None, 33 | console=True ) 34 | -------------------------------------------------------------------------------- /python/archived/points_A.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,nam,net,points 2 | 38.914,1.45,1.2,POINTS A1,POINTS,"[(38.916, 1.411, 1), (38.919, 1.411, 1), (38.922, 1.411)]" 3 | -------------------------------------------------------------------------------- /python/archived/requirements.txt: -------------------------------------------------------------------------------- 1 | pyinstaller 2 | requests 3 | pystache 4 | -------------------------------------------------------------------------------- /python/archived/route.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,rlat,rlon,ralt,nam,net,points 2 | 38.914,1.45,50,38.915,1.451,20,A1,DRONE PATH,"[(38.916, 1.411, 1), (38.919, 1.411, 1), (38.922, 1.411), (38.93, 1.427), (38.921, 1.448), (38.976, 1.44)]" 3 | -------------------------------------------------------------------------------- /python/archived/templates/drone.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 446.997, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": {{rlat}}, 15 | "lon": {{rlon}}, 16 | "alt": {{ralt}}, 17 | "rxg": 2.15, 18 | "rxs": -100 19 | }, 20 | "antenna": { 21 | "txg": 2.15, 22 | "txl": 0, 23 | "ant": 1, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 0, 35 | "rel": 95, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.25 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -114, 50 | "res": 30, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /python/archived/templates/drone_path.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 2450, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "antenna": { 13 | "txg": 2.15, 14 | "txl": 0, 15 | "ant": 1, 16 | "azi": 0, 17 | "tlt": 0, 18 | "hbw": 0, 19 | "vbw": 0, 20 | "pol": "v" 21 | }, 22 | "receiver": { 23 | "lat": {{rlat}}, 24 | "lon": {{rlon}}, 25 | "alt": {{ralt}}, 26 | "rxg": 2.15, 27 | "rxs": -90 28 | }, 29 | "model": { 30 | "pm": 1, 31 | "pe": 2, 32 | "cli": 6, 33 | "ked": 0, 34 | "rel": 95, 35 | "ter": 4 36 | }, 37 | "environment": { 38 | "clm": 1, 39 | "cll": 2, 40 | "mat": 0.25 41 | }, 42 | "output": { 43 | "units": "metric", 44 | "col": "RAINBOW.dBm", 45 | "out": 2, 46 | "ber": 0, 47 | "mod": 0, 48 | "nf": -114, 49 | "res": 30, 50 | "rad": 5 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /python/archived/templates/enodeb.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "POINT", 3 | "network": "DRIVETEST", 4 | "transmitter": { 5 | "lat": 20.0849, 6 | "lon": -97.9972, 7 | "alt": 15, 8 | "frq": 768, 9 | "txw": 2, 10 | "bwi": 10 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": {{rlat}}, 15 | "lon": {{rlon}}, 16 | "alt": 1.5, 17 | "rxg": 0, 18 | "rxs": -100 19 | }, 20 | "antenna": { 21 | "txg": 7.7, 22 | "txl": 0, 23 | "ant": 39, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 1, 35 | "rel": 99, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.25 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -120, 50 | "res": 20, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /python/archived/templates/points.json: -------------------------------------------------------------------------------- 1 | { 2 | "site": "{{nam}}", 3 | "network": "{{net}}", 4 | "transmitter": { 5 | "lat": {{lat}}, 6 | "lon": {{lon}}, 7 | "alt": {{alt}}, 8 | "frq": 868, 9 | "txw": 0.1, 10 | "bwi": 0.1 11 | }, 12 | "points": [], 13 | "receiver": { 14 | "lat": 38.8, 15 | "lon": 1.5, 16 | "alt": 0.1, 17 | "rxg": 2.15, 18 | "rxs": -90 19 | }, 20 | "antenna": { 21 | "txg": 2.15, 22 | "txl": 0, 23 | "ant": 1, 24 | "azi": 0, 25 | "tlt": 0, 26 | "hbw": 0, 27 | "vbw": 0, 28 | "pol": "v" 29 | }, 30 | "model": { 31 | "pm": 1, 32 | "pe": 2, 33 | "cli": 6, 34 | "ked": 0, 35 | "rel": 95, 36 | "ter": 4 37 | }, 38 | "environment": { 39 | "clm": 1, 40 | "cll": 2, 41 | "mat": 0.4 42 | }, 43 | "output": { 44 | "units": "metric", 45 | "col": "RAINBOW.dBm", 46 | "out": 2, 47 | "ber": 0, 48 | "mod": 0, 49 | "nf": -114, 50 | "res": 10, 51 | "rad": 5 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /python/archived/test_area.py: -------------------------------------------------------------------------------- 1 | """Unit Tests for demos""" 2 | import unittest 3 | 4 | from pathlib import Path 5 | 6 | import area 7 | 8 | 9 | class TestArea(unittest.TestCase, area.App): 10 | """A unittest class to call tests independently from the main application 11 | 12 | Call with python -m unittest test_area for running all tests 13 | Call with python -m unittest test_demo.TestArea.test_best_server for running only best_server test 14 | see unittest documentation for more details. 15 | """ 16 | 17 | def __init__(self, *pargs, **kwargs): 18 | unittest.TestCase.__init__(self, *pargs, **kwargs) 19 | area.App.__init__(self, '-i area.csv -s kmz -r') 20 | 21 | def test_responses(self): 22 | """ Test the correct number of responses are received""" 23 | 24 | self.responses = self.run_area() 25 | 26 | self.assertEqual(len(self.responses), self.row_count, "Should have as many responses as rows in CSV") 27 | 28 | for f in self.api.downloaded_files: 29 | self.assertTrue(Path(f).is_file(), f'File {f} should exist') 30 | 31 | # delete files produced 32 | for f in self.api.downloaded_files: 33 | Path(f).unlink() 34 | -------------------------------------------------------------------------------- /python/archived/test_network.py: -------------------------------------------------------------------------------- 1 | """Unit Tests for demos""" 2 | import unittest 3 | 4 | from pathlib import Path 5 | 6 | import network 7 | 8 | 9 | class TestPath(unittest.TestCase, network.App): 10 | """A unittest class to call tests independently from the main application 11 | 12 | Call with python -m unittest test_area for running all tests 13 | Call with python -m unittest test_demo.TestArea.test_best_server for running only best_server test 14 | see unittest documentation for more details. 15 | """ 16 | 17 | def __init__(self, *pargs, **kwargs): 18 | unittest.TestCase.__init__(self, *pargs, **kwargs) 19 | network.App.__init__(self, '-i network.csv -s all -r') 20 | 21 | def test_responses(self): 22 | """ Test the correct number of responses are received""" 23 | 24 | self.responses = self.run_network() 25 | 26 | self.assertEqual(len(self.responses), self.row_count, "Should have as many responses as rows in CSV") 27 | 28 | for f in self.api.downloaded_files: 29 | self.assertTrue(Path(f).is_file(), f'File {f} should exist') 30 | 31 | # delete files produced 32 | for f in self.api.downloaded_files: 33 | # the network kml is common to all api calls, so will be created multiple times with the same 34 | # filename 35 | if Path(f).is_file(): 36 | Path(f).unlink() 37 | -------------------------------------------------------------------------------- /python/archived/test_path.py: -------------------------------------------------------------------------------- 1 | """Unit Tests for demos""" 2 | import unittest 3 | 4 | from pathlib import Path 5 | 6 | import path 7 | 8 | 9 | class TestPath(unittest.TestCase, path.App): 10 | """A unittest class to call tests independently from the main application 11 | 12 | Call with python -m unittest test_area for running all tests 13 | Call with python -m unittest test_demo.TestArea.test_best_server for running only best_server test 14 | see unittest documentation for more details. 15 | """ 16 | 17 | def __init__(self, *pargs, **kwargs): 18 | unittest.TestCase.__init__(self, *pargs, **kwargs) 19 | path.App.__init__(self, '-i path.csv -s all -r') 20 | 21 | def test_responses(self): 22 | """ Test the correct number of responses are received""" 23 | 24 | self.responses = self.run_path() 25 | 26 | self.assertEqual(len(self.responses), self.row_count, "Should have as many responses as rows in CSV") 27 | 28 | for f in self.api.downloaded_files: 29 | self.assertTrue(Path(f).is_file(), f'File {f} should exist') 30 | 31 | # delete files produced 32 | for f in self.api.downloaded_files: 33 | Path(f).unlink() 34 | -------------------------------------------------------------------------------- /python/archived/test_points.py: -------------------------------------------------------------------------------- 1 | """Unit Tests for demos""" 2 | import unittest 3 | 4 | from pathlib import Path 5 | 6 | import points 7 | 8 | 9 | class TestPoints(unittest.TestCase, points.App): 10 | """A unittest class to call tests independently from the main application 11 | 12 | Call with python -m unittest test_area for running all tests 13 | Call with python -m unittest test_demo.TestArea.test_best_server for running only best_server test 14 | see unittest documentation for more details. 15 | """ 16 | 17 | def __init__(self, *pargs, **kwargs): 18 | unittest.TestCase.__init__(self, *pargs, **kwargs) 19 | points.App.__init__(self, '-i points_A.csv -t points_tmpl_A.json -s kmz -r') 20 | 21 | def test_responses(self): 22 | """ Test the correct number of responses are received""" 23 | 24 | self.responses = self.run_area() 25 | 26 | self.assertEqual(len(self.responses), self.row_count, "Should have as many responses as rows in CSV") 27 | 28 | for f in self.api.downloaded_files: 29 | self.assertTrue(Path(f).is_file(), f'File {f} should exist') 30 | 31 | # delete files produced 32 | for f in self.api.downloaded_files: 33 | Path(f).unlink() 34 | -------------------------------------------------------------------------------- /python/archived/towercoverage.csv: -------------------------------------------------------------------------------- 1 | covename,towersiteID,antennaheight,ClientAverageAntennaHeight,ClientAntennaGain,RxLineLoss,AntennaType,AntennaAzimuth,BeamwidthFilter,AntennaTilt,AntennaGain,Frequency,ExactCenterFrequency,TxPower,TxLineLoss,RxThreshold,RequiredReliability,StrongSignalMargin,StrongSignalColor,WeakSignalColor,Opacity,MaxRange,RenderingQuality,UseLandCover,UseTwoRays,CreateViewShed,lat,lon,frq,txw,ant,net 2 | site1,1234,10,2,2,0,93,75,90,0,13,2,,30,0,-80,75,5,00FF00,ffa200,50,15,4,True,False,False,38.937,1.4357,900,1,38,freedom 3 | -------------------------------------------------------------------------------- /python/area.csv: -------------------------------------------------------------------------------- 1 | transmitter.lat,transmitter.lon,output.rad 2 | 38.91221362528743,1.4424780924817322,1 3 | 38.91644035695448,1.4334922706641564,2 4 | 38.915401454409896,1.4467363340728456,4 -------------------------------------------------------------------------------- /python/area_long.csv: -------------------------------------------------------------------------------- 1 | site,network,transmitter.lat,transmitter.lon,transmitter.alt,transmitter.frq,transmitter.txw,transmitter.bwi,antenna.ant,antenna.txg,antenna.txl,antenna.azi,antenna.tlt,antenna.hbw,antenna.vbw,antenna.fbr 2 | Omni,ANTENNA,38.9122136252874,1.44247809248173,10,2200,2,1,1,2,0,0,0,0,0,0 3 | Sector,ANTENNA,38.9164403569545,1.43349227066416,10,2200,2,1,0,12,0,45,0,120,90,24 4 | MultiSector,ANTENNA,38.9164403569545,1.43349227066416,10,2200,2,1,0,12,0,"0,120,240",0,120,90,24 5 | HighPower,RADIO,38.9122136252874,1.44247809248173,10,2200,20,1,1,2,0,0,0,0,0,0 6 | -------------------------------------------------------------------------------- /python/core/ArgparseCustomFormatter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | 5 | # This is used with argparse in the formatter_class argument to customise multiple formattings into one 6 | class ArgparseCustomFormatter( 7 | # Don't do any line wrapping on descriptions 8 | argparse.RawDescriptionHelpFormatter, 9 | # Include default values when running --help 10 | argparse.ArgumentDefaultsHelpFormatter 11 | ): 12 | pass 13 | -------------------------------------------------------------------------------- /python/core/PythonValidator.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | 5 | class PythonValidator: 6 | def version(): 7 | requiredMajor = 3 8 | minimumMinor = 8 9 | 10 | if sys.version_info.major != requiredMajor or sys.version_info.minor < minimumMinor: 11 | sys.exit('Your Python version (%s) does not meet the minimum required version of %s' % ( 12 | str(sys.version_info.major) + '.' + str(sys.version_info.minor), 13 | str(requiredMajor) + '.' + str(minimumMinor) 14 | ) 15 | ) 16 | -------------------------------------------------------------------------------- /python/multisite.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt,frq,txw,bwi,antenna.txg,antenna.txl,antenna.ant,antenna.azi,antenna.tlt,antenna.hbw,antenna.vbw,antenna.fbr,antenna.pol 2 | 38.91536700498808,1.4368970817590394,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v 3 | 38.90965685566209,1.4515312147203798,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v 4 | 38.90351208831982,1.4376695579857375,10,2400,1,0.1,2.15,0,39,0,0,120,120,1.95,v -------------------------------------------------------------------------------- /python/path.csv: -------------------------------------------------------------------------------- 1 | transmitter.lat,transmitter.lon,receiver.lat,receiver.lon 2 | 38.91040327824226,1.4375701430488481,38.9162438089909,1.4505615948938841 3 | 38.916131495624455,1.4348635905811322,38.909167719764675,1.4408901807425798 4 | 38.903635523653364,1.4367040462849194,38.90489926123347,1.4573099324057959 -------------------------------------------------------------------------------- /python/points.csv: -------------------------------------------------------------------------------- 1 | lat,lon,alt 2 | 38.913379657076696,1.4386801753805118,10 3 | 38.91116010264457,1.4381187792245942,10 4 | 38.9107326095897,1.4427643734906024,10 5 | 38.910201919399206,1.4485387121588924,10 -------------------------------------------------------------------------------- /python/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | -------------------------------------------------------------------------------- /slippy-maps/CloudRF.css: -------------------------------------------------------------------------------- 1 | .map { 2 | width: 100%; 3 | height: 400px; 4 | } 5 | -------------------------------------------------------------------------------- /slippy-maps/README.md: -------------------------------------------------------------------------------- 1 | # CloudRF Slippy Map Examples 2 | 3 | This directory contains examples of various slippy map libraries. 4 | 5 | You can view a live hosted version of these examples at [https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/index.html](https://cloud-rf.github.io/CloudRF-API-clients/slippy-maps/index.html). 6 | -------------------------------------------------------------------------------- /slippy-maps/assets/openlayers/README.md: -------------------------------------------------------------------------------- 1 | # OpenLayers Assets 2 | 3 | These assets have come from: 4 | 5 | https://github.com/openlayers/openlayers.github.io 6 | -------------------------------------------------------------------------------- /slippy-maps/images/CPE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/CPE.png -------------------------------------------------------------------------------- /slippy-maps/images/car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/car.png -------------------------------------------------------------------------------- /slippy-maps/images/car_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/car_blue.png -------------------------------------------------------------------------------- /slippy-maps/images/car_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/car_red.png -------------------------------------------------------------------------------- /slippy-maps/images/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/marker.png -------------------------------------------------------------------------------- /slippy-maps/images/markerRx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/markerRx.png -------------------------------------------------------------------------------- /slippy-maps/images/tower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cloud-RF/CloudRF-API-clients/b5fe5a01edf32893b4d228126f80b643bbcbe0cb/slippy-maps/images/tower.png -------------------------------------------------------------------------------- /templates/5G-CBand-sector.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "5G-CBand-sector", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T13:12:57+00:00", 8 | "owner": "1", 9 | "bom_value": 0 10 | }, 11 | "site": "ENODEB", 12 | "network": "5G", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.813059, 17 | "lon": -0.927977, 18 | "alt": 5, 19 | "frq": 3500, 20 | "txw": 1, 21 | "bwi": 10, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 0, 26 | "lon": 0, 27 | "alt": 1, 28 | "rxg": 1, 29 | "rxs": -100 30 | }, 31 | "antenna": { 32 | "mode": "custom", 33 | "txg": 12, 34 | "txl": 0, 35 | "ant": 0, 36 | "azi": 47, 37 | "tlt": 0, 38 | "hbw": 120, 39 | "vbw": 90, 40 | "fbr": 12, 41 | "pol": "v" 42 | }, 43 | "model": { 44 | "pm": 10, 45 | "pe": 2, 46 | "ked": 4, 47 | "rel": 50 48 | }, 49 | "environment": { 50 | "elevation": 1, 51 | "landcover": 1, 52 | "buildings": 1, 53 | "obstacles": 0, 54 | "clt": "Minimal.clt" 55 | }, 56 | "output": { 57 | "units": "m", 58 | "col": "LTE.dBm", 59 | "out": 2, 60 | "ber": 0, 61 | "mod": 0, 62 | "nf": -104, 63 | "res": 10, 64 | "rad": 2 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /templates/DTC/DTC6161 (L-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTC6161 (L-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTC6161", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTC6161 (L-1W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTC6161 (L-1W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTC6161", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 1.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTC6161 (L-2W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTC6161 (L-2W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTC6161", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 2.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTC6161 (L-2W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTC6161 (L-2W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTC6161", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 2.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu200 (C-30W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu200 (C-30W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu200", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 4300.0, 20 | "txw": 30.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu200 (S-30W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu200 (S-30W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu200", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2400.0, 20 | "txw": 30.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu30 (L-2W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu30 (L-2W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu30", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 2.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu30 (L-2W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu30 (L-2W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu30", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 2.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu6 (C-0.2W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu6 (C-0.2W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu6", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 5000.0, 20 | "txw": 0.2, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu6 (C-0.2W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu6 (C-0.2W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu6", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 5000.0, 20 | "txw": 0.2, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu6 (L-0.2W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu6 (L-0.2W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu6", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 0.2, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu6 (L-0.2W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu6 (L-0.2W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu6", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 0.2, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (C-10W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (C-10W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 5000.0, 20 | "txw": 10.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (C-10W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (C-10W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 5000.0, 20 | "txw": 10.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (L-10W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (L-10W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 10.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (L-10W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (L-10W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1400.0, 20 | "txw": 10.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (S-10W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (S-10W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2400.0, 20 | "txw": 10.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/DTC/DTCBlu90 (S-10W-10M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "DTCBlu90 (S-10W-10M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "DTCBlu90", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2400.0, 20 | "txw": 10.0, 21 | "bwi": 10.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 | # CloudRF JSON Templates 2 | 3 | This directory contains JSON templates which can be combined with your client to simplify your request. 4 | 5 | Each template contains core values which map to their respective API request to the CloudRF API. 6 | -------------------------------------------------------------------------------- /templates/Silvus/KWTS-890S (HF-5W-1.6M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "KWTS-890S (HF-5W-1.6M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "KWTS-890S", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 5.35, 20 | "txw": 5.0, 21 | "bwi": 1.6, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (L-10W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (L-10W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 10.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (L-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (L-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (L-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (L-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (L-4W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (L-4W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 4.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (L-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (L-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (S-10W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (S-10W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 10.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (S-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (S-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (S-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (S-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (S-4W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (S-4W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 4.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (S-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (S-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (UHF-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (UHF-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 420.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 E (UHF-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 E (UHF-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 420.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 L (L-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 L (L-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 L", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 L (L-1W-5M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 L (L-1W-5M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 L", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 5.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 L (S-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 L (S-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 L", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4200 L (S-1W-5M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4200 L (S-1W-5M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4200 L", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 5.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 3.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 3.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (L-10W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (L-10W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 10.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (L-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (L-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (L-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (L-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (L-4W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (L-4W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 4.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (L-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (L-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1350.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (S-10W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (S-10W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 10.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (S-1W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (S-1W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (S-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (S-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (S-4W-1.25M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (S-4W-1.25M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 4.0, 21 | "bwi": 1.25, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (S-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (S-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2200.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (UHF-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (UHF-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 420.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Silvus/SC4400 E (UHF-4W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "SC4400 E (UHF-4W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "SC4400 E", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 420.0, 20 | "txw": 4.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 6.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 6.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (L-0.1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (L-0.1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 0.1, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (L-0.1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (L-0.1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 0.1, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (L-20W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (L-20W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 20.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (L-20W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (L-20W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 20.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (S-0.1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (S-0.1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 0.1, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW135 (S-20W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW135 (S-20W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW135", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 20.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW650 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW650 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW650", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW650 (L-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW650 (L-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW650", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW650 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW650 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW650", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW650 (S-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW650 (S-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW650", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW860 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW860 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW860", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW860 (L-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW860 (L-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW860", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW860 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW860 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW860", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW860 (S-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW860 (S-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW860", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW870 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW870 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW870", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW870 (L-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW870 (L-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW870", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW870 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW870 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW870", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW870 (S-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW870 (S-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW870", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW875 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW875 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW875", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW875 (L-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW875 (L-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW875", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 720.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW875 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW875 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW875", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW875 (S-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW875 (S-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW875", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2545.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW880 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW880 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW880", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW880 (L-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW880 (L-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW880", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW880 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW880 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW880", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW880 (S-1W-40M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW880 (S-1W-40M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW880", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 40.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW900 (L-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW900 (L-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW900", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW900 (L-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW900 (L-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW900", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 1250.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW900 (S-1W-1.2M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW900 (S-1W-1.2M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW900", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 1.2, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } -------------------------------------------------------------------------------- /templates/Trellisware/TW900 (S-1W-20M).json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "CloudRF-API-v3.4.0", 3 | "reference": "https://cloudrf.com/documentation/developer/swagger-ui/", 4 | "template": { 5 | "name": "TW900 (S-1W-20M)", 6 | "service": "SOOTHSAYER https://dev.cloudrf.com", 7 | "created_at": "2022-11-09T12:49:49+00:00", 8 | "owner": "1", 9 | "bom_value": "0" 10 | }, 11 | "site": "TW900", 12 | "network": "PS", 13 | "engine": 2, 14 | "coordinates": 1, 15 | "transmitter": { 16 | "lat": 50.78986, 17 | "lon": -1.107861, 18 | "alt": 1.0, 19 | "frq": 2440.0, 20 | "txw": 1.0, 21 | "bwi": 20.0, 22 | "powerUnit": "W" 23 | }, 24 | "receiver": { 25 | "lat": 50.7861143853799, 26 | "lon": -1.14327671736349, 27 | "alt": 1.0, 28 | "rxg": 0.0, 29 | "rxs": 10.0 30 | }, 31 | "feeder": { 32 | "flt": "1", 33 | "fll": 0.0, 34 | "fcc": 0.0 35 | }, 36 | "antenna": { 37 | "mode": "template", 38 | "txg": 0.0, 39 | "txl": 0.0, 40 | "ant": 1.0, 41 | "azi": 0.0, 42 | "tlt": 0.0, 43 | "hbw": 0.0, 44 | "vbw": 0.0, 45 | "fbr": 1.0, 46 | "pol": "v" 47 | }, 48 | "model": { 49 | "pm": 1.0, 50 | "pe": 2.0, 51 | "ked": 1.0, 52 | "rel": 90.0 53 | }, 54 | "environment": { 55 | "elevation": 2.0, 56 | "landcover": 1.0, 57 | "buildings": 0.0, 58 | "obstacles": 0.0, 59 | "clt": "Minimal.clt" 60 | }, 61 | "output": { 62 | "units": "m", 63 | "col": "SNR.db", 64 | "out": 4.0, 65 | "ber": 0.0, 66 | "mod": 0.0, 67 | "nf": -110.0, 68 | "res": 10.0, 69 | "rad": 4.0 70 | } 71 | } --------------------------------------------------------------------------------