
Geographic Information Processing and Digital Cartography, by their very nature, employ digital techniques and sophisticated algorithms for analyzing and displaying digital geographic data. One assumes that the software one uses contains methodologies and algorithms to solve the particular geographic or spatial problem at hand, accurately and precisely. We implicitly have confidence in the implementation of these algorithms, and generally assume that the results produced by these GIS are as accurate as the developers of the software intended them to be. We put faith in their judgement for the selection and implementation of various algorithms for solving, in this context, spatial geographic problems. However, sophistication of software and accuracy of results may not go hand in hand. A simple case in point is the calculation of the perimeter and area of a polygon, within a raster data structure. This calculation seems simple enough, but in extreme cases, most GIS systems produce errors of up to 40% for the perimeter calculation, and up to 10% for area calculations. This paper will examine the typical algorithms used for calculating the perimeter and area statistic, and will present an improved algorithm that produces much less error,
The structure of a spatial data set determines the type of algorithms employed to analyze the data. In a GIS, the two main data structures are raster and vector, and each has properties suitable for solving problems unique to their data structure. Each has their advantages and disadvantages for solving these geographic problems, and algorithms that are simple to implement in a raster environment may be difficult to implement in a vector environment, and vice versa. Traditional methods of calculating the perimeter and area of a polygon, in raster and vector format, will expose the weakness of the raster calculation.
In a vector data structure, the perimeter of a polygon is easily and accurately calculated using the Pythagoras formula. The distance between two vector coordinates, x_{1},y_{1} and x_{2},y_{2} is given by the formula
For a closed polygon containing N vertices (where x_{N}=x_{1} and y_{N}=y_{1}), a simple summation of the lengths of all the edges of the polygon will result in the perimeter of the polygon. Stated as a formula,
The area of a vector polygon is also easily computed, using several techniques. Using the Trapezoidal method, each side of the polygon forms a trapezoid with the X axis (see Figure 1).
Figure 1. Vector polygon with each side subtending a trapezoid
The area of a trapezoid subtended by polygon side A, from coordinate x1,y1 to x2,y2 is
This is effectively the width times the average height, and gives the area of an equivalent rectangle. For a closed polygon containing N vertices (where x_{N}=x_{1} and y_{N}=y_{1}), a simple summation of the areas of all the subtended trapezoids of the polygon will result in the total area of the polygon, assuming a clockwise directed polygon. Stated as a formula,
In raster space, the algorithms for computing perimeters and areas of polygons (or raster areas, contiguous areas of common value) are generally quite simplistic, and not as precise as the vector methods. For the area calculation, the numbers of pixels contained within the polygonal area are counted. The pixel size is a known quantity, so the area of a pixel is also known. Multiplying the number of pixels by the area of one pixel results in the area of the polygon. For perimeters of raster polygonal areas, a more complex algorithm is employed. All edges of the polygonal region (an edge of a raster polygon exists when a pixel of the raster polygon has an adjacent pixel of a different value) are determined and counted. Multiplying the number of edges by the length of the side of a pixel results in the perimeter of the polygonal area. The difficulty with this technique is the inherent problem of the raster data structure – aliasing in the representation of nonvertical or nonhorizontal lines.
When a vector map is rasterized for use within a GIS, the horizontal and vertical sections of boundary lines are converted into straight rows or columns of pixels. However, the other ‘diagonal’ sections of lines are converted into ‘stairstep’ like lines, using raster pixels, which attempt to follow the straight vector lines. This results in aliasing, that jagged look to the lines due to the pixelation effect. The finer the resolution (i.e. the smaller the pixel), the less apparent is the aliasing. Nevertheless, this aliasing causes an overestimation in the number of edges used to represent the boundary of a region in raster space. When a diagonal section of the perimeter of the polygon is represented in raster space, typical algorithms count the two exposed edges of the pixel as contributing to the perimeter, or two times the length of the side of the pixel. A more accurate calculation would count the diagonal distance across the pixel, or root 2 times the length of the side of the pixel. Figure 2 demonstrates the aliasing problem in the raster representation of vector objects. This simplicity of current algorithms, which ignore the significance of the aliasing problem, contributes to the errors of the perimeter and area statistic. By experimentation, using the nine square raster file described later, it was proven that IDRISI, EPPL7, PCI, ArcView and SPANS GIS all implement the same simple algorithms, since the results of their perimeter and area calculations were identical among them. Because of this, any subsequent reference to IDRISI is interchangeable with any of the above mentioned GIS systems. This simple experiment can easily determine if these simple algorithms are implemented in any GIS system.
Figure 2. A rotated square and its rasterized equivalent
The algorithm presented here attempts to compensate for the aliasing problem by adjusting for diagonal sections of polygon boundaries. To determine the appropriate contribution of an edge pixel to the perimeter, a scheme was devised to determine edge pixels (or pixels with edges bounding on unlike pixels), and their corresponding perimeter contribution. A 3x3 pixel matrix, or moving window, was defined that would represent every combination of up to 8 like pixels surrounding the centre pixel. Each of the 8 surrounding pixels would have a unique position code, as shown in Figure 3. Summing these codes, when an adjacent pixel has the same value as the central pixel, would result in a number between 0 and 255, or one of 256 unique pattern values. Figure 4 shows the 256 different surround patterns in sequential order. Each unique pattern value has a perimeter value associated with its unique pattern, and, by examining each pattern, an appropriate perimeter value was selected for each pattern. A pattern could have one of six perimeter values (1, 2, 3, 4, 1.414 or 2.828), depending on the pattern shape with respect to the central pixel. A pattern with a perimeter value of 1 has one exposed edge on the polygon boundary; a perimeter value of 3 has three exposed edges on the polygon boundary; a perimeter value of 1.414 (square root of 2) represents a diagonal line through the pixel; a perimeter value of 2.828 has two diagonal lines through the pixel. Figure 5 shows the pattern values and their associated perimeter values.
The algorithm procedure would systematically apply the moving window at every pixel, compute the surrounding pixel pattern value, and determine the associated perimeter value. Then, for each class of pixel in the raster image, a running total of perimeter values would be accumulated. Once all pixels in the raster image are processed, the running total for each pixel class is multiplied by the length of a pixel edge, resulting in the perimeters of all the polygons (areas) in the image.
Figure 3. The 3x3 pixel matrix moving window, showing pixel position codes
Figure 4. The 256 unique pixel surround patterns
Code  Perimeter  Code  Perimeter  Code  Perimeter  Code  Perimeter  Code  Perimeter  Code  Perimeter  Code  Perimeter  Code  Perimeter 
0  4  32  4  64  3  96  1.414  128  4  160  4  192  1.414  224  2.828 
1  4  33  4  65  3  97  1.414  129  4  161  4  193  3  225  3 
2  3  34  3  66  2  98  2  130  3  162  3  194  2  226  2 
3  1.414  35  1.414  67  2  99  2  131  3  163  3  195  2  227  2 
4  4  36  4  68  3  100  3  132  4  164  4  196  1.414  228  3 
5  4  37  4  69  3  101  3  133  4  165  4  197  3  229  3 
6  1.414  38  3  70  2  102  2  134  1.414  166  3  198  2  230  2 
7  2.828  39  3  71  2  103  2  135  3  167  3  199  2  231  1.414 
8  3  40  1.414  72  2  104  2  136  3  168  1.414  200  1.414  232  1.414 
9  1.414  41  2.828  73  1.414  105  1.414  137  3  169  3  201  1.414  233  1.414 
10  2  42  1.414  74  1  106  1  138  2  170  2  202  1  234  1.414 
11  2  43  1.414  75  1  107  1  139  2  171  2  203  1  235  1 
12  3  44  3  76  2  108  2  140  3  172  3  204  2  236  2 
13  1.414  45  3  77  2  109  2  141  3  173  3  205  1.414  237  1.414 
14  1.414  46  1.414  78  1  110  1  142  2  174  1.414  206  2  238  1 
15  1.414  47  1.414  79  1.414  111  1  143  2  175  1.414  207  1  239  1 
16  3  48  3  80  2  112  1.414  144  1.414  176  1.414  208  2  240  1.414 
17  3  49  3  81  2  113  2  145  3  177  3  209  2  241  2 
18  2  50  2  82  1  114  1  146  1.414  178  2  210  1  242  1.414 
19  1.414  51  2  83  1  115  2  147  1.414  179  1.414  211  1  243  1 
20  1.414  52  3  84  1.414  116  1.414  148  2.828  180  3  212  1.414  244  1.414 
21  1.414  53  3  85  2  117  1.414  149  3  181  3  213  2  245  1.414 
22  2  54  2  86  1  118  1  150  1.414  182  2  214  1  246  1 
23  1.414  55  2  87  1.414  119  1  151  1.414  183  1.414  215  1  247  1 
24  2  56  2  88  1  120  1  152  2  184  2  216  1  248  1 
25  2  57  2  89  1  121  1.414  153  2  185  2  217  1  249  1 
26  1  58  1  90  0  122  0  154  1  186  2  218  0  250  0 
27  1  59  1.414  91  0  123  0  155  1  187  1  219  0  251  0 
28  2  60  2  92  1  124  1  156  2  188  2  220  1.414  252  1 
29  2  61  2  93  2  125  1  157  2  189  1.414  221  1  253  1 
30  1  62  1  94  0  126  0  158  1.414  190  1  222  0  254  0 
31  1  63  1  95  0  127  0  159  1  191  1  223  0  255  0 
Figure 5. The 256 pattern values and their associated perimeter values
To observe the improvement in accuracy of the computed perimeters and areas, two tests were performed.
Nine vector squares, 100 units on a side, were created, each rotated by fivedegree increments, from 5 to 45 degrees, to show the effects of increased aliasing on the square boundaries. Elementary geometry shows that each square has a perimeter of 400 units, and an area of 10000 square units, regardless of its orientation in vector space. The nine squares were then rasterized in the IDRISI GIS, at 5 different resolutions (75, 150, 300,600 and 1200 pixels for an image 600 units square, or 8,4,2,1 and 0.5 units/pixel respectively), and the perimeter and area of each rasterized square was computed and compared to its vector equivalent. The improved algorithm was also used to calculate the perimeters and areas of the rasterized squares. Figure 6 shows the nine squares superimposed on their rasterized versions. The results of the IDRISI perimeter calculation, including average error from the exact vector values, is shown in Figure 7. As can be seen, errors of up to 40% can result from area boundaries containing severe aliasing, such as the square rotated by 45 degrees. Figure 8 graphically shows, as rotation angle increases, aliasing increases, and corresponding error increases asymptotically to a maximum of about 38%, regardless of resolution. The results of the improved algorithm perimeter calculation, including average error from the exact vector values, are shown in Figure 9. As can be seen, error has been significantly reduced to about 8.4% for the most severely aliased square. Figure 10 graphically shows the error of the perimeter calculation, at 5 different resolutions, using the improved algorithm. A maximum occurs at about 11.5%.
Figure 6. Test 1 – Nine rotated squares superimposed on their raster equivalents
Resolution  Perimeter Values using IDRISI 

