# Cartographic Line Generalization Based on Radius of Curvature Analysis

^{*}

## Abstract

**:**

## 1. Introduction

- selection and simplification—defining important data features, preserving and, if possible, highlighting these features, eliminating undesirable details,
- classification—ordering or selection of an appropriate scale for the data and their grouping,
- symbolization—graphic coding of grouped basic features of compared values and their mutual position, and
- induction—application of a logical process of inference in cartography.

## 2. Related Work

- point e.g., church, town etc.
- lines e.g., borders, roads etc.
- polygons—e.g., land use, sea etc.

## 3. Algorithm for Checking the Curvature Radius of a Vector Line

^{2}, mapping the interval in the plane for functions with linear intervals—that is, a function of a real variable whose domain can be broken down into the sum of disjoint compartments in such a way that each function is linear. For the implementation of objective generalization, it was proposed to use the mathematical modeling method of “rolling” the circle on the physical surface of the Earth, just like Perkal proposed [23]. The main factor distinguishing this algorithm is the method of controlling it, based on the analysis of the circle radius value that is described on three consecutive points of a vector line (P

_{S}, P

_{C}, and P

_{E}) open or closed. The points analyzed must meet the basic relationship:

_{S}= P

_{i}, P

_{C}= P

_{i}

_{+1}, P

_{E}= P

_{i}

_{+2}from i = 1 to i = n − 2. The starting point of the entire vector line and the end point are invariants and are not subject to the generalization process.

_{C}) of the three points becomes the starting point of the generalization process.

_{gen}generalization radius and the R

_{ver}verification radius. The verification radius is the radius of a circle containing three consecutive points of a polyline. The generalization radius R

_{gen}is the radius that is related to the generalized line. Generalization is based on Formula (2), which uses the difference in the length of these radii is checked, and the size of the shortest distance between the chord of the circle based on the first and third point (P

_{S}and P

_{E}) and the center point (P

_{C}):

_{gen}—radius of the generalization circle; R

_{ver}—radius of verification circle; P

_{S}—the first point with (starting point) coordinates x

_{S}and y

_{S}; P

_{C}—the focal point coordinates x

_{C}and y

_{C}; P

_{E}—the end point coordinates x

_{E}and y

_{E}; h

_{dop}—permissible Hausdorff distance between the highest point of arc and the chord of the verification circle equal to 0.3 mm * M (M—the denominator of the target map scale, an empirical coefficient related to the accuracy of the topographical map, orthophotomap, and screen vectorization); h

_{arc}—height of the verification circle arc; d(P

_{S},P

_{E})—chord length.

_{arc}parameter into the procedure.

_{gen}, was taken as the radius limit generalization in the iteration process. The radius of a circle defined by three successive points of a vector line was denoted as R

_{ver}(radius of verification). Figure 2 shows the first stage of generalization consisting of:

- determining the actual radius of the circle based on the first three points of the vector line P
_{2}= P_{S}, P_{3}= P_{C}and P_{4}= P_{E}; - checking whether the radius is greater, equal to or smaller than the accepted radius of generalization R
_{gen}and checking whether there is no other vertex of the vector line located inside the circle with a radius equal to the radius of generalization R_{gen}(the generalization circle); - depending on the result of the check:
- if the verification radius is smaller than the generalization radius R
_{ver}< R_{gen}(R_{wer}− R_{gen}< 0) and the chord length is ds(P_{S},P_{E}) < 2 × R_{gen}, then the middle point from the analyzed three vertices is removed from the set of vector line vertices. In the situation shown in Figure 1b, the radius of the circle described on points P_{2}= P_{S}, P_{3}= P_{C}, and P_{4}= P_{E}is shorter than the radius of generalization, so the point P_{3}= P_{C}will be removed from the set of vector line vertices; - if the verification radius is greater than or equal to the generic radius R
_{ver}≥ R_{gen}and ds(P_{S},P_{E}) > 2 × R_{gen}, as shown in Figure 1c., then the set of vector line points is left unchanged. The next three vertices are checked, starting from P_{2}; - if the verification radius is greater or equal to the generalization radius R
_{ver}≥ R_{gen}(R_{wer}− R_{gen}> 0) and ds(P_{S},P_{E}) < 2 × R_{gen}, as shown in Figure 1d, then the PC point will be removed from the set of vertices of the vector line or moved in another position in order to smooth the line as explained later. In case that R_{ver}≥ R_{gen}and ds(P_{S},P_{E}) > 2 × R_{gen}and harc < hdop, the point P_{3}= P_{C}will be removed from the set of vector line points (see Figure 1e). - The successive three points are subject to examination starting from P
_{2};

