Alger. Allegan. Alpena. Antrim. Arenac. Baraga. Barry. Bay. Benzie. Berrien ..... Latimer. Le Flore. Lincoln. Logan. Love McClain. McCurtain. McIntosh...

0 downloads 0 Views 7MB Size

vorgelegt von

Christian Panse

Universität Konstanz Universität Konstanz

Universität Konstanz

Dezember 2004

Parts of this thesis were published in [80, 75, 55, 88].

Submitted: December 14, 2004 Defended: February 22, 2005 Published: September 29, 2005

1. Referent: Prof. Dr. Daniel A. Keim, Universit¨at Konstanz, Germany 2. Referent: Prof. Dr. Ulrik Brandes, Universit¨at Konstanz, Germany 3. Referent: Dr. Stephen C. North, AT&T Shannon Laboratory, New Jersey, USA

III

IV

Acknowledgements The work described in this thesis was done with the help of many collaborators and friends. First of all, I would like to thank my supervisor Prof. Dr. Daniel A. Keim, University of Konstanz, for introducing me into the highly interesting world of research and into the exciting field of cartograms. His continuous support and interest during my Ph.D. time in Konstanz and New Jersey and our fruitful discussions led to the success of this work. He always supported me to present my project on international conferences and doing so, I had the opportunity to meet colleagues and to exchange ideas with them. Dr. Stephen C. North, AT&T Shannon Lab., joined in supervising my work and I’m very grateful to him for his great ideas and his interest in my research. Whenever problems occurred he helped and supported me, no question remained unanswered. My colleague and valuable friend Dr. Roland Heilmann contributed considerably to the success of this thesis. His critical comments and discussions as well as our InfoVis 2004 publication were very important for this thesis. I would like to thank my friends and colleagues Svetlana Vinnik, Carmen Sanz Merino, J¨orn Schneidewind, Markus Wawryniuk, Alexander Hinneburg, Tobias Schreck, Andr´e Seifert, Benjamin Bustos, Hartmut Ziegler, Christian Goldberg, and Florian Mansmann for our discussions. My Ph.D. time in Konstanz is full of pleasant memories thanks to them. Especially, I would like to thank Mike Sips who never left me alone when we had a deadline or a technical problem. He was always ready for experiments and discussions. Thanks! To my colleague Dr. Simon Byers, I’m grateful for getting me in touch with all the script-languages. Dr. Eleftherios Koutsofios was very helpful especially in the beginning in organizing data and he kindly introduced me into powerwall-systems. Furthermore, I’m grateful to Prof. Dr. Ulrik Brandes for his readiness to help and his continuous encouragement and support. I would like to thank Prof. Dr. Thomas Seidl and Prof. Dr. Thomas M. Stricker for their help and advice in 2001 and 2002. Also, I would like to thank the anonymous reviewers from IEEE CGA, IEEE TVCG, and Palgrave’ Information Visualization as well as from the IEEE InfoVis. Their friendly comments were very helpful for me to improve my work. Furthermore, I would like to thank Prof. Dr. Waldo Tobler, who read many of our publications in an early stage, for his very helpful comments concerning our research. I’m very grateful to Oliver Maruhn for his kind technical help when I was at the other end of this earth and in answering all my technical questions. Special thanks to Daniel‘s wife Ilse and their children who gave me a home and a dear family during my stay in New Jersey. I would like to thank my parents for encouraging me doing a Ph.D. and for their support during these years. The most particular thanks go to my wife Anita whose patience, encouragement, and help during my Ph.D. time made it possible to finish this work.

V

VI

Abstract Cartograms are a well-known technique for showing geography-related statistical information, such as demographic and epidemiological data. The idea is to distort a map by resizing its regions according to a statistical parameter, but in a way that keeps the map recognizable. In this thesis, we formally define a family of cartogram drawing problems. We show that even simple variants are unsolvable in the general case. Furthermore, we propose two methods of cartogram generation. Both algorithms cover a wide range of user requirements which can be directly maintained by the user. The first algorithm strictly retains the topology and shape of the map regions while minimizing the area error. The second algorithm approximates the map regions by rectangles focusing on an exact area approach and minimizing shape, topology and relative position of the map regions. Both algorithms are fast enough to be used in interactive systems which is important to be used as information visualization technique. Application experiments show that the proposed algorithms can compute high-quality cartograms in few seconds, even for large maps with a high number of polygons. Also, our algorithms were designed for a dynamic visualization, for which we need an algorithm that recalculates a cartogram in a few seconds. None of the algorithms published before provides an adequate performance with an acceptable level of quality for this application. Additional application examples of the two new algorithms introduced in this work help to demonstrate their potential.

VII

VIII

Zusammenfassung Die Wissenschaft und Kunst, Karten zu erstellen ist so alt wie die Menschheit. Erste einfache Landkarten datieren bis in die Steinzeit zur¨uck. Die Kartographie ist von immenser Bedeutung f¨ur die Entwicklung der Menschheit gewesen, Karten sind ein grundlegendes Werkzeug f¨ur die Entdeckung der Erde und des Weltalls. Neben diesen traditionellen Karten, die bedeutsam f¨ur die Navigation sind, existieren sogenannte Kartogramme. Dies sind abstrakte Karten, die neben der geographischen noch zus¨atzliche Informationen visualisieren, z.B. statistische Werte. Dies ist von großer Bedeutung: Bei traditionellen Karten entsprechen die Fl¨achen der Regionen der geographischen Fl¨ache. Diese stehen jedoch in keinerlei Zusammenhang mit regionen-verkn¨upften statistischen Werten, z.B. bei der Darstellung von Bev¨olkerungszahlen. Sehr große Gebiete k¨onnen sehr kleine statistische Werte haben und umgekehrt, z.B. niedrige oder hohe Bev¨olkerungsdaten. Bei einem Kartogramm werden die Fl¨achen entsprechend den statistischen Werten verzerrt, d.h. f¨ur das Beispiel eines Bev¨olkerungskartogramms, daß d¨unn besiedelte Gebiete sehr klein werden und dicht besiedelte Gebiete sehr groß. Dadurch werden Fehlinterpretationen vermieden, das Verst¨andnis erleichtert. Um Kartogramme effektiv, d.h. leicht verst¨andlich zu gestalten, ist es essentiell, daß der Mensch die dargestellten Daten leicht verstehen kann und mit den urspr¨unglichen geographischen Daten in Verbindung bringen kann. Dieses Verst¨andnis ist wiederum abh¨angig davon, daß die urspr¨ungliche Form, die Lage der einzelnen Gebiete zueinander sowie der Zusammenhang der Gebiete m¨oglichst gut erhalten wird. Im allgemeinen Fall ist dieses Problem nicht l¨osbar, was zu Beginn dieser Arbeit gezeigt wird. Auf¨ grund der Uberlegung, daß das Problem vermutlich nicht in Polynomialzeit l¨osbar ist, wird es in dieser Arbeit als Optimierungsproblem behandelt. Der Hauptbeitrag der vorliegenden Dissertation besteht darin, daß zwei neuartige Algorithmen zur Berechnung von Kartogrammen entwickelt wurden. Der erste Algorithmus wurde CartoDraw genannt. Der Vorteil dieses Algorithmus liegt darin, daß die Topologie und Form der Ausgangskarte erhalten wird. Dabei wird versucht, den Fl¨achenfehler, d.h. die Abweichung der Fl¨achen des Kartogramms von den statistischen Werten entsprechenden Fl¨achen, zu minimieren. Naturgem¨aß kann der Fl¨achenfehler nicht restlos beseitigt werden. Diesen Nachteil umgeht der zweite in dieser Arbeit vorgestellte Algorithmus mit der Bezeichnung RecMap. Dabei wird jede Kartenregion durch ein Rechteck ersetzt, dadurch wird ein Fl¨achenfehler vollst¨andig vermieden, bei Verlust der urspr¨unglichen Form. Der Topologiefehler wird minimiert. Beide Algorithmen wurden implementiert. Die Fl¨achenfehler sind im Vergleich mit bereits vorhandenen Algorithmen a¨ hnlich oder kleiner, die ben¨otigte Rechenzeit ist im Vergleich um Gr¨oßenordnungen kleiner. In einer visuellen Gegen¨uberstellung zu existierenden Methoden generieren die vorgestellten Verfahren vergleichbare oder bessere Kartogramme. Welcher der beiden Algorithmen zu bevorzugen ist, h¨angt von der Zielsetzung ab. Die Anwendung von CartoDraw und RecMap wird anhand von zahlreichen Beispielen im Kapitel Applications gezeigt. Die vorliegende Arbeit bietet eine Vielzahl von neuen M¨oglichkeiten zur Visualisierung geographiebezogener Daten mit Hilfe von Kartogrammen.

IX

X

Contents

1 2

Introduction InfoVis Scope, Techniques and Opportunities for Geovisualization

2.1 2.2 2.3 2.4 2.5 2.6 2.7 3

7

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visual Exploration Paradigm . . . . . . . . . . . . . . . . . . . . . . . . . . . Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Phenomena of Geo-Related Visualization . . . . . . . . . . . . . . . . . . . . PixelMap – A Pixel Based Visualization Technique for Large Geo-Related Data High Resolution Display Walls . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

Cartogram Drawing

3.1 3.2 3.3 3.4 3.5

3.6 4

3

Problem Definition . . . . . . . . . . . . . Solvability and Complexity of the Problem Related Work . . . . . . . . . . . . . . . . Important Observations . . . . . . . . . . . Map Simplification . . . . . . . . . . . . . 3.5.1 Introduction . . . . . . . . . . . . . 3.5.2 Reduction of Global Polygon . . . 3.5.3 Reduction of Inner Polygons . . . . Conclusion . . . . . . . . . . . . . . . . .

19

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

4.1 4.2

4.3

4.4

4.5

7 7 8 12 13 16 18

Introduction . . . . . . . . . . . . . . . . . . . . . . . . Problem Definition . . . . . . . . . . . . . . . . . . . . 4.2.1 Constraints . . . . . . . . . . . . . . . . . . . . 4.2.2 Objective Functions . . . . . . . . . . . . . . . 4.2.3 Formulation of the Optimization Problem . . . . The CartoDraw Algorithm . . . . . . . . . . . . . . . . 4.3.1 Basic Idea . . . . . . . . . . . . . . . . . . . . . 4.3.2 Scanline Algorithm . . . . . . . . . . . . . . . . 4.3.3 The CartoDraw Main Algorithm . . . . . . . . . 4.3.4 Automatic versus Interactive Scanline Placement 4.3.5 Evaluation of the Algorithm . . . . . . . . . . . M-CartoDraw–Using Medial Axes as Skeleton . . . . . 4.4.1 Basic Idea . . . . . . . . . . . . . . . . . . . . . 4.4.2 The M-CartoDraw Main Algorithm . . . . . . . 4.4.3 Robustness and Stability . . . . . . . . . . . . . 4.4.4 Extensions of the Cartogram Algorithm . . . . . 4.4.5 Evaluation of the Algorithm . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

19 21 24 24 26 26 26 27 28 31

31 31 31 31 33 34 34 34 35 36 37 41 42 43 45 45 45 47

XI

Contents 5

RecMap: An Algorithm for Generating Rectangular Map Approximations

5.1 5.2

5.3

5.4

5.5 6

6.2

6.3

6.4 6.5

6.6

XII

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

49

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

The Visual Points Solution . . . . . . . . . . . . . . . 6.1.1 The VP-Carto Algorithm . . . . . . . . . . . . 6.1.2 Generating Cartograms with VP-Carto . . . . 6.1.3 Efficiency and Effectiveness . . . . . . . . . . HistoScale . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Introduction . . . . . . . . . . . . . . . . . . . 6.2.2 HistoScale Approach . . . . . . . . . . . . . . 6.2.3 Evaluation . . . . . . . . . . . . . . . . . . . HistoMap: A Combination of HistoScale and RecMap 6.3.1 Problem Definition . . . . . . . . . . . . . . . 6.3.2 Solution . . . . . . . . . . . . . . . . . . . . . 6.3.3 An Example . . . . . . . . . . . . . . . . . . Combining PixelMap and RecMap . . . . . . . . . . . Texture Cartograms . . . . . . . . . . . . . . . . . . . 6.5.1 Introduction . . . . . . . . . . . . . . . . . . . 6.5.2 The Algorithm . . . . . . . . . . . . . . . . . 6.5.3 Conclusion . . . . . . . . . . . . . . . . . . . CartoDraw-System . . . . . . . . . . . . . . . . . . . 6.6.1 The Graphical User Interface . . . . . . . . . . 6.6.2 Extensions . . . . . . . . . . . . . . . . . . . 6.6.3 System Portability . . . . . . . . . . . . . . . 6.6.4 Outlook . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

Comparison of the Quality with Previous Methods . . . . . . . Overall Effectiveness and Efficiency Comparison . . . . . . . Application of Self-Generated Data . . . . . . . . . . . . . . Application – Geographic Related Data . . . . . . . . . . . . 7.4.1 Environmental and Health Data . . . . . . . . . . . . 7.4.2 U.S. Election Cartograms . . . . . . . . . . . . . . . 7.4.3 Visualizing Sequences – AT&T Call Volume Analysis 7.4.4 Texture Mapping Cartograms . . . . . . . . . . . . . 7.4.5 Population Cartograms . . . . . . . . . . . . . . . . .

Conclusions

49 51 52 52 54 54 55 58 62 62 65 65 69

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

Evaluation and Application

7.1 7.2 7.3 7.4

8

. . . . . . . . . . . .

Extensions and Combinations

6.1

7

Introduction . . . . . . . . . . . . . . . . . . . . Problem Definition . . . . . . . . . . . . . . . . 5.2.1 Constraints . . . . . . . . . . . . . . . . 5.2.2 Objective Function . . . . . . . . . . . . 5.2.3 Formulation of the Optimization Problem The RecMap Algorithm . . . . . . . . . . . . . . 5.3.1 Variant 1 . . . . . . . . . . . . . . . . . 5.3.2 Variant 2 . . . . . . . . . . . . . . . . . Evaluation of the Algorithm . . . . . . . . . . . 5.4.1 Effectiveness and Efficiency . . . . . . . 5.4.2 Discussion . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

69 69 69 71 74 74 74 74 78 78 79 79 80 81 81 81 82 85 85 85 85 85 89

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. 89 . 92 . 93 . 95 . 95 . 98 . 105 . 106 . 108 121

Contents A Measuring the Shape Error by Fourier Transformation

123

B Color Maps Employed

127

C Scripts and Tools for Generating Cartograms

129

D Symbols

135

XIII

Contents

XIV

List of Tables

3.1 3.2 3.3

Possible constraints for cartogram drawing . . . . . . . . . . . . . . . . . . . . . . . . . Global polygon constraints for cartogram drawing . . . . . . . . . . . . . . . . . . . . . Number of segments, nodes, and polygons for some maps used in this thesis. . . . . . .

21 25 26

7.1 7.2

Time complexity of introduced cartogram methods . . . . . . . . . . . . . . . . . . . . Run time of computed cartograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92 93

XV

List of Tables

XVI

List of Algorithms

1 2

Reduction of global vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reduction of interior vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28 29

3 4 5

Scanline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CartoDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M-CartoDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 36 44

6 7 8

Genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The RecMap MP1 construction procedure . . . . . . . . . . . . . . . . . . . . . . . . . The RecMap MP2 construction procedure . . . . . . . . . . . . . . . . . . . . . . . . .

55 58 61

9 10 11

VPCarto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HistoScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cartogram texture mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70 75 83

XVII

List of Algorithms

XVIII

List of Figures

1.1 1.2

Election 2004 analysis map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Election 2004 analysis cartogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8

1D data & 2D data . . . . . . . . . . . . . . . . . Multi-dimensional data . . . . . . . . . . . . . . . Text & hypertext . . . . . . . . . . . . . . . . . . Hierarchies & graphs . . . . . . . . . . . . . . . . Pixel overlap on varying screen resolution . . . . . PixelMap . . . . . . . . . . . . . . . . . . . . . . High resolution walls at AT&T . . . . . . . . . . . High resolution i-wall at the University of Konstanz

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

8 9 10 10 13 15 16 17

3.1 3.2 3.3 3.4 3.5 3.6

Cyclic order of edges . . . . . . . . . . Checker board example . . . . . . . . . Impossible cartogram drawing problem Cartogram drawing methods . . . . . . Mesh reduction significance function . . U.S. map simplification . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

20 20 22 23 27 30

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19

Region of the objective function . . . . . . . . . . . . . . . . . . . Scanline algorithm notations and overview . . . . . . . . . . . . . . A demonstration of the scanline idea . . . . . . . . . . . . . . . . . Automatically versus interactively placed scanlines . . . . . . . . . Cartogram construction steps with automatically placed scanlines . Cartogram construction steps with interactively placed scanlines . . Comparison of cartogram drawing algorithms . . . . . . . . . . . . Area error and efficiency comparison . . . . . . . . . . . . . . . . Results of CartoDraw with automatically and interactively scanlines Shape error versus area error comparison . . . . . . . . . . . . . . Comparison of automatic and interactive scanlines . . . . . . . . . Efficiency tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . Medial axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Idea of the cartogram algorithm . . . . . . . . . . . . . . . . . . . M-CartoDraw construction series . . . . . . . . . . . . . . . . . . Extensions of the cartogram algorithm . . . . . . . . . . . . . . . . U.S. telephone call volume data . . . . . . . . . . . . . . . . . . . Effectiveness and efficiency . . . . . . . . . . . . . . . . . . . . . . State wise plotted shape error versus area error . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

33 34 36 37 38 38 38 39 39 40 40 41 42 43 44 45 46 46 47

5.1 5.2

Hand-made value–by–area cartogram by Erwin Raisz . . . . . . . . . . . . . . . . . . . Related work on RecMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49 50

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

4 5

XIX

List of Figures

XX

5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14

Adjacency graphs of the U.S. . . . . . . . . . . . . . . . . . . . . Cartograms resulting from different weights for the components of A demonstration of RecMap MP1’ construction . . . . . . . . . . RecMap MP2 construction sequence . . . . . . . . . . . . . . . . Improvement of feasible solutions for (MP2) . . . . . . . . . . . Scatterplot of RecMap’s objective functions – U.S. data . . . . . . Scatterplot matrix of RecMap MP2 objective functions – U.S. map Analysis of the genetic based meta heuristic . . . . . . . . . . . . Results of RecMap for the U.S. population data . . . . . . . . . . RecMap MP2 on a regular 3 × 3 checkerboard . . . . . . . . . . . RecMap on synthetic 7 × 7 checkerboard map . . . . . . . . . . . Time versus number of polygon comparison . . . . . . . . . . . .

. . fb . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

52 56 59 62 63 64 65 66 66 67 67 68

6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13

Original VP-Carto algorithm . . . VP-Carto algorithm for cartograms Insertion strategies . . . . . . . . Efficiency and effectiveness results HistoScale-computation steps . . . Time comparison . . . . . . . . . HistoMap-SPAM . . . . . . . . . PixelMap-cartogram of California Demonstration of Texture Mapping U.S. texture relief . . . . . . . . . CartoDraw-System . . . . . . . . RecMap – ESRI ArcMap plugin . System time performance . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

69 70 72 73 76 77 79 80 82 82 86 87 87

7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 7.23

Comparison with related contiguous cartogram drawing methods. . . . . . Comparison with related cartogram drawing methods. . . . . . . . . . . . . RecMap the map regions were approximated by rectangles. . . . . . . . . . Area-error versus time comparison . . . . . . . . . . . . . . . . . . . . . . Checker board examples . . . . . . . . . . . . . . . . . . . . . . . . . . . U.S. endangered species analysis using M-CartoDraw . . . . . . . . . . . . World SARS pseudo-cartogram using HistoScale . . . . . . . . . . . . . . World population pseudo-cartogram using HistoScale . . . . . . . . . . . . U.S. election 2000 analysis . . . . . . . . . . . . . . . . . . . . . . . . . . U.S. 2004 election analysis using RecMap MP2 on state level . . . . . . . . U.S. 2004 election analysis using RecMap MP1 on county level (two colors) U.S. 2004 election analysis using RecMap MP1 on county level . . . . . . U.S. 2004 election analysis using RecMap MP2 on county level (two colors) U.S. 2004 election analysis using RecMap MP2 on county level . . . . . . U.S. 2004 election analysis using CartoDraw on county level (two colors) . Analyzing long distance call volume data using CartoDraw . . . . . . . . . AT&T call volume analysis . . . . . . . . . . . . . . . . . . . . . . . . . . U.S. state texture map cartograms . . . . . . . . . . . . . . . . . . . . . . New York texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U.S. state census cartogram using CartoDraw . . . . . . . . . . . . . . . . Population cartogram of middle Europe (CartoDraw) . . . . . . . . . . . . Population trends over the last 100 years . . . . . . . . . . . . . . . . . . . U.S. county population quantile plot . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 105 106 107 108 108 109 110

. . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

List of Figures 7.24 7.25 7.26 7.27 7.28 7.29 7.30 7.31 7.32 7.33

U.S. census 2000 county population cartogram using M-CartoDraw – example 1 U.S. census 2000 county population cartogram using M-CartoDraw – example 2 Cartogram on state and county level; only state poly lines were drawn. . . . . . . German ,,Kreis”-level population cartogram . . . . . . . . . . . . . . . . . . . . U.S. county population cartogram using RecMap (MP1) . . . . . . . . . . . . . U.S. county population cartogram using RecMap (MP2) . . . . . . . . . . . . . California county population cartogram using RecMap . . . . . . . . . . . . . . New York U.S. census 2000 county population cartogram using RecMap . . . . . Texas county population cartogram using RecMap . . . . . . . . . . . . . . . . . U.S. population cartogram using M-CartoDraw and RecMap on various levels . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

111 112 113 114 115 116 117 118 119 120

8.1

CartoDraw on a PDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

A.1 Approximation of a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 A.2 Curvature transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 B.1 Color maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

1

List of Figures

2

1 Introduction Maps are as old as humans. First maps were probably manufactured using animal bones and used by humans in the Stone Age [61, page 63]. The so far oldest known map of the cosmos, was found on a presumably 3600 years old bronze plate famous today as the Sky Disc of Nebra [98]. This Sky Disc was used to predict sowing and harvest for several hundred years. During the evolution of mankind the art of drawing maps became more and more sophisticated. Maps were and still are probably among the most important tools for the discovery of the earth and the universe. Maps are abstract descriptions of things which are directly linked to a spatial position, e.g., sky maps, land-covering maps, or constructional maps. Beside traditional maps, which are used for navigation, there exist a large amount of abstract maps which visualize additional, often statistical, information on the map. The Greek and Romans called them cartograms. There exist several kinds of cartograms. Some of them are mentioned below. Timetable cartograms are known from the London or New York subway [115]. The subway lines are straightened and stations are drawn as points. Traffic-flow maps are simplified street maps where the line width corresponds to the number of vehicles passing the streets. Migration maps show migration of people during a time period by arrows on the map. Isochrones are used to illustrate the travel time from one to several locations on a map. Destinations with the same travel time are connected by lines. Route maps are used to describe the path from a starting to a target location an a map. On Choropleth maps the regions are colored lighter or darker to express the statistical value. If the areas of the maps regions are proportional to the statistical value, the maps are called value-by-area cartograms. However, these maps were simplified because of two reasons. First, simplified maps are easier to draw and second, they are easier to understand and to use by humans. On such visualizations only those things are drawn which are important for the understanding. This dissertation deals with value-by-area cartograms. When mentioning cartograms in this thesis we will always consider value-by-area cartograms. For a cartogram to be effective, a human must be able to understand quickly the displayed data and relate it to the original geographical model. Recognition in cartograms depends on preserving basic properties, such as shape, orientation, and contiguity. This, however, is difficult to achieve in the general case because it is impossible to retain the original map’s topology. Because the generation of contiguous cartograms by simultaneous optimization of these objectives is difficult, all currently available algorithms are very time-consuming. Let’s consider a potential application example. Supposed we have a map as the U.S. continental map and the results of the 2004 U.S. presidential election should be visualized. The political map on figure 1.1 is an often-used visualization of the election results. In this conventional choropleth map, each state is colored according to the winner of the vote, A drawback of that visualization is that the area is not proportional to the number of electors and it appears that the red party got a big majority. For completeness, this type of visualization needs additional information (e.g. as scatterplot or table) linked to the map regions. Instead, by using cartograms the map can be distorted in a way that the area of each state represents the number of electors and therefore it can be seen that the U.S. election in 2004 was a head-to-head race between both candidates. Figure 1.2 shows such a cartogram. The application of cartograms is not restricted to visualization of election data. Example applications include population demographics [120] and epidemiology [54]. The goal of this work is to display continuously the behavior of an input parameter, in particular, its deviation from an expected value. Our aim is to create dynamic cartograms for on-line network monitoring, such as display of traffic or transaction event levels by country, state, and local regions. This requires a very fast cartogram generation, and to our knowledge there is currently no competing algorithm with adequate speed for that.

3

1 Introduction

North Dakota

Washington

Minnesota

[3; 36; 63]

[10; 52; 47]

[11; 53; 46]

Michigan

Montana Idaho

[3; 29; 69]

[3; 39; 59]

Maine

Wisconsin

[4; 29; 69]

[4; 53; 45]

[10; 50; 49]

Oregon

Michigan

[7; 53; 47]

[17; 51; 48]

South Dakota

Vermont New Hampshire

[3; 38; 61]

[3; 59; 39]

New York

Iowa

Nebraska

[31; 58; 40] Connecticut

[7; 49; 50]

[5; 32; 67]

Utah

Nevada

Kansas

[9; 46; 53]

[21; 55; 44]

[11; 46; 54]

Maryland

West Virginia

Rhode Island [12; 62; 37] [4; 60; 39]

Delaware

District of Columbia

[5; 43; 56]

[11; 39; 60]

Missouri

California

Massachusetts

[7; 54; 44]

New Jersey [15; 53; 46]

Indiana

[6; 36; 63]

[5; 26; 72]

[5; 48; 51]

[21; 51; 49]

[20; 49; 51]

Illinois

Colorado

Pennsylvania

Ohio

[4; 50; 49]

[3; 53; 46]

[3; 90; 9]

[10; 56; 43]

Kentucky

Virginia

[8; 40; 60]

[13; 46; 54]

Tennessee

[55; 54; 45]

[11; 43; 57]

Arizona

Oklahoma

Arkansas

[10; 44; 55]

[7; 34; 66]

[6; 45; 54]

North Carolina [15; 43; 57] South Carolina [8; 41; 58]

New Mexico [5; 49; 50]

Georgia

Mississippi

Texas [34; 38; 61]

[6; 40; 60]

Alabama

[15; 41; 59]

[9; 37; 63]

Louisiana [9; 42; 57]

Florida [27; 47; 52]

(a) States voted for Kerry

States voted for Bush

California

Texas Florida Ohio North Carolina Georgia Virginia Tennessee Missouri Indiana Arizona Louisiana Colorado Alabama South Carolina Kentucky Oklahoma Iowa Mississippi Kansas Arkansas West Virginia Utah New Mexico Nevada Nebraska Idaho Wyoming South Dakota North Dakota Montana Alaska

●

New York

●

Pennsylvania

●

Illinois

●

Michigan

●

New Jersey

●

Massachusetts

●

Washington

●

Wisconsin

●

Minnesota

●

Maryland

●

Oregon

●

Connecticut

●

Rhode Island

●

New Hampshire

●

Maine

●

Hawaii

●

Vermont

●

D.C.

●

Delaware

●

0

10

20

30

40

50

0

Number of Electoral Voters

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

10

20

30

40

50

Number of Electoral Voters

(b)

Figure 1.1: Election 2004 analysis – Political map 1.1(a) and categorized and sorted election results 1.1(b). Numbers show [numbers of electors, percentage of votes for Kerry, percentage of votes for Bush]. Cartographers and geographers have used cartograms long before computers were available to make displays [106, 107, 58]. References date back as far as 1868 (see remarks on Levasseur in [47] on page 355). A short historical overview can be found in [27]. The basic idea of a cartogram is to distort a map by resizing its regions by some geographically-related parameter. Because cartograms are difficult to make manually, the study of algorithms to draw them is of high interest. The main contribution of this work is the design of two completely new algorithms for computing contiguous cartograms based on an observation of existing methods. The first method, called CartoDraw, retains the topology by minimizing the area error while on the second approach, named RecMap, each map region is approximated by a rectangle to avoid the area error. Both algorithms were implemented and various application examples show their functionality. Beside that the area error and the computational time is less or similar to the other methods, a visual comparison with existing cartogram construction techniques shows that our algorithms compute comparable if not better cartograms. Additionally, we modified and combined our algorithms with some other techniques, which creates new opportunities for visualizing geo-related data. The dissertation is organized as follows: In chapter 2, we expose the classification in the information visualization field. We study some geographic phenomena and we shortly introduce a pixel based visu-

4

Michigan

Minnesota North Dakota

[17; 51; 48]

[10; 52; 47]

[3; 36; 63]

Vermont

Wisconsin

Washington

[3; 59; 39]

Michigan

[10; 50; 49]

Montana Idaho [3; 39; 59]

Maine

New Hampshire

[17; 51; 48]

[4; 53; 45]

[4; 50; 49]

South Dakota

[4; 29; 69]

[11; 53; 46]

[3; 38; 61]

Iowa Nebraska

Oregon

[5; 32; 67]

New York

[7; 49; 50]

[7; 53; 47]

[31; 58; 40]

Colorado

Utah Nevada

[9; 46; 53]

Kansas Illinois

[5; 26; 72]

[5; 48; 51]

Pennsylvania

Ohio

[6; 36; 63]

[21; 51; 49]

Connecticut

[20; 49; 51]

[21; 55; 44]

Massachusetts [12; 62; 37]

[7; 54; 44]

Rhode Island [4; 60; 39]

Missouri

Indiana

[11; 46; 54]

[11; 39; 60]

New Jersey

West Virginia

[15; 53; 46] [5; 43; 56]

Kentucky

Oklahoma

Maryland

[8; 40; 60]

District of Columbia

[3; 90; 9]

[7; 34; 66]

[10; 56; 43]

Arkansas

[10; 44; 55] New Mexico

California [55; 54; 45]

Virginia

Tennessee

Arizona

[11; 43; 57]

[6; 45; 54]

Delaware [3; 53; 46]

[13; 46; 54]

[5; 49; 50]

Texas [34; 38; 61]

North Carolina Mississippi

[15; 43; 57] South Carolina

[6; 40; 60]

[8; 41; 58]

Louisiana

Alabama

Georgia

[9; 37; 63]

[15; 41; 59]

[9; 42; 57]

Florida [27; 47; 52]

Figure 1.2: Election 2004 analysis cartogram – The area corresponds to the number of electors. The shape of the states is clearly recognizable. Numbers show [numbers of electors, percentage of votes for Kerry, percentage of votes for Bush]. alization for geo-related data called PixelMap. The chapter finishes with a description of high resolution display wall design at the University of Konstanz. Chapter 3 describes what cartogram drawing is all about, explores the problems to be faced, and reviews previous work on cartogram drawing. Then we define several variants of the problem and show that even simple ones are unsolvable in the general case. Because it is not known, if the cartogram problem can be solved in polynomial time, we expect that feasible variants are likely to be N P -hard problems. Therefore, heuristics are necessary to solve the problem. Followed by observations on previous cartogram drawing, we introduce a map simplification technique which is used as pre-processing step of our cartogram algorithms. Chapters 4, 5, and 6 include the main contribution of this thesis. Based on some important observations in chapter 3, in chapter 4 we develop the CartoDraw heuristic which uses scanline-based local repositioning of vertices with an explicit shape error control function to preserve both the global shape and the shape of interior polygons while providing sufficient speed for dynamic cartograms drawing. In the following chapter a genetic based algorithm is introduced which approximates each map region by a rectangle, called RecMap. In chapter 6 we give a description of a various extensions and combinations of cartogram techniques. Furthermore, we describe the design of the CartoDraw-System which is used as a graphical user interface (GUI). In chapter 7, we present a number of application examples and provide a detailed comparison with previous approaches, showing the effectiveness and efficiency of our proposed algorithms. Chapter 8 summarizes our approaches and discusses open issues. All chapters which introduce new methods for computing cartograms, i.e. 4, 5, and 6 will have there own evaluation part. The appendix chapters provide related work to this thesis.

5

1 Introduction

6

2 Information Visualization: Scope, Techniques and Opportunities for Geovisualization 2.1 Introduction Geovisualization deals with many disciplines including cartography, scientific visualization, image analysis, information visualization and exploratory data analysis [33, see chapter 1] and [94]. Cartography is the art and science of drawing maps [107, page 293] and this thesis covers most of it. A map is a visualization of points, lines, or areas. The maps are used in many ways e.g., they can be static or dynamic. Dynamic maps are often used in exploratory data analysis. Using maps can be useful for the data exploration because e.g., maps can visualize information at location, they can show distribution of spatial pattern, or it is possible to compare pattern in two or more maps. The information to be visualized are often massive data generated from sensors, e.g., radio telescopes [100] or genome data base [117], transaction processes, e.g., ecommerce data, or even feature vectors of real world objects, and they are often stored as tables in log files or data bases. Beside time this data is often referenced by a geographic location. Both, time and space can not easily be exchanged [9] which make them often difficult to visualize. This chapter touches several areas of geovisualization. It starts with an overview of information visualization. It explains the phenomena of geo-related visualization, shows one example technique for visualizing point data, and ends with a demonstration of a device for data exploration. Parts of this chapter were published in [88, 87].

2.2 Visual Exploration Paradigm Visual data exploration usually follows the Information Seeking Mantra [110] which is a three-step process: Overview first, zoom and filter, and then details-on-demand. First, the user needs to get an overview of the data. In the overview, the user identifies interesting patterns or groups in the data and focuses on one or more of them. For analyzing these patterns, the user needs to drill-down and access details of the data. Visualization technology may be used for all three steps of the data exploration process. Visualization techniques are useful for showing an overview of the data, allowing the user to identify interesting subsets. In this step, it is important to keep the overview visualization while focusing on the subset using another visualization. An alternative is to distort the overview visualization in order to focus on the interesting subsets. This can be performed by dedicating a larger percentage of the display to the interesting subsets while decreasing screen space for uninteresting data. The visualization technology does not only provide visualization techniques for all three steps but also bridges the gaps between them.

7

2 InfoVis Scope, Techniques and Opportunities for Geovisualization

2.3 Classification There are a number of well-known techniques for visualizing large data sets, such as x-y plots, line plots, and histograms. These techniques are useful for data exploration but are limited to relatively small and low dimensional data sets. Over the last years, a large number of novel information visualization techniques (see [16, 130, 114]) have been developed, allowing visualizations of multidimensional data sets without inherent two- or three-dimensional semantics. Keim [70] classifies the techniques according to three criteria: the data to be visualized, the visualization technique, and the interaction technique used.

16 14 12 10 8 2

4

6

Monthly aggregate utility power failure

18

20

22

Powerwave 3kVA USV - utility power failure - DBVIS group server facilities D2

Q4 2001

Q1

Q2

Q3 2002

Q4

Q1

Q2

Q3 2003

Q4

Q1

Q2

Q3

Q4

2004

(a) 1D data

(b) 2D data

Figure 2.1: Data type to be visualized. The data type to be visualized [110] may be: • One-dimensional data - such as temporal (time-series) data One-dimensional data usually has one dense dimension. A typical example of one-dimensional data is temporal data. Note that with each point of time, one or multiple data values may be associated. An example are time series of stock prices. Figure 2.1(a) shows the accumulated monthly number of utility power failure of an USV system during four years at the University of Konstanz. • Two-dimensional data - such as geographical maps Two-dimensional data usually has two dense dimensions. A typical example is geographical data, where the two distinct dimensions are longitude and latitude. Longitude and Latitude describe locations on a 3D surface and some transformation is required to project the relationships between locations specified in this way on a plane. Besides, depending upon the cartography used, various characteristics of the relationships between locations are either preserved or lost. After the projection, the geographical data can be stored as two-dimensional data with X-Y-dimensions. X-Y-plots are a typical method for showing two-dimensional data and maps are a special type of X-Y-plot for showing geographical data. Figure 2.1(b) displays a world map with 600 “world wide web accesses” to the CartoDraw web site [76] during 6 months. • Multi-dimensional data - such as relational tables Many data sets consist of more than three attributes and therefore do not allow a simple visualization as 2-dimensional or 3-dimensional plots. Examples of multidimensional (or multivariate) data are tables from relational databases, which often have tens to hundreds of columns (or attributes). Since there is no simple mapping of the attributes to the two dimensions of the screen, more sophisticated visualization techniques are needed, such as parallel coordinates[59], or e.g. the scatterplot matrix in figure 2.2. The figure shows 3085 items of the continental U.S. election 2004 data where the attributes are (longitude, latitude, area, vote% (for Kerry), #electors). • Text & hypertext - such as news articles and web documents Not all data types can be described in terms of dimensionality. In the age of the World Wide Web,

8

2.3 Classification

longitude

35

40

M

H

45

20

M

60

80

M

H

M

H

B

H B

B

B

BM

−120

B

40

−80

30

−100

25

40

45

latitude M

M B

M

30

35

B

H

H

H

5000

25

H

H

M

H

H M

BM

80

B

B

BM

0 1000

3000

area

H

vote% (for Kerry) B

B

B

MH

M

60

B

M

H

M

H

2500000

20

40

H

B −120

−100

H

M −80

H

BM

H

M B 0 1000

M 3000

5000

B

0

H

1000000

#electors

0

1000000

2500000

Figure 2.2: Data type to be visualized: multi-dimensional data – color brushing: red - Bush; blue - Kerry – label brushing: B - Boulder, Colorado; H - Harris, Texas; M - Morris, New Jersey one important data type is text and hypertext, as well as multimedia web page contents. These data types differ in that they cannot be easily described by numbers, and therefore most of the standard visualization techniques cannot be applied. In most cases, a transformation of the data into description vectors is necessary before visualization techniques can be used. An example for a simple transformation is word counting which is often combined with a principal component analysis (PCA) [40, 91] or multidimensional scaling (MDS) [123, 12] to reduce the dimensionality to two or three. Figure 2.3 is a result of a MDS of all keywords in this thesis which have a frequency of more than twenty. A distance matrix was computed using the minimal distance between the text positions of each pair of words. The size of the words is scaled according to their inferred relevance and the distances between each pair of the plot reflect the connectivity of the research keywords. The terrain color map visualizes a 2D kernel density estimation[128] of the word location. • Hierarchies & graphs - such as network data Data records often have some relationship to other pieces of information. These relationships may be ordered, hierarchical, or arbitrary networks of relations. Graphs are widely used to represent such interdependencies [6]. A graph consists of a set of objects, called nodes, and connections between these objects, called edges or links. Examples are the e-mail interrelationships among people, their shopping behavior, the file structure of the hard disk or the hyper links in the world wide web. The graph in figure 2.4 reflects 1,224,733 IP addresses and 2,093,194 IP links, (immediately adjacent addresses in a traceroute-like path) of skitter data from 21 monitors probing approximately 932,000 destinations spread across over 75,000 (70%) of globally routable network prefixes [14].

9

2 InfoVis Scope, Techniques and Opportunities for Geovisualization

Figure 2.3: Data type to be visualized: text & hypertext

c Figure 2.4: Data type to be visualized: Hierarchies & graphs (Courtesy of CAIDA, University of California, 2000).

10

2.3 Classification There are a large number of visualization techniques that can be used for visualizing data. In addition to standard 2D/3D-techniques such as X-Y (X-Y-Z) plots, bar charts, line graphs, and simple maps, there are a number of more sophisticated classes of visualization techniques. The classes correspond to basic visualization principles that may be combined in order to implement a specific visualization system. The visualization technique are: • Geometrically-Transformed Displays - aim at finding “interesting” transformations of multidimensional data sets. This class of geometric display methods includes techniques from exploratory statistics such as scatterplot matrices [23] and techniques that can be subsumed under the term “projection pursuit” [56]. • Iconic Displays - The idea is to map the attribute values of a multi-dimensional data item to the features of an icon. The most famous techniques are Chernoff faces [19] • Dense Pixel Displays - The basic idea of dense pixel techniques is to map each dimension value to a colored pixel and group the pixels belonging to each dimension into adjacent areas. • Ordering of Dimensions - The problem is often how to order the dimensions of multidimensional data in the visualization technique [69]. • Stacked Displays - Stacked display techniques are tailored to present data partitioned in a hierarchical fashion. In the case of multi-dimensional data, the data dimensions to be used for partitioning the data and building the hierarchy have to be selected appropriately. An example of a stacked display technique is Dimensional Stacking [92]. In addition to the visualization technique, for an effective data exploration it is necessary to use one or more interaction techniques. Interaction techniques allow the data analyst to directly interact with the visualizations and dynamically change the visualizations according to the exploration objectives. In addition, they also make it possible to relate and combine multiple independent visualizations. The interaction techniques used are: • Dynamic Projection - Dynamic projection is an automated navigation operation. The basic idea is to dynamically change the projections in order to explore a multi-dimensional data set. A classic example is the GrandTour system [4]. • Interactive Filtering - Interactive filtering is a combination of selection and view enhancement. In exploring large data sets, it is important to partition the data set interactively into segments and focus on interesting subsets. • Zooming - Zooming is a well-known view modification technique that is widely used in a number of applications. In dealing with large amounts of data, it is important to present the data in a highly compressed form to provide an overview of the data, but at the same time, allowing a variable display of the data at different resolutions. Zooming does not only mean displaying the data objects larger, but also that the data representation may automatically change to present more details on higher zoom levels. • Distortion - Distortion is a view modification technique that supports the data exploration process by preserving an overview of the data during drill-down operations. The basic idea is to show portions of the data with a high level of detail while others are shown with a lower level of detail. Popular distortion techniques are hyperbolic and spherical distortions [93]. For an example for a combination of zooming, distortion, and filtering techniques see [65].

11

2 InfoVis Scope, Techniques and Opportunities for Geovisualization • Brushing and Linking - Brushing is an interactive selection process that is often, but not always, combined with linking, a process to communicate the selected data to other views of the data set. There are many possibilities to visualize multi-dimensional data, each with their own strengths and weaknesses. The idea of linking and brushing is to combine different visualization methods to overcome the shortcomings of individual techniques. Scatterplots of different projections, for example, may be combined by coloring and linking subsets of points in all projections. In a similar fashion, linking and brushing can be applied to visualizations generated by all visualization techniques described above. As a result, the brushed points are highlighted in all visualizations, making it possible to detect dependencies and correlations. Interactive changes made in one visualization are also automatically reflected in the other visualizations. Note that connecting multiple visualizations through interactive linking and brushing provides more information than considering the component visualizations independently. Typical examples of visualization techniques that have been combined by linking and brushing are multiple scatterplots (see figure 2.2), bar charts, parallel coordinates, pixel displays, and maps. A more detailed discussion of the classification is given in [87, 88].

2.4 Phenomena of Geo-Related Visualization Geo-related data is different from other kinds of data in the way that geo-related data describes objects or phenomena with a specific location in the real world. Large spatial data sets can be seen as a result of accumulating samples or readings of phenomena in the real world while moving along two dimensions in space. In general, spatial data sets are discrete samples of a continuous phenomenon. Nowadays, there exist a large number of applications, in which it is important to analyze relationships that involve geographic locations. Examples include global climate modeling (measurements such as temperature, rainfall, and wind-speed), environmental records, customer analysis, telephone calls, credit card payments, and crime data. Because of this special characteristic, the visualization strategy for spatial data is straightforward. We map the spatial attributes directly to the two physical screen dimensions. The resulting visualization depends on the spatial dimension or extent of the described phenomena and objects. Spatial phenomena may be distinguished according to their spatial dimension or extent: • point phenomena - have no spatial extent, can be termed zero-dimensional and can be specified by longitude and latitude coordinate pairs with a statistical value z. Examples are census demographics, oil wells, and crime data. (see figure 2.1(b)) • line phenomena - have length, but essentially no width, can be termed one-dimensional and can be specified by unclosed series of longitude and latitude coordinate pairs for each phenomenon. Examples are large telecommunication networks, internet, and boundaries between countries. (see figure 2.4) • area phenomena - have both length and width, can be termed two-dimensional and can be specified by series of longitude and latitude coordinate pairs that completely enclose a region and a statistical value z for each phenomenon. Examples are lakes, and political units such as states or counties. (see figure 1.2 and the figures in chapter and 7) For each of the phenomena, several visualization approaches have been developed over the last years. More details about spatial visualization and cartography can be found in [107, 95, 27, 112, 88, 33].

12

2.5 PixelMap – A Pixel Based Visualization Technique for Large Geo-Related Data

2.5 PixelMap – A Pixel Based Visualization Technique for Large Geo-Related Data High resolution displays are of value for exploring extremely large data set. However, there exists data where more sophisticated visualization techniques are required. Varying degree of pixel overlap depending on screen resolution - even with a screen resolution of 1600 × 1200, the degree of overlap is about 0.3; 30% of our sample of data points (about 12000 points) from the U.S. Year 2000 Census Household Income database cannot be directly placed without overwriting already-occupied pixels

1.0

Sample with 30.000 data points of the U.S. Year 2000 Census Household Income Database

Screen resolution

0.4

0.6

30% of all data points can’t be directly placed

Map like visualization no longer useful!

0.0

0.2

Degree of Overlap

0.8

Powerwall

0x0

500x500

1000x1000

1500x1500

2000x2000

Resolution [pixel]

Figure 2.5: Pixel overlap on varying screen resolution using the U.S. Year 2000 Census Household Income database Pixel visualizations are technique where each data item is represented by exactly one pixel on the computer screen. PixelMap is one of these techniques. PixelMap solves the problem of displaying dense point sets on maps, by combining clustering and visualization techniques [82]. First, the Fast-PixelMap algorithm [81, 85, 82, 111] approximates a two-dimensional kernel density estimation (KDE) in the two geographical dimensions performing a recursive partitioning of the dataset and the 2D screen space by using split operations according to the geographical parameters of the data points and the extensions of the 2D screen space. The goal is 1. to find areas with density in the two geographical dimensions and 2. to allocate enough pixels on the screen to place all data points of dense regions at unique positions close to each other. The top-down partitioning of the dataset and 2D screen space results in distortion of certain map regions. That means, however, virtually empty areas will be shrinking and dense areas will be expanding to achieve pixel coherence. For an efficient partitioning of the dataset and the 2D screen space and an efficient scaling to new boundaries, a new data structure called Fast-PixelMap is used. The Fast-PixelMap data structure is a combination of a gridfile and a quadtree [42] which realizes the split operations in the data and the 2D

13

2 InfoVis Scope, Techniques and Opportunities for Geovisualization screen space. The Fast-PixelMap data structure enables an efficient determination of the old (boundaries of the gridfile partition in the dataset) and the new boundaries (boundaries of the quadtree partition in the 2D screen space) of each partition. The old and the new boundaries determine the local rescaling of certain map regions. More precisely, all data points within the old boundaries will be relocated to the new positions within the new boundaries. The rescaling reduces the size of virtually empty regions and unleashes unused pixels for dense regions. In a second step, the Fast-PixelMap algorithm approximates a three-dimensional kernel density estimation-based clustering in the three dimensions performing an array based clustering for each dataset partition. After rescaling of all data points to the new boundaries, the iterative positioning of data points (pixel placement step) is done, starting with the densest regions and within the dense regions the smallest cluster is chosen first. To determine the placement sequence, we sort all final gridfile partitions (leaves of the Fast-PixelMap data structure) according to the number of data points, they contain. The clustering is a crucial pre-processing step to make important information visible and to achieve pixel coherence1 with respect to the selected statistical parameter. The final step of the pixel placement is a sophisticated algorithm which places all data points of a gridfile partition to pixels on the output map in order to provide visualizations which are as position-, distance-, and cluster-preserving as possible. An example based on the U.S. Census income data set is displayed in Figure 2.6. Figure 2.6(a) shows a traditional map. Even on a high-resolution display overplotting obscures data points. The next approach is a 3-D–point clouds visualization of the longitude,latitude, and the statistical value. For that picture we used a random sampling of 1% of the whole data set. PixelMap shows 100% of the data without overplotting. An example is illustrated in figure 2.6.

1 Pixel

14

coherence means similarity of adjacent pixels, which makes small pixel clusters perceivable.

2.5 PixelMap – A Pixel Based Visualization Technique for Large Geo-Related Data

0.0 0.2 0.4 0.6 0.8 1.0

Income

Income

1.0 0.8 0.6

● ●

0.4 0.2

● ● ●● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●●● ● ● ● ● ● ● ● ●● ● ●●●

0.0

● ● ● ●● ● ● ●● ● ● ●● ● ● ● ●

Income ●● ● ● ●●● ● ● ●●● ● ●● ●●● ●● ●●● ● ● ● ● ● ● ● ● ●● ●● ●● ● ● ● ●● ● ● ● ●● ● ●● ●● ● ●●● ● ● ●●● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●●●● ● ●●● ● ●● ● ●● ●● ● ●● ● ● ● ● ● ● ●● ● ●●●●● ● ● ● ● ● ● ● ● ● ●●● ● ●● ● ● ● ●●● ●● ●● ● ●● ● ●● ● ● ●●● ●● ●● ● ●● ● ● ● ● ● ●● ● ● ● ● ●● ●● ●● ● ● ● ●● ● ● ●● ● ●● ●●●● ● ●●●● ● ● ● ●● ● ● ● ● ● ● ●● ● ●● ●● ●● ● ● ● ●● ● ●●●●●●●● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ●● ●●● ● ● ● ● ● ●● ● ● ● ● ●● ● ●

y

Income

Income ●

Income 1.0

●●●

0.8

●

Income

● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●●● ● ●● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ●● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Income

0.6

0.0

0.0

● ● ● ● ● ● ● ●

● ● ● ● ●● ●● ● ● ●

● ● ●● ● ● ●

● ● ● ●

● ●

0.4 0.2

0.2

Income

0.8

Longitude

0.4

●● ● ● ● ● ● ● ● ●● ● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●

1.0

Lattitude

0.6

● ●● ● ● ● ●●

● ● ● ● ● ● ● ● ● ●

0.0 0.2 0.4 0.6 0.8 1.0

● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0.0 0.2 0.4 0.6 0.8 1.0

x

(a) Conventional Map

(b) 3-D–point cloud

(c) X–Y–level plot

(d) PixelMap

Figure 2.6: Comparison of Traditional Map versus PixelMap - New York State - Year 1999 Median Household Income. This map displays cluster regions e.g. on the East side of Central Park in Manhattan, where inhabitants with high income live, or on the right side of Brooklyn, where inhabitants with low income live.

15

2 InfoVis Scope, Techniques and Opportunities for Geovisualization

2.6 High Resolution Display Walls There are several ways for visualizing all this massive data mentioned in the beginning of this chapter. We can reduce the data by sampling, aggregating the data, averaging them, or some other ways of data pre-processing. Alternatively, we can increase the resolution of the display device using high resolution displays2 . High resolution displays are a new area in research [57, 132, 104]. Because the resolution of existing LCD is restricted or the size of the pixel is too small to make use of them, researchers began to build up so-called powerwalls. These powerwalls consist of more than one single display to arrange one large virtual screen. The virtual screen is realized by a backward projection using projectors. The projectors are ordered in a matrix layout on the other side of the projection wall to avoid shade redraws of the users. Existing powerwall layouts can be seen in figure 2.7.

(a) AT&T Global Network Operation Center

(b) 4 x 2 projectors AT&T’s Info Wall

c Figure 2.7: High resolution walls ( IEEE, Courtesy of Stephen C. North, AT&T Shannon labs) To achieve the highest visualization quality as possible the main features of the output device should be a homogeneous screen which means: • there is an electronic and optic edge blending between the overlapping projections, • all projectors take the intersection of all projectors color spaces, and • the brightness of all linked projectors is monitored and adjusted to the lowest value. To achieve a homogeneous screen it is necessary that the projectors are able to communicate their operating parameters to each other. Additionally, it is important that the projectors • have a high contrast ratio (≥ 1 : 1000), • geometry correction, and • stereo visualization facilities. Beside the projection properties, the system should serve for many different research projects and researchers. Therefore the system must feature to run existing software application without modification and no new compilation of the source code on a wide range of operation systems. 2 Note

that large size printers and plotters are also alternatives devices and they are not to underestimate. Because of their nature they do not allow an interactive exploration of the data and we need a lot of time and other resources to obtain a result.

16

2.6 High Resolution Display Walls Based on the experience with the AT&T Info Wall and on related research during the last four years, at the beginning of 2005 the computer science department at the University of Konstanz started to install a high resolution display wall system. The “wall” consists of eight Barco single chip DLP-projectors [5] with a matrix layout of 4 × 2 projectors having a resolution of 1280 × 1024 pixels and an overall netto resolution of 4640 × 1920 ≈ 9 · 106 pixels. A 13600×6000mm2 large room is separated by a 5000 ×2150×6mm3 (w×h×d) large projection wall into one 6000 × 3600mm2 large projector and technique room and a demonstration and presentation room. The pixel size results by pixel 4640 · 1920 pixel (2.1) ≈ 0.8 2 5000 · 2150 mm mm2 The system was primary designed for visualizing a wide variety of applications known from the infor-

Figure 2.8: High resolution 4 × 2 Barco DLP based projector (≈ 9 · 106 pixels) i-wall at the University of Konstanz mation visualization and data mining community which are • pixel based visualization as VisDB, PixelBarChart, PixelMap • large graphs, maps and networks • visualization system as Splus [29], Xmdv [129], WALDO [83], MineSet, HD-eyes, ESRI ArcGISLabkit [37, 38] Therefore the hardware should support interactions with the visualization software. Secondary, the system should also serve as high-resolution 3D graphic device which devours magnitudes of more computing performance. However these are two different application domains and therefore two different hardware configurations are needed. For the primary application domain as graphic system we experimented with an xentera GT 8 single slot 8 port PCI graphic board using ATI Mobility Radeon 9000 chipsets[118] and eight Nvidia 6800 Ultra graphic boards. Both graphic boards run a virtual screen on Windows XP and XFree86 using the XINERAMA extension [119]. As hardware serves an Intel Dual–XEON 3.3GHz clocked system with 4GB RAM. Beside the single PC solution as base system, for our second application domain we plan to build a OpenGL Chromium based Cluster-System[104] consisting of eight cluster nodes and a cluster super node.

17

2 InfoVis Scope, Techniques and Opportunities for Geovisualization

2.7 Conclusion Visualization of massive data is a challenge. Fortunately, there exist a large number of visualization techniques for different data to be visualized. On the example of geo-related data, we demonstrated that the visualization of this kind of data using traditional maps has several drawbacks if we use them from the information visualization point-of-view. We considered an example of dense point clouds and introduce the PixelMap algorithm which re-organizes the screen space to avoid overlapping of the data items by retaining the relative geo-position of the data item as much as possible and place the data item with similar values as close as possible together (clustering). Because the visualization goals are contrary constraints, either all pixels are visualized but the recognition of the map is poor or recognition of the map is good, but not all data are displayed. High resolution walls seem promising as extension for the visualization process. Both, high resolution output devices and visualization techniques can improve the quality of large data exploration. High resolution display walls are relative new technologies and almost always they are unique configurations and since those do not exist as standardized solutions they need a lot of technical effort.

18

3 Cartogram Drawing In this section, we introduce a few basic concepts that underlie cartogram drawing. First, we formally define several variants of the problem. Then, we discuss the complexity and theoretical limitations of potential solutions and review the solutions which have been proposed in the literature. Finally, we outline some key observations that are the basis for a new, effective and efficient solution.

3.1 Problem Definition We assume that the input is a map defined by a set of connected simple polygons (a polygonal mesh) P , and a parameter vector X that gives the desired values for the area of each polygon. Our goal is to generate contiguous cartograms and therefore, the desired output is a set of connected simple polygons P as well. Let |p| denote the number of vertices, A(p) the area, and S(p) the shape of a polygon p, and T (P ) the topology of a set of polygons. Then, the ideal solution of the contiguous cartogram drawing problem can be defined as: Definition 1 (Contiguous Cartograms - Ideal Solution). A contiguous cartogram of a set of connected polygons P = {p1 , . . . , pk } with respect to the parameter vector X = {x1 , . . . , xk }, (∀ j x j > 0) , is a visualization of the transformed set of polygons P , where T (P ) = T (P ) S(p j ) = S(p j ), ∀ j = 1, . . . , k A(p j ) = x˜j , ∀ j = 1, . . . , k.

(3.1) (3.2) (3.3)

The desired area x˜j of a polygon p j is defined as x˜j = x j ·

∑ki=1 A(p j ) . ∑kj=1 x j

(3.4)

To simplify the description, the assumption is made that we have only one set of connected polygons (such as the continental United States) and not multiple unconnected sets (such as a world map1 ) Let vij denote the i-th vertex of polygon p j , αij the angle at the i-th vertex, eij the i-th edge, |eij | the length of edge eij , and CE(v) the cyclic order of edges at vertex v (see figure 3.1). If we assume that the transformed polygons have the same number of vertices (i.e., |pi | = |pi |), then one way of formalizing the topology and shape preservation constraints is the following: Definition 2 (Topology Preservation - Preservation of Connecting Vertices). The topology preservation T (P ) = T (P ) means that for each vertex v ∈ P the cyclic order of edges remains the same as in P . More formally, j

j

∀vij ∈ P , j = 1, . . . , k; i = 1, . . . , |p j | : ∃vij ∈ P , j = 1, . . . , k; i = 1, . . . , |p j | : CE(vi ) = CE(vi ) 1 These

(3.5)

definitions may be easily extended to multiple polygonal meshes.

19

3 Cartogram Drawing

Figure 3.1: Cyclic order of edges If the cartogram construction algorithm does not provide a mapping to the original polygon set, topology preservation is difficult to test, because as a first step, the isomorphism problem between the two corresponding graphs must be solved. Graph isomorphism is a difficult problem and not known to be polynomial if the graph is not planar. Therefore efficient solutions have to maintain the topology of the original polygon mesh or provide a mapping to the original polygon mesh.

(a) 2 × 2 checkerboard

(d) 3×3

(b) Relaxed Topology

(e) Relaxed Topology

(f) Relaxed and Shape

(c) Relaxed Shape

Topology

(g) Relaxed Shape

Figure 3.2: Checker board example Definition 3 (Shape Preservation - Preservation of Edge Length Ratios and Angles). Shape preservation S(pi ) = S(pi ) means that the edge length ratios of the polygons and the angles are preserved ∀ j = 1, . . . , k ∃c j ∈ R : |eij | = c j |eij |, i = 1, . . . , |p j |, eij ∈ P , eij ∈ P

(3.6)

∀ j = 1, . . . , k, ∀i = 1, . . . , |p j | : αij = αij .

(3.7)

Now let us consider a simple example. Assume that we have a map with the topology of a checker board (see Figure 3.2) and that we want to resize the map according to the color of the fields, scaling white fields by a factor of 2 and black fields by a factor of 0.5. This rescaling is impossible without changing the topology or shapes. So, in general it is impossible to achieve the ideal solution. We state this observation in the following lemma.

20

3.2 Solvability and Complexity of the Problem Lemma 1 (Impossibility of the Ideal Solution). The cartogram drawing problem of Definition 1 is unsolvable in the general case, i.e. there exist sets of polygons and parameter vectors such that it is impossible to obtain an ideal solution. Proof. Figure 3.2 provides examples of sets of polygons, which do not have ideal cartogram solutions according to Definition 1.

Constaints Topology

single-polygon ∀ j : dT (p j , p j ) = 0

Area

∀ j : dA (x˜j , A(p j )) ≤ ε ∑ dA (x˜j , A(p j )) ≤ ε ∑ dA (x˜j , A(p j )) → min ! ∀ j : dS (p j , p j ) ≤ ε ∑ dS (p j , p j ) ≤ ε ∑ dS (p j , p j ) → min

Shape

all-polygon ∑ dT (p j , p j ) = 0

minimum !

Table 3.1: Possible constraints for cartogram drawing To derive feasible variants of the problem, we need to relax some of the feature preservation conditions. The topology error is measured by the topology distance function dT dT : (. × .) → N

(3.8)

If topology is the most important property to maintain, the only other conditions left to relax are the shape and area constraints. But there are many ways to go about this. We can explore that in terms of two distance functions - an area distance function dA dA : (. × .) → R

(3.9)

which measures the distance of the area of a polygon from the desired size, typically, difference in area in the Euclidean plane and a shape distance function dS dS : (. × .) → R

(3.10)

which measures the similarity of two shapes. Table 3.1 is an enumeration of possible constraints. The first column lists constraints that require a maximum distance for each polygon, the second column lists constraints that require a maximum distance for the sum of the distances of all polygons, and the third column lists minimum constraints for the sum of distances. By combining the different area and shape constraints in table 3.1 we can construct variants of the cartogram drawing problem. A useful combination would be, for example, a restriction of the solution space to solutions where the shape of each polygon has at least a certain similarity to its original shape and the sum of all area differences is minimal. In the following, we discuss the different variants of the problem and their complexity.

3.2 Solvability and Complexity of the Problem As shown by Lemma 1, in general it is impossible to find an ideal solution of the cartogram drawing problem. If we now consider the variants that may be constructed by a combination of the constraints in table 3.1, it turns out that a large number of these are also unsolvable in the general case. Lemma 2 (Impossibility of the Solution of Problem Variants). Any variant of the cartogram drawing problem that involves the single-polygon area constraint or the all-polygon area constraint is unsolvable in the general case, i.e. there exist sets of polygons P and parameter vectors X , such that for any ε the problem variants do not have a valid, topology-preserving solution.

21

3 Cartogram Drawing

(a)

(b)

Figure 3.3: Impossible cartogram drawing problem Proof. In figure 3.3a, we show an example of a symmetric cartogram consisting of 7 polygons. If the parameter vector for scaling the polygons requires the white polygons to become larger and the black ones to become smaller, we can easily construct an impossible case. Due to the symmetric construction of the polygons, without loss of generality we can assume that one angle γ ≤ π3 . Thus, π (3.11) α = 2π − 2β − γ ≥ 2π − 2β − 3 For the above mentioned resize requirements (triangle A very large and triangles B very small), β → 0 and therefore π 5 α ≥ 2π − = π =⇒ α > π (3.12) 3 3 and thus the topology can not be preserved as shown in figure 3.3b. This means that only variants of the problem that use the minimum-area condition are solvable and this is true for any combination with a shape constraint. The solvability is trivial to see since there is at least the identity solution which has a perfect shape preservation but a rather bad value for the area difference. As the following lemma shows, the determination of the actual solution with the minimum area difference, however, is a computationally hard problem. It is likely that the cartogram problem with the minimum-area condition represents a N P –hard optimization problem. In using this variant of the problem one easily observes that there is little freedom to improve the second important parameter, namely the shape. In most cases, the minimum area condition will provide some solution which is best optimized according to the area condition but does not take the shape similarity into account. There might be, for example, a solution which much better preserves the shape but is a little bit worse concerning the area condition. To allow the shape constraint to have an impact on the solution, we have to adapt our constraints. In principle, there are two possibilities. The first is to determine the minimum area difference which is possible and then, allow a certain maximum deviation from this minimum difference for finding the best shape. More formally, this may be defined as follows. Definition 4 (Variant 1 of the Contiguous Cartogram Problem). Given a set of polygons P , a parameter vector X , and an error value ε, the Contiguous Cartogram problem may be defined as a transformed set of polygons P for which the following two conditions hold: k

∑ dA(x˜j , A(p j )) ≤

j=1 k

MIN

P

(dA (x˜j , A(p j )) + ε

∑ dS (S(p j ), S(p j )) → min

j=1

22

!

(3.13) (3.14)

3.2 Solvability and Complexity of the Problem A second possibility is to normalize the area and shape distances and to use a weighted mean of the normalized distances as a combined optimization criterion. Definition 5 (Variant 2 of the Contiguous Cartogram Problem). Given a set of polygons P , a parameter vector X , and importance factors for the area and shape distances (wa , ws ≥ 0), the contiguous Cartogram problem may be defined as the transformed set of polygons P for which k

wa · ∑ dA (x˜j , A(p j )) j=1 n

(3.15)

+ ws · ∑ dS (p j , p j ) → min . j=1

!

(3.16)

wa ,ws ≥0

There are other meaningful and solvable variants of the problem which, for example, also include the single-polygon constraints (see table 3.1). Most currently available algorithms try to solve the problem according to definition 4 or definition 5. This seems sufficient for some applications but there are others where additional constraints seem necessary. In the following, we discuss some important observations which are the basis for our final definition and also the key to an efficient solution of the problem.

(a) 3D map [120]

(d) Circle cartogram [134]

(b) Non-contiguous cartogram [60]

(c) Non-contiguous cartogram [27]

(e) Tobler [121]

(g) Zade & Tikunov [53]

(f) Selvia [109]

(h) Kocmoud & House [90]

Figure 3.4: Cartogram drawing methods

23

3 Cartogram Drawing

3.3 Related Work Cartographers and geographers have used cartograms long before computers were available to make displays [106, 107, 58]. References date back as far as 1868 (see remarks on Levasseur in [47] on page 355). A short historical overview can be found in [27, 122]. The basic idea of a cartogram is to distort a map by resizing its regions by some geographicallyrelated parameter. Example applications include population demographics [120], election results [90], and epidemiology [54]. Because cartograms are difficult to make manually, the study of programs to draw them is of interest. Cartograms can made by contiguous or non-contiguous distortions. The non-contiguous case is much easier, since the input map topology does not have to be preserved. As seen in figure 3.4, hand-made noncontiguous cartograms have been drawn with overlapping or touching circles, by eliminating some of the original map’s adjacencies, or even by drawing disconnected shapes over the original regions [60, 134]. Most previous attacks on automated drawing of contiguous cartograms do not yield results comparable to good hand–made drawings. One reason, first pointed out by Dent [25, 26], is that straight lines, right angles and other features considered important in human recognition of cartograms are obliterated. Methods that are radial in nature such as the conformal maps proposed by Tobler [120], the radial expansion method of Selvin et. al. [109] and the line integral method of Guseyn-Zade and Tikunov [53] do not provide acceptable results, since the shapes of the polygons are heavily deformed (see figure 3.4). Likewise, the pseudo-cartograms of Tobler expand the lines of longitude and latitude to achieve a least root mean square area error [121]. Very similar drawings are made by approaching the problem as distortion viewing by nonlinear magnification [64, 99, 17, 66]. Jackel [60] applied radial forces to change the size of polygons, moving the sides of each polygon relative to its centroid, but the solver runs very slowly (taking 90 minutes to perform 8 iterations on a map of 6 New England states of the U.S.) and seems to have problems with non-convex input polygons and with self-intersections in the output, which is consistent with our early experiments with a similar approach. Another family of approaches operates on a a grid or mesh imposed on the input map. The ,,piezopleth” method of Cauvin, Schneider and Cherrier transforms the grid by a physical pressure load model [18]. Dorling’s cellular automaton approach trades grid cells until each region achieves the desired number of cells [30]. The combinatorial approach of Edelsbrunner and Waupotitsch [35] computes a sequence of piecewise linear homeomorphisms of the mesh that preserve its topology. While the first method is good at preserving the shape of the polygons, the second method allows a very good fit for area but only poor shape preservation. A synthesis of both approaches was recently described by Kocmoud and House, who propose a forcebased model and alternately optimize the shape and the area error [90]. Although the results are better than most other methods, the complex optimization algorithm has a prohibitively high execution time. Kocmoud and House report a time of 18 hours for a modest-sized map with 744 vertices. An other cartogram approach based on diffusion equation currently appeared in [50]. Since the distortion depends of a spacial point set as input (similar to Tobler’s Pseudo cartograms [121]) the shape of the polygon can not be taken into account and therefore the approach is different to our one. In figure 3.4, we present population cartograms generated by several of the methods we have mentioned.

3.4 Important Observations The current solutions have two major problems: first, the high time complexity of the algorithms restricts their use to static applications with a small number of polygons and vertices. Second, they have very limited shape preservation. Although the recent work by Kocmoud and House provides nice results, some effectiveness problems remain. One problem is the significant deformation of the global shape. In evaluating the different heuristic solutions which have been proposed so far, we found that the insufficient

24

3.4 Important Observations preservation of the global shape is one of their major problems. According to our experience, however, the global shape is one of the most important factors for cartograms to be effective, and it is certainly at least as important as the preservation of interior polygon shapes. In our definition of cartogram drawing, besides the shape and area constraints of table 3.1 we therefore explicitly include a global shape constraint which may be again either a single-polygon, all-polygon, or minimum constraint for the global shape. There may be multiple global shapes as they occur, for example, on a world map. So there is one global polygon for each connected component of the map. If that is the case we denote each component of a map P with an indices. If GPi = GP(Pi ) denotes the set of global polygons which may be derived from the set of polygons Pi . GP(P ) is defined as follow: GP(P ) = {v ∈ P : |edges(v)| > |polygons(v)|}.

(3.17)

The global shape constraints may formally be described as given in table 3.2. Our final definition of the cartogram drawing problem uses a weighted minimum of area, shape, and global shape constraints. Definition 6 (Variant 3 of the Contiguous Cartogram Problem). Given a set of polygons P , a parameter vector X , and importance factors for the area, shape, and global shape constraints wa ,ws , and wgs , the contiguous Cartogram problem may be defined as a transformed set of polygons P for which k

wa · ∑ dA (x˜j , A(p j ))

(3.18)

j=1 k

+ ws · ∑ dS (p j , p j )

(3.19)

j=1

+ wgs · ∑ dS (GP(P ), GP(P )) → !

r

single-polygon all-polygon minimum

min

wa ,ws ,wgs ≥0

(3.20)

∀r : dS (GP(Pr ), GP(P r )) ≤ ε ∑r dS (GP(Pr ), GP(P r )) ≤ ε ! ∑r dS (GP(Pr ), GP(P r )) → min

Table 3.2: Global polygon constraints for cartogram drawing Let us now focus on some important observations which are crucial for an efficient solution of the problem. One important observation is that in practice only very few vertices are actually important for defining the shapes of the polygons. Considering the US map, as an example, we found that in addition to a restricted number of outer vertices, only a limited number of interior vertices are actually relevant. Note also that the importance of polygons and their vertices largely depends on their size (which is directly related to the parameter vector) and on the length of the edges and the angles between them. In our new algorithm, we give special consideration to these facts and determine the importance of vertices based on these observations. A second observation is that – in order to obtain good results – the shape error has to be controlled explicitly, which is not done sufficiently in previous approaches. A last observation is that the high time complexity of most algorithms proposed previously is due to a complex and timeconsuming optimization. In most cases, however, it is possible to locally reposition vertices and improve the area error while retaining the shape. To obtain good solutions, our algorithm iteratively repositions vertices based on scanline-defined locality measures with an explicit shape error control function.

25

3 Cartogram Drawing

3.5 Map Simplification 3.5.1 Introduction Map simplification is an important task for the cartogram generation. Beside our observations in the last chapter, maps consists often of thousands of points [31, 7, 36]. But only some hundred are needed for visualization on a regular display. This high concentration of points is negative for a fast computation. Furthermore, large points can induce varieties in special cases which have to be studied. In this section we introduce our approach for reducing inner and outer nodes of a map. The Table 3.3 gives an overview of the size of segments, nodes, and polygons for some maps used in this thesis. Map U.S. state-level U.S. county-level Texas county-level Germany state-level Germany county-level Germany block-level World state-level Afrika

Segments 1286 20901 1581 16984 50748 125402 33182 4411

Node 808 7609 599 8478 25879 60139 25624 2590

Polygons 48 3085 254 15 434 NA NA 46

Table 3.3: Number of segments, nodes, and polygons for some maps used in this thesis. The studying of polygon line simplification algorithms goes back to the seventies. The most famous procedure is the Douglas-Peucker algorithm [31]. Douglas-Peucker works as follows. As input a polygon line and a tolerance value is given. The algorithm starts with the two end points and iterates over the point set of the polygon line. If the point with the maximum distance between the two end points is greater than the given tolerance value, the point belongs to the reduced polygon line. Furthermore, the polygon line is split into pieces, and the algorithm continues recursiv. If all points are closer than the tolerance value, the points are not important and they can be reduced. Because our motivation is based on the study of [25, 26] (see section 3.3 of this chapter) we used a more straightforward approach as an alternative.

3.5.2 Reduction of Global Polygon As mentioned in section 3.4, preserving the global shape is very important in making recognizable cartograms. This is taken into account by the decimation algorithm by simplifying the global and inner polygons differently. A key observation is that the importance of the vertices of a polygon can greatly vary. Vertices on angles close to 180 degrees and those with short edges make almost no noticeable difference in the shape of a polygon, while others with sharp angles or long edges have a significant effect. The basic idea of the global polygon reduction algorithm is to rate the importance of each vertex according to these criteria. Then, iteratively, the least important vertices are removed. To maintain the topology, only vertices that do not belong to multiple polygons are removed. To formalize the global reduction algorithm, we first define the notion of a vertex’ importance as I(v, σ) = Sig(αv , σ) · |ev1 | · |ev2 |

(3.21)

where ev1 and ev2 are the two edges of vertex v and Sig(αv , σ) is a function denoting the significance of the angle αv at vertex v. The significance function Sig(α, σ) is important because different angles have a

26

3.5 Map Simplification specific impact on the shape of the polygons. Sharp angles and angles close to 90◦ are more important than obtuse angles (c.f. [25, 26]) and the significance function therefore assigns higher values to sharp angles and lower values for obtuse angles. For our algorithm, we use

Sig(α, σ) =

∑ π 3π

µ∈{0, 2 ,

2

exp

−

(α−µ)2 2σ2

(3.22)

,2π}

as the significance function. This function has peaks for α = 0, π2 , 3π 2 , 2π and is close to zero for α = π. The function is defined for α ∈]0, 2π[ and σ is chosen to be 0.2 · π. Figure 3.5 shows a plot of this function.

1.0 0.0

0.5

Sig(alpha,sigma)

1.5

sigma=0.1*pi sigma=0.2*pi sigma=0.3*pi sigma=0.4*pi

0

pi/2

pi

3*pi/2

2*pi

alpha

Figure 3.5: Mesh reduction significance function – The plot illustrates the described significance function. The red curve shows Sig(αv , σ) if we use σ = 0.2 · π. To formalize the global reduction algorithm, we first define the global polygon as a subset of the vertices of P . For each polygon (p j ) j=1...k , the portion GPj of the global polygon G P were defined in chapter 3 in equation 3.17 The global polygon is defined as GP = ∪kj=1 gp j . The algorithm for the reduction of the global polygon is shown in figure 1. Note that vertices are only considered for removal if they do not belong to multiple polygons (see initialization of V in figure 1) and they are only removed if the induced area difference is smaller than a given constant MaxAreaDi f f . Note also that the area As (p) of a polygon p is determined as if the polygon is perfectly scaled according to the parameter vector X .

3.5.3 Reduction of Inner Polygons To position interior vertices, we can use again an iterative vertex removal process. A more efficient alternative is based on the observation that for most maps only the connecting interior vertices are important. Instead of iteratively removing unimportant vertices, we therefore take a more direct approach and remove all vertices not common to more than two polygons (non-connecting vertices). In some cases, the shape deformation and area error introduced by this reduction is unacceptably high. We therefore re-introduce a few additional vertices. See figure 2 for the complete algorithm.

27

3 Cartogram Drawing ReduceGlobalVertices(P , G P, MaxAreaDi f f ) { /* Only consider vertices if they are not part of multiple polygons */ V = {v ∈ gp j | v ∈ / gpm for m 6= j} do { /* Determine the least important vertex */ v¯ = {v ∈ V | MIN v∈V I(v)} /* Determine the polygon containing the least important vertex */ j = { j ∈ {1 . . . k} | v¯ ∈ p j } if (|As (p j \ {v}) ¯ − As (p j )| ≤ MaxAreaDi f f ) p j = p j \ {v}; ¯ V = V \ {v} ¯ } while V 6= {} } Algorithm 1: Reduction of global vertices Figure 3.6 shows an example polygon (see figure 3.6a), a polygon reduced of its interior vertices common to more than two polygons (see figure 3.6b), and the final polygon after re-introducing a few additional vertices (see figure 3.6c). In practice only few polygons need the additional vertices, so the likelihood of re-introducing vertices that were removed is low (see figure 3.6).

3.6 Conclusion The theoretic work and the study on that chapter is the base for the cartogram algorithm on the following pages. The algorithms for map simplification proposed in this chapter work very well for our input data as it can be seen in the application part of the thesis. The reduction algorithm are also efficient as it is demonstrated in the next chapter on page 41. Nevertheless, further improvements can be made. First, to amplify the quality we can make use of the shape similarity function (see appendix A) for an extra test which has to be passed during the reduction process. The reduction of a global or local node is only made if the shape error between both polygon are less than a given threshold. Second, since on cartograms we want to stress polygons with a high statistical value, the circumference is larger as well and therefore the shape thresholds for this polygons should be set more sensitive. Both reduction procedures in that chapter can be easily adapted when we weight the desired value of an area with the significance of a map node.

28

3.6 Conclusion

ReduceInnerVertices(P , G P, MinAreaImpr) { /* all interior vertices */ ∪ ∪ I V = j=1...k {v | v ∈ p j } \ j=1...k {v | v ∈ gp j } /* connecting interior vertices */ C V = {v ∈ I V : |edges(v)| > 2} /* remove all non-connecting vertices */ forall (p j ∈ P ) p j = {c ∈ p j | c ∈ / (I V \ C V )}; /* reintroduce important non-connecting vertices */ forall (p j ∈ P ) { /* Assume that the adjacent inner vertices {v1 , . . . , vm } ∈ (I V \ C V ) have been removed between vertex vs and ve of polygon p j in step 1. */ forall ((vs , ve ) removed in step 1) { MIN MAX n = n∈1...m ( (vi ,...,vi )∈{v |As (p j ∪ {vi1 , . . . , vi j }) − As (p j )|) 1 ,...,vm },vi 6=vi 1

n

ptmp = p j ∪ {vi1 , . . . , vin :

l

k

MAX (vi1 ,...,vin )∈{v1 ,...,vm },vil 6=vik } |As (p j

∪ {vi1 , . . . , vi j }) − As (p j )|

} if (|As (ptmp ) − As (p j )| ≥ MinAreaImpr) p j = ptmp ; } }

Algorithm 2: Reduction of interior vertices

29

3 Cartogram Drawing

●●● ● ● ● ● ● ● ●● ●

● ● ● ● ● ●

●

●

● ● ● ● ● ● ● ● ● ●●

● ●

● ●

● ● ●

● ●

● ●

● ● ●● ● ● ● ● ● ● ● ●● ● ● ●

● ●

● ● ● ● ● ●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

●

● ● ● ● ● ● ● ● ● ●

● ●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

●

●

●

●

●

●

● ●

●

●

● ●

●

● ●

●

● ● ● ● ● ● ● ● ● ●

●● ● ●

●

● ●

●

● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ●

●

●● ● ● ● ● ●● ● ● ● ● ●● ● ● ●

● ● ● ●

● ●

●

● ● ● ●

● ● ● ● ●

● ● ● ●

● ●● ● ● ● ●● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ●●● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●●● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ●●● ● ● ● ●●●● ● ● ●● ●●●● ●● ●● ● ● ● ● ● ●●●●●●● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ●● ●● ● ●● ●● ●●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ●● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ●● ● ● ● ● ● ● ●●●● ● ● ● ● ● ● ● ● ●● ● ● ●●● ● ● ● ● ● ● ●● ● ● ● ● ● ●●● ●● ● ● ● ● ●● ● ● ●● ● ● ● ●● ● ●● ● ●●● ●● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ●● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ●● ●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ●● ● ●● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ●● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ●● ● ●●● ● ● ● ● ●● ●● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ●●● ● ● ● ● ●● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●●● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ● ● ● ●● ● ● ●● ● ●● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●

● ● ● ● ● ●

(a) Un-reduced traditional U.S. map (#nodes: 808, #edges: 1286) ● ●● ● ● ●

● ● ●

●

●

●●● ●● ●●

●

●

●

● ●

●● ● ●●

●●

●

●

● ● ●

●

●

●

●

● ●● ●●●● ● ●●● ● ● ● ●● ● ● ● ● ●●● ●●● ● ●● ● ● ●● ● ●●●● ●●●● ●● ● ● ● ● ● ●●●

●

● ●

●

●

●

●

● ● ●

●

●

● ●● ● ●

●

●

●

●

●● ●

● ●●●●●●● ●● ●●●● ● ●● ●●●●● ●●● ● ●● ●●● ● ● ●● ● ● ●●● ● ● ●● ● ●● ● ●● ● ●● ●●● ● ●● ●● ● ●● ● ● ● ● ●● ● ●●● ●● ●● ● ●● ● ● ●● ● ●● ● ●● ●● ● ● ●● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ●

●

●● ●

●

●

●

●

●

●

●

● ●● ●

●

●

● ●

●

●

●

● ●● ● ●●●

●

●

● ● ●

● ●

● ● ●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

● ●

● ●● ●●

●

●

●● ● ●● ● ●●● ● ●● ●

●

●

● ●● ● ●

● ● ●

●

●

● ●

●

●●

●

●

●

● ● ● ●●

● ● ● ● ●● ● ●● ● ● ● ●

●

● ●

●

● ●● ● ●● ●

●

●

● ●

●

● ● ● ● ● ●● ● ●● ●

●

● ● ●

●

●●

●

●

● ●

● ●

● ●●

●

● ●

●

●

● ●

●

●

● ●

●

●

● ●

●

●

●

●

●

●

●

● ● ●

●

●

● ● ●

●

● ●

●

●

●

● ●

●

●

●

● ● ● ● ● ● ●● ● ● ●●

●

●

●●

●

● ●●

●

● ●● ●

● ●

●

●

● ●

● ●

●

● ●●

● ● ●

●●

●

● ●

●

●

●

● ● ●

●

(b) Without inner connecting vertices (#nodes: 487, #edges: 644) ● ● ●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

● ●

●

● ●

● ●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

● ● ● ● ●

● ●

● ●

●

●

●

● ●

● ●

●

● ●

●

● ●

●

● ●

●

●

● ●

●

●

●

●

● ●

● ●

● ● ●

●

●

●

●

●

●

●

●

●

●

●

●

● ●

●

●

● ●

●

● ● ●

● ● ●

● ●

●

● ● ●

● ●

●

● ●

●

●

● ●

● ●

●

●

● ● ●

● ●

● ● ●

●

●

●

●

●

● ● ● ●

●

●

●

●

●

●

●

●

● ●

● ● ●

●

●

●

● ●

● ●

●

●

●

●

●

●

●

●

● ●

●

● ● ●

●

● ●●

●

●

●●● ●

●

●

●

● ● ●

●

●

● ●●

●

●

●

● ● ●

●

●

●

●

●

● ●

● ● ●

●

● ●

●●

● ●

● ●

● ● ● ● ●●

● ●

●

●

● ● ● ●

●

●

● ●

●

●

●

● ● ●

● ● ● ●

● ●

●

●

●

● ● ● ●

●

●

● ●

●

●

●

● ●

● ●

●

●

●● ●

●

●

●

●

● ●●

●

●

● ●

●

●● ● ●

●

●

●

●

●

● ●

●

● ●

●

●

●●

●

●

●

●●

● ●

●

●

●

● ●

●

●

● ●

●

●

●

● ●

●

●

●

●

●

● ●

●

●

● ●

●

●

●

● ● ● ●

● ● ●

●

● ● ● ● ●

● ● ●

●

●

●

● ● ● ●

●

●

● ●

●

● ●

●

●

●

● ●

●

● ●

●

● ●

●

●

●

● ●

● ● ● ● ●●

●

● ● ●

●

● ●

●

(c) Reduced Map (#nodes: 413, #edges: 736) where I(v, 0.2) ≥ 0.37 and MaxAreaDi f f = 0.1

Figure 3.6: U.S. map simplification – green - reducible inner node, red - reducible global nodes

30

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms 4.1 Introduction The main objective of our new cartogram drawing algorithm is a fast generation of cartograms of acceptable quality. Because input maps often have far more vertices than are needed to compute good cartograms, the first step is an intelligent decimation and has been described in the previous chapter. The reduction step is now followed by the central heuristic, scanline-based repositioning of vertices. We first reposition vertices of the global polygon(s), and then interior vertices. Scanlines can be restricted to vertical and horizontal lines determined automatically, or may be arbitrarily positioned line segments of any length, entered interactively. This follows the human-guided local search paradigm proposed by Marks et al [3]. In each step, the shape of the modified polygon mesh is controlled by the shape error function. The last step is the fitting of the undecimated polygons to the decimated mesh to obtain the output cartogram. By exploiting the potential for pre-computation and fast local optimization, our algorithm runs quickly enough to support dynamic displays with high update rates on maps having dozens of polygonal regions.

4.2 Problem Definition We can pose cartogram generation as a map deformation problem. Therefore we have to give a formulation of how to determine a near optimal cartogram P which can be computed from a given planar map P . The input map is a planar polygon mesh, and a value associated with each region (face) that is its desired fraction of the total cartogram area. The goal is to deform the map so that the area of each region is close or equal to the target while preserving the map’s connectivity and the shapes of its faces, including the outermost one.

4.2.1 Constraints When determining the cartogram P we have to assure that the topology of the map regions is preserved. We call a cartogram feasible if the topology is preserved and denote the set of feasible cartograms by M .

4.2.2 Objective Functions Assuming the topology of the map is preserved the quality of the resulting contiguous cartogram depends on two aspects: First, is the map recognizable and second, does the area reflect the statistical value. Both requirement are difficult to comply since area and shape preservation are conflicting goals. The functions measure topology, area and shape are described as follows: Topology preservation means that P and P must be homeomorphic. This may be defined in terms of Betti numbers [15, page 97], or by explicitly testing that there is one – to – one mapping of faces from P to faces of P that preserves adjacencies as stated in equation 4.1. Topology Error Function

31

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms ψ : P (V ) → P (V ) with ∀v, w ∈ P (V ) : v 6= w ⇒ ψ(v) 6= ψ(w) ∧ ψ−1 (ψ(v)) = v

(4.1)

The algorithm in that chapter strictly retains the topology of the map regions. Behind that it is possible to get a measure for topology violations. This can be done by summing up the differences of the cyclic orders CE(v) and CE(ψ(v)) of a node v ∈ P . dT = dT (P , P ) =

(4.2)

|CE(v)| 1 dCE CE(v)(i) ,CE(ψ(v))(i) ∑ ∑ 2 v∈P i=1

(4.3)

where dCE : N × N → {0, 1} is defined as: ( 0 if a = b dCE (a, b) = 1 otherwise

(4.4)

Note that CE(v) gives an ordered set as result1 . Area Error Function The objective of cartogram generation is to obtain a set of polygons where the area of the polygons corresponds to values given in a data vector X . In each step of the algorithm, the area error function is needed to determine the reduction of the area error achieved by applying a given scanline. The relative area error d˜A (p j ) of a polygon p j can be computed as:

|x˜j − A(p j )| d˜A (x˜j , p j ) = x˜j + A(p j )

(4.5)

Hence, the area error dA for the set of polygons P is defined as dA = dA (X˜ , P ) |P |

=

∑ d˜A(x˜j , p j ) ·

j=1

(4.6) x˜j |P | ∑ j=1 x˜j

(4.7)

In addition to reducing area error, the cartogram generation process also aims at retaining the original shapes. To assess shape preservation, we need a shape similarity function that compares the new shape of a polygon with its original shape. Defining a useful shape similarity function is in itself a difficult problem, since the similarity measure should be: Shape Error Function

• translation-invariant, • scale-invariant, and • partially rotation-invariant. From CAD research it is known that the Euclidean distance in Fourier space is useful for measuring shape similarity [67, 8]. The Fourier transformation approach which we used in for the CartoDraw [75] algorithm is described in chapter A. In the following we want to describe a variant which use some advantages of our transformation. Since the topology of the mesh does not change we can use equation 4.1 for the shape error computation. The shape error of to isomorph polygons can be determined as follows: 1 We

32

implement ψ as node array using the LEDA library [97].

4.2 Problem Definition

d˜S (p, p) =

1 2π

|p|

j 1 v j v j⊕1 −] ψ(v j 1 )ψ(v j )ψ(v j⊕1 )| ∑ |]v | {z } {z } |

j=1

∈p

(4.8)

∈p

The shape error dS of the P is: dS = dS (P , P )

(4.9)

|P |

=

∑ d˜S (pi, pi)

(4.10)

i=1

4.2.3 Formulation of the Optimization Problem After the observations mentioned in chapter 3 and having introduced the constraints and the objective functions, the Contiguous Cartogram Problem can be stated as optimization problem: Definition 7 (The Contiguous Cartogram Optimization Problem). Input: A planar polygon mesh P consisting of polygons p1 , . . . , pk , values X˜ = (xi )i=1,...,k with xi > 0, ∑ki=1 xi = 1, and ∀i, j ∈ {1, . . . , k} ∧ i ≤ j → xi ≥ x j , i.e. the elements of X˜ are sorted by non-increasing values. Let A(pi ) denote the normalized area of polygon pi with A(pi ) > 0, ∑ A(pi ) = 1. Output: A topology-preserving polygon mesh P consisting of polygons p1 , . . . , pk such that the function f is minimized, where (4.11) f = wt · dT + wa · dA + ws · dS + wgs · d˜S (GP(P ), GP(P )) Alternatively, topology-preserving in that manner means that dT = 0. Using the weights wt , wa , ws and wgs with (wt , wa , ws , wgs ≥ 0) the user has an explicit control of area error and shape error functions. We can not expect that the problem defined in definition 7 has an ideal solution. Of course not as discussed in chapter 3 this can only appear if the parameter vector equals to the areas of the map regions. A cartogram P is called optimal if all objective functions are minimized simultaneously. Figure 4.1 shows the region of objective function values [101] where for illustration only the area error dA and the shape ideal error dS are observed and we assume that the maps topology is preserved. The cartogram P would be an ideal solution. On that map shape error and area error equals zero. The problem instance on the 0 00 0 figure does not show an optimal solution but it shows two efficient points P and P . P minimize the 00 00 area error where P minimize the shape error. P is a local minimum. dS 6

Ps @ @ @ @ s 000 P s 00 0

P

sP

ideal

- dA

Figure 4.1: Region of the objective function

33

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms Behind all that constrains, as stated above, the computation time is a very important factor for cartogram generation. It does not make sense to find an optimal solution after hours or days, if we can find a solution close to the optimal solution after seconds or minutes. Especially in information visualization, were the users have many interactions with the visualization tools, we need a very fast cartogram generation procedure which allows us to get the result in a very short time period.

4.3 The CartoDraw Algorithm 4.3.1 Basic Idea The main idea of the CartoDraw algorithm is to incrementally reposition the vertices along a series of scanlines. A scanline is a line segment of arbitrary length and position. Each scanline defines a scan section, orthogonal to the scanline. All points within a scan section are repositioned in a single step. For each section on a scanline, a target scaling factor for each of its polygons is determined according to their area error factors. Vertices are then repositioned according to the polygon scaling factors and distances to the scanline. The repositioning may be parallel or orthogonal to the scanlines. If the shape error introduced by applying a scanline exceeds some threshold, its candidate vertex repositionings are discarded. Scanlines should be applied to parts of the map where the area error is large and there is still potential for improvement. A simple approach to scanline generation is to use horizontal and vertical line segments positioned on a regular grid. Significantly better results can be obtained by a manual scanline placement, guided by the shape of the input polygons and the local potential for improvement. Note that the incremental repositioning of vertices per scanline application is intentionally small, compared to the expected change in area. This means the same scanline may need to be applied many times to make large adjustments in an area. Before we describe the main CartoDraw algorithm, we first introduce the scanline algorithm.

4.3.2 Scanline Algorithm The key to the CartoDraw algorithm is the scanline heuristic, which incrementally repositions vertices along scanlines. A scanline sl is a line segment of arbitrary position and length and is partitioned into n portions of length |sl| n . The scanline section points (spi )i=0,...,n define n + 1 sections of the polygon mesh, which are orthogonal to the scanline (see figure 4.2(a)). In one step of the scanline algorithm, all vertices

(a) Scanline section

(b) Scanline section with limited range

Figure 4.2: Scanline algorithm notations and overview v ∈ Vi within a certain distance (ξ = |sl| 2n ) of li are considered for incremental repositioning (see figure 4.2a). Let SPi be the set of polygons (by index number) which have at least one vertex in scanline section (i)i=0,...,n .

34

4.3 The CartoDraw Algorithm Then, the scaling factor SFi is determined according to the area error of all polygons p in section i: ! x˜r − A(pr ) x˜r SFi = const · ∑ · n . (4.12) r∈SPi x˜r + A(pr ) ∑l∈Si x˜l Next, we have to determine the direction o(v) of a vertex v and apply the scaling factor SFi to reposition the vertex. The repositioning can be done either in the direction of the scanline (direction = scanline) or in the direction of the section line li . The algorithm is shown in algorithm 3. Note that the scanline sections always span the full range orthogonal to the scanline of the polygon net. If we want to restrict the changes to be local in both directions, we can optionally limit the considered polygons to those close to the scanline (see figure 4.2(b)). This option is not reflected in the algorithm shown in algorithm 3. A demonstration of the scanline algorithm functionality is given in figure 4.3. Scanline(P , X˜ , sl){ /* set of scanline section points which lie on sl */ foreach sp ∈ {spi | spi = s + ni (t − s), i = (0 . . . n)} { /* section line */ li = sp⊥~sl /* vertices v in scanline section i, i.e. closer than ξ to li */ Vi = {v ∈ V | |li − v| ≤ ξ)} /* numbers of polygons which contain at least one vertex from Vi */ SPi = { j ∈ N | ∃v : v ∈ Vi ∧ v ∈ p j } /* compute scalingfactor */ x˜r −A(pr ) x˜r +A(pr )

SFi = const · ∑r∈Si

· ∑nx˜r

l∈Si x˜l

foreach v ∈ Vi { if (direction = scanline) o(v) =

−−→ v⊥li −−→ |v⊥li |

sl · |sl|

else /* direction = section line li */ −−→ li o(v) = v⊥sl −−→ · |l | ; i |v⊥sl|

v = v + SFi · o(v) } } } Algorithm 3: Scanline

4.3.3 The CartoDraw Main Algorithm Having defined the components of the CartoDraw algorithm, we can now describe its main procedure. The algorithm assumes as input a set of polygons P , a scaling vector of the desired statistical parameter ˜ and a set of scanlines SL, which can be determined automatically or manually (see subsection 4.3.4). X, Output is the modified set of polygons P which describes the cartogram. The algorithm works as follows (see figure 4). For each scanline, the algorithm applies the scanline transformation and checks the results. If the area difference dA introduced by the scanline transformation is below a certain threshold εA and the shape distortion is below a certain threshold εs , then the changes are retained and otherwise discarded. Then, the algorithm proceeds with the next scanline until all scanlines are applied in the same way. At

35

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

● ●

●

●

●

● ● ● ● ● ●

●

●

● ● ● ● ● ● ●

●

●

●

●

●

●

● ● ● ●

●

● ● ● ●

●

●

●

●

● ● ● ● ● ● ●

●

●

● ● ● ● ● ● ●

●

●

●

●

●

● ● ● ●

●

● ● ● ● ●

●

●

● ● ● ● ● ● ●

●

●

●

● ●

● ● ● ● ● ● ●

●

●

●

●

● ● ● ●

(a) Contraction

● ● ● ● ●

●

●

● ● ● ● ● ● ●

●

●

● ● ●

●

●

●

● ● ● ●

● ● ● ● ● ● ●

● ●

● ● ● ● ● ● ●

● ● ● ●

●

●

●

●

●

●

● ● ● ● ● ● ●

●

●

● ● ● ● ● ● ●

● ● ● ●

●

●

●

●

●

● ● ● ●

●

●

●

●

● ● ● ●

● ● ● ● ● ● ●

●

●

● ● ● ● ● ●

● ● ●

●

●

●

●

●

●

●

●

●

●

●

● ● ● ● ● ● ●

●

●

● ● ● ● ●

●

●

● ● ●

●

●

●

●

●

●

(b) Inverse contraction

Figure 4.3: A demonstration of the scanline idea in two different situations – In the figures, the green lines indicates the scanline and the grey lines indicates the eleven section lines. The red areas have to be contracted 4.3(a) in contrast to blue areas were the direction of the scanline transformation is reversed to stretch the mesh in each section line step 4.3(b). this point, the algorithm checks whether in applying all scanlines an improvement of the area error has been obtained. If this is the case, the algorithm applies all scanlines again and repeats the entire procedure until no further improvement is reached (area improvement below ε). Since the area error improvement must be positive and above the threshold ε in each iteration, the area error is monotonously decreasing and termination of the algorithm is guaranteed. Note that in applying an individual scanline, we allow the algorithm to potentially increase the area error, to allow escaping local optima. Also, notice that after applying a scanline, all the other ones remaining to be processed must be transformed as well, so that they correspond properly to the transformed map. CartoDraw(P , X˜ , SL, εNumberOfIteration ){ do{ AreaError = dA (X˜ , P ); foreach (sl ∈ SL){ P = ScanLine (P , X˜ , sl); /* make persistend iff topology, shape and area tests are passed */ if (dT == 0 and dS (P , P ) < εs and AreaError − dA (X˜ , P ) > εA ) P = P; } }while ( /* no further area error improvement */ AreaError−dA (X˜ , P ) ≥ ε and /* area error falls below a given threshold */ dA (X˜ , P ) > εAreaError and /* loop reaches the maximal number of allowed iterations */ IterationCount++ < εNumberOfIteration ); return(P ); } Algorithm 4: CartoDraw

4.3.4 Automatic versus Interactive Scanline Placement So far we assumed that the set of scanlines SL used by the CartoDraw algorithm are given. In this subsection, we discuss how the scanlines can be obtained. Our implementation allows them to be defined

36

4.3 The CartoDraw Algorithm automatically or interactively. The automatic generation of scanlines uses a fixed grid of horizontal and vertical scanlines (see figure 4.4(a)). The grid’s resolution can be varied, but within reason this has only a minor influence on the result. Because only those scanlines that do not induce a higher shape and area error are applied, generating many useless scanlines causes a potential loss in efficiency, but does not affect the quality of the result. The best cartograms seem to be obtained when the scanlines are well adapted to the shape of the input polygons and are placed in areas with a high potential for improvement. Automatic placement based on these criteria is difficult to achieve, so we allow the user to interactively position the scanlines depending on the result of the previous steps. We can store all the scanlines specified by the human in generating a specific cartogram, and re-apply them later to different data on the same map. This makes it practical to generate a continuous time series of cartograms, without user interaction in each step. In our experience, manual positioning of scanlines is not difficult and can be done quickly. Figure 4.4(b) shows an example of a set of manually placed scanlines. It took about 5 minutes to enter these scanlines. Note that parts of the map that need large changes have many scanlines of varying lengths, while other parts have hardly any scanlines.2 Figure 4.5 shows a few intermediate steps of incrementally applying the automatic scanlines shown in figure 4.4a to the U.S. population cartogram problem. The area error is encoded in red for polygons that should be smaller and blue for polygons that should be larger. The algorithm quickly provides nice results in some areas which are well adapted to horizontal and vertical scanlines (e.g., the mid-western states and New England states). In other areas, the improvement that can be reached by global horizontal and vertical scanlines seems limited (e.g. California or New York & Pennsylvania). Figure 4.6 shows a similar sequence applying the interactive scanlines shown in figure 4.4b to the U.S. population cartogram problem. The local non-orthogonal scanlines specified interactively allow a better adaption of the algorithm to the shape and area error of the polygons, and therefore provide better results. The residual area error obtained from interactive scanline placement is much lower than that obtained by automatic placement, with both having about the same shape error. A detailed comparison of shape and area error of the automatic versus interactive scanline placements is provided in section 4.3.5.

4.3.5 Evaluation of the Algorithm The algorithm as described in the previous section has been implemented in C using the LEDA library [97] and run on a number of different example applications. Unless noted otherwise, the tests were performed on a 1 GHz Pentium computer with 128 Mbytes of main memory. In this section, we report and discuss the results and compare the effectiveness and efficiency of the different approaches. Although our focus is on efficiency, the examples show that our CartoDraw algorithm also provides results of very high quality. 2A

construction video sequence can be accessed here [76]

(a) Automatic scanlines

(b) Interactive scanlines

Figure 4.4: Automatically versus interactively placed scanlines

37

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

(a) Step 0

(b) Step 12

(c) Step 21

(d) Step 30

(e) Step 36

Figure 4.5: Cartogram construction steps with automatically placed scanlines

(a) Step 0

(b) Step 10

(c) Step 20

(d) Step 40

(e) Step 60

(f) Step 80

(g) Step 100

(h) Step 120

(i) Step 140

(j) Step 149

Figure 4.6: Cartogram construction steps with interactively placed scanlines For most of the examples, we continue to use a state map of the continental U.S. as a running example. Let n corresponds to the number of map nodes. In each iteration of the CartoDraw main loop and on each section line step each node v ∈ P has to be accessed on time. Since the number of iteration and section line steps is constant the time complexity is at most O(n).

Time Complexity

Figure 4.7 shows population cartograms generated by our algorithm and by the techniques proposed by Tobler [121] and by Kocmoud and House [90]. A visual comparison shows that our approach offers comparable if not better visual results, with the geography of the United States being clearly perceivable.

Comparison with Previous Methods

(a) Tobler [121]

(b) Kocmoud & House [90]

(c) Scanline-Based algorithm

Figure 4.7: Comparison of cartogram drawing algorithms To evaluate the results analytically, figure 4.8(a) shows the total area error dA for all three approaches. Figure 4.8(a) shows that our proposal provides even better results than the complex optimization-based approach by Kocmoud and House [90]. Since the total area error is basically an average over the statewise area error , in figure 4.8(b) we show the area error state by state, sorted according to the area error. Figure 4.8(b) reveals that for most states our approach provides a much better area error than the

38

4.3 The CartoDraw Algorithm Tobler cartogram and a slightly better area error than the Kocmoud & House cartogram, with very few exceptions.

(a) Total area error

(b) Area error state-wise sorted

(c) Efficiency comparison

Figure 4.8: Area error and efficiency comparison (1980 U.S. population cartogram)

In terms of efficiency, our approach is much faster than existing techniques. While previous approaches need hours or even days to compute a solution, our implementation runs in a matter of seconds. Figure 4.8(c) shows that our scanline-based heuristic needs about 25 seconds while the Kocmoud & House approach needs about 16 hours, making our approach about 2000 times faster.3

Comparison of the CartoDraw Variants

One important aspect of the CartoDraw algorithm is the specification of the scanlines. As mentioned previously, we allow scanlines to be determined automatically or interactively. In this subsection, we compare these two approaches with respect to effectiveness (quality of the results) and efficiency (time needed to produce the results).

(a) Traditional

(b) Automatic scanlines

(c) Interactive scanlines

Figure 4.9: The figure display U.S. population cartograms as results of CartoDraw with automatically and interactively placed scanlines. The area errors dA in 4.9(a), 4.9(b), and 4.9(c) are 0.36, 0.21, and 0.1, respectively.

In figure 4.9, we show the original U.S. map (figure 4.9(a) with the results of the CartoDraw algorithm using automatically generated scanlines (figure 4.9(b)) and interactively generated scanlines (figure 4.9(b)). Both approaches provide high quality cartograms. Figure 4.9 shows that the area error dA is much lower for the interactive scanlines, but shape distortion seems to be higher.

Effectiveness

3 The

comparison assumes that both algorithms run on a 120 MHz computer with 32 Mbytes RAM.

39

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

(a) State polygons

(b) Global polygon

Figure 4.10: shape error versus area error comparison (interactive scanlines) To measure the shape distortion, we use the Fourier-based shape similarity function (see subsection 4.2.2). In figure 4.10, we compare the tradeoff between area and shape error for each incremental step of the algorithm. Each point in figures 4.10a and b corresponds to one intermediate result of the CartoDraw algorithm (with interactive scanlines). The result shows the trade-off between area error and shape distortion: In the beginning, there is a large area error dA = 0.36. By applying a scanline, the area error is improved but the shape becomes more distorted. It is therefore natural that the curve goes from the lower right to the upper left until the area error is small enough or the shape distortion reaches some threshold. A similar behavior can be observed for the global shape. There is however a slight difference: While the area error still improves from one step to the next, the distortion global shape in some cases does not get worse.

Figure 4.11: Comparison of automatic and interactive scanlines Comparing the area error–shape error tradeoff of interactive versus automatic scanlines reveals some interesting properties of our algorithm (see figure 4.11). In the beginning, both approaches have a similar trend in shape-area error tradeoff. At a certain point, however, the automatically generated scanlines lead to a deterioration in area error which subsequent scanlines are not able to improve. In case of interactively generated scanlines, the area error continues to improve by smaller and smaller increments. Note the jump in shape error for an area error of about dA = 0.15. At this point we switched the direction from scanline to section line (see scanline algorithm in subsection 4.3.2), which leads to a continued improvement of the area error but a considerable deterioration of the shape error. We also performed extensive experiments to evaluate the efficiency of the CartoDraw algorithm. The time needed to run the algorithm on the U.S. population data is about 2 seconds. If we change the parameter vector, the time needed for the reduction step of chapter 3.5 versus the scanline execution

Efficiency

40

4.4 M-CartoDraw–Using Medial Axes as Skeleton varies slightly between 40% and 60%. Figure 4.12(a) shows the percentages needed for the two steps of the algorithm for nine different parameter vectors, namely long-distance telephone call volume data by state for nine time steps during a day. Note that the reduction step can be pre-computed so that it does not have to be re-run each time the algorithm is executed.

(a) Reduction versus scanline step

(b) No. of scanlines (U.S. states)

(c) No. of polygons

Figure 4.12: Efficiency tests We also analyzed the effect of changing the length of scanlines. Figure 4.12(b) shows the results for the 144 interactively defined scanlines for the U.S. population data. The time needed to process a scanline depends only on the number of scanline sections which in turn depends only on the length of the scanlines. This means that a steep increase corresponds to long scanlines and a shallow increase corresponds to short scanline. Figure 4.12(b) reveals that shorter scanlines are more likely toward the end of the process and are used for fine tuning some portions of the polygon. Nevertheless, some shorter scanlines are applied regularly in the process as indicated by the irregularities in the curve. Our final efficiency analysis was aimed at testing the dependency of the CartoDraw algorithm on the number of polygons. Since we do not have many different real data sets with a widely varying number of polygons, we generated synthetic data sets, namely checker boards with an increasing number of rectangular polygons. We then used random numbers for initializing the parameter vectors. Figure 4.12(c) shows the results of these tests, revealing, as expected from the time complexity analysis above, a clear linear dependency on the number of polygons. The algorithm needs about 16 seconds for a polygon net consisting of 90,000 polygons. Note, however, that in this case the number of vertices per polygon is very low (four) and a reduction of vertices is not necessary.

4.4 M-CartoDraw–Using Medial Axes as Skeleton CartoDraw can compute cartograms using manual placed scanlines or by running the the scanline method over a regular grid. In this part of the chapter we want to introduce an extension, called M-CartoDraw, to compute cartograms fully automatic. The basic idea of our algorithm is to incrementally reposition the vertices of the polygon mesh using medial axis segments as scanlines. The medial axis or skeleton of a 2D region are the loci of the centers of its maximal inscribed circles. There are many publications and equivalent definitions of the medial axis transformation [11, 13, 103, 20, 97, 24, 20, 28]. For example, is is also defined as the centers of the circumcircles of a Delaunay triangulation. A more intuitive definition is the prairie fire transformation [103]. Imagine that the interior of the polygon is dry grass and the exterior is unburnable wet grass. Suppose a fire is set simultaneously at all points on the polygon’s boundary. The fire propagates at uniform speed toward the middle of the figure. At some points, however, different fire fronts meet and extinguish each other. These points are called quench points of the fire; the set of quench points defines the skeleton of the figure. The medial axes can be gained by generalizing the Voronoi diagrams (see [103, page 179] and [34, page 319]) allowing infinite set of points on the boundary of the polygons. This generalization is illustrated in

41

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms figure 4.13. To illustrate the application of medial axis to cartograms, figure 4.14(a) shows a U.S. map and its medial axis. We will use census population data for the target area vector V . Area error is encoded with a bipolar red/blue colormap. Blue regions should be larger, red regions smaller. Color intensity indicates magnitude.

(a)

(b)

(c)

(d)

(e)

(f)

(g)

(h)

(i)

(j)

(k)

(l)

(m)

(n)

Figure 4.13: The picture displays 12 different levels of the medial axes computation (4.13(a) – 4.13(l)) of a sample polygon. On each figure, we computed the Voronoi diagram (red segments, see [97, 24] for details) of the black points on the border of the polygon. All edges which lie completely inside the bounded region form the medial axes (green segments) of the polygon. Subfigures 4.13(m) and 4.13(n) show the resulting “skeleton” for the sample polygon and the U.S. boundary, respectively.

4.4.1 Basic Idea Consider a line (called a scanline) drawn inside a polygon. Our algorithm computes line segments (called section lines) perpendicular to the scanline at regular intervals. Consider the two edges on the boundary of the polygon intersected by a section line on either side of the scanline. These edges divide the polygon boundary into two chains. If the polygon is to be expanded, the algorithm applies a translation parallel to the scanline to each vertex on chains (in opposite directions) to stretch the polygon. If it is being contracted, the direction of translation is reversed. Our algorithm repeatedly applies medial axis segments as scanlines, thus using the shape of the polygon to make local expansions or contractions. Figure 4.14(c) shows three examples of this process. In the

42

4.4 M-CartoDraw–Using Medial Axes as Skeleton

(a) Map with area error and medial axes

(b) Example section lines

(c) Stretching and contracting the global polygon

Figure 4.14: The basic idea of the cartogram algorithm mid-west a section line contracts the global shape while in the north-east and Florida the global shape is stretched. The section lines are inserted in regular intervals on the medial axis which are the “scanlines” of the algorithm. Figure 4.14(b), shows a few section lines at six different map locations.

4.4.2 The M-CartoDraw Main Algorithm Beside the description of the M-CartoDraw algorithm in [77], in this thesis we will make use of the previous section. The processing of a single medial axis segment is one scanline step as described in Algorithm 3. As mentioned earlier, the scanline function determines whether the mesh is to be stretched or contracted, and the amount of adjustment. It is computed as a weighted average of the area errors of the polygons cut by the section line, weighted by their scale factors. Note that the algorithm does not calculate new positions of all vertices for each section line. Instead, it aggregates the distortion vectors for each point and applies the aggregate vector after all section lines of a medial axis segment have been considered. The basic structure of M-CartoDraw is presented in Algorithm 5. The main function takes as input the polygon mesh P and the desired parameter vector X . The main loop iterates until the area error falls below a given threshold εAreaError . In each iteration, the medial axes of the global polygon is determined and assigned to set of scanlines SL. Next, the main loop calls the CartoDraw function using only one iteration to stretch and contract the polygon mesh however it depends on the parameter vector. The function can be extended by a control over the shape error of all polygons and the shape error of the global polygon. Since CartoDraw itself checks the shape error and because to be sparingly with computation time, further “check” are dispensable at that branch of the code. Furthermore it is possible to call different variants of the CartoDraw function.4 An alternative cartogram transformation could be, that we just stretch and contract the global polygon of the input map and after that we use a bilinear interpolation to transform the inner nodes of the mesh. An advantage of that method is that the transformation is a very smooth especially for a cartogram sequence. This variant of CartoDraw has been used for the AT&T call volume series which can be seen in chapter 7 (see also [75, 76]). Observe that in processing an individual medial axis segment, we allow the algorithm to potentially increase the area error to escape local minima. However, in each iteration of the main loop the area error decreases monotonically, so termination is guaranteed. Figure 4.15 shows a few steps in incrementally applying M-CartoDraw to a U.S. population cartogram. As before, the blue polygons should be larger, and red ones smaller. The algorithm quickly provides nice results in areas which are well suited to the proposed approach(e.g. the Midwest, New England, California, New York, and Pennsylvania). 4 It

should be mentioned that we have experimented with at least ten different CartoDraw and scanline variants and subvariants during the last four years. In this thesis we will only present the most two successful versions.

43

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

M-CartoDraw(P , X˜ ){ /* since the area error is larger than a given threshold */ while(dA (P , X˜ ) ≥ εAreaError ){ /* compute the global polygon */ G =computeGlobalPolygon(P ); /* compute the medial axes of the global polygon */ SL =computeMedialAxes(G );

P =CartoDraw(P , X˜ , SL, 1); } return(P ); } Algorithm 5: M-CartoDraw

(a) red–blue bipolar colormap indicating area error

(b) Step 0

(c) Step 1

(h) Step 6

(d) Step 2

(i) Step 7

(e) Step 3

(j) Step 8

(f) Step 4

(k) Step 9

(g) Step 5

(l) Step 10

Figure 4.15: M-CartoDraw construction series; area error in step 10 is less than 3%.

44

4.4 M-CartoDraw–Using Medial Axes as Skeleton

4.4.3 Robustness and Stability Medial axis transforms are susceptible to problems due to noise and error in the input data set. Although a treatment of this is outside the scope of our work, practical solutions based on pruning strategies and simplification have been studied extensively[45]. Also, as noted by several authors, it is reasonable to generate cartograms from decimated maps, mitigating some of these issues.

4.4.4 Extensions of the Cartogram Algorithm One problem with the proposed algorithm is that the medial axis of the global polygon may not allow local adjustment of certain regions, though they may have high area error. An example of this in the United States map can be found in the upper Midwest (see figure 4.14(a)). Previous experiments with an interactive scanline-based cartogram algorithm suggest that manually placing additional scanlines in such regions can improve the resulting cartograms. • Clustering Regions One approach is to cluster regions that have area errors in the same direction, i.e. they all need to expand or contract (see figure 4.16(b)). We compute medial axis for each such cluster and then apply Algorithm 3. The cluster regions are processed in order of decreasing aggregate area error. • All Polygons The cluster-based approach can be extended further by computing the medial axis of each polygon in the input map. Figure 3 shows the polygons and their scanlines. Again, the scanlines of each polygon are considered in order of decreasing area error.

(a) Interactive scanlines

(b) Cluster region medial axis

(c) All polygon medial axis

Figure 4.16: Extensions of the cartogram algorithm

4.4.5 Evaluation of the Algorithm The algorithm described above was implemented in C++ using the LEDA library [97] and runs on Microsoft Windows and Linux. Tests were performed on a 1,5 GHz Intel Xeon server with 4 GBytes of main memory (although only 15MB were needed) under Linux. In this section, we discuss the results and compare our approach with some alternatives. On the whole, our method provides cartograms competitive with previous approaches (see figure 3.4), with the geography of the United States being clearly recognizable. Time Complexity Let m corresponds to the number of global nodes of the mesh m = |GP(P |). For getting the medial axes5 , M-CartoDraw needs to compute the Voronoi-diagram. This can be done in O(m log m). Since the number of medial axis segments depend linearly on the number of global nodes m of the input set and the number of iteration is constant, the algorithm for generating the cartogram needs at most O(m log m + n · m) time. 5 Assuming

simple polygons, there are also solutions for getting an approximation of the media axes in linear time [20].

45

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms

(a) Red–blue colormap used to demonstrate the area error

(b) 0:00 am (EST)

(c) 6:00am (EST)

(d) 12:00pm (EST)

(e) 6:00pm (EST)

Figure 4.17: U.S. telephone call volume data over 24 hours. The color of each polygon represents the area error. White polygons are distorted with an area error close to 0, blue polygons should be made larger and red polygons should be made smaller. Figure 4.17 shows the output of M-CartoDraw with call usage in the U.S. The picture shows cartograms of volume of a telephone service at four different time points (midnight, 6 a.m., noon, 6 p.m. EST) of one day. All the cartograms provide high quality in the sense that the geography of the U.S. is clearly recognizable, while the area error is less than 5% in each. The color of each polygon represents the area error. White polygons are perfectly distorted with an area error close to 0, blue polygons should be larger, and red should be smaller. The visualizations show interesting patterns of phone service usage that reflect the different time zones of the U.S. 200

Effectiveness

US−State Map

Tobler Pseudo Cartogram

CartoDraw Interactive M−CartoDraw

150 M−CartoDraw M−CartoDraw Kocmoud House

50

Kocmoud House

100

Total Shape Error

Tobler Pseudo Cartogram

CartoDraw Interactive CartoDraw Interactive CartoDraw Automatic

0

CartoDraw Automatic

0.05 0.1

0.2 Relative Area Error

0.3

(a) Area error comparison

0.4

10^2

10^3 10^4 Computation Time [seconds]

(b) Computation time comparison

0.10

0.15

0.20

0.25

0.30

0.35

0.40

Relative Area Error

(c) Shape versus area error

Figure 4.18: Effectiveness and efficiency comparison using the U.S. state map Compared to the scanline approach in section 4.3, M-CartoDraw yields better results in relation to the area shape error trade–off as can be seen in figure 4.18(c). To measure shape distortion, we employed the Fourier–based method introduced in [75]. In figure 4.18(c), each point corresponds to the intermediate solution found in one M-CartoDraw step. At the beginning, the area error is larger than 36% for all maps. With increasing number of iterations, the area error decreases and the shape error grows due to distortions that are introduced. As expected, the curve traces from the lower right corner up to the left corner until the area error is small enough, the area error difference is less than its threshold, or the shape distortion is larger than a given threshold. In most cases, shape error and area error have an inverse relationship. The diagram also shows that the final shape error depends on the area error at the beginning. That is because maps starting with a high area error need to be distorted more heavily than those with lower area error. The diagram also implies that the slope of the curve corresponding to M-CartoDraw is much more constant than that of the scanline approach of section 4.3, which can be attributed to extensive human interactions. Figure 4.18(a) shows the total area error for M-CartoDraw (with 3% area error) and [75, 90]. This figure shows that the proposed approach

46

4.5 Conclusions is preferable to the in section 4.3 described technique and to the hybrid optimization-based approach of [90]. The multi panel plot [21] on figure 4.19 demonstrates the state wise trade off between shape error and area error over the number of iterations using M-CartoDraw for the distortion and the U.S. population data as input. On each panel (bottom to top) we doubled the displayed number of iterations starting with the initial map (bottom) with no shape errors. Each point on the figure represents one state. All states which has to be smaller (which means that x˜j − A(p j ) ≤ 0) were colored red and blue otherwise. The plot reverifies the theoretic work in chapter 3. It can be seen that it is impossible to eliminate the area error without allowing shape error. For some states it is even impossible to get the area error below a threshold. Furthermore, on an increasing number of iteration the area error improvement decrease. Iteration 10 5 0

Iteration 10 5 0

Iteration 10 5 0

Iteration 10 5

ShapeError

0

Iteration 10 5 0

Iteration 10 5 0

Iteration 10 5 0

Iteration 10 5 0

Iteration 10 5 0 −1.0

−0.5

0.0

0.5

1.0

ScalingFactor

Figure 4.19: Shape error versus area error–On an ideal plot, on the top panel, all points have been moved in the middle with no shape error.

We performed experiments to evaluate the efficiency of the proposed algorithm. For this study we did not include the computation time needed to simplify (decimate) the input map, because we treat this an external one-time pre-computation. The main advantage of our approach is its low running time; timings range from six seconds for the U.S. state map to five minutes for the U.S. county map (with about 3000 polygons). Finding the medial axis is about half the total running time. This compares favorably with the prior best known approach [90], which (adjusted for current CPUs) takes about two orders of magnitude longer to compute a cartogram. This is demonstrated in figure 4.18(b), comparing M-CartoDraw’s running time with that of [90]. The test assumed that the algorithm runs on a 120MHz computer with 32MByte RAM. Note that the Y scale is logarithmic. Efficiency

4.5 Conclusions In this study we analyzed and discussed the problem of efficient contiguous cartogram drawing, and proposed two optimistic algorithm that outperforms previous techniques by orders of magnitude and provides results that are at least as correct. The first algorithm is enhance by a medial axis-based techniques which is used for computing a skeleton of the input mesh.

47

4 CartoDraw: A Fast Algorithm for Generating Contiguous Cartograms Experiments show that the proposed algorithms offers good results for a variety of applications and scales to a large number of input polygons. For medium sized data sets, the performance is sufficient for an interactive display of network traffic levels in telecom applications. Although the proposed algorithm is a significant step toward fast, reliable, and effective cartogram generation, there remain several promising directions for further research, including the dependency of the results on the selected scanlines and the improvement of automatic scanline placement. It would be interesting to study general methods for computing a morph (homotopy) with specified boundary properties that optimizes some function of the interior. Our method of using medial axis segments as scanlines can be further generalized (for example, applying vectors in the direction of flow from the medial axis to the boundary). The proposed algorithm can be enhanced in the 3D space for graph layouts.

48

5 RecMap: An Algorithm for Generating Rectangular Map Approximations 5.1 Introduction Contiguous cartograms are marvelous and their main advantages is that shape of the map is preserved as much as possible. Nevertheless, as it was proven in chapter 3, there exist maps and parameter values where it is impossible to reduce the area error. Practically CartoDraw works well for map up to 100 polygons. If we have more than 500 map regions it becomes more and more difficult to reduce the area error. Especially for data analysts it is important to have an accurate presentation of the data. Therefore, we will introduce a new cartogram technique called RecMap to compute cartograms with – no area error – and we will give a wide variety of constrains to the user to produce high quality visualizations. Cartographers and geographers used cartograms or value–by–area maps long before computers were available (see the introduction by Daniel Keim and Stephen North in [77]). As mentioned earlier the basic idea of a cartogram is to distort a map by resizing its regions according to some external geography– related parameter. First hand-made cartograms can be found in [107, pp. 216–217]. Because constructing cartograms manually is a very cost-intensive and time consuming task, researchers oversimplified the shapes of the map. The map of figure 5.1 shows a partitioning of the U.S. into rectangles. Here, the area of a region corresponds to its population in 1958. A detailed description of how to construct rectangular cartograms manually can be found in [107].

Figure 5.1: Erwin Raisz’s hand-made value–by–area cartogram shows the population of the U.S. in 1958, (Erwin Raisz, Principles of Cartography, 1962, McGraw-Hill Book Company, Inc., Fig. 21.4 c permission by courtesy of McGraw-Hill Education)

49

5 RecMap: An Algorithm for Generating Rectangular Map Approximations The construction of cartograms is a very difficult task because, on the one hand, one has to resize the regions according to their geo–spatial statistical values and, on the other hand, one has to take into account that the (original) shapes of the regions and their neighborhood relationships (topology) are preserved as much as possible. Consequently, the study of automated methods for drawing cartograms is of considerable interest. In the meantime, many automatic visualization techniques have been developed (for an overview see chapter 3). In the following we will give a short overview of related cartogram techniques and space filling visualization techniques. Circular cartograms [30] (see figure 5.2(a)) ignore the shape of the input polygons completely and represent them as circles. In many cases, the area and topology constraints have to be relaxed, too. The general applicability of this technique is open to question. Tree-Maps [62], which are a well–known information visualization technique, are an appropriate method to display data with a given hierarchic order. They divide the display area into rectangles such that the area of each rectangle corresponds to its statistical value. Figure 5.2(b) displays an example where Tree-Maps1 are used for visualizing U.S. census data. To the best of our knowledge there do not exist any automatic procedures which compute the split hierarchy of the map. This work has to be done by the user via interaction.

NY

CA

TX

(a) Circle cartograms [30, 32]

(b) Tree-Map [102]

FL

(c) Quad trees [108]

(d) Hand drawn rectangular cartogram (Borden D. (e) Automatic generated rectangular cartogram (permission Dent, Cartography: Thematic Map Design, 1999, by courtesy of Bettina Speckmann) [125, 127]. McGraw-Hill Book Company, Inc., Fig. 11.10 perc mission by courtesy of McGraw-Hill Education) [27].

Figure 5.2: Related work on RecMap using the U.S. map and the corresponding population data as input. Quad trees [42, 108, 24] are well known from the computational geometry and used for storage and retrieval for higher dimensional points. In Figure 5.2(c) the faces in the Quad tree corresponds to the 1 We

50

thank Catherin Plaisant for preparing the Tree-Map picture in figure 5.2(b)

5.2 Problem Definition statistical value. The computation of the tree structure is linear in the number of nodes. A drawback of that technique is that it does not take into account the regions neighborhoods and their shapes (aspect ratios). An interesting approach of computing rectangular cartograms has been currently introduced [125, 127] and can be seen in figure 5.2(e). This approach is based on existing VLSI layout algorithms. The basic idea of the algorithm works as follows. In a first step the cartogram procedure creates a 4-connected triangulated plane graph of its pseudo dual input map2 . The second step computes the rectangular layout by employing a linear time rectangular edge labeling REL algorithm by He and Kant[63]. While the REL algorithm computes an arbitrary layout without taking the desired area values, aspect ratio, and polygon neighborhood into account, the generated layout has to be stretched or contracted perpendicular to the x and y axes according to a given parameter vector in the final step. Therefore Speckmann and van Kreveld implemented a segment moving heuristic which is similar to the CartoDraw algorithm described in the previous chapters. Since the quality of the REL algorithm result depends on the triangulation of the 4TP graph, several rectangular map partitions are possible. There are some major drawbacks with this technique. First in general the area error of the in [125, 127] cited approach can not be eliminated completely which means that there exists a polygon mesh and a parameter vector so that the resulting map has at least one region where the area does not reflect the statistical value. Since our motivation of approximating the regions by rectangles is based on eliminating the area error, the techniques is not an improvement in the sense of information visualization. Furthermore it seem that the algorithm induces a large set of possible solutions (more than 4000 for the U.S. map which are more than 40 time more then what RecMap produces) which have to be evaluated. The computation time for that can be very high and it should therefore not be underestimated. Figure 5.2(e) shows a population cartogram of the U.S. using a modified variant which provides almost no area error [126, 127]. Most of the techniques which have been presented so far do not take the shape and the topology of the map into account, e.g., [42, 102, 30], or the area error in contiguous cartograms cannot be eliminated completely, e.g., [75, 125]. The idea of this work is to approximate familiar land covering map region by rectangles and to find a partition of the available screen space where the areas of these rectangular regions are proportional to given statistical values. In order to support the understanding of the information represented by a cartogram we try to place the rectangles as close as possible to their original positions and as close as possible to their neighbors. We define two variants of this optimization problem and present two corresponding algorithms called MP1 and MP2 which generate space filling partitions of the screen space with respect to the given geo–locations. Both algorithms construct cartograms where the area of each rectangle of the cartogram is proportional to its area within the map. The difference between these construction procedures is that the first method does not allow empty space, whereas the second one preserves the shapes of the polygons. Both algorithms runs within a meta heuristic. The remainder of this chapter is organized as follows: Section 5.2 is devoted to a formal description of the (variants of the) map partition problem or cartogram problem. In Section 5.3, we present two solution procedures. The efficiency of our new approach is shown in Section 5.4. Applications of this work will be shown in chapter 7.

5.2 Problem Definition In this section, we give a formulation of the problem of determining a near–optimal cartogram P = {p1 , . . . , pR } for a given map P = {p1 , . . . , pR } consisting of R polygons or regions and vector X˜ = (x˜r )r=1,...,R of spatial data values x˜r ≥ 0 with ∑Rr=1 x˜r = 1. For this, we first refer to the constraints 2A

4-connected triangulated plane graph, also called 4TP graph, is a graph where each inner face is a triangle, the exterior face is a quadrangle, and the degrees of all inner nodes is at least four [63].

51

5 RecMap: An Algorithm for Generating Rectangular Map Approximations which have to be met during the optimization process. Hereafter, we turn to the single components of the objective function.

5.2.1 Constraints When determining P we can choose among several possibilities of representing the regions of P . We have decided to use rectangular polygons as in this way the expressiveness of P is not impaired by insignificant details of the shapes of the polygons of P . As indicated before, we name this type of cartogram rectangular map. Hence, we have to meet the following constraints in any case: • P is planar, • each polygon p ∈ P is a rectangle, and • each polygon p ∈ P is neighbor of at least one different polygon p0 ∈ P . A cartogram P obeying these constraints is called feasible. The set of feasible cartograms is denoted by M .

5.2.2 Objective Function The quality of P depends on two aspects: First, we have to evaluate whether the polygons of P can be easily recognized in P . Second, the areas of the polygons of P have to reflect the geo–spatial data values given by X . In general, these requirements represent conflicting goals. Based on these aspects, we use five criteria in order to evaluate the quality of P . These criteria, which correspond to the components of the objective function, are presented in the following. o o

o o

o

o o

o

o

o

o

o

o

o

o

o

o o o

o

o o

oo

o

o

o o

o

o

o

o o o

o o o

o

o

o

o

o o

o

o

o

o

o

o

o o

o o o

o

o

o

o

o

o

o

o

o

o

o o

o o

o

o

o

o

o

o

o o

o o o

o

o

o

o

o o

o o

o

o o

o

o o

o o o

o

o

Figure 5.3: The figures show the adjacency graphs of the U.S. map (left) and a corresponding map partition (right). The red colored segments indicate the topology error.

Area

The quality of P w.r.t. the criterion “area” is measured similar to equation 4.7 using equation 4.5 by the area error dA with dA = dA (X˜ , P ) R

=

∑

j=1

52

d˜A (x˜j , p j ) ·

(5.1) x˜j R ∑ j=1 x˜j

! (5.2)

5.2 Problem Definition Shape

The shape error dS reflects the average relative deviation of the shape of a polygon pr ∈ P from that of its corresponding polygon pr ∈ P and is determined as follows: dS = dS (P , P )

(5.3)

R

=

1 |s(pr ) − s(pr )| ·∑ . R r=1 s(pr )

(5.4)

The shape s(pr ) or s(pr ) of a polygon pr ∈ P or pr ∈ P is measured by the ratio of its maximum extension in horizontal direction and its maximum extension in vertical direction, respectively. Topology

The topology error dT is an indicator of the deviation of the neighborhood relationships given by P from those given by P . To obtain dT , we first have to compute the adjacency graphs or pseudo dual graphs Ga and Ga of P and P , respectively. An adjacency graph reflects the neighborhood relationships between the polygons of a polygon mesh (see [101], p. 267). To obtain that graph, we first introduce a vertex for each polygon of the polygon mesh. Next, for each pair of neighbored polygons, we add an edge between the corresponding vertices. dT = dT (P , P ) |E a \Ea | + |Ea \E a | = , |E a ∪ Ea |

(5.5) (5.6)

where E a and Ea denote the set of edges of Ga and Ga , respectively. The topology error reflects the number of neighborhood relationships being solely contained in one of both polygon meshes and is normalized to the interval [0, 1]. An example for the calculation of dT is given by figure 5.3. Relative Polygon Positions

An important criterion for the recognizability of the polygons in P are their relative positions. But since they are only partially reflected by the adjacency graph we use the (relative) position error with dR = dR (P , P ) =

2 1 R−1 R · · ∑ ∑ αr,ρ , R · (R − 1) 180◦ r=1 ρ=r+1

(5.7) (5.8)

which is normalized to the interval [0, 1]. αr,ρ = arccos(~ur,ρ ·~ur,ρ )/(|~ur,ρ | · |~ur,ρ |) measures the deviation of the relative positions of polygons pr and pρ from those of pr and pρ with the help of vectors ~ur,ρ = c(pρ ) − c(pr ) and ~ur,ρ = c(pρ ) − c(pr ) where c(pr ) and c(pr ) stand for the centers of gravity of pr and pr , respectively. Empty Space

As we make use of rectangular maps it might happen that P contains “holes” or empty space which comprises those areas which are completely surrounded by filled space, i.e. by polygons of P . Consequently, we also measure the quality of P by the empty space error dE (P ) with

53

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

dE = dE (P ) At (P ) − A f (P ) = , At (P )

(5.9) (5.10)

which equals the share of empty area in the total area At (P ) of P . At (P ) stands for the space being enclosed by the boundary of P . Again, E(P ) is normalized to the interval [0, 1].

5.2.3 Formulation of the Optimization Problem To give the user full control over the visualization goals we have developed two variants of the map partition problem each of them focussing on different components of objective function f (P ) = (dA , dS , dT , dR , dE )T

(5.11)

. Variant 1 (MP1)

Since one of the most important aspects w.r.t. the expressiveness of cartograms is that spatial data is represented by area, we require that dA equals zero. In order to use the full screen space, we demand that dE equals zero, too. Hence, using the constraints and the components of f which have been introduced above, we can state the first variant of the map partition problem being considered in this paper as the following vector minimum problem:

Min. s.t.

f (P ) P ∈ M , dA = 0, and dE = 0.

(5.12) (5.13)

Variant 2 (MP2) Like for (MP1), we demand that no area error occurs. Second, in order to take the recognizability of the polygons into account, we do not allow any shape error. Consequently, we obtain the following optimization problem:

Min. s.t.

f (P ) P ∈ M , dA = 0, and dS = 0.

(5.14) (5.15)

It is likely that (MP1) and (MP2) represent N P –hard optimization problems. Recently a N P –hard proof appeared for a rectangular cartogram problem variant [10].

5.3 The RecMap Algorithm In the following, we are going to present heuristic solution procedures for both variants of the map partition problem. First, we refer to a heuristic for (MP1). Hereafter, we present a method which computes a near–optimal solution for (MP2). To obtain cartograms of high quality, we repeat the construction of cartograms using a genetic algorithm (see [51], 2000) which guides the optimization process. In each iteration of this meta heuristic, a set or generation of cartograms or individuals is generated. An individual is characterized by three aspects: the genotype, the construction algorithm, and the phenotype. The genotype stands for the information

54

5.3 The RecMap Algorithm needed to generate the corresponding phenotype using a certain construction algorithm. In our context, the genotype corresponds to an array of nonnegative integers and the phenotype to a (feasible) cartogram. The individuals of a generation are evaluated by means of a weighted objective function fb which is derived from f . Then, we select a predefined number of best individuals and determine the next generation out of their genotypes by applying replication and mutation. This process is repeated until a predefined number of generations has been generated or a given amount of time has elapsed. The best cartogram which has been found so far is returned. RecMap Meta-Heuristic() /* STEP 1 (initialization step) */ Create I0 ; I ? = (−1, . . . , −1); Fb? := ∞ /* STEP 2 (main step) */ FOR ν := 0 TO n DO FOR I ∈ Iν DO /* compute a candidate cartogram */ Determine MP1 P (I) IF fb(P (I)) < fb? THEN I ? := I; fb? := fb(P (I)) IF ν < n THEN Create Iν+1 RETURN I ? Algorithm 6: Genetic algorithm The weights ws , we , wt , wr of fb can be set by the user according to her or his visualization goals. In this way, the user gains control over the visualization process and result. The effect of different weights on the resulting cartograms is demonstrated in figure 5.4 w.r.t. our heuristic for (MP2). For example, figure 5.4(a) shows the cartogram which is obtained if the weight for dT is set to one and the other weights are set to zero. (Figures 5.4(b) and 5.4(c) have to be interpreted in an analogous manner.) The cartogram of figure 5.4(d) is obtained if all weights are set to one.

5.3.1 Variant 1 Basic Idea

In order to achieve dE = 0, our heuristic is based on the procedure of [79] which — starting with a single e by adding a rectangle in each step in such a rectangle — computes a sequence of partial cartograms P way that no empty space can occur. In the following, we first give a detailed description of this basic procedure which serves as the construction algorithm within our genetic algorithm. Initialization Step

In the initialization step, we first draw the initial partial cartogram which consists of a rectangle, denoted by p1 , with an horizontal extension of dx =

max

max xri − min

r=1,...,R i=1,...,nr

min xri

r=1,...,R i=1,...,nr

(5.16)

55

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

ME

NH VT

MA RI CT

NY

NJ

DE PA DC

WV OH

KY

MI

IN

MN IL

ME

SC

MI WI

MD

NH

VA NC

MI

IA

MT

MO

SD

ND

MN

MA

PA

MI

WA

AL KS

RI

WI

TN

NE OK

CT

MT

AR MS GA

CO

NM

OR

ID

NV

UT

NE

NJ

IA IL

LA TX

CO

KS

OH

IN

MO

FL

UT

WV

OK NV

VT

NY

AZ

CA

ID

DE

DC

KY

NM

NC

TN

AZ

AR

OR WA

SC

MS

TX

AL LA

GA

CA

FL

(a) w{e,t,r} = (0, 1, 0) MI

(b) w{e,t,r} = (0, 0, 1)

WI KY

WV MT KS

NE

AR

CA

IN

IA

MN

ME

WA

CT

OR

OR

NE UT

NY

OH

NY RI

MI

MT

ID NV

CO

IA CT

KS

IL

IL MS

WA

MI

WI

VT

NH MO

LA

UT

ME NH MN

MA

MI ID

AZ

VT

RI

OK

NM AZ

DC

NM

TN

NJ

NV

MO

CA

DE

WV

KY

TX

PA DC

NC

CO

NJ

PA

OH

IN

OK

MA

DE

AR

NC

TN SC

SC

MS

GA

LA

AL

GA

FL AL TX

FL

(c) w{e,t,r} = (1, 0, 0)

(d) w{e,t,r} = (0.3, 0.3, 1)

Figure 5.4: Cartograms resulting from different weights for the components of fb and a vertical extension of dy =

max

max yri − min

r=1,...,R i=1,...,nr

min yri .

r=1,...,R i=1,...,nr

(5.17)

(nr stands for the number of nodes of pr and (xri , yri ) for the position of the ith vertex of pr in clockwise order.) Second, we compute the center of gravity c(pr ) for each polygon p ∈ P and plot this point into the starting rectangle. In the following, the polygons of P are represented by their centers of gravity. Main Step

In the main step, we perform a sequence of so–called splits. Each split refers to a rectangular polygon e , which contains at least two centers of gravity, and divides it into two new rectangular polygons, p∈P each of them containing at least one center of gravity. In this way, we construct a sequence of partial e with no empty space error. Each p ∈ P e represents the aggregation of those polygons of P cartograms P which correspond to the centers of gravity c(pr ) being contained in p (i.e. c(pr ) ∈ p). The main step ends, when each rectangle contains exactly one center of gravity and hence no further e with R polygons. split can be done. Consequently, after R − 1 splits we obtain a partial cartogram P e This final (partial) cartogram corresponds to a (complete) cartogram: P = P . The polygons of P have to be re–numbered because, as indicated before, a rectangle p ∈ P represents that polygon pr ∈ P which corresponds to the single center of gravity being included in p. Therefore, p gets the index r.

56

5.3 The RecMap Algorithm We differ between two types of splits: a horizontal split and a vertical split. A horizontal (vertical) split e to be split, which results in two introduces a horizontal (vertical) splitting line into the rectangle p ∈ P 0 00 0 00 new polygons p and p with p being below (left) of p . Splitting is done in such a way that, after each e split, we have for the current partial cartogram P A(pr ) e| |P

∑ A(pρ )

=

∑

x˜r

e |), (r = 1, . . . , |P

(5.18)

c(pr )∈p

ρ=1

e is proportional to the sum ∑c(p )∈p x˜r of the spatial data values of the polygons i.e. the area of pr ∈ P r e e as equally as pr ∈ P being associated with c(pr ) ∈ p (r = 1, . . . , |P |). We try to split a polygon p ∈ P possible: If we do a horizontal (vertical) split, we scan the points c(pr ) ∈ p from bottom to top (left to right), and add them to p0 until we have

∑

x˜r ≥

c(pr )∈p0

1 · x˜r . 2 c(p∑)∈p

(5.19)

r

Those centers of gravity of p which have not been added to p0 are added to p00 . If p contains two centers of gravity, we stop after having scanned the first. Provided that we perform a horizontal or vertical split e , the splitting line is placed into pr such that the height or the breadth of p0 equals of pr ∈ P ∑c(pr )∈p0 x˜r · (yr3 − yr1 ) ∑c(pr )∈p x˜r

or

∑c(pr )∈p0 x˜r · (x3r − x1r ) , ∑c(pr )∈p x˜r

(5.20)

respectively3 . The RecMap –Algorithm for Variant 1

A major drawback of the procedure described in the previous section is its rigidity. This means, that the polygons resulting from a horizontal split have to be split vertically in any case and vice versa. But in this way, no special attention is paid to the shapes of the polygons and the neighborhood relationships between them. For example, if the majority of the polygons p ∈ P possesses a longish shape (i.e. s(p) < 1) the procedure might lead to seriously deformed cartograms, i.e. cartograms P with high values for dS and dT . In such a case, it would be indicated to prefer vertical splits. This drawback can be avoided by using split sequences. For example, let a cartogram P be obtained by performing a horizontal split and two vertical splits afterwards. If we associate a horizontal split with 0 and a vertical split with 1, we get the split sequence (0, 1, 1). This split sequence can be conceived as the genotype of P . In general, the genotype of a cartogram is a vector (Iλ )λ=1,...,R−1 of (binary) values Iλ ∈ {0, 1}. To use the construction algorithm described above w.r.t. a given split sequence (Iλ )λ=1,...,R−1 , it has to be adapted accordingly. For this, we introduce variable λ which stands for the split position which is currently considered. Iλ represents the splitting type to be chosen for the λth split. At the end of the algorithm, λ equals R − 1. The adapted construction algorithm is given by Algorithm 7. The split sequence can be also represented as a tree (see figure 5.5(a)). Each node of the tree represents one polygon. The leaf-nodes represents the final cartogram and all other nodes represents one polygon during the construction process. In this example the split type is encoded as red/black color. The node 3 Please

note, that the notation of a spacial data value x˜r differs from the (xr , yr ) location of the center of gravity of a polygon pr ∈ P .

57

5 RecMap: An Algorithm for Generating Rectangular Map Approximations Determine MP1 (P (I)) /* STEP 1 (initialization step) */ Pe := {p1 }; S := {p1 }; λ := 1 /* STEP 2 (main step) */ WHILE S 6= 0/ DO Remove p from S IF |{pr ∈ P |c(pr ) ∈ p}| > 1 THEN IF Iλ = 0 THEN Split p horizontally into p0 and p00 ELSE Split p vertically into p0 and p00

S := S ∪ {p00 }; S := S ∪ {p0 } Pe := Pe \{p}; Pe := Pe ∪ {p0 , p00 } λ := λ + 1 e RETURN P Algorithm 7: The RecMap MP1 construction procedure with the number 1 is the root of the tree. While red nodes force vertical splits, black nodes force horizontal splits. The split sequence for our demonstration is defined as follows: (Iλ )λ=1,...,R = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)

(5.21) (5.22) (5.23) (5.24) (5.25)

Please note, that the split sequence is usually not as regular as in the example above. The applied split sequence on MP1 can be seen in figure 5.5(b) using the U.S. state population data set.

5.3.2 Variant 2 Basic Idea

In literature, we find an optimization problem in the context of inner–plant layout planning (see [101], p. 255 et seqq.) which shows certain similarities to (MP2). This layout problem can be roughly stated as follows: We are given a rectangular site, a set of machines (being described by their ground plans), and the amounts of material which have to be transported between them. The objective is to find a layout, i.e. a plan with the positions of the machines on the site, such that the transportation costs are minimized, i.e. that machines with a high transportation intensity in between are located as close as possible. The map partition problem considered here is similar to the layout problem in so far as there are also given a set of rectangular areas (i.e. polygons) which have to be placed such that the distances between them are taken into consideration.

58

5.3 The RecMap Algorithm 1

2

3

4

5

6

California

Washington

Oregon

Idaho

9

7

8

Arizona

Nevada

Montana

11

Wyoming

25

14

10

12

16

Utah

13

New_Mexico

Colorado

North_Dakota

17

Nebraska

South_Dakota

Texas

Oklahoma

19

Minnesota

26

15

20

18

21

Kansas

Missouri

22

23

Iowa

Arkansas

24

Wisconsin

28

Louisiana

Mississippi

29

Alabama

Tennessee

Illinois

Kentucky

31

37

27

32

30

33

Indiana

Michigan

34

Ohio

38

35

Georgia

Florida

36

South_Carolina

West_Virginia

North_Carolina

40

Pennsylvania

Maryland

43

39

41

Virginia

42

Delaware

44

New_York

New_Jersey

45

Connecticut

46

Vermont

47

New_Hampshire

Massachusetts

Rhode_Island

Maine

(a) The figure displays the split tree of the figure 5.5(b). Red nodes indicate horizontal and black nodes indicate vertical splits. The tree has been drawn using the dot program from Graphviz [49].

(b) All 47 MP1 splits for a alternating x–y splitting sequence.

Figure 5.5: A demonstration of RecMap MP1’ construction using U.S. census 2000 population data on state level and a regular split sequence. The construction algorithm of our heuristic for (MP2) relies on two ideas of the procedure of [46] which is derived from a graph theoretical model of the layout problem. First, in the initialization step, we choose a specific polygon, called the core polygon pc , to be the center of the layout or cartogram. Second, e , i.e. starting with pc , in the main step, we construct a sequence of partial layouts or partial cartograms P the remaining R − 1 polygons are placed around it one after the other until we have found a (complete) e. cartogram P = P Initialization Step

As the area error and the shape error ought to be zero, the breadth b(pr ) and height h(pr ) of each polygon pr ∈ P are given by q R b(pr ) = x˜r · ∑r=1 a(pr ) · s(pr ) and s x˜r · ∑Rr=1 a(pr ) h(pr ) = , s(pr )

(5.26) (5.27)

59

5 RecMap: An Algorithm for Generating Rectangular Map Approximations respectively. The core polygon pc is determined with the help of an extension Gax of Ga which is obtained by introducing an additional node R + 1 for the outer region of P . pc corresponds to a polygon pr which has the maximum distance dr,R+1 from the outer region pR+1 where the distance between two polygons is measured by the minimum number of edges between their corresponding nodes in Gax . Main Step

As indicated before, the main step consists of R − 1 partial steps. In each of these steps, we choose an e . Let index r among the set of indices of those polygons which have not yet been created and added to P e . Then, the index of the newly created polygon has Q denote the set of indices of the polygons pr ∈ P to be taken from {1, . . . , R}\Q. Since the maintenance of the neighborhood relationships of P is of high importance w.r.t. the recognizability of the polygons of P , we have a look at Ga in order to determine the index r0 of the polygon to be added next. We demand that the corresponding polygon pr0 ∈ P is a neighbor of at least one of those polygons pr ∈ P the indices of which are contained in Q because e would not be connected and we could otherwise, the adjacency graph of the resulting partial cartogram P no longer guarantee P ∈ M for the final cartogram P . Let N (pr ) denote the set of neighbors of pr in P , i.e. N (pr ) = {pρ |(r, ρ) ∈ Ea }. If there are several indices which could be selected, we choose the lowest one. Thus, we set r0 = min{r ∈ {1, . . . , R}\Q|pr ∈

[ ρ∈Q

N (pρ )}.

(5.28)

After the determination of r0 we have to decide where to place the corresponding polygon pr0 . In general, there exists an infinite number of possible positions for pr0 . In order to keep the computational time low, we have to restrict ourselves to a finite subset. Pretests have revealed that the following procedure is favorable: We scan the edges e of the boundary E of Pe and determine a set Πe of possible positions for pr0 w.r.t. e. For example, we add the end points and the middle point of e to Πe as possible positions of the lower left corner of pr0 . To keep the number of possible positions low and to exclude infeasible positions, each position (x, y) ∈ Πe is checked within a multi–stage test. For instance, we remove those positions from Πe which cause a violation of the planarity or which could lead to unacceptable high values of dT or dR . Subsequent to the determination of the sets Πe we select the best position (x? , y? ) and create pr0 at that position. (x? , y? ) is found as follows: Let Π denote the set of all feasible positions which have been found e by adding the newly created polygon pr0 at so far. For each position (x, y) ∈ Π, we temporarily extend P e ) of the values of the components of f . The position associated (x, y) and compute a weighted sum fb(P with the minimum value of fb equals (x? , y? ). The RecMap –Algorithm for Variant 2

e is of high importance we have to encode this inforAs the order in which the polygons are added to P mation by the genotype of P which equals a vector (Iλ )λ=1,...,R of values Iλ ∈ {1, . . . , R} with Iλ 6= Iλ0 for λ 6= λ0 (λ, λ0 ∈ {1, . . . , R}). For the use within our genetic algorithm–based heuristic, we have to adapt the choice of r0 accordingly. This means, that among the set of indices of those polygons which are neighbors of polygons pr with r ∈ Q, we select that index r0 which is the first of them in I. Hence, (5.28) has to be modified as follows: r0 = min{λ ∈ {1, . . . , R}|Iλ ∈ {1, . . . , R}\Q and pIλ ∈

[ ρ∈Q

N (pρ )}.

(5.29)

The construction algorithm is given by algorithm 8. An example sequence for generating an U.S. state population cartogram can be seen figure 5.6.

60

5.3 The RecMap Algorithm

Determine MP2 (P (I)) /* STEP 1 (initialization step) */ Create Gax r0 := min{r ∈ {1, . . . , R}|dr,R+1 = maxρ=1,...,R dρ,R+1 } e := {pr0 }; Q := {r0 }; pc := pr0 Create pr0 at (0, 0); P /* STEP 2 (main step) */ WHILE Q 6= {1, . . . , R} DO r0 := min{r ∈ {1, . . . , R}\Q|pr ∈ / Π := 0;

ρ∈Q N

S

(pρ )}

Q := Q ∪ {r0 }

FOR e ∈ E DO Determine Πe ; Π := Π ∪ Πe fb? := ∞ FOR (x, y) ∈ Π DO e := P e ∪ {pr0 } Create pr0 at (x, y); P e ) < fb? THEN IF fb(P e) (x? , y? ) := (x, y); fb? := fb(P

Pe := Pe \{pr0 } e := P e ∪ {pr0 } Create pr0 at (x? , y? ); P e RETURN P Algorithm 8: The RecMap MP2 construction procedure

61

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

Figure 5.6: The maps display all 49 partial cartograms of RecMap MP2 construction procedure starting with Kansas as core polygon.

5.4 Evaluation of the Algorithm The algorithm described above were implemented in ANSI–C and hence it runs on a various architectures (Intel’s 386, Apple’s PPC, and SUN’s SPARC64) and operating systems (Microsoft Windows, OpenBSD, and Linux)4 . The tests were performed on a 1.5 GHz Intel XEON compute server with 4 GB main memory under Linux (only 1 MB was needed by the algorithms). In this section, we will show some results using the U.S. census data base and U.S. election data.

5.4.1 Effectiveness and Efficiency The most expensive parts of the algorithms are the computation of the relative position error (see equation 5.8) which takes O(n2 ), where n is the number of polygons. The error function has to be computed in each iteration of the meta heuristic. The number of iterations is constant. Therefore, the complexity for the MP1 procedure is O(n2 ). Since the error function has to be computed for each of n partial cartograms using MP2, the complexity here is O(n3 ). Time Complexity

Figure 5.7 shows, for each generation within the meta heuristic of RecMap, the best cartogram which has been found by the construction procedure MP2. Figure 5.8 illustrates the respective values of the errors for both construction procedures. The scatterplot shows the conflicting goals of the error functions. The whole computation time for 10 iterations equals 0.33 seconds for (MP1) and for 11 iterations 55 seconds for (MP2) using a 2.5GHz clocked Intel XEON CPU. Each iteration step of one RecMap variant need the same time. Since RecMap gives us a useful visualization even after the first iteration a dynamic exploration of the data is guaranteed (see the cartogram yielded after Step 1 in figure 5.7). Real data

Figure 5.9 shows how computational time and several errors such as the topology and shape error depend on each other. The items being considered here are the time span which has elapsed since the start of the optimization process (“time”), dT (“topologyError”), R(P ) (“relativePositionError”), dE 4 For

62

an overview see figure 6.13 on page 87

5.4 Evaluation of the Algorithm Step 1

Step 2

Step 5

Step 6

Step 3

Step 4

Step 11

No improvement in steps {7,8,9,10}.

Figure 5.7: This figure demonstrates the continuous improvement of the feasible solutions for (MP2) with increasing number of generations. The computation time for each iteration equals 5 seconds. “emptySpaceError”, and fb(P ) (“weightedError”). As the values of dA and dS are constant, we have omitted them in this visualization. From this plot, we can conclude, that — as expected — the amounts of improvements decrease over time. Furthermore, from the plot w.r.t. dT (x–axis) and dE (y–axis) we can conclude that these components are negatively related (which confirms our finding in the theory part of this chapter). The results of the experiments with different parameter setting of RecMap’s meta heuristic (see Algorithm 6) for the MP1 construction procedure and the MP2 construction procedure are illustrated by figures 5.10(a) and 5.10(b), respectively. This kind of visualization is called levelplot [21, pp. 264]. It consists of two parts: On the left-hand, a matrix is shown, where the x–axis and the y–axis correspond to selection rate and mutation rate, respectively. The value of a combination is represented by a color. On the right-hand, a bar shows which value (in per cent) is associated with a color: The best value is represented by the color magenta and the worst by the color cyan. In this way, we can easily identify the best combination and — what is also important — “regions” of good and bad combinations. For the MP1 construction procedure, the best value for fb(P ) equals 0.243 with dA dS dT dR dE

= = = = =

0 0.524 0.582 0.109 0

(5.30) (5.31) (5.32) (5.33) (5.34)

which is obtained for a selection rate of 0.8 and a mutation rate of 0.4 after 0.3 seconds. For the MP2 construction procedure, the best value for fb(P ) equals 0.064 with dA dS dT dR dE

= = = = =

0 0.0 0.245 0.070 0.006

(5.35) (5.36) (5.37) (5.38) (5.39)

which is obtained for a selection rate of 1.0 and a mutation rate of 0.1 after 60.7 seconds. As we can see in figure 5.10(a), good and bad combinations are nearly evenly distributed. We can merely conclude that combinations with a selection rate of 0.0 and a mutation rate of 0.0 tend to yield bad results. For the MP1 based procedure, we have decided to fix the selection rate 0.8 and the mutation rate at 0.4. Whereas in figure 5.10(a) no region of good combinations can be identified, we can do so

63

●

●

●

6

●

●

8

●

●

●

2

4

6

8

10

number of iteration

● ●

●

●

6

8

10

● ● ●

●

●

●

●

●

30 20

●

●

MP1 MP2

● ●

5

●

●

0

●

4

number of iteration

10

●

●

5

●

●

25 2

relative position Error

●

●

0

shape error

●

●

●

10

0

10 20 30 40 50 60 70

●

●

●

●

number of iteration ●

●

15

●

4

●

weighted error

●

● ● ●

10

●

2

10 20 30 40 50 60 70

topology error ●

●

0

empty space error

0.0 0.2 0.4 0.6 0.8 1.0 1.2

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

2

4

6

8

10

number of iteration

(a) Objective functions

2

4

6

8

10

number of iteration

(b) Weighted objective function

Figure 5.8: The scatterplot display the errors over the number of iteration yielded by the (MP1) and (MP2) heuristics for U.S. state level. in figure 5.10(b): These are those combinations where the selection and mutation rates are in [0.1, 0.4] × [0.1, 0.4]. From this figure, we can also clearly conclude that bad values are associated with regions where the selection rate is 0.0 and mutation rate is 1.0, i.e. where cartograms have been created randomly. On the other hand, it is important that the genotypes are “refreshed” to a certain degree, because combinations with a mutation rate of zero also tend to yield bad results. If we do not use only the best individuals of a generation but all of them (i.e. selection rate is 1.0), we mostly obtain bad values, too. Finally, figure 5.11 illustrates the input and the results for the MP1 and MP2 construction procedures. We used the U.S. state level map and the census [124] population data. The selection and mutation rates are 0.4 and 0.3. The weights of the weighted objective function are ws,e,t,r = {1.0, 0.3, 0.3, 1}. Many application examples using different data and maps of RecMap can be found in chapter 7.

Beside “real world maps” we used RecMap to gain artificial maps. First we generate a regular 3 × 3 checker board (see chapter C). We tried all combination of parameter settings for the soft constraints topology, relative position, and empty space for the MP2 construction procedure. As postulated earlier, on all rectangular cartograms in figure 5.12 the hard constraints area and shape were abided, which means there is no area error and no shape error in the resulting map. The core polygon on the 3 × 3 checkerboard map is obviously the region with the id five. All polygons are placed around it. The parameter setting of figure 5.12(e), 5.12(f), and 5.12(h) achieve the best results. However the parameter setting needs some experience with the algorithm. Since we get a visual result after a couple of seconds, an interactive visualization is guaranteed. In figure 5.13 we increased the number of regions up to 49 and generated rectangular cartograms using the MP1 and MP2 construction procedures. On the mesh the core polygon is the region assigned with number 25. The computation time is the same as for the U.S. map. Using arbitrary sized maps we were able to analyze the computation time dependency of the number of map regions. The result can be seen in figure 5.14. The charts shows that in contrast to MP1 the computation time for MP2 increase non linear. This can be explained by the increasing search space for the MP2 construction procedure and the complexity of the relative position error function. Synthetic data

64

5.5 Conclusion ●

● ●

●

9

●

●

●

●

8

8.5

9

8.5 ●

●

●

●

●

8 ●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

1.2

●

0.2 9

11

10

6.5

1.2

●

0.6 0.4

● ●

●

7.5

●

●

emptySpaceError ●

●

●

1

7

0.8

●

●

0.8

1

●

●

7.5 7

6.5

●

●

●

●

weightedError ●

0.4

● ●

0.2

0.6

●

●

11

●

10 ●

●

●

● ●

● ●

●

●

●

●

relativePositionError

7

●

36

30

32

34

●

●

●

●

●

7

●

● ●

● ● ●

●

●

●

●

●

topologyError

●

●

●

30 ●

9

●

●

●

32

●

8

36

34

●

●

9 8

●

●

● ●

9

●

● ●

●

30 28

●

●

●

●

26 ●

60

40

50

60

50 40 time

30

24

26

28

30

24

●

10

20

30

●

●

●

● ●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

●

20 10

●

●

●

●

●

●

●

●

● ●

●

● ● ●

●

● ●

● ●

Figure 5.9: The figure illustrates the scatterplot matrix of RecMap MP2 using U.S. state map and the U.S. census population data.

5.4.2 Discussion RecMap is a very fast algorithm for computing rectangular cartograms. Nevertheless, further improvements can be made. The following guideline will give some ideas for a further improvement of computation time. First, a genetic algorithms, as Algorithm 6 is, are perfectly practical for parallel computing. Inside the meta heuristic we can run each candidate transformation call on one node. Often modern compute servers have Intel XEON systems and furthermore they have more than one single CPU. So here we can run each candidate transformation as single thread. Assuming a four processor XEON System, the same input, and the same parameter setting as in figure 5.11 we will get a result after 4 seconds. Additionally, we can reduce the search space of MP2 by using hierarchical layouts. This is especially useful if we have a high number of map regions (see U.S. county level mesh in the application chapter). This can be done when we group the map into subregions, e.g., assuming the U.S. map, we divide it into northeast, south, Midwest, etc. Or we use a hierarchy layout. e.g., using the U.S. map, we compute a state level cartogram and inside each state we draw a county level cartogram of the corresponding state. This grouping reduces the computation and it will make the resulting cartogram easier to understand. The results, especially the computation time, are promising to use the MP1 as split procedure for the PixelMap-algorithm (see chapter 2) for generating high quality pixel maps.

5.5 Conclusion In this study we have analyzed and discussed the problem of efficient map partitioning and have proposed two automatic, scalable, and flexible algorithms called RecMap for generating rectangular map partitions. Here, the user has an explicit control of all visualization constraints. Our approach is novel because its features (no area error, explicit control of shape, topology, empty space, and relative position constraints) are not provided by previous approaches. This new technique enables interactive views of detail at various levels to find very fast interesting patterns or subsets. The experiments show that our algorithms offer good results for a variety of applications, and their

65

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

−34

1

1 −8.5

−32

0.8

0.8

−30

0.4

−28

0.2

−26

0.2

0

−24

0

mutation rate

mutation rate

−8

0.6

0.6 −7.5

0.4 −7

−6.5

0

0.2

0.4 0.6 selection rate

0.8

0

1

0.2

(a) RecMap (MP1)

0.4 0.6 selection rate

0.8

1

(b) RecMap (MP2)

Figure 5.10: Analysis of the genetic based meta heuristic – Levelplots show the results of the selectionand mutation rate parameters. The weighted objective function is encoded by color. IA

MT

ME

WI

MI

NE

WA

OR ID

CO

IL

NH WA

NY PA

IN

MN

NJ

OH KS

VT ME NH

VT WV

MN

RI

MA

OR

NV

NE UT

CT

MI

WI

NY RI

MI

MT

ID

CO NM

IA CT

KS

IL

NJ

PA

OH

IN

OK

MA

AZ

DE UT

NM

CA

DC

DC

AR

MO

CA TX

MO NV

AR

AZ

MS

TX

TN

GA AL KY

FL

DE

WV

KY

NC

TN SC

NC

MS

LA

AL

GA

LA OK

(a) U.S. map

FL

SC

(b) MP1

(c) MP2

Figure 5.11: Results of RecMap for the U.S. population data speed even allows an interactive display. Further research could comprise the combination of our approach and other visualization techniques such as pixel–oriented techniques (where the pixels could be placed directly into their corresponding map partitions). Such a combination would allow to visualize areas with high information density. Additional material (e.g., an executable file) and ongoing work can be found on our web site http://dbvis.inf. uni-konstanz.de/˜panse/recmap.

66

5.5 Conclusion

3

6

3

2 5

2

8

(a)

4

7

(b)

(c)

2

3

9

2

6

8

2

7

7

1

8

4

9

5

3

8

5

5

4

7

(f)

7

(e)

6

3

8

4

1

(d)

6

1

9

5

7

4

1

9

2

6

3

8

5

1

7

4

7

4

2

8

5

3

9

9

2

9 5

6

3

8 1

1

6

6

9

1

(g)

4

(h)

Figure 5.12: RecMap MP2 on a regular 3×3 checkerboard map using different weights – 5.12(a) the input map; 5.12(b) topology preserving; 5.12(c) empty space preserving; 5.12(d) relative position preserving; 5.12(e) relative position and empty space error preserving; 5.12(f) topology preserving and empty space error; 5.12(g) topology preserving and relative position; 5.12(h) all constraints

7

14

21

28

35

42

35

7

49

14

21

13

20

27

34

41

48

5

12

19

26

33

40

47

4

11

18

25

32

39

46

3

10

17

24

31

38

45

2

9

16

23

30

37

44

1

8

15

7

14

5

12

20

21

42

35

49

6

6

20

40

34

13 47

48

27

41

48

32

12

5

28

42

34

13

6

49

28

27

33

46

41

19

33

26

19

47

40 39

26

39

11

18 25

46 3

4

24 11

10

17

25

31

4

38

45

18

32

10 3

38

24 31

17

45

23

2

23

9 15

22

29

36

43

(a) Synthetic checkerboard map

1

8

2

30

9

16

30

44 37

16

44

1

15

29

22

43

36 29

36

(b) Result of MP1

37

43

8

22

(c) Result of MP2

Figure 5.13: RecMap on synthetic 7 × 7 checkerboard map

67

20

MP1 MP2

0

10

Time [sec]

30

40

5 RecMap: An Algorithm for Generating Rectangular Map Approximations

2x2

4x4

6x6

U.S. state

8x8

10x10

Number of polygons

Figure 5.14: The figure displays the time versus number of polygon comparison for a single construction step for both construction heuristics using different sizes of checker boards as input mesh. The test has been performed on a Intel Pentium M 1.6 GHz CPU using 10 geno and 10 pheno types.

68

6 Extensions and Combinations 6.1 The Visual Points Solution The Visual Points system [71] was developed to address the problem of over-plotting spatially referenced data. It works by moving points that would be drawn on already-occupied pixels to nearby unoccupied pixels, instead of over-plotting them. Visual Points assumes a hierarchical partitioning of the data space, to support efficient repositioning of the data points while preserving their distances and positions. In this study, we show how a similar idea called VP-Carto can be applied to efficient cartogram generation. The basic idea is to insert multiple points for a polygon, whose count is proportional to its target area. The points are inserted into the hierarchical data structure, and the distortion implied by the data structure is then applied to reposition the vertices of the map. Several different pixel insertion strategies are described, yielding different cartograms. Parts of this section have been published in [80].

6.1.1 The VP-Carto Algorithm In each step of the VP-Carto construction, the data set is recursively partitioned into four subsets containing the data points in four equally-sized subregions. Since the data points may not fit into the four equally size subregions, we have to determine new extensions of the four subregions (without changing the four subsets of data points) such that the data points in each subset can be visualized in its corresponding subregion. For an efficient implementation, a quadtree-like data structure manages the required information for the recursive partitioning. The partitioning is determined as follows. Starting with the root of the quadtree, in each step the data space is partitioned into four subregions. The partitioning is made such that the area occupied by each of the subregions (in pixels) is larger than the number of pixels belonging to the corresponding subregion (see figure 6.1).

6.1.2 Generating Cartograms with VP-Carto To adapt the VP-Carto technique to cartogram generation, a few changes need to be made to the original algorithm. The modified algorithm is shown in algorithm 9. The most important changes will be explained in more detail.

(a) Example data

(b) Horizontal

(c) Vertical

Figure 6.1: Original VP-Carto algorithm

69

6 Extensions and Combinations

(a) Horizontal

(b) Vertical

Figure 6.2: VP-Carto algorithm for cartograms Partitioning Strategy In cartogram generation we are interested in distorting maps instead of placing pixels, so the modified algorithm has a different partitioning strategy. In the original VP-Carto system, the borders between the quadtree partitions are only shifted as much as needed to accommodate all pixels in the quadrant. For cartogram generation, the borders are shifted according to the ratio of the number of pixels in the neighboring quadrants. For example, with the original VP-Carto algorithm, there is no change in the first step of figure 6.1(b), since there is enough space (18 pixels) in the left partition to accommodate all twelve data points. In the modified algorithm, the border shifts proportionately to the number of data points, i.e. in a ratio of 12:2 resulting in the partition shown in figure 6.2(a). Note that the result of the second step is also different (compare figure 6.1(c) and 6.2b).

˜ VPcarto(P , X){ Quadtree Q; /* empty initialized Quadtree */ foreach (polygons P ∈ P ){ point cur = FindStartPoint(P); while (pc < P.DesiredArea(X )){ /* area is represented as pixels */ now = P.ComputeNextPosition(cur); /* depends on insert strategy */ Q.InsertQuadtree(cur); pc = pc + 1; } /* while */ } /* foreach */ Trans f ormQuadtree(Q); /* moves the borders of the quadtree */ foreach (polygons P ∈ P ){ foreach (point p ∈ P){ qnode node = Q.FindNode(p); p = scale(node, p); /* depends on new height and width of node */ } /* foreach */ } /* foreach */ Algorithm 9: VPCarto

A second difference between the original and the modified VP-Carto algorithm is that pixels don’t need to be positioned. They are only needed to determine an optimal partitioning of the

No Pixel Placement.

70

6.1 The Visual Points Solution modified quadtree for the subsequent transformation of map polygons. It is also no longer necessary to search for free space to avoid overlapping pixels. Since pixels don’t need to be positioned, we can further optimize the space and time complexity of the algorithm by storing a pixel at a given position only once. To scale the polygons according to their desired size, we represent the polygons by pixels. If a polygon needs to shrink, we insert fewer pixels than what its shape accommodates, thus creating free space; if a polygon needs to expand, an excess of pixels are inserted, leading to overlapping pixels. The idea is to distort the map such that all pixels can be placed without overlap. In the best case the overlapping pixels of the growing polygons use the free space of neighboring shrinking polygons. The pixel insertion strategy determines where the pixels are placed for growing and shrinking polygons. We tried the following strategies: Pixel Insertion Strategies.

• Bottom – Top: Shrinking polygons are filled with pixels starting at the top and going downward until all pixels are set, and the overflow pixels are positioned at the top of the expanding polygons (see figure 6.3(a)). • Left – Right: Shrinking polygons are filled with pixels starting on the left going right, and the overflow pixels are positioned at the right sides of the expanding polygons (see figure 6.3(b)). • Center – Outside: Shrinking polygons are filled with pixels from the center going outward, and the overflow pixels are positioned at the edges of the expanding polygons (see figure 6.3(c)). Observe that pixels are only used to construct the quadtree-like data structure but are not actually positioned as in the case of the VP-Carto system, so the exact position of each pixel is not important. As figure 6.3(a–c) shows, the pixel insertion strategy is of great importance for the quality of the resulting cartograms, especially with respect to the shape of the polygons and the overlap of edges. The differences result from the different partitioning of the quadtree induced by the insertion strategies. After the quadtree is constructed, it is applied to distort the vertices of the polygon mesh. Each vertex is repositioned separately: First, the cell of the quadtree containing the vertex is found. Then the new position of the vertex is calculated by scaling the cells of the quadtree on each level according to the desired size of the cells (corresponding to the number of pixels). By repositioning each vertex, we iteratively construct the distorted polygon mesh.

Determination of the Polygon Mesh

6.1.3 Efficiency and Effectiveness The CartoDraw algorithm described in chapter 4 was implemented in C++ using the LEDA library [97] and the VPCarto algorithm described in section 6.1 was implemented in Java. The tests reported in this section were performed on a 1 GHz Pentium computer with 512 Mbytes of main memory. In the following, we report and discuss the results and compare the effectiveness and efficiency of both approaches. Figure 6.4 shows the measured efficiency and effectiveness results. The total run time was 3 seconds for the new VP-Carto approach, 25 seconds for the automatic scanline approach, and 16 hours for the nonlinear optimization approach by Kocmoud and House [90] (The comparison assumes that all algorithms run on a 120 MHz computer.). Note that the scale on the y-axes of figure 6.4 is logarithmic. The VPCarto approach is more than four orders of magnitude faster than the Kocmoud and House approach, about two orders of magnitude faster than the interactive scanlines, and about one order of magnitude faster than the automatic scanlines. Since the VPCarto algorithm has no explicit notion of shape, its shape preservation is not as good as that of CartoDraw. Figure 6.4(b) compares shape versus area error for population cartograms made with VPCarto and interactive scanlines, measured on the four population

71

6 Extensions and Combinations

(a) Top – bottom

(b) Left – right

(c) Center – outside

Figure 6.3: Insertion strategies cartograms. The results clearly indicate that the shape error of the CartoDraw (interactive scanlines) is always considerably better than that of the VPCarto results, and slightly worse for the area error. Since the total shape error is basically an average over the state-wise area error, figure 6.4(c) shows the shape error by state, sorted by shape error. Figure 6.4(c) reveals that the CartoDraw algorithm consistently provides a lower shape error than the VPCarto algorithm.

72

6.1 The Visual Points Solution

(a) Run time comparison

(b) Shape error versus area error

(c) Sorted shape

Figure 6.4: Efficiency and effectiveness results

73

6 Extensions and Combinations

6.2 HistoScale 6.2.1 Introduction In addition to the classical applications mentioned in the chapter above, a key motivation for cartograms as a general information visualization technique is to have a method for trading-off shape and area adjustments. pseudo-cartograms provide an efficient and convenient approximation of contiguous cartograms, since a complete computation of cartograms is expensive. In this section, we propose an efficient method called HistoScale to compute Pseudo-Cartograms. Parts of this section have been published in [78].

6.2.2 HistoScale Approach The basic idea of the HistoScale method is to distort the map regions along the two Euclidean dimensions x and y. The distortion depends on two parameters, the number of data items which are geographically located in this map area, and the area covered by this map region on the underlying map. The new pixel position (x, y) of a geo-location (λ, φ) can be computed by solving the integrals (see Tobler [121]) Z λ

x = −π Z φ

y = −π

dx (λ)dλ

(6.1)

dy (φ)dφ.

(6.2)

The distortion operations can be efficiently performed by computing two histograms with a given number of bins in two Euclidean dimensions x and y to determine the distribution of the geo-spatial data items in these dimensions. The two histograms are independent from each other, that means, the computation of the histograms can be random. The two consecutive operations in the two Euclidean dimensions x and y realize a grid which is placed on the map. The number of histogram bins can be given by the user. Lets consider an example here we want to transformation along a x direction. As input we have a polygon mesh P and a parameter vector X = (xi )i=1,...,n where xi = (λi , φi , zi ). The area of each bin corresponds to the statistical value. The transformation is separated into two steps. In a pre-processing step the histogram hx is computed by summing up the statistical values. The histogram bins are realized as an integer array. Next, we cumulate the cells of the integer array and achieve dx . In a second step, the transformation of the map is to be done. For each data point of the mesh the new position is determined. The transformation of each point is made by a bilinear interpolation between the histogram bins hx and the cumulated histogram dx (similar to the Scanline-step of CaroDraw). As output we achieve a map transformation P here the area of each region is approximated according to the histogram bins. For a practicable visualization we suggest a number of 256 histogram bins for both histograms. Figure 6.5 demonstrates the idea of HistoScale.

6.2.3 Evaluation The resulting output maps are referred to as pseudo-cartograms, since they are only approximations to the true cartogram solution. On the other hand our approach generates interesting maps and good solutions in least square sense. The computation of pseudo-histograms using our HistoScale algorithm can be done in realtime (see figure 6.6). Due to the run time behavior, HistoScale can be used as a pre-processing step for other cartogram algorithms. The complexity of the HistoScale approach is O(|P | + |X |). Efficiency

74

6.2 HistoScale HistoScale-longitude(P , X ){ /* STEP 1 */ for(i = 0; i ≤ |X |; i + +){ h[round(λi ] = h[round(λi )] + zi ; } for(i = 1; i ≤ |h|; i + +){ d[i] = h[i] + d[i − 1]; } /* STEP 2 */ foreach((λ, Ψ) ∈ P ){ (x, y) = cmptBlnrntrpltn(h, d, (λ, Ψ)); print(x, y); } } Algorithm 10: HistoScale Figure 6.6 shows, that the computation time of the CartoDraw algorithm can be reduced without losing any quality. In the application part of this thesis (see chapter 7) the reader will find several interesting applications using our HistoScale algorithm. The world population pseudo-cartogram shows clearly, that China and India are the most populated world regions. This fact has e.g., an important influence on the evolution of epidemics such as SARS, as unknown epidemics in such areas can be dangerous for the whole world population.

75

6.2 HistoScale

VisualPoints Tobler Pseudo Cartogram Kocmoud and House CartoDraw Interactive CartoDraw Automatic CartoDraw *HistoScale *HistoScale 10^1

10^2 10^3 Time [Seconds]

10^4

10^5

Figure 6.6: Time comparison - we have assumed a 120MHz Intel CPU to compute the U.S. state cartograms

77

6 Extensions and Combinations

6.3 HistoMap: A Combination of HistoScale and RecMap Often data analysts have only x-y-location as input and want a value-by-area cartogram as visualization. We can combine the HistoScale and RecMap approaches and get a new method called HistoMap. The visualization goals are as follows: 1. using the full screen size for the visualization (no holes), 2. each location should be realized as a rectangle or at least as a display pixel, 3. the relative geographic position of each location should be preserved, and 4. the aspect ratio of each box should be equalized.

6.3.1 Problem Definition As input we have a point set P = {p1 , . . . , pn } and (pi )i=1,...,n ∈ R2 and a vector X of statistical values where X = (xi )i=1,...,n with xi > 0 and xi ∈ N. The quality of P depends on two aspects. First, we want a space filling visualization where the area of each rectangle corresponds to the statistical value of each location and second, the “map” should be easily recognized as in P . These goals can be achieved using three objective functions which are: The absolute point position distance measures the difference between the x-y-location and the center of the resulting rectangle. The absolute point position dAP can be expressed by dAP = dAP (P , P )

(6.3)

n−1

∑ |pi − p˜i|

=

(6.4)

i=0

and the relative point position dRP = dRP (P , P ) n−1

=

n−1

∑ ∑

(6.5)

(|pi − p j | − | p˜i − p˜ j |)2

(6.6)

i=0 j=0, j6=i

which may be used as measures for the achievement of the neighborhood. The aspect ratio error dAR reflects the average relative deviation of the aspect ratios of the rectangles in P and can be determined as follows: dAR = dAR (P , P )

(6.7)

n−1

=

1 dyi · ∑ |1 − | n i=1 dxi

The distance function |pi − p j | can be defined by an Lm -norm (m = 1 or 2) q y y |pi − p j | = m (pxi − pxj )m + (pi − p j )m . The output can be defined as an optimization problem. The output is a • non-overlapping, • planar, and

78

(6.8)

(6.9)

6.3 HistoMap: A Combination of HistoScale and RecMap • space filling map partition P where {wrp , wap , war } ∈ R, wrp + wap + war = 1, {wrp , wap , war } ≥ 0, and n−1

˜ = xi ∑ A( p)

(6.10)

wrp · dRP + wap · dAP + war · dAR is minimized.

(6.11)

i=1

6.3.2 Solution We provide two solutions for the problem mentioned above. The first solution is based on the previously described HistoScale approach. The algorithm is extended in that way, that we have an arbitrary number of histogram bins which divide the screen space. For each bin we alternate between horizontal and vertical direction of the binning until each bin corresponds to one x-y-location and the area to the statistical value. In each binning step we have a flexible number of binning. Using a meta heuristic as described in the RecMap chapter it is possible to minimize to the weighted position and aspect constraints. Our second approach based completely on the RecMap MP1 construction procedure. Hence we compute a candidate splitting sequence of all x-y-location, determine the map partition, evaluate the candidate transformation. The transformation with the lowest error of all candidate transformations will be made persistent.

6.3.3 An Example As in many research groups, the communication in our group is based on emails. First, we applied the solution to email data. We visualized all emails which have been classified as SPAM [113] during the last two years. Therefore, we had to determine the x-y-location of the senders address. For that we used a Geo-IP-DB [96]. The result can be seen in figure 6.7

Figure 6.7: This image shows the distribution of SPAM mail reached our IMAP server. Each country has a unique color. The brightness is adjusted to the number of SPAM mails. (Thanks to Florian Mansmann for implementation and generation.) [72]

79

6 Extensions and Combinations

6.4 Combining PixelMap and RecMap The RecMap technique is useful for data exploration. The map is distorted in a way that each area corresponds to a first statistical value and hereafter, color is used for expressing quantities of a second statistical value. If we have a high number of x-y-locations, we can combine RecMap cartograms with the PixelMap technique which is a pixel-based visualization (see also [111] or chapter 2). This combination is useful because a major drawback of the PixelMap technique is that from the resulting pixel visualization it can be difficult to identify the shape of the input map regions. The combination described here combination is promising because on one hand RecMap produces a set of rectangles as layout and on the other hand PixelMap can only place pixels inside a rectangle. Furthermore, using RecMap we have a user control to achieve the relative position of the map regions which can be useful for a fast exploration. Our experience with RecMap has shown that users are able to recognize familiar regions very quickly. The input data has to be separated into regional categories. The input map must be distorted according to the number of pixels multiplied by a positive constant number. Next, for each region the PixelMap procedure is used to place each x-y-location in the pre-defined rectangle. As an additional parameter we give PixelMap the aspect ratio of the map region. Figure 6.8 shows a result for the U.S. state California. The area corresponds to the number of households (multiplied by 1.5) while each pixel in figure 6.8(b) represents one single household. The pixels are placed according to the median household income of the U.S. census data base [124]. The uni-polar color map identifies eight different income classes. The here described combination has one drawback that can

LA

(a) Rectangular cartogram

(b) Combination of PixelMap and RecMap

Figure 6.8: PixelMap-cartogram of California also be seen in the figure. Since RecMap’ layouts depend on the axes parallel transformation screen place is squandered if we have a diagonal direction of the map regions.

80

6.5 Texture Cartograms

6.5 Texture Cartograms 6.5.1 Introduction Usually most people are not very familiar with maps drawn from unknown territory. If there is an additional distortion on the map, probably a lot of people do not understand the visualization. Textures can help to fix this problem. On a texture the user has an additional orientation to navigate through the map and find well-known positions. These can be for example mountains, rivers, lakes, or even big streets; things which can be seen from the birds perspective. Furthermore, apart from generating traditional cartograms it is of interest what happens to the relief after the distortion. Let’s consider a population cartogram which would enlarge the relief surface where people live and contract these parts of the relief where less people live. Figure 6.10 shows the reliefs during the construction steps of the cartogram. It can be seen that during the construction the mountain regions are contracted in contrast to the coastline where the relief has been extracted. Another application could be the design of route maps algorithms. In this case population cartograms could be used again for drawing street details. Areas with a high number of street crossings could be enlarged and undeveloped area could be contracted. Using cartograms it is possible to get an overall view of the map.

6.5.2 The Algorithm The technique is well known from the computer graphics [135, 44, 131]. Textures can indicate rendering informations such as contours, colors, or even images. These so-called textures can be pinned on arbitrary surfaces. As an example one could put an image on a wall in an ,,info cube” as it can be seen in figure 6.9(a). Texture Mapping techniques can be applied in 1D, 2D, 3D or even in higher dimensions. For our usage we are just interested in 2D-Texture Mapping. Texture mapping first maps the image space to the texture space. In a second step the texture space has to be mapped to the object space. The mapping can be done by bilinear interpolation. Texture Mapping

The techniques can be used in combination with any topology preserving contiguous cartogram drawing algorithm. The mapping described above can be done using the mapping function: fC : R2 → [0, 1] × [0, 1] (6.12) Cartogram Texture Mapping

where fC is basically that what our cartogram algorithm does and has the following properties: fC (p) = p0 ↔ p ∈ P ∧ fC−1 ( fC (p)) = p.

(6.13)

fC can transform each point of the mesh P into its new position. In practice the mapping can be realized using an array which stores for each point of the mesh the new position. With help of this function we are now able to compute the texture cartogram in two steps. 1. In a pre-processing step we first have to pin each point of the mesh P onto the texture which is in our case an image. An result of that step can be seen in figure 6.9(b) where the mesh of the U.S. has been pinned on a checker board texture. 2. After that initialization we iterate over each polygon P ∈ P . In a second loop we map each point p ∈ P to its new position p0 using fC . The texture mapping of the graphic library has to ensure that the texels are right placed on the resulting visualization.

81

6 Extensions and Combinations

(a) Info cube

(b) Step 1: pinning the U.S. on a checker board

(c) Step 2: Transform the mesh

Figure 6.9: Demonstration of Texture Mapping Texture mapping are supported by many computer graphic libraries. We have used OpenGL, Version 1.2 [135] and ANSI-C[89]. The algorithm reads as input an arbitrary SGI formatted image with a resolution of 2i × 2i where i ∈ {1, . . . , 12} and a file which contains the polygon meshes P and P 0 as well as the one-to-one mapping function fC . In the file the points of the polygons are saved line by line. The one-to-one mapping is realized by saving p and p0 in one line separated by a delimiter. In a pre-processing step the image has to be read into the texture buffer. It has to be ensured that the texture has been clipped with the minimal bounding box to P ; Using the method shown in algorithm 11 the cartogram texture mapping can begin. Please note: OpenGL does not support rendering concave filled polygons. Before the rendering non convex polygon has to be tessellated. OpenGL has routines doing that. Because of clearance we did not include that in algorithm 11. Alternatively, the cartogram drawing algorithm can give a triangulate mesh as output. Implementation

Example

Figure 6.10 displays a multi-transformation view of the U.S. population data using a relief

map.

Figure 6.10: The figure shows 16 of 100 frames of a multitransformation view of the U.S. population data using a relief map [41]. All 100 frames can be downloaded as mpeg stream from [76]

6.5.3 Conclusion In that section, we described how we can apply texture mapping to cartogram drawing. We also give an implementation of the algorithm. Apart from that, we have seen that texture mapping cartograms are a

82

6.5 Texture Cartograms

static void drawTextureCartogram() { FILE *CartogramMappingFile; float x, y, vx, vy, x2, y2, vx2, vy2; determineMinMax(); if ((CartogramMappingFile = fopen(MappingFileName, "r")) != NULL) { glEnable(GL TEXTURE 2D); glBindTexture(GL TEXTURE 2D, texName[1]); glBegin(GL POLYGON); /* foreach (polygon P ∈ P ){foreach (point p ∈ P){...}} */ while (fscanf(CartogramMappingFile, "%f %f %f %f", &x, &y, &x2, &y2) != EOF) { if (x != NA && y != NA) { /* Normalize p = (vx, vy) ∈ [0, 1] and (vx2, vy2) = fC (p) ∈ [0, 1] */ vx = (x - xmin) / (xmax - xmin); vy = (y - ymin) / (ymax - ymin); vx2 = (x2 - xmin2) / (xmax2 - xmin2); vy2 = (y2 - ymin2) / (ymax2 - ymin2); glTexCoord2f(vx, vy); if (ORGINALMAP == 1) glVertex2f(vx, vy); else /* draw( fC (p)) */ glVertex2f(vx2, vy2); } else { glEnd(); glBegin(GL POLYGON); } } glEnd(); fclose(CartogramMappingFile); glDisable(GL TEXTURE 2D); } else { printf("Can’t open file %s", MappingFileName); exit(1); } } Algorithm 11: This algorithm computes the cartogram texture mapping using the OpenGL, Version 1.2 library. The texture mapping routine assumes that all polygon are convex. If that is not the case, the polygon tessellation must be used (see [135, pp. 467] for more details)

83

6 Extensions and Combinations powerful tool for multi-scale viewing which can help the user for an inductive orientation. Some examples of the techniques described above can be seen in the application part of this thesis.

84

6.6 CartoDraw-System

6.6 CartoDraw-System 6.6.1 The Graphical User Interface All of the described algorithms are integrated into one graphical user interface (GUI) called CartoDrawSystem. Figure 6.11 demonstrates a screen-shot of the CartoDraw-System. The main goal of this design was to have a handy program where the user can select the input data and determine the desired algorithm to compute the cartogram transformation. Because of the development history we used the LEDA [97] window and panel objects for realizing the GUI 1 . An additional feature of LEDA is that we have a very powerful graph editor for debugging the input map. An extraordinary fast processor and a high resolution wall (see 2.6) are of value, especially for the “graphical debugging” of large maps as the U.S. continental county map. The GUI provides standard input and output file-system browsing menus, many menus for parameter settings (see e.g., figure 6.11(a), 6.11(b)), and a graphical representation of the map. All data can be labeled. One of the main features is the color map setting. We have implemented the linear, logarithmic, square-root, and area error color mapping functions (see chapter B). Using a quantile function it is also possible to stress some polygons using brightness. Because of the fact that humans have different perceptional taste concerning color our frame work can load arbitrary color maps. The standard color maps which are included into the CartoDraw-System can be see in chapter B. Furthermore, the GUI provides several pre-processing scripts, such as data consistence checks, and several drawing routines.

6.6.2 Extensions During the development of algorithms we were interested to integrate our software into existing GIS components to make it usable for a wide range of users. Beside a number of open source projects [48, 116, 52], a well-known commercial product is GIS ArcView from ESRI [39]. In a feasibility study we developed a routine which can export and import the desired format that our CartoDraw-Sytem understands. A result can bee seen in figure 6.12 were we used the RecMap algorithm and the U.S. population data in combination with some ESRI bar chart visualizations.

6.6.3 System Portability Since CartoDraw uses the LEDA-library the portability is restricted to the systems where LEDA runs. CartoDraw runs on a number of architectures (SUN’sparc64, i386, SGI’MIPS) and a number of operation systems (SUNOS 5.8, SUNOS 5.9, SGI’IRIX, Linux, OpenBSD, MS’Windows) using the GNU’g++ and Microsoft’vc compiler. RecMap was implemented later and the designer decided to use ANSI-C as programming language to make it as portable as possible. Figure 6.13 illustrates a time comparison using different platforms and operation systems.

6.6.4 Outlook To make the described algorithm and pre-processing steps accessible we have designed a client server based architecture. The idea is that users can send the input data via a remote procedure call to an application server which computes the cartogram. The dot-net environment seems to be a promising tool. Further information about our CartoDraw-System, including downloadable maps and data are available from http://cartodraw.org. Future developments will also be posted to this site. 1 Since

all algorithms can be run from the command prompt (see chapter C) we can use any GUI environment, e.g., TCL/TK[43]

85

6 Extensions and Combinations

(a) Color setting

(b) RecMap settings

(c) CartoDraw-System – main window

Figure 6.11: CartoDraw–System: The figure displays the CartoDraw-system in action. Figure 6.11(c) shows a rectangular cartogram where the area is proportional to the cumulated call volume of an U.S. phone company. The color indicates the proportion between customers and call volume. In white areas the call volume is proportional to the number of customers. Blue area indicates unexhausted regions while red regions highlights region where the call volume is extraordinary high. The visualization shows directly the locations of interest which can never be achieved by a regular visualization such as a quantile-quantile-plot. The usability can be enhanced by standard labeling of interesting regions or by using specialized color mappings. For a more efficient data analysis the geo-visualization in the window of sub-figure 6.11(c) can also be combined with classical information visualization techniques such as scatter plots (including q-q-plots), parallel coordinates and interaction techniques such as zooming, linking, and brushing.

86

6.6 CartoDraw-System

Figure 6.12: ESRI ArcMap plugin using RecMap and the U.S. population data (thanks to Tobias M¨uller for the implementation)

Simulated Annealing−Kocmound/House Vis98 Xeon/2400/i386/Linux Sparc64/330/sparc64/OpenBSD Pentium M/1600/i386/Windows Pentium M/1600/i386/Linux Pentium III/500/i386/Windows Pentium III/500/i386/OpenBSD Pentium III/500/i386/Linux Pentium I/133/i386/Windows Pentium I/120/i386/Windows G4/330/ppc/Darwin 486/75/i386/OpenBSD

RecMap Xeon/2400/i386/Linux Sparc64/330/sparc64/OpenBSD

CPU clock [MHz]

Pentium M/1600/i386/Windows Pentium M/1600/i386/Linux Pentium III/500/i386/Windows Pentium III/500/i386/OpenBSD Pentium III/500/i386/Linux Pentium I/133/i386/Windows Pentium I/120/i386/Windows G4/330/ppc/Darwin 486/75/i386/OpenBSD

CartoDraw Xeon/2400/i386/Linux Sparc64/330/sparc64/OpenBSD Pentium M/1600/i386/Windows Pentium M/1600/i386/Linux Pentium III/500/i386/Windows Pentium III/500/i386/OpenBSD Pentium III/500/i386/Linux Pentium I/133/i386/Windows Pentium I/120/i386/Windows G4/330/ppc/Darwin 486/75/i386/OpenBSD

10^1

10^2

10^3

10^4

10^5

Computation time [seconds]

Figure 6.13: The graph plots the run time for several cartogram algorithms on various architectures. Even on a 486 CPU (75MHz clocked) CartoDraw it is two magnitudes faster the the best-known approach (upper panel) running on a i586 CPU (120MHz clocked).

87

6 Extensions and Combinations

88

7 Evaluation and Application The algorithms described in the previous chapters have been implemented in ANSI-C [89] and C++using the LEDA library [97] and were run on a number of different example applications. In this section, we report and discuss the results, the quality, the effectiveness and efficiency of the different approaches. Although our focus is on efficiency, the examples show that our proposed algorithms CartoDraw, MCartoDraw, HistoScale, and RecMap also provide results of very high quality. In some cases checker board examples are used. We continue to use a state map of the continental U.S. and the population data for the comparisons.

7.1 Comparison of the Quality with Previous Methods

North Dakota

Washington

Minnesota Michigan

Montana

Idaho

Maine

Wisconsin

Oregon

Michigan

South Dakota

Vermont

Iowa

New York

New Hampshire

Island

Massachusetts Rhode

Nebraska

Connecticut

Pennsylvania

Ohio

New Jersey

Illinois

Kansas

West Virginia

Delaware

Columbia

Maryland of

Indiana

Missouri

District

Colorado

Utah

Nevada

Virginia

Kentucky

California Tennessee North Carolina

Oklahoma

Arizona

Arkansas South Carolina

New Mexico Mississippi

Texas

Georgia Alabama

Louisiana

Florida

(a) Traditional map

(d) Edelsbrunner

(b) Tobler’s pseudo cartogram

(e) CartoDraw

(c) Kocmoud and House

(f) M-CartoDraw

Figure 7.1: Comparison with related contiguous cartogram drawing methods. Figure 7.1 and 7.2 show U.S. population cartograms generated by our algorithm and by the techniques proposed by Tobler [121], by Kocmoud and House [90], by Dorling [30], and van Kreveld and Speckmann [126]. A visual comparison shows that our approach offers comparable if not better visual results, with the geography of the United States being clearly perceivable. For the RecMap approach we can use an additional quality measure. Since each polygon is represented by a rectangle the question arises how good the polygon region can be approximated. Two possible layouts are presented in figure 7.3.

89

7 Evaluation and Application

(a) Circle cartogram

(b) RecCarto

Montana Maine

New Hampshire

Vermont

North Dakota

Michigan

Wisconsin

South Dakota

New York

Idaho

Vermont

Washington

New Hampshire

Rhode Island

Massachusetts

Minnesota Michigan

Washington

Iowa

Utah Colorado

Minnesota

Rhode Island

Indiana Illinois

Connecticut

Massachusetts

Ohio

Michigan

Michigan

Maine

Montana

Oregon

New York

Missouri

South Dakota

Colorado

Utah

New Jersey

Iowa

Nebraska

Nevada

Connecticut

Nebraska

Nevada

North Dakota

Idaho

Kansas

Oregon

Wisconsin

West Virginia

Kansas Illinois

Kentucky

Pennsylvania

Oklahoma

California

Ohio

Indiana

Delaware

Arizona West Virginia

Maryland

New Mexico

Tennessee

Arkansas

Kentucky Missouri

Virginia

District of Columbia

Georgia

California

Pennsylvania

North Carolina Arkansas

Arizona

New Mexico

Texas

Oklahoma

Mississippi

North Carolina

Florida

New Jersey South Carolina South Carolina

Texas

Tennessee

Maryland

Louisiana

Mississippi

Alabama

Georgia

District of Columbia

Louisiana

Alabama

Florida

Virginia Delaware

(c) RecMap (MP1)

(d) RecMap (MP2)

Figure 7.2: Comparison with related cartogram drawing methods.

90

7.1 Comparison of the Quality with Previous Methods

ND

WA ID

MN MI

MT

WI

OR

ME

MI

SD

VT

NH

WY

NY

RI MA

IA

NE

CT

PA OH

CO

UT

NV

NJ

IL

KS

WV

IN

MO

CA

TN OK

AZ

DE

DC

VA

KY

NC

AR

SC

NM MS

GA

AL

TX

LA

FL

(a) U.S. map

ND

WA

MI

MN

NH

WI

VT

NY KY

CO

MT

MI

ME OH

WY

ID

RI

IN CT

NE

SD

MA

IA

PA

UT

OR

TN

NV

TX

NJ DE

IL

KS

WV

DC

GA MS

CA

NM

VA

NC

AR

SC

MO

OK

AZ

AL

FL

LA

(b) MP1

MT MN

ND

WA

ME

MI

OR

ID

NV

UT

CO

RI CT

AZ

NM

KS OK

NH

NY

MI

WY

NE CA

VT

WI

SD

IA

IL

MO

IN

MA

PA

OH

WV

DC

DE

NJ

VA

KY

TN

NC

AR AL

GA

SC

LA

TX

MS

FL

(c) MP2

Figure 7.3: RecMap the map regions were approximated by rectangles. The area of each rectangle complies to the area of the original polygon.

91

7 Evaluation and Application simulated annealing O(n2 ) M-CartoDraw O(m · log m + m · n) RecMap-MP1 O(p2 ) RecMap-MP2 O(p3 ) HistoScale O(n) Table 7.1: Time complexity of introduced cartogram methods with number of map nodes n = |V |, number of nodes of the global polygon m = |GP(P )|, number of polygons p = |P |

7.2 Overall Effectiveness and Efficiency Comparison

0.4

Table 7.1 shows an overview of the time complexities of the introduced cartogram methods. Run time comparison for some input examples can bee seen in table 7.2. To evaluate the results analytically, figure 7.4 shows the total area error dA for all approaches. Figure 7.4 shows that our proposal provides even better results than the complex optimization-based approach by Kocmoud and House [90].

U.S. population map

0.3

Tobler (1986) Kocmoud and House (1998) DBVIS (2001−2004) Relaxed Topology

0.2

Area Error

Pseudo Cartogram

VisualPoints

0.1

HistoScale

Simulated Annealing CartoDraw Automatic

0.0

CartoDraw Interactive M−CartoDraw RecMap−MP1 1e+00

RecMap−MP2 1e+02

1e+04

1e+06

Computation Time [seconds]

Figure 7.4: The comparison of all cartogram drawing methods assumes an U.S. state level map, the U.S. population data and an i386 120 MHz clocked CPU.

In terms of efficiency, our approaches are much faster than existing techniques. While previous approaches need hours or even days to compute a solution, our implementations runs in a matter of seconds. Figure 7.4 shows that our scanline-based heuristic needs about 25 seconds while the Kocmoud & House approach needs about 16 hours, making our approach about 2000 times faster. Please note that the time axis on the plot is in logarithmic scale. Furthermore, figure 7.4 demonstrates the trade-off between the area constraint and the computation time.

92

7.3 Application of Self-Generated Data map US-state US-county NY-county Germany US-state US-county CA-county TX-county 7x7 board US-state US-county CA-county TX-county 7x7 board

|V | |E| |P | |GP(P )| dA (X , P ) dA (X , P ) time(secs) 808 1286 49 429 0.38 0.05 16 7609 20901 3085 474 0.63 0.33 223 204 443 62 88 0.67 0.05 3 3510 6010 433 1877 0.55 0.23 466 49 0.38 0 1 - 3085 0.63 0 NA 59 0.63 0 1 255 0.66 0 10 49 0.28 0 1 49 0.38 0 50 - 3085 0.63 0 ≈ 48 · 3600 59 0.63 0 180 255 0.66 0 240 49 0.28 0 40

algorithm M-CartoDraw M-CartoDraw M-CartoDraw M-CartoDraw RecMap-MP1 RecMap-MP1 RecMap-MP1 RecMap-MP1 RecMap-MP1 RecMap-MP2 RecMap-MP2 RecMap-MP2 RecMap-MP2 RecMap-MP2

Table 7.2: Run time of computed cartograms

7.3 Application of Self-Generated Data

(a) 2 × 2 checkerboard

3

(b) Preserved (CartoDraw)

6

topology (c) No empty space (RecMap MP1) and preserved shape (RecMap MP2)

9 3

2

5

8

2 1

1

4

7

(d) 3 × 3 checkerboard

6 5

4

9

8

3

2

6 5

7 1

4

9

8 7

(e) Preserved shape (RecMap MP2)

Figure 7.5: Checker board examples for different construction procedures. Figure 7.5 shows the result when we use self-generated checker boards as discussed in chapter 3. In this thesis we introduced three different solution procedures. Hence, we have a wide range of possible configurations. On all maps in figure 7.5 the size of the black regions has to be one area unit and the size of the white ones has to be four area units. On the input maps in sub figures 7.5(a) and 7.5(d) the areas are proportional to two units. Figure 7.5(b) shows a topology-preserving solution using our M-CartoDraw algorithm and the 2 × 2 checker board as input. On the map the medial axes of the global polygon are the

93

7 Evaluation and Application diagonals of the quadrat. Please note that the CartoDraw can not distort the mesh so that the area is equal to the desired area. This intention would be aimless since we do not allow to insert additional points on the polygon lines. RecMap approximates polygons by rectangles so that the area error of the map regions is avoided completely. Two different constraint configurations can be seen in figure 7.5(c). The first one avoids empty space where the second one preserve the shape of the regions. A regular 3 checker board is difficult to handle using CartoDraw since the scanline function takes the amount of the parameters of a given sized sector as factor for the transformation. In contrast, RecMap works well. Figure 7.5(e) shows two possible layouts for the 3 × 3 checker board map. Both layouts are shape-preserving. The different layouts can be explained by different parameter setting for the topology and empty space weights.

94

7.4 Application – Geographic Related Data

7.4 Application – Geographic Related Data We ran the algorithms introduced in this thesis on a number of different maps and parameter vectors.

Hawaii California

200 150

Alabama Florida

100

Endangered Species

250

300

7.4.1 Environmental and Health Data

Tennessee

Texas

50

Virginia

Montana

Alaska

0 0e+00

1e+05

2e+05

3e+05

4e+05

5e+05

Area of the States

(a) Traditional map of the U.S. including (b) A X-Y-Plot shows the area of each state Alaska and the Hawaii islands versus the number of endangered species

NewHampshire Vermont Alaska

Michigan

Minnesota Wisconsin NorthDakoda Washington

Montana Idaho

SouthDakoda Iowa

Wyoming

Oregon

Nebraska

Illinois

Indiana

Maine

RhodeIsland Pennsylvania NewYork Massachusetts Connecticut NewJersey Ohio Maryland Delaware WestVirginia DistrictofColumbia

Kentucky KansasMissouri Colorado

Virginia

Utah Nevada

Tennessee Arkansas Oklahoma

NorthCarolina SouthCarolina

California

Arizona NewMexico

Missisippi Georgia

Texas

Alabama Louisiana

Florida

Hawaii

(c) The cartogram has been distorted using our M-CartoDraw algorithm. The area on that visualization corresponds to the number of endangered species in each state.

Figure 7.6: The graphic displays the U.S. proportion of endangered species using M-CartoDraw (data: courtesy of Environmental Defense Fund).

95

7 Evaluation and Application

Figure 7.7: World SARS pseudo-cartogram – On the figure the area corresponds to the number of cases. The gray color indicates countries with SARS cases. The pseudo-cartogram is generated using HistoScale.

96

7.4 Application – Geographic Related Data

Figure 7.8: World population pseudo-cartogram (HistoScale)

97

7 Evaluation and Application

7.4.2 U.S. Election Cartograms Election data are another application for cartograms. 2000 – Bush versus Gore

The maps in figure 7.9 display visualizations of the presidential race in the year 2000. The areas in Figures 7.9(b), 7.9(c), and 7.9(d) correspond to the electoral voters. The red and blue color depict which candidate has won each state. The candidate who covers the most area of the map in figures 7.9(b), 7.9(c), and 7.9(d) has won the vote. Results of the Dez. 7, 2000

Washington

Minnesota

Montana

Wisconsin

Oregon Wyoming

Michigan

Iowa Nebraska Colorado Utah Kansas Nevada

Vermont

Illinois

Pennsylvania

Ohio Missouri Oklahoma California

NewJersey DistrictofColumbia Maryland Delaware Virginia

Arizona Arkansas Tennessee Missisippi

Texas

RhodeIsland Connecticu Massachusetts

WestVirginia

Kentucky

NewMexico

NewYork

Indiana

Louisiana

Alabama

SouthCarolina NorthCarolina Georgia

Florida

(a) Traditional map which can be archived from http://www.nytimes.com/specials/ election2000/results-pres.html MT ND ID WY MN SD NV WAOR IA CO UT

BUSH(R) GORE(D)

(b) M-CartoDraw

VT NHME WI

VT

MI

NH

RI

ME

SD MT ND MN

WV VA IL

IN

RI WI

NY

MI

MA

OH

CT MA

MO NE

KY

KS

WA

NY

TX AL

FL GA

CA

NC SC

PA

OK LA

NM

IA NE KS

WY NV UT CO

TN AZ

IN

OR

AR CA

IL ID

CT

NJ DE

MS

MD

AZ

OK

NM

PA

KY

MO TN

AR LA MS

NJ

OH WV DC VA MD

DE

NC GA

SC

TX AL FL

DC

(c) RecMap MP1

(d) RecMap MP2

Figure 7.9: U.S. election 2000 analysis (area: #electors; red: Bush; blue: Gore) 2004 – Bush versus Kerry

Figures 7.10, 7.11, 7.12, 7.13, 7.14, and 7.15 are visualizations of the 44th presidential election of the United States. On the value-by-area cartograms 50 states and 3085 continental counties, respectively, were approximated by rectangles. The aspect ratio of each county is the same as on the traditional map. The area of each rectangle corresponds to the number of population. The blue (Kerry) and red (Bush) colors show which candidate got the majority of each county. The brightness indicates the shortage of the vote. The visualization demonstrates clearly that the election was a head-to-head race, the county

98

7.4 Application – Geographic Related Data level cartograms illustrate the election behavior between high populated cities and low populated area region. The source of the election data is http://www.personal.psu.edu/users/a/c/acr181/2004_ Election.zip. The input U.S. maps are from http://www.census.gov/. Maine [4; 53; 45]

New Hampshire

Vermont [4; 50; 49]

North Dakota

[11; 53; 46]

[3; 59; 39]

Michigan

[3; 36; 63]

Washington

Minnesota

Wisconsin

[10; 52; 47]

[10; 50; 49]

[17; 51; 48]

Montana Idaho [4; 29; 69]

[7; 53; 47]

[3; 38; 61]

Wyoming [3; 29; 69]

Nebraska [5; 32; 67]

Colorado

Kansas

Illinois

[9; 46; 53]

[6; 36; 63]

[21; 55; 44]

[7; 34; 66]

[12; 62; 37]

Connecticut

Rhode Island [4; 60; 39]

[7; 54; 44]

[11; 39; 60]

Utah [5; 26; 72]

Pennsylvania

Ohio

[21; 51; 49]

Delaware [3; 53; 46]

[20; 49; 51] Arkansas

Kentucky

[6; 45; 54]

[8; 40; 60] West Virginia

Arizona

[55; 54; 45]

[31; 58; 40]

Indiana

[5; 48; 51]

Oklahoma

[15; 53; 46]

[17; 51; 48]

Massachusetts

Iowa [7; 49; 50]

Nevada

California

New Jersey

Michigan

South Dakota

[3; 39; 59]

Oregon

New York

Maryland

[5; 43; 56]

District of Columbia

[10; 56; 43]

[10; 44; 55]

[3; 90; 9]

New Mexico [5; 49; 50]

Texas

Louisiana

Missouri

[9; 42; 57]

[11; 46; 54]

Virginia [13; 46; 54]

[34; 38; 61]

Tennessee

North Carolina

[11; 43; 57]

[15; 43; 57]

Mississippi

Georgia

[6; 40; 60]

Alabama

Alaska

Hawaii

[3;34;62]

[4;55;44]

South Carolina

[15; 41; 59]

[9; 37; 63]

[8; 41; 58]

Florida [27; 47; 52]

(a) MP1 Maine [4; 53; 45]

New Hampshire

Vermont [4; 50; 49]

[3; 36; 63]

[11; 53; 46]

[3; 59; 39]

Michigan

North Dakota

Washington

Minnesota

Wisconsin

[10; 52; 47]

[10; 50; 49]

[17; 51; 48]

Montana Idaho

[7; 53; 47]

[4; 29; 69]

[3; 38; 61]

Wyoming [3; 29; 69]

Nebraska [5; 32; 67]

Colorado

Kansas

Illinois

[5; 26; 72]

[9; 46; 53]

[6; 36; 63]

[21; 55; 44]

[6; 45; 54]

[12; 62; 37]

[7; 54; 44]

[21; 51; 49]

Rhode Island [4; 60; 39]

Delaware [3; 53; 46]

[20; 49; 51]

Kentucky

Arkansas

Massachusetts

Pennsylvania

Ohio

[8; 40; 60] West Virginia [5; 43; 56]

[10; 44; 55]

[31; 58; 40]

[11; 39; 60]

Arizona

[55; 54; 45]

New York

Connecticut

Indiana

Utah

[5; 48; 51]

[7; 34; 66]

California

[15; 53; 46]

[17; 51; 48]

Iowa [7; 49; 50]

Nevada

Oklahoma

New Jersey

Michigan

South Dakota

[3; 39; 59]

Oregon

Maryland [10; 56; 43]

District of Columbia

[3; 90; 9]

New Mexico [5; 49; 50]

Texas

Louisiana

Missouri

[9; 42; 57]

[11; 46; 54]

Virginia [13; 46; 54]

[34; 38; 61]

Tennessee [11; 43; 57]

North Carolina [15; 43; 57]

Mississippi [6; 40; 60]

Alabama [9; 37; 63]

Alaska

Hawaii

[3;34;62]

[4;55;44]

Georgia [15; 41; 59]

South Carolina [8; 41; 58]

Florida [27; 47; 52]

(b) MP2

Figure 7.10: U.S. 2004 election analysis using RecMap MP2 on state level (area: #electors; red: Bush; blue: Kerry)

99

7 Evaluation and Application

Kitsap

Washington

Thurston

Pierce

Clark

Marion

Marin

Lane

Ventura

Kern

San Luis Obispo

Sonoma

Santa Barbara

Orange

Multnomah

Clackamas

San Francisco

San Mateo

Solano

Contra Costa

Santa Cruz

San Diego

Snohomish

King Butte Sacramento

San Joaquin

Alameda

Santa Clara

Monterey

Placer

Spokane

Yakima

Washoe

Davis

Ada

Stanislaus

Merced

Salt Lake

Weber

Fresno

El Paso

Lubbock

Tulare

Clark

Pima

Los Angeles

Riverside

Maricopa

Larimer

Boulder

Utah

Jefferson

El Paso

Adams

Arapahoe

Sedgwick

Bell Nueces

Denver

Oklahoma

Travis

Cleveland Bernalillo

Hidalgo

San Bernardino

Bexar

Cameron

Denton

Tarrant

McLennan

Dallas

Tulsa

Lancaster

Douglas

Collin

Shawnee

Montgomery

Harris

Brazoria

Fort Bend

Smith

Johnson

Galveston

Wyandotte

Clay

Polk

Caddo

Hennepin

Calcasieu

Greene

Jackson

Jefferson

Anoka

Ramsey

Dakota

Linn

St. Louis

Pulaski

East Baton Rouge

Lafayette

Scott

Dane

Peoria

Winnebago

St. Charles

St. Louis

St. Louis

Jefferson

Jefferson

Hinds

Orleans

McHenry

Waukesha

Milwaukee

Brown

Sangamon

Lake

Racine

Kane

DuPage

Madison

Champaign

St. Clair

Shelby

Harrison

Escambia

Jefferson

Cook

Will

Vanderburgh

Tuscaloosa

Mobile

Davidson

Lake

Madison

Ottawa

Berrien

St. Joseph

Muskegon

Allen

Knox

Gwinnett

Muscogee

DeKalb

Fulton

Cobb

Jefferson

Kent

Kalamazoo

Hamilton

Elkhart

Marion

Clayton

Montgomery

Leon

Ingham

Saginaw

Butler

Genesee

Washtenaw

Montgomery

Hamilton

Lucas

Greenville

Alachua

Oakland

Richmond

Marion

Sarasota

Manatee

Buncombe

Fayette

Pasco

Pinellas

Hillsborough

Franklin

Spartanburg

Collier

Seminole

Gaston

Lexington

Chatham

Volusia

Lorain

Stark

Brevard

Richland

Mecklenburg

Kanawha

Wayne

Macomb

Duval

Lake

Polk

Orange

Lee

Cuyahoga

Summit

Washington

Beaver

12025

Erie

Lake

Butler

Mahoning

Forsyth

Charleston

Trumbull

Guilford

Westmoreland

Allegheny

Palm Beach

Broward

Cambria

Niagara

Ulster

Orange

Passaic

Bucks

Frederick

Prince William

Chesterfield

Lehigh

Hudson

Richmond

Essex

Chester

Montgomery

Berks

Litchfield

Monroe

Erie

Schuylkill

Albany

Lackawanna

Broome

Luzerne

Morris

Northampton

Dauphin

Cumberland

York Lancaster

Durham

Cumberland

Wake

Oneida

Onondaga

Bronx

Saratoga

Union

Howard

Rensselaer

Suffolk

Hillsborough

Norfolk

Chesapeake

Rockingham

York

New Castle

Cumberland

Essex

Delaware

Gloucester

Queens

Nassau

Bristol

Plymouth

New Haven

Kent

Norfolk

Providence

New London

Kings

Harford

Anne Arundel

Newport News

Virginia Beach

Westchester

Hartford

Baltimore

Suffolk

Fairfield

Richmond

Dutchess

Monmouth

Ocean

Baltimore

Prince George’s

Worcester

Middlesex

Hampden

Rockland

Bergen

Burlington

New York

Somerset

Fairfax

Arlington

District of Columbia

Mercer

Middlesex

Philadelphia

Montgomery

Henrico

Figure 7.11: U.S. 2004 election analysis using RecMap MP1 on county level (area: #electors; red: Bush; blue: Kerry)

Camden

Barnstable

Atlantic

100

7.4 Application – Geographic Related Data

Kitsap

Washington

Thurston

Pierce

Clark

Marion

Marin

Lane

Ventura

Kern

San Luis Obispo

Sonoma

Santa Barbara

Orange

Multnomah

Clackamas

San Francisco

San Mateo

Solano

Contra Costa

Santa Cruz

San Diego

Snohomish

King Butte Sacramento

San Joaquin

Alameda

Santa Clara

Monterey

Placer

Spokane

Yakima

Washoe

Davis

Ada

Stanislaus

Merced

Salt Lake

Weber

Fresno

El Paso

Lubbock

Tulare

Clark

Pima

Los Angeles

Riverside

Maricopa

Larimer

Boulder

Utah

Jefferson

El Paso

Adams

Arapahoe

Sedgwick

Bell Nueces

Denver

Oklahoma

Travis

Cleveland Bernalillo

Hidalgo

San Bernardino

Bexar

Cameron

Denton

Tarrant

McLennan

Dallas

Tulsa

Lancaster

Douglas

Collin

Shawnee

Montgomery

Harris

Brazoria

Fort Bend

Smith

Johnson

Galveston

Wyandotte

Clay

Polk

Caddo

Hennepin

Calcasieu

Greene

Jackson

Jefferson

Anoka

Ramsey

Dakota

Linn

St. Louis

Pulaski

East Baton Rouge

Lafayette

Scott

Dane

Peoria

Winnebago

St. Charles

St. Louis

St. Louis

Jefferson

Jefferson

Hinds

Orleans

McHenry

Waukesha

Milwaukee

Brown

Sangamon

Lake

Racine

Kane

DuPage

Madison

Champaign

St. Clair

Shelby

Harrison

Escambia

Jefferson

Cook

Will

Vanderburgh

Tuscaloosa

Mobile

Davidson

Lake

Madison

Ottawa

Berrien

St. Joseph

Muskegon

Allen

Knox

Gwinnett

Muscogee

DeKalb

Fulton

Cobb

Jefferson

Kent

Kalamazoo

Hamilton

Elkhart

Marion

Clayton

Montgomery

Leon

Ingham

Saginaw

Butler

Genesee

Washtenaw

Montgomery

Hamilton

Lucas

Greenville

Alachua

Oakland

Richmond

Marion

Sarasota

Manatee

Buncombe

Fayette

Pasco

Pinellas

Hillsborough

Franklin

Spartanburg

Collier

Seminole

Gaston

Lexington

Chatham

Volusia

Lorain

Stark

Brevard

Richland

Mecklenburg

Kanawha

Wayne

Macomb

Duval

Lake

Polk

Orange

Lee

Cuyahoga

Summit

Washington

Beaver

12025

Erie

Lake

Butler

Mahoning

Forsyth

Charleston

Trumbull

Guilford

Westmoreland

Allegheny

Palm Beach

Broward

Cambria

Niagara

Ulster

Orange

Passaic

Frederick

Prince William

Chesterfield

Bucks

Lehigh

Hudson

Essex

Richmond

Chester

Montgomery

Berks

Litchfield

Monroe

Erie

Schuylkill

Albany

Lackawanna

Broome

Luzerne

Morris

Lancaster

Northampton

Dauphin

Cumberland

York

Durham

Cumberland

Wake

Oneida

Onondaga

Bronx

Saratoga

Union

Howard

Rensselaer

Suffolk

Hillsborough

Norfolk

Chesapeake

Rockingham

York

New Castle

Cumberland

Essex

Delaware

Gloucester

Queens

Nassau

Bristol

Plymouth

New Haven

Kent

Norfolk

Providence

New London

Kings

Harford

Anne Arundel

Newport News

Virginia Beach

Westchester

Hartford

Baltimore

Suffolk

Fairfield

Richmond

Dutchess

Monmouth

Ocean

Baltimore

Prince George’s

Worcester

Middlesex

Hampden

Rockland

Bergen

Burlington

New York

Somerset

Fairfax

Arlington

District of Columbia

Mercer

Middlesex

Philadelphia

Montgomery

Henrico

Figure 7.12: RecMap MP1 – U.S. election 2004 analysis (area: #electors; red: Bush; blue: Kerry)

Camden

Barnstable

Atlantic

101

7 Evaluation and Application

Santa Barbara

Kern San Luis Obispo

Clark

Orange

Los Angeles

San Diego

Riverside San Bernardino

Ventura

Jefferson

Butte

Lane

Denver

Adams

Solano

Marin

Sonoma

San Francisco

Contra Costa

Sacramento

Placer

San Joaquin

San Mateo

Washoe

Thurston

Merced

Monterey

Marion

Multnomah

Stanislaus

Santa Clara

Alameda

Washington

Ada

Clackamas

Pierce

Tulare

Fresno

Santa Cruz

Kitsap

Utah

King

Snohomish

Yakima

Clark

Salt Lake

Davis

Weber

Spokane

El Paso

Larimer

Boulder

Arapahoe

Bernalillo

Pima Maricopa

Dallas

El Paso

Oklahoma

Lubbock

Bexar

Tulsa

Cleveland

Lancaster

Collin

McLennan

Nueces

Jefferson

Harris

Travis

Bell

Tarrant

Clay

Montgomery

Caddo

Douglas

Sedgwick

Brazoria

Denton

Calcasieu

Polk

Hennepin

Wyandotte

Johnson

Smith

Hidalgo

Fort Bend

Galveston

Cameron

Anoka

Peoria

Ramsey

Linn

Dakota

St. Louis

Jefferson

Pulaski

St. Charles

East Baton Rouge

Brown

Tuscaloosa

St. Clair

Hinds

Lafayette

McHenry

Racine

St. Louis

Madison

Jefferson

Orleans

Shawnee

DuPage

Kane

Jefferson

Will

Leon

Mobile

Madison

Marion

Cook

Harrison

Escambia

Lake

St. Joseph

Jefferson

Dane

Kent

Waukesha

Elkhart

Gaston

Gwinnett

Saginaw

Genesee

Erie

Greenville

Butler

Montgomery

Spartanburg

Scott

Niagara

Forsyth

Charleston

Brevard

Alachua

Duval

Fulton

Orange

Shelby

Cobb

Montgomery

Seminole

Lake

Pasco

Volusia

DeKalb

Muskegon

Ottawa

Champaign

Knox

Clayton

Marion

Muscogee

Chatham

Collier

Lee

Manatee

Hillsborough

Durham

Winnebago

Lorain

Lake

Erie

Cumberland

Cambria

Milwaukee

Schuylkill

Norfolk

Summit

New Castle

Berks

Virginia Beach

Mecklenburg

Richmond

Luzerne

Cuyahoga

Lake

Chesterfield

Trumbull

Dauphin

Lancaster

Newport News

Davidson

12025

Broward

Richmond

Hamilton

Sarasota

Greene

Polk

Buncombe

Cumberland

Richland

Lexington

Jackson

Palm Beach

Pinellas

Berrien

Butler

Chester

Westmoreland

Washington

Beaver

Kanawha

Fayette

Lackawanna

Monmouth

Harford

Allegheny

Montgomery

Delaware

Gloucester

Camden

Wake

Ocean

Onondaga

Broome

Burlington

Richmond

Somerset

Mercer

Macomb

Oneida

York

Union

Middlesex

Queens

St. Louis

Oakland

Dutchess

York

Howard

Prince William

Washtenaw

Rockingham

Arlington

Ingham

Cumberland

New London

Kalamazoo

Monroe

Hartford

Westchester

Bristol

Plymouth

Suffolk

Middlesex

Hillsborough

District of Columbia

Kent

Fairfield

New Haven

Suffolk

Montgomery

Albany

Worcester

Lucas

Wayne

Rockland

Orange

Litchfield

Ulster

Frederick

Baltimore

Guilford

Essex

Nassau

Vanderburgh

Saratoga

Allen

Rensselaer

Norfolk

Lehigh

Bucks

Hampden

Northampton

Passaic

Bergen

Hudson

Kings

Franklin

Providence

Essex

Bronx

New York

Philadelphia

Barnstable

Chesapeake

Henrico

Figure 7.13: RecMap MP2 – U.S. election 2004 analysis (area: #electors; red: Bush; blue: Kerry)

Prince George’s

Fairfax

Anne Arundel

Hamilton

Baltimore

Morris

Sangamon

Stark

Mahoning

Atlantic

102

7.4 Application – Geographic Related Data

Santa Barbara

Kern San Luis Obispo

Clark

Orange

Los Angeles

San Diego

Riverside San Bernardino

Ventura

Jefferson

Butte

Lane

Denver

Adams

Solano

Marin

Sonoma

San Francisco

Contra Costa

Sacramento

Placer

San Joaquin

San Mateo

Washoe

Thurston

Merced

Monterey

Marion

Multnomah

Stanislaus

Santa Clara

Alameda

Washington

Ada

Pierce

Clackamas

Tulare

Fresno

Santa Cruz

Kitsap

Utah

King

Snohomish

Yakima

Weber

Clark

Salt Lake

Davis

Spokane

El Paso

Larimer

Boulder

Arapahoe

Bernalillo

Pima Maricopa

Dallas

El Paso

Oklahoma

Lubbock

Bexar

Tulsa

Cleveland

Lancaster

Collin

McLennan

Nueces

Jefferson

Harris

Travis

Bell

Tarrant

Clay

Montgomery

Caddo

Douglas

Sedgwick

Denton

Brazoria

Calcasieu

Polk

Hennepin

Wyandotte

Johnson

Hidalgo

Fort Bend

Galveston

Cameron

Smith

Anoka

Peoria

Ramsey

Linn

Dakota

St. Louis

Jefferson

Pulaski

St. Charles

East Baton Rouge

Brown

Tuscaloosa

St. Clair

Hinds

Lafayette

McHenry

Racine

St. Louis

Madison

Jefferson

Orleans

Shawnee

DuPage

Kane

Jefferson

Will

Mobile

Madison

Marion

Cook

Harrison

Escambia

Leon

Lake

St. Joseph

Jefferson

Dane

Kent

Waukesha

Elkhart

Gaston

Gwinnett

Saginaw

Genesee

Erie

Scott

Niagara

Forsyth

Charleston

Brevard

Alachua

Duval

Fulton

Greenville

Butler

Montgomery

Spartanburg

Cobb

Montgomery

Seminole

Lake

Pasco

Volusia

DeKalb

Muskegon

Ottawa

Champaign

Knox

Clayton

Marion

Muscogee

Chatham

Orange

Shelby

Collier

Lee

Manatee

Hillsborough

Durham

Winnebago

Lorain

Lake

Erie

Cumberland

Cambria

Milwaukee

Schuylkill

Norfolk

Summit

New Castle

Berks

Virginia Beach

Mecklenburg

Richmond

Luzerne

Cuyahoga

Lake

Chesterfield

Trumbull

Dauphin

Lancaster

Newport News

Davidson

12025

Broward

Richmond

Hamilton

Sarasota

Greene

Polk

Buncombe

Cumberland

Richland

Lexington

Jackson

Palm Beach

Pinellas

Berrien

Butler

Chester

Westmoreland

Washington

Beaver

Kanawha

Fayette

Lackawanna

Monmouth

Harford

Allegheny

Montgomery

Delaware

Gloucester

Camden

Wake

Ocean

Onondaga

Broome

Burlington

Richmond

Somerset

Mercer

Macomb

Oneida

York

Union

Middlesex

Queens

St. Louis

Orange

Oakland

Dutchess

York

Howard

Prince William

Washtenaw

Rockingham

Arlington

Ingham

Cumberland

New London

Kalamazoo

Monroe

Hartford

Westchester

Bristol

Plymouth

Suffolk

Middlesex

Hillsborough

District of Columbia

Kent

Fairfield

New Haven

Suffolk

Montgomery

Albany

Worcester

Lucas

Wayne

Rockland

Litchfield

Ulster

Frederick

Baltimore

Guilford

Essex

Nassau

Vanderburgh

Saratoga

Rensselaer

Norfolk

Lehigh

Bucks

Hampden

Allen

Northampton

Passaic

Bergen

Hudson

Kings

Franklin

Providence

Essex

Bronx

New York

Philadelphia

Barnstable

Chesapeake

Henrico

Figure 7.14: RecMap MP2 – U.S. election 2004 analysis (area: #electors; red: Bush; blue: Kerry)

Fairfax

Anne Arundel

Prince George’s

Hamilton

Baltimore

Morris

Sangamon

Stark

Mahoning

Atlantic

103

7 Evaluation and Application

Marin

Sonoma

San Francisco

San Mateo

Santa Cruz

Alameda

Solano

Contra Costa

Santa Clara

Ventura

San Luis Obispo

Monterey

Santa Barbara

Kitsap

Thurston Pierce

Snohomish

Multnomah

Clark

Clackamas Marion

Butte

San Joaquin

Sacramento

Fresno

Stanislaus

Kern

Orange

Merced

Lane

Washington

Los Angeles

San Diego

King

Placer

Tulare

Riverside

Yakima

Washoe

San Bernardino

Spokane

Maricopa

Ada

Clark

Pima

Weber

Utah

Davis Salt Lake

El Paso

Larimer Boulder Adams

El Paso

Denver Arapahoe Jefferson

Bernalillo

Lubbock

Dallas

Collin

Tulsa

Jackson Johnson

Clay Shawnee Wyandotte

Douglas

Lancaster

Sedgwick

Oklahoma

Tarrant

Bell

Cameron

Nueces

McLennan

Denton

Cleveland

Travis

Bexar

Hidalgo

Polk

Smith

Greene

Montgomery

Harris

Brazoria

Fort Bend

Dakota

Hennepin

Linn

Scott

Caddo

Galveston

Anoka

Ramsey

Winnebago

Peoria

St. Louis

Lafayette

McHenry

DuPage

Hinds

East Baton Rouge

Shelby

St. Clair

Kane

Dane

Madison

Sangamon

Calcasieu

Jefferson

St. Louis St. Louis

St. Charles

Pulaski

Jefferson

Cook

Waukesha

Will

Champaign

Orleans

Jefferson

Milwaukee

Racine

Lake

Lake

Brown

Vanderburgh

Marion

Davidson

Berrien

St. Joseph

Muskegon

Ottawa

Kalamazoo

Elkhart

Kent

Allen

Butler

Hamilton

Fayette

Hamilton

Montgomery

Escambia

Jefferson

Madison

Jefferson

Mobile

Tuscaloosa

Harrison

Genesee

Saginaw

Oakland

Wayne

Franklin

Gwinnett

DeKalb

Clayton

Lucas

Fulton

Washtenaw

Ingham

Montgomery

Knox

Cobb

Muscogee

Leon

Macomb

Kanawha

Lorain

Buncombe

Summit

Stark

Cuyahoga

Mahoning

Lake

Trumbull

Forsyth

Duval

Lake

Polk

Butler

Erie

Niagara

Erie

Cumberland

Frederick

Schuylkill

Berks

Onondaga

Broome

Oneida

Bucks

Morris

Litchfield

Queens

Hampden

Fairfield

Ocean

Kings

New York

Bronx

Westchester

Atlantic

Monmouth

Richmond

Hudson

Bergen

Rensselaer

Dutchess

Burlington

Essex

Rockland

Albany

Saratoga

Ulster

Passaic

Orange

Union

Mercer

Middlesex

Somerset

Philadelphia

Camden

Gloucester

Virginia Beach

Norfolk

Chesapeake

Newport News

New Castle

Delaware

Montgomery

Northampton

Lackawanna

Chester

Lehigh

Luzerne

Chesterfield

Richmond Henrico

Prince George’s

Anne Arundel

Harford

Baltimore

Baltimore

Lancaster

Monroe

Dauphin

York

Howard

Arlington Fairfax District of Columbia

Cumberland

Wake

Durham

Prince William

Montgomery

Broward

Palm Beach

Brevard

Charleston

Cambria

Volusia

12025

Orange

Seminole

Guilford

Westmoreland

Beaver Allegheny

Washington

Mecklenburg

Gaston

Collier

Marion

Chatham

Richland Lexington

Alachua

Lee

Pasco

Manatee

Hillsborough

Richmond

Spartanburg

Greenville

Pinellas

Sarasota

Worcester

Hillsborough

Hartford

New Haven

Nassau

York

Cumberland

New London

Middlesex

Rockingham

Suffolk

Essex

Bristol

Suffolk

Norfolk

Kent

Providence

Figure 7.15: U.S. 2004 election analysis using CartoDraw on county level (area: #electors; red: Bush; blue: Kerry)

Plymouth

Barnstable

104

7.4 Application – Geographic Related Data

7.4.3 Visualizing Sequences – AT&T Call Volume Analysis

(a) 0:00 am (EST)

(b) 6:00am (EST)

(c) 12:00pm (EST)

(d) 6:00pm (EST)

Figure 7.16: Analyzing long distance call volume data using CartoDraw (dA ≤ 0.20) As mentioned at the outset, we developed the CartoDraw algorithm for displaying telephone call volume data, which needs to be continuously monitored and visualized. Since the underlying polygon data does not change, the vertex reduction needs to be run only once. This provides a significant speed-up, making interactive display with an update rate of about one second feasible. Figure 7.16 shows the results of the normalized telephone call volume at different times during one day. The resulting visualizations clearly reflect the different time zones of the U.S., and show interesting patterns of phone usage as it proceeds during the day.

00:00

01:50

03:50

02:00

04:00

05:50

07:50

06:00

08:00

09:50

11:50

10:00

12:00

13:50

15:50

14:00

16:00

17:50

19:50

18:00

20:00

21:50

23:50

22:00

Figure 7.17: The graphics illustrate 24 hours call volume analysis in a mirrowed S-curve starting in the upper left corner. On a dynamic map things that move probably attract more than things that do not [95, page 280]. Based on this concept figure 7.17 displays 144 time frames during one single day, one time frame every ten minutes. As already mentioned in chapter 4.4.2 on page 43, for this sequence we have used bilinear interpolation inside the CartoDraw algorithm to place the inner nodes of the mesh. As a result of this features, the transitions between two frames are very smooth. The video, the dynamic map, is accessible from the CartoDraw web site [76]. On the background of the video the medial axes of the global polygon

105

7 Evaluation and Application are drawn and colored according the area error of each region. The direction of the transformation is aligned to the color parameter of this skeleton to form the cartogram.

7.4.4 Texture Mapping Cartograms Figure 7.18 is another example in which we apply texture maps to visualize geography-related data. Figure 7.18(a) shows an undistorted map of the U.S. relief. Figure 7.18(b) illustrates the mesh distortion from M-CartoDraw. On that map the relief is distorted in relation to proportion of the number of inhabitants.

(a) Original map

(b) From M-CartoDraw distorted map

Figure 7.18: U.S. population cartogram with texture (source of the texture: http://fermi.jhuapl.edu, January 9, 2003) The relief of the continental U.S. is stretched where huge amounts of people live, e.g. coast lines, and it is shrunk e.g. on the mountain areas. The stretching and shrinking of the map regions can be more stressed on the construction movie[76].

106

7.4 Application – Geographic Related Data Figures 7.19(a) and 7.19(b) show a texture cartogram of New York state (U.S.), using an almost zero area error cartogram transformation. The cartogram emphasizes the proportion of New York City in the total population. Another candidate example would be a map transformation in which we distort the map according to a given route to highlight its most interesting features.1 The graphics in figure 7.19(b) show two different kinds of distortions. In this case the basic continuous vertical and horizontal distortion of the HistoScale is of value in contrast to figure 7.19(b). The advantage is in the distribution of the data.

(a) HistoScale

(b) M-CartoDraw

Figure 7.19: The graphics show two distorted map of NYC with almost zero area error.

1 The

quality of the cartogram texture mapping is restricted by the resolution of the given textures. Vector graphic data would overcome that problem. Since organizing vector data containing interesting material is very difficult or at least very expensive we are not able to apply cartogram texture mapping on them.

107

7 Evaluation and Application

7.4.5 Population Cartograms First, we used an U.S. population cartogram to show some statistic data obtained from the U.S. census database [124]. In figures 7.20(a) - 7.20(c), the color shows different statistical parameters on top of the population cartogram: Figure 7.20(a) shows the number of persons with German ancestry, figure 7.20(b) the median household income in 1989, and figure 7.20(c) the percentage of unpaid family workers. Since

(a) Persons with German inheri- (b) Median household income in tance 1989

(c) Unpaid Family Workers

Figure 7.20: The population cartogram shows census data statistics (dA = 0.10) using the CartoDraw algorithm. the area of the states corresponds to their population, the shaded areas in the figures directly correspond to the number of people with those properties. It is interesting that the highest percentage of people with German inheritance is in the northern Midwest (with some higher numbers also in Philadelphia and East). In the median income cartogram it is interesting that the areas with small income are basically all states with a rather small population (middle of the non-coastal east of the U.S.), and in the unpaid family workers cartogram, the numbers are high in the northern Midwest with some additional high numbers in Florida, Texas, and California. To show that our algorithm works with arbitrary polygon meshes, we also

Figure 7.21: Population cartogram of middle Europe (CartoDraw) applied the algorithm to the population data of Europe, as shown in figure 7.21. Figure 7.22 illustrates trends in U.S. population during the ten decades of the 20th century. Each decade is colored according to population increase or decrease. The colormap (figure 7.22(a)) can be interpreted as follows: dark blue - extremely large immigration, light blue - low immigration, white - no changes in population, and light red - low migration. For example, we can see the rapid decrease of the fraction of the population of the western states. Note that the area of the U.S. does not reflect the absolute number of inhabitants each year. Figure 7.22(l) accounts for this by scaling the whole polygon mesh according to the number of U.S. inhabitants. The global polygon of the U.S. in 2000 with 270 millions inhabitants is colored in black, and the global polygon of the population in 1900 with 76 millions is colored in grey. A key goal for M-CartoDraw is to handle large maps. Now we want to use it for maps with a high number of polygons.

108

7.4 Application – Geographic Related Data

(a) Used color map

(b) 1910

(c) 1920

(d) 1930

(e) 1940

(f) 1950

(g) 1960

(h) 1970

(i) 1980

(j) 1990

(k) 2000

(l) Compare19002000

Figure 7.22: Population trends over the last 100 years. Each decade is colored according to population increasing or decreasing. The colormap (figure7.22(a)) can be interpreted as follow: dark blue-high rate of immigration, light blue-low immigration, white-no change, and light redlow emigration (M-CartoDraw) Figure 7.23 shows the quantile plot of the U.S. census county population data set. The y-axis was scaled logarithmically. Furthermore, we used a color to link the statistical value to the maps. On the map we labeled the three highest populated counties and linked them to their data items. The resulting cartograms for the M-CartoDraw algorithm can be seen in figures 7.24 and 7.25. Figures 7.28 and 7.29 graph the results for the rectangular approach. Often geo-related data are hierarchically structured e.g. on the U.S. map we have a state level, county level, track etc. Both county cartograms in figures 7.24 and 7.25 demonstrate two of three possible hierarchy layouts for contiguous cartograms. On the U.S. county map all polygon lines are assigned with a five digit number. The first two digits indicate the U.S. states and the rest three digits indicate the counties inside each U.S. state. For example the county 08013 can be interpreted as follows: The first two digits stand for the U.S. state Colorado and the other tree digits stand for the county called Boulder. This description is generic and therefore it works for all hierarchies. The state boundaries can be achieved if we draw all segments of the map thicker which are adjacent to edges where the two first digits are different. Notices that each polygon is a closed line loop: Therefore, each to be drawn edges occurs twice and can be eliminated Often the hierarchy order of the map can not be out-formed as clear as when we use the census map as input data. Therefore on the second approach the higher level map (in this case the U.S. state map)

109

1e+07

7 Evaluation and Application

Los Angeles Cook

1e+05 1e+04 1e+03

U.S. county population

1e+06

Harris

0.0

0.2

0.4

0.6

0.8

1.0

f−value

Figure 7.23: The graph shows a quantile plot of the U.S. census county level population data set. Each box on the graph represents one part of the quantile plot. is pinned on the county mesh and we used the same cartogram transformation as for the county level map. The result can be seen in figure 7.25. The previously described technique was used for the Germany example in figure 7.27. If both variants are not applicable, the cartogram texture technique described in 6.5 on 81 can be used. Figure 7.26(c) shows a U.S. county level population cartogram. On that transformation only the state level borders were drawn. It can be clearly seen that finer granular statistical values have formed the shape of the new mesh (e.g. NYC region). On all maps in figures 7.25, 7.24, 7.27, 7.29, 7.30, 7.31, 7.32, and 7.33 a logarithmic color mapping is used which can be computed as follows: ci =

log(x˜i + 1) − log(mini (x˜i + 1)) log(maxi (x˜i + 1)) − log(mini (x˜i + 1))

(7.1)

Figures 7.27(a) and 7.27(b) show the population of Germany on a map with about 400 polygons. We used the unipolar colormap shown in figure 7.27(a) to visualizes the population data. The cartogram helps to focus attention on highly populated regions. The area error of the three largest polygons as well as the area error of the yellow polygons in the northwest are almost zero; cities and other highly populated regions are clearly visible. Since the underlying polygons do not change dramatically in each step, especially when the algorithm is close to termination (see figure 4.19 on page 47), the medial axis is not recalculated on each iteration to save time. Note that M-CartoDraw took less than five minutes to compute the cartogram in figure 7.27(b) and less then ten minutes to compute the cartogram in figure 7.24, respectively. The computation time for this is only one magnitude higher than that needed to compute the U.S. state cartogram.

110

7.4 Application – Geographic Related Data

Alameda Santa Clara

King

Sacramento

Maricopa

San Bernardino

Riverside

Orange

Los Angeles

San Diego Bexar

Tarrant

Dallas

Harris

Hennepin

St. Louis

Cook

Oakland

Wayne

Cuyahoga

Allegheny

Broward

12025

Philadelphia

New York

Bronx

Queens

Kings

Middlesex

Suffolk

Nassau

Figure 7.24: The picture is a visualization of the U.S. census 2000 county population cartogram with drawn state borders using the five digit representation.

111

7 Evaluation and Application

Figure 7.25: The figure shows another possibility of an U.S. county population cartogram with state borders. On that cartogram the state borders were pinned to the county map during the cartogram transformation.

112

7.4 Application – Geographic Related Data

(a) U.S. map

(b) State level cartogram

(c) County level cartogram

Figure 7.26: Cartogram on state and county level; only state poly lines were drawn.

113

7 Evaluation and Application

Frequency

0

1000000

1500000

2000000

Inhabitants

Hamburg

2500000

3000000

Berlin

Population Histogram of Germany

500000

Nordrhrein−Westfalen

Muenchen

(a) Traditional German map

3500000

Nordrhein−Westfalen

Hamburg

Frankfurt

Stuttgart

Muenchen

Berlin

(b) German population cartogram was drawn by M-CartoDraw

Figure 7.27: Figure 7.27(a) displays the traditional map of the German county level as well as a population histogram. A second layer (thicker black lines) indicates the German states. Figure 7.27(b) visualizes the same data as a Germany year 2000 population cartogram. Color linking is used to bridge all three pictures. On Figure 7.27(b) all high-populated regions (e. g. Berlin, Hamburg, Munich) are clearly visible. Data source: Verwaltungsgrenzen BRD, Bundesamt f¨ur Kartographie und Geod¨asie.

114

70 60 50 40 30 20 10 0

Schuyler

Tioga

Ulster

Orange

Greene

Columbia

Passaic

Stafford

Prince William

Frederick

Ontario

Bucks

Edgecombe

Northampton

Wilson

Lenoir

Chesterfield

St. Lawrence

Onondaga

Bronx

Bergen

District of Columbia

Carroll

Mercer

Adams

Arlington

Fairfax

Franklin

Fulton

Saratoga

Schenectady

Union

Howard

Charles

Hertford

Bertie

Surry

Essex

New Kent

Prince George’s

Clinton

Rensselaer

Washington

Dutchess

Grand Isle

Chittenden

Rutland

Franklin

Addison

Windham

Washington

Sullivan

Orleans

Orange

Merrimack

Grafton Windsor

Lamoille

Cheshire

Bennington

Caledonia

Suffolk

Hillsborough

Essex

Belknap

Strafford

Carroll

Oxford

Coos

Rockingham

Washington

Mathews

Calvert

Poquoson

Talbot

Virginia Beach

Tyrrell

Norfolk

Pasquotank

Chesapeake

Kent

York

New Castle

Caroline

Wicomico

Franklin

Newport

Sussex

Kent

Cumberland

Delaware

Hancock

Washington

Penobscot

Somerset

Piscataquis

Aroostook

Camden

Cape May

Atlantic

Dukes

Barnstable

Knox

Androscoggin

Kennebec

Waldo

Lincoln

Sagadahoc

Gloucester

Queens

Nassau

Bristol

Plymouth

Essex

Bristol

New Haven

Kent

Windham

Norfolk

New London

Tolland

Providence

Hartford

Middlesex

Kings

Harford

Anne Arundel

St. Mary’s

York

Hampton

Portsmouth

Northumberland

Gloucester

Lancaster Middlesex

Newport News

Washington

Suffolk

Chowan

Cecil

Westchester

Putnam

Baltimore

Suffolk

Fairfield

Richmond

Ocean

Baltimore

Monmouth

Warren

Essex Hamilton

Craven

Martin

Southampton

Charles City

King William

King George

Alexandria

Burlington

New York

Hunterdon

Somerset

Caroline

Montgomery

Herkimer

Otsego

Madison

Jefferson Lewis Oswego

Oneida

Wayne

Petersburg

Sussex

Pitt

Onslow

Worcester

Middlesex

Rockland

Henrico

Montgomery

Hanover

Hopewell

Philadelphia

Middlesex

Hampden

Seneca

Cayuga

Lehigh

Hudson

Dinwiddie

Halifax

Greensville

Duplin

New Hanover

Richmond

Essex

Berks

Jefferson

Nash

Chester

Loudoun

Pender

Wayne

Culpeper

Fauquier

Johnston

Litchfield

Monroe

Orleans Niagara Genesee

Erie

Albany

Berkshire

Delaware

Clarke

Sampson

Louisa

Brunswick

Columbus

Bladen

Washington

Montgomery

Sussex

Pike

Sullivan

Steuben

Wayne

Schuylkill

Berkeley

Warren

Warren

Tioga

Yates Franklin Chenango

Dauphin

Lunenburg

Hampshire

Livingston Wyoming

Perry

Carbon

Columbia

Monroe

Lackawanna

Susquehanna

Montour

Sullivan

Wyoming

Broome

Allegany

Cortland

Schoharie

Lycoming

Elk

Bradford

Tompkins

Chemung

Cattaraugus

Potter

McKean

Mifflin

Page

Prince Edward

Frederick

Lancaster

Northampton

Blair

Huntingdon

Cumberland

Albemarle

Lebanon

Snyder

Morris

Northumberland

Union

Luzerne

Clinton

Clearfield

Centre

Cambria

Franklin

Bedford

Jefferson

Indiana

Forest

Bedford

Cameron

Clarion

Venango

Chautauqua

Pittsylvania

Caswell

Pendleton

Franklin

Tucker Highland

Armstrong

Mercer

Crawford

Warren

Erie

Trumbull

Ashtabula

Mahoning

Lake

Geauga

Hancock

Butler

Botetourt

Taylor

Preston

Roanoke

Henry

Danville

Rockbridge

Portage

Lawrence

Fayette

Randolph

Monongalia

Montgomery

Westmoreland

Allegheny

Greene

Barbour

Marion

Alleghany

Washington

Jefferson

Upshur

Craig

Pocahontas

Ohio

Monroe

Rowan

Summers

Greenbrier

Webster

Lewis

Harrison

Mercer

Kershaw

Stokes

Bath

Monroe

Guernsey

St. Clair

Cuyahoga

Summit

Beaver

Columbiana

Marshall

Brooke Harrison

Braxton

Doddridge

Wetzel

Fayette

Cabarrus

Davie

Floyd

Sanilac

Carroll

Belmont

Raleigh

Colleton

Union

Davidson

Juniata

Huron

Macomb

Hocking Martin Newberry

Screven

Carter Magoffin

Lapeer

Barnwell

Tuscola

Allendale

Alpena

Edgefield

Alcona

Lancaster McCormick

Iosco

McDuffie

Genesee

Ottawa

Sandusky

Erie

Lorain

Huron

Medina

Seneca

Stark

Wirt

Ritchie

Clay Nicholas

Gilmer

Tyler

Calhoun

Pleasants

Pulaski

Giles

Indian River

Dorchester

Sumter

Montgomery Treutlen

Wilkes

Elbert

Washington

Laurens

Isle

Presque Arenac Fulton

Oscoda

Ogemaw

Montmorency

Midland

Bamberg

Hancock

Hart

Oglethorpe

Bleckley Wilcox

Leslie

Grainger Jasper Newton

Crawford

Monroe

Gladwin

Noble

Jasper

Cheboygan

Clare

Morgan

Washington

Putnam

Roane

Jackson

Meigs

Wyoming

McDowell

Carroll

Yadkin

Surry

Palm Beach

Charlotte

Appomattox

Hampshire

Chippewa Crawford

Roscommon

Muskingum

Cabell

Logan

Boone

Iredell

Wythe

Mecklenburg

York

Allegany

Person

Shenandoah

Otsego

Gratiot

Wayne

Tuscarawas

Knox Coshocton

Wood

Athens Vinton

Mingo

Bland

Alleghany

Chester

Fairfield

Lexington

Alexander

Wilkes

Lincoln

Kanawha

Mason

Gallia

Wayne

Lincoln

York

Grayson

Pike

Perry

Holmes

Ashland

Wayne

Morrow

Richland

Crawford

Boyd

Lawrence

Jackson

Licking

Delaware

Fairfield

Floyd

Lawrence

Ross

Pickaway

Johnson

Scioto

Catawba

Gaston

Rockingham

Mineral

Grant Hardy

Somerset

Rockingham

Lynchburg

Amherst

Campbell

Greene

Mackinac

Emmet

Isabella Montcalm

Greenup

Tazewell

Ashe

Cleveland

Smyth

Union

Caldwell

Effingham

McIntosh

Guilford

Garrett

Augusta

Nelson

Franklin

Madison

Steuben

Kalkaska

Missaukee

Mecosta

Antrim

Burke

Aiken

Liberty

Anson

Moore

Vance

Morgan

Whitley Campbell

Charlevoix

Watauga

Johnson

Cherokee

Bryan

Glynn

Stanly

Alamance

Granville

Durham

Halifax

Fulton

Osceola

Marion

Fayette

Rutherford

Avery

Franklin

Madison

Wyandot

Oakland

Hardin

Union

Champaign

Elliott

Washington

Russell

Buchanan

Owsley

Menifee Morgan Wolfe

Bristol

Spartanburg

Saluda

Forsyth

Randolph

Orange

Lee

Harnett

Spotsylvania

Wexford

Echols

Lake

Fulton

Muskegon

Lucas

Monroe

Logan

Greene

Highland

Brown

Adams

Lewis Fleming

Dickenson

Lee

Breathitt

Rowan Bath

Nicholas

Sullivan

Polk

McDowell

Nassau

Camden

Brantley

Evans Long Wayne

Bulloch

Jenkins

Burke

Hampton

Schoolcraft

Luce Leelanau Benzie

Grand Traverse

Fannin

Manistee

Oceana Newaygo

Livingston

Hancock

Wood

Allen

Auglaize

Clark

Mason

Clinton

Shelby

Miami

Bracken

Robertson

Powell

Estill Jackson

Scott

Wise

Carter

Mitchell

Unicoi Yancey

Henderson

Greenwood

Laurens

Duval

Chesterfield

Montgomery

Fentress Buren

Van Sequatchie

Mason

Bay

Lenawee

Washtenaw

Bourbon

Letcher

Washington

Buncombe

Columbia

Richmond

St. Lucie

Charleston

Patrick

Lee

Richmond

Alger Hendricks Starke

LaPorte Tippecanoe

Door

Saginaw

Shiawassee

Putnam

Van Wert

Montgomery

Knott

Madison

Lincoln

Calhoun

Cannon

Clinton Delta

Kewaunee Boone Montgomery

Jasper Parke

Benton

Warren Fountain Vermillion

Menominee

Dickinson

Marquette

Ingham

Henry

Mercer

Pendleton

Harrison

Pike Clermont

Harlan

Lee Hawkins

Hancock

Haywood

Greene

Franklin

Oconee

Transylvania

Cocke Jackson

Madison

Clarke

Greenville

Flagler

Chatham

Richland

Beaufort

Marinette

Ozaukee

Clinton

Williams

Defiance

Darke

Butler

Warren

Perry

Stephens

Banks

Anderson

St. Johns

Clay

Osceola

Orangeburg

Marshall

Giles

Sullivan Limestone

Hickman Lawrence

Winston

Lewis

Humphreys

Gibson Edgar Wayne Perry

Crawford Lawrence Caldwell Stewart

Clark Trigg

Wabash Crittenden Benton

Richland Edwards Tishomingo

Itawamba

Cumberland Marshall

Shelby Massac

Johnson

Jefferson

Sheboygan

Eaton

Hillsdale

Preble

Union

Bell

Clay

Rockcastle

Clark Madison

Fayette

Montgomery

Campbell

Hamilton

Claiborne

Rabun

Morgan

Jackson

Hamblen

Sevier

Macon

Swain Graham

Jones

Greene

Wilkinson

Charlton

Tattnall

Emanuel

Candler

Appling

Bradford

Baker

Pierce

Toombs

Jefferson

Lake

Putnam

Darlington

Hickman

Keweenaw

Benton

Crockett

Brown

Ionia

DeKalb

Garrard

Paulding

Jay

Blackford

Wells

Adams

Jackson

Huntington

Randolph

Fayette

Wayne

Henry

Rush Boone

Jessamine

Lincoln

Knox

Union

Towns

Jefferson

Habersham

Barrow

Putnam

Taliaferro

Baldwin

Abbeville

Ware

Johnson

Marion

Chatham

Buckingham

Washington

Washington

Woodford

Boyle

Laurel

Clay

White

Walton

Oconee

Pickens

Warren Glascock

Sumter

Scotland

Mecklenburg

Marshall Smith

Montgomery Covington

Attala

Perry Yalobusha

Randolph Stoddard Davis

Jefferson

Carroll

Oconto

Simpson

Bollinger Mississippi

Genevieve

Ste. Madison

Waukesha

Barry

Calhoun

Branch LaGrange

Noble

McCreary

Marion

Mercer

Anderson

Spencer

Loudon

Knox

Lumpkin

Union

Houston

Wheeler

Alachua

Broward

Cumberland

Baraga Florence

Madison

Piatt

Livingston

Houghton Iron

Shawano

Menominee

Forest

Outagamie

Waupaca

Langlade

Ontonagon

Taylor

Jefferson

Scott

Pulaski

Anderson

Forsyth

Bibb

Jeff Davis

Citrus

Bacon Clinch Union

Dodge

Hernando

Brevard

Wake

Fluvanna

DeKalb

Boone Witt

De

Salle

La

Lake

Green

Marquette

Oneida

Vilas

Morgan

Monroe

Dawson

Blount

Cherokee

Hall

Twiggs

Pulaski

Telfair

Pasco

Seminole

Glades

Hendry

Florence

Rappahannock

Lincoln

Meigs

Wayne

Scott

Delaware

Madison

Allen

Whitley

Grant

Shelby

Hancock

Franklin Dearborn

Kenton

Ohio

Ripley

Hamilton

Miami

Wabash

Kent

Tipton

St. Joseph

Decatur

Johnson

Kalamazoo

Kosciusko

Bullitt

Rhea

Casey

Nelson

Gilmer

Roane

McMinn

Polk

Pickens

Cherokee

Gwinnett

Irwin

Columbia

Hamilton

Atkinson

Coffee

Crisp

Madison

Levy

Volusia

Berkeley

Cumberland

Orange

Putnam Marshall

Adams

Marathon

Elkhart

Jennings

Grant

Gallatin

Pickett

Russell

Harrison

Larue

Cumberland

Hamilton

Gordon

Murray

Marion

Whitfield

Cobb

Dooly

Ben Hill

Turner Worth

Tift

Lowndes

Cook Lanier Brooks

Colquitt

Berrien

Gilchrist

Orange

Polk

Horry

Warren

Gogebic

Iron

Taylor

Allegan

Bledsoe

Walker

Bartow

Peach

Jefferson

Lafayette

Taylor

Suwannee

Dixie

Pinellas Hardee

Hoke

Nottoway

Ashland

Quitman

Price

Tunica

Juneau

Clark

Ottawa

Van Buren

Berrien

Marshall

Cass

St. Joseph

Adair

Cumberland

Jackson

Catoosa

Chattooga

Floyd

Fulton

Butts

Rockdale

Taylor

DeSoto

Georgetown

Robeson

Marion

Amelia Lawrence

Holmes

Walthall

Menard Mason Fulton Lincoln

Schuyler Baptist

the

John

St.

Jackson Calhoun

Brown Carter

Vernon Crawford

Sawyer

Porter

Owen

Carroll

Switzerland

Howard

Trimble

Bartholomew

Marion

Clay

Metcalfe

Green

White

Clinton

Clark Henry Oldham Floyd Franklin Shelby

Scott

Jefferson

Hardin

Monroe

Hart

Grayson

Macon

Barren

Meade

Washington

Jackson

CarrollCass

White

Brown

Pulaski

Lake

Newton

Trousdale

Allen

Edmonson

Grundy

Warren

Putnam

Smith

Overton

Wilson

Coffee

DeKalb

Bradley

Dade

Franklin

Jackson

Cherokee

DeKalb

Etowah Paulding

Henry

Pike

Lamar

Manatee

Dillon

Powhatan

Sharkey

Rusk

Washburn

Douglas

Bayfield

Cook

Reynolds

Lake

Burnett

Manitowoc

Iroquois

Vermilion

Morgan

Butler

Moore

Marshall

Haralson

Polk Calhoun

Upson

Lee

Macon

Martin

Brunswick

Randolph

Jones Henderson

Cedar

Trempealeau

St. Louis

Chisago

Clayton Delaware Sharp

Montgomery Independence

Gasconade

Buffalo Fulton

Winneshiek

Pepin

Polk

Monroe Lawrence

Crawford

Hancock

Perry

Rutherford

St. Clair

Douglas

DeKalb

Troup Harris Talbot

Meriwether

Schley

Sumter

Marion

Muscogee Webster

Chattahoochee

Terrell

Monroe

Goochland

Fillmore

Wabasha Howard Stone Bradley

Jefferson Dallas

Buren

Van

Schuyler

Moniteau

Kanabec

Pine

Carlton

Calumet

Kankakee

Orange

Spencer

Breckinridge

Muhlenberg

Logan

Simpson

Warren

McLean Ohio

Daviess

Warrick

Owen

Putnam Clay Martin

Greene

Daviess

Pike Dubois

Robertson

Sumner

Davidson

Bedford

Clayton

Carroll

Cleburne

Fayette

Chambers

Randolph

Highlands

Queen

Monroe Cooper Spring

Hot

Morgan Calhoun

Linn

Marion Sullivan Saline

Steele

Worth Hardin

Aitkin

Isanti

Milwaukee

Todd

Cheatham

Dickson

Williamson

Lincoln

Madison

Talladega

Tallapoosa

Spalding

Coweta Randolph

Montgomery

Calhoun

Clay

Collier

and

Clark Newton

Christian

Gordo

Cerro Franklin Montgomery

Lucas

Freeborn Wayne Bienville

Scott

Livingston

Story Mercer Carroll Barton

Grundy

Warren

Lacs

Mille Hamilton Winnebago

Sherburne Hancock

Sueur

Le Lafayette

Clarke Decatur

Wright Carver

Koochiching Itasca Boone Faribault Daviess

Harrison

Madison

Benton

Waushara

Fond du Lac

Vigo

Knox

Hopkins

Maury

Jefferson

Blount

Heard

Clay

Stewart

Quitman

Lee

King

Ringgold Union

Cass

Morrison

Worth Gentry

Meeker

Crow Wing

Portage

Dodge

Winnebago

Jefferson

Vanderburgh

Lawrence

Montgomery

Christian

Cook

Union

Posey

Houston

Walker

Morgan

Shelby

Russell

Sarasota

Charlotte

Westmoreland

Hubbard

Ottawa

Taylor

Douglas

Todd

Wood

Columbia

Rock

Coles

Gallatin

White

Lyon

Calloway

Webster

Lauderdale

Henderson

Will Moultrie

Clay

Jasper

Saline

Henry

Livingston

Hardin

Decatur

Colbert

Cullman

Bullock

Hillsborough

City

Lake of the Woods

Linn Sequoyah

Clearwater

Beltrami

Wadena

Kandiyohi

McCurtain

Audubon Bourbon

Pope

Monroe

Richland

Sauk

Dane

Kenosha

Pope

Hamilton

Wayne

Effingham

Graves

Carroll

Hardin

Franklin

Santa Rosa

Lee Macon

Thomas

James

River

Red Titus

Haskell Franklin Camp

Latimer

Pushmataha

Leavenworth

Ida

Roseau

St. Croix

Chippewa

Washington

La Crosse

Dunn

Eau Claire

Houston

Racine

Kane

Marion

Fayette

Franklin

McCracken

Gibson

Prentiss

Henderson

Madison

Chester

Alcorn

Lee

McNairy

Tippah

Clay

Bibb

Elmore

Mitchell

Richmond

Osceola

Chippewa

Barron

Winona

Walworth

McHenry

Lake

Perry

Williamson

Carlisle

Ballard

Weakley

Hardeman

Union

Chickasaw

Dallas

Chilton

Lowndes

Autauga

Dougherty

Anne’s

Richardson

Cherokee

O’Brien

Becker

Anoka

Dakota

Olmsted

Macon

DuPage

Washington

Christian

Sangamon

Bond

Montgomery

Clinton

Jackson

Mississippi

Pulaski

Cape Girardeau

Union

Scott

Alexander

Neshoba

Winston

Haywood

Pemiscot

Obion

Fulton

New Madrid

Lafayette

Fayette

Dyer

Choctaw

Perry

Wilcox

Conecuh

Grady

Queen

Nobles

Sibley

Stearns

Mower

Winnebago

McLean

Ford Champaign

Grundy

Douglas

Madison

Lauderdale

Lake

Tipton

Newton

Sumter

Escambia

Decatur

Wakulla

Leon

Gadsden

Liberty Franklin

Worcester

Hopkins

Murray

Adams

Pierce

Goodhue

Dodge

Lee

Woodford

Ogle

Green

Stephenson

Bureau

Tazewell

Kendall

Macoupin

Monroe

Dunklin

St. Clair

Tate

Pontotoc

Webster

Calhoun

Leake

Fayette

Tuscaloosa

Monroe

Early

Seminole

Salem

Pennington

Harrison

Otter Tail

Zandt

Van

McIntosh

Mahnomen

Yellow Medicine

Coffey

Lyon

Woodson

Swift

Carroll

Rice

Lafayette

Henry

Whiteside

Carroll

Iowa

Clinton

Peoria

Logan

Jersey

Scott

Morgan

Greene

Greene

Grenada

Marion

Lamar

Marengo

Henry

Calhoun

Cumberland

Nemaha

Monona Otoe Nemaha

Stevens

Lake

Red Grant

Rock

Renville

Cass

Palo Alto

Emmet

Watonwan

Cottonwood

Brown

Redwood

Shelby

Sac

Clay

Dickinson

Jackson

Buena Vista

Crawford

Hennepin

Jo Daviess

Copiah

Cass

Parle

qui

Lac Greenwood

Lyon

Pipestone Pawnee

Lyon

Sioux

Jefferson

Brown

Atchison

Pottawattamie

Nowata

Fremont

Rogers

Scott

Jackson

Rock Island

Stark

Leflore

Washington

Stone

Big

Traverse Wilkin

Polk

Mills

Jackson

Wright

Allamakee

Grant

Dubuque

Knox

Cass

Warren

St. Charles

St. Louis

St. Louis

Panola

Norman

Clay

Shawnee

Nicollet

Linn

Scott

Pike

Franklin

McDonough

Mercer

Lincoln

Ripley

Iron

Washington

Crawford

Dent

Oregon

Shannon

Warren

Adams

Muscatine

Phelps

Lawrence

Woodruff

Jefferson

Poinsett

Clay

St. Francois Wayne Butler

Crittenden

Craighead

Rankin

Hancock

Grimes

Fannin

Coal

Rockwall

Okfuskee

Seminole Colorado

Marshall Limestone

Grant Burleson

Marshall

Minnehaha

Osage

Montgomery

Wilson

McLeod

Martin

Buchanan

Fayette

Louisa

Des Moines

Pike

Hancock

Osage

Maries

Howell

Jackson Cross

St. Francis

Faulkner

White

Sunflower

Humphreys

DeSoto

Plaquemines

Kittson

Richland

Brookings

Lincoln

Woodbury

Nodaway

Platte

Andrew

Chickasaw

Bremer

Floyd

Black Hawk

Benton

Poweshiek

Iowa

Johnson

Davis

Clark

Audrain

Izard

Callaway

Texas

Cleburne

Prairie

Lee

Coahoma

Bolivar

Arkansas

Phillips

Lincoln

Washington

Desha

Jefferson

Monroe

Lonoke

Drew

Pike

Stone

Hughes Austin

Washington Calhoun

Roberts Lavaca

Ellis Falls Aransas

Marion

Clay

Lake

Hamlin

Codington

Turner

Victoria

Washington Refugio

Jefferson

Dickinson

Traill

Cass

Burt

Page

Montgomery

Doniphan

Buchanan

Mitchell

Butler

Tama

Marshall

Washington

Henry

Lewis

Marion

Cole

Baxter

Ozark

Douglas

Pulaski

Ralls

Knox

Lee

Van Buren

Scotland

Marion

Taney

Searcy

Pulaski

Morehouse

Yazoo

Lowndes

Clarke

Coosa

Stanton Noble

Clay DeWitt

Pembina Hitchcock Jewell Logan

Day

Lincoln

Plymouth

Union

Thurston

Dodge

Holt

Polk

Grundy

Keokuk

Jasper

Mahaska

Wapello

Appanoose

Monroe

Randolph

Boone

Wright Webster

Grant

Ashley

Claiborne

Hale

Washington

Choctaw

Greene

Barbour

Gulf

Jackson

Houston

Okeechobee

Jefferson

Steele

Sargent

Ransom

Marshall

Deuel

Moody

Dakota

Choctaw

Wagoner

Delta

Walker

Blue Earth

Webster

Ramsey

Putnam

Shelby

Adair

Chariton

Macon

Howard

Miller

Dallas

Camden

Laclede

Boone

Conway

Pope

Perry

Saline

Cleveland

East Carroll

Issaquena

Monroe

Pickens

Kemper

Oktibbeha

Noxubee

Greene

Lauderdale

Baldwin

Pike Dale

Bay

Geneva

Crenshaw

Holmes

Clarendon

Armstrong

Clark

Grand Forks

Cowley

Geary

Washington

Lamar

Rains

Atchison

Pocahontas

Humboldt

Kossuth

Calhoun

Hickory

Garland

Union

Franklin

Jefferson

Tensas

Warren

Chicot West Carroll

Amite

Scott

Jasper

Clarke

Coffee

Marlboro

Barnes

Lincoln

Okmulgee

Pittsburg

Montgomery

Yell

Union

Madison

Catahoula

Shelby

Jones

George

Walton

Williamsburg

Phillips

Spink

Brown

Cuming

Dixon

Butler

Pottawatomie

Douglas

Anderson

Pettis

Polk

St. Clair

Benton

Henry

Johnson

Ouachita

Franklin

Avoyelles

Adams Concordia

Wilkinson

Orleans

Lamar

Pearl River

Marion

Wayne

Covington

Jones

Eddy

Foster Griggs

Butler

Colfax

Wayne

Saline

Seward

Murray

Payne

Henderson

Waseca

Dade

Carroll

Stone

Pike

Richland

Ouachita

La Salle

Jefferson

Perry

Butler

Okaloosa

George

Cavalier

Walsh

Dickey

Faulk

Nelson

Ramsey

Cedar

Kay

McClain

Love

Cooke

Leon

Waller

Madison

Greene

Adair

Guthrie

Dallas

DeKalb

Caldwell

Johnson

Greene

Logan

Caldwell

Tangipahoa

Harrison

Escambia

Prince

LaMoure

Hyde

Hamilton

Platte

Polk Merrick

Boone

Garvin

Carter

Sarpy

Wyandotte

Clay

Clinton

Ray

Cedar

Jackson

Bates

Benton

Lawrence

Barry

Madison

Lafayette

Nevada

Hempstead

Franklin

Lincoln

West Baton Rouge

West Feliciana St. Helena

Hinds

Tallahatchie

Forrest

Mobile Jackson

Beaufort

Towner

McPherson

Campbell

McIntosh

Logan

Oliver

Benson

Buffalo Jerauld

Beadle

Nance

Howard

Phillips

Fillmore

Republic

Thayer

Saunders

Lancaster

Miami

Cass

Newton

Crawford

Washington

Howard

Claiborne

Bossier

Columbia

East Feliciana Pointe Coupee

St. Landry

East Baton Rouge

St. Bernard

Carteret

Potter

Walworth

Washington

Sherman

Greeley

Keith

Valley

Yankton

Rock

York

Franklin

Yuma

Nuckolls

Perkins

Clay

Morgan

Red Willow

Smith

Denton

Hill

Crawford

Vernon

McDonald

Jasper

Sebastian

Sevier

Red River

Webster

Jackson

Winn

Rapides

St. Tammany

Pamlico

Rolette

Corson

Sioux

Emmons

Stutsman

Morton

Edmunds Dewey Sully

Gregory

Deuel

Buffalo

Rawlins

Norton

Russell

Ottawa

Cloud

Gove

Trego

Lincoln

Rush

Johnson

Anderson

Labette

Delaware

Adair

Polk

Caddo

De Soto

Natchitoches

Grant

Vernon

Lafourche

St. Charles

Dare

Bottineau

Renville

Pierce

Sheridan

Burleigh

Wells McLean

McHenry

McPherson

Grant

Kidder

Banner

Adams

Perkins

Johnson

Briscoe

Childress Swisher

Castro

Hall Gonzales

Wallace Guadalupe Torrance

Grant Harper Kingfisher

Kingman Alfalfa

Barber Pratt

Kiowa Comanche Harper

Harding

Ziebach

Brown

Wheeler

Charles Mix

Kingsbury

Sanborn Miner Lyman Jackson Brule Hanson Aurora Mellette McCook

Cheyenne

Harlan

Dundy

Furnas

Webster

Kearney

Decatur

Cheyenne

Logan

Allen

Franklin

Douglas

Neosho

Cherokee

Mayes

Le Flore

Morris

Little River

Bowie

Cass

Miller

Harrison

Sabine

San Augustine

Sabine

Jasper

Livingston

Iberville

Ascension

Accomack

Divide Burke

Bowman

Carter

Butte

Rosebud

Treasure

Fallon

Stark

Mercer

Slope

Lawrence

Golden Valley

Wibaux

Kleberg

Musselshell

Golden Valley

Ellis Mills

Roger

Sioux

Niobrara

Wheatland

Custer

Crook

Hettinger

Williams Mountrail Richland

McKenzie Dunn Fergus

Petroleum Billings

Judith Basin

Prairie

Meagher

Meade

Stanley Hand Hughes Haakon Pennington Jones

Arthur

Sedgwick

Lincoln

Logan

Garfield Custer

Madison Morrill

Cherry

Keya Paha Holt Antelope Pierce

Willacy

Dawson

Box Butte

Kimball

Garden

BlaineThomas

Weld

Bennett

Boyd Dawes Knox

Bon Homme

Davison Douglas Hutchinson Tripp

Shannon Todd Sheridan

Hooker

Loup Grant

Hall Dawson

Logan Phelps

Adams

Frontier

Adams

Gosper

Mitchell

Lincoln

Osborne

Ellis

McPherson

Matagorda

Hemphill

Clark Lipscomb

Ochiltree

Hansford

Stanton Prowers

Cheyenne Baca Dallam

Kiowa Bent

Union Otero

Crowley Animas

Las

Oak

Live

River

Powder Washakie

Big Horn

Yellowstone

Goshen

Custer

Scotts Bluff

Campbell

Laramie

Chase

Hayes

Wichita

Ness

Ellsworth Lane Scott Barton

Saline

Elbert

Rooks

Arapahoe

Graham

Sheridan

Douglas

Teller

Clear Creek

Denver

Kit Carson

Sherman

Thomas

Hodgeman

Greeley

Johnson

Harris

Craig

Cherokee

Upshur

Gregg

Marion

Shelby

Tyler

Nacogdoches

St. Martin

Assumption

Terrebonne

Washington

Roosevelt

Sheridan

Springs

Hot

Carbon

Jack

Lampasas

McCone

Sublette Brooks Pinto

Palo

Garfield

Broadwater

Cascade

Valley

Liberty Hill Ward

Natrona

Platte

Johnson Weston

Fall River

Converse

Larimer

Park

Pottawatomie

Marshall

Gage

Wabaunsee

Pawnee

Osage

Elk

Morris Chase

Riley Chautauqua

Creek

Muskogee

Trinity

Rusk

Panola

Acadia

Iberia

St. Mary

Miller

Saguache

Juan

San

Hinsdale

Daggett Duchesne

Chouteau

Sheridan

Big Horn

Summit

Dallas

Pontotoc

Johnston

Tulsa

Wood

Smith

Angelina

Allen

Evangeline

Lafayette

Baker

Daniels

Blaine Phillips

Fremont

Lake

Edwards

McLennan

Grayson

Kaufman

Navarro

Atoka

Galveston

Newton

Jefferson Davis

Vermilion

Gates

Blanco

Alamos

Los

Conejos

Stillwater Teton Lake

Bear Morgan

Grass

Sweet Fremont Rich Sanpete

Toole

Teton

Moffat

Albany

Park

Park

Lincoln

Teton

Delta

Pitkin

Jefferson

Sumner

Garfield

Sedgwick

Reno

Haskell

Dewey

Kenedy

Dolores

Archer Comanche Llano Duval

Mills

Saba

San

Glacier

Boundary

Shoshone

Gallatin

Uinta

Sweetwater

Carbon

Jackson

Boulder

Routt

Chaffee

Carbon Eagle

Rio Blanco Uintah Gilpin Garfield

Utah

Gunnison

Mesa

Beaver

Meade

Kearny Hamilton Harvey Gray

Rice Pawnee Finney

Grant

Ford

Stafford

Seward

Stevens

Woods

Major

Blaine

Patricio

Pend Oreille

Kootenai

Lake

Bonner Pondera

Lincoln Flathead

Sanders

Missoula

Clark

Summit

Ouray

Pueblo

Woodward

San

Throckmorton

Salle

La

Bandera

Shackelford Dimmit

Zavala

Real

Concho

Uvalde

Jones Maverick

Runnels

Stonewall

Edwards

Fisher

Dickens Kent

Camas

Benewah Juab Piute

Sevier

Millard

Mineral

Adams

Spokane

Latah Granite Lewis

Jefferson Deer Lodge

Clearwater

Beaverhead

Custer

Bonneville

Caribou

Wasatch

Grand

San Miguel

Montrose

El Paso

Hutchinson

Moore

Roberts

Tarrant

Milam

Collin

Jackson Robertson

Bryan

Jacinto

Beaver Lincoln

Pine

White Esmeralda

Pershing Eureka Lander

Churchill

Grant

Walla Walla

Nez Perce

Powell Whitman

Lewis and Clark

Ravalli

Madison

Gem

Payette Jefferson

Butte

Washington

Silver Bow Madison Idaho Lemhi Wallowa Adams Valley Baker

Asotin

Boise

Franklin

Cache

Wayne

Grand

Emery

Garfield

Kane

Fremont

Morton

Sherman

Texas

Harding Cimarron Hartley

Donley

Clay

Kiowa

Greer

Comanche

Collingsworth

Grady Deaf Smith

Jackson

Randall

Harmon

Wilbarger

Foard

Lee

Fayette

Brazos

San

Mitchell

Coke

Garza Borden Reagan Verde

Val

Crockett Martin Upton

Crane

Yoakum

Alpine Mariposa

Lincoln

Garfield

Columbia

Union

Bingham

Weber

Salt Lake

Madera Alamosa

Rio Arriba

Costilla

Custer

Gray

Curry

Valencia

Floyd

Motley

Stephens

Bailey

Lincoln

Socorro

Wise

Nueces

Goliad

Orange

Hardin

Beauregard

Cameron

Calcasieu

James

Ferry

Stevens

Douglas

Power

Tooele

Iron

Archuleta

Rio Grande

Taos

Yavapai

Cotton

Tillman

Bosque

Montague

Catron

Wichita

Hale Lamb

Williamson

Bell

Coryell

Somervell

Gila

Roosevelt

Hardeman

Parmer

Cottle

De Baca

Parker

Washita Caddo

Oklahoma

Hood

Caldwell

Bee

Polk

Chambers

Jefferson

St.

Okanogan

Kittitas

Minidoka

Canyon

Morrow

Umatilla

Lincoln

Grant

Yakima Franklin

Wheeler

Gilliam

Benton

Crook

Sherman

Deschutes

Blaine

Sierra

Oneida

Gooding

Mono

Nye

Mineral

Lyon

Storey

Davis

Washoe

Douglas

Carson City

Tuolumne

Washington

La Plata

Sandoval

Colfax

Hays

Travis

Houston

Liberty Washington

Chelan

Klickitat

Malheur

Elmore

Nevada

Box Elder

Bannock

Jerome Lake

Ada Cassia

Twin Falls Humboldt

Lassen

El Dorado

San Juan

Mineral Montezuma

McKinley

Huerfano

Erath

Hamilton

Cibola

Cleveland

Burnet

Bernalillo

Apache

San Bernardino

Comal

Guadalupe

Fort Bend

Cherokee

Greene

Snohomish

Whatcom Skagit

Plumas

Jefferson

Owyhee

Elko

Modoc

Harney

King Hood River Skamania Wasco Yuba

Placer

Calaveras

Inyo

San Juan

Mora

Wheeler

Potter

San Miguel

Carson Oldham

Canadian

Custer

Coconino Santa Fe

Young

Navajo

Brown

Eastland

Stephens

Quay

Beckham

Baylor

Callahan

Coleman

McCulloch

Kerr

Mason

Hidalgo

Hunt

Brazoria

Wight Brewster Ward

Reeves

Culberson Hudspeth

Winkler Presidio

Greenlee Hidalgo

Paz

La

Colusa

Tehama

Shasta

Butte

Sutter

Sacramento

Stanislaus

Amador

Merced

Taylor

Bexar

Freestone

Wharton

of

Napa

Solano

Klamath

Yolo

San Joaquin

Alameda

Fresno

Tulare

Nolan

Medina

Kendall

Cameron

Bastrop

Isle

Multnomah

San Mateo

Contra Costa

San Benito

Scurry

King

Crosby

Lynn

Howard

Frio

Gillespie

Kimble Menard

Tom Green

Haskell Knox

Wilson

Karnes

Perquimans

Lewis

Clackamas

San Francisco

Santa Clara

Kings Clark

Andrews

Atascosa

Jim Wells

Camden

Glenn

Monterey

Dawson

Gaines

Eddy

Sterling Glasscock Terry

Cochran

Hockley

Chaves

Lubbock

Mohave

Sierra

Grant

Lea

Otero

Webb

McMullen

Jim Hogg

Starr

Hyde

Island

Pierce

Lake

Santa Cruz

Graham

Cochise

Pecos

Zapata

Kinney Irion Schleicher Sutton Midland

Ector

Jeff DavisTerrell

Dorchester

San Juan

Jefferson

Clallam

Kitsap

Thurston

Wahkiakum

Clark

Marion

Trinity

Siskiyou

Jackson

Lane

Linn

Josephine

Douglas

Mendocino

Marin

Pinal

Pima Dona Ana

Luna

El Paso

Los Angeles

Riverside

Maricopa

Santa Cruz

Currituck

Mason

Grays Harbor

Cowlitz

Yamhill

Washington

Pacific Clatsop

Columbia

Tillamook

Lincoln

Polk

Benton

Curry

Coos

Del Norte

Humboldt

Ventura

Kern

San Luis Obispo

Sonoma

Santa Barbara

Orange

San Diego

Imperial

Yuma

Figure 7.28: U.S. county population cartogram using RecMap (MP1)

Somerset

7.4 Application – Geographic Related Data

115

Kittson

Hubbard

Osceola

Miner

Sanborn

Douglas

Cass

Pennington

Plymouth

Yellow Medicine

Rock

Pipestone

Lincoln

Lyon

Harrison

Crawford

Atchison

Doniphan

Murray

Brown Cottonwood

Kossuth

Humboldt

Shelby

Madison

Lyon

Adair

Greene

Montgomery

Cass

Carver

Hamilton

Boone

Mercer

Lucas

Franklin

Aitkin

Mitchell

Crow Wing

Richland

Buffalo

Jones

Lafayette

Schuyler

Carlton

Ashland

Bayfield

Webster

Juneau

Lee

Piatt

Lincoln

Mackinac Schoolcraft

Oneida

Menominee

Shawano

Marquette

Waushara

Langlade

Oconto

Walworth

Delta

Alger

Luce

Chippewa

Montgomery

Ontonagon

Marinette

Door

Dickinson

Iron

Baraga

Keweenaw

Butler

Forest

Washington

Henry

Marquette

Florence

Vilas

Calumet

Richardson

Menominee

Kendall

Kane

Warren

Union

Jefferson

Graves

Weakley

Hickman

Perry

Franklin

Gallatin

Benton

Trigg

Caldwell

Webster

Hardin

Crittenden

Union

Saline

Pike

Todd

Alpena

Miami

Fulton

Presque Isle

Clare

Antrim

Charlevoix

Montmorency

Huntington

Blackford

Wells

Moore

Cannon

Lanier

Irwin

Cheboygan

Emmet

Roscommon

Oscoda

Crawford

Otsego

Union

Cumberland

Leelanau

Benzie

Osceola

Wexford

Grand Traverse

Jennings

Scott

Casey

Fentress

Wayne

Rhea

Manistee

Lake

Washington

Jefferson

Scott

Ripley

Carroll

Oldham

Mason

Kewaunee

Manitowoc

Oceana

Ozaukee

Lake

Garrard

Appling

Bacon

Terrell

Graham

Sheboygan

Washington

Sevier

Union

Clay

Macon

Treutlen

Johnson

Jenkins

Williams

Jackson

Jasper

Hampton

Ogemaw

Ionia

Eaton

Fulton

Barry

Hancock

Wood

Henry

Putnam

Paulding

Gladwin

Shiawassee

Midland

Bay

Arenac

Alcona

Watauga

Sanilac

Giles

Oglethorpe

Pickens

Hancock

Wilkes

Summers

Alleghany

Rock Island

Scott

St. Clair

Livingston

Henry

Danville

Clarion

Fulton

Juniata

Winnebago

Medina

Lorain

Wetzel

Appanoose

Wayne

Belmont

Doddridge

Mathews

Northumberland

York

Boone

Milwaukee

Lake

Southampton

White

Scott

Cape Girardeau

McMinn

Woodford

Henry

Estill

Madison

Mercer

Rabun

Franklin

Lumpkin

Westmoreland

Washington

Jefferson

Hancock

Carroll

Darke

Preble

Clay

Calhoun

Mason

Page

Marion

Pleasants

Ritchie

Wirt

Brown

Perry

Brooke

Beaver

Columbiana

Harrison

Hamilton

Franklin

Boyd

Clinton

Essex

Jefferson

Union

Addison

Crawford

Knox

Russell

Washington

Chittenden

Orange

Franklin

Orleans

Lamoille

Caledonia

Essex

Yates

Coos

Somerset

Huron

Piscataquis

Sagadahoc

Hawkins

Monroe

Waldo

Knox

Strafford

Bell

Oakland

York

Windham

Albany

Tolland

Fairfield

Steuben

Orleans

Kalamazoo

Rutland

Wayne

Rensselaer

Berkshire

Norfolk

Currituck

Martin

Chesapeake

Henrico

DeKalb

Noble

Lehigh

Hampshire

Bucks

Grundy

Tazewell

Wabash

Fairfield

Licking

Monroe

Warren

Northampton

Sussex

Cass

Passaic

Essex

Howard

Providence

Allen

Franklin

Petersburg

Middlesex

Clearfield

Jefferson

Bedford

Ohio

Lycoming

Greene

Hudson

Greenup

Kings

Bergen

Bronx

New York

Philadelphia

Barnstable

Portsmouth

Dubois

Dukes

Hampden

Allen

Saratoga

Ontario

Monroe

Cumberland

Ingham

Aroostook

LaPorte

Washington

Warren

Bennington

Adams

Westchester

Bristol

Plymouth

Suffolk

Middlesex

Bristol

Hardin

Meade

Hartford

Newport

Washington

Franklin

Roanoke

New London

Arlington

Windham

Kent

District of Columbia

Hillsborough

Cheshire

Washtenaw

Franklin

Lenawee

Rockingham

Alexandria

Howard

Middlesex

Surry

New Haven

Suffolk

McDowell

Prince William

Charles

Montgomery

Greene

Columbia

Worcester

Lucas

Wayne Washington

Penobscot

Hancock

Frederick

Dutchess

Putnam

Rockland

Orange

Litchfield

Ulster

Davidson

Alamance

Floyd

Davie

Guilford

Essex

Baltimore

Delaware

Ottawa

Randolph

Person

Vanderburgh

Pike

Nassau

Adams

Sullivan

Bradford

Erie

Seneca

Sullivan

Lincoln

Kennebec

Androscoggin

Franklin

Macomb

Oxford

Herkimer

Merrimack

Grafton

Belknap

Carroll

Seneca

Fulton

Oneida

Carroll

York

Knott

Perry

Rockingham

Carter

Washington

Orange

Spencer

Union

Middlesex

Schenectady

Montgomery

Otsego

Tioga

Chemung

Madison

Windsor

Schuyler

Chenango

Tioga

St. Louis

Queens

Richmond

Somerset

Mercer

Ocean

Richland

Schoharie

Tompkins

Onondaga

Oswego

Cayuga

Cortland

Cocke

Stanly

Clinton

Hunterdon

Burlington

Logan

Marion

Morrow

Broome

Lewis

St. Lawrence

Pike

Delaware

Lackawanna

Wayne

Wayne Randolph

Jackson

Wayne

Preston

Monongalia

Gallia

Roane

Cabell

Putnam

Lincoln

Madison

Cabarrus

Monmouth

James City

Boone

Kanawha

Monroe

Taylor

Harrison

Lewis

Scott

Fayette

Harford

Allegheny

Lawrence

Franklin

Jessamine

Clark

Franklin

Overton

Putnam

White

Harnett

Loudon

Warren

Camden

Gloucester

Delaware

Montgomery

Chester

Butler

Berrien

Cass

Habersham

Anderson

Cole

Transylvania

Oconee

Stephens

Hall

Muhlenberg

Wake

Kent

Van Buren

Banks

Swain

Haywood

Hamblen

Osage

Carteret

Craven

Marion

Amherst

Rockbridge

Nelson

New Castle

Worcester

Edwards

Wayne

Clay

Lynchburg

Virginia Beach

Accomack

Berks

Wayne

Summit

Cuyahoga

Portage

Wyoming

Somerset

Kent

Salem

Northumberland

Luzerne

Nicholas

Fayette

Raleigh

Carbon

Sullivan

Caroline

Queen Anne’s

Talbot

Calvert Dorchester

Washington

Alexander

Abbeville

DeKalb

Florence

Henderson

Beaufort

Pamlico

Wayne

Pitt

Union

Mecklenburg

Catawba

Lenoir

Martin

Hertford

Tyrrell

Hyde

Northampton

Chowan

Gates

Pasquotank

Norfolk

Camden

Edgecombe

Greene

Wilson

Bertie

Dare

Richmond

Sussex

Cecil

Schuylkill

Columbia

Webster

Wyoming

Montour

Grant

Randolph

Trumbull

Garrett

Tucker

Barbour

Mercer

Fayette

Dauphin

Westmoreland

Brunswick

Dinwiddie

Chesterfield

Greensville

Nottoway

Amelia

Halifax

Nash

Johnston

Christian

Pender

Warren

Davidson

Chesterfield

Anson

Burke

Rutherford

Polk

Perquimans

Hopewell

Hampton

Poquoson

Buckingham

Powhatan

Cumberland

Fluvanna

Jones

Lunenburg

Prince Edward

Goochland

St. Mary’s

Lancaster

Somerset

Greene

Marshall

Monroe

Harrison

Ashtabula

Lake Geauga

Armstrong

Noble

Guernsey

Erie

Indiana

Cambria

Mineral

Lancaster

Richmond

Spotsylvania

Gloucester

Essex

Mingo

Logan

Newport News

Charles City

New Kent

King William

Caroline

King George

Hanover

Appomattox

Isle of Wight

Surry

Prince George

Tazewell

Duplin

Marion

Georgetown

Coffee

Sumter

Wilcox

Telfair

Ben Hill

Pierce

Murray

New Hanover

Brunswick

Columbus

Bladen

Onslow

Rowan Lee

Robeson

Dillon

Sumner

Horry

Williamsburg

Tippah

Prentiss

Richmond

Hamilton

Sarasota

Sampson

DeSoto

Fairfield

Yancey

Lebanon

Cumberland

Franklin

Morgan

Sussex

Suffolk

Campbell

Marion

Buchanan

Stafford

Rappahannock

Allegany

Charlotte

Washington

Unicoi

Buncombe

Cumberland

Taylor

Smyth

Vance

Warren

Fauquier

Culpeper

Orange Louisa

Mecklenburg

Granville

Morgan

Muskingum

Venango

Mecosta

Crawford

Tuscarawas

Blair

Holmes

Coshocton

Ashland

Rockingham

Albemarle

Clarke

Washington

Mifflin

Centre

Hampshire

Jefferson

Huntingdon

Cameron

Livingston

Niagara

Elk

Potter

Berkeley

Caswell

Pittsylvania

Hardy

Snyder

Clinton

Loudoun

Frederick

Augusta

Bedford

Botetourt

Halifax

Durham

Hoke

McDowell

Mitchell

Madison

Greene

Highlands

Polk

Richland

Lexington

Baker

Nassau

Charlton

Pulaski

Flagler

Hardee

Clay

St. Lucie

Indian River

Osceola

Ware

Jackson

Scotland

Moore

Chatham

Montgomery

Okeechobee

Putnam

St. Johns

Forsyth

Sumter

Kershaw

Darlington

Marlboro

Richmond

Lee

Clarke

Charleston

Berkeley

Anderson

Forsyth

Stokes

Patrick

Floyd

Craig

Bath

Highland

Pocahontas

Pendleton

Shenandoah

Union

Allegany

McKean

Forest

Wyoming

Genesee

Chautauqua

Lapeer

Carroll

Montgomery

Monroe

Greenbrier

Lincoln

Baldwin

Dorchester

Glascock

Washington

Colleton

Bamberg

Jackson

Bradford

Brevard

Alachua

Union

Duval

Fulton

Hart

Madison

Elbert

Greenville

Yadkin

Wythe

Mercer

Pulaski

Butler

Bland

Fayette

Montgomery

Alleghany

Sullivan

Calhoun

Greene

Newton

Webster

Charlotte

Orange

Shelby

Dallas

Cattaraugus

Huron

Genesee

Saginaw

Jo Daviess

Tuscola

Isabella

Montcalm

Montgomery

Warren

Erie

Gratiot

Madison

Hardin

Clinton

Wyandot

Shelby

Defiance

Meigs

Clark

Miami

Pickaway

Hocking

Bristol

Washington

Ashe

Johnson

Wilkes

Iredell

Jasper

Morgan

Walton

Barrow

Oconee

Clarendon

Orangeburg

Spartanburg

Lincoln

Alexander

Grayson

Lewis

Avery

Scott

Russell

Nicholas

Ross Bourbon

Rowan

Montgomery

Dickenson

Hancock

Caldwell

Saluda

Newberry

Laurens

Cherokee

Cleveland

Edgefield

Whitley

Bath Menifee

Martin

Morgan

Powell

Claiborne

Lee

Wise

Lee

Vinton

Champaign

Highland

Fleming

Lawrence

Johnson

Union

McCormick

Aiken

Glynn

Cobb

Gwinnett

Allendale

Barnwell

Greenwood

Morgan

Henry

Seminole

Lake

Beaufort

Pasco Screven

Iosco

Dane

Elliott

Owsley

Knox McCreary

Campbell

Chester

Lancaster

Calhoun

Benton

Gaston

Pulaski

Laurel

Clay

Harlan

Letcher

Breathitt

Magoffin

Carter

Mason

Brown

Clermont

Warren

Auglaize

Van Wert

Sandusky

Elkhart

LaGrange

Hillsdale

Jackson

Calhoun

Kent

Waukesha

Nodaway

Ford

Clinton

Campbell

Emanuel

Candler

Leslie

Adams

Rockcastle

Perry

Wolfe

Lawrence

Jefferson

Grainger

York

Jackson

Branch

Newaygo

Allegan

Pendleton

Anderson

Scioto

Pike

Cass

St. Joseph

Kosciusko

Steuben

Carroll

White

Porter

Pulaski

Jasper

Whitley

Shelby

Trimble

Kenton

Bracken

McLean

Champaign

Gallatin

Towns

Fannin

White

Columbia

Pike

DeKalb

Burke

Monroe

Evans

Volusia

Lee

Upson

Jefferson

Pickens Dawson

McDuffie

Talbot

Taylor

Butts

Henry

Schley

Marion

Bryan

Camden

Brantley

Hernando

Long

Wayne

Sumter

Marion

Calhoun

Liberty

Muskegon

Ottawa

St. Joseph

Starke

Kankakee Marshall

Owen

Grant

Boone

Tippecanoe

Ohio Switzerland

Clark

Floyd

Lincoln

Roane Union

Douglas

Rockdale

Tattnall

Jeff Davis

Wheeler

Laurens

Citrus

Randolph

Muscogee

Lee

Clayton

Cherokee

Whitfield

Monroe

Blount

Knox

Jefferson

Boyle

Meigs

Bradley

Polk Cherokee

Gilmer

Gordon

Bartow

Paulding

Dodge

Bleckley

Toombs

Macon

Fayette

Spalding

Carroll

Twiggs

Chattahoochee

Lamar

Stewart

Coweta

Meriwether

Quitman

Calhoun

Levy

Early

Clay

Russell

Peach

Wilkinson

Barbour

Dixie

Franklin

Morgan

Bartholomew

Pickett

Lawrence

Jackson

Missaukee

Kalkaska

Decatur

Franklin

Orange

Shelby

Jackson

Randolph

Haralson

Troup

Harris

Tallapoosa

Taylor

Pike

Macon

Holmes

Calhoun

Houston

Washington

Gulf

Bullock

Polk

Floyd

Walker

Catoosa

Cumberland

Bledsoe

Clay

Metcalfe

Green Adair

Spencer

Harrison

Crawford

Bullitt

Nelson Larue

Smith

Monroe

Trousdale

Allen

Hart

Jay

Barren

Wilson

Sequatchie

Van Buren

Cherokee

Chattooga

Dade

Marion

Grundy

Warren

DeKalb

Geneva

Coffee

Heard

Cleburne

Coosa

Chambers

Baker

Jones

Dooly

Bay

Jackson

Putnam

Grenada

Crisp

Turner

Elmore

Clay

Baldwin

Worth

Tift

Cook

Brooks

Gadsden

Decatur

Mitchell

Autauga

Macon

Grayson

Breckinridge

Hancock

Hopkins

McLean

Ohio

Boone

Grant

Tipton

Marion

Moniteau

Daviess

Rutherford

Bedford

Lincoln

Madison

Marshall

Cullman

Miller

Butler

Columbia

Clinch

Echols

Jefferson

Lowndes

Mobile

Coffee

Blount

Robertson

Daviess

Madison

Hamilton

Logan

Butler

Warrick

Wabash

Cheatham

Franklin

Williamson

Maury

Giles

Jackson

St. Clair

Gilchrist

Suwannee

Madison

Lowndes

Wakulla

Dallas

Wilcox

Conecuh

Crenshaw

Etowah

Clarke

Washington

Wayne

Choctaw

George

Jackson

Jones

Greene

Perry

Berrien

Atkinson

Lafayette

Hamilton

Liberty

Leon

Monroe

Escambia

Grady

Thomas

Johnson

Cook

Boone

Montgomery

Parke

Hancock

Morgan

Clinton

Henry

Henderson

Knox

Warren

Marshall

Hickman

Dickson

Houston

Edmonson

Simpson

Gibson

Posey

Rush

Will

Lyon

Union

Williamson

Humphreys

Stewart

Limestone

Colquitt

Okaloosa

Escambia

Pickens

Harrison

Montgomery

Santa Rosa

Covington

Walton

Fayette

Chilton

Talladega

Morgan

Lawrence

Madison

Carroll

Lawrence

Wayne

Lewis

Henry

Calloway

Marshall

Livingston

Ste. Genevieve

Haywood

Gibson

Madison

Iron

Perry Bollinger

Carlisle

Mississippi

Ballard

Jackson

Perry

Hamilton

DuPage

Washington

Pulaski

Dunklin

Stoddard

Wayne

Randolph

Monroe

Reynolds

Johnson

Clay

New Madrid

Pope

DeKalb

Jefferson

Dodge

Fond du Lac

Winnebago

Green Lake

Louisa

Owen

Putnam

Douglas

Clay

Vigo

Greene

Massac

Hardin

Decatur

McNairy

Lauderdale

St. Tammany

Walker

Shelby

Colbert

Perry

Bibb

Hale

McCracken

Henderson

Hardeman

Chester

Alcorn

Tishomingo

Lamar

Taney

Winston

Humphreys

Stone

Pearl River

Stone

Hancock

Jefferson

Franklin

Randolph

Greene

Lake

Fulton

Marion

Tuscaloosa

Itawamba

Lee

Chickasaw

Monroe

Clinton

St. Clair

Jersey

Jefferson

Keokuk

Kenosha

Lawrence

Richland

Clark

Sullivan

Edgar

McHenry

Pemiscot

Dyer

St. Bernard

Lincoln

Union

Forrest

Marion

Webster

Union

Lafayette

Pontotoc

Crockett

Craighead Lauderdale

Fayette

Clay

Marshall

Lamar

Greene

Marengo

Sumter

Lowndes

Montgomery

Kemper

Noxubee

Neshoba

Jasper

Clarke

Lafayette

Hinds

Plaquemines

Columbia

Warren

Claiborne

Ashley

St. John the Baptist

St. Charles

Houghton

Black Hawk

Waupaca

Outagamie

Brown

Columbia

Benton

Tate

Tallahatchie

Yalobusha

Panola

Attala

Winston

Leake

Newton

Smith

Wilkinson

East Feliciana

Vermillion

Fountain

Crawford

Benton

Warren

Racine

Mercer

Iroquois

Vermilion

St. Louis

Jasper

Effingham

Cumberland

Newton

Sauk

Warren

Grundy

Christian

Shelby

Moultrie

Coles

Henderson

Des Moines

Scott

Tipton

Macoupin

Madison

Obion

Mississippi

Cross

Holmes

Leflore

Quitman

Tunica

DeSoto

Crittenden

Bond

Callaway

Pulaski

Fayette

St. Francis

Poinsett

Cleveland

Prairie

Lee Monroe

Lincoln

Bradley

Yazoo

Madison

Carroll

Drew

Adams

Olmsted

Portage

Wood

Henry

Whiteside

Van Buren

De Witt

Menard

La Salle

Bureau

Putnam

Rock

Ogle

Knox

Marathon

Rusk

Gogebic

Sawyer

Pepin

Hancock

Polk

Barron

Freeborn

Wabasha

Goodhue

Washington

Chisago

Iron

Price

Wapello

Iowa

Carroll

Jackson

Clinton

Monroe

Jackson

Clark

Taylor

Dodge

Trempealeau

Green

Cedar

Scotland

Schuyler

Warren

Butler

Ripley

Woodruff

Audrain

Lee

Clark

Logan

Livingston

Davis

Lewis

Mason

Hancock

Howard

Shelby

Randolph

Jackson

Sharkey

St. James

Iberia

Pike

Franklin

Amite

St. Helena

Jefferson

Tangipahoa

Livingston

Ascension

Iberville

Assumption

Lafourche

Washington

St. Mary

Rankin

Chicot

Desha

Arkansas

Independence

St. Charles

Macon

Carter

Shannon

Lawrence

Lincoln

Oregon

Knox

Marshall

Woodford

Muscatine

Stark

Peoria

Adams

Howell

Sharp

Izard

Stone Lonoke

Washington

Jefferson

White

Cleburne

Bolivar

Richland

Simpson

Jefferson Davis

East Carroll

Walthall

West Carroll

East Baton Rouge

Bienville

Winn

Madison

Lawrence

Covington

Calhoun

Monroe

Marion

Pike

Ralls

Baxter

Faulkner

Coahoma

Jackson

Caldwell

Franklin

Copiah

Phillips

Claiborne

Tensas

Stephenson

Marshall

La Crosse

Cook

Chippewa

St. Croix

Dunn

Pierce

Washburn

Burnett

Pine

Ramsey

Kanabec

Isanti

Douglas

Dakota

St. Louis

Lake

Crawford

Allamakee

Brown

Fulton

Fulton

Linn

Sunflower

Jefferson

Grant

Concordia

West Feliciana

La Salle

Lincoln

Conway

St. Francois

Franklin

Montgomery

Washington

Crawford

Gasconade

Van Buren

Pope

Maries

Miller

Phelps

Dent

Scott

McDonough

Johnson

Grant

Dubuque

Delaware

Monroe

Chickasaw

Fayette

Greene

Pike

Buchanan

Ozark Marion

Morgan

Henry

Cooper

Laclede

Texas

Douglas

Jefferson

Hot Spring

Montgomery

Avoyelles

West Baton Rouge

Pointe Coupee

Pulaski

Saline

Houston

Winona

Winneshiek

Clayton

Vernon

Fillmore

Howard

Itasca

Worth

Marion

Searcy

Camden

Johnson

Lafayette

Pettis

Saline

Chariton

Adair

Bremer

Benton

Iowa

Mahaska

Eau Claire

Clarke

Ringgold

Cerro Gordo

Vernon

Labette

Floyd

Rice

Anoka

Le Sueur

Scott Sibley

Decatur

Poweshiek

Linn Carroll

DeKalb

Hickory

Christian

Polk

St. Clair

Ray

Cass

Tama

Jasper

Grundy

Putnam

Sullivan

Hardin

Livingston

Clinton

Caldwell

Buchanan

Daviess

Harrison

Bates

Benton

Cherokee

Crawford

Jasper

Lawrence

Barry

Linn

Worth

Taylor

Polk

Faribault

Dickinson

Waseca

Wright

Winnebago

Emmet

Dallas

Guthrie

Page

Audubon

Gentry

Barton

Dade

Newton

Clark

McDonald

Johnson

Yell

Grant

Perry

Evangeline

Hempstead

Union

Catahoula

Rapides

Morehouse

Ouachita

Natchitoches

Jefferson Davis

Garland

Logan

Allen

Vernon

Cameron

Beauregard

Calcasieu

Orange

Madison

Steele

Hennepin

Redwood

Franklin

Newton

Boone

Adair

Delaware

Craig

Ottawa

Sequoyah

Crawford

Washington

De Soto

Carroll

Andrew

Wyandotte

Holt

Mower

Wright McLeod

Blue Earth

Martin

Meeker

Palo Alto

Adams

Story

Pocahontas

Renville

Sherburne

Watonwan

Webster

Sebastian

Scott

Jefferson

Jackson

Calhoun

Buena Vista

Pottawattamie

Mayes

Johnson

Leavenworth

Platte

Lafayette

Muskogee

Creek

Dallas

Le Flore

Haskell

Okmulgee

Douglas

Neosho

Calhoun

Nevada

Ouachita

Pike

Kandiyohi

Carroll

Sac

Clay

Nobles

Chippewa

Mille Lacs

Traill

Nicollet

Benton

Norman

Clay

Red Lake

Polk

Mahnomen

Deuel

Moody

Union

Lincoln

Dixon

Sioux

Lake

Codington

Stearns

Morrison

Wadena

Kingsbury

McCook

Sarpy

Cherokee

Becker

Cass

Woodbury

Spink Aurora

Jerauld

Hanson

O’Brien

Thurston

Jackson

Nemaha

Clay

Allen

Pittsburg

Howard

Cherokee

Anderson

Atoka

Pushmataha

Burt

Douglas Dakota

Marshall

Osage

Wabaunsee

Pottawatomie

Woodson

Lyon

Polk

Sevier

Bossier

Cass

Newton

Sabine

Harrison

Marion

Panola

Sabine

Jasper

Cherokee

Wagoner

Fayette

Victoria

DeWitt

Lavaca

Latimer

Bee

Crawford

Cedar

Bulloch

Effingham

Seminole

Wright

Dougherty

Isle

Nelson

Koochiching

Beltrami

Hand

Buffalo

Ida

Hughes

Lyman

Gregory

Beadle

Jones

Mills

Pawnee

Elk

Greenwood

Chase

Geary

Marion

Choctaw

McCurtain

Miller Red River

Caddo

Lamar Shelby

Goliad

Duval

Live Oak

Karnes

Starr

Bibb

Chatham

Houston

Broward

Grand

Ramsey

Benson

Cavalier

Monona

Brookings

Towner

Walsh Marshall

Roseau

Woods

Clark

Pembina

Hamlin

Day

Grant

Minnehaha

Brown

Fall River

Dawes

Pennington

Custer

Foster

Grand Forks

Wells

Kidder

Logan

the

Pierce

Stutsman

Hyde Sully

of

Steele

Eddy

Barnes

Griggs

LaMoure

Jackson

Mellette

Haakon

Stanley

Johnson

Gage

Saunders

Cass

Harding

Fremont

Butte

Perkins

Jefferson

Nemaha

Washington

Thayer

Clay

Republic

Titus

Little River

Brazoria

Denton

Bowie

Camp

Sedgwick

Harvey

Butler

Ottawa

Cloud

Nowata

Washington

Mitchell

Lincoln

Lake

Faulk

Oliver

Emmons

McIntosh

Marshall

Sargent

Ransom

Dickey

Walworth

Douglas

Edmunds

Atchison

Dewey

Meade

Fallon

Custer

Otoe

Harper

Caddo

Franklin

Morris

Montague

Clearwater

Bottineau

Rolette

Campbell Potter

McPherson

Sheridan

Dunn

Roberts

Crook

Weston

Bowman

Sioux Corson Adams

Slope

Lawrence

Dodge

Chautauqua

Jewell

Osborne

Russell

Rush

Kingman

Sumner

Barber

Madison

Wise

Upshur

Red River

Reno

Cowley

Ellis

Barton

Washington

Rogers

Lancaster

Colfax

Campbell

McKenzie

Billings

Todd

Wilkin

Richland

Burke

Mountrail

Butler

Stanton

Saline

Seward

Polk

Rooks

Kay

Osage

Trego

Cuming

McHenry

Renville

Richland

Dawson

Turner

Clay Nuckolls

Fillmore

Hamilton

Merrick

Platte

Prairie

McCone

Clay

McLean

Daniels

York

Gosper

Nance

Cedar

Yankton

Bon Homme

Charles Mix

Roosevelt

Sheridan

Divide

Mercer

Phelps

Buffalo

Howard

Pierce

Wayne

Boyd

Knox

Hutchinson

Brule

Valley

Williams

Kearney

Franklin

Smith

Grant

Garfield

Stafford

Pawnee

Edwards

Ziebach

Phillips

Sherman

Antelope

Greeley

Valley

Tripp

Davison

Grant

Stark

Morton

Traverse

Grant

Otter Tail

Swift

Stevens

Lac qui Parle

Loup

Webster

Paha

Rock

Norton

Graham

Keya

Burleigh

Gove

Sheridan

Decatur

Furnas

Harlan

Adams

Holt

Madison

Boone

Hettinger

Big Stone

Pope

Ward

Thomas

Wichita

Logan

Rawlins

Sherman

Wallace

Red Willow

Hall Frontier

Hitchcock

Wibaux

Dundy

Alfalfa

Pawnee

Tulsa

Kiowa

Ford

Valley

Lincoln

Kit Carson

Woods

Comanche

Logan

Clark

Golden

Morgan Kimball

Washington

Woodward

Meade

Gray

Hodgeman

Blaine

Collin

Kingfisher

McPherson

Rice

Canadian

Bryan

River

Blaine

Brown

Hayes

Yuma

Logan Phillips

Chase

Ochiltree

Hansford

Beaver

Ellis

Haskell

Grant

Ellsworth

Major

Grimes

Brazos

Gregg

Wood

Henderson Van Zandt

Hopkins

Navarro

Burleson

Washington

Rains

Powder

Thomas

Grant

Bennett

McPherson

Hooker

Weld Logan

Sedgwick Perkins

Scott

Sherman

Stevens

Harper

Noble

Kaufman

Hunt

Fannin

Grayson

Seminole

Delta

Rockwall

Lee

Milam

Falls

Limestone

Ellis

Freestone

Hill

Robertson

Garfield

Arthur

Todd

Deuel

Cherry

Garden

Morrill

Kearny

Texas

Hemphill

Dewey

Seward

Lipscomb

Love

Cleveland

Lincoln

Okfuskee

Coal

Hughes

Carter

Cooke

Hamilton

Leon

Waller

Carter

Niobrara Sioux

Columbia

Benewah

Keith

Hamilton

Latah

Whitman

Scotts Bluff

Bent

Otero

Crowley

Cheyenne

Morton

Stanton

Greeley

Petroleum

Lewis

Clearwater

Adams

Goshen

Elbert

Kiowa

Prowers

Las Animas

Marshall

Johnston

Pontotoc

Pottawatomie

Lamb

Murray

Garvin

Garfield

Phillips

Musselshell

Blaine

Hill Basin

Judith

Liberty

Wheatland

Fergus

Valley

Golden

Shoshone

Mineral

Whatcom

Banner

Cheyenne

Baca

Payne

Oklahoma

Teller

El Paso Fremont

Conejos

Dallam

Bailey

Parmer

Hockley

Wheeler

Umatilla

Oreille

Pend

Benton

Stevens

Ferry

Juan

San

Lincoln

Bonner

Box Butte

Fremont

Madison

Rio Grande

Roberts

Morrow

Grant

Okanogan

Kootenai

Boundary

Asotin

Douglas

Pueblo

Clear Creek

Park

Union

McClain

Mills

Douglas

Chelan

Summit

Grand

Jackson

Spokane

Larimer

Boulder

Routt

Hartley Oldham

Roger

Kittitas

Lincoln

Laramie

Greenlee

Daggett

Platte

Hinsdale

Sublette

Fremont

Arapahoe Gallatin

Park

Grass

Sweet

Meagher

Albany Mineral

Sheridan

Stillwater

Big Horn

Converse

Curry

Grady

Deaf Smith

Castro

Swisher

Harding

Shannon

Treasure

Rosebud

Big Horn Johnson

Natrona

Washakie

Hot Springs

Cotton

Tillman

Bosque

Johnson

Parker

Hood Jack

Palo Pinto

Childress

Hardeman

Lampasas

Coryell

Bastrop

Jackson

Calhoun

Refugio

Jim Hogg

Adams

Bourbon

McIntosh

Robertson

Yellowstone

Davis

Weber Park

Jefferson

Stephens

Randall

Foard

Stephens

Burnet

Blanco

Comanche

Mills

Uvalde

Zavala

Matagorda

Wharton

Fort Bend

Montgomery

Colorado

Austin

Chambers

Gonzales

Wilson

Zapata

Hidalgo

Webb

Galveston

San Jacinto

Shawnee

Orleans

St. Landry

Terrebonne

Dale

Queen

Sherman

Sheridan

Teton

King

Snohomish

Teton

Clark

Yakima

Skagit

Skamania

Madison

Carbon

Colfax

Knox

Eastland

Gillespie

Llano

San Saba

Brown

Mason

Medina

Bandera

Kerr

La Salle

Frio

Walker

Houston

Cameron

Trinity

Polk

Liberty

Nacogdoches

Montgomery

Smith

Vermilion

Acadia

Franklin

Anderson

Martin

Oktibbeha

Greene

Choctaw

Lauderdale

Palm Beach

Pinellas

and

Island

Gilliam Wheeler

Klickitat

Wasco

Clark

Bonneville

Churchill

Esmeralda

Jefferson

Rich

Costilla

Alamosa

Taos

Haskell

Coleman

Kimble

Menard

Concho

Runnels

Edwards

Real

Dimmit

Tyler

Angelina

Wilson

McIntosh

Coffey

Glades

Hendry

Miami

King

San Juan

Kitsap

Hood River

Lincoln

Mineral

Caribou

Jefferson

Lander

Bear Lake

Franklin

Eureka

Oneida

Morgan

Glasscock

Franklin

Custer

Jefferson

Elko

Box Elder

Power

Clackamas

Lincoln

Cassia

Union

Twin Falls

Jerome

Minidoka

Valley

Linn

Pierce

Mason

Clallam

Boise

Gem Adams

Tooele

Mora

Huerfano

Santa Fe

Sterling

Garfield

Lincoln

Butte

Camas

Walla Walla

Benton

Blaine

Bingham

Elmore

Custer

Lemhi

Idaho

Wallowa

Baker

Washington

Payette

Inyo

Custer

Saguache

Rio Arriba

Chaffee

Lake

Los Alamos

Cochise

Borden

Nez Perce

Dawson

Lincoln

Grays Harbor

Thurston

Broadwater

Tillamook

Clatsop

Pacific

Deer Lodge

Beaverhead

Ravalli

Owyhee

Nye

Hidalgo

Catron

Apache

Archuleta

Gunnison

Delta

Luna

La Plata

Cibola

Sierra

Socorro

Valencia

McKinley

Montezuma Wayne Piute

Jones

Sutton

Callahan

Lubbock

Briscoe

Fisher

Dickens

Kent

Kinney

Maverick

Howard

Shackelford

Wahkiakum

Granite

Silver Bow

Powell

Canyon

Washington

Lewis and Clark

Jefferson

Ada

Juab

White Pine

Dolores

Garfield

San Juan

Torrance

Carbon

Rio Blanco

Grand

Sanpete

Crosby

Floyd

Scurry

Motley

Cottle

Harmon

Val Verde

Greer

Hall

Brewster

Throckmorton

Cowlitz

Lewis

Cascade

Yamhill

Marion

Polk

Grant

Deschutes Harney

Malheur

Millard Beaver

Emery

Uintah

Garfield

Sevier

Duchesne

Dona Ana

Hale

Garza

Wheeler

Beckham

Crockett

Tom Green

Pecos

Donley

Washita

Presidio

Kiowa

Archer

Wichita

King

Pershing

Humboldt

Crook

Multnomah

Modoc

Lincoln

Washington

Armstrong

Jackson

Klamath

Lake

Washoe

Gooding

Carbon

Sweetwater

Lincoln

Reagan

Culberson

Alpine

Sierra Toole

Glacier

Teton

Pondera

Moffat

Bernalillo

Uinta

Summit

Wasatch

Guadalupe

Chaves

Martin

Midland

Reeves

Ward

Hudspeth

Bannock

Columbia

Glenn

Plumas

Lassen

Chouteau

Salt Lake

Dickinson

San Miguel

Quay

Winkler

Andrews

Crane

Upton

Eddy

Custer

Davis

Josephine

Humboldt

Tehama

Mendocino

Yuba

Flathead

Utah

Sandoval

Roosevelt

Yoakum

Lea

De Baca

Cochran

Gaines

Dawson

Saline

Terry

Lynn

Santa Cruz

Otero

El Paso

Ector

Jeff

Del Norte

Siskiyou

Trinity

Shasta

Sanders

Tulare

Fresno

Kings

Lake

Yuma

Pima

Pratt

Collingsworth

Curry

Butte

Lyon

Storey

Missoula

Madera

Monterey

Iron Kane

Yavapai

Maricopa Gray

Terrell

Sutter

Carson City

Stanislaus

Tuolumne

Calaveras

Mono

Coconino

Mohave

Potter

Stonewall

Coos

Lane Douglas

Denver

Colusa

Nevada

Douglas

Mariposa

Santa Cruz

San Benito

Carson

Rusk

Hardin

Harris

Comal

Jefferson

Hays

Caldwell

Willacy

Augustine

Gilpin

Lake

Adams

Yolo

San Joaquin

Amador

El Dorado

Placer

Merced

Santa Clara La Paz

Gila

Cimarron

Graham

Moore

Hutchinson

Baylor

Guadalupe

Aransas

San

Jefferson

Napa

Solano

Sonoma

San Mateo

Navajo

Pinal Riley

Wilbarger

Jackson

Somervell

Atascosa

Kendall

San Patricio

Nueces Kleberg

Issaquena

Cache

Imperial

Marin

San Francisco

Contra Costa

Alameda Grant

Clay

Erath

Bexar

Jim Wells

Brooks

St. Martin

Taliaferro

Cheyenne

Eagle

Pitkin

San Diego

Riverside San Bernardino

Ventura

Sacramento

Young

Travis

Bell

McLennan

McMullen

Orange

Los Angeles

Ness

Comanche

Taylor

Williamson

Tarrant

Webster

Ouray

Montrose

Mesa San Miguel

Clark

Lane

Irion

Schleicher

Coke

Nolan

Mitchell

McCulloch

Montgomery

San Luis Obispo

Kern Santa Barbara

San Juan

Finney

Morris

Dallas

Lee Monroe

Collier

Manatee

Hillsborough

Figure 7.29: U.S. county population cartogram using RecMap (MP2)

Prince George’s

Fairfax

Anne Arundel

Susquehanna

Perry

Mercer

Hendricks

Macon

Hamilton

Baltimore

Wicomico

Morris

Delaware

Jackson

Braxton

Washington

Tyler

Greene

Sangamon

Athens

Brown

Upshur

Gilmer

Wood

Dearborn

Fayette

Cumberland

Stark

Mahoning

Atlantic

Cape May

116

Kenedy

7 Evaluation and Application

7.4 Application – Geographic Related Data

Del Norte

Modoc Siskiyou

Humboldt Trinity

Shasta

Lassen

Tehama

Plumas

Butte

Glenn

Sierra

Mendocino Nevada

Yuba Colusa

Lake

Placer

Sutter

El Dorado Yolo

Sonoma

Napa

Amador

Sacramento Solano

Calaveras

Marin Contra Costa

Mono

San Joaquin Tuolumne

San Francisco Mariposa

Alameda Stanislaus San Mateo

Madera Santa Clara

Merced

Santa Cruz

Fresno San Benito Inyo Tulare Monterey Kings

San Luis Obispo

Kern

Santa Barbara

San Bernardino Ventura

Los Angeles

Riverside

Orange

San Diego Imperial

(a) Traditional California state

LA

(b) RecMap MP2

Figure 7.30: California county population cartogram using RecMap

117

7 Evaluation and Application

Clinton

Franklin

St. Lawrence

Essex Jefferson

Lewis Hamilton

Warren

Oswego Oneida

Niagara

Wayne

Monroe

Fulton

Saratoga

Genesee

Cayuga

Onondaga

Madison

Montgomery

Ontario

Erie

Washington

Herkimer

Orleans

Schenectady

Livingston

Otsego

Seneca

Wyoming

Yates

Rensselaer

Albany

Schoharie

Cortland

Tompkins

Chenango

Schuyler

Cattaraugus

Greene

Steuben

Allegany

Chautauqua

Columbia

Tioga

Broome

Chemung

Delaware

Ulster Dutchess

Sullivan

Orange

Putnam

Rockland Westchester

Suffolk

Bronx

New York

Nassau KingsQueens Richmond

(a) Traditional map New York state

Erie

Clinton

Onondaga

Genesee

Jefferson

Franklin

St. Lawrence

Essex Warren

Hamilton

Niagara

Lewis

Orleans

Herkimer

Monroe

Oswego

Wayne

Oneida Cayuga

Fulton

Saratoga

Washington

Montgomery

Seneca

Schenectady

Ontario Wyoming

Chautauqua

Cattaraugus

Allegany

Cortland

Madison Otsego

Tompkins

Livingston

Yates

Steuben Chemung Tioga

Rensselaer

Schoharie

Albany

Greene

Schuyler

Broome

Columbia

Chenango

Delaware

Ulster Sullivan

Orange

Dutchess

Putnam Rockland

Westchester

Bronx

Suffolk Nassau

New York

Queens

Kings

Richmond

(b) RecMap MP2

Figure 7.31: New York U.S. census 2000 county population cartogram using RecMap

118

7.4 Application – Geographic Related Data

Sherman

Dallam

Ochiltree Lipscomb

Hansford

Hartley

Roberts

Hutchinson

Hemphill

Moore

Dallas

Carson

Oldham

Gray

Potter

Wheeler

Hutchinson

Dallam

Deaf Smith

Sherman

Lipscomb

Hansford

Ochiltree

Collingsworth

Donley

Armstrong

Randall

Hemphill Roberts

Montague Wheeler

Gray

Wichita

Collingsworth

Carson

Wilbarger

Grayson

Wise

Donley

Armstrong

Fisher

Hall

Briscoe

Swisher

Cooke Fannin

Hardeman

Childress

Castro Parmer

Hall

Childress

Foard

Scurry

Motley

Cottle

King

Baylor

Dickens Kent

Hardeman Crosby

Hale

Lamb

Bailey

Floyd

Cottle

Motley

Potter

Wilbarger

Denton

Lubbock

Wichita

Collin

Franklin

Foard Red River

Clay

Moore

Hartley

Cooke

King Lubbock

Oldham

Lamar

Grayson

Montague

Baylor

Dickens

Crosby

Hockley

Cochran

Briscoe

Red River

Jack Lynn

Kent

Garza

Stonewall

Haskell

Midland

Collin

Scurry

Fisher

Stephens

Borden

Jones

Marion

Tarrant

Glasscock

Howard

Erath

Brown Runnels

Henderson

Navarro

Ellis

Panola Cherokee

Johnson

McLennan

McCulloch

Crockett

Schleicher

Menard

Llano

Leon Robertson

El Paso

Newton

Sabine

Kendall

Austin

Uvalde

Walker

Coleman

Freestone

Brown

Angelina

Grimes

Jasper

Burnet

Comal Medina

Shelby

Cherokee

Hamilton

Washington

Burleson

Coryell

Blanco

Bandera

Runnels Sterling

Ector

San Augustine

Williamson

Gillespie

Real

Tyler

Trinity

Madison

Milam

Kimble

Val Verde

Brewster

El Paso

Nacogdoches

Anderson

Kerr

Mason

Sutton

Terrell

Hill

Bosque

Comanche

Rusk Shelby

Limestone

Falls

San Saba

Houston

Rusk

Coke

Glasscock

Gregg Harrison

Freestone

Crane

Edwards

Panola

Navarro

Midland

Winkler

Marion

Upshur

Coleman

Concho

Ward

Winkler

Pecos

Henderson

Somervell

Wood

Van Zandt

Hill

Comanche

Coke

Reeves

Irion

Taylor

Erath

Jeff Davis

Presidio

Callahan

Nolan

Mills

Hood

Callahan

Mitchell

Sterling

Culberson Hudspeth

Harrison Gregg

Smith

Ellis

Johnson

Taylor

Borden

Martin

Van Zandt

Kaufman

Hood

Garza

Rains

Tom Green

Upshur

Palo Pinto

Eastland

Lynn

Dawson

Camp

Lampasas

Hamilton

Parker

Ector

Wood

Dallas

Parker

Shackelford

Mitchell

Howard

Cass

Morris

Bosque Somervell

Yoakum

Terry

Reagan

Cass

Camp

Martin

Titus

Jack

Jones

Cochran

Upton Morris

Rains

Dawson

Hunt

Young

Stephens

Nolan

Titus

Franklin

Hopkins

Smith

Throckmorton

Palo Pinto

Hockley

Rockwall

Denton

Rockwall

Gaines

Bowie

Delta

Kaufman Archer Clay

Shackelford

Bailey

Randall

Hunt

Andrews

Lamar

Hopkins

Eastland

Knox Haskell Stonewall

Gaines

Andrews

Wise

Young

Throckmorton

Floyd

Lamb

Bowie Delta

Terry

Castro

Archer Fannin

Yoakum

Tarrant

Swisher

Deaf Smith

Parmer

Knox

Hale

Orange

Waller

Polk

Frio

Anderson

Hardin

La Salle

Fort Bend

Nacogdoches

Zavala

McLennan

Culberson

Ward

Reeves

Tom Green

Upton

Mills

Reagan

Limestone

Dimmit Kinney

Coryell

Irion

McCulloch

Houston

Sabine

Falls

Lampasas

San Saba

San Augustine

Leon

Concho

Crane

Hudspeth

Hays

Bell

Travis

Maverick

Liberty

Angelina Lee Trinity

Bell

Polk Burnet

San Jacinto

Jefferson

Chambers

Fayette

Madison

Menard

Tyler

Brazoria

Colorado

Jasper

Walker

Milam

Mason

Wharton

Bastrop

Robertson

Caldwell

Schleicher

Crockett

Pecos

Jeff Davis

Montgomery

Lavaca

Newton

Gonzales

DeWitt

Guadalupe

Llano

Jackson San Jacinto

Brazos

Williamson Burleson

Goliad

Galveston

Grimes

Kimble

Sutton

Wilson

Lee

Travis

Gillespie

Terrell

Blanco

Hardin

Montgomery

Washington

Karnes

Liberty

Bastrop

Kerr Kendall

Real

Val Verde

Orange

Harris

Fayette

Caldwell

Austin

Comal

Brewster

Bexar

Waller

Hays

Edwards

Presidio

Jefferson

Atascosa

McMullen

Bandera Chambers

Harris

Guadalupe

Bexar

Fort Bend

Colorado

Uvalde

Galveston

Gonzales

Medina

Lavaca

Kinney

Wharton Brazoria

Wilson

DeWitt Jackson

Zavala

Karnes

Atascosa

Frio

Matagorda Victoria

Brazos

Goliad Maverick

Dimmit La Salle

Live Oak

McMullen

Bee

Refugio

Calhoun

Matagorda

Victoria

Aransas

Calhoun

San Patricio

Refugio Aransas

Webb

Live Oak

Nueces

San Patricio

Bee

Jim Wells

Duval

Kleberg

Nueces

Webb Jim Hogg

Duval

Jim Wells

Brooks

Kleberg

Zapata Zapata

Kenedy

Jim Hogg

Brooks Kenedy

Starr Willacy

Starr Willacy Hidalgo

Hidalgo Cameron

Cameron

(a) Traditional map Texas state Ochiltree

Lipscomb

Hansford

Hutchinson

Wise

Roberts

Hemphill

Wheeler

Moore

Wilbarger

Carson

Cooke

Montague

Throckmorton

Sherman

(b) RecMap MP2 Delta Red River

Fannin

Johnson

Grayson

Stephens

Rains

Lamar

Collingsworth

Culberson

Titus

Parker

Dallam

Armstrong Childress

Floyd

Swisher

Denton

Gray Baylor

Rockwall

Morris

Harrison

Hunt

Somervell

Walker

Hartley

Parmer

Wood

Lamb

Deaf Smith

Hardeman

Hale

Dickens

Motley

Kaufman

Coryell

Hood

Cottle

Donley

Cass

Falls

Shackelford

Hall

Crosby

Van Zandt Camp

Limestone

Hopkins

Briscoe

Upshur

Eastland

Foard

Bell

Bosque

King

Garza Callahan

Shelby

Hill

Knox Oldham

Potter

Lynn

Blanco

Palo Pinto

Navarro

Clay

Rusk

Hamilton

Franklin

Kent

Cherokee

Castro

Henderson

Haskell

Borden

Sabine

Stonewall

Smith

Collin

Milam

Randall

Bailey

Bowie Jack

Scurry

Hudspeth

Davis

Jeff

Ellis

Robertson

Lubbock

Cochran

Brown

Erath

Wichita

Montgomery

Dallas

Fisher

Mitchell

Williamson

Saba

San

Terry

Gillespie

Gonzales

Hockley

Freestone Anderson

Brazos

Gregg

Leon

Panola

Marion

Washington

Lee

Nacogdoches

Travis

Jones

Yoakum

Houston San Augustine

Waller Grimes Burleson

El Paso

San Patricio

Howard

Madison McCulloch

Ward

Reeves

Mason

Concho

Nolan

Bexar

Menard

Real

Newton

Jasper

Kerr Fayette

Harris

Kimble

Lavaca

Hidalgo

Coke

Gaines

Glasscock Sterling

Tarrant

Zavala

Dawson

Colorado

Coleman

Midland

Uvalde Austin

Archer

Dimmit

Comal

Taylor

Nueces

Orange

Angelina Tyler

Hardin

Bandera Young

Jacinto Brooks

Andrews

Burnet

Martin

Frio

Medina

McMullen Lampasas

Fort Bend

Brazoria

Duval

Comanche

Atascosa

Trinity

Victoria La Salle

Tom Green

Hays

Matagorda

Polk

Caldwell

Webb

Jefferson

Wharton

Winkler

Llano Upton

Zapata Mills

Chambers

Guadalupe

Reagan Pecos

Irion

Hogg

Crockett

Jim

Ector

Runnels

Karnes

Refugio

Kendall

Edwards

Willacy

Cameron

Schleicher

Kinney

Wilson

Terrell

Presidio

San

Galveston

Val Verde

Starr

Crane

Brewster

Bee

McLennan

Liberty Calhoun

Sutton

Maverick

Live Oak

Kleberg Aransas Jackson

Bastrop

Jim Wells Kenedy

DeWitt

Goliad

(c) RecMap MP1

Figure 7.32: Texas county population cartogram using RecMap

119

7 Evaluation and Application

(a) Colormap North Dakota

Washington Idaho

Minnesota

King

Michigan

Montana

Maine

Wisconsin

Hennepin

Oregon

Michigan South Dakota

New Hampshire Vermont

Wyoming Oakland

Middlesex

Wayne

New York Massachusetts Rhode Island Pennsylvania Connecticut New Jersey

Iowa

Nebraska

Ohio Nevada

Illinois

Colorado

Utah

Cook

Cuyahoga

Suffolk

Bronx

New York

Kings

Nassau

Queens

Allegheny

Philadelphia

Delaware West Virginia Maryland District of Columbia

Indiana

Kansas

St. Louis

Sacramento

Missouri

Virginia

Kentucky

Alameda

Santa Clara

California Tennessee North Carolina Arizona

Arkansas

Oklahoma

San Bernardino

Los Angeles

South Carolina

New Mexico

Riverside

Orange

Maricopa San Diego

Mississippi

Dallas Tarrant

Georgia

Alabama Texas Louisiana

Harris

Bexar

Florida

Broward

12025

(b) Traditional U.S. map on state level Minnesota North Dakota

Washington

(c) Traditional U.S. map on county level

Michigan Oakland

Wisconsin

Montana Idaho

Michigan Wayne

Hennepin

WyomingSouth Dakota

Oregon

Middlesex

Maine Vermont New Hampshire

Nebraska Iowa

Bronx

Cuyahoga

New York

King

New York

NevadaUtahColorado Kansas

Cook Allegheny

Kings

Illinois Missouri

Indiana

Oklahoma

New Mexico

Nassau

Sacramento

New Jersey West Virginia Alameda

District of Columbia Maryland Delaware Virginia

Tennessee

Arkansas

Suffolk

Queens

Philadelphia

St. Louis

Kentucky

Arizona California

Connecticut Massachusetts Rhode Island

Pennsylvania

Ohio

San Bernardino

Santa Clara Tarrant

Dallas

Maricopa

Texas

North Carolina South Carolina Georgia

Mississippi Alabama

Riverside

Los Angeles Orange

Louisiana

Harris

San Diego Bexar

Florida Broward

12025

(d) M-CartoDraw

(e) M- CartoDraw Pipestone

LaMoure

Baraga Florence

Alger

Gogebic

Isle

Presque

Grant Traverse Stone

Big Wilkin Norman

Monona Woodson Coffey

Nemaha Washington

Adams Lacs

Mille

Juneau

Sherburne

Menominee

Kewaunee

Stanton Dickinson

Stevens

Wright Itasca

Richardson

Audubon

Wabasha Buffalo

LaPorte Pepin Meeker

Jackson Winneshiek

Vernon

Page

Dane

Winona

Cass

Crawford

Kearney

Wagoner

Pierce

Andrew

Doniphan

Marquette Howard Fillmore

Lake

Steuben

McIntosh

Hancock

Porter

Hendricks Worth

Freeborn

Trempealeau

Warren

Tippecanoe

Howard

Huntington

Darke

Adams

Van Wert

Mercer

Zandt

Van Hopkins

Clayton

Miami

Marion

Wayne

Wells

Lake

Richland

Union

Pulaski

Wayne

Bradford Susquehanna

Elk

Beaver

Carroll

Sullivan

Potter

Armstrong

Logan Tipton

Auglaize

Alpine

Sevier

Montgomery

Morrow

Passaic

Bronx

Orange Pike

Clinton

Esmeralda

Champaign

Guernsey

Jay

Whiteside

Jones

Randolph

Delaware

Putnam

Lee

Boone

Carver

Hancock

Delaware

Dallas

Wyandotte

Iowa

Butler

Lafayette

Jasper

Marion

Rock Island Ramsey

Trego

Poweshiek

Adair

Ottawa

Bureau

Gordo

Cerro Faribault Worth

Mercer

Carter

Hocking Vermillion

Alamos

Los

Hardin

Cass

Hemphill Mills

Roger

Will

Gasconade

Franklin

Montgomery

Osage

Boone

Franklin

Douglas Morgan

Warren

Callaway

St. Charles

Miller

Morgan

Moniteau

Pontotoc

Cooper

Jackson

Anderson

Oklahoma

Morgan

Seminole

Garrard

Boyle

Nelson

Casey

Edmonson

Clinton

Hart

Leslie

Grainger

Fentress Cumberland

Crawford

Fulton

Shelby Independence

Richland

Scott

Bell

Loudon

Monroe

Rockbridge

Upshur

Mingo

Pike

Wayne Summers

Raleigh

McDowell

Monroe

Mercer

Botetourt

Craig

Tazewell

Buchanan

Grayson

Wythe

Bland

Giles

Avery

Hunterdon

Tucker Highland

Bedford

Colleton

Smyth

Lehigh

Rowan

Johnson

Burke

Northampton

Randolph

Logan

Owsley

Russell

Letcher

Alleghany

Somerset

Franklin Kershaw

Ashe

Knott

Carroll Wilkes

Cabarrus Pulaski

Iredell

Rutherford

Sullivan

Hawkins

Union

Laurel

Washington

Bristol

Blair

Roanoke Watauga

Berks

Pittsylvania

Catawba

Caldwell

Greene

Knox

Roane

Davie Chester

Dauphin

Perry

Indiana

Surry

Lebanon

Sharp

Campbell

Washington

Buren

Van

Fannin

Towns

Schuylkill

Mitchell

Yancey

Bucks

Union

Spartanburg

Alexander

Danville

Fairfield Union

Aiken

Macon

Clay

Cambria

Unicoi

Haywood Jackson

Allendale

Wabash

Stone

Henry

Madison

Sevier

Swain Graham

Monroe

McMinn

Warren

Butler

Screven

Sullivan Gibson Clark Edgar

Johnson

Randolph Reynolds Carter Randolph

McLean Ohio

Muhlenberg

Caswell

Transylvania

Yadkin

Mercer

Huntingdon

Coffee Newberry

Cleveland

Polk

White

Gallatin

Buncombe

Stephens

Lawrence

Rabun

Logan

DeKalb

Henderson

Polk

Cannon

Gilmer McDowell

Dawson

White

Habersham

Pickens

Moore

Bradley

Hardin

Buren

Van

Cheatham

Hall Childress

Carlisle McCurtain Coal

Jasper

Clark

Greenwood

Montgomery

Effingham

Liberty

Kings

Lexington Dorchester

Gaston

Glynn

Mecklenburg

Marshall

McCormick

Christian

Columbia

Clarke

Walker

Sequoyah Swisher

Briscoe

Scott

Mississippi

Franklin

Torrance

Prairie

Weakley

Walton

Franklin

Nassau

McIntosh

Perry

St. Francis

Curry

Henderson

Chattooga

Gordon

Newton

Rutherford

Stoddard Mississippi

Upshur

Marshall

Humphreys Trigg Wayne

Bedford

Benton Perry

Stewart

Lincoln

Newton

Hancock

Washington

Wilkes

Elbert

Hart

Laurens

Oglethorpe

Duval

Henderson

Anson

York

Queens

Lincoln

Lancaster Pickens

Peach

Chatham

Abbeville

Somerset

Patrick

Chester

Chesterfield

Jefferson

Dodge

Twiggs

Emanuel

Dooly

Sumter Wilcox

Decatur

Paulding

Haralson

Calhoun

Chester

Hardeman

Forsyth

Wilkinson

Baldwin

Polk

Montgomery

Lewis

Crockett

Hardin

Warren

Toombs

Glascock

Pulaski

Carroll

Candler

Throckmorton

Tattnall

Shackelford

Limestone

Bamberg Hampton

Fulton

Morgan Hampshire

Greene

Adams

Anne Arundel

Echols

Calvert

Mecklenburg Buckingham

Orange

Warren

Halifax

Rappahannock Beaufort

Chambers

Goochland Brunswick

Queen

and

King Westmoreland

Tyrrell

Cumberland Fluvanna

Amelia

Orangeburg

Calhoun

Norfolk

Howard

City

James

Virginia Beach

Worcester

St. Mary’s

Petersburg

Caroline

Delaware

Hopewell

Johnston

Pike

Lancaster Middlesex

Taylor

Sussex

Brevard

Gloucester

Alexandria

Mathews

Sampson Poquoson

Volusia Pamlico

Prince William

Carteret

Aransas

Scotland

James

St.

Jones

Beaufort George

Fairfax

Cecil

Hampton

King William

Dare

Prince George’s Wicomico

Accomack

Charles City

Charles

Newport News

Chesterfield

Chesapeake

Southampton

Brewster

Gates

New Hanover

Martin Dorchester Hyde

Sarasota

Monroe

Wight

Harnett of

Lee

Gadsden

Isle

Currituck Somerset

Baker Kleberg Patricio

San

Kent

King George

Wilson

Hanover

Hillsborough Seminole

Houston

Perquimans

Washington

Miller Crane Upton Hudspeth Reeves

Henrico Nash

Thomas

Henry

Coffee Okaloosa

Terrebonne

Ward

Baltimore

Pitt Wayne

Bladen

Robeson

Mitchell

Grady

Dale

Geneva

Holmes

Wake

Martin

Dougherty

Decatur

Covington

Ascension

Mobile

Florence

Lee Marlboro

Plaquemines Matagorda

Lavaca

Sumter

Early

Culberson

Willacy

Manatee

Macon

Schley

Webster

Terrell

Calhoun

Barbour

Crenshaw Escambia

St. Bernard

Prince

Stone

Refugio Oak

Live

Marion

Chattahoochee Randolph

Clay

Bullock

Pike

Butler

Assumption

St. Tammany

Berkeley

Polk

Panola

Gonzales

Maverick

Verde

Val

Iberia

Lafayette Vermilion

Calcasieu

Lee

Hardee

Stewart

Macon

Lowndes Conecuh

Evangeline

Jefferson

Chatham

Okeechobee

Muscogee

Russell

Autauga

Monroe Washington

Greene

Baldwin

Forrest

Iberville Jefferson Davis Beauregard

Cherokee

Columbus

Cape May

Greene

Coosa

Hancock

Lee

Elmore

Escambia

Harrison Lafourche

Polk

Houston

Williamsburg

Marengo Clarke

Clarke DeSoto

Livingston

Quitman

Fort Bend

Wharton

Clarendon

Grimes

Chilton

Choctaw

Victoria

Wayne

St. Martin

Allen

Orange

Duval

Winkler

Lauderdale

George

Perry

Acadia Hunt

Wilson

Jim Hogg

Caroline

York

Edgecombe

Hendry

Newton

Cameron

Atascosa

McMullen

Ector

Camden

Northumberland

Upson

Harris Talbot

Sumter Santa Rosa

Hardin Freestone

Webb

Midland

Gloucester

Salem

Holmes

Walthall

Madison Lawrence

Arlington Northampton

Duplin

Glades

Meriwether

Copiah

Leflore

Culpeper

Louisa

Dallas

Pearl River Williamson

Kinney Irion Schleicher Sutton

Dona Ana

Delaware

Atlantic

Nottoway

Powhatan

Tallapoosa

Montgomery Wilcox

New Castle

Montgomery

Clarke Vance

Durham

Darlington

Fannin Hughes Austin

Washington

Warren

Franklin

Granville

Lamar

Troup

Shelby

Bibb

Hale

Greene

Rapides

Calhoun

Lunenburg

Charlotte

Person

Orange Broward

Cumberland

Winston Lawrence

Bienville Johnson

DeWitt

Martin

Uvalde

Zavala

District of Columbia

Frederick

Loudoun

Prince Edward

Montgomery

Davis

Jefferson Covington Smith Baptist

the

John

St.

Coke

Salle

La Bandera

Edwards Crockett Reagan

Dimmit

Llano

Perry

Tuscaloosa Kemper

Tangipahoa

Vernon

Jasper

Baltimore Richmond

Fauquier

Appomattox

Lynchburg

Campbell

Seminole

Orange

Pinellas

Spalding

Noxubee

Marion

Sabine

Tyler

Angelina

Kent

Greensville

Washington

Amherst

Alamance

Halifax

East Baton Rouge

San Augustine Galveston

Goliad

Harford Berkeley

Rockingham

Nelson

Moore

Levy

Gilchrist

Randolph

Pickens

Bee

Dinwiddie

Frederick

Augusta

Lee

Osceola

Randolph

Lafayette

Coweta

Heard

Clay

Guadalupe

Kendall

Jefferson

Page

Albemarle

Richland

Lake

Charleston

Dixie

Butts

Henry

Cullman

Fayette

Lamar

Nacogdoches

Bexar

Tom Green

Allegany

Grant Hardy

St. Lucie

Putnam

Marion

Columbia

Taylor

DeKalb

Fayette

Talladega

Blount

Lowndes

Oktibbeha

Lamar

Talbot

Mineral Garrett

Flagler

St. Johns

Bradford

Hamilton

Madison

Suwannee

Morgan

Marion Monroe

Jasper

Jones

Hinds

Andrews

Charlton

Baker

Simpson

Jefferson

Clayton Colbert

Scott

Orleans Jefferson

Tallahatchie

Brazos

Otero

Pierce

Pasco

Lowndes

Neshoba

Clay

Lincoln

Colorado

Limestone

Comanche Saba

San Mills

Leake

Shelby

West Baton Rouge

Winn

Pima

Clay

Appling

Ware

Alachua

Rockdale

Sumter

Claiborne

Franklin

West Feliciana St. Helena

St. Landry Natchitoches

Grant Sabine

Eddy

Maricopa

San Diego

South Carolina

Johnson

Hernando

Jefferson

Franklin Newton

Jefferson

Amite

Avoyelles

East Feliciana Pointe Coupee

Madison

Itawamba Tishomingo Attala Marshall

Falls

Mitchell

DeSoto

Douglas

Carroll

Lee

Chickasaw

Rankin

Pike

Tensas

Shenandoah

Tunica Bradley Calhoun

Quitman Runnels Jones

Walker

Webster

Warren Catahoula

Adams

Concordia

Wilkinson

Jackson Shelby

Bacon Clinch Union Citrus

Sharkey Brooks Pinto

Palo

Blanco Yoakum Paz

La

Kent

Franklin

Richland

La Salle

Lincoln

De Soto

Panola

Bryan

Atkinson

Colquitt

Cook Lanier Brooks

Cleburne Choctaw

Madison Caldwell

Bossier

Red River

Harrison

Caldwell

Travis Gillespie

Hidalgo

Telfair

Berrien Madison

Calhoun Grenada

East Carroll

Caddo

Cass

Marion

Rusk Atoka

Medina

Coffee

Irwin

Tift

Tippah

Winston

Issaquena

West Carroll

Miller

Smith

Jackson Robertson

Fayette

Nueces

Frio

Mississippi

Worth

Alcorn

Yazoo

Chicot

Claiborne

Collin

Bell

Hamilton

Taylor

Haskell Knox

Spotsylvania

Benton

Jack

Lampasas

Montgomery

Dickens Garza Fisher

Archer Real Borden

Union

Pontotoc Columbia

Webster

Hays

Burnet

Brown

Nolan

Kimble Menard

Jeff Davis

Ben Hill St. Clair Prentiss

Crittenden

Washington

Turner

Fulton

Lauderdale

Humphreys Morehouse

Ashley

Ouachita Lee

Comal

Howard

Wheeler

Crisp

McNairy

Lafayette

Bowie Bosque

Young

Kerr

Terry

Gaines

Richmond

Tate

Union

Lafayette Wise

Coryell

Eastland

Mason

Lubbock

Sterling Glasscock Dawson

Jasper

Sunflower

Nevada

Carroll

Stonewall Concho

Greenlee

Bolivar

Desha

Yalobusha

Drew Ouachita

Gregg

Hood

Erath

McCulloch

Scurry

Chaves

Lea

El Paso

Richmond

Fayette

Cleveland

Milam

Montague

Parker

Callahan

Coleman

Lynn

Grant

Cochise

Anne’s

Somervell

Stephens

Crosby

Cochran

Graham

Orange

Queen

Burleson

Madison

Madison

Haywood

Hickman

Dallas

Dyer

Tipton

Greene

Poinsett

Union

Hempstead

Philadelphia

Guilford

Houston

Camp

Scott

Montgomery

Coahoma

Lincoln

Craighead Little River

Richmond

Bleckley

Spring

Jefferson

Jefferson

Madison

Lawrence

Clay

Johnson

Pike Franklin

Howard Sevier

Polk

Trinity

Stanly

Greene Putnam

Etowah

Maury

St. Francois Wayne Butler

Yell Logan

Wood

Navarro

Foard

Lincoln

Oconee

Davidson Lauderdale

Crawford Sebastian

Clay

Socorro Catron

Rockingham

Bibb

Anderson

Jefferson

Arkansas

Hot

Barry

Floyd

Bailey

Wichita

Gila Baylor

King

Hockley Sierra

Pinal

Riverside

Maryland

Ocean

Greenville

Taliaferro

Gwinnett

Pemiscot

Saline

San Bernardino

Connecticut

Floyd

Cherokee

Houston Morris

Wilbarger

Treutlen

Roosevelt

Carroll

Gibson

Monroe

Carroll Motley

Burlington

Hall

Cobb Bartow

Marshall

Cotton

Hale Lamb

Montgomery

Titus

Williamson

Fulton

Obion

Giles

Pushmataha Latimer

Lake Lee Phillips

Crawford

DeKalb

Crittenden

Lonoke

Pulaski

Grant

Caldwell

Stone Lawrence

Stephens

Hardeman

McDuffie

Webster

New Madrid

Garland

Washington

Adair

Tillman

Parmer

Cottle

Louisiana

Monmouth

Cumberland

Bedford

York

Bryan

Bulloch

Brantley

Camden

Morgan Dickson

Davidson

Saluda

Jenkins

Laurens

Jones

Christian Calloway

De Baca

Virginia

Franklin

Evans Long Wayne

Whitfield

Jackson

Hopkins

Henry

Perry

Ventura

Santa Barbara

Madison

Jackson

Union

Forsyth Lumpkin

Union Graves

St. Clair Conway

Palm Beach

Burke

Banks

Barrow

McCracken

Pulaski

Blount

Cherokee

Murray

Dade

Cape Girardeau

Alexander

Marion

Catoosa

Hickman

Rockwall

St. Louis

Cherokee

Franklin

Posey

Lyon Ballard Woodruff

Faulkner

Edgefield

Genevieve Haskell

River

Red

Sumner

Livingston

Union

White

Monroe

Guadalupe

Ste.

Pope

Madison

Pope

Greene

McDonald

Muskogee Castro

New York

Grundy

Simpson

Knox

Williamson

Cross

Newton

Tulsa

Union

Oconee

Edwards

Jackson

Jackson

Benton Jasper

Le Flore

Kaufman

Jackson

Lancaster

Massac

Robertson

Sequatchie

Warren

Todd

Saline

Dunklin

Cleburne Grayson

Comanche

Richmond

Mifflin

Jefferson

Bollinger

Middlesex

Lincoln

Carter

Cocke

Anderson

Wilson

Breckinridge

Hamilton

Clinton Lawrence

Searcy

Kiowa

Harmon

Valencia

Yavapai

Nassau

Stokes

Cherokee

Hamblen

Jefferson

Indian River

Hamilton

Putnam

Hancock

Vanderburgh

White

Perry Washington

Ripley

Baxter Armstrong

Morgan

Whitley

Okfuskee

Barton

Meigs Pickett

Smith Spencer

Daviess

Wayne

Izard

Marion

Boone Cherokee

Randall

Cibola

Suffolk

Greenbrier

Bledsoe

Jackson

Overton

Perry

Warrick

Clay

Christian

Bond

Oregon

Ozark

Hickory

Polk

Snyder

Taylor

Webster

Montgomery

Jasper Franklin Montgomery

Douglas

Taney

St. Clair Dade

Donley

Hancock

Rhea

Cumberland

Clay

Macon

Lawrence

Dubois Crawford

Monroe

Iron

Phelps

Webster

Benton

Johnson Bates

Trousdale

Pike

Vigo

Linn Ottawa

Wright

Shannon

Cedar

Cass

Vernon

Greer

Orange

Monroe

St. Louis Dent Howell

Pettis

Henry Delaware

Mayes

Collingsworth Deaf Smith

Perry

Daviess

Coles

Effingham

Crawford Texas

Pulaski

Cherokee Craig

McLennan

Grady

Apache

Los Angeles

Dukes

New York

Marion

Lewis

Fayette

Breathitt

Lee Dickenson

Lee

Cumberland

Floyd

Menifee Morgan Wolfe

Estill Jackson

Knox

Wayne

Marion

Dallas Laclede

Washita Caddo

Cleveland

Bernalillo

Monroe

Allen

Sangamon

Camden

Allen

Creek

Gray

Wheeler

Potter

Wyoming

Barbour

Scott

Adair

Metcalfe

Martin

Jersey

Washington

Neosho

Johnston

Tarrant Carson Oldham

San Miguel

Quay

Essex

Preston

Harrison

Braxton

Clay Nicholas

Boone Boyd

Johnson

Wise

Harlan

Clay

Pulaski

Russell

Gilmer Calhoun

Lincoln

Elliott

Greenup

Powell

Rockcastle

McCreary

Green

Owen

Greene

Macoupin

Bourbon

Greene Labette

Harris Canadian

Navajo

Beckham

Wetzel Ritchie

Pleasants

Doddridge

Rowan Bath

Claiborne

Santa Fe

Kern

North Carolina

Morris

Westmoreland

Tyler

Kanawha Lawrence

Lewis Fleming

Nicholas

Fayette

Lincoln

Marion

Clay

Barren

Scott Maries

Scioto

Brown

Adams

Mason

Bracken

Robertson

Bourbon

Clark Madison

Washington Taylor Larue

Grayson

Putnam

Moultrie

Fayette

Cole Crawford

Jessamine

Mercer

Schuyler

Miami

Colfax

Mora

Custer

Woodford

Juniata

Piatt

Ellis Hansford

Dallas

Blaine

Moore

Costilla Huerfano

Anderson

Bullitt

Harrison

Montgomery

Spencer

Meade

Kankakee

Monongalia

Floyd

Calhoun

Lipscomb Ellis

Roberts Custer

Coconino

Pendleton

Campbell

Vermilion

Champaign

Westchester

Washington

Bath

Fountain Parke Montgomery

Fulton

Witt

De

Alfalfa

Jefferson

Ford

Kendall

Warren

Ohio

Marshall

Pocahontas

Henderson

Brown

Menard Mason Kingfisher

Grundy

Logan

Pike

Belmont

Alleghany

Schuyler

Greenwood

Warren

Audrain

Pawnee

Carbon

Centre Greene

Roane Putnam

Barnwell

Carroll

Livingston Pawnee

Hancock

Winnebago

Linn Grundy

Franklin

Wayne Lucas Hardin

Lincoln

Hancock

Ralls

Randolph

Howard

San Luis Obispo

Pike

Clermont

Adams

Monroe

Chariton Ray

Osage

Dewey

New Haven

Fairfield

Columbia Montour

Northumberland

Wirt

Jackson

Cabell

Lawrence

Martin

Jasper

Grant Barber Harper Kingman

Logan

Shelby

Wabaunsee

Elk

Garfield

Major

Hutchinson

Hudson

Union

Hancock

Fayette

Meigs

Mason

Pendleton

Warren Benton Jefferson

Monroe Decatur Nemaha

Hamilton Stanton

Pratt Kiowa

Prowers Baca Dallam

Comanche Clark Union

Macon

Morris Chase

Woodward

Sherman

Wood Gallia

Ross Franklin

McDonough

Marion

Texas

Sandoval

Clearfield

Jefferson

Brooke Harrison

Washington

Jackson

Pickaway

Hamilton

Scott

Harrison

Newton

Monroe

Athens Vinton

Highland

Clinton

Dearborn

Kenton

Owen

Trimble

Iroquois

Lake

Lewis

Knox

Grant

Clark Henry Oldham Floyd Franklin Shelby

Tazewell

Peoria

Harper

Animas

Las

Otero

Bent

Taos

McKinley

Mohave

District of Columbia

Ripley

Ohio

Switzerland

Gallatin Carroll

Scott

Washington Knox

Pike

Des Moines

Clark

Adair

Clinton

Ochiltree

Monterey

Chautauqua Riley

Warren

Boone

Decatur

Jennings

Bartholomew

Jefferson

Mercer

Davis

Lee

Putnam

Scotland

Sedgwick Woods

Putnam

Boone Salle

Jackson

Brown

Woodford

Saline Conejos

Louisa

Van Buren Appanoose

Caldwell

Douglas

San Juan

Alabama

Florida

Bristol

New London

La DeKalb Ringgold Union Harrison Gentry

Muscatine

McLean

Arkansas

Oklahoma

Newport

Bristol

Dutchess

Bergen

Noble

Fairfield

Union

DuPage

Stark

Henry

DeKalb

Clay

Marshall Pottawatomie

Beaver

Morton

Muskingum

Fayette

Rush Franklin

Johnson

Wapello

Johnson

Johnson

Sumner

Haskell

Meade

Seward

Harding Cimarron Hartley

Luzerne

Morgan

Perry Shelby White

McHenry

Lancaster

Edwards

Gage

Grant

El Paso

Jefferson

Madison

Miami

Henry

Scott

Washington

Mahaska Hill

McPherson

Reno

Gray Ford

Stevens

Rio Arriba

Kings Clark

Fayette

Wayne Macon Winnebago

Wallace Crowley

Cheyenne

Saguache

Juan

San

Stafford

Fremont

Pueblo

Santa Cruz

Coshocton

Licking

Greene

Madison Keokuk

Russell

Rush

Wichita

Kiowa Hinsdale

Dolores

Alamosa

La Plata

Archuleta

Marin

Clark Hamilton

Gove Waseca

San Juan

Montezuma

Tulare

Middlesex

Boone Cass

Guthrie

Lincoln Logan

Lincoln

Ellis

Saline

Ness

Rice Pawnee Finney Kearny Hamilton Harvey

Hodgeman

Mineral Rio Grande

Sussex

Marshall

Cloud Osborne

Elbert

Teller

Ellsworth Lane Scott Barton

Greeley

Gunnison

Ouray

Daviess

Piute

Mitchell Rooks

Graham

Park

Summit

Delta

Chaffee

San Miguel

Livingston

Sheridan

Douglas

Lake

Mesa Montrose

Wayne

Inyo

Glenn

Santa Clara

Allegheny

Madison

Kit Carson

Sherman

Thomas

Pitkin Emery

Grand

Kane

Madera

Fresno

San Benito

Siskiyou

Lake

Knox

Henry

Ogle

Mariposa

Iron

San Francisco

Jackson

Mendocino

Magoffin

Calaveras

Sullivan

Amador

Merced

Josephine

Humboldt

Sonoma

Texas

Kent

Washington

Tolland

Saunders

Lane

Jefferson

Washington

Alameda

Contra Costa Douglas

Curry

Del Norte

Trinity

Arizona New Mexico

Barnstable

Rockland Lackawanna

Stark

Marshall

Tama

Tuscarawas

Shelby

Preble

Cedar

Leavenworth

Lyon

Dubuque

Benton

Grundy

Hartford

Sullivan

Lycoming

Marion

Lincoln

Grant

Holmes

Blackford

Delaware

Johnson

Windham

Wyoming

Lawrence

Buchanan

Polk Webster

Greene

Arapahoe

Plymouth

Providence

Columbia

McKean

Columbiana Ashland

Butler

Kenosha

Kane

Stephenson

Black Hawk

Crawford

Wyandot

Hardin

Allen

Jackson

Pocahontas

Calhoun

Worcester

Hampden

Delaware

Seneca

Wabash

Forest

Steele

Otoe

Jewell

Linn Anderson

Waller

Sarpy

Mono

Tuolumne

El Dorado

Coos

Rhode Island

Georgia

Greene

Ulster

Broome

Henry

Paulding

CarrollCass Starke

Phillips

Cook

Racine Green

Carroll

Fayette

Clinton

Denton

Chemung

Tioga

Wood

Walworth

Lafayette

Grant Bremer

Delta

Millard

Jo Daviess

Floyd

Clarke

Plumas

Beaver

Garfield

Steuben

Litchfield

Clarion

Putnam

Chickasaw

Clear Creek

Salt Lake Nye

Douglas

Androscoggin

Knox

Tioga

Allegany Cattaraugus Mahoning

Summit

Medina

Defiance

Hillsdale

Allen

Kosciusko

St. Joseph

Iowa

Allamakee Mitchell

Butler

Humboldt

Clinton

Juab Eureka Churchill Sierra

Pine

White

Sanpete

Mineral

Carson City

Placer

Kennebec

Essex

Norfolk

Trumbull

Geauga

Huron

Washtenaw

DeKalb St. Joseph

Houston

Mower Hennepin

Blue Earth Kossuth

Henderson

Hancock

Waldo

Lincoln Sagadahoc

Elkhart

Marshall

Dodge

Scott

Martin Platte

Atchison

Montgomery

Madison

Washington Cumberland

Rockingham

Olmsted

Rice

Washington

Pershing

Buchanan

Rains

Smith

Piscataquis

Somerset Penobscot York

Strafford

Cheshire

Suffolk

Dodge

Choctaw

Walker

Payne

Republic

Yuma

Norton

Decatur

Cheyenne

Denver Carbon Eagle

Lander

San Joaquin

Wayne

Jefferson

Goodhue

Lamar

Pittsburg

Carter Thayer

Franklin

Red Willow

Uintah Gilpin

Rio Blanco Garfield

Aroostook

Oxford

Carroll Belknap

Sullivan

Hampshire

Chenango

Mercer

Rock

Green

Oneida

Douglas

Furnas Dundy Harlan

Leon

Marion

Portage

Nicollet

Delta Nuckolls

Linn

Whitley Williams

Cooke

Webster

Benton

Tompkins Ingham

Cameron

Morgan

Schuyler

Noble

Story

Phelps

Frontier

Adams

Utah

Tooele

Franklin

Caledonia Orange

Grafton Windsor Merrimack

Hillsborough Rutland

Middlesex

Cortland

Berkshire

Holt

Grand

Lyon

Venango

Lenawee

Shiawassee

LaGrange

Taylor

Duchesne

Chase

Jackson

Cache

Storey

Washoe

Coos

Essex

Washington

Lamoille

Bennington Windham

Yates Franklin

Schoharie

Lorain

Jackson

Branch

Kalamazoo

La Crosse

Wright

Davis

Lassen

Orleans

Franklin

Addison

Chittenden

Rensselaer

Schenectady

Fulton

Daggett

Marshall

Berrien Fond du Lac Eau Claire

McLeod

Box Elder

Nevada

Oakland

Monroe

Adams

Montgomery Washington Nodaway

Boulder

Humboldt

Elko

Stanislaus

Kentucky

Michigan IllinoisTennessee

Arenac

Sueur

Le

Clay

Greeley Sherman

Cass

Okmulgee

Garvin Fillmore

Warren

Saratoga

Montgomery

Otsego

Livingston Wyoming

Albany

Milwaukee

Dakota

Shelby

Crawford

Rogers Murray Love

Phillips

Clay

Washington

Clinton

Fulton

Madison

Onondaga

Seneca

Crawford

Livingston

Richland

Dodge

McClain

York

Grand Isle

Essex Hamilton

Herkimer

Cayuga

Ontario

Lake

Hitchcock

Modoc

Sacramento

Erie

Sandusky

Franklin

Jefferson Lewis Oswego

Oneida

Wayne

Genesee

Erie

Cuyahoga Lucas

Polk Merrick

Cowley

Lincoln

Pottawatomie

Hamilton

Perkins

Gosper

St. Lawrence

Monroe

Chautauqua

Warren Ashtabula

Ottawa

Clinton

Ionia

Calhoun

Sibley

Hayes

Erie

Macomb Genesee

Bay Saginaw

Eaton

Barry

Kent

Van Buren

Washington

Rich

Camas

Carroll

Fulton

Twin Falls

Platte

Howard

Hall Dawson

Logan Routt

St. Clair

Sanilac

Gladwin

Midland

Manitowoc

Winnebago

Sauk Columbia

Sac

Buena Vista

Rawlins

Wisconsin

Ogemaw

Clare

Isabella Montcalm

Gratiot

Allegan

Calumet

Dunn Palo Alto

Clay

Nowata Jackson

Adams

Summit

Huron

Lapeer

Roscommon

Mecosta

Ottawa

Waushara

Washington Stearns

Emmet

Dickinson

Brown

Montgomery

Burt

Buffalo

Carbon

Wasatch

Cassia

Missouri

Alpena

Missaukee

Montmorency

Lake

Red Marshall

Grant

Pembina Harding

McPherson

Jackson

Atchison

Fremont

Mills

Thurston

Laramie

Weld

Caribou

Tuscola

Alcona

Cheboygan

Osceola

Oscoda

Parle

qui

Slope Stillwater

Adams Bowman

Teton Lake

Bear

Sioux

Niobrara Fremont

Washakie

Sublette

Springs

Hot

Banner

Shawnee

Woodbury

Plymouth Dakota

Sedgwick

Franklin

Weber

Bannock

Clackamas

San Mateo

New Jersey California

Wexford

Lake

Portage

St. Croix

Anoka

Watonwan Wilson

Geary

Jefferson

Lincoln

Larimer

Moffat

Uinta

Bingham

Power

Lincoln

Clark

Pennsylvania

Benzie

Muskegon

Waukesha

Outagamie Marathon

Wood

Monroe

Brown Cottonwood

Lincoln

Union

Butler

Seward

Nance

Jefferson

Minidoka

Gooding

Yamhill

Kansas

Iosco

Crawford Otsego

Emmet Manistee

Oceana Newaygo

Door

Dickinson

Rusk Chippewa

Barron

Pottawattamie

Lincoln

Moody

Deuel

Bonneville

Blaine

Lake

Elmore

Owyhee

Harney

Polk Lincoln

Chippewa

Charlevoix

Antrim

Mason

Orleans Niagara

Mackinac Kalkaska

Grand Traverse Marquette

Dickey

Benewah

Grass

Sweet

Grant Carter Mineral

River

Powder

Ada Jerome

Jefferson

Yuba

Sutter

Washington

Tillamook

Ohio

Nebraska

Schoolcraft

Ozaukee

Brown Sheboygan

Polk

Morrison

Renville

Redwood

Osage

Deuel Cuming

Colfax

Butler

Kay

Wheeler

Boone

Valley

Keith

Cheyenne

Albany

Morgan

Butte

Yolo

West Virginia

Michigan

Luce Leelanau

Marinette

Washington Oconto

Menominee

Sawyer

Kandiyohi

Dixon Wayne

Cedar

Rock

Garfield Custer

Arthur

Washburn

Chisago

Osceola

Clay

Buffalo Jerauld

Charles Mix

Yankton

Brown

Madison Morrill Logan

Minnehaha

Turner

Day

Clark

Beadle

Kingsbury

Gregory

Bon Homme

Cherry

Sweetwater

Saline

Klamath

Massachusetts

Marshall Spink

Faulk

Hyde

Bennett

Boyd Dawes Knox

Keya Paha Holt Antelope Pierce

Garden

Kimball

Forest

Shawano Burnett

Douglas

Cherokee

Lyon

Cass

Sargent

McPherson

Potter

Sanborn Miner Lyman Jackson Brule Hanson Aurora Mellette McCook

Davison Douglas Hutchinson Tripp

BlaineThomas

Hooker

Waupaca

Clark

Pine Pope

Nobles

Campbell Corson

Walworth

Meade

Sheridan

Loup Grant Platte

Clark

Houghton

Vilas

Lincoln

Taylor

Benton

Ida Murray

Harrison

Ransom

Sioux

Edmunds Dewey Sully

Stanley Hand Hughes Haakon Pennington Jones

Shannon Todd Scotts Bluff

Converse

Douglas

Crow Wing

Todd

O’Brien

Rock

Brookings

Steele

Barnes

Morton

Perkins Ziebach

Box Butte

Goshen

Fremont

Lincoln

Custer

Madison

Ontonagon

Langlade St. Louis

Wadena Yellow Medicine

Sioux

Clay Lake Brown

McIntosh

Butte

Custer

Natrona

Big Horn

Teton

Beaverhead

Boise

Iron

Price

Carlton

Clearwater

Otter Tail

Polk Hamlin

Logan Emmons

Granite Lewis

Jefferson Deer Lodge

Ravalli

Gem

Payette Jefferson

Canyon

Bayfield

Iron

Isanti

Swift Richland Grand Forks

Eddy

Foster Griggs

Chippewa

Hood River Skamania Wasco

Columbia

South Dakota

Lake

Hubbard

Roseau Codington

Nelson

Hettinger

Treasure

Campbell

Johnson Weston

Fall River

Park

Gallatin

Clearwater Walla Walla

Washington

Grant

Morrow

Cowlitz

Ashland

Kanabec

Becker

Ramsey Oliver

Stutsman

Kidder Fallon

Rosebud

Butte

Lawrence

Big Horn

Sheridan

Latah

Nez Perce

Silver Bow Madison Idaho Lemhi Wallowa Adams Valley Baker

Gilliam

Wheeler

Colorado

Aitkin

Cass Beltrami

Lac

Benson

Burleigh

Stark Golden Valley

Carbon

Park

Powell Whitman

Asotin Union

Deschutes Malheur

Keweenaw

Cook

Lake of the Woods

Pennington Mahnomen

Walsh Pierce

Sheridan

Wells McLean

Mercer

Musselshell

Crook

Iowa

Traill

Cavalier Towner

Rolette

Bottineau

Wibaux

Golden Valley

Custer

Yellowstone

Lewis and Clark

Columbia

Crook Umatilla

Utah Wyoming

Renville

McHenry

McKenzie Dunn Fergus

Petroleum Billings

Judith Basin

Prairie

Meagher

Broadwater

Missoula

Adams

Franklin

Benton

Sherman Klickitat

Wahkiakum

Clatsop

Oneida

Dawson

Cascade

Koochiching

Garfield

Divide Burke

Williams Mountrail Richland

Roosevelt

McCone

Valley

Chouteau

Lyon

Blaine Phillips

Teton

Lake

Shoshone

Grant

Garfield

Shasta

Solano

Pacific

Kittson

Bonner Pondera

Kootenai

Lincoln

Yakima

Nevada

Sheridan

Toole

Lincoln Flathead

Sanders

Douglas

Kittitas

King

Multnomah Lewis

Pierce

Oregon

Liberty Hill Ward

Daniels

Glacier

Pend Oreille

Spokane

Okanogan

Roberts

Boundary

Ferry

Stevens

Chelan

Snohomish

Colusa

Napa

Thurston

Indiana

Marion

Tehama

Jefferson

Kitsap

Grays Harbor

Minnesota

Noble

Island

Clallam

Wheatland

Whatcom Skagit

San Juan

Mason

New HampshireMaine Vermont

Idaho Montana North Dakota

Washington

Lenoir

Horry

Hoke

Collier

Onslow

Cumberland

Essex

Sussex

Dillon New Kent

St. Charles

Surry

Santa Cruz

Jeff DavisTerrell

Bay

Jacinto

San

Liberty

Starr Walton

Jackson Bastrop

Calhoun

Zapata

Chambers

Kenedy

Karnes

Jackson

Cameron

(f) RecMap MP1

Craven

Highlands

Leon

Washington

Presidio

St. Mary

Hidalgo

Luna

Liberty Franklin

Gulf

Portsmouth Camden

Brazoria

Jim Wells Pecos

Imperial

Yuma

Suffolk

Hertford

Pender Marion

Stafford

Georgetown

Brunswick

Charlotte

Pasquotank

Bertie

Chowan

Washington

Wakulla

(g) RecMap MP1 Oakland

Maine New Hampshire Vermont

Monroe

Milwaukee Aroostook

Winnebago

Crow Wing

Ramsey

Jo Daviess

Dane

Sheboygan

Manitowoc

Isanti

Webster

Carlton

Lyon

Black Hawk

Ozaukee

Washington

Waukesha

Woods

the

of

Lake

Sheridan Billings

Greeley

Texas

Deschutes

Arapahoe

Canyon

Modoc

Lake

Humboldt

Shasta

Ada

Harney

Lassen

Valley

Boise

Pershing

Grant

Owyhee

Teton

Tulsa

Johnson

Pawnee

Deer Lodge

Custer

Elmore

Mills

Roger Grass

Payne

Sweet

White Pine

Millard

Gooding

Teton

Flathead

Churchill

Lincoln

Juab

Nye

Inyo

Fremont

Sublette

Big Horn

Tooele

Big Horn

Park

Ouray

El Dorado

Kings

Tulare

McClain

San Francisco

Santa Clara

Lawrence

Yoakum

Winkler

King Throckmorton

Stephens

Kent

Midland

Dickens

Roosevelt

Glasscock Sterling

San Saba

Tom Green

Lampasas

Mason

Bosque

Hill

Hamilton

Caddo

Limestone

Crittenden

Gillespie

Terrell Davis Culberson

Hudspeth

Jeff

Coryell

Kerr

Harrison Leon

Robertson

Kinney

Real

Collingsworth

Harmon

Lincoln

Panola

Uvalde

Hall

Lee

Washington

Sabine

Dimmit

Waller

Augustine

San

Stonewall

Taylor

Dixie

Calhoun

Covington

Brooks

Guilford

Hawkins Carter

Rabun

Cabarrus

Stanly

Bell

Davie Davidson

Oconee White

Florence

Overton

Cocke Stephens

McMinn

Franklin

Loudon

Putnam

Banks Habersham Lumpkin

Abbeville

Cape Girardeau

Hall

Scott

Warren

Richmond

Volusia

Seminole

Wilkinson Calhoun

Gulf

Turner

Twiggs Franklin

Sumter

Lanier Clinch

Laurens

Irwin Worth

Crisp

Dooly

Grenada

Suwannee Lafayette

Fulton

Marion

Cook

Tift Echols

Madison

Hamilton

Bleckley

Wheeler

Houston

Dodge

Columbia

Gilchrist

Hardin

Randolph

Surry Russell

Transylvania

Henderson

DeKalb

Davidson

Alexander

Lowndes Berrien

Grady

Hudson

Petersburg

Meade

Person

Alamance Washington

Clinton

Swain

Union Chesterfield

Georgetown

Hamilton

Jackson Glynn

Putnam

Hernando

Calhoun

Pasco

Jones Macon

St. Bernard

Jeff Davis

Bacon

Peach

Duval

Webster

Plaquemines Brantley

Nassau

Wayne

Appling

Charlton

Baker

Treutlen

Adams

Chesapeake

Portsmouth

Currituck

Orange

Muhlenberg

Anderson

Haywood

Anson Marion

Williamsburg

Forsyth

Jackson

Lake

Atkinson

St. Charles

St. John the Baptist

Passaic

Bergen

Hartford

Vanderburgh

Fairfield Hamblen

Christian New Hanover

Horry Fairfield

Lexington

Clarke Madison

Hart

Citrus Levy

Bay

Liberty

Jefferson

McDowell

Brunswick

Sumner

Richland Charleston

Bamberg

Cobb

Randolph

Early

Washington

Murray

Colquitt Thomas

Lincoln

Starr

Henrico

Dubois

Spencer

Rockingham

St. Louis

Pender

Dillon

Sumter

Dorchester

Morgan

Lee

Franklin

Floyd

Perry

Franklin

Harnett

Cole

Osage

Burke

Columbus

Unicoi

Mecklenburg Berkeley

Baldwin

Glascock

Colleton

Calhoun Pike

Talbot

Barbour

Clay

Jackson

Holmes

Jefferson

Union

Zapata

Willacy

Pike

Monmouth

Wake

Catawba

Robeson

Yancey

Greene

Lincoln

Washington

Jasper

Monroe

Taylor

Upson Schley

Muscogee Pike

Geneva

Gadsden

Hidalgo Cameron

New Haven

Knott

Beaufort

Wayne

Warren

Rutherford

Bladen

Buncombe Madison

Kershaw

Elbert

Oglethorpe

Hancock

Ashley

Duval

Webb

Nacogdoches

Comal

Lenoir

Polk

Mitchell

Darlington

Lee

Wilkes

Greene

Walton

Newton

Jim Hogg

Caldwell

Pitt

Greene

Onslow McDowell

Anderson

Clarendon

Barrow

Morgan

Hays Guadalupe

Edgecombe

Wilson

Lee Scotland

Marlboro

Pickens Calhoun

Aiken

Allendale

Gwinnett

Benton

Marion

Russell

Decatur Wakulla

Kendall

Travis

Martin

Dare

Johnston

Cumberland

Richmond

Orangeburg Saluda

Edgefield

DeKalb

Terrell

Macon

Coffee Baker

Crenshaw

Leon

Walton

McMullen

Houston

Rusk

Atascosa

Montgomery

Greenville

Newberry

McCormick

Barnwell

St. Tammany

Wicomico Greene

Greenup

Middlesex

Roanoke

Pamlico

Rowan Moore

Spartanburg

Laurens

Greenwood

Burke

Butts

Lee

Elmore

Mitchell

Miller

Monroe Okaloosa

Hancock

Montgomery

Bexar Young

Nash

Hoke

Union

Columbia

Jefferson

Henry

Rockdale

Chattahoochee Stewart

Quitman

Autauga

Lowndes

Butler

Conecuh

Santa Rosa Pearl River

Marion

Westchester Martin

Queens

Carteret

Chester

Lancaster

Dawson

Clayton

Fayette

Coweta

Coosa Bullock

Dallas Clarke Wilcox

Georgia

Nassau

Clark

Craven

Lamar

Meriwether

Harris

Tallapoosa

Clay Washington

Perry

Escambia Forrest

Columbia

Atlantic

Braxton

Upshur

Brown

Suffolk

Fayette

Jessamine

Southampton

Washington

Jones

Chatham

Cherokee

York

White

Pickens

Cherokee

Douglas

Spalding

Troup

Baldwin

Choctaw

Wayne

Greene

Escambia

Lamar Stone

Warren

Claiborne

Latimer

LouisianaMississippi Alabama

Hertford

Chowan

Randolph

Heard

Chambers

Mobile

George

Jones

Pickens

Taney Stone

Wilkinson

East Feliciana

Bee

White

Estill Gates

Camden

Bertie

Bronx

James City

Madison Edwards

Tyrrell

Perquimans

Union

Towns Whitfield

Bartow

Paulding

Haralson

Carroll

Cullman

Jackson

Harrison

Fayette

Walker

Amite

St. Helena

South Carolina Texas

Fannin

Gilmer

Gordon

Floyd

Polk Cleburne

Etowah Chilton

Jefferson

Humphreys

Hinds

Pike

Franklin

Tangipahoa

Assumption

Live Oak

Brunswick

Northampton

Clay

Cherokee

Walker

Cherokee

Shelby

Bibb

Clarke

Livingston

Washington

Lafourche

Karnes Wilson

Gilmer

Hamilton

New London

Boone

Mercer

Marion

Pasquotank Greensville

St. James

Lincoln

Morehouse

Fayette Gonzales

Walker San Jacinto

Middlesex

Jackson

Jackson

Harrison Scott

Woodford

Clay Wayne

Hyde

Nottoway

Buckingham

Prince Edward

Duplin

Jasper

Smith

Iberia Iberville

East Baton Rouge

La Salle

Hempstead

Victoria

Lavaca

Trinity

New York

Washington

Washington

Henry Franklin

Richmond

Amelia Dinwiddie

Neshoba

Newton

Scott

St. Mary

Lafayette

Union

Ouachita

DeWitt

Goliad

Polk

Tyler

Angelina

Windham

Richmond

Roane

Tolland Putnam

Amherst

Lynchburg

Chesterfield

Cumberland

Fluvanna

Chattooga

DeKalb

Marshall

McDuffie

Hale

Tuscaloosa

Greene

Montgomery

Marengo

Yazoo

Richland

Bienville

Ascension Catahoula Natchitoches

Calhoun

Refugio

Galveston Hardin

Kanawha Rockbridge

Hopewell

Powhatan

Goochland

Logan

Taylor

Oconee East Carroll

Winn

Grant Allen

Jackson

Matagorda

Liberty

Jefferson

Lincoln

Nelson

Poquoson

Newport News

Mingo

Tazewell

Halifax

Dade

Madison

Blount

Attala

Leake

Madison

West Carroll

Jackson

Rapides Vernon

Wharton Colorado

Somervell

Boyd

Tyler

Dearborn

Marion

Washington

Sampson

Madison Walthall

Franklin

Avoyelles Caldwell

Armstrong

Marion

Franklin

Jackson

Morgan

Lawrence

St. Clair

Sumter

Holmes

Rankin

Jefferson Davis

Sharkey

Evangeline

Wagoner

Fort Bend

Austin

Chambers

Erath

Union

Cabell

Camden

Mathews

York

Surry

Buchanan

Smyth

Lincoln

Cleveland

Perry

Talladega

Lawrence

Claiborne

Tensas

Jefferson Davis

Cameron

Baylor

Taylor

Gloucester

Wood

Isle of Wight

Appomattox

Campbell

Vance

Granville

Durham

Jackson

Kemper

Carroll

Simpson Copiah Jefferson

West Feliciana West Baton Rouge

Concordia

Beauregard

Wilbarger

Jackson

Comanche

Coke

Baltimore

Kings

Lunenburg

Limestone

Lawrence

Colbert

Franklin Winston

Noxubee

Winston

Covington

Pointe Coupee

Calcasieu Cherokee

Harris

Archer

Lewis

Wayne

Lauderdale

Itawamba

Marion

Tallahatchie

Phillips

Newton

Jasper

Montgomery

Wichita

Clay

Yalobusha

Leflore Bradley

Grimes

La Salle

Brewster

Irion

Nolan

Cumberland

Fayette

Athens

Bristol

Newport Charles

Essex

Wayne

Charles City

Prince George

Charlotte

Mecklenburg

Halifax

Forsyth

Yadkin

Iredell

Gaston

Macon

Monroe

Polk

Lowndes

Drew

Chicot

Washington

Orange

Sabine

Bastrop

Bolivar

Sunflower

Shelby

Madison Zavala

Frio Howard

Coahoma

Lamar

Brazoria

Medina

Cottle Motley

Giles

Alcorn

Tishomingo

Clay

Panola

Quitman

Lamar

Bandera

Maverick Wheeler

Schleicher

Mitchell

Virginia Beach

Norfolk

Hampton New Kent

Sussex

Suffolk Danville

Caswell

Stokes

Wilkes

Alexander

Campbell

Grainger

Catoosa

Louisa

Henry Pittsylvania

Patrick

Watauga Alleghany

Ashe Grayson

Caldwell

Pulaski Jefferson

Sevier

Blount

Graham

Lincoln

Lee

Union

Tate

Tunica

Cleveland

Desha

Brazos

Milam Burleson

Greer

Beckham

Kiowa

Ector

Kent Prince William

Gallia

Mason

Bedford

Floyd

Carroll

Wythe

Johnson

Whitley

Knox

Laurel

McCreary

McNairy Perry

Arkansas

Jefferson

Falls

Freestone

Burnet

Edwards

Val Verde

Crockett

Donley

Washita

Custer

Pratt

Potter

Hardeman

Lafayette

Marshall

Prairie

Marion

Montague

Kimble

Sutton

Pecos

Eddy

Presidio

Gray

Carson

Middlesex Somerset

Madison

Page

Northumberland Richmond

Lancaster

King William

Albemarle

Craig

Montgomery

Sullivan

Avery

Lee

Jackson

Union

Meigs

Bradley Cumberland

Grundy Moore

Benton

DeSoto

Monroe

Pulaski

Cass

Blanco Menard

Reeves

Hutchinson

Botetourt Monroe

Mercer

Bristol

Scott Hancock

Claiborne

Owsley

Clay

Knox

Scott

Wayne

Rhea Bledsoe

Sequatchie

Bedford

Coffee

Essex

Dickenson

Lee

Leslie

Roane Pickett

Jackson

Smith

Van Buren

Warren

Maury Marshall

Caroline

Orange

Alleghany

Wise

Harlan

Shelby

Garrard

Lincoln

Morgan

Fentress Cumberland

Clay

Trousdale

Wilson

Cannon

Lee

Grant

Wise

Navarro Llano

Concho

Denton

Mills

Runnels

Ward

Moore

Riley

Boyle

Casey Adair Metcalfe

Monroe

Allen

Macon

Rutherford Williamson

Hickman

Hardin

Pontotoc Fayette

Reagan

Upton

Otero

El Paso

Graham

Pinal Grant

Green

Barren

Hopkins Todd

Robertson

Cheatham

Dickson Stewart

Montgomery Chester

Chickasaw

Giles

Washington

Rockcastle

Anderson

Hart

Hancock

McLean

Logan

Simpson

Houston Humphreys

Henderson

Webster

Mercer Hunterdon

Taylor

Monroe Stafford

Bland

Russell

Letcher

Larue

Grayson

Daviess

Butler

Edmonson

Madison Haywood

Decatur

Monroe

Crockett

Tipton

Lewis

Culpeper

Pulaski

Breathitt

Perry

Breckinridge

Ohio

Warrick

Benton

Carroll

Gibson

Craighead Lauderdale

Cross

Jackson

White

De Baca

Maricopa

Cimarron

Navajo

Alameda

Ness

Finney

Arkansas

Morgan

Martin

Nelson

Jay

Moniteau

Johnson

Magoffin

Wolfe

Blackford

Daviess

Pike

Knox

Warren

Weakley

Dyer

Mississippi St. Francis

Faulkner

Saline

Perry

Ellis

Johnson

Comanche

Coleman

Quay

Rains

Brown

Cochran

Contra Costa

Boone

Wabash

Crittenden

Calloway

Henry

Ballard

Pulaski

McCracken

Obion Woodruff

Lonoke Cleburne

Poinsett

San Juan Lane

Posey

Union

Gibson

Johnson

Pemiscot

Independence

Izard

Stone Conway Van Buren

Montgomery

Garland

Stark

Cape May

Greene

Preston

Monongalia

Marion

Worcester

Accomack

Clay

Pleasants

Gloucester Kent Somerset

Dorchester Spotsylvania

Rockingham

Bath

Marshall

Hickman Mississippi

Ripley

Sharp

Jefferson

Bullitt

Hardin

Caldwell

Lyon Trigg

Greenlee

Gaines

Crane

Ventura

Sacramento

North Carolina

Gallatin

Webster

Livingston

Graves Carlisle

Clay Pope

Massac

Carter

Oregon

Baxter

Pope Hot Spring

Yell

Logan

De Soto Red River

Gregg

Ritchie

Harrison

Caroline

Calvert

St. Mary’s

Hanover Fauquier

King George

Lawrence

Wells

Iron

Madison

Greene

Montgomery

Macoupin

Butler

Shannon

Fulton

Madison

Washington

Webster

Bossier Miller

Hopkins

Kent Talbot

Westmoreland

Lebanon

Rappahannock

Hampshire

Hardy

Augusta

Highland

Sangamon

Wirt

Mineral

Warren

Clarke Frederick Pendleton

Pocahontas

Greenbrier Lewis

Rowan

Macon

Bristol

Alexandria

Summers Nicholas Montgomery

Lawrence

Lafayette

Little River

Bowie

Morris

Kaufman

Palo Pinto

Allegany

Jefferson

Shenandoah

Fayette

Bourbon

Bath Menifee

Powell

Elliott Spencer

Bollinger

Stoddard

Dunklin

Jersey

Warren Pulaski

Howell

Benton

Johnson

Crawford

Nevada

Pike Howard

Sevier

Upshur

Rockwall

Parker

Wayne

Reynolds

New Madrid

Lake

Lincoln

Jefferson

Labette

Randolph

Franklin

Sebastian

Ouachita

McCurtain

Titus Red River

Wood

Van Zandt Jack

Hardeman

Callahan

Scurry

Terry

Santa Cruz La Paz

Gila

Los Angeles

Cherokee

Clark

Scott

Dallas

Calhoun

Cherokee

Polk

Camp Franklin

Henderson

Hunt Foard

Eastland Fisher

Anne Arundel

District of Columbia

Baltimore

Harford Calhoun

Berkeley Pickaway

Hocking Fleming

Carter

Huntington

Madison

Saline

Fulton

St. Francois

Sequoyah Le Flore

Anderson

Collin Fannin Delta

Pima

Yavapai

Mohave

San Mateo

Clark

Madison

Vernon

Crawford

Adair Pittsburg

Atoka

Grayson

Love

Cooke

Haskell

Jones Garza

San Luis Obispo

Santa Barbara

McDonald

Muskogee

Haskell

Pushmataha

Choctaw

Carter

Marshall

Hood Briscoe

Floyd

Andrews

Brown

New Castle

Queen Anne’s

Meigs

Ross

Highland

Brown

Mason

Henry

Grant Union

Salem

Morgan Madison

Adams

Pike

Clark

Oldham Harrison

Scioto

Rush

Williamson

Ste. Genevieve

Henderson Franklin

St. Charles Caddo

Bryan

Murray

Lamb

Bailey

Hockley

Childress

Knox

Crosby

Hale Martin

Dawson

Campbell Vinton

Johnson Miami Tipton

Clinton Marion

Kingfisher Blaine Seminole

Coal Johnston

Garvin

Parmer

Curry

Lubbock Dona Ana

Lynn

Hamilton

Franklin

Jackson

Perry

Ozark

Searcy

Jasper

Major

Okfuskee

Hughes

Pontotoc

Grady

Cotton

Tillman

Cochise

Luna

Sierra

Lea

Shackelford

Kern

Virginia District of Columbia

Dade Barton

Delaware

Castro

Swisher

Stephens

Jefferson

Lincoln

Saline

Iron

Kenton

Boone

Ohio

Crawford

Clinton Jefferson

Randolph

Monroe

Perry

Hendricks

Howard

Philadelphia Delaware

Sussex

Lancaster

Washington

Carroll

Hamilton

Perry

Washington

St. Clair

Bond

Delaware Prince George’s

Bedford

Ocean

Perry

Orange

Fulton

Lawrence

Callaway

Fayette

Borden

Kentucky Missouri

Mayes

Okmulgee

Pottawatomie

Randall

Catron

Hidalgo

Guadalupe

Chaves Dickinson

Coconino

San Benito

St. Louis Des Moines

Macon

Calhoun

Mahoning

Morris

Ohio

Franklin

Fairfield

Northumberland

Franklin

Fulton

Trimble

Pike

Montgomery

Susquehanna

Fairfax Lycoming

Howard Mercer

York Burlington

Cecil

Cass

Plymouth

Juniata

Jefferson

Lawrence

Boone

Van Buren

Lee Audrain

Shelby Gasconade

Los Alamos

Apache

Cibola

Socorro

Torrance

San Miguel

Santa Cruz

Kane

Tennessee

Clark

Randolph Monroe

Ralls

Dent

Cumberland

Licking

Dukes

Montgomery Arlington

Mifflin

Loudoun

Butler

Clearfield

Jefferson

Providence

Allen

Monroe

Frederick Delaware

Dauphin

Centre

Clinton

Snyder

Clark

Scott

Warren

Norfolk

Adams

Barnstable

Union

Clinton

Grant Washington

Knox

Hancock

Howard

Marion Crawford

Phelps Texas

Douglas

Carroll

Union

Logan

Randolph

Pendleton Bracken Gallatin

Bartholomew

Switzerland

Lewis

Adams Washington

Laclede

Christian

Montgomery

Miami

Suffolk

Litchfield Crawford

Marion Wayne

Montgomery

Owen

Shelby

Jackson

Logan

Mason

Schuyler

Miller

Hickory

Polk

Lawrence

Craig

Canadian

Union

Deaf Smith

St. Clair

Barry

Carroll

Newton

Sedgwick

Dallam

Oldham

Mora

McKinley

Sanpete

Sevier

Sandoval

Yuma

Mariposa

Warren

Albany

Richland

Champaign

McLean Ripley

Jennings

Sussex

Greene

Jefferson

Carroll

Berks

Preble

Floyd

Marion

Parke

Montgomery

Henderson

Camden

Bates

Linn

Boone

Ottawa

Creek

Sumner Harper

Hartley

Carbon

Emery

Neosho

DuPage

Northampton

Columbia

Dutchess

Columbia

Cambria

Franklin

Hancock

Putnam

Owen

Richland

Brown Maries

Allen Elk

Mineral

Rio Blanco

Duchesne

Bernalillo

Stanislaus

Merced

Fulton

Morgan

Johnson

Cass

Woodson

Greenwood

Harvey

Kingman

Barber

Hinsdale Daggett

Uinta

Fresno

Madera San Joaquin

Marin San Bernardino

Lyon

Butler

Reno

Clay

Greene

Tazewell

Wabash

Hampden

Putnam

Ulster

Sullivan

Fulton

Sullivan Montour

Darke

Clermont

Stafford

Pawnee

McPherson

Rice

Cleveland

Taos

Rio Arriba

Morgan

Sullivan

Clark

Kiowa

Ellsworth

Colfax

Archuleta

Piute

Monterey

Calaveras

Sonoma

Montrose

Clark

Costilla

Juan

Solano Imperial

Riverside

Mesa

Cowley

Marion

Edwards

Meade

Grant

Lincoln

Newton

Chaffee

La Plata Wayne

Garfield

San

Orange

Conejos

Alamosa

Saguache Custer

Gunnison

Montezuma

San Juan

Crawford

De Witt Scott

Chase

Rio Grande Huerfano

Lake

Dolores

Grand

Ford

Gray Haskell

Oklahoma

Clear Creek

Uintah

San Miguel

Maryland

Kay

Noble Park

Grand

Summit

Delta Garfield

Santa Fe

West Virginia

Johnson

Douglas

Grant

Hodgeman

Jackson

Routt Albany

Carbon

Sweetwater

Moffat

Summit

Valencia

Arizona New Mexico

Jasper

Moultrie

Piatt Menard

Greene

Johnson

Natrona

Wasatch

Salt Lake

Garfield

Logan

Laramie Converse

Washakie

Rich

Utah

Lake

Vigo

Vermillion

Decatur Cumberland

Coles

Peoria Pike Cooper

Lafayette

Chester

Luzerne

Somerset

Carbon

Shelby

Benton

Effingham

Shelby McDonough

Henry

Saline

Pettis

Ray

Osage

Ellis

Larimer

Platte

Hot Springs

Carbon Morgan

Beaver

Glacier Washington

Missoula

Tuolumne

Hemphill

Lipscomb

Park

Rosebud

Davis

Lander

Toole

Pondera Sanders

Lyon

Mono

Geary

Rush Rooks

Alfalfa

Woods

Woodward

Bradford

Otsego

Schoharie

Knox

Lackawanna

Morrow

Indiana

Clarion

Blair

Schuylkill

Warren

Christian

Marshall

Chariton

DeKalb

Atchison

Jackson

Ottawa

Ellis

Trego

Osage

Comanche Harper

Hancock

Brooke

Holmes

Cameron

Huntingdon

Essex

Lehigh

Bucks

Allen

Middlesex

Schenectady

McKean

Cattaraugus

Allegany

Ford

La Salle Woodford Stark

Carroll

Clinton

Doniphan

Buchanan

Clay Wabaunsee

Lincoln Russell

Pawnee

Dewey

Stillwater

Elko

Powell

Storey

Carson City

Douglas

Nemaha

Pottawatomie

Cloud

Mitchell

Osborne Bent

Roberts

Jerome

Mineral Lewis and Clark

Twin Falls

Nevada

Placer

Johnson Chickasaw

Adair Linn

Livingston

Daviess

Platte

Marshall

Nemaha

Republic

Jewell

Barton Kiowa

Las Animas

Chenango

Montgomery Columbiana

Ashland

Elk Warren

Hardin

Wyandot

Defiance

Auglaize

Union

Washington

Otero

Prowers

Baca

Harding

Granite

Cascade

Chouteau

Yolo

Teller

Gallatin Meagher

Treasure

Broadwater

Yuba

Colusa Sierra

Napa

Putnam

Harrison

Nowata

Garfield

Weber

Box Elder

Eureka

Sutter

Lake

San Diego

Delaware

Gentry

Leavenworth

Caldwell

Rogers

Wyandotte Fremont

Pueblo

Caribou

Power Oneida

Lemhi

Alpine

Ohio

Amador

California

Washington

Thayer

Boulder

Bonneville

Bear Lake

Franklin

Cassia Lincoln

Beaverhead

Broome

Wayne

Wyoming

Potter

Crowley

Lincoln

Union

Minidoka

Silver Bow

Esmeralda

Pennsylvania Indiana

Oklahoma

Holt

Clay

Stevens

Teton

Adams

Baker Wallowa

Idaho

Jefferson

Butte

Andrew

Jefferson

Seward Cheyenne

Douglas

Jefferson Madison

Washington

Ravalli

Washoe

Eagle

Mercer

Worth Beaver

El Paso

Clark

Gem

Payette

Malheur

Pitkin

Nicholas

Webster

Paulding

Cass Champaign

Tippecanoe

Douglas

Noble DeKalb Rensselaer

Saratoga Grundy

Oneida

Pike Wayne

Randolph

Grant

Fayette

Forest

Hancock

Sandusky Putnam

Edgar Fountain

Hampshire Berkshire

Ontario

Adams

Worcester

Rockland

Tucker

Garrett

Wetzel Doddridge

Elkhart

Kane Vermilion

Delaware

Beaver

Fayette

Ottawa

Erie

Marshall Tuscarawas

Livingston

Kosciusko

St. Joseph

McHenry

Iroquois

Grundy

Muscatine

Fayette

Lawrence

Butler Wyoming Barbour

Belmont Monroe

Noble

Wyoming

Greene

Van Wert

Bureau

Buchanan

Bremer

Poweshiek

Sullivan Taylor

Raleigh

Harrison

Coshocton

Genesee

Steuben

Seneca

Tioga Tioga

Cortland

Morgan

Muskingum

Erie

Wood

Armstrong

Kenosha

Walworth

Newton Putnam

Livingston Grundy

Hardin

Page

Niagara

Fulton Henry

Williams

Hillsdale

LaGrange

Warren

Hillsborough

Seneca Herkimer

Chemung

Huron

Carroll

Steuben

Whitley

Starke

Schuyler

Scotland

Linn

Delaware

Iowa

Audubon

Cass

Benton

Tama

Hamilton

Pottawattamie

Wayne

Rutland

Cumberland Cheshire

Yates

Cayuga

Mercer

Queen

Tehama Plumas

Adams Cheyenne

Illinois

Jasper

Hamilton

Guthrie

Harrison

Crawford

Orleans

Monroe

Washington

Bennington

Windham

Franklin

Orange Schuyler

Portage

Summit

Erie Guernsey

Pulaski

Kankakee Marshall

St. Joseph Davis

Monroe

Boone

Dallas

Adair Burt

Dakota

Chautauqua

Ochiltree

Issaquena

Trinity

Kansas

Rock

Cedar

Mahaska

Madison

Greene

Thurston Washington

Hansford

Montgomery

Colorado

Jones

Wapello

Douglas

Jefferson

Norton

Scott

Sherman

Louisa

DeKalb

Dubuque

Shelby

Nuckolls

Graham

Sheridan

Gove

Wichita

Kearny

Jefferson

Kalamazoo

LaPorte

Lenawee

Rockingham

Van Buren

Ashtabula

Trumbull

Crawford

York

Merrimack

Allegheny Geauga Venango

Chautauqua

Hancock

Strafford

and

Hooker Thomas McPherson Niobrara

Polk

Saunders

Lancaster

Clay

York

Arthur

Decatur

Thomas Logan

Wallace

Stanton

Morton

Kendall

Henry

Racine

Iowa

Green

Yuma Lincoln

Isabella

Taliaferro

Blaine

Smith Webster

Furnas

Rawlins

Sherman

Kit Carson

Lee

Washington

Lafayette

Hayes Cheyenne

Elbert

Keokuk

Ogle

Grant

Sioux

Phillips

Chase

Morrill

Whiteside Carroll

Stephenson Richland

Marion

Saline

Gage

Frontier

Hitchcock Dundy

Washington

Sedgwick Perkins

Garden

Scotts Bluff

Box Butte

Cook

Jefferson

Jackson

Marshall Crawford

Lucas

Clarke

Decatur

Sarpy

Cass

Otoe

Seward

Franklin

Phillips

Harlan Kimball

Red Willow

Deuel

Wright

Phelps Fillmore

Morgan Logan

Logan

Keith

Banner

Spokane

White Columbia

Sauk

Allamakee

Clayton

Gosper Kearney

Brown Grant

Cherry Goshen

Fremont

Clark

Klamath

Montcalm

Jackson

Jasper

Henry

Clinton

Houston

Vernon Ringgold

Humboldt

Story

Robertson

Garfield Wheeler

Oreille

Adams

Bennett

Todd Madison

Fillmore

Faribault

Kossuth

Pocahontas

Calhoun

Atchison

Waupaca

Mercer

Ziebach Wibaux

Valley

Golden

Carter Garfield River

Powder Petroleum

Paha

Sac Carroll

Colfax

Butler

Buffalo

Hall

Columbia

Whitman

Asotin

Worth

Dickinson

Emmet

Winnebago Palo Alto

Union

Mills

Fremont

Stanton

Polk

Merrick

Hamilton

Adams

Bonner

Boundary

Martin

Buena Vista

Plymouth

Cherokee

Keya

Benewah

Stevens

Skamania

Lincoln

Cerro Gordo

Jackson

Clay Ida

Dixon

Platte Nance

Gratiot

Clinton

Eaton Barry

Dodge Warren

Howard

Mitchell

Nobles

Lyon

Sioux

O’Brien Butte

Weston

Crook

Dodge

Cuming Cedar

Howard

Greeley

Adams

Nevada Utah

La Crosse

Watonwan

Rock

Liberty Valley

Golden Sherman

Weld

Gilliam

Shoshone

Kootenai

Wasco

Jefferson

Clackamas

Floyd

Franklin

Blue Earth

Chippewa Lincoln

Harding

Custer

Campbell

Turner

Pierce

Sherman

Rock

Calhoun

Porter

Washington

Knox

Sagadahoc

Sullivan

Tompkins

Lake

Lucas

Waldo

Lincoln

Oconto

Knox

Osceola

Perkins Dawson

Charles Mix

Clay

Wheeler

Linn

Benton

Washington

Waseca

McCook

Fallon

Bowman

Prairie

Yamhill

Marion Glenn

Miner

Hughes

Sully Stanley

Slope

McCone

Yakima

Klickitat

Hood River

Lincoln Tillamook

Polk Jackson

Mendocino

Dewey

Sioux Corson Adams

McKenzie Richland

Winneshiek

Fond du Lac

Outagamie

Juneau

Monroe

Steele

Bon Homme

Yankton

Valley

Latah

Lewis

Humboldt

Del Norte

Denver

Moody

Washtenaw

Penobscot

Kennebec

Androscoggin

Madison Grafton

Menominee

Green Lake

Lake

Pipestone

Daniels

Roosevelt

Brule

Boyd

Wayne

Antelope

Loup

Clearwater

Ionia

Branch

Somerset Franklin

Oxford

Carroll

Belknap

Shawano

Langlade Jackson

Lincoln

Kingsbury

Sanborn

Hanson

Jones

Hyde

Mountrail

Sheridan

Valley

Hutchinson

Knox

Tripp

Madison

Holt Mineral

Winnebago

Essex

Caledonia

Windsor

Onondaga

Webster

Williams

Davison

Boone Musselshell

Whatcom

Ferry

Allegan

Brown

Orleans

Orange Coos

Lake

Marquette

Adams

Addison

Oswego

Cass St. Clair

Calumet Waushara

Wood Marathon

Clark Trempealeau

Winona

Mower

Kandiyohi

Deuel

Jerauld Buffalo

Lyman

Essex

Jefferson

Lapeer

Midland

Buffalo

Eau Claire

Yellow Medicine

Codington

Douglas

Aurora Hand

Gregory

Haakon

Grant

Phillips Blaine Wheatland

Fergus

Lincoln

Siskiyou

Gilpin

Meade

Lawrence

Divide

Hettinger

Hill

Benton

Grant

Okanogan

Kittitas

Clatsop

Coos Curry

Umatilla Morrow

Douglas

Chelan

Pacific Wahkiakum

Lewis

Basin

Camas

Pierce Grays Harbor

Cowlitz Josephine

Pend

Douglas

Jefferson

King

Butte

Blaine

Crook

Burke

Rusk

Taylor Cook

Carver

Meeker

Spink Mellette Jackson

Judith

Multnomah

Lane

Cache

Mason

Bingham

Columbia

New Jersey

McLeod Renville

Beadle

Pennington

McHenry

Renville

Muskegon

Oceana

Iron

Price

Chippewa Lake

Itasca

Stearns

Fall River

Custer

Kidder Pierce

McLean

Scott

Wright

Sibley

Dawes

Foster

Logan

LaMoure

Oliver

Mason

Gogebic

Sherburne

Benton

Morrison Koochiching

Wells

Stutsman McIntosh

Manistee

Lake

Osceola

Roscommon

Ashland

St. Croix

Wadena

Cass

Beltrami

Steele

Barnes Sargent

Marshall

Emmons

Mercer

Stark

Wexford

Missaukee

Sanilac

Kent

Kalkaska

Oscoda

Berrien

Cuyahoga

Huron Tuscola

Crawford

Antrim

Clare

St. Louis

Mahnomen

Marshall

Griggs

Ransom

Dunn

Morton

Kitsap

Jefferson

Roseau

Grand Forks

Eddy

Dickey

Traverse

Burleigh San Juan

Clallam

Will

Vilas

Forest

Faulk

Edmunds McPherson Wilkin

Richland Lac qui Parle

Roberts

Michigan Iowa

Walworth

Campbell Potter

Grant

Swift

Big Stone

Skagit

Franklin

Walla Walla

Grand Traverse

Washington

Lorain

Bay

Newaygo

Mille Lacs

Otter Tail

Stevens

Pope Island

Custer

Lincoln

Walsh

Pembina

Ward

Snohomish Nez Perce

Dawson

Thurston

Piscataquis

Franklin

St. Lawrence

Lewis

Ottawa Cheboygan

Otsego

Charlevoix

Dickinson

Marinette

Door

Oneida

Westmoreland

Livingston

Benzie Presque Isle

Alpena

Florence

Alger

Delta

Lincoln

Portage

Sawyer

Bayfield

Appanoose

Gladwin

Arenac

Leelanau

Warren

Menominee

Marquette

Baraga

Iron

Ontonagon

Luce Schoolcraft

Pepin Wabasha

Norman

Becker

Hubbard

Emmet Montmorency

Houghton

Chippewa Mackinac

Goodhue

Dodge

Dunn

Nelson

Ramsey

Union

Richardson Keweenaw

Olmsted

Hancock

Pierce

Clay

Benson

Clark

Hamlin

King

Towner

Day Brown

Wayne

Alcona

Iosco

Clearwater

Rhode Island Connecticut

North Dakota South Dakota Nebraska

Rolette

Todd Douglas

Bannock

Montana Idaho Wyoming

Sheridan

Genesee

Ogemaw

Butler

Polk

Washington

Dakota

Hennepin Cass

Cavalier

Grant Shannon

Medina

Washburn

Barron

Oregon

Lake

Scott

Freeborn

Douglas

Rice

Le Sueur

Traill

Woodbury Monona

Bottineau

Wisconsin

Lamoille

Rock Island

Mecosta

Chisago Burnett Redwood

Murray

Cottonwood

Red Lake

Pennington

Kittson

Minnesota

Hamilton

Saginaw Shiawassee

Pine

Kanabec

Brown Nicollet

Polk

Brookings

Minnehaha Yellowstone Sheridan

Ingham

Franklin

Chittenden

Clinton

Kewaunee

Anoka

Massachusetts Michigan

Wayne

Macomb

Washington

Boone

Nodaway

Isle

Aitkin

Grand

New York

Washington

Bibb

Cedar

Toombs

Tattnall

Long

Hampton

Screven

Camden

Ware

Dallas

Jenkins

Emanuel

Beaufort Johnson

Aransas

Liberty

Bryan

Evans

Pulaski

Montgomery

Jasper

Crawford

Orleans

Smith San Patricio

Candler

Bourbon St. Johns

Effingham McIntosh

Flagler

Chatham

Wilson

Williamson

Morris

Bell

Jim Wells

Nueces

Montgomery

Henry

Bulloch

Putnam

McIntosh

Pierce

Bradford

Shelby

Terrebonne Vermilion

Brooks

Union Ben Hill

Sarasota

Telfair

Coffee

Kenedy

Kleberg

Acadia

Clay

Alachua

St. Landry

Shawnee

Wilcox

Highlands

DeSoto

Dallas

St. Martin Coffey

Tarrant

McLennan

Anderson

Dale

Seminole

Houston

Hardee

Prentiss

Sumter

Franklin

Brevard

Orange

Polk

Osceola

Tippah

Indian River McCulloch

St. Lucie Okeechobee

Charlotte

Martin Glades

Lee

Florida

Hendry

Broward

Palm Beach

Collier

Dougherty

Wright

Monroe Oktibbeha Choctaw

Hillsborough

Pinellas

Greene

Lauderdale

Manatee

(h) RecMap MP2

Miami

(i) RecMap MP2

Figure 7.33: Population data from U.S. Census Bureau on various levels for the year 2000 – The area of each map partition corresponds to the number of people living there. The colormap of Figure 7.33(a) indicates the number of people living in each region (yellow: high population; brown: low population) and is a link from the traditional maps 7.33(b),7.33(c) to the corresponding cartogram 7.33(d)–7.33(i).

120

8 Conclusions The work presented in this dissertation introduces two completely new methods for generating value-byarea cartograms called CartoDraw and RecMap. Both algorithms cover a wide range of user requirements (area, topology, shape, empty space, and computational time) which can be directly maintained by the user. The first algorithm strictly retains the topology and shape of the map regions while minimizing the area error. The second algorithm approximates the map regions by rectangles focussing on an exact area approach. Both algorithms are fast enough to be used in interactive systems which is important to be used as information visualization technique. The thesis is attended by many extensions such as texture mapping cartograms, pseudo value-by-area cartograms (HistoScale), and pixel based cartograms (Visual Points) as well as useful combinations with other visualization techniques such as the HistoMap approach. All algorithms have been implemented and compared (visual, effectiveness, and efficiency) to state-ofthe-art existing methods. The results of our novel algorithms are comparable if not better than existing ones. The algorithm were bundled into one application called CartoDraw-System. Furthermore, the CartoDraw algorithm has been designed to generate cartograms for maps with a high number of polygons in an adequate computational time. Both algorithms, RecMap and CartoDraw, are scalable enough to make cartograms for the 3000 counties of the United States map. The application of our techniques is shown by many cartograms using different input maps and data. We used real world maps as well as self-generated data. The work is based on a theoretical analysis which shows that the cartogram problem is unsolvable in the general case. To achieve feasible solutions we have to relax some constraints. This work opens a new area in the flexibility of cartogram generation. Never before users have had such a wide flexibility of user constraints. Also, this thesis provides some new research directions. • Value-by-area cartograms are just one of many cartogram types. We can formally define many cartogram variants. For some cartogram types there exist polynomial time algorithms (e.g choropleth maps). For other types of cartograms there exist heuristics because no polynomial time algorithm are known. A complexity classification of cartogram types does not exist and neither does the N P C proof. To the best of our knowledge for some types there exist just hand-made visualizations (e.g. isochrones). • Behind the theoretical goals there are some practical issues. A further promising application of the scanline-technique used in CartoDraw are the generation of route cartograms as it can be seen in figure 8.1. Existing work does not take the relative positions and angle between the edges into account. For the problem of route cartograms similar constraints can be defined as for the cartogram drawing problem presented in this thesis. • Using CartoDraw and HistoScale we can compute world cartograms. As mentioned earlier HistScale computes only a pseudo-cartogram transformation. CartoDraw can minimize the area error of the map regions. A possible problem with CartoDraw is that there exist several non-connected map components of the world map. During the scanline transformation the particular map components move over the “map space”. Therefore, it is not guaranteed that the transformation is

121

8 Conclusions free of overlapping. A pre-processing algorithm for generating an acceptable starting position is needed. This can be done similar to RecMap by formulating an optimization problem that computes an overlap-free multi component cartogram (MCC) where the area of the component regions are proportional to the cumulated statistical map regions of each component. The MCC algorithm minimize the relative position error as well as the aspect ratios of the map components. • An algorithm is just approved if it is a steady component of widely-distributed and often-used software. The complete integration of the described methods into existing GIS software is of interest. Difficulties are the existence of several different geographic formats. • One possible future application of CartoDraw could be an application as “route guide” similar to the famous LineDrive [1]. Using CartoDraw, the map transformation can be done by the scanlines. The scanlines are guided by the route. The advantage to the methode of Agrawala and Stolte [1] is that the maps topology and relative position are preserved and the “driver” has additional landmarks for orientation. However, to realize this project we need complex new cost functions to evaluate the results. Figure 8.1 gives an impression of this idea.

Figure 8.1: Maps and cartograms have always been used by humans to encode valuable and important information. These visualizations were often drawn on light materials to have a handy device to carry. The picture shows a possible future application of CartoDraw as “route guide” of NYC on a PDA.

122

A Measuring the Shape Error by Fourier Transformation A shape similarity function compares the new shape of a polygon with its original one. Beside measuring the shape error by summing up angle differences of the input and output mesh (see chapter 4), we can also use a more general Fourier transformation based approach. The advantage here is we do not need a graph isomorphism between the two meshes. Defining a useful shape similarity function is in itself a difficult problem, since the similarity measure should be translation-invariant, scale-invariant, and at least partially rotation-invariant. From CAD research it is known that the Euclidean distance in Fourier space is useful for measuring shape similarity [67, 8]. To gain invariance against translation, rotation, and scaling, we use the Fourier transformation of the differential geometric curvature of the polygons, instead of the polygons themselves, and normalize the arc length of the polygons to 2π. Using the curvature guarantees translation- and rotation-invariance, and normalizing the arc length guarantees scale-invariance. In the following, we assume that the polygons are transformed into a normalized parameterized polygon contour function p : [0, 2π] → R2 . Then, we can define the curvature C of the polygons as C : (R → R2 ) −→ (R → R2 ).

(A.1)

The Fourier transformation F is a transformation F : (R → R2 ) −→ Rd ,

(A.2)

determining the Fourier coefficients for a given curvature function in d-dimensional Fourier space. The shape similarity of two polygons p and p can then be defined as d˜S (S(p), S(p)) = dEuclid (F(C(p)), F(C(p))).

(A.3)

In the following, we describe the curvature transformation C and the Fourier transformation F in more detail. Determining the Curvature of a Polygon

In general, the curvature of a polygon defined as a parameterized function is mathematically undefined because the second derivative is not continuous. We can avoid this problem by approximating the polygon by replacing each vertex with very small circular arcs as shown in Figure A.1. This yields a new geometric object of which the first derivative is continuous. The curvature of this structure is defined in sections; concatenating these sections we obtain the curvature as a square wave function. To describe the curvature transformation in more detail, let us focus on two subsequent edges ei−1 and ei . These edges coincide in vertex vi with an angle αi . For the polygon containing vi , we may easily compute the curvature function ci (t), describing the differential geometric curvature of the approximated polygon because the curvature of a circle segment with radius r is a constant function 1r and the curvature of a straight line is a constant zero function. We may calculate the arc length of the circle segment substituting vertex vi by bi = |αi | · r. For ci (t), we therefore obtain ( 1 if (tvi − bi /2 > t > tvi + bi /2) ci (t) = r (A.4) 0 otherwise

123

A Measuring the Shape Error by Fourier Transformation

(a) Original polygon

(b) Approximated polygon

(c) Curvature

Figure A.1: Approximation of a polygon

(a) Two polygons

(b) Curvature of the two polygons

Figure A.2: Curvature transformation |p|−1

The curvature of an arbitrary polygon p is c(t) = ∑k=0 ck (t). Figure A.1c shows the graph of the curvature function c(t) for the approximation of the polygon section in figure A.1a. Figure A.2 shows the curvature functions for two polygons which are identical under translation-invariance, rotation-invariance, and scale-invariance. The approximation of the original polygon, and in particular the choice of r, influences the curvature function. If we reduce the radius r of the circle segment, 1r will be increased while bi will be decreased. This causes c(t) to become more narrow and the amplitude of square waves to become higher, while the approximation of the polygon converges against the polygon itself. On the other hand, c(t) becomes π difficult to handle numerically. An adequate value for r which has proven useful for our application is 50 for polygons with a normalized length of 2π. As our experiments show, the similarity function is quite robust against a suboptimal choice of r, as long as r is smaller than half of the length of the shortest edge since otherwise individual square wave functions may overlap. Fourier Transformation

The next step is computing the Fourier transformation F of the curvature. The principle of the Fourier transformation is to approximate a function by summing up sine and cosine functions with certain parameters. The quality of the approximation is improved by increasing the degree d of the Fourier approximation, which means to successively sum up cos(x), sin(x), cos(2x), sin(2x), ..., cos(x), sin(x). More formally, the Fourier approximation of a function f with a period of 2π is defined as

F(x) =

a0 n ∑ (ak cos(kx) + bk sin(kx)) 2 k=1

(A.5)

where the coefficients ak and bk are defined as 1 2π = f (x) cos(kx)dx and π 0 Z 1 2π = f (x) sin(kx)dx π 0 Z

ak bk R

(A.6) (A.7)

In general, integrals of the form f (x) sin(x)dx are difficult to solve analytically. For the special case where f (x) is a square wave function, however, the integral can be easily determined. Let us assume that

124

f (x) has a value of 1r in the interval [u, v] and is zero elsewhere. Since the value of the integral is zero outside of [u, v], we just have to integrate from u to v. Therefore, we are able to calculate ak and bk as: 1 (sin(kv) − sin(ku)) and πkr 1 = (cos(kv) − cos(ku)) πkr

ak =

(A.8)

bk

(A.9)

To determine the Fourier coefficients of the curvature function c(t) of the whole polygon p, we only have to sum up the above formula ci (t) for all vertices vi of the polygon. We obtain the following formulas for the Fourier coefficients:

ak bk

1 |p|−1 αi |αi r| |αi r| = − sin k · ti − ∑ |αi| sin k · ti + 2 πkr i=0 2 1 |p|−1 αi |αi r| |αi r| = − − cos k · ti − ∑ |αi| cos k · ti + 2 πkr i=0 2

(A.10) (A.11)

The calculation of ak and bk can be done in O(|p|) time, and the calculation of all coefficients can be done in O(|p| · d), where d is the degree of the Fourier sum. Note that we are able to compute the coefficients of the Fourier sum analytically, and therefore do not run into numerical problems such as finding the right sample rate. Experimental results show that the Fourier transformation provides a good approximation of the polygons and their curvature function even for rather small d. For a detailed discussion of Fourier theory see [133].

125

A Measuring the Shape Error by Fourier Transformation

126

B Color Maps Employed Color is a powerful tool for decoding information in visualization. Instead of using color as assemble for categories, we use it regarding to our cartograms as perception of the order of quantities to the statistical values linked to the map regions. The quantities in our cartograms are often population data, election results, or area error. For that issue we need a sequence of contiguous color values, called color map, which can be obtained by going in a smooth curve through a color model. A good color map has a continuously monotonic increasing or decreasing of the brightness. As a second criteria a perfect color map should use a wide range of brightness. Since all computer graphic displays use the additive RGB (R: Red, G:Green, B:Blue) color model, all color values have to be convert into the RGB color model (see [44]). In the following we will shortly explain the idea behind some color maps used in this thesis.

20

40

60

80

100

Color Index

(a) Trellis-RGB

20

40

60

80

Color Index

(b) Bipolar-RGB

100

20

40

60

80

100

250 50 0

Color Index

(c) Uni-polar-HSV

0

50 0 0

150

Color Value

150

Color Value

200

250

RGB curve

200

250 200 150 50 0 0

Color map

1; #B4312E; (180, 49, 46)

RGB curve

100

Color Value

200 150 0

50

100

Color Value

200 150 100

Color Value

50 0 0

Color map

1; #C6CF32; (198, 207, 50)

RGB curve

250

RGB curve

250

RGB curve

Color map

1; #BECC3D; (190, 204, 61)

100

Color map

1; #FF0000; (255, 0, 0)

100

Color map

1; #FF80FF; (255, 128, 255)

20

40

60

80

100

Color Index

(d) Uni-polar-HSI

0

20

40

60

80

100

Color Index

(e) Uni-bipolar-HSI

Figure B.1: The plot displays the color maps and their corresponding color values used in this thesis. The color maps obtained from various color models have been converted into RGB color values. The black curves and the grey color maps indicate the brightness on a non-color device.

Trellis – color map This bipolar color map (see figure B.1(a)) has been introduced by [22]. This color map has been created for color ink printers. Since color ink printers use cyan, magenta and yellow as basic colors, all other colors can be obtained by mixing the 3 basic color. It becomes clear, if we use the cyan – magenta color map, we do not have to mix the colors and we will get a very clear result. This color map is the standard color map in the S-Plus and R software package (see [29, 105]).

We used that bipolar color map to indicate the area error of the map regions. The red color indicates if the area error is negative and the area of that region has to be smaller. The opposite is true for the the blue color. The area error can be obtained by the function

Bipolar – color map

fAreaError : R × R → [−1, 1] ∈ R.

(B.1)

127

B Color Maps Employed A single color value can be determined by γAreaError : R × R → ([0, 255], [0, 255], [0, 255]) ∈ (N × N × N)

(B.2)

cvalue = (1 − fAreaError ) · 255 ( (cvalue , cvalue , 255) fAreaError > 0 γAreaError = (255, cvalue , cvalue ) otherwise

(B.3)

as follows:

(B.4)

Figure B.1(b) shows the whole color map, where we used a sequence of reals in the interval [−1, 1] instead of fcolor . The HSI (H: Hue, S: Saturation, I: Intensity) color model has been introduced by [68] and is a variation of the HSV (H: Hue, S: Saturation, V: Value) color model where a circular cone is used instead of a hex cone. The advantage of HSI model is that a monotonically increasing/decreasing color map can be constructed (see the black curves on figure B.1(d) of the HSI color maps). In contrast to a color map using the HSV model, the brightness ranges continuously from light to dark as it can be seen in figure B.1(d) This ,,HSV”-phenomena can be observed in figure B.1(c). It can be seen that the HSV color map has at least 3 local minima and maxima in contrast to the HSI color map which is monotonically decreasing. For both color maps we used similar start and end settings for hue, saturation, and intensity. To map the HSI and HSV color values to RGB color values we have used the HSI to RGB converter operator described in [68, page 99]. Furthermore, using the HSI/HSV model three perceptional attributes can be expressed. In practice, only two are useful. Uni-polar – HSI color maps

Uni-bipolar color maps

Both uni-polar and bipolar color maps can be combined. A possible result can

be seen in figure B.1(e). For generating useful color maps, we have developed a color map construction tool, where the user can walk through different color models with several start and end configurations. Using this tool, the user can chose between RGB, HSV, and the HSI color models. The tool was implemented in Java and it can be run as Java-applet [2] and can be used from all Java supporting web-browsers.

128

C Scripts and Tools for Generating Cartograms Beside the graphical user interface GUI of the CartoDraw-System on page 85 we have developed several scripts and command line programs for generating cartograms as well as input data. The drawback of the GUI version is that it is difficult to run the algorithm as remote job. This is necessary whenever we want to compute cartograms at the same time e.g. if we have to compute cartogram sequences or if we have massive input mesh where the number of polygons is larger than 500. Additionally, it is useful for benchmarks. In the following appendix we describe some of the tools. First of all we need data to feed the algorithms. Often data are copy righted, difficult to achieve, or the data often contain digitizing errors. These problems are neither motivating nor gratifyingly. Based on the idea of our beginning checker board examples in chapter 3 we wrote a script solving this difficulty. createChecker.pl is a small perl script, that will create arbitrary sized checker board meshes in the LEDA graph-file format as well as a parameter vector file. This script is especially useful for our RecMap algorithm introduced in 5. Generating a Checker Board Mesh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

#!/usr/bin/perl -w use strict; sub createCheckerBoard{ my $ncount=1; my $ecount=1; my $n = shift (@_); if (!defined ($n)) { $n = 2;} open(LOG, ">/tmp/checker.log"); my $nn = ($n-1) * ($n-1); print LOG "$nn\n"; my %map; open(FILE, ">/tmp/checker.gw"); print FILE "LEDA.GRAPH\npoint\nint\n"; # compute nodes print FILE $n*$n; print FILE "\n"; for (my $i = 0 ; $i < $n; $i++) { for (my $j = 0 ; $j < $n; $j++) { print FILE "|{($i,$j)}|\n"; $map{$i."|".$j} = $ncount++; } } # compute edges print FILE 4*($n-1)*($n-1);

129

C Scripts and Tools for Generating Cartograms 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

print FILE "\n"; for (my $i = 0 ; $i < $n-1; $i++) { for (my $j = 0 ; $j < $n-1; $j++) { print FILE $map{$i."|".$j}; print FILE " "; print FILE $map{($i+1)."|".$j}; print FILE " "; print FILE "|{$ecount}|\n"; print FILE $map{($i+1)."|".$j}; print FILE " "; print FILE $map{($i+1)."|".($j+1)}; print FILE " "; print FILE "|{$ecount}|\n"; print FILE $map{($i+1)."|".($j+1)}; print FILE " "; print FILE $map{$i."|".($j+1)}; print FILE " "; print FILE "|{$ecount}|\n"; print FILE $map{$i."|".($j+1)}; print FILE " "; print FILE $map{$i."|".$j}; print FILE " "; print FILE "|{$ecount}|\n"; $ecount++; } } close (FILE); open(FILE, ">/tmp/checker.dat"); for (my $k = 1; $k < $ecount; $k++) { if ($k%2 == 0) { print FILE "$k 4\n" } else { print FILE "$k 1\n" } } close (FILE); } #main if ($#ARGV == 0) { my $n = $ARGV[0]; print "creating a $n x $n checkerboard in /tmp/ ... \n"; createCheckerBoard($n+1); } else { print "error\n"; }

If, for example, we need a 2 × 2 checker board as it can be seen in figure 3.2(a) on page 20, we could run the perl script as follows: % ./createChecker.pl 2 creating a 2 x 2 checkerboard in /tmp/ ... The contents of the files is this:

130

% cat /tmp/checker.gw LEDA.GRAPH point int 9 |{(0,0)}| |{(0,1)}| |{(0,2)}| |{(1,0)}| |{(1,1)}| |{(1,2)}| |{(2,0)}| |{(2,1)}| |{(2,2)}| 16 1 4 |{1}| 4 5 |{1}| 5 2 |{1}| 2 1 |{1}| 2 5 |{2}| 5 6 |{2}| 6 3 |{2}| 3 2 |{2}| 4 7 |{3}| 7 8 |{3}| 8 5 |{3}| 5 4 |{3}| 5 8 |{4}| 8 9 |{4}| 9 6 |{4}| 6 5 |{4}| % cat /tmp/checker.dat 1 1 2 4 3 1 4 4 createChecker.pl generates two files in /tmp. checker.gw contains the LEDA graph-file consisting of nine nodes and sixteen edges. Each edge is assigned with the polygon id its belongs to. The other file, named checker.dat, stores the parameter value for each polygon in checker.gw. So the idea of the parameter setting is that every second polygon has too be half sized and the other ones have to be doubled of the area of the original polygons. For generating a rectangular cartogram as described in chapter 5 we can now use the following command. Computing a Rectangular Cartogram

% recmap usage: ./recmap

131

C Scripts and Tools for Generating Cartograms

Our partners will collect data and use cookies for ad personalization and measurement. Learn how we and our ad partner Google, collect and use data. Agree & close