Difference between revisions of "User:Nzsteak/graticuletest"

From Geohashing
imported>Nzsteak
(test graticule ordering)
 
imported>Nzsteak
Line 1: Line 1:
 +
<pre>
 +
<nowiki>
 +
#!/usr/bin/python
 +
 +
import urllib2
 +
import re
 +
from xml.dom import minidom
 +
 +
# set up some different sort routines
 +
def sort_ns_we((name1,lat1,long1,city1),(name2,lat2,long2,city2)):
 +
    if ((lat2 - lat1) == 0):
 +
        return (long1 - long2)
 +
    else:
 +
        return (lat2 - lat1)
 +
 +
# puts a category and all its graticules in sorted order into the output buffer
 +
def output_category(name, graticules):
 +
    output.append("\n" + name + "\n")
 +
    graticules.sort(sort_ns_we)
 +
    for (graticuleName, lat, long, cityName) in graticules:
 +
        output.append("[[" +
 +
                      graticuleName + "|" +
 +
                      str(lat) + ", " + str(long) + " (" +
 +
                      cityName +
 +
                      ")]]\n")
 +
 +
# MAINLINE
 +
 +
curCategory = ""
 +
curGraticules = []
 +
output = []
 +
 +
# category regex matches the === [[:Category:name|name]] === lines
 +
category  = re.compile("===.*\[\[:Category:(.*)\|(.*)\]\].*===")
 +
# graticule regex maches the [[graticuleName|lat, long (cityName)]] lines
 +
graticule = re.compile("\[\[(.*)\|([- 0-9]*),([- 0-9]*)\((.*)\)\]\]")
 +
 +
# get the current data from the Active Graticules page
 +
text = urllib2.urlopen("http://wiki.xkcd.com/wgh/api.php?action=query&titles=Active_Graticules&prop=revisions&rvprop=content&format=xml")
 +
xml = minidom.parse(text)
 +
# hack, hack, hack, nasty hack
 +
text = unicode(xml.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.firstChild.data).split("\n")
 +
 +
# go through all the current text
 +
for line in text:
 +
    if curCategory == "":
 +
        # we haven't seen a category yet
 +
        match = category.match(line)
 +
        if match:
 +
            # this is a category line so set the current category
 +
            curCategory = line
 +
        else:
 +
          # this is text before any categories that we want to keep
 +
            output.append(line)
 +
    else:
 +
        # we are in the middle of a category
 +
        match = category.match(line)
 +
        if match and (line != curCategory):
 +
            # we're at the next category, so we output the last one and reset
 +
            output_category(curCategory, curGraticules)
 +
            curCategory = line
 +
            curGraticules = []
 +
 +
        match = graticule.match(line)
 +
        if match:
 +
            # we've got a graticule line so record the data
 +
            curGraticules.append(
 +
                (match.group(1),
 +
                int(match.group(2)),
 +
                int(match.group(3)),
 +
                match.group(4))
 +
                )
 +
 +
# we're at the end of the data, we may need to output the last one
 +
if curCategory != "":
 +
    output_category(curCategory, curGraticules)
 +
 +
# print out all the output buffer
 +
for line in output:
 +
    print line.encode('utf-8')
 +
</nowiki>
 +
</pre>
 
This page contains a link to every [[Graticule]], contained within geographical categories.
 
This page contains a link to every [[Graticule]], contained within geographical categories.
 
Perhaps you would like to look at the [[:Category:Active_Graticules|Active]] or [[:Category:Inactive_Graticules|Inactive]] Graticules instead?
 
Perhaps you would like to look at the [[:Category:Active_Graticules|Active]] or [[:Category:Inactive_Graticules|Inactive]] Graticules instead?

Revision as of 13:31, 12 June 2008


#!/usr/bin/python

import urllib2
import re
from xml.dom import minidom 

# set up some different sort routines 
def sort_ns_we((name1,lat1,long1,city1),(name2,lat2,long2,city2)):
    if ((lat2 - lat1) == 0):
        return (long1 - long2)
    else:
        return (lat2 - lat1)