Rotation in Degrees 
75x75  150x150  300x300  600x600  1200x1200  Vector 
5  416  416  432  432  432  400 
10  480  448  464  464  464  400 
15  480  480  496  488  488  400 
20  480  512  512  512  512  400 
25  544  512  528  528  532  400 
30  544  544  544  544  548  400 
35  544  544  544  552  556  400 
40  544  576  560  560  564  400 
45  544  544  560  560  564  400 
Resolution  %Error using IDRISI 

Rotation in Degrees 
75x75  150x150  300x300  600x600  1200x1200  
5  4  4  8  8  8  
10  20  12  16  16  16  
15  20  20  24  22  22  
20  20  28  28  28  28  
25  36  28  32  32  33  
30  36  36  36  36  37  
35  36  36  36  38  39  
40  36  44  40  40  41  
45  36  36  40  40  41 
Figure 7. Table of IDRISI perimeter values for nine rotated squares, at five different resolutions
Figure 8. Chart of IDRISI perimeter error for nine rotated squares, at five different resolutions
Resolution  Perimeter Values using Improved Algorithm 

Rotation in Degrees 
75x75  150x150  300x300  600x600  1200x1200  Vector 
5  393.63  382.45  409.63  409.63  408.24  400 
10  435.27  403.27  408.09  416.47  415.08  400 
15  412.90  412.90  415.31  418.11  416.71  400 
20  412.90  422.54  411.35  416.95  416.95  400 
25  409.81  411.36  414.80  413.38  412.58  400 
30  426.68  398.62  409.81  407.01  406.82  400 
35  409.81  398.62  387.44  392.65  395.25  400 
40  365.08  385.89  381.08  381.08  383.68  400 
45  381.95  353.89  364.30  364.30  366.91  400 
Resolution  %Error using Improved Algorithm 

