Vorbereiten von CSV-Dateien für die Verwendung in ArcGIS Desktop?


16

Wie bereite ich CSV-Dateien für die Verwendung in ArcGIS Desktop vor?

Ich frage, weil ich Probleme mit CSV-Dateien habe, weil ArcGIS meinen Spalten falsche Feldtypen zuweist und auch Sonderzeichen wie á oder ê falsch interpretiert.

Ich habe im Esri-Forum gelesen, dass es eine sogenannte schema.ini-Datei gibt, die irgendwie die Feldtypen definiert, zB "Col22 = V002 Text", siehe hier http://forums.esri.com/Thread.asp?c=93&f = 1149 & t = 64464

Das ist lustig, weil ich diese INI-Dateien oft auf meiner CD gesehen habe, mich aber nie wirklich gefragt habe, wozu sie gut sind. Es ist seltsam, dass Excel solche Metadaten in einer zusätzlichen Datei speichert, da andere Programme wie R dies nicht tun.

Ich habe bereits versucht, diese INI-Datei mit wenig Erfolg zu manipulieren, da ich nicht herausgefunden habe, wie man beispielsweise den Typ "string" anwendet. Informationen zu MS-Websites finden Sie hier: http://msdn.microsoft.com/en-us/library/windows/desktop/ms709353%28v=vs.85%29.aspx aber ich konnte keine Lösung finden .

Außerdem hat mir die Idee, mit dieser INI-Datei zu arbeiten, nicht wirklich gefallen, da es ziemlich mühsam ist, alle Feldnamen zu definieren und einzugeben, wenn ich mal 50 Spalten gesagt habe. Und diese INI-Dateien könnten verloren gehen usw.

Antworten:


16

Meine schnelle Lösung besteht darin, die erste Zeile mit Dummy-Werten zu erstellen und diese Zeile / diesen Datensatz nach dem Einfügen in ArcGIS zu löschen.

Diese erste Zeile enthält repräsentative Werte oder häufig sehr unterschiedliche Werte (z. B. alphabetische Zeichen, auch wenn die Spalte Zahlen enthält, die ich als Textdatentyp verwenden möchte) und die größte Anzahl von Zeichen, die für diese Zeile benötigt wird (da Textfelder in der Regel abgeschnitten werden). .

Datums- / Uhrzeitwerte können zu Importfehlern führen (insbesondere zwischen den Standard-Datumsformaten in Kanada / den USA). Daher besteht meine Aufgabe darin, die Datums- / Uhrzeitteile in separate Spalten zu unterteilen (z. B. Jahr, Monat, Tag, Stunde, Minute) und dann Verketten Sie diese in einer neuen Feldberechnung, nachdem Sie sie erfolgreich in ArcGIS implementiert haben.

Die geografischen Koordinaten stammen von Jamie ist ebenfalls erforderlich. Geben Sie negative Werte für die Länge der westlichen und die Breite der südlichen Hemisphäre an. Und Unicode kümmert sich um Sonderzeichen.

Wenn ein Felddatentyp nach dem Bringen in ArcGIS immer noch falsch interpretiert wird, füge ich ein neues Feld im richtigen Datentyp hinzu und berechne / konvertiere die Werte aus dem ursprünglichen Feld. In der Regel kümmert sich jedoch die Dummy-Zeile / der Dummy-Datensatz um die meisten, wenn nicht Alles Probleme.


8

Eine leichte Abweichung von der herkömmlichen CSV-> ArcGIS-Ebene könnte darin bestehen, ogr2ogr zu verwenden, um Ihr Shapefile VOR der Erstellung von CSV zu erstellen es in ArcMap geladen werden .

Wenn Sie OGR verwenden , können Sie manuell eine CSVT-Datei erstellen, die Ihre Spaltentypen beschreibt, ähnlich wie ArcGIS dies mit der Datei schema.ini versucht.

In diesem Beitrag von @underdark zum Angeben von Datentypen für CSV-Spalten (zur Verwendung in QGIS) werden die Details zum Erstellen einer CSVT erläutert. Sie können die Verwendung von QGIS ignorieren, da nur ogr zum Importieren der CSV-Daten in die Benutzeroberfläche verwendet wird.