# puts a category and all its graticules in sorted order into the output buffer
def output_category(name, graticules):
    output.append("\n" + name + "\n")
    graticules.sort(sort_ns_we)
    for (graticuleName, lat, long, cityName) in graticules:
        output.append("[[" + 
                      graticuleName + "|" + 
                      str(lat) + ", " + str(long) + " (" + 
                      cityName + 
                      ")]]\n")

# MAINLINE

curCategory = ""
curGraticules = []
output = []

# category regex matches the === [[:Category:name|name]] === lines
category  = re.compile("===.*\[\[:Category:(.*)\|(.*)\]\].*===")
# graticule regex maches the [[graticuleName|lat, long (cityName)]] lines
graticule = re.compile("\[\[(.*)\|([- 0-9]*),([- 0-9]*)\((.*)\)\]\]")

# get the current data from the Active Graticules page
text = urllib2.urlopen("http://wiki.xkcd.com/wgh/api.php?action=query&titles=Active_Graticules&prop=revisions&rvprop=content&format=xml")
xml = minidom.parse(text)
# hack, hack, hack, nasty hack 
text = unicode(xml.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.firstChild.data).split("\n")

# go through all the current text
for line in text:
    if curCategory == "":
        # we haven't seen a category yet 
        match = category.match(line)
        if match:
            # this is a category line so set the current category
            curCategory = line
        else:
           # this is text before any categories that we want to keep
            output.append(line)
    else:
        # we are in the middle of a category
        match = category.match(line)
        if match and (line != curCategory):
            # we're at the next category, so we output the last one and reset
            output_category(curCategory, curGraticules)
            curCategory = line
            curGraticules = []

        match = graticule.match(line)
        if match:
            # we've got a graticule line so record the data
            curGraticules.append(
                (match.group(1), 
                 int(match.group(2)), 
                 int(match.group(3)),
                 match.group(4))
                )

# we're at the end of the data, we may need to output the last one
if curCategory != "":
    output_category(curCategory, curGraticules)

# print out all the output buffer
for line in output:
    print line.encode('utf-8')

This page contains a link to every Graticule, contained within geographical categories. Perhaps you would like to look at the Active or Inactive Graticules instead?

Guidelines

NOTE: These guidelines MUST be followed; this page is read by automated scripts.

  • Region/Graticule pages named "City Name, Country" where "City Name" is the most major (by population) urban center contained within it.
    • Use the code [[page name|lat, lon (city name)]] to accomplish this.
  • Interactive map is available for Google Earth or on Google Maps. This map also tried to judge how many users are active in each graticule.
  • Note that for graticules to be listed in on http://xkcd.com/geohashing and in the interactive map, they must be listed here, in the proper format above.


Graticules

Africa

-22, 17 (Windhoek, Namibia)

-26, 27 (Johannesburg, South Africa)

-33, 18 (Cape Town, South Africa)

-34, 18 (Cape Town, South Africa)


Middle East

32, 34 (Tel-Aviv (Goosh Dan), Israel)

32, 35 (Haifa East, Israel)

31, 35 (Jerusalem, Israel)


Asia

39, 116 (Beijing, China)

35, 139 (Tokyo, Japan)

26, 127 (Okinawa, Japan)

22, 108 (Nanning, China)

17, 78 (Hyderabad, India)

1, 103 (Singapore, Singapore)


Australia

-12, 130 (Darwin, Australia)

-19, 146 (Townsville, Australia)

-27, 153 (Brisbane, Australia)

-31, 115 (Perth, Australia)

-32, 148 (Dubbo, Australia)

-33, 151 (Sydney, Australia)

-34, 138 (Adelaide, Australia)

-34, 150 (Wollongong, Australia)

-35, 138 (Adelaide, Australia)

-35, 149 (Canberra, Australia)

-37, 145 (Melbourne, Australia)

-42, 147 (Hobart, Australia)


New Zealand

-36, 174 (Auckland, New Zealand)

-37, 175 (Hamilton, New Zealand)

-41, 174 (Wellington, New Zealand)

-41, 175 (Upper Hutt, New Zealand)

-43, 172 (Christchurch, New Zealand)

-45, 170 (Dunedin, New Zealand)


Europe

71, 23 (Tufjord, Norway)

71, 24 (Havøysund North, Norway)

71, 25 (Honningsvåg North, Norway)