Rotation in Degrees 
75x75  150x150  300x300  600x600  1200x1200  
5  1.59  4.39  2.41  2.41  2.06  
10  8.82  0.82  2.02  4.12  3.77  
15  3.23  3.23  3.83  4.53  4.18  
20  3.23  5.63  2.84  4.24  4.24  
25  2.45  2.84  3.70  3.34  3.15  
30  6.67  0.34  2.45  1.75  1.70  
35  2.45  0.34  3.14  1.84  1.19  
40  8.73  3.53  4.73  4.73  4.08  
45  4.51  11.53  8.92  8.92  8.27 
Figure 9. Table of improved algorithm perimeter values for nine rotated squares, at five different resolutions
Figure 10. Chart of improved algorithm perimeter error for nine rotated squares, at five different resolutions
A vector map of China was selected due to the variety of polygon shapes and sizes within its boundaries. The map, containing 29 polygonal regions, was rasterized in IDRISI, at 5 different resolutions (80x70, 160x140, 320x280, 640x560 and 1280x1120 pixels for an image 320x280 units, or 4,2,1,0.5,0.25 units/pixel respectively), and the perimeter and area of each rasterized polygon was computed and compared to its vector equivalent. This was done to show the effect that resolution had on the perimeter/area calculation results from IDRISI. The improved algorithm was also used to calculate the perimeters and areas of the polygons. Figure 11 shows an example of the vector map superimposed on the rasterized version, at the selected resolution. The aliasing is evident on most of the polygon boundaries. The results of the IDRISI perimeter calculation, including average error from the exact vector values, are shown in Figure 12. As can be seen, errors of up to 28% can result from area boundaries containing severe aliasing. Figure 13 graphically shows, at each resolution, the perimeter error for each polygon using the IDRISI perimeter calculation. Error typically gets worse, ranging from an average of 8.5% to 25.7%, as resolution increases, due to increased aliasing. The results of the improved algorithm perimeter calculation, including average error from the exact vector values, are shown in Figure 14. Figure 15 graphically shows the error of the perimeter calculation, at 5 different resolutions, using the improved algorithm. In this case, error improves, ranging from an average of 15.9% to 1.3%, as resolution increases. This can be attributed to the diagonal compensation properties of the improved algorithm, which has a better performance as resolution increases. At higher resolutions, there are smaller sized, but more aliased or diagonal sections on raster polygonal boundaries. Thus, at the highest resolution, 1280x1120 pixels for an image that is 320x280 in vector space (0.25 units/pixel), the average error reduces from about 25.7% to about 1.3%
Figure 11. Test 2 – Rasterized map of China with vector boundary overlay (80x70 pixels)
Resolution  Perimeter Values using IDRISI  
Polygon  80x70  160x140  320x280  640x560  1280x1120  Vector 
1  488  512  536  542  544.5  432.69 
2  416  456  478  472  481  384.48 
3  304  320  340  345  349.5  281.37 
4  176  200  204  207  210  164.88 
5  160  164  172  186  190  151.79 
6  320  348  354  368  374  299.86 
7  272  296  310  314  318  251.04 
8  400  420  436  441  442.5  346.61 
9  104  112  114  112  115  90.05 
10  192  228  244  249  248  200.02 
11  168  180  182  195  193  154.50 
12  152  176  182  197  194.5  155.62 
13  192  208  216  218  221.5  175.54 
14  112  124  128  134  135.5  107.09 
15  144  156  162  164  165  129.12 
16  96  124  130  139  140  111.21 
17  16  20  24  24  25  19.36 
18  120  132  164  163  163  128.85 
19  120  144  174  177  175.5  142.61 
20  144  156  166  173  176  139.42 
21  136  160  170  176  177.5  142.00 
22  120  152  158  160  163  128.97 
23  216  248  270  285  287.5  228.51 
24  40  40  38  39  41  33.34 
25  152  184  184  192  190.5  152.57 
26  176  208  220  229  228  179.42 
27  312  344  368  376  375  293.66 
28  664  748  762  763  776  618.06 
29  40  40  42  44  44  36.32 
Resolution  %Error using IDRISI  
Polygon  80x70  160x140  320x280  640x560  1280x1120  
1  12.78  18.33  23.88  25.26  25.84  
2  8.20  18.60  24.32  22.76  25.10  
3  8.04  13.73  20.84  22.61  24.21  
4  6.75  21.30  23.73  25.55  27.37  
5  5.41  8.04  13.31  22.54  25.17  
6  6.72  16.05  18.06  22.72  24.73  
7  8.35  17.91  23.49  25.08  26.67  
8  15.40  21.17  25.79  27.23  27.66  
9  15.50  24.38  26.60  24.38  27.71  
10  4.01  13.99  21.99  24.49  23.99  
11  8.74  16.50  17.80  26.21  24.92  
12  2.33  13.10  16.95  26.59  24.98  
13  9.38  18.49  23.05  24.19  26.18  
14  4.59  15.79  19.53  25.13  26.53  
15  11.53  20.82  25.47  27.02  27.79  
16  13.68  11.50  16.90  24.99  25.89  
17  17.37  3.28  23.94  23.94  29.10  
18  6.87  2.44  27.28  26.50  26.50  
19  15.86  0.97  22.01  24.11  23.06  
20  3.28  11.89  19.06  24.08  26.23  
21  4.22  12.68  19.72  23.95  25.00  
22  6.95  17.86  22.51  24.06  26.39  
23  5.48  8.53  18.16  24.72  25.81  
24  19.99  19.99  13.99  16.99  22.99  
25  0.37  20.60  20.60  25.84  24.86  
26  1.91  15.93  22.61  27.63  27.07  
27  6.25  17.14  25.32  28.04  27.70  
28  7.43  21.02  23.29  23.45  25.55  
29  10.12  10.12  15.63  21.13  21.13  
8.53  14.90  21.23  24.52  25.73  Average % Error  
Figure 12. Table of IDRISI perimeter values for the 29 polygons of China, at five different resolutions
Figure 13. Chart of IDRISI perimeter error for the 29 polygons of China, at five different resolutions
Resolution  Perimeter Values using Improved Algorithm  
Polygon #  80x70  160x140  320x280  640x560  1280x1120  Vector 
1  386.89  424.65  443.69  439.80  439.23  432.69 
2  329.03  386.67  395.25  387.99  389.19  384.48 
3  234.49  266.31  280.76  283.11  285.22  281.37 
4  140.56  156.69  162.12  166.21  168.20  164.88 
5  132.26  144.09  143.87  156.61  155.28  151.79 
6  274.80  292.45  293.52  304.43  304.80  299.86 
7  221.68  247.10  250.25  252.27  253.18  251.04 
8  350.58  346.93  354.56  355.68  351.89  346.61 
9  83.23  92.20  95.31  91.65  90.98  90.05 
10  173.34  191.96  202.35  205.70  200.89  200.02 
11  119.27  150.75  150.21  158.62  155.97  154.50 
12  119.36  153.74  151.93  161.77  157.78  155.62 
13  161.47  169.77  172.48  177.73  176.64  175.54 
14  82.67  105.14  105.63  106.66  107.54  107.09 
15  111.36  126.75  129.73  131.94  130.62  129.12 
16  70.84  107.94  109.86  111.48  111.96  111.21 
17  16.00  15.20  18.94  18.67  19.89  19.36 
18  100.26  104.24  132.14  130.82  129.77  128.85 
19  99.06  117.36  140.60  142.00  142.93  142.61 
20  119.74  118.45  133.38  136.95  140.05  139.42 
21  104.04  139.74  142.40  144.23  143.66  142.00 
22  106.02  128.69  131.45  129.60  130.56  128.97 
23  183.36  196.47  228.40  232.94  230.81  228.51 
24  33.20  37.46  32.41  34.29  34.28  33.34 
25  122.84  148.71  147.05  147.15  147.08  152.57 
26  146.67  163.57  177.99  183.49  181.89  179.42 
27  270.97  285.77  301.61  296.86  297.08  293.66 
28  542.97  618.81  624.26  621.18  623.94  618.06 
29  30.41  33.72  35.01  38.67  36.97  36.32 
Resolution  %Error using Improved Algorithm  
Polygon #  80x70  160x140  320x280  640x560  1280x1120  
1  10.58  1.86  2.54  1.64  1.51  
2  14.42  0.57  2.80  0.91  1.22  
3  16.66  5.35  0.22  0.62  1.37  
4  14.75  4.96  1.67  0.81  2.02  
5  12.86  5.07  5.22  3.18  2.30  
6  8.36  2.47  2.11  1.53  1.65  
7  11.70  1.57  0.32  0.49  0.85  
8  1.15  0.09  2.29  2.62  1.52  
9  7.57  2.39  5.85  1.78  1.03  
10  13.34  4.03  1.16  2.84  0.44  
11  22.80  2.42  2.78  2.67  0.95  
12  23.30  1.21  2.37  3.95  1.39  
13  8.02  3.29  1.74  1.25  0.63  
14  22.80  1.82  1.36  0.40  0.42  
15  13.76  1.83  0.48  2.19  1.17  
16  36.30  2.94  1.21  0.25  0.67  
17  17.37  21.48  2.21  3.57  2.71  
18  22.19  19.11  2.55  1.52  0.71  
19  30.54  17.71  1.41  0.43  0.22  
20  14.12  15.04  4.34  1.78  0.45  
21  26.73  1.59  0.28  1.57  1.17  
22  17.79  0.21  1.93  0.49  1.23  
23  19.76  14.02  0.05  1.94  1.00  
24  0.40  12.38  2.79  2.84  2.84  
25  19.49  2.53  3.62  3.55  3.60  
26  18.25  8.84  0.80  2.27  1.37  
27  7.73  2.69  2.71  1.09  1.17  
28  12.15  0.12  1.00  0.50  0.95  
29  16.29  7.16  3.62  6.46  1.77  
15.90  5.68  2.12  1.90  1.32  Average % Error 
Figure 14. Table of improved algorithm perimeter values for the 29 polygons of China, at five different resolutions
Figure 15. Chart of improved algorithm perimeter error for the 29 polygons of China, at five different resolutions
It was originally thought, when this research began, that corrections for aliasing would improve the perimeter and area calculations in raster GIS. We have confirmed that this is true for the perimeter calculation, but little improvement can be made to the results of the area calculation. Errors in the area calculation are a result of the rasterization process, and the raster representation of a vector boundary. Upon examining Figure 11, one can see that the vector boundary includes parts of pixels and excludes parts of other pixels. In raster space, this ‘extra’ area and ‘excluded’ area, along the perimeters, cancel each other out. At higher resolutions, these extra and excluded areas are much smaller, since pixel size is smaller, and so this ‘cancelling out’ process is more precise. Figure 16 and Figure 17 show the error of the area calculations for the 9 squares and China map using IDRISI. As can be seen, errors are typically much less than 1% at the higher resolutions.
Resolution  % Error using IDRISI Area Calculation  
Rotation in Degrees  75x75  150x150  300x300  600x600  1200x1200  
5  0.48  0.16  0.00  0.04  0.01  
10  0.48  0.80  0.00  0.12  0.03  
15  0.48  0.16  0.00  0.04  0.00  
20  0.48  0.16  0.32  0.08  0.00  
25  0.48  0.80  0.16  0.04  0.00  
30  0.48  0.16  0.00  0.00  0.00  
35  0.48  0.48  0.16  0.12  0.05  
40  0.48  0.48  0.16  0.00  0.00  
45  7.20  2.08  0.80  0.60  0.11  
1.23  0.59  0.18  0.12  0.02  Average % Error 
Figure 16. Area calculation for the nine squares using IDRISI
Resolution  % Error using IDRISI Area Calculation  
Polygon  80x70  160x140  320x280  640x560  1280x1120  
1  0.669152  0.011575  0.048205  0.025788  0.011777  
2  0.615977  0.651676  0.18687  0.003278  0.002004  
3  1.845  0.675916  0.297778  0.203244  0.00158  
4  2.22726  0.911296  0.35084  0.013457  0.035583  
5  3.285293  1.550443  0.794859  0.225179  0.124279  
6  3.036828  0.091075  0.27507  0.161917  0.009546  
7  2.214409  0.563156  0.165955  0.077082  0.003207  
8  3.22389  1.175024  0.612035  0.161211  0.019213  
9  0.115682  1.353205  0.985983  0.023876  0.022026  
10  1.272667  0.343386  0.074044  0.242383  0.124546  
11  1.887871  3.330859  0.322252  0.003918  0.052844  
12  2.210303  1.87811  0.166096  0.089429  0.006393  
13  2.151617  0.234929  0.533247  0.175258  0.063389  
14  5.630619  0.877615  0.139297  0.064085  0.050317  
15  3.278122  0.204369  0.256694  0.012259  0.012259  
16  1.590532  0.377657  0.606438  0.254645  0.162386  
17  28.13839  10.17298  7.792422  1.19028  0.067442  
18  7.197181  2.043471  0.533385  0.082435  0.030303  
19  2.384302  1.597078  0.219437  0.071833  0.096434  
20  0.119253  1.399775  0.200878  0.080829  0.0108  
21  4.849846  1.410033  0.311434  0.040684  0.070028  
22  1.250159  1.836736  0.94147  0.246918  0.052125  
23  4.353677  2.167663  0.006117  0.074048  0.0231  
24  18.8817  4.021485  1.551094  1.086712  0.538623  
25  8.195964  0.328696  0.820504  0.492632  0.000825  
26  2.96541  0.123552  0.262568  0.187906  0.029287  
27  1.057194  0.196822  0.233364  0.008616  0.035502  
28  0.326883  0.417495  0.012912  0.04372  0.021407  
29  14.27761  2.864031  1.435561  1.421379  0.082188  
4.456993  1.476211  0.694373  0.233276  0.060669  Average % Error 
Figure 17. Area calculation for the China map using IDRISI
Empirical evidence shows that, as the resolution becomes coarser, the perimeter results improve, while the area results degrade. As the resolution becomes finer, the perimeter results degrade while the area results improve. This can be attributed to, at finer resolutions, the greater number of smaller aliased pixels on diagonal edges.
The preceding research has verified that several GIS packages use simplistic methods to calculate perimeters and areas of raster regions. For perimeter, these systems count the number of pixel edges that make up the perimeter of a raster region, multiplied by the length of the side of a pixel. For area, they count the number of pixels contained in a raster region, multiplied by the area of a pixel. The results for perimeter can be in error by as much as 40%. The algorithm presented here compensates for the aliasing, and shows significant improvement in the perimeter results, by an order of magnitude. For area calculations, it was determined that no significant improvement could be made to the existing method used in most GIS systems.
It must be noted that scale of the maps was never mentioned. The shape of the polygon, the scale of the map, and the size of the pixel (or the image resolution) all affect the results of the perimeter calculation. The boundary of a geographic region exhibits a fractal like behaviour, and the resolution of the image plays an important role in the ability to resolve the complex shape of a typical vector boundary in raster space. If resolution is poor, then significant features of reality are not represented properly, and so results from the perimeter calculation degrade, regardless of the method. It was thought that scale was not an issue, since the algorithm was improving upon the ‘measuring stick’ used to calculate the perimeter, regardless of scale. For classified remotely sensed imagery, where no real ‘vector boundary’ exists since the image is acquired in its native raster format, this algorithm can provide better perimeter results by approximating the apparent vector boundaries imbedded within the image.
Future work, to improve the performance of the algorithm, can include the resolution issue, possibly using fractal techniques, and adjustments to the perimeter values associated with each 3x3 pixel matrix.
I would like to thank Dr. Doug King and Evan Seed for their valuable insight and discussions pertaining to the implementation of the algorithm. I am also indebted to Danny Patterson, Jason Fournier, Casey Trull, Hassan Eljaji, and Bruce Thomas for their assistance in performing the perimeter and area experiment using the other GIS packages. Thanks to Klaus Carter for his invaluable help in formatting this document into HTML.
Clarke, Keith, "Analytical and Computer Cartography", Englewood Cliffs, N.J.: PrenticeHall, Inc., 1995
Monmonier, Mark S., "Computer Assisted Cartography – Principles and Prospects", Englewood Cliffs, N.J.: PrenticeHall, Inc., 1982
Cromley, Robert G., "Digital Cartography", Englewood Cliffs, N.J.: PrenticeHall, Inc., 1992