Projection-based terrain feature line extraction from point cloud data | Research Square window.SnipcartSettings = { analytics: { enabled: false } }; (function() { var accessVector = localStorage.getItem('access_vector') || ''; window.dataLayer = window.dataLayer || []; if (accessVector) { window.dataLayer.push({ user: { profile: { profileInfo: { snid: accessVector } } } }); } })(); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-K279D39R'); Browse Preprints In Review Journals COVID-19 Preprints AJE Video Bytes Research Tools Research Promotion AJE Professional Editing AJE Rubriq About Preprint Platform In Review Editorial Policies Our Team Advisory Board Help Center Sign In Submit a Preprint Cite Share Download PDF Research Article Projection-based terrain feature line extraction from point cloud data Nehal Kalita, Rajesh Kumar Maurya This is a preprint; it has not been peer reviewed by a journal. https://doi.org/ 10.21203/rs.3.rs-4549886/v1 This work is licensed under a CC BY 4.0 License Status: Published Journal Publication published 05 Aug, 2025 Read the published version in Next Research → Version 1 posted You are reading this latest preprint version Abstract Feature lines of an object represent its surface characteristics along a specific plane or direction. They are essential for understanding and analysing the object's shape, geometry, and features. Depending upon the details stored in an object or data, feature line extraction can be a complex task. In terrain data, these details can be slopes for ridges and valleys, artefacts or some other forms of noise. If the data for analysis consists of point clouds with only positional values, one of the most common methods to detect patterns is to rely on the Euclidean distance between neighbouring points. In this paper, a method to extract terrain feature lines on point clouds has been presented that relies only on coordinate values. The feature line points are initially identified with the help of a projection of point clouds on 2D grids, and then these are used to extract feature lines or breaklines with the help of a spanning tree algorithm. The method can generate output with high accuracy for data with less noise and moderate accuracy for data with more noise. Point cloud 3D data Topography 2D grid Feature line Figures Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 1. Introduction Point clouds have become a cornerstone for capturing and representing 3D objects and environments. They are essentially a collection of individual data points scattered throughout space, each meticulously defined by its X, Y, and Z coordinates. Collectively, these points paint a detailed, yet discrete, picture of the subject's geometry, forming a dense and irregular sampling of its surface. In the field of Geoscience, a multitude of 3D data is currently stored in the form of point clouds, providing a versatile and scalable alternative to traditional polygonal meshes, especially for handling complex geometries and large-scale environments. There are many ways of creating point clouds. Light Detection and Ranging (LiDAR), photogrammetry and 3D mesh sampling are to name a few. Feature line extraction is a way to determine the structure of an object. Neighbouring vertices or pixels in a data are compared to first identify local maxima / minima and then generate continuity between them. In 2D raster data, feature line extraction is similar to edge detection in image processing and these lines are usually extracted as per grayscale or RGB values of pixels and distance between neighbours [ 1 ]. In 3D polygonal mesh data, these are usually generated with reference to connectivity of edges and distance between vertices, which can be calculated with the help of Euclidean distance formula [ 2 ]. But in case of point clouds, feature line extraction is more complex as this type of data contains vertices but not edges or faces. Feature line analysis is related to ridge-valley analysis as the latter is a specific aspect of the former. The combination of ridges and valleys provides a thorough understanding of the terrain's topographic features, which is also expected from feature lines. Hence, also in terms of usability, these lines share similarities with ridges and valleys that are detected separately. Use of terrain features lines can be commonly observed in lightweight and effective visual explanation of the data. E.g. In Fig. 1 , consider graph G and its subgraphs G 1 and G 2 are created on the areas of an object that has sharp slopes. Then average distance between the subgraphs can indicate smoothness of surface in that region. Higher the distance, smoother is the region. So, the feature line formed by graph G along with its subgraphs can represent what would otherwise have been expected from the entire set of vertices or edges in the 3D object. Usually for terrain, feature line or breakline (the term used for terrain data) need not be extracted by considering all viewing directions, unlike a 3D model of an animal. Since crucial information about the structure of a terrain can be observed from one view (generally the top view), a projection of that view on a plane with grids can be helpful to extract decent features lines, provided the data projected on the grids also contains information about the height value of each point. Then, terrain ruggedness can be studied with the help of height values to identify these lines. But the presence of noise in the form of artefacts can hinder the process of features line extraction in some data since these are also part of ruggedness and can lead to the generation of false feature extensions or even abruptly break feature continuity. Various methods of noise identification have been presented so far. [ 3 ] discusses the use of maximum slopes of terrain to detect noise artefacts and [ 4 ] discusses a method that relies on spatial hierarchical directional relationship and region growing algorithm to detect noise in the form of cloud, birds and incomplete scanning ground points. [ 5 ] discusses detection of a specific form of artefact – trees, that is done by drawing point cloud projections of tree trunks at different heights and calculating the centre coordinates. [ 6 ] discusses another form of artefact processing – pit filling, that is done by first detecting pits with the help of user- defined thresholds and then filling them with values derived from neighbourhood. Through this paper, a projection-based terrain features line extraction method is presented which requires only 3D coordinate values of point clouds as input. The method has been tested on real-world data (LiDAR extracts). Analysis on noisy data is also discussed in this paper. 2. Related Work There is extensive literature related to feature line extraction and its applications. The experiments discussed below are only some of those that are related to 3D graphics. A form of structure or feature line generation was performed through sketch-drawing [ 7 ] that relies on the fusion of ridge-valley lines and contours of point clouds. The algorithm used is viewport-dependent, leading to the generation of different sketches of a single object. To detect edges in depth maps, [ 8 ] an unsupervised learning method was introduced that brings out the edge specific features using an encoder-decoder network. This method is more useful than many supervised methods [ 9 – 11 ] using labelled data, as the labels can be wrong in some cases. A work on edge and corner detection from point clouds was also presented [ 12 ], which relies on an adaptive density-based threshold to identify edges and statistics of curvature vector clusters to identify corners. Their method is also beneficial for robotic welding, which was earlier done with the help of 3D CAD models [ 13 ]. Another work on edge detection on point clouds [ 14 ] identifies sharp edge features by analysing eigenvalues of covariance matrices from k-nearest neighbours. A technique for detecting sharp features in point-sampled geometry without surface reconstruction was introduced [ 15 ] that uses Gauss map clustering and an adaptive sensitivity parameter for robust identification. The method works directly on unstructured point clouds, handling various angles efficiently and independently of sampling resolution. For terrain data, an automated method [ 16 ] for detecting 3D vector topographic feature lines (i.e. ridges and valleys) from terrain point clouds using signed surface variation (SSV) and iterative thinning with SSV-weighted Laplacian smoothing was introduced. As per the results of an experiment, the correctness of this method was proved to be higher than raster-based maximum gradient deterministic eight (D8) algorithm. Another automated method along with a Python add-in for ArcGIS software [ 17 ] was presented for assessing the accuracy of ridge and valley features using high-resolution DEMs from airborne LiDAR, eliminating the need for pre-existing reference layers and identifying positional inaccuracies. The limitations of this method include challenges with scale, resolution and U-shaped valleys. A method was also introduced for extracting shoulder lines on plateau [ 18 ] that uses ridge and valley points as endpoints for extracting feature lines, along with the help of the parameters – a) analysis operator (for calculating slope variation matrix) and b) filter threshold of the slope variation points, for precise shoulder point extraction from profiles. A method was presented for generating realistic mountainous digital terrains [ 19 ] to distinguish between different mountain ranges. This was done by incorporating technique for measurement of mountains. This method builds a graph of peaks and saddles from a coarse elevation map, which is expanded into a continuous elevation function with a consistent river network and valley slopes. A point cloud data-based elevation-gradient edge detection method was introduced to extract step-feature lines (contour lines, concave and convex fold lines, and transition smooth lines) in open-pit mines [ 20 ] and then to address issues of low accuracy, local-feature-line loss and discontinuity. This method involves raster resampling, elevation-gradient detection, seed-growth tracking, and space curve fitting to generate smooth step-feature lines. As per the results of an experiment, this method outperformed Canny edge detection algorithm and AGPN (analyzing geometric properties of neighborhoods) algorithm in accuracy, completeness, and overall quality. A point cloud data-based method was also introduced that relies on a projection-based approach [ 21 ] to detect ridges and valleys of a terrain. Before attempting to analyse any ridge or valley, the method interpolates missing data in grids that are expected to have projected point cloud height values. The signed surface variation and iterative thinning method [ 16 ] can be used to extract terrain feature lines from point clouds. But Maurya et. al. [ 21 ] makes use of a projection-based approach that can reduce complexity in extracting these lines. Their method refers to the X and the Y values of point clouds and projects the Z values (height values) on a 2D grid along XY plane. Later it scans through that 2D grid to refer the height values while detecting ridges and valleys. The major problem with Maurya et. al. is that it individually identifies ridge or valley in each section of 2D grid, without considering any connectivity with the neighbouring sections. A minor problem with this method is that it fills empty spaces in every section, thereby increasing computation time. While Maurya et al.'s approach to ridge and valley analysis serves as the primary inspiration for the feature line extraction method presented in this paper, the techniques developed by Zhou et al. [ 16 ], Dongs [ 17 ], and Mao et al. [ 20 ] provided the basis for creating a method to form a network between maxima and minima points. 3. Materials and methods Each point cloud dataset used in this experiment were downloaded from OpenTopography, a web-based community resource for topographic data. The source code was written in Python version 3.10.10 (Python Software Foundation, Beaverton, Oregon, USA) on a machine with Core i7 3rd Generation CPU, 16 GB RAM, Intel HD graphics 4000 GPU and Microsoft Windows 10 OS. 3.1. Data and code availability The relevant code along with metadata of the used datasets can be found at the following GitHub repository: https://github.com/nehalkalita/Projection-based-breakline-extractor . The procedure to execute the code is mentioned in the Readme file. The repository also contains an executable version (.EXE file) of the code. 3.2. Method for analysis The method to generate output is explained with the help of nine steps, each under subheadings numbered from 3.2.1 to 3.2.9. 3.2.1. Pre-processing of data The method of feature line extraction discussed in this paper subdivides data as per its X and Y coordinate values and places them onto a 2D square grid. This method processes coordinate values in whole numbers as this type of number is easier to partition. A raw data may consist of coordinate values in decimal numbers because of the unit of measurement used. Ignoring the digits beyond the decimal can lead to loss of crucial information. Hence, scaling values beyond the decimal is significant while analysing a data. This leads to the necessity of preprocessing data. In this step, the X, Y, Z coordinate values of the raw file are stored in a new file despite the raw file having more information. Then maximum possible values across X-axis and Y-axis, X max ( \(\stackrel{\sim}{x}\) max , \(\stackrel{\sim}{x}\) min , d ) and Y max ( \(\stackrel{\sim}{y}\) max , \(\stackrel{\sim}{y}\) min , d ) are identified and the decimal places are rounded off as per the parameter value, d . These two values are identified since it helps in understanding the dimension of the area to be processed in whole numbers, after setting the number of decimal places to be covered. \(\stackrel{\sim}{x}\) max and \(\stackrel{\sim}{x}\) min denotes rounded values of original x max and x min values simultaneously. A demonstration of X max ( \(\stackrel{\sim}{x}\) max , \(\stackrel{\sim}{\text{x}}\) min , d ) calculation is shown below: X max ( \(\stackrel{\sim}{x}\) max , \(\stackrel{\sim}{x}\) min , d ) = ( \(\stackrel{\sim}{x}\) max - \(\stackrel{\sim}{x}\) min ) / (1 / (10 d )) E.g. If d = 2, x min = 337104.568, x max = 337408.412, then \(\stackrel{\sim}{x}\) min = 337104.57, \(\stackrel{\sim}{x}\) max = 337408.41 and X max ( \(\stackrel{\sim}{x}\) max , \(\stackrel{\sim}{x}\) min , d ) = 30384. The program also converts coordinate values of all the points to whole numbers because whole numbers are easier to analyse. Finally, the limits (minima and maxima values) of X, Y and Z-axes along with X max ( \(\stackrel{\sim}{x}\) max , \(\stackrel{\sim}{x}\) min , d ) and Y max ( \(\stackrel{\sim}{y}\) max , \(\stackrel{\sim}{y}\) min , d ) are exported. 3.2.2. Identification of local maxima / minima in data For extracting feature lines, it is important to first identify the points that can be used to create edges for representing these feature lines. These points are either maxima or minima, in terms of height, of a localised region. To identify these points, the area covered by a data across X,Y plane is first subdivided in a way that these subdivisions can fit in a square grid. This approach of plotting 3D data on 2D plane has been preferred because iterating over 2D plane should be computationally faster than iterating over multiple layers of planes in 3D space or the volume of a 3D object. Furthermore, terrain data typically do not exhibit a top-heavy object type. Therefore, projecting higher elevation points onto a lower elevation plane will not significantly affect the feature lines formed by the terrain's morphology. In this paper, the term used to denote these subdivisions is block. If a block has more than one point, then the average value of the points is considered when detecting maxima and minima. To identify local maxima and minima, the height values of a continuous set of blocks along either the X or Y axis are compared. In this paper, these sets of continuous blocks are referred to as sections. The total number of maxima or minima identified in a row or column of blocks depends on the position from which a section updates its set of blocks to detect a new local maximum or minimum. If the position from which the section updates is too close to the position of the previous iteration, it can lead to the identification of many unwanted maxima or minima. To prevent this, the discussed method also considers the coverage range of local maxima or minima. Consequently, if a new maximum falls within the coverage range of a previous maximum, it is discarded. The same principle applies to minima. In this step, files storing modified data and limits are initially imported and the system refers values of the following parameters: Block size It is the value that acts as a resolution definer to export the dimension of data identified by X max ( max , min , d ) and Y max ( max , min , d ). Resolution is calculated by dividing these X max ( max , min , d ) and Y max ( max , min , d ) with this block size and taking the round off value. Span across maxima / minima points It is the value which determines the number of positions considered as coverage across maxima / minima points in each section. In Fig. 2 , all three diagrams are meant to demonstrate maxima identification. The diagram Data under analysis shows a data being divided into 12 blocks and size of a section is 7 blocks. The squares in 3rd, 9th and 10th blocks represent points with high Z-axis value and the squares in other blocks represent points with low Z-axis value. The diagram Identified points (with span) shows the high points of Data under analysis along with their coverage (span value of 1) identified in each iteration made by the section. The diagram Identified points (without span) shows only the high points identified in each iteration made by the section. Similarly, for minima identification, the points with low Z-axis values should be considered. The size of a section is identified by the parameter Block size. E.g. If the parameter value is 7, then blocks are of dimension 7x7 and the section would contain a set of 7 such blocks. A section updates its position by 1 block at a time. In each section iteration, if either of the boundary positions are to be considered as per the span value then the value extraction from that iteration is discarded. E.g. Consider a section of 7 blocks. Its boundary blocks are 1st and 7th. If the given span value is 2 and local maxima is identified in 5th block of the section, then 3rd, 4th, 6th and 7th blocks (5–2, 5 + 2) are also considered as part of high point. But 7th block is a boundary block of section. So, the local maxima value (from 5th block) collected from that section iteration is discarded. Once all blocks are covered using section-based iteration, then this output as high / low points excluding coverage (span) is passed for further processing. 3.2.3. Filtration by minimum local height difference There is a need to filter local maxima or minima points as some of them may represent artefacts, which are not needed for the expected analysis. Usually, absolute values of the prominent slopes of a terrain are higher than the absolute values of slopes calculated between many artefacts and their respective surfaces. So, it is convenient to use a height filter to exclude unwanted maxima and minima points. In this step, the difference between maxima and minima (identified from step 2) of each section, h diff are compared with an input local height difference value, h local . For valid local maxima identification, if h diff > = h local , then that highest point from step 2 is considered for step 4. Similarly, for valid local minima identification, the lowest point from step 2 is considered if h diff > = h local . The expected parameter is minimum local height difference. In Fig. 3 , both the diagrams are meant to demonstrate height difference comparison. The diagram Data under analysis shows a data being divided into 12 blocks and size of a section is 7 blocks. The diagram Identified points shows only the local maxima points identified in each iteration made by the section. The expected h local value is 10. So, only one value (i.e. 20 from 4th block; since 20–8 = 12) satisfies the condition. 3.2.4. Filtration by section median coverage Ridges and valleys in a terrain are formed when two slopes or flanks from opposite directions intersect. There is always a major difference in height between ridge / valley lines and their adjacent areas. So, a section scanned over an area through which a ridge / valley line crosses can result in the identification of ridge points as maxima and valley points as minima, with them being close in position to the median of that section. But a section scanned over an area of just one slope or one flank would mostly result in the identification of maxima / minima points towards the boundary of that section instead of its median. This leads to the necessity of filtering identified points based on their block position in a section. In this step, the program checks whether the local maxima and minima points, identified from step 3 are part of the median of a section. For that, the program compares the position of these maxima and minima points, p max and p min with the position of median, p m of that section and it refers a parameter to check expansion of a median. The expected parameter is section median coverage (in %), c m . E.g. 1) If section size = 9, then p m is 5. If c m is set to 25 then coverage of section becomes positions 4,5,6. When 5 is originally median then four places from both left and right sides of 5 are non-median. Setting c m = 25 makes 25% of 4 = 1. So, median range is expanded by one place in both the sides. In Fig. 4 , all four diagrams are meant to demonstrate section median coverage for maxima points. The diagram Data shows a data being divided into 12 blocks which gets analyzed with section of size 9 units. The c m value is set to 25. So, just like e.g. 1, the median coverage expands by 1 unit. From the diagram Section under analysis (accepted) , it can be noted that the highest point is 18 and it is one position away from the original median i.e. 16. So, this point is accepted as shown in the diagram Identified points . From the diagram Section under analysis (rejected) , it can be noted that the highest point is 20 and it is two positions away from the original median i.e. 8. So, this point is rejected, hence not shown in the diagram Identified points . For processing steps 5–8, the following parameter values are referred - minimum breakline length along X,Y coordinates; maximum length between two neighbouring points; maximum length to form loops. 3.2.5. Edge creation within maxima / minima Edges between maxima / minima points should be created only within a certain neighbourhood distance, as these points are derived from continuous features in the data. Forming edges between points that are far apart lacks meaning, as they do not share direct continuity. In this step, the parameter, maximum length between two neighbouring points, l max ( n a , n b ) is referred to create edges with points within k neighbouring blocks. Value of this k for a point can vary for each direction ( -x , +x , -y , +y ) based on the point’s position inside a block. A demonstration of the formula for k along -x and + x is shown below: k − x = ⌊ ( p x - x s - l max ( n a , n b ) ) / b ⌋ k + x = ⌊ ( p x - x s + l max ( n a , n b ) ) / b ⌋ where, p x → X-axis value of current point x s → smallest value of X-axis in data b → block size ⌊ ⌋ → floor function In Fig. 5, edges are to be created between a point present at the center of the block position (3,3) and its neighbours in the block positions (3,1), (4,1), (5,2), (4,3), (2,4), (1,5). Each square block is of size 1 unit and l max ( n a , n b ) value is 1.85 units, which is shown as a circular boundary for point in block (3,3) to form edges. As per these conditions, only three neighbouring points out of six are taken into consideration. 3.2.6. Merge of networks Points in the 2D grid are iterated from left to right and top to bottom, even for network generation. Two networks of edges can only be merged through an unconnected point that is equidistant from both networks. If such a common point exists, it is more feasible to merge a network with its preceding one, as this will not disrupt the order of block iteration in the grid. In this steps, separate networks (which are collections of edges) are merged together if they share any common point. In the 2nd diagram of Fig. 6 , three networks created are {((1,1), (1,2)), ((1,2), (1,3))}, {((3,1), (3,2)), ((3,2), (3,3))} and {((5,1), (5,2))}. The point in block position (2,4) is common for both 1st and 2nd networks. So, the 2nd network appearing orderly in 2nd number (left to right side) is merged with the 1st network, as shown in 3rd diagram. The updated version of the 1st network is {((1,1), (1,2)), ((1,2), (1,3)), ((1,3), (2,4)), ((2,4), (3,1)), ((3,1), (3,2)), ((3,2), (3,3))}. 3.2.7. Valid network identification Feature lines, when subdivided, would result in networks of edges whose length on one axis is much greater than the other. Conversely, networks of edges, which are formed on the basis of maxima / minima points collected from artefacts, would be relatively shorter in length on either of their axes. So, when a set of networks undergoes the process of feature line extraction, it is justified to discard networks on the basis of their length in both axes. In this step, the parameter, minimum breakline length along X,Y coordinates, bll min is referred to identify valid networks. If total length of a network along either X or Y-axis is greater than or equal to bll min then that network is considered valid. In Fig. 7 , bll min expected is 4 units and length of each block is 1 unit. So, the network shown in the left diagram is valid as its length along X-axis is greater than 4 units whereas the network shown in the right diagram is invalid as its length along either X or Y-axis is less than 4 units. 3.2.8. Refinement of detected networks When edges are created between all points in a neighborhood, some edges do not represent continuous features of the data and should be removed. Many of these edges can be eliminated using the Minimum Spanning Tree (MST) algorithm, which selects edges in the network that avoid creating loops and have the minimum possible edge weight. If any of the discarded loops are valid, meaning they represent continuous features, they can be reinstated by referring to specific conditions. In this step, networks are individually refined. This is done by first applying Kruskal’s version of MST algorithm [ 22 ] on a network. Then, the parameter, maximum length to form loop, lpl max is referred to recreate some valid loops. In Fig. 8 , 1st diagram depicts an unrefined network formed by 4 points and spanned over blocks with side length of 1 unit. 2nd diagram depicts MST algorithm applied on that network. 3rd diagram depicts recreation of a valid loop as per expected lpl max value of 2 units. 3.2.9. Exportation of network In this step, the final network is then exported as a Wavefront .obj file, with the coordinate values converted to decimal numbers, which were initially converted to whole numbers in step 1. When converting to decimal numbers, the decimal places to be assigned depend on the parameter d , discussed earlier. This output represents the expected feature lines, which can be viewed with the help of software like MeshLab and CloudCompare. 4. Results and observations A sample size of eight different terrains were analysed. Satellite and aspect images are used as reference to check the validity of the extracted feature lines. Satellite images are photographs of a dataset in real world captured in daylight. It can be useful while classifying outputs based on a terrain’s vegetation type such as forest, desert, grassland, etc. The term aspect [ 23 ], in aspect images, refers to representations of the direction that a surface faces. It is calculated by determining the gradient and the direction of the slope at each point. This type of image is useful for understanding vegetation patterns. Both the satellite and the aspect images of their respective datasets were collected from OpenTopography. Table 1 contains information on the features of each dataset. Figures 9 – 16 represent the terrains and the respective output as per the proposed feature line extraction approach. Tables 2 – 9 contain parameter values for the datasets used and were chosen to generate optimal output. Table 1 Features of each dataset Sl. No. Short Dataset Name No. of Points Data Selection Coordinates X min. X max. Y min. Y max. 1 ECSZ 3,269,524 534732.613843 536230.61497 3844951.783188 3846358.658388 2 HI13_Huppert 2,332,998 431395.511313 432083.85058 2441374.377803 2441854.247291 3 CN17_Ou 2,729,585 419745.785285 420756.890259 4100878.307164 4101551.127339 4 MDV_2014 5,771,202 17339.564473 18463.374593 42394.640853 43240.915213 5 AK05_Pavlis 3,232,785 641346.871549 642309.160161 6688239.46652 6689097.948483 6 NZ21_South 3,211,759 1206487.214165 1207132.240963 5030608.417323 5031104.527591 7 NZ16_NAuckland 2,658,206 1823838.166577 1824313.290562 5993236.295458 5993711.110632 8 NSAF 6,353,787 6095113.104509 6102088.256659 2136344.326179 2141940.909725 Table 2 Parameter values of dataset 1 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 75 3 Span across highest / lowest points 3 4 Min. breakline length across X, Y coordinates 95 5 Max. length between points for connectivity 380 6 Max. length for closed edges 40 7 Min. local height difference 90 8 Section median coverage (in %) 20 Table 3 Parameter values of dataset 2 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 75 3 Span across highest / lowest points 3 4 Min. breakline length across X, Y coordinates 1,200 5 Max. length between points for connectivity 500 6 Max. length for closed edges 50 7 Min. local height difference 90 8 Section median coverage (in %) 20 Table 4 Parameter values of dataset 3 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 75 3 Span across highest / lowest points 3 4 Min. breakline length across X, Y coordinates 800 5 Max. length between points for connectivity 375 6 Max. length for closed edges 40 7 Min. local height difference 90 8 Section median coverage (in %) 20 Table 5 Parameter values of dataset 4 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 75 3 Span across highest / lowest points 11 4 Min. breakline length across X, Y coordinates 125 5 Max. length between points for connectivity 650 6 Max. length for closed edges 40 7 Min. local height difference 100 8 Section median coverage (in %) 5 Table 6 Parameter values of dataset 5 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 71 3 Span across highest / lowest points 3 4 Min. breakline length across X, Y coordinates 2,550 5 Max. length between points for connectivity 300 6 Max. length for closed edges 60 7 Min. local height difference 90 8 Section median coverage (in %) 20 Table 7 Parameter values of dataset 6 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 85 3 Span across highest / lowest points 2 4 Min. breakline length across X, Y coordinates 1,500 5 Max. length between points for connectivity 450 6 Max. length for closed edges 50 7 Min. local height difference 100 8 Section median coverage (in %) 20 Table 8 Parameter values of dataset 7 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 150 3 Span across highest / lowest points 4 4 Min. breakline length across X, Y coordinates 200 5 Max. length between points for connectivity 800 6 Max. length for closed edges 40 7 Min. local height difference 100 8 Section median coverage (in %) 5 Table 9 Parameter values of dataset 8 Sl. No. Parameter Value 1 Decimal places to round 2 2 Block size 250 3 Span across highest / lowest points 25 4 Min. breakline length across X, Y coordinates 12,500 5 Max. length between points for connectivity 2,500 6 Max. length for closed edges 100 7 Min. local height difference 80 8 Section median coverage (in %) 20 From the generated outputs, it can be observed that the accuracy varies a lot based on the type of terrain. This projection-based approach extracted feature lines with high accuracy for datasets 1–3. Feature lines extracted from datasets 4–6 have relatively higher accuracy than feature lines from datasets 7 and 8. Datasets 1–3 represent rocky or desert terrain; datasets 4–6 represent rocky with snow terrain; and datasets 7 and 8 represent forest terrain. In forest terrain, presence of trees or bushes acts as noise while detecting continuity of feature lines within a locality. So, the feature lines get deviated from their expected path as these noises lead to identification of false maxima and minima. Similarly, in snow terrain, presence of small clusters of snow can also lead to false local maxima and minima. Dataset 5 contains more clusters of snow than datasets 4 and 6. So, its output has lower accuracy than the other two. 5. Conclusion A projection-based approach for feature line analysis is useful for terrain data as this form of data has high variation of slopes, many of which can be viewed from the top direction, by even ignoring views from the other directions. So, feature lines extracted with this approach can still preserve many vital features of a terrain. The quantity of artefacts can vary in the case of computer-generated terrain, which is meant to be used in a virtual world. Moreover, the presence of artefacts can be manually controlled in such terrain. So, this approach to analysis won't lead to a high loss in accuracy. Among real-world LiDAR data, this approach has proven to be effective in terrains whose surfaces are mostly desert or rocky. Some terrain data from real-world are bound to have many artefacts because of the type of vegetation they represent. The current approach fails to preserve high accuracy of features while extracting feature lines from such data. To overcome this issue, further study can be done to integrate techniques [ 4 ]–[ 6 ] of specific artefact detection and removal with this feature line extraction approach. Declarations Competing Interests and Funding: There are no potential conflicts of interest and no funding to declare. The experiment did not receive any specific grants from funding agencies in the public, commercial, or not-for-profit sectors. Acknowledgment The author(s) did not receive any specific support or assistance from individuals or organizations that require acknowledgment for this research. Author Contributions All authors contributed to the study conception and design. Material preparation, data collection and analysis were performed by both N.K. and R.K.M. The first draft of the manuscript was written by N.K. and both the authors commented on previous versions of the manuscript. All authors read and approved the final manuscript. References S. Malik and T. Kumar: Comparative Analysis of Edge Detection between Gray Scale and Color Image, Communications on Applied Electronics, vol. 5, no. 2, pp. 38–43, 2016. L. Liberti and C. Lavor: Euclidean distance geometry: an introduction, Springer, 2017. C. Hirt: Artefact detection in global digital elevation models (DEMs) - The Maximum Slope Approach and its application for complete screening of the SRTM v4.1 and MERIT DEMs, Remote Sensing of Environment, vol. 207, pp. 27–41, 2018. Y. Lin, Y. Wang, S. Wang, S. Li, M. Wang, H. Cai and F. Teng: Noise Point Detection From Airborne LiDAR Point Cloud Based on Spatial Hierarchical Directional Relationship, IEEE Access, vol. 10, pp. 82076–82091, 2022. Y. Onda, Y. Zhang, Y. Tan, A. Hashimoto, T. Gomi, C. Chiu and S. Inokoshi: A tree detection method based on trunk point cloud section in dense plantation forest using drone LiDAR data, Forest Ecosystems, vol. 10, no. 100088, 2023. J. R. Ben-Arie, G. J. Hay and R. P. Powers: Development of a pit filling algorithm for LiDAR canopy height models, Computers and Geosciences, vol. 35(9), pp. 1940–1949, 2009. Y. Wang, H. Zhang, X. Ning, W. Hao, Z. Shi, M. Zhao, H. Zhou and L. Sui: Ridge Valley Sketch Drawing From Point Clouds, IEEE Access, vol. 6, pp. 13697–13705, 2018. A. Aggarwal, R. Stolkin and N. Marturi: Unsupervised learning-based approach for detecting 3D edges in depth maps, Scientific Reports, vol. 14, no. 796, 2024. L. Bode, M. Weinmann and R. Klein: BoundED - Neural boundary and edge detection in 3d point clouds via local neighborhood statistics, International Society for Photogrammetry and Remote Sensing, vol. 205, pp. 334–351, 2023. Z. Hu, M. Zhen, X. Bai, H. Fu and C. Tai: JSENet - Joint semantic segmentation and edge detection network for 3D point clouds, Lecture Notes in Computer Science, vol. 12365, pp. 222–239, 2020. S. Sarkar, V. Venugopalan, K. Reddy, J. Rayde, M. Giering and N. Jaitly: Using Deep Convolutional Networks for Occlusion Edge Detection in RGB-D Frames, IEEE High Performance Extreme Computing Conference (HPEC), 2015. S. M. Ahmed, Y. Z. Tan, C. M. Chew, A. A. Mamun and F. S. Wong: Edge and Corner Detection for Unorganized 3D Point Clouds with Application to Robotic Welding, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018. N. Larkin, A. Short, Z. Pan and S. v. Duin: Automatic Program Generation for Welding Robots from CAD, IEEE International Conference on Advanced Intelligent Mechatronics (AIM), 2016. D. Bazazian, J. R. Casas and J. Ruiz-Hidalgo: Fast and Robust Edge Extraction in Unorganized Point Clouds, International Conference on Digital Image Computing: Techniques and Applications (DICTA), 2015. C. Weber, S. Hahmann and H. Hagen: Sharp Feature Detection in Point Clouds, Shape Modeling International Conference, 2010. W. Zhou, R. Peng, J. Dong and T. Wang: Automated extraction of 3D vector topographic feature line from terrain point cloud, Geocarto International, vol. 33(10), pp. 1036–1047, 2017. P. Dongs: Automated accuracy assessment for ridge and valley polylines using high-resolution digital elevation models, Geosphere, vol. 13(6), pp. 2078–2084, 2017. W. Fan, S. Yuan and C. Jiang: The Profiles Based on Ridge and Valley Lines to Extract Shoulder Lines on the Loess Plateau, vol. 15(2), no. 380, 2023. O. Argudo, E. Galin, A. Peytavie, A. Paris, J. Gain and E. Guérin: Orometry-based Terrain Analysis and Synthesis, ACM Transactions on Graphics, vol. 38(6), no. 199, pp. 1–12, 2019. H. Wang, Y. Mao, W. Cao, Y. Fu, Y. Fu, L. He and N. Bao: Extraction of Step-Feature Lines in Open-Pit Mines Based on UAV Point-Cloud Data, Sensors, vol. 22(15), no. 5706, 2022. R. K. Maurya, S. T. Kulkarni and N. Kalita: Projection-Based Spatial Morphology for Extracting Ridge and Valley Profiles of Mountains from 3D Amorphous Data, 2018 4th International Conference on Computing Communication and Automation (ICCCA). Joseph B. Kruskal: On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem, Proceedings of the American Mathematical Society, vol. 7, no. 1, pp. 48–50, 1956. P. G. Holland and D. G. Steyn: Vegetational Responses to Latitudinal Variations in Slope Angle and Aspect, Journal of Biogeography, vol. 2, no. 3, pp. 179–183, 1975. Additional Declarations No competing interests reported. Supplementary Files AuthorSummary.docx Cite Share Download PDF Status: Published Journal Publication published 05 Aug, 2025 Read the published version in Next Research → Version 1 posted You are reading this latest preprint version Research Square lets you share your work early, gain feedback from the community, and start making changes to your manuscript prior to peer review in a journal. As a division of Research Square Company, we’re committed to making research communication faster, fairer, and more useful. We do this by developing innovative software and high quality services for the global research community. Our growing team is made up of researchers and industry professionals working together to solve the most critical problems facing scientific publishing. Also discoverable on Platform About Our Team In Review Editorial Policies Advisory Board Help Center Resources Author Services Accessibility API Access RSS feed Manage Cookie Preferences © Research Square 2026 | ISSN 2693-5015 (online) Privacy Policy Terms of Service Do Not Sell My Personal Information {"props":{"pageProps":{"initialData":{"identity":"rs-4549886","acceptedTermsAndConditions":true,"allowDirectSubmit":true,"archivedVersions":[],"articleType":"Research Article","associatedPublications":[],"authors":[{"id":312293206,"identity":"2d9c20c7-e41b-45bc-8d60-9eef9c4d4bad","order_by":0,"name":"Nehal Kalita","email":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAyAQMAAABI0h/eAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABA0lEQVRIiWNgGAWjYFACHgaGBwcYZNgYGBgfSFQABZiZGwhrSTjAwMPGxsBsYHEGpIWRSC0MbAxsEpVtIBECWszZew9+SDhjx8Mn3/xM4ua82mj+dqCWHxXbcGqx7DmXLJFwIxnoMDZjy5nbjufOOMzYwNhz5jZOLQY3cgwkEj4wg/xieFty27HcBqAWZsY2PFruvzH+kfChHqiF/YP03znHcucT1HKDxwzosMNALTxGEpINNbkbCGo5k2NmkXDmOFBLTrGBxLEDuRuBWg7i9cvxM8Y3PhyrlpNvPr7xgURNXe6884cPPvhRgVsLOjgMJg8QrR4I6khRPApGwSgYBSMEAAAmu1thvemfdgAAAABJRU5ErkJggg==","orcid":"","institution":"","correspondingAuthor":true,"prefix":"","firstName":"Nehal","middleName":"","lastName":"Kalita","suffix":""},{"id":312293207,"identity":"7bbd61f5-cc25-4f0b-99bd-f58641b58158","order_by":1,"name":"Rajesh Kumar Maurya","email":"","orcid":"","institution":"Usha Pravin Gandhi College of ASC","correspondingAuthor":false,"prefix":"","firstName":"Rajesh","middleName":"Kumar","lastName":"Maurya","suffix":""}],"badges":[],"createdAt":"2024-06-08 09:25:28","currentVersionCode":1,"declarations":{"humanSubjects":false,"vertebrateSubjects":false,"conflictsOfInterestStatement":false,"humanSubjectEthicalGuidelines":false,"humanSubjectConsent":false,"humanSubjectClinicalTrial":false,"humanSubjectCaseReport":false,"vertebrateSubjectEthicalGuidelines":false,"coiExplicitlySet":false},"doi":"10.21203/rs.3.rs-4549886/v1","doiUrl":"https://doi.org/10.21203/rs.3.rs-4549886/v1","draftVersion":[],"editorialEvents":[{"content":"https://doi.org/10.1016/j.nexres.2025.100673","type":"published","date":"2025-08-06T00:00:00+00:00"}],"editorialNote":"","failedWorkflow":false,"files":[{"id":58104055,"identity":"4fabacbc-efc5-447a-af92-ef5820b40dca","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":1,"title":"Figure 1","display":"","copyAsset":false,"role":"figure","size":13889,"visible":true,"origin":"","legend":"\u003cp\u003eSample feature line\u003c/p\u003e","description":"","filename":"image3.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/d3dd9780c4e9e931f1c96dbd.png"},{"id":58105287,"identity":"fb71a19b-e12b-497e-a4ac-6cab4c1fddc1","added_by":"auto","created_at":"2024-06-11 07:38:00","extension":"png","order_by":2,"title":"Figure 2","display":"","copyAsset":false,"role":"figure","size":10087,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of maxima identification\u003c/p\u003e","description":"","filename":"image4.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/a57dfec31526287e7b70a48a.png"},{"id":58104059,"identity":"954afc20-060d-4b48-8e74-0ffab7b91a13","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":3,"title":"Figure 3","display":"","copyAsset":false,"role":"figure","size":10972,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of minimum local height difference\u003c/p\u003e","description":"","filename":"image5.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/58015647b397f264239d7037.png"},{"id":58104745,"identity":"74ed6a35-e42f-4704-8e45-4f50df463844","added_by":"auto","created_at":"2024-06-11 07:30:00","extension":"png","order_by":4,"title":"Figure 4","display":"","copyAsset":false,"role":"figure","size":26595,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of section median coverage\u003c/p\u003e","description":"","filename":"image6.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/e6f50c8aed832b778824e29a.png"},{"id":58104064,"identity":"91faf363-e42b-4777-8858-f99be9a36fd3","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":5,"title":"Figure 5","display":"","copyAsset":false,"role":"figure","size":19617,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of edge formation\u003c/p\u003e","description":"","filename":"image7.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/eb21d7d7818f929a634a5013.png"},{"id":58105288,"identity":"be99af77-4e47-4036-90b8-8ada7319daff","added_by":"auto","created_at":"2024-06-11 07:38:00","extension":"png","order_by":6,"title":"Figure 6","display":"","copyAsset":false,"role":"figure","size":21390,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of a network merge\u003c/p\u003e","description":"","filename":"image8.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/a88a2f774bbf5ca8625e97a7.png"},{"id":58104748,"identity":"2403135f-06ce-4c00-b88d-8f264c76af68","added_by":"auto","created_at":"2024-06-11 07:30:00","extension":"png","order_by":7,"title":"Figure 7","display":"","copyAsset":false,"role":"figure","size":11664,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of valid network identification\u003c/p\u003e","description":"","filename":"image9.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/07f24353820453fd1169e53b.png"},{"id":58104516,"identity":"53d20484-5a9e-466c-bfd7-4ae3b1db967a","added_by":"auto","created_at":"2024-06-11 07:22:00","extension":"png","order_by":8,"title":"Figure 8","display":"","copyAsset":false,"role":"figure","size":18123,"visible":true,"origin":"","legend":"\u003cp\u003eRepresentation of network refinement\u003c/p\u003e","description":"","filename":"image10.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/a9b2544255ac2b98f9e9234a.png"},{"id":58104068,"identity":"fc168e00-a2cf-4a6a-9fa8-1729be87a309","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":9,"title":"Figure 9","display":"","copyAsset":false,"role":"figure","size":318024,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 1\u003c/p\u003e","description":"","filename":"image11.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/1634dd369c87c32ab35d2593.png"},{"id":58104072,"identity":"be214022-0e81-409c-b159-0d83280e3299","added_by":"auto","created_at":"2024-06-11 07:14:01","extension":"png","order_by":10,"title":"Figure 10","display":"","copyAsset":false,"role":"figure","size":208189,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 2\u003c/p\u003e","description":"","filename":"image12.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/8d7f4f2e47bfb0f7c6bd7645.png"},{"id":58104069,"identity":"4cd60225-3b83-42ef-acc5-7a471a8c5ab2","added_by":"auto","created_at":"2024-06-11 07:14:01","extension":"png","order_by":11,"title":"Figure 11","display":"","copyAsset":false,"role":"figure","size":265911,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 3\u003c/p\u003e","description":"","filename":"image13.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/c9ba9d92d5b3d3db8d9d7c04.png"},{"id":58104071,"identity":"f9180072-bbea-40ca-ae31-7024f3fe83c0","added_by":"auto","created_at":"2024-06-11 07:14:01","extension":"png","order_by":12,"title":"Figure 12","display":"","copyAsset":false,"role":"figure","size":168267,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 4\u003c/p\u003e","description":"","filename":"image14.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/43a22b49b9812554d5c3bfbe.png"},{"id":58104519,"identity":"f01821e9-54db-4555-80d5-cacd92034154","added_by":"auto","created_at":"2024-06-11 07:22:00","extension":"png","order_by":13,"title":"Figure 13","display":"","copyAsset":false,"role":"figure","size":257850,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 5\u003c/p\u003e","description":"","filename":"image15.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/0bae87bc5497080b8fcdf4cf.png"},{"id":58104060,"identity":"e9fd58f9-ff5b-46e6-8084-26390153881f","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":14,"title":"Figure 14","display":"","copyAsset":false,"role":"figure","size":191982,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 6\u003c/p\u003e","description":"","filename":"image16.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/67b1b154edddf61501eda606.png"},{"id":58104067,"identity":"09edb9e2-0bd5-40fc-9af9-26ea2b946f75","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":15,"title":"Figure 15","display":"","copyAsset":false,"role":"figure","size":196628,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 7\u003c/p\u003e","description":"","filename":"image17.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/eb182eef76177822d6cd1a74.png"},{"id":58104066,"identity":"7dc967e3-d759-49e2-aec1-702f7bbcea5d","added_by":"auto","created_at":"2024-06-11 07:14:00","extension":"png","order_by":16,"title":"Figure 16","display":"","copyAsset":false,"role":"figure","size":251694,"visible":true,"origin":"","legend":"\u003cp\u003eOutput of dataset 8\u003c/p\u003e","description":"","filename":"image18.png","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/87e0fe7cea9cadf1164f0620.png"},{"id":88808731,"identity":"5c45e170-c003-4a6f-8c0f-8773b2c4d3d9","added_by":"auto","created_at":"2025-08-11 15:20:52","extension":"pdf","order_by":0,"title":"","display":"","copyAsset":false,"role":"manuscript-pdf","size":3125073,"visible":true,"origin":"","legend":"","description":"","filename":"manuscript.pdf","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/6d163b3c-e36e-4b34-8faf-f98137382dc1.pdf"},{"id":58104513,"identity":"f75009cd-447a-448e-99a6-2e31122655ce","added_by":"auto","created_at":"2024-06-11 07:22:00","extension":"docx","order_by":1,"title":"","display":"","copyAsset":false,"role":"supplement","size":106545,"visible":true,"origin":"","legend":"","description":"","filename":"AuthorSummary.docx","url":"https://assets-eu.researchsquare.com/files/rs-4549886/v1/416600ddb5a5879e52b3366d.docx"}],"financialInterests":"No competing interests reported.","formattedTitle":"Projection-based terrain feature line extraction from point cloud data","fulltext":[{"header":"1. Introduction","content":"\u003cp\u003ePoint clouds have become a cornerstone for capturing and representing 3D objects and environments. They are essentially a collection of individual data points scattered throughout space, each meticulously defined by its X, Y, and Z coordinates. Collectively, these points paint a detailed, yet discrete, picture of the subject's geometry, forming a dense and irregular sampling of its surface. In the field of Geoscience, a multitude of 3D data is currently stored in the form of point clouds, providing a versatile and scalable alternative to traditional polygonal meshes, especially for handling complex geometries and large-scale environments. There are many ways of creating point clouds. Light Detection and Ranging (LiDAR), photogrammetry and 3D mesh sampling are to name a few. Feature line extraction is a way to determine the structure of an object. Neighbouring vertices or pixels in a data are compared to first identify local maxima / minima and then generate continuity between them. In 2D raster data, feature line extraction is similar to edge detection in image processing and these lines are usually extracted as per grayscale or RGB values of pixels and distance between neighbours [\u003cspan citationid=\"CR1\" class=\"CitationRef\"\u003e1\u003c/span\u003e]. In 3D polygonal mesh data, these are usually generated with reference to connectivity of edges and distance between vertices, which can be calculated with the help of Euclidean distance formula [\u003cspan citationid=\"CR2\" class=\"CitationRef\"\u003e2\u003c/span\u003e]. But in case of point clouds, feature line extraction is more complex as this type of data contains vertices but not edges or faces.\u003c/p\u003e \u003cp\u003eFeature line analysis is related to ridge-valley analysis as the latter is a specific aspect of the former. The combination of ridges and valleys provides a thorough understanding of the terrain's topographic features, which is also expected from feature lines. Hence, also in terms of usability, these lines share similarities with ridges and valleys that are detected separately. Use of terrain features lines can be commonly observed in lightweight and effective visual explanation of the data. E.g. In Fig.\u0026nbsp;\u003cspan refid=\"Fig1\" class=\"InternalRef\"\u003e1\u003c/span\u003e, consider graph G and its subgraphs G\u003csub\u003e1\u003c/sub\u003e and G\u003csub\u003e2\u003c/sub\u003e are created on the areas of an object that has sharp slopes. Then average distance between the subgraphs can indicate smoothness of surface in that region. Higher the distance, smoother is the region. So, the feature line formed by graph G along with its subgraphs can represent what would otherwise have been expected from the entire set of vertices or edges in the 3D object.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eUsually for terrain, feature line or breakline (the term used for terrain data) need not be extracted by considering all viewing directions, unlike a 3D model of an animal. Since crucial information about the structure of a terrain can be observed from one view (generally the top view), a projection of that view on a plane with grids can be helpful to extract decent features lines, provided the data projected on the grids also contains information about the height value of each point. Then, terrain ruggedness can be studied with the help of height values to identify these lines. But the presence of noise in the form of artefacts can hinder the process of features line extraction in some data since these are also part of ruggedness and can lead to the generation of false feature extensions or even abruptly break feature continuity. Various methods of noise identification have been presented so far. [\u003cspan citationid=\"CR3\" class=\"CitationRef\"\u003e3\u003c/span\u003e] discusses the use of maximum slopes of terrain to detect noise artefacts and [\u003cspan citationid=\"CR4\" class=\"CitationRef\"\u003e4\u003c/span\u003e] discusses a method that relies on spatial hierarchical directional relationship and region growing algorithm to detect noise in the form of cloud, birds and incomplete scanning ground points. [\u003cspan citationid=\"CR5\" class=\"CitationRef\"\u003e5\u003c/span\u003e] discusses detection of a specific form of artefact \u0026ndash; trees, that is done by drawing point cloud projections of tree trunks at different heights and calculating the centre coordinates. [\u003cspan citationid=\"CR6\" class=\"CitationRef\"\u003e6\u003c/span\u003e] discusses another form of artefact processing \u0026ndash; pit filling, that is done by first detecting pits with the help of user- defined thresholds and then filling them with values derived from neighbourhood.\u003c/p\u003e \u003cp\u003eThrough this paper, a projection-based terrain features line extraction method is presented which requires only 3D coordinate values of point clouds as input. The method has been tested on real-world data (LiDAR extracts). Analysis on noisy data is also discussed in this paper.\u003c/p\u003e"},{"header":"2. Related Work","content":"\u003cp\u003eThere is extensive literature related to feature line extraction and its applications. The experiments discussed below are only some of those that are related to 3D graphics.\u003c/p\u003e \u003cp\u003eA form of structure or feature line generation was performed through sketch-drawing [\u003cspan citationid=\"CR7\" class=\"CitationRef\"\u003e7\u003c/span\u003e] that relies on the fusion of ridge-valley lines and contours of point clouds. The algorithm used is viewport-dependent, leading to the generation of different sketches of a single object. To detect edges in depth maps, [\u003cspan citationid=\"CR8\" class=\"CitationRef\"\u003e8\u003c/span\u003e] an unsupervised learning method was introduced that brings out the edge specific features using an encoder-decoder network. This method is more useful than many supervised methods [\u003cspan additionalcitationids=\"CR10\" citationid=\"CR9\" class=\"CitationRef\"\u003e9\u003c/span\u003e\u0026ndash;\u003cspan citationid=\"CR11\" class=\"CitationRef\"\u003e11\u003c/span\u003e] using labelled data, as the labels can be wrong in some cases. A work on edge and corner detection from point clouds was also presented [\u003cspan citationid=\"CR12\" class=\"CitationRef\"\u003e12\u003c/span\u003e], which relies on an adaptive density-based threshold to identify edges and statistics of curvature vector clusters to identify corners. Their method is also beneficial for robotic welding, which was earlier done with the help of 3D CAD models [\u003cspan citationid=\"CR13\" class=\"CitationRef\"\u003e13\u003c/span\u003e]. Another work on edge detection on point clouds [\u003cspan citationid=\"CR14\" class=\"CitationRef\"\u003e14\u003c/span\u003e] identifies sharp edge features by analysing eigenvalues of covariance matrices from k-nearest neighbours. A technique for detecting sharp features in point-sampled geometry without surface reconstruction was introduced [\u003cspan citationid=\"CR15\" class=\"CitationRef\"\u003e15\u003c/span\u003e] that uses Gauss map clustering and an adaptive sensitivity parameter for robust identification. The method works directly on unstructured point clouds, handling various angles efficiently and independently of sampling resolution.\u003c/p\u003e \u003cp\u003eFor terrain data, an automated method [\u003cspan citationid=\"CR16\" class=\"CitationRef\"\u003e16\u003c/span\u003e] for detecting 3D vector topographic feature lines (i.e. ridges and valleys) from terrain point clouds using signed surface variation (SSV) and iterative thinning with SSV-weighted Laplacian smoothing was introduced. As per the results of an experiment, the correctness of this method was proved to be higher than raster-based maximum gradient deterministic eight (D8) algorithm. Another automated method along with a Python add-in for ArcGIS software [\u003cspan citationid=\"CR17\" class=\"CitationRef\"\u003e17\u003c/span\u003e] was presented for assessing the accuracy of ridge and valley features using high-resolution DEMs from airborne LiDAR, eliminating the need for pre-existing reference layers and identifying positional inaccuracies. The limitations of this method include challenges with scale, resolution and U-shaped valleys. A method was also introduced for extracting shoulder lines on plateau [\u003cspan citationid=\"CR18\" class=\"CitationRef\"\u003e18\u003c/span\u003e] that uses ridge and valley points as endpoints for extracting feature lines, along with the help of the parameters \u0026ndash; a) analysis operator (for calculating slope variation matrix) and b) filter threshold of the slope variation points, for precise shoulder point extraction from profiles. A method was presented for generating realistic mountainous digital terrains [\u003cspan citationid=\"CR19\" class=\"CitationRef\"\u003e19\u003c/span\u003e] to distinguish between different mountain ranges. This was done by incorporating technique for measurement of mountains. This method builds a graph of peaks and saddles from a coarse elevation map, which is expanded into a continuous elevation function with a consistent river network and valley slopes. A point cloud data-based elevation-gradient edge detection method was introduced to extract step-feature lines (contour lines, concave and convex fold lines, and transition smooth lines) in open-pit mines [\u003cspan citationid=\"CR20\" class=\"CitationRef\"\u003e20\u003c/span\u003e] and then to address issues of low accuracy, local-feature-line loss and discontinuity. This method involves raster resampling, elevation-gradient detection, seed-growth tracking, and space curve fitting to generate smooth step-feature lines. As per the results of an experiment, this method outperformed Canny edge detection algorithm and AGPN (analyzing geometric properties of neighborhoods) algorithm in accuracy, completeness, and overall quality. A point cloud data-based method was also introduced that relies on a projection-based approach [\u003cspan citationid=\"CR21\" class=\"CitationRef\"\u003e21\u003c/span\u003e] to detect ridges and valleys of a terrain. Before attempting to analyse any ridge or valley, the method interpolates missing data in grids that are expected to have projected point cloud height values.\u003c/p\u003e \u003cp\u003eThe signed surface variation and iterative thinning method [\u003cspan citationid=\"CR16\" class=\"CitationRef\"\u003e16\u003c/span\u003e] can be used to extract terrain feature lines from point clouds. But Maurya et. al. [\u003cspan citationid=\"CR21\" class=\"CitationRef\"\u003e21\u003c/span\u003e] makes use of a projection-based approach that can reduce complexity in extracting these lines. Their method refers to the X and the Y values of point clouds and projects the Z values (height values) on a 2D grid along XY plane. Later it scans through that 2D grid to refer the height values while detecting ridges and valleys. The major problem with Maurya et. al. is that it individually identifies ridge or valley in each section of 2D grid, without considering any connectivity with the neighbouring sections. A minor problem with this method is that it fills empty spaces in every section, thereby increasing computation time. While Maurya et al.'s approach to ridge and valley analysis serves as the primary inspiration for the feature line extraction method presented in this paper, the techniques developed by Zhou et al. [\u003cspan citationid=\"CR16\" class=\"CitationRef\"\u003e16\u003c/span\u003e], Dongs [\u003cspan citationid=\"CR17\" class=\"CitationRef\"\u003e17\u003c/span\u003e], and Mao et al. [\u003cspan citationid=\"CR20\" class=\"CitationRef\"\u003e20\u003c/span\u003e] provided the basis for creating a method to form a network between maxima and minima points.\u003c/p\u003e"},{"header":"3. Materials and methods","content":"\u003cp\u003eEach point cloud dataset used in this experiment were downloaded from OpenTopography, a web-based community resource for topographic data. The source code was written in Python version 3.10.10 (Python Software Foundation, Beaverton, Oregon, USA) on a machine with Core i7 3rd Generation CPU, 16 GB RAM, Intel HD graphics 4000 GPU and Microsoft Windows 10 OS.\u003c/p\u003e \u003cdiv id=\"Sec4\" class=\"Section2\"\u003e \u003ch2\u003e3.1. Data and code availability\u003c/h2\u003e \u003cp\u003eThe relevant code along with metadata of the used datasets can be found at the following GitHub repository: \u003cspan class=\"ExternalRef\"\u003e\u003cspan class=\"RefSource\"\u003ehttps://github.com/nehalkalita/Projection-based-breakline-extractor\u003c/span\u003e\u003cspan address=\"https://github.com/nehalkalita/Projection-based-breakline-extractor\" targettype=\"URL\" class=\"RefTarget\"\u003e\u003c/span\u003e\u003c/span\u003e. The procedure to execute the code is mentioned in the Readme file. The repository also contains an executable version (.EXE file) of the code.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec5\" class=\"Section2\"\u003e \u003ch2\u003e3.2. Method for analysis\u003c/h2\u003e \u003cp\u003eThe method to generate output is explained with the help of nine steps, each under subheadings numbered from 3.2.1 to 3.2.9.\u003c/p\u003e \u003cdiv id=\"Sec6\" class=\"Section3\"\u003e \u003ch2\u003e3.2.1. Pre-processing of data\u003c/h2\u003e \u003cp\u003eThe method of feature line extraction discussed in this paper subdivides data as per its X and Y coordinate values and places them onto a 2D square grid. This method processes coordinate values in whole numbers as this type of number is easier to partition. A raw data may consist of coordinate values in decimal numbers because of the unit of measurement used. Ignoring the digits beyond the decimal can lead to loss of crucial information. Hence, scaling values beyond the decimal is significant while analysing a data. This leads to the necessity of preprocessing data.\u003c/p\u003e \u003cp\u003eIn this step, the X, Y, Z coordinate values of the raw file are stored in a new file despite the raw file having more information. Then maximum possible values across X-axis and Y-axis, \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) and \u003cem\u003eY\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{y}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{y}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) are identified and the decimal places are rounded off as per the parameter value, \u003cem\u003ed\u003c/em\u003e. These two values are identified since it helps in understanding the dimension of the area to be processed in whole numbers, after setting the number of decimal places to be covered. \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e and \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e denotes rounded values of original \u003cem\u003ex\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e and \u003cem\u003ex\u003c/em\u003e\u003csub\u003emin\u003c/sub\u003e values simultaneously. A demonstration of \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{\\text{x}}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) calculation is shown below:\u003c/p\u003e \u003cp\u003e \u003cem\u003eX\u003c/em\u003e \u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) = (\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e - \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e) / (1 / (10\u003csup\u003e\u003cem\u003ed\u003c/em\u003e\u003c/sup\u003e))\u003c/p\u003e \u003cp\u003eE.g. If \u003cem\u003ed\u003c/em\u003e\u0026thinsp;=\u0026thinsp;2, \u003cem\u003ex\u003c/em\u003e\u003csub\u003emin\u003c/sub\u003e = 337104.568, \u003cem\u003ex\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e = 337408.412, then \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e = 337104.57, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e = 337408.41 and \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e)\u0026thinsp;=\u0026thinsp;30384.\u003c/p\u003e \u003cp\u003eThe program also converts coordinate values of all the points to whole numbers because whole numbers are easier to analyse. Finally, the limits (minima and maxima values) of X, Y and Z-axes along with \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{x}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) and \u003cem\u003eY\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{y}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emax\u003c/sub\u003e, \u003cspan class=\"InlineEquation\"\u003e\u003cspan class=\"mathinline\"\u003e\\(\\stackrel{\\sim}{y}\\)\u003c/span\u003e\u003c/span\u003e\u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) are exported.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec7\" class=\"Section3\"\u003e \u003ch2\u003e3.2.2. Identification of local maxima / minima in data\u003c/h2\u003e \u003cp\u003eFor extracting feature lines, it is important to first identify the points that can be used to create edges for representing these feature lines. These points are either maxima or minima, in terms of height, of a localised region. To identify these points, the area covered by a data across X,Y plane is first subdivided in a way that these subdivisions can fit in a square grid. This approach of plotting 3D data on 2D plane has been preferred because iterating over 2D plane should be computationally faster than iterating over multiple layers of planes in 3D space or the volume of a 3D object. Furthermore, terrain data typically do not exhibit a top-heavy object type. Therefore, projecting higher elevation points onto a lower elevation plane will not significantly affect the feature lines formed by the terrain's morphology. In this paper, the term used to denote these subdivisions is block. If a block has more than one point, then the average value of the points is considered when detecting maxima and minima. To identify local maxima and minima, the height values of a continuous set of blocks along either the X or Y axis are compared. In this paper, these sets of continuous blocks are referred to as sections. The total number of maxima or minima identified in a row or column of blocks depends on the position from which a section updates its set of blocks to detect a new local maximum or minimum. If the position from which the section updates is too close to the position of the previous iteration, it can lead to the identification of many unwanted maxima or minima. To prevent this, the discussed method also considers the coverage range of local maxima or minima. Consequently, if a new maximum falls within the coverage range of a previous maximum, it is discarded. The same principle applies to minima.\u003c/p\u003e \u003cp\u003eIn this step, files storing modified data and limits are initially imported and the system refers values of the following parameters:\u003c/p\u003e \u003cp\u003e \u003cstrong\u003eBlock size\u003c/strong\u003e \u003cp\u003eIt is the value that acts as a resolution definer to export the dimension of data identified by \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003csub\u003emax\u003c/sub\u003e, \u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) and \u003cem\u003eY\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003csub\u003emax\u003c/sub\u003e, \u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e). Resolution is calculated by dividing these \u003cem\u003eX\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003csub\u003emax\u003c/sub\u003e, \u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) and \u003cem\u003eY\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003csub\u003emax\u003c/sub\u003e, \u003csub\u003emin\u003c/sub\u003e, \u003cem\u003ed\u003c/em\u003e) with this block size and taking the round off value.\u003c/p\u003e \u003c/p\u003e \u003cp\u003e \u003cstrong\u003eSpan across maxima / minima points\u003c/strong\u003e \u003cp\u003eIt is the value which determines the number of positions considered as coverage across maxima / minima points in each section.\u003c/p\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;\u003cspan refid=\"Fig2\" class=\"InternalRef\"\u003e2\u003c/span\u003e, all three diagrams are meant to demonstrate maxima identification. The diagram \u003cem\u003eData under analysis\u003c/em\u003e shows a data being divided into 12 blocks and size of a section is 7 blocks. The squares in 3rd, 9th and 10th blocks represent points with high Z-axis value and the squares in other blocks represent points with low Z-axis value. The diagram \u003cem\u003eIdentified points (with span)\u003c/em\u003e shows the high points of \u003cem\u003eData under analysis\u003c/em\u003e along with their coverage (span value of 1) identified in each iteration made by the section. The diagram \u003cem\u003eIdentified points (without span)\u003c/em\u003e shows only the high points identified in each iteration made by the section. Similarly, for minima identification, the points with low Z-axis values should be considered.\u003c/p\u003e \u003cp\u003eThe size of a section is identified by the parameter Block size. E.g. If the parameter value is 7, then blocks are of dimension 7x7 and the section would contain a set of 7 such blocks.\u003c/p\u003e \u003cp\u003eA section updates its position by 1 block at a time. In each section iteration, if either of the boundary positions are to be considered as per the span value then the value extraction from that iteration is discarded. E.g. Consider a section of 7 blocks. Its boundary blocks are 1st and 7th. If the given span value is 2 and local maxima is identified in 5th block of the section, then 3rd, 4th, 6th and 7th blocks (5\u0026ndash;2, 5\u0026thinsp;+\u0026thinsp;2) are also considered as part of high point. But 7th block is a boundary block of section. So, the local maxima value (from 5th block) collected from that section iteration is discarded.\u003c/p\u003e \u003cp\u003eOnce all blocks are covered using section-based iteration, then this output as high / low points excluding coverage (span) is passed for further processing.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec8\" class=\"Section3\"\u003e \u003ch2\u003e3.2.3. Filtration by minimum local height difference\u003c/h2\u003e \u003cp\u003eThere is a need to filter local maxima or minima points as some of them may represent artefacts, which are not needed for the expected analysis. Usually, absolute values of the prominent slopes of a terrain are higher than the absolute values of slopes calculated between many artefacts and their respective surfaces. So, it is convenient to use a height filter to exclude unwanted maxima and minima points.\u003c/p\u003e \u003cp\u003eIn this step, the difference between maxima and minima (identified from step 2) of each section, \u003cem\u003eh\u003c/em\u003e\u003csub\u003ediff\u003c/sub\u003e are compared with an input local height difference value, \u003cem\u003eh\u003c/em\u003e\u003csub\u003elocal\u003c/sub\u003e. For valid local maxima identification, if \u003cem\u003eh\u003c/em\u003e\u003csub\u003ediff\u003c/sub\u003e\u0026thinsp;\u0026gt;\u0026thinsp;=\u0026thinsp;\u003cem\u003eh\u003c/em\u003e\u003csub\u003elocal\u003c/sub\u003e, then that highest point from step 2 is considered for step 4. Similarly, for valid local minima identification, the lowest point from step 2 is considered if \u003cem\u003eh\u003c/em\u003e\u003csub\u003ediff\u003c/sub\u003e\u0026thinsp;\u0026gt;\u0026thinsp;=\u0026thinsp;\u003cem\u003eh\u003c/em\u003e\u003csub\u003elocal\u003c/sub\u003e. The expected parameter is minimum local height difference.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;\u003cspan refid=\"Fig3\" class=\"InternalRef\"\u003e3\u003c/span\u003e, both the diagrams are meant to demonstrate height difference comparison. The diagram \u003cem\u003eData under analysis\u003c/em\u003e shows a data being divided into 12 blocks and size of a section is 7 blocks. The diagram \u003cem\u003eIdentified points\u003c/em\u003e shows only the local maxima points identified in each iteration made by the section. The expected \u003cem\u003eh\u003c/em\u003e\u003csub\u003elocal\u003c/sub\u003e value is 10. So, only one value (i.e. 20 from 4th block; since 20\u0026ndash;8\u0026thinsp;=\u0026thinsp;12) satisfies the condition.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec9\" class=\"Section3\"\u003e \u003ch2\u003e3.2.4. Filtration by section median coverage\u003c/h2\u003e \u003cp\u003eRidges and valleys in a terrain are formed when two slopes or flanks from opposite directions intersect. There is always a major difference in height between ridge / valley lines and their adjacent areas. So, a section scanned over an area through which a ridge / valley line crosses can result in the identification of ridge points as maxima and valley points as minima, with them being close in position to the median of that section. But a section scanned over an area of just one slope or one flank would mostly result in the identification of maxima / minima points towards the boundary of that section instead of its median. This leads to the necessity of filtering identified points based on their block position in a section.\u003c/p\u003e \u003cp\u003eIn this step, the program checks whether the local maxima and minima points, identified from step 3 are part of the median of a section. For that, the program compares the position of these maxima and minima points, \u003cem\u003ep\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e and \u003cem\u003ep\u003c/em\u003e\u003csub\u003emin\u003c/sub\u003e with the position of median, \u003cem\u003ep\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e of that section and it refers a parameter to check expansion of a median.\u003c/p\u003e \u003cp\u003eThe expected parameter is section median coverage (in %), \u003cem\u003ec\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e.\u003c/p\u003e \u003cp\u003eE.g. 1) If section size\u0026thinsp;=\u0026thinsp;9, then \u003cem\u003ep\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e is 5. If \u003cem\u003ec\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e is set to 25 then coverage of section becomes positions 4,5,6. When 5 is originally median then four places from both left and right sides of 5 are non-median. Setting \u003cem\u003ec\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e = 25 makes 25% of 4\u0026thinsp;=\u0026thinsp;1. So, median range is expanded by one place in both the sides.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;\u003cspan refid=\"Fig4\" class=\"InternalRef\"\u003e4\u003c/span\u003e, all four diagrams are meant to demonstrate section median coverage for maxima points. The diagram \u003cem\u003eData\u003c/em\u003e shows a data being divided into 12 blocks which gets analyzed with section of size 9 units. The \u003cem\u003ec\u003c/em\u003e\u003csub\u003em\u003c/sub\u003e value is set to 25. So, just like e.g. 1, the median coverage expands by 1 unit.\u003c/p\u003e \u003cp\u003eFrom the diagram \u003cem\u003eSection under analysis (accepted)\u003c/em\u003e, it can be noted that the highest point is 18 and it is one position away from the original median i.e. 16. So, this point is accepted as shown in the diagram \u003cem\u003eIdentified points\u003c/em\u003e.\u003c/p\u003e \u003cp\u003eFrom the diagram \u003cem\u003eSection under analysis (rejected)\u003c/em\u003e, it can be noted that the highest point is 20 and it is two positions away from the original median i.e. 8. So, this point is rejected, hence not shown in the diagram \u003cem\u003eIdentified points\u003c/em\u003e.\u003c/p\u003e \u003cp\u003eFor processing steps 5\u0026ndash;8, the following parameter values are referred - minimum breakline length along X,Y coordinates; maximum length between two neighbouring points; maximum length to form loops.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec10\" class=\"Section3\"\u003e \u003ch2\u003e3.2.5. Edge creation within maxima / minima\u003c/h2\u003e \u003cp\u003eEdges between maxima / minima points should be created only within a certain neighbourhood distance, as these points are derived from continuous features in the data. Forming edges between points that are far apart lacks meaning, as they do not share direct continuity.\u003c/p\u003e \u003cp\u003eIn this step, the parameter, maximum length between two neighbouring points, \u003cem\u003el\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003ea\u003c/em\u003e\u003c/sub\u003e, \u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003eb\u003c/em\u003e\u003c/sub\u003e) is referred to create edges with points within \u003cem\u003ek\u003c/em\u003e neighbouring blocks. Value of this \u003cem\u003ek\u003c/em\u003e for a point can vary for each direction (\u003cem\u003e-x\u003c/em\u003e, \u003cem\u003e+x\u003c/em\u003e, \u003cem\u003e-y\u003c/em\u003e, \u003cem\u003e+y\u003c/em\u003e) based on the point\u0026rsquo;s position inside a block. A demonstration of the formula for \u003cem\u003ek\u003c/em\u003e along \u003cem\u003e-x\u003c/em\u003e and \u003cem\u003e+\u0026thinsp;x\u003c/em\u003e is shown below:\u003c/p\u003e \u003cp\u003e \u003cem\u003ek\u003c/em\u003e \u003csub\u003e \u003cem\u003e\u0026minus;\u0026thinsp;x\u003c/em\u003e \u003c/sub\u003e = \u0026lfloor; ( \u003cem\u003ep\u003c/em\u003e\u003csub\u003e\u003cem\u003ex\u003c/em\u003e\u003c/sub\u003e - \u003cem\u003ex\u003c/em\u003e\u003csub\u003e\u003cem\u003es\u003c/em\u003e\u003c/sub\u003e - \u003cem\u003el\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003ea\u003c/em\u003e\u003c/sub\u003e, \u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003eb\u003c/em\u003e\u003c/sub\u003e) ) / \u003cem\u003eb\u003c/em\u003e \u0026rfloor;\u003c/p\u003e \u003cp\u003e \u003cem\u003ek\u003c/em\u003e \u003csub\u003e \u003cem\u003e+\u0026thinsp;x\u003c/em\u003e \u003c/sub\u003e = \u0026lfloor; ( \u003cem\u003ep\u003c/em\u003e\u003csub\u003e\u003cem\u003ex\u003c/em\u003e\u003c/sub\u003e - \u003cem\u003ex\u003c/em\u003e\u003csub\u003e\u003cem\u003es\u003c/em\u003e\u003c/sub\u003e + \u003cem\u003el\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003ea\u003c/em\u003e\u003c/sub\u003e, \u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003eb\u003c/em\u003e\u003c/sub\u003e) ) / \u003cem\u003eb\u003c/em\u003e \u0026rfloor;\u003c/p\u003e \u003cp\u003ewhere,\u003c/p\u003e \u003cp\u003e \u003cem\u003ep\u003c/em\u003e \u003csub\u003e \u003cem\u003ex\u003c/em\u003e \u003c/sub\u003e \u0026rarr; X-axis value of current point\u003c/p\u003e \u003cp\u003e \u003cem\u003ex\u003c/em\u003e \u003csub\u003e \u003cem\u003es\u003c/em\u003e \u003c/sub\u003e \u0026rarr; smallest value of X-axis in data\u003c/p\u003e \u003cp\u003e \u003cem\u003eb\u003c/em\u003e \u0026rarr; block size\u003c/p\u003e \u003cp\u003e\u0026lfloor; \u0026rfloor; \u0026rarr; floor function\u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;5, edges are to be created between a point present at the center of the block position (3,3) and its neighbours in the block positions (3,1), (4,1), (5,2), (4,3), (2,4), (1,5). Each square block is of size 1 unit and \u003cem\u003el\u003c/em\u003e\u003csub\u003emax\u003c/sub\u003e(\u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003ea\u003c/em\u003e\u003c/sub\u003e, \u003cem\u003en\u003c/em\u003e\u003csub\u003e\u003cem\u003eb\u003c/em\u003e\u003c/sub\u003e) value is 1.85 units, which is shown as a circular boundary for point in block (3,3) to form edges. As per these conditions, only three neighbouring points out of six are taken into consideration.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec11\" class=\"Section3\"\u003e \u003ch2\u003e3.2.6. Merge of networks\u003c/h2\u003e \u003cp\u003ePoints in the 2D grid are iterated from left to right and top to bottom, even for network generation. Two networks of edges can only be merged through an unconnected point that is equidistant from both networks. If such a common point exists, it is more feasible to merge a network with its preceding one, as this will not disrupt the order of block iteration in the grid.\u003c/p\u003e \u003cp\u003eIn this steps, separate networks (which are collections of edges) are merged together if they share any common point.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn the 2nd diagram of Fig.\u0026nbsp;\u003cspan refid=\"Fig5\" class=\"InternalRef\"\u003e6\u003c/span\u003e, three networks created are {((1,1), (1,2)), ((1,2), (1,3))}, {((3,1), (3,2)), ((3,2), (3,3))} and {((5,1), (5,2))}. The point in block position (2,4) is common for both 1st and 2nd networks. So, the 2nd network appearing orderly in 2nd number (left to right side) is merged with the 1st network, as shown in 3rd diagram. The updated version of the 1st network is {((1,1), (1,2)), ((1,2), (1,3)), ((1,3), (2,4)), ((2,4), (3,1)), ((3,1), (3,2)), ((3,2), (3,3))}.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec12\" class=\"Section3\"\u003e \u003ch2\u003e3.2.7. Valid network identification\u003c/h2\u003e \u003cp\u003eFeature lines, when subdivided, would result in networks of edges whose length on one axis is much greater than the other. Conversely, networks of edges, which are formed on the basis of maxima / minima points collected from artefacts, would be relatively shorter in length on either of their axes. So, when a set of networks undergoes the process of feature line extraction, it is justified to discard networks on the basis of their length in both axes.\u003c/p\u003e \u003cp\u003eIn this step, the parameter, minimum breakline length along X,Y coordinates, bll\u003csub\u003emin\u003c/sub\u003e is referred to identify valid networks. If total length of a network along either X or Y-axis is greater than or equal to bll\u003csub\u003emin\u003c/sub\u003e then that network is considered valid.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;\u003cspan refid=\"Fig6\" class=\"InternalRef\"\u003e7\u003c/span\u003e, bll\u003csub\u003emin\u003c/sub\u003e expected is 4 units and length of each block is 1 unit. So, the network shown in the left diagram is valid as its length along X-axis is greater than 4 units whereas the network shown in the right diagram is invalid as its length along either X or Y-axis is less than 4 units.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec13\" class=\"Section3\"\u003e \u003ch2\u003e3.2.8. Refinement of detected networks\u003c/h2\u003e \u003cp\u003eWhen edges are created between all points in a neighborhood, some edges do not represent continuous features of the data and should be removed. Many of these edges can be eliminated using the Minimum Spanning Tree (MST) algorithm, which selects edges in the network that avoid creating loops and have the minimum possible edge weight. If any of the discarded loops are valid, meaning they represent continuous features, they can be reinstated by referring to specific conditions.\u003c/p\u003e \u003cp\u003eIn this step, networks are individually refined. This is done by first applying Kruskal\u0026rsquo;s version of MST algorithm [\u003cspan citationid=\"CR22\" class=\"CitationRef\"\u003e22\u003c/span\u003e] on a network. Then, the parameter, maximum length to form loop, lpl\u003csub\u003emax\u003c/sub\u003e is referred to recreate some valid loops.\u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eIn Fig.\u0026nbsp;\u003cspan refid=\"Fig7\" class=\"InternalRef\"\u003e8\u003c/span\u003e, 1st diagram depicts an unrefined network formed by 4 points and spanned over blocks with side length of 1 unit. 2nd diagram depicts MST algorithm applied on that network. 3rd diagram depicts recreation of a valid loop as per expected lpl\u003csub\u003emax\u003c/sub\u003e value of 2 units.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec14\" class=\"Section3\"\u003e \u003ch2\u003e3.2.9. Exportation of network\u003c/h2\u003e \u003cp\u003eIn this step, the final network is then exported as a Wavefront .obj file, with the coordinate values converted to decimal numbers, which were initially converted to whole numbers in step 1. When converting to decimal numbers, the decimal places to be assigned depend on the parameter \u003cem\u003ed\u003c/em\u003e, discussed earlier. This output represents the expected feature lines, which can be viewed with the help of software like MeshLab and CloudCompare.\u003c/p\u003e \u003c/div\u003e \u003c/div\u003e"},{"header":"4. Results and observations","content":"\u003cp\u003eA sample size of eight different terrains were analysed. Satellite and aspect images are used as reference to check the validity of the extracted feature lines. Satellite images are photographs of a dataset in real world captured in daylight. It can be useful while classifying outputs based on a terrain\u0026rsquo;s vegetation type such as forest, desert, grassland, etc. The term aspect [\u003cspan citationid=\"CR23\" class=\"CitationRef\"\u003e23\u003c/span\u003e], in aspect images, refers to representations of the direction that a surface faces. It is calculated by determining the gradient and the direction of the slope at each point. This type of image is useful for understanding vegetation patterns. Both the satellite and the aspect images of their respective datasets were collected from OpenTopography. Table\u0026nbsp;\u003cspan refid=\"Tab1\" class=\"InternalRef\"\u003e1\u003c/span\u003e contains information on the features of each dataset. Figures\u0026nbsp;\u003cspan refid=\"Fig8\" class=\"InternalRef\"\u003e9\u003c/span\u003e\u0026ndash;\u003cspan refid=\"Fig15\" class=\"InternalRef\"\u003e16\u003c/span\u003e represent the terrains and the respective output as per the proposed feature line extraction approach. Tables\u0026nbsp;\u003cspan refid=\"Tab2\" class=\"InternalRef\"\u003e2\u003c/span\u003e\u0026ndash;\u003cspan refid=\"Tab9\" class=\"InternalRef\"\u003e9\u003c/span\u003e contain parameter values for the datasets used and were chosen to generate optimal output.\u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab1\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 1\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eFeatures of each dataset\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"7\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c4\" colnum=\"4\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c5\" colnum=\"5\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c6\" colnum=\"6\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c7\" colnum=\"7\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\" morerows=\"1\" rowspan=\"2\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\" morerows=\"1\" rowspan=\"2\"\u003e \u003cp\u003eShort Dataset Name\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\" morerows=\"1\" rowspan=\"2\"\u003e \u003cp\u003eNo. of Points\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colspan=\"4\" nameend=\"c7\" namest=\"c4\"\u003e \u003cp\u003eData Selection Coordinates\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c4\"\u003e \u003cp\u003eX min.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c5\"\u003e \u003cp\u003eX max.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c6\"\u003e \u003cp\u003eY min.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c7\"\u003e \u003cp\u003eY max.\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eECSZ\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3,269,524\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e534732.613843\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e536230.61497\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e3844951.783188\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e3846358.658388\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eHI13_Huppert\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2,332,998\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e431395.511313\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e432083.85058\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e2441374.377803\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e2441854.247291\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eCN17_Ou\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2,729,585\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e419745.785285\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e420756.890259\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e4100878.307164\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e4101551.127339\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMDV_2014\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e5,771,202\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e17339.564473\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e18463.374593\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e42394.640853\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e43240.915213\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eAK05_Pavlis\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3,232,785\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e641346.871549\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e642309.160161\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e6688239.46652\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e6689097.948483\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eNZ21_South\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3,211,759\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e1206487.214165\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e1207132.240963\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e5030608.417323\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e5031104.527591\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eNZ16_NAuckland\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2,658,206\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e1823838.166577\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e1824313.290562\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e5993236.295458\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e5993711.110632\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eNSAF\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e6,353,787\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e6095113.104509\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c5\"\u003e \u003cp\u003e6102088.256659\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e2136344.326179\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e2141940.909725\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab2\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 2\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 1\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e75\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e95\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e380\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e40\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e90\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab3\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 3\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 2\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e75\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e1,200\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e500\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e50\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e90\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab4\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 4\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 3\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e75\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e800\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e375\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e40\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e90\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab5\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 5\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 4\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e75\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e11\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e125\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e650\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e40\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e100\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab6\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 6\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 5\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e71\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2,550\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e300\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e60\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e90\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab7\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 7\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 6\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e85\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e1,500\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e450\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e50\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e100\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab8\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 8\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 7\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e150\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e200\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e800\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e40\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e100\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab9\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 9\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eParameter values of dataset 8\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"3\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eSl. No.\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eParameter\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eValue\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e1\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDecimal places to round\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e2\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eBlock size\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e250\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSpan across highest / lowest points\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e25\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e4\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. breakline length across X, Y coordinates\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e12,500\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length between points for connectivity\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e2,500\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e6\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMax. length for closed edges\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e100\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e7\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eMin. local height difference\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e80\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003e8\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eSection median coverage (in %)\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e20\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003e \u003c/p\u003e \u003cp\u003eFrom the generated outputs, it can be observed that the accuracy varies a lot based on the type of terrain. This projection-based approach extracted feature lines with high accuracy for datasets 1\u0026ndash;3. Feature lines extracted from datasets 4\u0026ndash;6 have relatively higher accuracy than feature lines from datasets 7 and 8. Datasets 1\u0026ndash;3 represent rocky or desert terrain; datasets 4\u0026ndash;6 represent rocky with snow terrain; and datasets 7 and 8 represent forest terrain. In forest terrain, presence of trees or bushes acts as noise while detecting continuity of feature lines within a locality. So, the feature lines get deviated from their expected path as these noises lead to identification of false maxima and minima. Similarly, in snow terrain, presence of small clusters of snow can also lead to false local maxima and minima. Dataset 5 contains more clusters of snow than datasets 4 and 6. So, its output has lower accuracy than the other two.\u003c/p\u003e"},{"header":"5. Conclusion","content":"\u003cp\u003eA projection-based approach for feature line analysis is useful for terrain data as this form of data has high variation of slopes, many of which can be viewed from the top direction, by even ignoring views from the other directions. So, feature lines extracted with this approach can still preserve many vital features of a terrain. The quantity of artefacts can vary in the case of computer-generated terrain, which is meant to be used in a virtual world. Moreover, the presence of artefacts can be manually controlled in such terrain. So, this approach to analysis won't lead to a high loss in accuracy. Among real-world LiDAR data, this approach has proven to be effective in terrains whose surfaces are mostly desert or rocky.\u003c/p\u003e \u003cp\u003eSome terrain data from real-world are bound to have many artefacts because of the type of vegetation they represent. The current approach fails to preserve high accuracy of features while extracting feature lines from such data. To overcome this issue, further study can be done to integrate techniques [\u003cspan additionalcitationids=\"CR5\" citationid=\"CR4\" class=\"CitationRef\"\u003e4\u003c/span\u003e]\u0026ndash;[\u003cspan citationid=\"CR6\" class=\"CitationRef\"\u003e6\u003c/span\u003e] of specific artefact detection and removal with this feature line extraction approach.\u003c/p\u003e"},{"header":"Declarations","content":"\u003cp\u003e\u003cstrong\u003eCompeting Interests and Funding:\u003c/strong\u003e\u0026nbsp;\u003c/p\u003e\n\u003cp\u003eThere are no potential conflicts of interest and no funding to declare. The experiment did not receive any specific grants from funding agencies in the public, commercial, or not-for-profit sectors.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAcknowledgment\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe author(s) did not receive any specific support or assistance from individuals or organizations that require acknowledgment for this research.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAuthor Contributions\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eAll authors contributed to the study conception and design. Material preparation, data collection and analysis were performed by both N.K. and R.K.M. The first draft of the manuscript was written by N.K. and both the authors commented on previous versions of the manuscript. All authors read and approved the final manuscript.\u003c/p\u003e"},{"header":"References","content":"\u003col\u003e\u003cli\u003e\u003cspan\u003eS. Malik and T. Kumar: Comparative Analysis of Edge Detection between Gray Scale and Color Image, Communications on Applied Electronics, vol. 5, no. 2, pp. 38\u0026ndash;43, 2016.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eL. Liberti and C. Lavor: Euclidean distance geometry: an introduction, Springer, 2017.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eC. Hirt: Artefact detection in global digital elevation models (DEMs) - The Maximum Slope Approach and its application for complete screening of the SRTM v4.1 and MERIT DEMs, Remote Sensing of Environment, vol. 207, pp. 27\u0026ndash;41, 2018.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eY. Lin, Y. Wang, S. Wang, S. Li, M. Wang, H. Cai and F. Teng: Noise Point Detection From Airborne LiDAR Point Cloud Based on Spatial Hierarchical Directional Relationship, IEEE Access, vol. 10, pp. 82076\u0026ndash;82091, 2022.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eY. Onda, Y. Zhang, Y. Tan, A. Hashimoto, T. Gomi, C. Chiu and S. Inokoshi: A tree detection method based on trunk point cloud section in dense plantation forest using drone LiDAR data, Forest Ecosystems, vol. 10, no. 100088, 2023.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eJ. R. Ben-Arie, G. J. Hay and R. P. Powers: Development of a pit filling algorithm for LiDAR canopy height models, Computers and Geosciences, vol. 35(9), pp. 1940\u0026ndash;1949, 2009.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eY. Wang, H. Zhang, X. Ning, W. Hao, Z. Shi, M. Zhao, H. Zhou and L. Sui: Ridge Valley Sketch Drawing From Point Clouds, IEEE Access, vol. 6, pp. 13697\u0026ndash;13705, 2018.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eA. Aggarwal, R. Stolkin and N. Marturi: Unsupervised learning-based approach for detecting 3D edges in depth maps, Scientific Reports, vol. 14, no. 796, 2024.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eL. Bode, M. Weinmann and R. Klein: BoundED - Neural boundary and edge detection in 3d point clouds via local neighborhood statistics, International Society for Photogrammetry and Remote Sensing, vol. 205, pp. 334\u0026ndash;351, 2023.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eZ. Hu, M. Zhen, X. Bai, H. Fu and C. Tai: JSENet - Joint semantic segmentation and edge detection network for 3D point clouds, Lecture Notes in Computer Science, vol. 12365, pp. 222\u0026ndash;239, 2020.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eS. Sarkar, V. Venugopalan, K. Reddy, J. Rayde, M. Giering and N. Jaitly: Using Deep Convolutional Networks for Occlusion Edge Detection in RGB-D Frames, IEEE High Performance Extreme Computing Conference (HPEC), 2015.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eS. M. Ahmed, Y. Z. Tan, C. M. Chew, A. A. Mamun and F. S. Wong: Edge and Corner Detection for Unorganized 3D Point Clouds with Application to Robotic Welding, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eN. Larkin, A. Short, Z. Pan and S. v. Duin: Automatic Program Generation for Welding Robots from CAD, IEEE International Conference on Advanced Intelligent Mechatronics (AIM), 2016.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eD. Bazazian, J. R. Casas and J. Ruiz-Hidalgo: Fast and Robust Edge Extraction in Unorganized Point Clouds, International Conference on Digital Image Computing: Techniques and Applications (DICTA), 2015.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eC. Weber, S. Hahmann and H. Hagen: Sharp Feature Detection in Point Clouds, Shape Modeling International Conference, 2010.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eW. Zhou, R. Peng, J. Dong and T. Wang: Automated extraction of 3D vector topographic feature line from terrain point cloud, Geocarto International, vol. 33(10), pp. 1036\u0026ndash;1047, 2017.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eP. Dongs: Automated accuracy assessment for ridge and valley polylines using high-resolution digital elevation models, Geosphere, vol. 13(6), pp. 2078\u0026ndash;2084, 2017.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eW. Fan, S. Yuan and C. Jiang: The Profiles Based on Ridge and Valley Lines to Extract Shoulder Lines on the Loess Plateau, vol. 15(2), no. 380, 2023.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eO. Argudo, E. Galin, A. Peytavie, A. Paris, J. Gain and E. Gu\u0026eacute;rin: Orometry-based Terrain Analysis and Synthesis, ACM Transactions on Graphics, vol. 38(6), no. 199, pp. 1\u0026ndash;12, 2019.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eH. Wang, Y. Mao, W. Cao, Y. Fu, Y. Fu, L. He and N. Bao: Extraction of Step-Feature Lines in Open-Pit Mines Based on UAV Point-Cloud Data, Sensors, vol. 22(15), no. 5706, 2022.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eR. K. Maurya, S. T. Kulkarni and N. Kalita: Projection-Based Spatial Morphology for Extracting Ridge and Valley Profiles of Mountains from 3D Amorphous Data, 2018 4th International Conference on Computing Communication and Automation (ICCCA).\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eJoseph B. Kruskal: On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem, Proceedings of the American Mathematical Society, vol. 7, no. 1, pp. 48\u0026ndash;50, 1956.\u003c/span\u003e\u003c/li\u003e \u003cli\u003e\u003cspan\u003eP. G. Holland and D. G. Steyn: Vegetational Responses to Latitudinal Variations in Slope Angle and Aspect, Journal of Biogeography, vol. 2, no. 3, pp. 179\u0026ndash;183, 1975.\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e"}],"fulltextSource":"","fullText":"","funders":[],"hasAdminPriorityOnWorkflow":false,"hasManuscriptDocX":true,"hasOptedInToPreprint":true,"hasPassedJournalQc":"","hasAnyPriority":true,"hideJournal":false,"highlight":"","institution":"","isAcceptedByJournal":true,"isAuthorSuppliedPdf":false,"isDeskRejected":"","isHiddenFromSearch":false,"isInQc":false,"isInWorkflow":true,"isPdf":false,"isPdfUpToDate":true,"isWithdrawnOrRetracted":false,"journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true},"keywords":"Point cloud, 3D data, Topography, 2D grid, Feature line","lastPublishedDoi":"10.21203/rs.3.rs-4549886/v1","lastPublishedDoiUrl":"https://doi.org/10.21203/rs.3.rs-4549886/v1","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"manuscriptAbstract":"\u003cp\u003eFeature lines of an object represent its surface characteristics along a specific plane or direction. They are essential for understanding and analysing the object's shape, geometry, and features. Depending upon the details stored in an object or data, feature line extraction can be a complex task. In terrain data, these details can be slopes for ridges and valleys, artefacts or some other forms of noise. If the data for analysis consists of point clouds with only positional values, one of the most common methods to detect patterns is to rely on the Euclidean distance between neighbouring points. In this paper, a method to extract terrain feature lines on point clouds has been presented that relies only on coordinate values. The feature line points are initially identified with the help of a projection of point clouds on 2D grids, and then these are used to extract feature lines or breaklines with the help of a spanning tree algorithm. The method can generate output with high accuracy for data with less noise and moderate accuracy for data with more noise.\u003c/p\u003e","manuscriptTitle":"Projection-based terrain feature line extraction from point cloud data","msid":"","msnumber":"","nonDraftVersions":[{"code":1,"date":"2024-06-11 07:13:55","doi":"10.21203/rs.3.rs-4549886/v1","editorialEvents":[{"type":"communityComments","content":0}],"status":"published","journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true}}],"origin":"","ownerIdentity":"0c89b1b0-a234-4ebc-b20a-1401ffae7491","owner":[],"postedDate":"June 11th, 2024","published":true,"recentEditorialEvents":[],"rejectedJournal":[],"revision":"","amendment":"","status":"published-in-journal","subjectAreas":[],"tags":[],"updatedAt":"2025-08-11T15:20:45+00:00","versionOfRecord":{"articleIdentity":"rs-4549886","link":"https://doi.org/10.1016/j.nexres.2025.100673","journal":{"identity":"next-research","isVorOnly":true,"title":"Next Research"},"publishedOn":"2025-08-06 00:00:00","publishedOnDateReadable":"August 6th, 2025"},"versionCreatedAt":"2024-06-11 07:13:55","video":"","vorDoi":"10.1016/j.nexres.2025.100673","vorDoiUrl":"https://doi.org/10.1016/j.nexres.2025.100673","workflowStages":[]},"version":"v1","identity":"rs-4549886","journalConfig":"researchsquare"},"__N_SSP":true},"page":"/article/[identity]/[[...version]]","query":{"redirect":"/article/rs-4549886","identity":"rs-4549886","version":["v1"]},"buildId":"_2-kVJe1T_tPrBINL-cwx","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[84888],"gssp":true,"scriptLoader":[]}
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.