71, 26 (Kjelvik, Norway)

71, 27 (Mehamn, Norway)

71, 28 (Gamvik, Norway)

70, 18 (Rebbenes, Norway)

70, 19 (Karlsøy, Norway)

70, 20 (Skjervøy, Norway)

70, 21 (Bergsfjord, Norway)

70, 22 (Øksfjord, Norway)

70, 23 (Hammerfest, Norway)

70, 26 (Nodvågen, Norway)

70, 27 (Kjøllefjord)

70, 28 (Tana Bru, Norway)

70, 29 (Vadsø, Norway)

70, 30 (Kiberg West, Norway)

70, 31 (Vardø, Norway)

69, 15 (Bleik, Norway)

69, 16 (Andenes, Norway)

69, 17 (Finnsnes, Norway)

69, 18 (Tromsø, Norway)

69, 23 (Alta, Norway)

69, 28 (Sevettijärvi, Finland)

69, 29 (Bjørnevatn, Norway)

69, 30 (Zapolyarny, Russia)

68, 12 (Horseid, Norway)

68, 13 (Leknes, Norway)

68, 14 (Svolvær, Norway)

68, 16 (Harstad, Norway)

68, 17 (Narvik, Norway)

67, 11 (Skomvær, Norway)

67, 12 (Sørland, Norway)

67, 14 (Bodø, Norway)

67, 15 (Fauske, Norway)

66, 11 (Djupna, Norway)

66, 12 (Sandnessjøen, Norway)

66, 14 (Mo i Rana, Norway)

66, 23 (Pello - Ylitornio, Finland/Sweden)

65, 13 (Mosjøen, Norway)

64, -21 (Reykjavik, Iceland)

64, 11 (Steinkjer, Norway)

63, 7 (Kristiansund, Norway)

63, 9 (Orkanger, Norway)

63, 11 (Levanger, Norway)

63, 20 (Umeå, Sweden)

62, 4 (Kråkenes, Norway)

62, 5 (Ulsteinvik, Norway)

62, 6 (Ålesund, Norway)

62, 7 (Molde, Norway)

61, 4 (Bremanger, Norway)

61, 5 (Førde, Norway)

61, 6 (Høyanger, Norway)

61, 10 (Lillehammer, Norway)

60, 5 (Bergen, Norway)

60, 6 (Voss, Norway)

60, 10 (Gjøvik, Norway)

60, 11 (Hamar, Norway)

60, 12 (Kongsvinger East, Norway)

60, 22 (Turku, Finland)

60, 24 (Helsinki, Finland)

60, 25 (Vantaa, Finland)

59, 5 (Haugesund, Norway)

59, 6 (Jørpeland, Norway)

59, 9 (Skien, Norway)

59, 10 (Oslo, Norway)

59, 11 (Sarpsborg, Norway)

59, 15 (Örebro, Sweden)

59, 18 (Stockholm, Sweden)

59, 30 (St.Petersburg, Russia)

58, 5 (Stavanger, Norway)

58, 6 (Egersund East, Norway)

58, 7 (Kristiansand West, Norway)

58, 8 (Kristiansand East, Norway)

58, 9 (Kragerø, Norway)

58, 10 (Stavern, Norway)

58, 13 (Skövde, Sweden)

58, 14 (Tranås, Sweden)

58, 15 (Linköping, Sweden)

57, -2 (Aberdeen, United Kingdom)

57, 15 (Vetlanda, Sweden)

55, -4 (Glasgow, United Kingdom)

55, -3 (Edinburgh, United Kingdom)

55, 12 (Copenhagen, Denmark)

55, 13 (Malmö, Sweden)

55, 37 (Moscow, Russia)

54, -2 (Carlisle, United Kingdom)

54, -1 (Middlesbrough, United Kingdom)

54, 0 (Scarborough, United Kingdom)

54, 18 (Gdansk, Poland)

53, -6 (Dublin, Ireland)

53, -2 (Manchester, United Kingdom)

53, -1 (Sheffield / Leeds / Bradford, United Kingdom)

53, 0 (Hull / Lincoln, United Kingdom)

53, 6 (Groningen, the Netherlands)

53, 8 (Bremen, Germany)

