FEHLER 000212: XY-Ereignisquelle kann nicht erstellt werden Fehler beim Ausführen (MakeXYEventLayer)?

10

Ich habe eine CSV-Datei mit einer Größe von 133 MB und über 1,3 Millionen Datenzeilen. Jede Datenzeile hat ein eigenes Lat / Long und ich habe mich gefragt, wie ich diese Punkte basierend auf Lat / Long in ArcGIS Desktop 10 am besten anzeigen und letztendlich in ein Punkt-Shapefile umwandeln kann.

Bisher habe ich das Tool "XY-Ereignisebene erstellen" ausprobiert, aber das schlägt immer wieder fehl ...

FEHLER 000212: XY-Ereignisquelle kann nicht erstellt werden Fehler beim Ausführen (MakeXYEventLayer).

Die CSV-Datei ist ordnungsgemäß formatiert und die Lat / Long-Felder sind numerisch, sodass ich keine Ahnung habe, warum sie immer wieder abstürzt.

So sehen die ersten beiden Zeilen meiner CSV aus, die erste Zeile sollte die Überschrift sein:

"LAT","LONG","CUSTOMER_MASTER_ID","STORE_NBR","TRANSACTION_DT","SKU_DIVISION_ID","SKU_DEPARTMENT_ID","SKU_CLASS_ID","SKU_CATEGORY_ID","SKU_NBR","SALES_AMT"
"32.363544","-110.969778","2000000792627","2940","8/11/2010","2060","3920","5120","84021","5127866","13.99"

Irgendwelche Ideen?

Achtelmeile
quelle
2
Sie müssen die Datei aufteilen
Mapperz
Ich habe ein Fischnetz, das ich in eine Größe von mehr als 2 GB aufteilen möchte. Irgendeine Idee, wie es in ArcGIS geht? Es wird sehr hilfreich sein. Danke, Ibe
Ibe
Danke fürs Zeigen. Noch eine Frage: Gibt es in QGIS eine Möglichkeit, ein Raster in ein Shapefile zu konvertieren (die Größe des Shapefiles wäre wiederum größer als 2 GB)?
Ibe

Antworten:

7

Dies mag etwas komplizierter sein, aber wenn meine zwei Cent etwas wert sind (und wenn Sie MS Office-Produkte verwenden), würde ich empfehlen, Ihre CSV-Datei als Tabelle in eine MS Access-MDB-Datenbank zu importieren. (Hinweis: Für eine MDB-Datenbank gibt es eine Größenbeschränkung von 2 GB .)

Anschließend können Sie diese Access .mdb-Tabelle zu Ihrem ArcMap-Dokument hinzufügen und mit der rechten Maustaste auf> "x, y-Daten anzeigen" klicken:

Rick-Klick

Wenn Sie Ihre Daten in einer Datenbank speichern und aus dieser Tabelle lesen, um Ihre x, y-Datenpunkte anzuzeigen, können Sie Änderungen an Ihren Daten vornehmen. Diese Änderungen werden beim nächsten Aktualisieren der Kartenanzeige automatisch in den x, y-Datenpunkten angezeigt anstatt jedes Mal ein neues Shapefile oder eine neue Ebenenansicht erstellen zu müssen. Dies scheint auch eine robustere Methode zu sein, um eine so große Datenmenge zu verwalten.

Resultierende x, y Datenpunkte

Jason
quelle
2
2 GB ist die maximale Grenze für MS Access und Personal GeoDatabase. Seien Sie vorsichtig, wenn Sie sich dieser Grenze nähern, da persönliche Geodatabases bei der Bearbeitung größer sind als bei der Nichtbearbeitung.
Mapperz
@Mapperz, Sie haben Recht, 2 GB ist die Größenbeschränkung für eine MDB-Datenbank, unabhängig davon, ob sie von Arc erstellt wurde oder nicht. Ich habe falsch gesprochen. Ich habe mehrere mit einer Größe von ungefähr 2 GB (aber keine mehr), mit denen ich unter anderem Wasserstand-Aufzeichnungsstationen im Südosten der USA kartiert habe.
Jason
Ausgezeichnet, ich habe es in eine MDB geladen und dann in eine File GeoDatabase exportiert und es funktioniert großartig, danke!
Furlong
12

Da die Lat- und Long-Feldwerte "32.363544","-110.969778"in Anführungszeichen gesetzt sind, werden sie nicht wirklich als numerisch behandelt.

Für die Anzeige der xy-Daten müssen die Felder x und y numerisch sein.

Entfernen Sie die umgebenden Anführungszeichen und es sollte funktionieren. Wenn Sie Zugriff auf eine Unix-Maschine haben, würde grep / sed diesen Job sicher erleichtern. Es gibt auch Windows-Ports dieser Tools.

Außerdem würde ich vermeiden, "Long" als Feldnamen zu verwenden - es kann Fälle geben, in denen es als reserviertes Wort behandelt wird.

Kirk Kuykendall
quelle
1
korrekt "32" ist eine Zeichenfolge und muss numerisch sein
Mapperz
2

Haben Sie eine Kopfzeile in der CSV-Datei, die ArcGIS möglicherweise verwirrt?

Versuchen Sie auch, nur eine der Zeilen aus der CSV zu kopieren, und prüfen Sie, ob dies funktioniert. Auf diese Weise können Sie Formatierungsfehler vermeiden. Verwenden Sie einen Texteditor wie UltraEdit oder Notepad ++, der große Textdateien öffnen kann, um Ihre Beispielzeile zu kopieren.

Ich weiß nicht, wie der ArcGIS-Importer funktioniert, aber Sie können feststellen, dass die Datei zu groß ist, um damit fertig zu werden, sodass sie möglicherweise in Blöcke aufgeteilt werden muss.

MerseyViking
quelle
2

Wenn Sie über SQL Server Express verfügen, können Sie möglicherweise einen Teil des Hebens ausführen.

Dies ist aus ein paar verschiedenen Abfragen zusammengeschustert (wobei die Lat / Long-Textfelder waren):

SELECT 
CONVERT(float,[latitude]) lat
,CONVERT(float,[longitude]) long
INTO TEMPPTS
FROM
OPENROWSET ('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\temp;',
'SELECT * from GPSQuery.txt') g
WHERE longitude IS NOT NULL AND len(longitude) > 0
and [latitude] IS NOT NULL AND len([latitude]) > 0

Möglicherweise müssen Sie den SQL Server für verteilte Ad-hoc-Abfragen konfigurieren.

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

Es mag für einen Job übertrieben sein, aber es lohnt sich, wenn Sie häufig mit vielen verschiedenen Dateien arbeiten. Obwohl es sich um große Dateien handelt, sollten Sie sich bcp.exe ( http://msdn.microsoft.com/en-us/library/aa174646(v=sql.80).aspx ) für den Massenimport ansehen .

Jay Cummins
quelle
0

Wenn Sie nur ein Shapefile daraus erstellen möchten, versuchen Sie es mit QGIS www.qgis.org. Das Plugin für abgegrenzte Texte, das mit QGIS geladen werden kann, macht dies einfach. Wenn Sie es dann in ArcMap einbinden möchten, stellen Sie die Projektion zuerst über ArcCatalog sicher.

Jukka
quelle
0

Stellen Sie außerdem sicher, dass Ihre Titel keine Leerzeichen enthalten. Zum Beispiel sollte "UTM Zone" "UTM_Zone" sein. Nur etwas zu beachten, da es beim Importieren ein Problem für mich war.

Tristan vorwärts
quelle