7

In ArcGIS 10 können Sie die Feature-Class erstellen und zuerst alle Feldtypen festlegen und dann die CSV-Datei mit ArcCatalog laden. Klicken Sie einfach mit der rechten Maustaste auf die Feature-Class und wählen Sie Laden> Daten laden. Befolgen Sie dann das Dialogfeld "Einfacher Datenlader", um Felder usw. abzugleichen. Dies ist ein einfacher Lader, da es nicht viele Optionen gibt, er jedoch für gut formatierte Daten funktioniert. Ich bin mir nicht sicher, ob dies neu für 10 ist, da ich keine frühere Version zur Hand habe, die ich überprüfen könnte.


3

Der richtige Weg, um diese Probleme zu beheben, ist die Verwendung einer 'schema.ini'-Datei, wie von @Kirk_Kuykendall in Kommentaren vorgeschlagen. Dies ist eine Microsoft-Standardmethode für die Verarbeitung von Eingaben aus einer CSV in eine Datenbank, bei der der Spaltentyp nicht eindeutig interpretiert werden kann.

ArcGIS berücksichtigt diese "schema.ini" -Dateien beim Importieren aus CSV.

Weitere Informationen finden Sie in der Microsoft-Dokumentation unter: https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-2017

Die Datei 'schema.ini' muss sich am selben Speicherort wie Ihre CSV-Datei befinden und kann bei Bedarf Konfigurationen für mehrere andere CSV-Dateien am selben Speicherort enthalten.

Eine einfache 'schema.ini'-Datei für eine einzelne CSV-Datei mit nur einer Spalte, die ansonsten mit dem falschen Typ gelesen wird, könnte folgendermaßen aussehen:

[SomeFileName.csv]
Col2=SomeFieldName Long

Bestätigt, dass dies in ArcGIS Pro funktioniert. In der anderen Arbeitsumgebung haben Sie eine obere Datenzeile mit Werten hinzugefügt, die dem gewünschten Datentyp entsprechen. Dies funktioniert für einmalige Situationen. Wenn die Tabelle jedoch sehr groß ist oder Sie über eine Automatisierung verfügen, ist dies mit Sicherheit die beste Lösung. Sie setzen es einfach und vergessen es!
alexGIS

1

Eine Problemumgehung, die ich gefunden habe, ist das Öffnen der CSV in einem Texteditor (ich habe Notepad ++ verwendet) und das erneute Speichern als CSV. Ich sehe keine sichtbaren Änderungen im Dateiinhalt, einschließlich spezieller Markup-Zeichen, aber das Problem hängt wahrscheinlich damit zusammen, wie Excel CSV-Dateien formatiert. Ich habe die Datei in Excel mit den Standard-CSV-Optionen 'CSV (kommagetrennt) (*. Csv)' gespeichert. Vielleicht würde ein anderes CSV-Format besser funktionieren.

Zusätzliche Informationen: Etwas Grundlegendes muss sich an der CSV-Datei geändert haben, als ich sie mit Notepad ++ gespeichert habe, da ich sie jetzt in Excel bearbeiten und speichern kann und sie weiterhin von arcmap als numerisch importiert wird. Ich habe keine Ahnung, was sich geändert hat.


-2

Überraschenderweise hat das Öffnen der Originaldatei (für mich .txt) in einem Texteditor (für mich UltraEdit) und das Speichern als .csv oder .txt funktioniert. In UltraEdit, pandas oder einer anderen Untersuchungsmethode sind keine Änderungen an der Datei erkennbar.

Keine der Problemumgehungen, einschließlich meiner, erklärt den grundlegenden Grund, warum ArcMap nur gelegentlich entscheidet, Nummernspalten als Text zu lesen.

Das hat also zweimal funktioniert ... dann hat genau das gleiche Verfahren aufgehört zu funktionieren.

Ich muss alle Verknüpfungen entfernen, die Tabelle entfernen, ArcMap herunterfahren, die Tabelle in einem Texteditor öffnen, die Tabelle erneut speichern, ArcMap öffnen, die Tabelle hinzufügen und die Verknüpfung wiederholen ... jedes Mal, wenn ich etwas in der Datei ändere Tabelle.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.