- in the same way, all the points of the vector line are analyzed in the first iteration stage. The result of the first stage of generalization is shown in Figure 2;
- in the second iteration stage, the radius values of circles based on the remaining points of the vector line are checked again starting from point P
_{1}. This situation is illustrated in Figure 3. In this case, the radius of the circle circumscribed on P_{2}= P_{S}, P_{4}= P_{C}, and P_{6}= P_{E}is shorter than the radius of generalization, so the point P_{4}will be removed from the set of vertices of the vector line; - The generalization process continues until the position of the last point in the vertices line is evaluated. If the number of vertices has been reduced in the process, iteration begins, starting from point 1. A new set of vertices is subject to generalization. This iterative generalization lasts until iteration does not cause a change in the number of vertices. The lack of further changes in the number of vertices is a condition whose fulfilment ends the procedure of the algorithm (interruption of iteration); and,
- after the completion of the generalization process, the vector line will take the form shown in Figure 4.

## 4. Evaluation of the Proposed Generalization Algorithm

_{n}—scale of the newly developed map; M

_{s}—scale of the source map; and, h

_{emp}—empirical coefficient used to adjust the generalization radius to the modal value and scale of the newly developed map. Based on the analyses of the shape of generalized lines that were obtained in several tens of experiments and the analyses of the error in the adjustment of lines after generalization (see Section 5), the value of 0.3 was adopted. The aim of the value of this coefficient is also to achieve the most aesthetic acceptable generalization in a significantly reduced scale; C

_{1}—proportionality coefficient that ensures that the MSCF value is higher than one (C

_{1}= 1).

_{gen}generalization radius.

_{mv}—radii modal value.

_{n}/M

_{s}= 1 the generalization process should not be conducted. This is a limitation of the scope of generalization conducted with use of this method.

_{gen}, calculated based on the MSCF coefficient and the modal value of the radii, links the map scales to the shape of the vertex line and it is applicable only if the algorithm is applied to topographic maps. To determine its value, we used indices in form of the generalization error that consists of two values apart from the visual assessment of the generalized line. The error resulting from the use of the smoothing function (M

_{sm}) was calculated based on the differences between the values of the co-ordinates of vertices before and after generalization. Coordinates of vertices that remained after the reduction were used for calculations. Some of them had been subjected to the smoothing procedure and for polygons—the surface had been evened, which led to a change in their position.

_{P}—error in vertex position after generalization, caused by the application of smoothing function; M

_{X}—error in the determination of the X coordinate; MX—error in the determination of the Y coordinate; ΔX

_{i}—difference between coordinates after and before generalization: ΔX

_{i}= X

_{i}

^{′}– X

_{i}; ΔY

_{i}—difference between coordinates after and before generalization: ΔY

_{i}= Y

_{i}

^{′}– Y

_{i}; X

_{i}, Y

_{i}—coordinates of the ith vertex before generalization; X

_{i}, Y

_{i}—coordinates of the ith vertex before generalization; and, n—number of vertices remaining after generalization.

_{c}(the middle point of the three) and the line connecting points P

_{s}and P

_{e}(the start and end points). These values were used to calculate the value of the line position error after generalization, pursuant to the formula:

_{Red}—line position error after the reduction of vertices; D

_{H}—Hausdorf distance between the line and the reduced vertex; and, l—number of reduced vertices (l ≠ 1).

_{gen}—generalization error.

_{gen}= 104 m was calculated with use of Formulae (5) and (6). In the case shown in Figure 6e, the modal value of the statistical series of the vertices dataset was 105 m. The adopted value of the generalization radius R

_{gen}= 168 m was calculated with use of Formulae (5) and (6).

