# Optimizing Urban LiDAR Flight Path Planning Using a Genetic Algorithm and a Dual Parallel Computing Framework

^{1}

^{2}

^{3}

^{*}

## Abstract

**:**

## 1. Introduction

- Introduces a beam casting algorithm that uses a pre-existing point cloud to realistically predict results of new LiDAR scans;
- Presents a data parallelism strategy that allows the beam casting to be performed in parallel and at scale using a distributed-memory computing cluster;
- Incorporates the beam casting algorithm and a genetic algorithm within a dual parallel computing framework for fast and scalable optimization;
- Rigorously evaluates the accuracy of the proposed optimization strategy through actual test flights;
- Systematically assesses the computational performance of the proposed computing framework.

## 2. Background and Related Work

#### 2.1. LiDAR Flight Mission Planning

#### 2.2. Parallel Computing for LiDAR Data Analysis

## 3. Methodology

#### 3.1. A Genetic Algorithm for LiDAR Flight Path Optimization

`Select`and

_{S}`Select`on lines 4 and 5. The first subset (called survivors, ${S}_{i}$) derived from function

_{O}`Select`contains high-performing individuals that are passed unchanged onto the next population (line 4 in Algorithm 1). The second subset derived from function

_{S}`Select`contains other high-performing individuals that are combined pairwise via a process called crossover to create offspring, ${O}_{i}$ (line 5 in Algorithm 1). The offspring are supposed to inherit good characteristics from the high-performing individuals in the previous population. Subsequently, a small fraction of the offspring, ${O}_{i}$, is randomly mutated (line 6 in Algorithm 1). The mutation process is supposed to create random characteristics absent in the previous population. The survivors, ${S}_{i}$, and the offspring, ${O}_{i}$, are combined to form the next population, ${G}_{i+1}$ (line 6 of Algorithm 1). New generations of flight grids are iteratively generated, until the results converge. Namely, the fitness scores are not further improved after (1) a certain number of iterations is reached, (2) the best fitness score exceeds a certain value, or (3) the number of iterations reaches a predefined value. The GA returns the best individual of all flight paths generated.

_{O}Algorithm 1 Typical structure of a genetic algorithm |

#### 3.2. A Beam Tracing Algorithm to Simulate Vertical Points Captured by a LiDAR Flight Path

Algorithm 2 Beam casting from a specific way point |

#### 3.3. A Distributed Computing Strategy for Fitness Function Evaluation

Algorithm 3 Parallel algorithm for computing the fitness score (i.e., the total number of laser beams incident on vertical surfaces) of a flight grid |

`AggregateByKey`, line 8 in Algorithm 3), which aggregates base points by their corresponding way points. Both for loops are straightforwardly parallelizable. Each execution of the first for loop takes an individual base point ${p}_{i}$, calculates coordinates of the way points ${W}_{j}$ corresponding to the given base point and add the way point – base point pairs to $Se{t}_{ij}\left([{W}_{j},{p}_{i}]\right)$. The calculation of way point coordinates starts with transforming the coordinate system (lines 3 in Algorithm 3) so that the flight lines are parallel to the coordinate axes.

`WayPoint`on line 4 of Algorithm 2 encapsulates the way point calculation expressed in Equation (1a–1c). Thanks to the coordinate transformation, the spatial mapping of base points to way points becomes the simple arithmetic formulae in Equation (1). More importantly, both of the transformations (i.e.,

`CoordTransform`and

`WayPoint`) are performed independently for each base point. As $Se{t}_{ij}\left([{W}_{j},{p}_{i}]\right)$ is a distributed dataset, adding the newly computed way point — base point pairs do not require any synchronization among elements of the dataset. Every step in the first for loop is parallel. In the second for loop (lines 9–11 of Algorithm 3), each execution takes an individual way point, ${W}_{j}$, and the corresponding base point subset $\mathrm{\Pi}$ to perform the beam casting algorithm described in Algorithm 2 and Section 3.2. Similar to the first for loop, the second for loop is straightforwardly parallelizable since each individual execution is independent.