52, -2 (Shrewsbury, United Kingdom)

52, -1 (Birmingham East / Leicester / Coventry, United Kingdom)

52, 0 (Northampton, United Kingdom)

52, 0 (Cambridge, United Kingdom)

52, 1 (Norwich, United Kingdom)

52, 5 (Midden Nederland)

52, 13 (Berlin, Germany)

51, -8 (Cork, Ireland)

51, -3 (Cardiff, United Kingdom)

51, -2 (Bristol, United Kingdom)

51, -1 (Swindon, United Kingdom)

51, 0 (London West, United Kingdom)

51, 0 (London East, United Kingdom)

51, 1 (Canterbury, United Kingdom)

51, 3 (Ghent, Belgium)

51, 4 (Rotterdam / Antwerpen, Nederland / Belgium)

51, 5 (Eindhoven, Nederland - plus wat België)

51, 12 (Leipzig, Germany)

51, 13 (Dresden, Germany)

50, -5 (West Cornwall, United Kingdom)

50, -4 (Plymouth / East Cornwall, United Kingdom)

50, -3 (Exeter, United Kingdom)

50, -2 (Yeovil / Weymouth / Dorchester / Ilminster / Crewkerne)

50, -1 (Southampton, United Kingdom)

50, 3 (Lille, France)

50, 4 (Brussels, Belgium)

50, 6 (Cologne/Aachen/Eifel, Germany, plus Eastern Belgium, plus some tiny parts of the Netherlands and Luxembourg)

50, 16 (Walbrzych, Poland)

50, 18 (Gliwice, Poland)

50, 30 (Kiev, Ukraine)

49, -2 (Channel Islands)

49, 2 (Amiens/Paris North, France)

49, 6 (Luxembourg, Luxembourg / Metz, France / Trier and West of Saarbrücken, Germany)

49, 7 (East of Saarbrücken and Kaiserslautern, Germany)

49, 12 (Regensburg, Germany)

48, -4 (Brest, France)

48, 2 (Paris, France)

48, 7 (Strasbourg, France)

48, 9 (Stuttgart, Germany)

48, 16 (Vienna, Austria)

47, 0 (Tours, France)

47, 5 (Dijon, France)

47, 6 (Besançon, France)

47, 7 (Basel, Switzerland)

47, 8 (Zürich, Switzerland)

47, 15 (Graz, Austria)

47, 19 (Budapest, Hungary)

46, 5 (Bourg-en-Bresse, France)

46, 6 (Lac Léman region, includes Geneva and Lausanne, Switzerland and parts of Haute-Savoie, France)

46, 7 (Bern, Switzerland)

46, 8 (St. Gotthard Pass, Switzerland)

46, 13 (Udine, Italy)

46, 14 (Ljubljana, Slovenia)

46, 15 (Maribor, Slovenia)

46, 16 (Zalaegerszeg, Hungary)

46, 50 (Odesa, Ukraine)

45, 13 (Trieste, Italy)

45, 14 (Rijeka, Croatia)

45, 15 (Zagreb west, Croatia)

44, 8 (Genoa, Italy)

44, 26 (Bucharest, Romania)

43, -2 (Bilbao, Spain)

43, 18 (Sarajevo, Bosna i Hercegovina)

43, 21 (Niš, Serbia)

43, 23 (Vratsa, Bulgaria)

43, 24 (Pleven, Bulgaria)

43, 25 (Veliko Tarnovo and most of Rousse, Bulgaria)

43, 26 (Shumen, Bulgaria)

43, 27 (Varna, Bulgaria)

42, 22 (Kyustendil, Bulgaria)

42, 23 (Sofia, Bulgaria)

42, 24 (Plovdiv, Bulgaria)

42, 25 (Stara Zagora, Bulgaria)

42, 26 (Sliven, Bulgaria)

42, 27 (Burgas, Bulgaria)

41, 2 (Barcelona, Catalonia)

41, 21 (Skopje South and Bitola, Macedonia)

41, 22 (Strumica, Macedonia)

41, 23 (Pirin region (Sandanski, Petrich, Gotse Delchev, part of Blagoevgrad), Bulgaria; Serres, Greece)

41, 24 (Western Rhodope mountains)