_{gen}generalization radius of 71 m. Iterations were finished when no further changes occurred in the number of vertices, which was reduced to 56. The aim of this attempt was to generalize the object for a map in the scale of 1:100,000. Figure 7d shows the result of an attempt at the application of the generalization radius of 130 m (modal value—74 m, MSCF 1.75) for further generalization of the object for a map in a scale of 1:250,000. Iterations were finished when no further changes occurred in the number of vertices, which was reduced to 27. Subsequent iterations did not lead to a further reduction.

_{gen}radius was 67 m, pursuant to Formulae (5) and (6). Iterations were ended when the number of vertices of the vector line decreased to 19 and did not diminish any further.

_{gen}radius was 40 m, pursuant to Formulae (5) and (6). Iterations were ended when the number of vertices of the vector line decreased to 89 and they did not diminish any further.

## 5. Discussion

_{dop}value that is specified in Formula (2). Column Msm1 presents the values of smoothing errors calculated pursuant to Formula (7), where measurement data or the results of previous generalization were used as the initial values of coordinates. The initial values of coordinates were adopted for calculations as error-free. Each calculated error value was referred to the adopted map scale. Column Mred1 contains the values of reduction errors calculated pursuant to Formula (10). The calculations were based on the value of the Hausdorf distance between the removed vertex and the chord connecting the start and end points of the analyzed three vertices. Each calculated error value was referred to the adopted map scale.

_{sm}

_{2}and M

_{red}

_{2}contain, respectively, the errors calculated while considering the erroneous positions of points obtained from the previous M generalizations where error for generalization j is equal to M

_{P}

_{1i}, pursuant to the formula:

_{p}

_{2}refers, respectively, to M

_{sm}

_{2}and M

_{red}

_{2}errors.

_{gen}

_{1}and M

_{gen}

_{2}present the values of generalization errors, described as:

- obtaining spatial data and recording them in an IT system, usually GIS;
- complementing their characteristics with descriptive data;
- creating a cartographic data base; and,
- processing it to obtain a topographic analogue map in the desired scale.

^{®}by ESRI or Geomedia

^{®}by Intergraph. The language of the internal applications in GIS systems is the currently very popular Python language. For the purposes of using this generalization method in these software systems, an application in the Python environment should be developed.

## 6. Conclusions

- the design of the algorithm does not require complicated programming solutions to implement it in GIS systems;
- the algorithm may be applied both to polylines and to vector lines that constitute the borders of areas. The algorithm works best for such physiographic elements of the map as water courses, land/water borders, borders of forest complexes etc.; and,
- the following points do not change their position and they are not subject to reduction during generalization: the start and end of the polyline, the center of gravity of the figure constituting the area and selected points marked in the dataset.

## Author Contributions

## Funding

## Conflicts of Interest

## References