`CoordTransform`and

`WayPoint`transformations in Stage 1 are applied for each base point ${p}_{i}$. Similarly, the

`BeamCasting`transformation in Stage 2 is applied on each way point and a limited subset of base points ($\mathrm{\Pi}$) corresponding to the way point. All of those transformations are easily parallelizable, because manipulation of one record is totally independent of other manipulations and side effects. In addition, the amount of data involved in each transformation is limited. Thus, each transformation is performed in memory.

`AggregateByKey`function in Spark. The

`AggregateByKey`function aggregates data within each partition before shuffling the data between nodes, thereby minimizing data transfer across the cluster. Another operation that needs data transfer across nodes is the final function that gathers the numbers of vertical points from all partitions and computes the final sum. That operation is straightforward and is implemented using the

`Collect`function in Spark.

`AggregateByKey`). Throughout that algorithm, the computation is decomposed into loosely coupled transformations that are conducted by different executors in a highly independent manner. Expensive communication across executors and nodes is restricted. As such, the algorithm is suitable for being deployed on a distributed-memory cluster in which the computing nodes that host executors do not share a memory space and use an interconnect for their limited communication.

#### 3.4. Multiple Evaluators—An Additional Level of Parallelism

## 4. Results

#### 4.1. GA Optimization Results

#### 4.2. Performance Evaluation

#### 4.2.1. Lower Layer of Parallelization

#### 4.2.2. Upper Layer of Parallelization

## 5. Discussion

## 6. Conclusions

## Author Contributions

## Funding

## Institutional Review Board Statement

## Informed Consent Statement

## Data Availability Statement

## Acknowledgments

## Conflicts of Interest

## Abbreviations

ALS | Aerial laser scanning |

BAT | Brooklyn Army Terminal |

DOITT | Department of Information Technology and Telecommunication |

FOV | Field of view |

GA | Genetic algorithm |

LiDAR | Light Detection And Ranging |

RDD | Resilient Distributed Dataset |

## Appendix A

## References

