-
Notifications
You must be signed in to change notification settings - Fork 1
samgmansfield/TerrainLOS_Data
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
TerrainLOS is a propagation model that uses real terrain maps from the Shuttle Radar Topogrophy Mission (SRTM) to determine if nodes can communicate. It is currently implemented in COOJA, a simulator for the Contiki OS. Included in this repository is source code and instructions on how to install TerrainLOS as well as tools used to analyze TerrainLOS. Directories: 2_7: Contains the source code for the TerrainLOS radiomedium for Contiki v2.7 and how to install. install_terrainLOS_2_7.py: Installs TerrainLOSMedium into contiki v2.7. This script assumes Contiki is previously installed. Instructions to install Contiki can be found at www.contiki-os.org/start.html. The script places TerrainLOSMedium and TerrainLOSVisualizerSkin in the appropriate folders, modifies the config files to display TerrainLOSMedium as an option as a radiomedium, rebuilds COOJA and tests that TerrainLOSMedium is working properly. Takes as arguments the path to your Contiki directory. Note: To switch to the contiki-2-7 release when in your contiki directory type: git checkout release-2-7 TerrainLOSMedium.java: Source code for the radiomedium for TerrainLOS. TerrainLOSVisualizerSkin.java: Source code for the visualizer for TerrainLOS. 3_0: Contains the source code for the TerrainLOS radiomedium for Contiki v3.0 and how to install. ACV: calculate_multiple_tiles.py: Takes in as arguments the paths to hgt files followed by the east width, south width, and the log filename to be used. The script will calculate the ACV for each hgt file entered and write the results to the log file provided via command line. The script is dependent on the script calculate_tile.py. An additional script find_acv.py can be used to find a desired ACV from the results recorded in a log. Note: The paths to the hgt files can be entered through the command line using shell expansion, for example SRTM_Terrain/* calculate_tile.py: Takes in the path to an hgt file the east width, south width, and path to a log file and then calculates the ACV for every non-overlapping (ew x sw) chunk of the hgt file. The results are written to the log file provided. This script is depenent on the java file CalculateACV.java. CalculateACV.java: Calculates and outputs the Average Cumulative Visibility (ACV) of an SRTM tile to standard out. How to use: javac CalcuateACV.java java CalculateACV SRTM_Terrain/N37W122.hgt 100 100 0 0 Calculates ACV for SRTM tile N37W122.hgt (assuming it is in the SRTM_Terrain folder), sets the east width to 100, the south width to 100, the east offset to 0, and the south offset to 0. find_acv.py: Takes as an argument the deired acv as a percentage and the log to search. The log data is assumed to be of the format: file.hgt, ew: num, sw: num, (eo, so), acv% This script then returns all log entries within one percentage of the desired acv. Hypothetical_Connectivity: calc_hypothetical_connectivity: Takes as arguments the number of nodes, the degree, and ACV. Based on these inputs creates a network and examines if the network is connected using the networkx python library. This script uses the variable loops to set the choose the number of scenarios to average and outputs the percentage of those scenarios where the network is connected. Note: if "test" is passed via the command line instead of an ACV the script is in test mode and examines whether with an ACV of 100% is the degree equal the desired degree. The script test_calc_hypothetical_connectivity.py uses this feature to test this script. find_hypothetical_connectivity: Takes in as arguments the starting acv, when to stop incrementing acv, the step size, and the log file to write data. This script is depenent on calc_hypothetical_connectivity.py. This script calculates the lowest degree that is 100% connected based on calc_hypothetical_connectivity.py. This is found based on a binary search and each data point that is not stored in the provided log is written to it. graph_hypothetical_connectivity: Takes as input acv_start, acv_stop, acv_step, and acv_log. This script is dependent on the python script find_hypothetical_connectivity_limit.py. This script uses the outpt of find_hypothetical_connectivity_limit.py to graph the connecvitvity limit at each acv. test_calc_hypothetical_connectivity: A test script for calc_hypothetical_connectivity.py. Experimental_Connectivity: calc_experimental_connectivity: Takes as arguments the degree, ACV, and Contiki path. Based on these inputs runs COOJA simulations and examines if the network is connected using the networkx python library. Note: if "test" is passed via the command line instead of an ACV the script is in test mode and examines whether with an ACV of 100% is the degree equal the desired degree. The script test_calc_hypothetical_connectivity.py uses this feature to test this script. find_experimental_connectivity: Takes in as arguments the starting acv, when to stop incrementing acv, the step size, and the log file to write data. This script is depenent on calc_hypothetical_connectivity.py. This script calculates the lowest degree that is 100% connected based on calc_hypothetical_connectivity.py. This is found based on a binary search and each data point that is not stored in the provided log is written to it. log_experimental_connectivity: Contains the data when calculating experimental connectivity. orpl: A git sumbodule taken from github.com/simonduq/orpl Overhead: calc_overhead: Calculated the time it takes to run TerrainLOS and UDGM. Takes as arguments the path to Contiki, the path to the log file, and however many simulatons files to time. log_overhead: The log that stores the timing information. TerrainLOS_Test: terrainLOS_simple_well_test.csc: Simulation file to test TerrainLOS test_terrainLOS.py: Tests TerrainLOS by running a series of tests. Takes as an argument the path to Contiki and returns PASSED if successful and FAILED with reason on failure. Dependent on the file terrainLOS_simple_well_test.csc
About
A terrain-aware propagation model
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published