Laden von Textdateien in ArcGIS: Eigene Field Delimiter

Immer wieder mal muss man Punktdaten in Form von Textdateien in ArcGIS importieren.

Wenn man deutschsprachige Microsoft-Software benutzt, werden Attribute in CSV-Dateien (Comma-separated values) in der Regel eben nicht mittels Kommata sondern mittels Strichpunkten separiert – was an sich nicht schlecht ist, da ein Strichpunkt wesentlich seltener als Teil eines Attributwerts vorkommt als das Komma. Auf der anderen Seite gibt es auch Behörden, die grosse Punkt-Datensätze in Textform zur Verfügung stellen, die ebenfalls mit dem Strichpunkt arbeiten. Ein Beispiel hierfür sind die schweizerischen Volkszählungsdaten im Hektarraster.

Wenn man mit ArcGIS aber einen sogenannten XY Event Layer aus Textdateien generieren möchte, erwartet dieses aber bei Dateien mit Endungen „.csv“, „.txt“ oder „.asc“ Kommata als Field delimiter.

Der oben erwähnte Datensatz der Schweizer Volkszählung umfasst sehr viele Attribute und ist daher circa 190 mb gross. In einem solchen Fall möchte man nicht ein Search-and-Replace durchführen. Einer meiner Arbeitskollegen konnte sich glücklicherweise noch an die detaillierte Lösung erinnern.

Wie hier in der ArcGIS-Hilfe dokumentiert, verwendet ArcGIS den OLE DB Provider von Microsoft für Open Database Communication (ODBC) Treiber und den Microsoft ODBC Text Treiber für das Lesen von Textdateien. Dieser Treiber speichert Informationen über das Datenschema in einer eigenen Textdatei namens „schema.ini“, sobald man einen Ordner mit ArcCatalog oder mit ArcMap ansteuert. Diese Schema-Datei kann nun editiert werden, um dateispezifisch einen anderen Delimiter zu definieren.

Wie hier bei MSDN dokumentiert erlaubt der Ausdruck

Format=Delimited(<custom character>)

die Definition eines beliebigen Delimiters. Konkret habe ich also

[vz2000_dsview.csv]
Format=CSVDelimited

in meinem Schema.ini mit

[vz2000_dsview.csv]
Format=Delimited(;)

ersetzt. Und schon klappt’s mit dem Import der umfangreichen CSV-Datei.