- Petrie, G.; Toth, C. Introduction to laser ranging: Profiling, and scanning. In Topographic Laser Ranging and Scanning: Principles and Processing; Shan, J., Toth, C.K., Eds.; CRC Press—Taylor & Francis Group: Boca Raton, FL, USA, 2008; Chapter 1. [Google Scholar]
- Vo, A.; Laefer, D.; Bertolotto, M. Airborne laser scanning data storage and indexing: State of the art review. Int. J. Remote Sens.
**2016**, 37, 6187–6204. [Google Scholar] [CrossRef] [Green Version] - Stanley, M.H.; Laefer, D.F. Metrics for aerial, urban lidar point clouds. ISPRS J. Photogramm. Remote Sens.
**2021**, 175, 268–281. [Google Scholar] [CrossRef] - Heidemann. Lidar base specification (ver. 1.3). In U.S. Geological Survey Standards—Collection and Delineation of Spatial Data; Number October; U.S. Geological Survey: Reston, VA, USA. Available online: https://pubs.er.usgs.gov/publication/tm11B4 (accessed on 7 April 2020). [CrossRef] [Green Version]
- New York City Department of Information Technology & Telecommunications (DoITT). Topobathymetric LiDAR Data (2017). 2019. Available online: https://data.cityofnewyork.us/City-Government/Topobathymetric-LiDAR-Data-2017-/7sc8-jtbz (accessed on 30 August 2021).
- Sugarbaker, L.; Constance, E.; Heidemann, H.K.; Jason, A.; Lucas, V.; Saghy, D.; Stoker, J. The 3D Elevation Program Initiative: A Call for Action; Technical Report; U.S. Geological Survey: Reston, VA, USA, 2014. [CrossRef] [Green Version]
- AHN. Actueel Hoogtebestand Nederland. 2020. Available online: https://www.ahn.nl/ (accessed on 30 July 2021).
- Höfle, B.; Hollaus, M. Urban vegetation detection using high density full-waveform airborne lidar data-combination of object-based image and point cloud analysis. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci.
**2010**, 38, 281–286. [Google Scholar] - Rahman, M.; Kadir, W.; Rasib, A.; Ariffin, A.; Razak, K.; Estate, R.; Baharu, J. Integration of high density airborne LiDAR and high spatial resolution image for land cover classification. In Proceedings of the IEEE Geoscience and Remote Sensing Symposium (IGARSS), Melbourne, Australia, 21–26 July 2013; pp. 2927–2930. [Google Scholar]
- Laefer, D.; O’Sullivan, C.; Carr, H.; Truong-Hong, L. Aerial Laser Scanning (ALS) Data Collected over an Area of around 1 Square km in Dublin City in 2007; UCD Digital Library: Dublin, Ireland, 2014. [Google Scholar] [CrossRef]
- Laefer, D.; Abuwarda, S.; Vo, A.; Truong-Hong, L.; Gharibi, H. 2015 Aerial Laser and Photogrammetry Survey of Dublin City Collection Record; NYU Spatial Data Repository: New York, NY, USA, 2017. [Google Scholar] [CrossRef]
- Lastovetsky, A.L. Parallel Computing on Heterogeneous Networks; John Wiley & Sons: Hoboken, NJ, USA, 2008; Volume 24. [Google Scholar]
- Pacheco, P. Parallel hardware and parallel software. In An Introduction to Parallel Programming; Morgan Kaufmann: Burlington, MA, USA, 2011; Chapter P2; pp. 15–77. [Google Scholar]
- Krishnan, S.; Crosby, C.; Nandigam, V.; Phan, M.; Cowart, C.; Baru, C.; Arrowsmith, R. OpenTopography: A services oriented architecture for community access to LiDAR topography. In Proceedings of the 2nd International Conference on Computing for Geospatial Research & Applications—COM.Geo ’11, Washington, DC, USA, 23–25 May 2011; ACM Press: New York, NY, USA, 2011; pp. 1–8. [Google Scholar] [CrossRef]
- Martinez, J.L.; Reina, A.J.; Morales, J.; Mandow, A.; García-Cerezo, A.J. Using multicore processors to parallelize 3D point cloud registration with the Coarse Binary Cubes method. In Proceedings of the 2013 IEEE International Conference on Mechatronics (ICM), Vicenza, Italy, 27 February–1 March 2013; pp. 335–340. [Google Scholar]
- Li, Z.; Hodgson, M.; Li, W. A general-purpose framework for parallel processing of large-scale LiDAR data. Int. J. Digit. Earth
**2017**, 11, 26–47. [Google Scholar] [CrossRef] - Vo, A.; Laefer, D.; Smolic, A.; Zolanvari, S. Per-point processing for detailed urban solar estimation with aerial laser scanning and distributed computing. ISPRS J. Photogramm. Remote Sens.
**2019**, 155, 119–135. [Google Scholar] [CrossRef] - Vo, A.; Laefer, D. A Big Data approach for comprehensive urban shadow analysis from airborne laser scanning point clouds. ISPRS Ann. Photogramm. Remote Sens. Spat. Inf. Sci.
**2019**, IV-4/W8, 111–116. [Google Scholar] [CrossRef] [Green Version] - Katoch, S.; Chauhan, S.S.; Kumar, V. A review on genetic algorithm: Past, present, and future. Multimed. Tools Appl.
**2021**, 80, 8091–8126. [Google Scholar] [CrossRef] - Morton, B.; Young, J. Guidelines for LiDAR data collections. In Manual of Topographic LiDAR; Renslow, M., Ed.; American Society of Photogrammetry and Remote Sensing: Bethesda, MD, USA, 2012; Chapter 5. [Google Scholar]
- U.S. Geological Survey. 2013–2014 U.S. Geological Survey CMGP LiDAR: Post Sandy (New York City); NOAA Office for Coastal Management: Charleston, SC, USA, 2014. Available online: https://www.fisheries.noaa.gov/inport/item/49891 (accessed on 30 August 2021).
- Alsadik, B.; Remondino, F. Flight planning for LiDAR-based UAS mapping applications. ISPRS Int. J. Geo-Inf.
**2020**, 9, 378. [Google Scholar] [CrossRef] - Hinks, T.; Carr, H.; Laefer, D.F. Flight optimization algorithms for aerial LiDAR capture for urban infrastructure model generation. J. Comput. Civ. Eng.
**2009**, 23, 330–339. [Google Scholar] [CrossRef] [Green Version] - Dashora, A.; Lohani, B.; Deb, K. Method of flight planning for airborne LiDAR using genetic algorithms. J. Appl. Remote Sens.
**2014**, 8, 083576. [Google Scholar] [CrossRef] - Girardeau-Montaut, D.; Roux, M.; Marc, R.; Thibault, G. Change detection on points cloud data acquired with a ground laser scanner. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci.
**2005**, 36, W19. [Google Scholar] - Rusu, R.; Cousins, S. 3D is here: Point Cloud Library (PCL). In Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 1–4. [Google Scholar] [CrossRef] [Green Version]
- Hobu, Inc. PDAL—Point Data Abstraction Library. 2021. Available online: https://pdal.io/ (accessed on 30 August 2021).
- Kleppmann, M. Reliable, scalable, and maintainable applications. In Designing Data-Intensive Applications—The Big Ideas behind Reliable, Scalable, and Maintainable Systems; O’Reilly Media: Sebastopol, CA, USA, 2017; pp. 3–22. [Google Scholar]
- Wu, H.; Guan, X.; Gong, J. ParaStream: A parallel streaming Delaunay triangulation algorithm for LiDAR points on multicore architectures. Comput. Geosci.
**2011**, 37, 1355–1363. [Google Scholar] [CrossRef] - Che, E.; Olsen, M.J. Multi-scan segmentation of terrestrial laser scanning data based on normal variation analysis. ISPRS J. Photogramm. Remote Sens.
**2018**, 143, 233–248. [Google Scholar] [CrossRef] - Zhang, J.; Wu, G.; Hu, X.; Li, S.; Hao, S. A parallel k-means clustering algorithm with mpi. In Proceedings of the IEEE 2011 Fourth International Symposium on Parallel Architectures, Algorithms and Programming, Tianjin, China, 9–11 December 2011; pp. 60–64. [Google Scholar]
- Bodenstein, C.; Gotz, M.; Riedel, M. Analysis of 3D point clouds using a parallel DBSCAN clustering algorithm. Innov. Supercomput. Dtschl.
**2015**, 3, 33–35. [Google Scholar] - Walker, D.W.; Dongarra, J.J. MPI: A standard message passing interface. Supercomputer
**1996**, 12, 56–68. [Google Scholar] - Dean, J.; Ghemawat, S. MapReduce: Simplified data processing on large clusters. Commun. ACM
**2008**, 51, 107–113. [Google Scholar] [CrossRef] - Apache Hadoop. 2021. Available online: https://hadoop.apache.org/ (accessed on 1 September 2021).
- Apache Spark. 2021. Available online: https://spark.apache.org/ (accessed on 1 September 2021).
- Brédif, M.; Vallet, B.; Ferrand, B. Distributed dimensionality-based rendering of LiDAR point clouds. Int. Arch. Photogramm. Remote Sens. Spat. Inf. Sci.
**2015**, XL-3/W3, 559–564. [Google Scholar] [CrossRef] [Green Version] - Liu, K.; Boehm, J.; Alis, C. Change detection of mobile LIDAR data using cloud computing. In International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences-ISPRS Archives; International Society of Photogrammetry and Remote Sensing: Prague, Czech Republic, 2016; Volume 41, pp. 309–313. [Google Scholar]
- Liu, S.; Tang, J.; Wang, C.; Wang, Q.; Gaudiot, J.L. Implementing a cloud platform for autonomous driving. arXiv
**2017**, arXiv:1704.02696. [Google Scholar] - Alis, C.; Boehm, J.; Liu, K. Parallel processing of big point clouds using Z-Order-based partitioning. In International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences-ISPRS Archives; International Society of Photogrammetry and Remote Sensing: Prague, Czech Republic, 2016; Volume 41, pp. 71–77. [Google Scholar]
- Wolpert, D.H.; Macready, W.G. No free lunch theorems for optimization. IEEE Trans. Evol. Comput.
**1997**, 1, 67–82. [Google Scholar] [CrossRef] [Green Version] - Goldberg, D.E.; Holland, J.H. Genetic algorithms and machine learning. Mach. Learn.
**1988**, 3, 95–99. [Google Scholar] [CrossRef] - Zlatanova, S.; Nourian, P.; Gonçalves, R.; Vo, A. Towards 3D raster GIS: On developing a raster engine for spatial DBMS. In Proceedings of the ISPRS WG IV/2 Workshop Global Geospatial Information and High Resolution Global Land Cover/Land Use Mapping, Novosibirsk, Russian, 21 April 2016; pp. 45–60. [Google Scholar]
- Wilhelmstötter, F. Jenetics: Java Genetic Algorithm Library (2019). 2019. Available online: http://jenetics.io (accessed on 30 August 2019).
- Vo, A.; Lokugam Hewage, C.N.; Le Khac, N.A.; Bertolotto, M.; Laefer, D. A parallel algorithm for local point density index computation of large point clouds. ISPRS Ann. Photogramm. Remote Sens. Spat. Inf. Sci.
**2021**, VIII-4/W2-2021, 75–82. [Google Scholar] [CrossRef] - Chen, S.; Laefer, D.F.; Mangina, E. State of technology review of civilian UAVs. Recent Patents Eng.
**2016**, 10, 160–174. [Google Scholar] [CrossRef] [Green Version] - Albani, D.; Manoni, T.; Nardi, D.; Trianni, V. Dynamic UAV swarm deployment for non-uniform coverage. In Proceedings of the 17th International Conference on Autonomous Agents and Multiagent Systems, Stockholm, Sweden, 10–15 July 2018; pp. 523–531. [Google Scholar]
- Zhou, Y.; Rao, B.; Wang, W. UAV Swarm Intelligence: Recent Advances and Future Trends. IEEE Access
**2020**, 8, 183856–183878. [Google Scholar] [CrossRef] - Towns, J.; Cockerill, T.; Dahan, M.; Foster, I.; Gaither, K.; Grimshaw, A.; Hazlewood, V.; Lathrop, S.; Lifka, D.; Peterson, G.; et al. XSEDE: Accelerating scientific discovery. Comput. Sci. Eng.
**2014**, 16, 62–74. [Google Scholar] [CrossRef]