- Kraak, M.J.; Omerling, F. Kartografia; PWN: Warszawa, Poland, 1998. [Google Scholar]
- Saliszczew, A.K. Kartografia Ogólna; PWN: Warszawa, Poland, 1984. [Google Scholar]
- Magnuszewski, A. GIS w Geografii Fizycznej; Wydawnictwo Naukowe PWN: Warszawa, Poland, 1999. [Google Scholar]
- Robinson, A.; Sale, R.; Morrison, J. Podstawy Kartografii; PWN: Warszawa, Poland, 1988. [Google Scholar]
- Tobler, W. Numerical map generalization. Mich. Inter-Univ. Commun. Math. Geogr.
**1966**, 8, 25. [Google Scholar] - Iwaniak, A.; Paluszyński, W.; Żyszkowska, W. Generalizacja map numerycznych - koncepcje, narzędzia. Polski Przegląd Kartograficznyc
**1998**, 30, 79–88. [Google Scholar] - Douglas, D.H.; Peucker, T.K. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. Can. Cartogr.
**1973**, 10, 112–122. [Google Scholar] [CrossRef] - Li, Z.; Openshaw, S. Algorithms for automated line generalization based on a natural principle of objective. Int. J. Geogr. Inf. Syst.
**1992**, 6, 373–389. [Google Scholar] [CrossRef] - Visvalingam, M.; Whyatt, J. Line generalization by repeated elimination of points. Cartogr. J.
**1993**, 30, 46–51. [Google Scholar] [CrossRef] - Wang, Z.; Muller, J.-C. Line generalization based on analysis of shape characteristics. Cartog. Geogr. Inf. Syst.
**1998**, 25, 3–15. [Google Scholar] [CrossRef] - Jiang, B.; Nakos, B. Line Simplification Using Self-organizing Maps. In Proceedings of the ISPRS Workshop on Spatial Analysis and Decision Making, Hong Kong, China, 3–5 December 2003. [Google Scholar]
- Zhou, S.; Jones, C. Shape-aware Line Generalisation with Weighted Effective Area. In Developments in Spatial Data Handling; Springer: Berlin/Heidelberg, Germany, 2004; pp. 369–380. [Google Scholar]
- Dyken, C.; Daehlen, M.; Sevaldrud, T. Simultaneous curve simplification. J. Geogr. Syst.
**2009**, 11, 273–289. [Google Scholar] [CrossRef] - Saalfeld, A. Topologically consistent line simplification with the Douglas-Peucker algorithm. Cartogr. Geogr. Inf. Sci.
**1999**, 26, 7–18. [Google Scholar] [CrossRef] - Mustafa, N.; Krishnan, S.; Varadhan, G.; Venkatasubramanian, S. Dynamic simplification and visualization of large maps. Int. J. Geogr. Inf. Sci.
**2006**, 20, 273–320. [Google Scholar] [CrossRef] - Nöllenburg, M.; Merrick, D.; Wolff, A.; Benkert, M. Morphing polylines: A step towards continuous. Comput. Environ. Urban Syst.
**2008**, 32, 248–260. [Google Scholar] [CrossRef] - Stanislavski, L.; Raposa, P.; Butterfield, B. Automated Metric Assessment of Line Simplification in Humid Landscapes. In Proceedings of the AutoCarto 2012, Columbus, OH, USA, 16–18 September 2012. [Google Scholar]
- Veregin, H. Quantifying positional error induced by line simplification. Int. J. Geogr. Inf. Sci.
**2000**, 14, 113–130. [Google Scholar] [CrossRef] - McMaster, R. The integration of simplification and smoothing algorithms in line generalization. Cartogr. Int. J. Geogr. Inf. Geovis.
**1989**, 26, 101–121. [Google Scholar] [CrossRef] - Gökgöz, T.; Sen, A.; Memduhoglu, A.; Hacar, M. A New Algorithm for Cartographic Simplification of Streams and Lakes Using Deviation Angles and Error Bands. ISPRS Int. J. Geo-Inf.
**2015**, 4, 2186–2204. [Google Scholar] [CrossRef] - Bose, P.; Cabello, S.; Cheong, O.; Gudmundsson, J.; Van Kreveld, M.; Speckmann, B. Area-preserving approximations of polygonal paths. J. Discret. Algorithms.
**2006**, 4, 554–566. [Google Scholar] [CrossRef][Green Version] - Buchin, K.; Meulemans, W.; Renssen, A.; Speckmann, B. Area-preserving simplification and schematization. J. Discret. Algorithms.
**2016**, 2, 2. [Google Scholar] - Perkal, J. Próba obiektywnej generalizacji. Geodezja i Kartografia
**1958**, 8, 130. [Google Scholar] - Perkal, J. O długości krzywych empirycznych. Zastosowania Matematyki
**1958**, 3, 258–284. [Google Scholar] [CrossRef][Green Version] - Chrobak, T. Modeling of spatial data in a database for the needs of cartographic generalization. Geodezja i Kartografia
**2000**, 49, 7–20. [Google Scholar] - Chrobak, T. Metoda uogólnienia danych w procesie generalizacji obiektów liniowych. Geoinformacja Zintegrowanym Narzędziem Badań Przestrzennych
**2003**, 13, 15–17. [Google Scholar] - Chrobak, T. Badania Przydatności Trójkąta Elementarnegow Komputerowej Generalizacji Kartograficznej; Wydawnictwo Naukowo-Dydaktyczne AGH: Kraków, Poland, 1999. [Google Scholar]

**Figure 1.**(a) Beginning shape of line string. (

**b**) The first case according to the Formula (1); (

**c**) The second case according to the Formula (1); (

**d**) The third case according to the Formula (2); and, (

**e**) The fourth case according to the Formula (1).

