arraystatslib.dox 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*! \page arraystatslib GRASS Array Statistics Library
  2. by Jean-Pierre Grimmeau, and GRASS Development Team (https://grass.osgeo.org)
  3. \tableofcontents
  4. \section discont The discont algorithm
  5. The discont algorithm systematically searches discontinuities in the slope
  6. of the cumulated frequencies curve, by approximating this curve through
  7. straight line segments whose vertices define the class breaks. This
  8. algorithm is inspired by techniques of automatic line generalization used
  9. in cartography [1]. The first approximation is a straight line which links
  10. the two end nodes of the curve. This line is then replaced by a
  11. two-segmented polyline whose central node is the point on the curve which
  12. is farthest from the preceding straight line. The point on the curve
  13. furthest from this new polyline is then chosen as a new node to create
  14. break up one of the two preceding segments, and so forth. The problem of
  15. the difference in terms of units between the two axes is solved by
  16. rescaling both amplitudes to an interval between 0 and 1. In the original
  17. algorithm, the process is stopped when the difference between the slopes
  18. of the two new segments is no longer significant. As the slope is the
  19. ratio between the frequency and the amplitude of the corresponding
  20. interval, i.e. its density, this effectively tests whether the frequencies
  21. of the two newly proposed classes are different from those obtained by
  22. simply distributing the sum of their frequencies amongst them in
  23. proportion to the class amplitudes.
  24. The algorithm described above creates class breaks which each are
  25. identical to a specific observation. It is thus necessary to decide to
  26. which class these observations should be attributed. It seems logical to
  27. prefer the densest, i.e. the one with the strongest slope. The
  28. automatisation of this method allows distinguishing classes with high
  29. frequencies from those with low frequencies, but also to introduce
  30. subtleties and to delimit transition classes.
  31. This method, inspired by Jenks' algorithm [2], provides a good analysis of
  32. the distribution, but not necessarily cartographically satisfying class
  33. breaks. It is thus up to the cartographer to judge whether all the
  34. identified breaks are cartographically useful (or whether some should be
  35. combined) and whether any of the class amplitudes is too large. In the
  36. latter case, the class should be subdivided into equal intervals
  37. (arithmetic progression) as by definition, the classes resulting from the
  38. discont algorithm have a homogeneous interior distribution. If the general
  39. distribution of the data is close to the normal distribution, it is also
  40. possible to combine equiprobable class breaks [3] , with their advantage
  41. of regularity, with discont class breaks for the extremes which often have
  42. large amplitudes when using equiprobable class breaks.
  43. [1] Douglas, D.H. & Peucker, T.K. (1973) Algorithms for the reduction
  44. of the number of points required to represent a digitized line or its
  45. caricature, The Canadian Cartographer, 10, pp. 112-122.
  46. [2] Jenks, G.F. (1963) Generalisation in statistical mapping, Annals
  47. of the Association of American Geographers, 53, pp.15-26.
  48. [3] Grimmeau, J.P. (1977) Cartographie par plages et discontinuités
  49. spatiales, Paris, Espace géographique, VI, pp.49-58.
  50. \section listOfFunctions List of functions
  51. - AS_option_to_algorithm()
  52. - AS_class_apply_algorithm()
  53. - AS_class_interval()
  54. - AS_class_quant()
  55. - AS_class_discont()
  56. - AS_class_stdev()
  57. - AS_class_equiprob()
  58. - AS_class_frequencies()
  59. - AS_eqdrt()
  60. - AS_basic_stats()
  61. \section arraystatslibAuthors Authors
  62. - Jean-Pierre Grimmeau at the Free University of Brussels (ULB)
  63. */