**Figure 1.**Comparison of the conventional parallel flight line approach and the gridded flight line approach optimized for mapping dense urban environments.

**Figure 3.**Representations of a flight path candidate for GA optimisation in which: (

**a**) is the parameterization of a flight path candidate; (

**b**,

**c**) are two alternative representations: Numeric and BitVector.

**Figure 4.**Laser beam tracing for estimation of missing vertical points. Red beams denote ones that strike a vertical surface and blue beams denote beams that strike in the vicinity of a base point on a non-vertical surface.

**Figure 5.**Mapping of base point to way points, where a base point pi is mapped to 3 flight lines ${l}_{1}$, ${l}_{2}$, ${l}_{3}$ before being mapped to the way points on the flight lines.

**Figure 6.**Data lineage corresponding to Algorithm 3, where in Stage 1, no cross-partition exchange is needed as the points within each partition are mapped to their corresponding way points. Subsequently, the data are shuffled among the partitions to aggregate the points by their way points. Ultimately, in Stage 2, the beam tracing algorithm is applied to each point data subset corresponding to individual way points to calculate the fitness score. No cross-partition exchange is needed in Stage 2.

**Figure 7.**Dual levels of parallelization are shown where the GA optimizer distributes the flight path candidates to different evaluators for fitness score computation. To evaluate a flight path candidate, each evaluator partitions and distributes the work to multiple executors, each of which can use multiple parallel threads.