**Figure 6.**(

**a**) Line string before generalization, initial number of vertexes—15, minimal radius—61 m; (

**b**) Line string after generalization, final form, number of vertexes—8, radius of generalization (modal value × 1.6)—170 m; (

**c**) Line string before generalization, initial number of vertices—125, scale of the map 1:25,000; (

**d**) Line string after generalization, final form, number of vertices—94, radius of generalization (modal value × Map Scale Change Factor (MSCF))—65 m × 1.6 = 104 m, scale of the map 1:50,000; (

**e**) Line string after generalization, final form, number of vertices—80, radius of generalization (modal value × MSCF)—105 m × 1.6 = 168 m, scale of the map 1:100,000.

**Figure 7.**(

**a**) Area limited by a polygon, number of vertices—141; (

**b**) Area limited by a polygon, number of vertices—89, radius of generalization (modal value × MSCF)—25 × 1.6 = 40 m. (

**c**) Area limited by a polygon, number of vertices—58, radius of generalization (modal value × MSCF)—44 m × 1.6 =70 m. (

**d**) Area limited by a polygon, number of vertices—29, radius of generalization (modal value × MSCF)—74 m × 1.75 = 130 m. (

**e**) Generalization results presented in approximate map scales: 1:25,000, 1:50,000, 1:100,000.

**Figure 8.**(

**a**) Area limited by a polygon, number of vertices—52; (

**b**) Area limited by a polygon, number of vertices—25, radius of generalization (modal value × MSCF)—42 m × 1.6 = 67 m; (

**c**) Area limited by a polygon, number of vertices—19, radius of generalization (modal value × MSCF)—44 m × 1.6 = 70 m.

**Figure 9.**(

**a**) Area limited by a polygon, number of vertices—215; (

**b**) Area limited by a polygon, number of vertices—142, radius of generalization (modal value × MSCF)—14 m × 1.6 = 22 m; (

**c**) Area limited by a polygon, number of vertices—89, radius of generalization (modal value × MSCF)—25 m × 1.6 = 40 m.

**Figure 10.**(

**a**) Reduction of diagram data (org. Figure 6a), reduction parameter—90 m, number of vertices—9; (

**b**) Line string reduction (org. Figure 6c), reduction parameter—2.1 m, number of vertices—81; (

**c**) Polygon reduction (org. Figure 7a), reduction parameter—2.5 m, number of vertices—62; (

**d**) Polygon reduction (org. Figure 8a), reduction parameter—4.1 m, number of vertices—34.

Data Set | Source Map Scale | The Scale of the Target Map | The Type of Object | The Length of the Line [m] | Area Field [m²] | Avg. Side Length | Number of Vertices | Radii [m] | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Average | Max. | Minimum | Median | Modal Value | Generalization | ||||||||

No 1 | 1:25,000 | 1:50,000 | polyline | 3867 | x | 29 | 125 | 688 | 17,020 | 1 | 175 | 65 | 104 |

1:50,000 | 1:100,000 | polyline | 3845 | x | 38 | 94 | 693 | 8397 | 24 | 236 | 105 | 168 | |

1:100,000 | 1:250,000 | polyline | 3580 | x | 38 | 80 | 904 | 8397 | 31 | 281 | 173 | 277 | |

1:250,000 | 1:500,000 | polyline | 3454 | x | 43 | 62 | 1030 | 8154 | 42 | 401 | 401 | 702 | |

No 2 | 1:25,000 | 1:50,000 | polygon | x | 109,244 | 17 | 140 | 260 | 3729 | 1 | 59 | 25 | 40 |

1:50,000 | 1:100,000 | polygon | x | 109,173 | 30 | 89 | 415 | 4715 | 21 | 154 | 44 | 70 | |

1:100,000 | 1:250,000 | polygon | x | 109,168 | 55 | 58 | 5718 | 51,914 | 71 | 158 | 74 | 130 | |

No 3 | 1:25,000 | 1:50,000 | polygon | x | 43,600 | 23 | 51 | 128 | 1848 | 11 | 40 | 42 | 67 |

1:50,000 | 1:100,000 | polygon | x | 43,599 | 41 | 26 | 111 | 444 | 42 | 68 | 44 | 70 | |

