Menubefehle ] Kontextmenu ] Howto ] FAQ ]

Verwendung von Koordinatenlisten im ASCII-Format (z.B. GNS oder GNIS)

1. Voraussetzungen
2. GNS: Abdeckung und Einschränkungen
3. Öffnen der Daten als Tabelle
4. Die Transformierungstabelle
5. Hex-Editor  
6. MapEdit

Zur Erstellung brauchbarer Karten eines unbekannten Gebietes sind neben dem Verlauf von Küstenlinien, Strassen, Wegen und Höhenlinien auch die Namen und die Lage von Ortschaften und anderen Landschaftspunkten wie Berggipfeln o.ä. erforderlich. 
Im Folgenden wird eine Methode beschrieben, wie aus frei verfügbaren ASCII-Listen mit solchen Inhalten (Lat, Lon, Name, Typ) mit relativ wenig Aufwand eine MapEdit-Datei erzeugt werden kann, die dann mit anderen Inhalten zum selben Bereich zu einer Karte kombiniert wird. Als Beispiel für eine solche Datei werden die Listen des weltweit (ausser USA und Antarktis) verfügbaren GEOnet Names Server (GNS), der von der National Geospatial-Intelligence Agency (NGA) entwickelt und verwaltet wird, betrachtet:

1. Voraussetzungen

Zur im Folgenden beschriebenen Verfahrensweise benötigt man die folgenden Voraussetzungen:

1. Eine ASCII-Liste für den gewünschten Bereich (http://gnswww.nima.mil/geonames/GNS/index.jsp)
2. Ein Tabellenkalkulationsprogramm wie z.B. Excel und die Transformierungstabelle (Transfer NIMA nach MapEdit)
3. Zur Nachbearbeitung der erhaltenen Datei einen Hex-Editor (z.B. xvi32

nach oben

2. GNS: Abdeckung und Einschränkungen, Download

Die Daten des GNS haben jeweils einen Vor- und einen Nachteil, die abgewogen und je nachdem entsprechend gewichtet werden müssen, wenn man sich Gedanken über die Nutzung dieser Datenquelle macht:
Fangen wie mit dem Vorteil an: Die Daten liegen im Format WGS84 und DD (Dezimalgrad) vor, einem Format also, dass MapEdit direkt und ohne Konvertierung einlesen kann. Ausserdem ist die Abdeckung weltweit mit Ausnahme der USA, für die mit den Daten des Geographic Names Information System (GNIS), der von der USGS und dem U.S. Board on Geographic Names (BGN) entwickelt und verwaltet wird, eine ähnliche Quelle ohne den gleich zu nennenden Nachteil zur Verfügung steht.
Und jetzt der Nachteil: Die Koordinatengenauigkeit ist auf 1 Gradminute beschränkt, d.h. die Namen und Symbole werden im Umkreis von ca. 1,5 km um den tatsächlichen Ort abgelegt. Eine solche "Genauigkeit" ist bei weltweiten Datensammlungen üblich und wird in der Regel durch Interpolation gut wieder ausgeglichen - im Fall von Ortsnamen gibt es aber nichts zu interpolieren. Trotzdem ist es in Verbindung mit einer hochauflösenden Satellitenaufnahme i.d.R. möglich, zumindest Städte- und Ortsnamen, Berggipfel, Inseln etc. zweifelsfrei zuzuordnen und so zwar mit etwas Handarbeit, aber dafür deutlich erhöhter Genauigkeit zu arbeiten.

Ausserdem stehen zum Download der Daten zwei Optionen zur Verfügung:

  1. Die Auswahl von Länderdaten als txt.file (Option 'Download Country Files')
  2. Die Abfrage von bereits nach Typ und ggf. Land oder Regierungsbezirk (State, County) ausgewählten Punkten (Option 'Query')

Die Länderdaten können leicht z.B. mit einer Textverarbeitung zerlegt oder aber bis zu einer gewissen Grössenordnung komplett bearbeitet werden (max. Anzahl Zeilen der Tabellenkalkulation). Sie werden im zip-Format geladen. 

nach oben

3. Öffnen der Daten als Tabelle

Die dekomprimierte txt-Datei kann jetzt mit einer Tabellenkalkulation geöffnet werden. Dabei ist darauf zu achten, dass die .txt-Datei den Punkt als Dezimaltrennzeichen und keine Tausendertrennung verwendet - dies ist im Textkonvertierungs-Assistent|Weitere so anzugeben

In der so erhaltenen Tabelle können jetzt die in der folgenden Tabelle markierten Spalten eigentlich gelöscht werden, allerdings sollte man sich gut überlegen, ob man deren Inhalte nicht als Sortierkriterien z.B. zur Aufteilung der Datei in regionale Einheiten (ADM1), zur Trennung bestimmter Punktgruppen (FC) oder zur Festlegung der Stadtgrösse (PC) noch benötigt. In diesem Fall belässt man die entsprechenden Spalten, ordnet sie aber hinter der unten aufgeführten Anordnung der 6 später übergebenen Spalten an.

RC Region Code.  Ein Code, der die Zeichenart festlegt, die im Feld 'Full Name verwendet' wird
1 = Westeuropa/America;
2 = Osteuropa;
3 = Afrika/Mittlerer Osten;
4 = Zentralasien;
5 = Asien/Pazifik;
6 = Vietnam.
UFI Unique Feature Identifier.  Eine Nummer die einen Punkt eindeutig bezeichnet.
UNI Unique Name Identifier.  Eine Nummer, die einen verwendeten Namen eindeutig bezeichnet.
UGI Unique Geospatial Reference Coordinate (GRC) Identifier.  Nummer für linienförmige Elemente. Dieses Feld erscheint normalerweise nicht. 
LAT Latitude Breitenkoordinate des Punktes ± Dezimalgrad (WGS84):
ohne Vorzeichen (+) = Nord;
negatives Vorzeichen (-) = Süd.
LONG Longitude Längenkoordinate des Punktes ± Dezimalgrad (WGS84):
ohne Vorzeichen (+) = Ost;
negatives Vorzeichen (-) = West
DMS_LAT Latitude Breitenkoordinate des Punktes ± Grad, Minuten und Sekunden (WGS84):
ohne Vorzeichen (+) = Nord;
negatives Vorzeichen (-) = Süd.
DMS_LONG Longitude Längenkoordinate des Punktes ± Grad, Minuten und Sekunden (WGS84):
ohne Vorzeichen (+) = Ost;
negatives Vorzeichen (-) = West
UTM Universal Transverse Mercator UTM-Referenz
JOG Joint Operations Graphic JOG-Kartenreferenz.
FC Feature Classification:
A = Verwaltungsbereich (Administrative region);
P = Ansiedlung (Populated place);
V = Bewuchs (Vegetation);
L = Bereiche (Locality or area);
U = Marine Punkte (Undersea);
R = Strassen und Bahnen (Streets, highways, roads, or railroad);
T = Topographie (Hypsographic);
H = Gewässer (Hydrographic);
S = andere Punkte (Spot feature).
DSG Feature Designation Code.  Aus zwei bis 5 Buchstaben bestehender Code zur Beschreibung des Punkttyps.
PC Populated Place Classification.  Eine Skala zur Abschätzung der relativen Wichtigkeit einer Ansiedlung.  Die Skala reicht von 1,  relativ hoch, bis 5, relativ niedrig.  Die Skala kann auch NULL (kein Eintrag) als Wert für Ansiedlungen mit unbekannter oder nicht festgelegter Klassifizierung beinhalten 
CC1 Primary Country Code2-Buchstaben-Code zur Bezeichnung eines souveränen Staates oder einer Kolonie
ADM1 First-order administrative division2-Nummern-Code zur Bezeichnung eines primären Verwaltungsbereiches eines Staates, vergleichbar mit einem Bundesstaat in den USA 
ADM2 Second-order administrative divisionName einer Unterteilung eines primären Verwaltungsbereiches eines Staates, vergleichbar mit einem Bezirk (County) in den USA 
POP Population Figures.
ELEV Elevations (Höhe in Metern, Dezimalwerte werden akzeptiert).
CC2 Secondary Country Code2-Buchstaben-Code zur Bezeichnung eines bestimmten Namens, falls dieser vom CC1 des Punktes abweicht.
GCC Geospatial Reference Coordinate (GRC) Country Code. 2-Buchstaben-Code zur Bezeichnung eines bestimmten Namens eines linienförmigen Elementes.  Dieses Feld erscheint normalerweise nicht.  
NT Name Type:
C = Offiziell (Conventional);
D = ungeprüft (Not verified);
N = Landessprache (Native);
V = Variante oder Alternativbezeichnung (Variant or alternate).
LC Language Code2-Buchstaben-Code zur Bezeichnung der Sprache eines LAndes, falls mehrere Amtssprachen benutzt werden.
SHORT_FORM Ein Teil des Namens der den vollen Namen ersetzen kann
GENERIC Beschreibender Teil des vollen Namens (wird nicht bei Siedlungsnamen verwendet).
SORT_NAME Eine Form des vollen Namens, die das Sortieren erleichtert.  Er besteht aus dem Namen, der Beschreibung und allen Präpositionen. Alle Buchstaben sind gross geschrieben, Leerfelder, Sonderzeichen und Betonungszeichen entfernt und Zahlen durch Kleinbuchstaben ersetzt
FULL_NAME Der volle Name ist der vollständige Name des benannten Punktes. Er besteht aus dem spezifischen Namen, der Beschreibung und allen Artikeln oder Präpositionen
FULL_NAME_ND Wie der volle Name, aber die Sonder- und Betonungszeichen wurden durch römische Buchstaben ersetzt.   ND = No Diacritics / Stripped Diacritics.
MOD_DATE Das Datum, an dem der Punkt hinzugefügt oder irgendeine Eigenschaft des Punktes verändert wurde (YYYY-MM-DD).  Dieses Feld erscheint normalerweise nicht.

Dann werden die Spalten entsprechend der Anordnung in der Transformierungs-Tabelle gruppiert:

LAT LONG SORT_NAME FULL_NAME_ND ELEV DSG

4. Die Transformierungs-Tabelle

Bei der Verarbeitung der GNS-Daten bin ich relativ bald auf eine von Ulrich Grothaus geschriebene Excel-Tabelle gestossen, mit der man die Daten in Trackmaker-Wegpunkte umwandeln kann. Diese Datei (Transfer NIMA nach TrackMaker) benötigte nur wenige Modifikationen, um genauso einfach auch MapEdit-Dateien erzeugen zu können, die den Vorteil haben, bei der Bezeichnung nicht so eingeschränkt zu sein wie Wegpunkte und ausserdem  sofort zur Verwendung in eigenen Karten geeignet sind. Aus diesem Grund stelle ich die modifizierte Datei wie von Ulrich Grothaus unter Hinweise beschrieben hier (selbstverständlich unter Ablehnung aller aus ihrer Benutzung entstehenden Konsequenzen) unter eigenem Namen ins Netz: Transfer NIMA nach MapEdit

Die Bedienung dieser Datei ist relativ schnell beschrieben:

Als erstes öffnet man die Transformierungs-Tabelle. Jetzt kann man in seiner bearbeiteten und sortierten Datentabelle die GNS-Bezeichnungen der Punkte (erklärt im Blatt GNS-DSG) mit dem entsprechenden  Hex-Code aus dem Garmin-Symbol-Set (findet man im gleichnamigen Blatt) ersetzen. Falls sich jemand die Arbeit macht, diese beiden Listen logisch miteinander zu verknüpfen, also im Endeffekt eine weitere Spalte mit dem passenden GarminSymbol an die DSG-Tabelle anzuhängen, kann man diesen Vorgang sogar durch eine einfache Such-Abfrage in der Formel automatisieren. Da ich bisher noch nicht dazu gekommen bin, muss man dies bisher mit der Funktion Suche+Ersetze ([Strg]+H) eben mit der Hand erledigen, was aber auch schnell geht.

Die so erzeugten Werte werden mit 'Kopieren' und 'Inhalte einfügen|Werte' in die entsprechenden Spalten des Blattes Transformation eingefügt, und im rechten (gelben?) Feld derselben Tabelle erscheinen dann die Punkte in MapEdit-Notation.

Diese gelben Felder werden markiert, mit 'Kopieren' und 'Inhalte einfügen|Werte' in das Tabellenblatt 'Temp' eingefügt und dieses im Format MS-DOS.txt gespeichert. Alle aufpoppenden Warnhinweise (nur Arbeitsblatt speichern, Formatierung verlieren etc.) kann man bestätigen, MS ist da wie immer sehr fürsorglich und vergisst nur die wichtigen Warnungen ;-)

nach oben

5. Hex-Editor

Die erzeugte Text-Datei ist prinzipiell einer MapEdit-Datei sehr ähnlich, wird jedoch von MapEdit mit der Ausgabe mehrer Fehlermeldungen zurückgewiesen. Der Grund dafür liegt aber nur in zwei Eigenheiten, die mit einem Hex-Editor auch bei grossen Dateien sehr schnell behoben werden können. Dazu wird die Datei geöffnet und als erstes die vom DOS-Txt-Format um Textfelder herum erzeugten Anführungszeichen (0x22) ersatzlos gelöscht. Ausgeführt werden die Aktionen mit der Funktion 'Search/Replace', jeweils mit dem Button 'Replace All'

 

Das DOS-Txt-Format speichert Zeilenschaltungen innerhalb einer Zelle als bedingte Zeilenschaltung (0x0A), Zeilenschaltung durch Auflistung in verschiedenen Zeilen jedoch als Absatz (0x0D 0A). Also müssen in einem ersten Schritt die von Excel korrekt eingesetzten Absatzschaltungen (0x0D 0A) durch bedingte Zeilenschaltungen (0x0A), die von MapEdit nicht erkannt werden, ersetzt werden. Die dient dazu, um in einem letzten Schritt dann ausnahmslos alle bedingten Zeilenschaltungen (0x0A) durch Absatzschaltungen (0x0D 0A) zu ersetzen.

Jetzt muss die so bearbeitete Datei nur noch gespeichert werden und lässt sich dann in MapEdit öffnen. 

nach oben

6. MapEdit

Die von MapEdit geöffnete Datei wird je nach Entfernung der einzelnen Punkte erst einmal nichts anzeigen, da die Datei drei Level aufweist, die importierten Punkte jedoch explizit auf dem Layer0 definiert sind. Dies dient dazu, die Verteilung auf die verschiedenen Level und damit die Anzeige der verschiedenen Punkttypen in unterschiedlichen Maszstäben im Nachhinein steuern zu können.

Nach dem Umschalten auf die Darstellung des Level0 durch die Taste [0] müsste die in der Transformierungs-Tabelle enthaltenen Beispieldatei ziemlich genau so aussehen:

 

nach oben

zurück