**Figure 9.**LiDAR flight path optimization results: (

**a**) The evolution of the population fitness scores over 32 generations according to 2 opposite optimization objectives; (

**b**,

**c**) The most and least optimal flight paths derived from the GA optimization, respectively.

**Figure 10.**Density histograms of the complete Diagonal and Orthogonal point clouds, where the Diagonal point cloud has a higher number of high-density points.

**Figure 11.**Comparison of acquired vertical data on two façade highly susceptible to street occlusion shows the higher numbers of high-density points in the Diagonal point clouds are observable in both the histogram and the point cloud plots.

**Figure 12.**Façades not susceptible to street occlusion—the Diagonal flight grids captured more vertical points on the North East façade but less vertical points on the South East façade.

**Figure 13.**Efficiency of the lower layer of parallelization—overall, the runtime reduced when the numbers of executors and cores increased. The runtime reduction is much more obvious in the experiments using the Large dataset.

**Figure 14.**Efficiency of the upper layer of parallelization, where the runtime reduced when the number of evaluators increased.

Num. Executors | |||||||
---|---|---|---|---|---|---|---|

1 | 2 | 4 | 8 | 16 | |||

num. cores per executor | 1 | Runtime (s) | 130 | 83 | 47 | 31 | 27 |

Speedup | — | 1.6 | 2.8 | 4.2 | 4.9 | ||