1:100,000 | 1:250,000 | polygon | x | 43,598 | 32 | 19 | 301 | 2454 | 66 | 101 | 73 | 128 | |

No 4 | 1:25,000 | 1:50,000 | polygon | x | 85,607 | 41 | 216 | 106 | 3191 | 3 | 29 | 14 | 22 |

1:50,000 | 1:100,000 | polygon | x | 85,053 | 17 | 142 | 121 | 1839 | 21 | 44 | 25 | 40 | |

1:100,000 | 1:250,000 | polygon | x | 84,568 | 12 | 89 | 234 | 5123 | 40 | 71 | 55 | 96 |

Data Set | Source Map Scale | The Scale of the Target Map | The Type of Object | Mp_map | Msm1 | Mred1 | Mgen1 | Msm2 | Mred2 | Mgen2 |
---|---|---|---|---|---|---|---|---|---|---|

No 1 | 1:25,000 | 1:50,000 | polyline | 15 m | ±8.4 m | ±21.6 m | ±23.2 m | ±8.4 m | ±21.6 m | ±23.2 m |

1:50,000 | 1:100,000 | polyline | 30 m | ±15.0 m | ±1.8 m | ±15.1 m | ±17.2 m | ±21.7 m | ±27.7 m | |

1:100,000 | 1:250,000 | polyline | 75 m | ±25.5 m | ±15.1 m | ±29.6 m | ±30.8 m | ±26.4 m | ±40.5 m | |

1:250,000 | 1:500,000 | polyline | 150 m | ±44.7 m | ±44.2 m | ±62.8 m | ±54.2 m | ±51.4 m | ±74.8 m | |

No 2 | 1:25,000 | 1:50,000 | polygon | 15 m | ±12.3 m | ±2.9 m | ±12.7 m | ±12.3 m | ±2.9 m | ±12.6 m |

1:50,000 | 1:100,000 | polygon | 30 m | ±13.5 m | ±3.3 m | ±13.9 m | ±18.3 m | ±4.4 m | ±18.8 m | |

1:100,000 | 1:250,000 | polygon | 75 m | ±54.7 m | ±19.6 m | ±58.1 m | ±57.7 m | ±20.1 m | ±61.1 m | |

No 3 | 1:25,000 | 1:50,000 | polygon | 15 m | ±26.3 m | ±7.8 m | ±27.4 m | ±26.3 m | ±21.6 m | ±34.0 m |

1:50,000 | 1:100,000 | polygon | 30 m | ±14.2 m | ±2.7 m | ±14.5 m | ±29.9 m | ±21.7 m | ±36.9 m | |

1:100,000 | 1:250,000 | polygon | 75 m | ±41.4 m | ±52.3 | ±66.7 m | ±51.1 m | ±56.6 m | ±76.2 m | |

No 4 | 1:25,000 | 1:50,000 | polygon | 15 m | ±6.4 m | ±1.6 m | ±6.6 m | ±6.4 m | ±1.6 m | ±6.6 m |

1:50,000 | 1:100,000 | polygon | 30 m | ±7.3 m | ±8.0 m | ±10.8 m | ±9.7 m | ±8.2 m | ±12.7 m | |

1:100,000 | 1:250,000 | polygon | 75 m | ±33.2 m | ±15.5 m | ±36.6 m | ±34.5 m | ±17.6 m | ±38.8 m |

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

## Share and Cite

**MDPI and ACS Style**

Kolanowski, B.; Augustyniak, J.; Latos, D. Cartographic Line Generalization Based on Radius of Curvature Analysis. *ISPRS Int. J. Geo-Inf.* **2018**, *7*, 477.
https://doi.org/10.3390/ijgi7120477

**AMA Style**

Kolanowski B, Augustyniak J, Latos D. Cartographic Line Generalization Based on Radius of Curvature Analysis. *ISPRS International Journal of Geo-Information*. 2018; 7(12):477.
https://doi.org/10.3390/ijgi7120477

**Chicago/Turabian Style**

Kolanowski, Bogdan, Jacek Augustyniak, and Dorota Latos. 2018. "Cartographic Line Generalization Based on Radius of Curvature Analysis" *ISPRS International Journal of Geo-Information* 7, no. 12: 477.
https://doi.org/10.3390/ijgi7120477