Search for a command to run...
Data files for the paper "Lawn map data: an artificial dataset for the Coverage Path Planning Problem" File structure: The main data (1918 .json files) are contained in the instances folder. The naming convention for the instances is the following: {a}.holes_{b}_angle_{c}_width_{d}_areas_{e}.json {a} is the name of the base map, e.g., “ee_field_163” {b} is the number of additional holes put through the map by the method described in later sections {c} is the angle of the lawnmower path {d} is the width of the lawnmower {e} is the number of areas after the division (method described in later sections) For example, the instance “ee_field_163.holes_1_angle_72.0_width_1.0_areas_26.json” is the instance where the base map “ee_field_163” had 1 additional hole added, and there are 26 areas constructed with a lawnmower of width 1.0 going under the angle of 72 degrees. The wkt folder contains the 350 .wkt files with the base maps (from https://zenodo.org/records/14524735) The kml folder contains the 350 .kml files of the base maps, produced by the wtk_to_kml.m script. The example_plots folder containts 15 .png files that show (graphically) how some of the instances look like. These can be generated either by MATLAB or Python scripts described below. The main scripts for producing the .json instances from the base maps are: main_cli.py: Main file for running the instance-generation algorithm (described in further sections) on a single map. main_batch.py: Parallel implementation of main_cli.py for processing multiple maps. requiretements.txt: Required Python packages for the methods. The scripts folder contains supporting Python scripts, with the most important ones being: computational_thread.py: Division of the method into different threads. graph.py: Module for working with graph structures. node_graph.py: Module for computing visibility graphs. paralel_tracks.py: Module for producing parallel tracks. sub_areas.py: Module for partitioning the area. xmeans.py: Module for computing x-means clustering. plot_instances.py: Simple script for plotting the instances. The scripts_matlab folder contains supporting MATLAB scripts: load_data.m: Function for loading the .json instances and doing pre-processing. plot_instance.m: Function for plotting the instances. show_rand_instance.m: Script for showing a random instance. wkt_to_kml.m: Script for transforming maps from .wkt to the .kml format. wkt_to_kml_add_poly.m: Script for transforming maps from .wkt to the .kml format with additional modification by cutting holes in the maps. kml_structure.mat: Support file for the .kml transformation scripts. The data corresponding to each instance (saved in the .json) has the following structure: objects: Array of 2-dimensional points that describe the main area (the first element of the array) and the “holes” in the main area (the other elements). areas: Array of data that describes the individual areas into which the main area was decomposed. There are four fields that constitute this data: end_points: The coordinates of the end points (corner nodes) of the area. Each area has either 4 or 2 (in the case of the area being a single line) endpoints. node_states: Each endpoint can serve as an entering node for the area and, consequently, will have a corresponding exiting node. This array describes the possible pairs of entering and exiting nodes. paths: The progression of paths followed when using the different endpoints as entering nodes. path_distances: The length of the paths through the area when using the different end points as entering nodes. node_states: Concatenated version of the areas.node_states data (sorted by area number). path_distances: Concatenated version of the areas.path_distances data (sorted by area number). distance_table: Table of distances between areas when using the corresponding endpoints as entering nodes. Additionally, the following data are available after calling the load_data.m function: matrix_indices: Identification of the area the entering end points in node_states, path_distances, etc. belong to. matrix_indices_rev: Same data as in matrix_indices, but in the form of a range of indices for the different areas. areas_nr_pnts: Number of entering points for the different areas (either 2 or 4). areas_distance_min: The minimum distance between the different areas (using the most advantageous combination of entering points). areas_distance_mean: The average distance between the different areas (using all possible combinations of entering points). areas_distance_max: The maximum distance between the different areas (using the worst possible combination of entering points).