41, 25 (Haskovo, Bulgaria)

41, 26 (Edrine, Turkey)

41, 27 (Lüleburgaz, Turkey)

41, 28 (Istanbul North-West, Turkey)

40, -3 (Madrid, Spain)

40, 22 (Thessaloniki, Greece)

40, 23 (Chalcidicean peninsula, Greece)

40, 24 (Kavala, Greece)

37, -3 (Granada, Spain)

37, 0 (Mar Menor, Spain)


North America

64, -147 (Fairbanks, Alaska)

61, -149 (Anchorage, Alaska)

58, -134 (Juneau, Alaska)

56, -111 (Fort McMurray, Alberta)

55, -118 (Grande Prairie, Alberta)

54, -128 (Terrace and District, British Columbia)

53, -122 (Prince George, British Columbia)

53, -113 (Edmonton, Alberta)

53, -105 (Prince Albert, Saskatchewan)

52, -126 (Bella Coola, British Columbia)

52, -113 (Red Deer, Alberta)

52, -106 (Saskatoon, Saskatchewan)

51, -121 (100 Mile House, British Columbia)

51, -120 (Barrière, British Columbia)

51, -114 (Calgary, Alberta)

50, -125 (Campbell River North, British Columbia)

50, -122 (Whistler, British Columbia)

50, -121 (Cache Creek, British Columbia)

50, -120 (Kamloops, British Columbia)

50, -119 (Vernon, British Columbia)

50, -105 (Moose Jaw, Saskatchewan)

50, -104 (Regina, Saskatchewan)

49, -125 (Courtenay West, British Columbia)

49, -124 (Port Alberni, British Columbia)

49, -123 (Vancouver, British Columbia)

49, -122 (Surrey, British Columbia)

49, -121 (Chilliwack, British Columbia)

49, -120 (Princeton, British Columbia)

49, -119 (Kelowna, British Columbia)

49, -112 (Lethbridge, Alberta)

49, -110 (Medicine Hat, Alberta)

49, -99 (Brandon, Manitoba)

49, -97 (Winnipeg, Manitoba)

48, -124 (Port Renfrew, British Columbia)

48, -123 (Victoria, British Columbia)

48, -122 (Bellingham, Washington)

48, -121 (North Cascades National Park, Washington)

48, -120 (Lake Chelan, Washington)

48, -119 (Omak, Washington)

48, -118 (Kettle Falls, Washington)

48, -117 (Colville, Washington)

48, -96 (Thief River Falls, Minnesota)

48, -95 (Warroad, Minnesota)

48, -94 (Baudette, Minnesota)

48, -93 (International Falls, Minnesota)

48, -92 (Voyageurs National Park (east), Minnesota)

48, -91 (BWCA, Minnesota / Quetico PP, Ontario)

48, -89 (Thunder Bay, Ontario)

48, -71 (Saguenay, Québec)

48, -68 (Rimouski, Québec)

47, -124 (Forks, Washington)

47, -123 (Olympic National Park, Washington)

47, -122 (Seattle, Washington)

47, -121 (Snoqualmie, Washington)

47, -120 (Wenatchee, Washington)

47, -119 (Moses Lake, Washington)

47, -118 (Davenport, Washington)

47, -117 (Spokane, Washington)

47, -53 (Bay Roberts, Newfoundland & Labrador)