2 | Runtime (s) | 77 | 49 | 30 | 28 | 22 | |

Speedup | 1.7 | 2.7 | 4.3 | 4.6 | 5.8 | ||

4 | Runtime (s) | 52 | 32 | 25 | 20 | 21 | |

Speedup | 2.5 | 4.1 | 5.1 | 6.6 | 6.2 | ||

8 | Runtime (s) | 32 | 28 | 23 | 19 | 17 | |

Speedup | 4.0 | 4.6 | 5.6 | 6.8 | 7.5 |

Num. Executors | |||||||
---|---|---|---|---|---|---|---|

1 | 2 | 4 | 8 | 16 | |||

num. cores per executor | 1 | Runtime (s) | 5771 | 2884 | 1507 | 812 | 439 |

Speedup | — | 2.0 | 3.8 | 7.1 | 13.1 | ||

2 | Runtime (s) | 4151 | 2171 | 1121 | 697 | 383 | |

Speedup | 1.4 | 2.7 | 5.1 | 8.3 | 15.1 | ||

4 | Runtime (s) | 2627 | 1423 | 785 | 522 | 331 | |

Speedup | 2.2 | 4.1 | 7.4 | 11.0 | 17.4 | ||

8 | Runtime (s) | 1762 | 1008 | 657 | 359 | 315 | |

Speedup | 3.3 | 5.7 | 8.8 | 16.1 | 18.3 |

Num. Evaluators | ||||
---|---|---|---|---|

1 | 2 | 3 | 4 | |

Runtime (s) | 454 | 282 | 186 | 144 |

Speedup | — | 1.6 | 2.4 | 3.2 |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Vo, A.V.; Laefer, D.F.; Byrne, J.
Optimizing Urban LiDAR Flight Path Planning Using a Genetic Algorithm and a Dual Parallel Computing Framework. *Remote Sens.* **2021**, *13*, 4437.
https://doi.org/10.3390/rs13214437

**AMA Style**

Vo AV, Laefer DF, Byrne J.
Optimizing Urban LiDAR Flight Path Planning Using a Genetic Algorithm and a Dual Parallel Computing Framework. *Remote Sensing*. 2021; 13(21):4437.
https://doi.org/10.3390/rs13214437

**Chicago/Turabian Style**

Vo, Anh Vu, Debra F. Laefer, and Jonathan Byrne.
2021. "Optimizing Urban LiDAR Flight Path Planning Using a Genetic Algorithm and a Dual Parallel Computing Framework" *Remote Sensing* 13, no. 21: 4437.
https://doi.org/10.3390/rs13214437