47, -52 (St. John's, Newfoundland)

46, -124 (Ocean Shores, Washington)

46, -123 (Astoria, Oregon)

46, -122 (Mt. St. Helens, Washington)

46, -121 (Mt. Rainier, Washington)

46, -120 (Yakima, Washington)

46, -119 (Tri Cities, Washington)

46, -118 (Walla Walla, Washington)

46, -117 (Pullman, Washington)

46, -116 (Coeur d'Alene, Idaho)

46, -110 (White Sulfur Springs, Montana)

46, -96 (Fargo, North Dakota)

46, -84 (Sault Ste. Marie, Ontario)

46, -81 (Sudbury, Ontario)

46, -80 (Sudbury, Ontario)

46, -79 (North Bay, Ontario)

46, -73 (Joliette, Québec)

46, -72 (Trois-Rivières, Québec)

46, -71 (Quebec, Québec)

46, -64 (Moncton, New Brunswick)

46, -63 (Charlottetown, Prince Edward Island)

46, -60 (Sydney, Nova Scotia)

45, -123 (McMinnville, Oregon)

45, -122 (Portland, Oregon)

45, -112 (Dillon, Montana)

45, -111 (Bozeman, Montana)

45, -110 (Livingston, Montana)

45, -109 (Columbus, Montana)

45, -108 (Billings, Montana)

45, -94 (St. Cloud, Minnesota)

45, -93 (Minneapolis NW, Minnesota)

45, -92 (St. Paul NE, Minnesota)

45, -75 (Ottawa, Ontario)

45, -74 (Saint-Jérôme West, Québec)

45, -73 (Montreal, Québec)

45, -72 (Drummondville, Québec)

45, -71 (Sherbrooke, Québec)

45, -66 (Saint John, New Brunswick)

45, -65 (Sussex, New Brunswick)

44, -123 (Eugene, Oregon)

44, -113 (Mount Borah, Idaho)

44, -112 (Dubois, Idaho)

44, -111 (West Yellowstone, Montana)

44, -110 (Yellowstone, Montana)

44, -93 (Minneapolis SW, Minnesota)

44, -92 (St. Paul SE, Minnesota)

44, -79 (Barrie, Ontario)

44, -78 (Peterborough, Ontario)

44, -77 (Belleville, Ontario)

44, -76 (Kingston, Ontario)

44, -74 (Potsdam, New York)

44, -73 (Burlington, Vermont)

44, -71 (Gorham, New Hampshire)

44, -70 (Lewiston, Maine)

44, -69 (Augusta, Maine)

44, -63 (Halifax, Nova Scotia)

43, -116 (Boise, Idaho)

43, -113 (Arco, Idaho)

43, -112 (Idaho Falls, Idaho)

43, -111 (Driggs, Idaho)

43, -96 (Sioux Falls, South Dakota)

43, -89 (Madison, Wisconsin)

43, -88 (Fond du Lac, Wisconsin)

43, -87 (Milwaukee, Wisconsin)

43, -82 (Sarnia North, Ontario)

43, -81 (London North, Ontario)

43, -80 (Waterloo, Ontario)

43, -79 (Toronto, Ontario)

43, -78 (Lockport, New York)

43, -77 (Rochester, New York)

43, -76 (Syracuse, New York)

43, -75 (Utica, New York)

43, -73 (Glens Falls, New York)

43, -72 (Claremont, New Hampshire)

43, -71 (Concord, New Hampshire)

43, -70 (Portland, Maine)

43, -69 (Brunswick, Maine)

42, -122 (Medford, Oregon)

42, -113 (Rupert, Idaho)

42, -112 (Pocatello, Idaho)

42, -111 (Preston, Idaho)

42, -97 (Norfolk, Nebraska)

42, -96 (Sioux City, Iowa)

42, -95 (Storm Lake, Iowa)

42, -93 (Ames, Iowa)

42, -92 (Waterloo, Iowa)

42, -91 (Cedar Rapids, Iowa)

42, -90 (Dubuque, Iowa)

42, -89 (Rockford, Illinois)

42, -88 (Schaumburg, Illinois)

42, -87 (Kenosha, Wisconsin)

42, -86 (Holland, Michigan)

42, -85 (Grand Rapids, Michigan)

42, -84 (Lansing, Michigan)

42, -83 (Detroit/Ann Arbor, Michigan)

42, -82 (Detroit Northeast, Michigan)

42, -81 (London South, Ontario)

42, -78 (Buffalo, New York)

42, -77 (Corning, New York)

42, -76 (Ithaca, New York)

42, -75 (Binghamton, New York)

42, -74 (Cooperstown, New York)

42, -73 (Albany, New York)

42, -72 (Springfield, Massachusetts)

42, -71 (Boston, Massachusetts)

42, -70 (Lynn, Massachusetts)

41, -122 (Yreka, California)

41, -112 (Clearfield, Utah)

41, -111 (Ogden, Utah)

41, -109 (Rock Springs, Wyoming)

41, -101 (Ogallala, Nebraska)

41, -100 (North Platte, Nebraska)

41, -96 (Omaha, Nebraska)

41, -95 (Omaha, Nebraska)

41, -93 (Des Moines, Iowa)

41, -92 (Ottumwa, Iowa)

41, -91 (Cedar Rapids, Iowa)

41, -90 (Davenport, Iowa)

41, -88 (Aurora, Illinois)

41, -87 (Chicago, Illinois)

41, -86 (South Bend, Indiana)

41, -85 (Ft. Wayne, Indiana)

41, -84 (Defiance, Ohio)

41, -83 (Toledo, Ohio)

41, -82 (Sandusky, Ohio)

41, -81 (Cleveland, Ohio)

41, -77 (Williamsport, Pennsylvania)

41, -76 (Berwick, Pennsylvania)

41, -75 (Scranton, Pennsylvania)

41, -74 (Newburgh, New York)

41, -73 (Danbury, Connecticut)

41, -72 (Hartford, Connecticut)

41, -71 (Providence, Rhode Island)

41, -70 (Cape Cod, Massachusetts)

41, -69 (Chatham, Massachusetts)

40, -111 (Salt Lake City, Utah)

40, -105 (Denver/Boulder, Colorado)

40, -96 (Lincoln, Nebraska)

40, -92 (Kirksville, Missouri)

40, -91 (Burlington, Iowa)

40, -90 (Galesburg, Illinois)

40, -89 (Peoria, Illinois)

40, -88 (Champaign/Urbana, Illinois)

40, -86 (Lafayette, Indiana)

40, -85 (Muncie, Indiana)

40, -84 (Lima, Ohio)

40, -82 (Mansfield, Ohio)

40, -80 (Pittsburgh, Pennsylvania)

40, -79 (Pittsburgh, Pennsylvania)

40, -77 (State College, Pennsylvania)

40, -76 (Harrisburg, Pennsylvania)

40, -75 (Allentown, Pennsylvania)

40, -74 (Newark, New Jersey)

40, -73 (New York City, New York)

39, -123 (Bodega Bay, California)

39, -121 (Chico, California)

39, -119 (Reno, Nevada)

39, -95 (Lawrence/Topeka, Kansas)

39, -94 (Kansas City, Missouri)

39, -86 (Indianapolis, Indiana)

39, -84 (Cincinnati, Ohio)

39, -83 (Wilmington, Ohio)

39, -81 (Marietta, Ohio)

39, -78 (Cumberland, Maryland)

39, -77 (Frederick, Maryland)

39, -76 (Baltimore, Maryland)

39, -75 (Philadelphia, Pennsylvania)

39, -74 (Atlantic City, New Jersey)

38, -122 (Santa Rosa, California)

38, -121 (Sacramento, California)

38, -119 (South Lake Tahoe, California)

38, -104 (Colorado Springs/Pueblo, Colorado)

38, -95 (Lawrence/Topeka, Kansas)

38, -90 (St. Louis, Missouri)

38, -87 (Vincennes, Indiana)

38, -85 (Louisville, Kentucky)

38, -84 (Frankfort, Kentucky)

38, -78 (Shenandoah Valley, Virginia)

38, -77 (Washington, District of Columbia)

38, -76 (Washington, District of Columbia)

38, -74 (Cape May, New Jersey)

37, -122 (San Francisco, California)

37, -121 (San Jose, California)

37, -120 (Merced, California)

37, -89 (Carbondale, Illinois)

37, -80 (Blacksburg, Virginia)

37, -79 (Blue Ridge, Virginia)

37, -77 (Richmond, Virginia)

37, -76 (Newport News, Virginina)

36, -122 (Santa Cruz, California)

36, -121 (Salinas, California)

36, -119 (Fresno, California)

36, -115 (Las Vegas, Nevada)

36, -95 (Tulsa, Oklahoma)

36, -94 (Fayetteville, Arkansas)

36, -86 (Nashville, Tennessee)

36, -82 (Tri-Cities, Tennessee)

36, -76 (Norfolk, Virginia)

36, -75 (Virginia Beach, Virginia)

35, -120 (San Luis Obispo, California)

35, -106 (Albuquerque/Santa Fe, New Mexico)

35, -105 (Santa Fe, New Mexico)

35, -101 (Amarillo, Texas)

35, -97 (Oklahoma City, Oklahoma)

35, -92 (Conway, Arkansas)

35, -86 (Murfreesboro, Tennessee)

35, -85 (Chattanooga, Tennessee)

35, -83 (Knoxville, Tennessee)

35, -81 (Gastonia, North Carolina)

35, -80 (Charlotte, North Carolina)

35, -78 (Raleigh, North Carolina)

34, -120 (Santa Maria, California)

34, -119 (Santa Barbara, California)

34, -118 (Los Angeles, California)

34, -117 (San Bernardino, California)

34, -112 (Prescott, Arizona)

34, -101 (Plainview, Texas)

34, -100 (Childress, Texas)

34, -99 (Vernon, Texas)

34, -86 (Huntsville, Alabama)

34, -84 (Talking Rock, Georgia)

34, -82 (Greenville, South Carolina)

34, -81 (Rock Hill, South Carolina)

33, -118 (Long Beach, California)

33, -117 (Santa Ana, California)

33, -116 (Borrego_Springs, California)

33, -112 (Phoenix West Valley, Arizona)

33, -111 (Phoenix East Valley, Arizona)

33, -101 (Lubbock, Texas)

33, -98 (Wichita Falls, Texas)

33, -97 (Denton, Texas)

33, -96 (McKinney, Texas)

33, -87 (Tuscaloosa, Alabama)

33, -86 (Birmingham, Alabama)

33, -84 (Atlanta, Georgia)

33, -82 (Evans, Georgia)

32, -117 (San Diego, California)

32, -116 (Tecate, Mexico)

32, -115 (Mexicali, Mexico)

32, -110 (Tucson, Arizona)

32, -99 (Abilene, Texas)

32, -97 (Fort Worth, Texas)

32, -96 (Dallas, Texas)

32, -95 (Tyler, Texas)

32, -94 (Longview, Texas)

32, -87 (Talladega National Forest)

32, -86 (Montgomery, Alabama)

32, -83 (Warner Robins, Georgia)

32, -79 (Charleston, South Carolina)

31, -100 (San Angelo, Texas)

31, -97 (Waco, Texas)

31, -93 (Natchitoches, Louisiana)

31, -85 (Dothan, Alabama)

30, -99 (Kerrville, Texas)

30, -98 (Fredericksburg, Texas)

30, -97 (Austin, Texas)

30, -96 (College Station, Texas)

30, -95 (Conroe, Texas)

30, -94 (Beaumont, Texas)

30, -92 (Lafayette, Louisiana)

30, -91 (Baton Rouge, Louisiana)

30, -90 (New Orleans, Louisiana)

30, -89 (New Orleans, Louisiana)

30, -87 (Pensacola, Florida)

30, -84 (Tallahassee, Florida)

30, -83 (Valdosta, Georgia)

29, -98 (San Antonio, Texas)

29, -97 (San Marcos, Texas)

29, -96 (El Campo, Texas)

29, -95 (Houston, Texas)

29, -94 (Galveston, Texas)

29, -90 (New Orleans, Louisiana)

29, -89 (New Orleans, Louisiana)

29, -82 (Gainesville, Florida)

28, -97 (Victoria, Texas)

28, -96 (Port Lavaca, Texas)

28, -81 (Orlando, Florida)

28, -80 (Melbourne, Florida)

27, -99 (Laredo, Texas)

27, -97 (Corpus Christi, Texas)

27, -80 (Port St Lucie, Florida)

26, -98 (McAllen, Texas)

26, -81 (Fort Myers, Florida)

26, -80 (Palm Beach, Florida)

25, -100 (Monterrey, Mexico)

25, -80 (Miami, Florida)

21, -102 (Aguascalientes, México)


Central America

13, -89 (San Salvador, El Salvador)

9, -79 (Panama, Panama)


South America

-23, -46 (São Paulo, Brazil)

-25, -49 (Curitiba, Brazil)

-33, -71 (Viña del Mar, Chile)

-33, -70 (Santiago, Chile)

-34, -58 (Buenos Aires, Argentina)


Antartica

-62, -60 (St. Kliment Ohridski Base)