Guten Morgen,
ich suche eine Möglichkeit bzw. einen Weg mehrere *.DBF Dateien mit xyz Informationen in ArcGIS einzubringen. Das Endziel soll ein DGM Raster sein.
Ich weiß, dass ich die Daten einzeln als X,Y-hinzufügen usw. einfügen kann, dass dauert aber zu lange. Ich habe auch schon ein wenig mit einer Geodatabase herumgespielt, bekomme aber kein Ergebnis hin, dass alle Dateien in einem Rutsch eingelesen werden.
Müsste es nicht auch mit dem Modelbuilder gehen, dass ich sage: Nimm alle Dateien mit der Endung *.DBF, füge diese als XYZ zu einem Shape/FeatureClass hinzu und mache das solange, bis alle Dateien im Verzeichnis abgearbeitet sind. Leider finde ich nicht einmal die Funktion x,y Daten hinzufügen im ModelBuilder.
Ich benutze ArcGIS v10
Vielen Dank an alle die helfen können!
ich suche eine Möglichkeit bzw. einen Weg mehrere *.DBF Dateien mit xyz Informationen in ArcGIS einzubringen. Das Endziel soll ein DGM Raster sein.
Ich weiß, dass ich die Daten einzeln als X,Y-hinzufügen usw. einfügen kann, dass dauert aber zu lange. Ich habe auch schon ein wenig mit einer Geodatabase herumgespielt, bekomme aber kein Ergebnis hin, dass alle Dateien in einem Rutsch eingelesen werden.
Müsste es nicht auch mit dem Modelbuilder gehen, dass ich sage: Nimm alle Dateien mit der Endung *.DBF, füge diese als XYZ zu einem Shape/FeatureClass hinzu und mache das solange, bis alle Dateien im Verzeichnis abgearbeitet sind. Leider finde ich nicht einmal die Funktion x,y Daten hinzufügen im ModelBuilder.
Ich benutze ArcGIS v10
Vielen Dank an alle die helfen können!
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Rena am Fr., 10.08.2012 - 14:37
Permalinkes gibt tatsächlich eine Methode, alle xyz-Dateien eines Verzeichnisses in einem Rutsch zu importieren und dann in einen MultiPunkt-Datensatz (Shapefile oder -für die weitere Verarbeitung besser - feature class in einer Geodatabase) zu konvertieren. Damit können auch sehr große Datenmengen relativ flott verarbeitet und über ein Terrain (! nicht TIN, das ist für große Datenmengen zu langsam) in ein Raster umgewandelt werden.
Das geht über die Toolbox 3D-Analyst Tools / Konvertierung / von Datei.
Da sinds die Befehle 3D-ASCII zu Feature Class und auch Punktdateiinformation.
Leider geht das wohl nicht mit .dbf, sondern nur mit ASCII-Dateien. Ich suche grad, ob es vielleicht ein ähnliches Tool für dbf gibt.
Aber dbf ja langsam wirklich out, Excel 2010 kann das auch nicht mehr speichern.
Deshalb erst mal dieFrage: Hast du die Dateien nur als dbf? Benötigt würde eine Koordinatenliste in einer ASCII-Datei, Leerzeichen getrennt (andere Trennzeichen wie Komma sind ebenfalls möglich), Spaltenüberschriften sind nicht notwendig, stören aber auch nicht. Die drei Felder X, Y, Z müssen die ersten drei Spalten darstellen, danach können auch Datenspalten gespeichert werden.
Grüße
Rena
Gespeichert von mr_default am Mo., 13.08.2012 - 07:57
Permalinkdanke für die Antwort. Jap, ich habe die nur als DBF. Ich habe aber Mittlerweile ein VBA-Script gefunden und angepasst, welches mir alle DBFs in einem Ordner in MSDOS-Txt Dateien konvertiert. Also liegen diese nun als TXT-File vor. Ich werde als nächstes probieren diese über den 3D-Analyst als Shape zu importieren.
Ich habe noch eine Frage zu dem Vorgang: Wie ermittle ich den korrekten "Durchschnittl. Punktabstand" welchen ich angeben muss? Aus der ArcGIS Hilfe werde ich nicht so richtig schlau.
Gruß
Gespeichert von mr_default am Di., 14.08.2012 - 08:41
Permalinkich habe nun eine Lösung gefunden. Am einfachsten funktioniert es über die "Iteration-Funktion" des Modelbuilders. Hier kann man automatisiert DBF-Tabellen eines Verzeichnisses einlesen lassen und diese dann nacheinander dem Tool "XY-Ereignis-Layer erstellen" zufüttern, sodass ein Multipoint-Shape erzeugt wird, dessen Höhendaten dann in ein Raster interpoliert werden kann.
Gruß
Gespeichert von Rena am Di., 14.08.2012 - 09:25
Permalinkfalls deine Dateien Höhenwerte in einem regelmäßigen Punktabstand beinhalten, ist das wohl die einfachste Lösung.
Solltest du aber unregelmäßige Laserscan-Punktwolken haben, die erst noch über eine räumliche Interpolation in ein Raster umgerechnet werden müssen, gibts mit XY-Ereignislayern oft Probleme.
Ich arbeite mit Laserscandaten in 1m, manchmal nur 0,5m Punktabstand, da bringt schon eine einzige Kachel als Ereignislayer meinen Computer fast zum erliegen.
Gruß
Rena
Gespeichert von Rena am Di., 14.08.2012 - 09:39
PermalinkJetzt hab ich die Anleitung schon fertig, jetzt poste ich sie auch. Vielleicht kann ja sonst jemand das brauchen...
Der Arbeitsablauf ist wie folgt:
1. eine File-Geodatabase anlegen. Darin ein Dataset erstellen.
2. Die Information zur Punktdichte bekommst du über das "3D-Analyst Tools / Konvertierung / von Datei /Punktdateiinformatio"n. Du wählst ganz oben in der Drop-Down-Liste Eingabe – suchen nach „Ordner" und navigierst dann zum Verzeichnis, in dem alle deine ASCII-Files liegen. Das Eingabedateiformat ist XYZ, das Dateisuffix wäre in deinem Fall wohl txt.
Das Tool erzeugt einen Polygon-Feature-Class in der Ausdehnung deiner Punktwolke und gibt für jeden Blattschnitt die Anzahl der Punkte und die durchschnittliche Punktdichte an. Die kannst du dann mitteln und für den nächsten Schritt verwenden.
Ausserdem musst du nachschauen, welches Dezimaltrennzeichen in den Dateien verwendet wird.
3. Mit "3D-Analyst Tools / Konvertierung / von Datei / 3D-ASCII zu Feature Class" werden dann die Punkte als Multipoint-Feature-Class in das Dataset der Geodatabase eingelesen. Einstellungen wie im Tool Punktdateiinformation.
4. im ArcCatalog das Dataset mit Rechts anklicken, "Neu / Terrain" auswählen und aus den Multipoints ein Terrain erstellen lassen (mehrere Zwischenschritte). Terrain ist eigentlich auch nur ein TIN, aber wesentlich performanter, da es in verschiedenen (einstellbaren) Maßstäben auch in verschiedener Genauigkeit angezeigt wird.
5. Aus dem Terrain dann über die Toolbox "Konvertierung / von Terrain / Terrain zu Raster" ein Grid erstellen. „Abtastschrittweite" auf die gewünschte Zellgröße umstellen, als Methode ist statt des Standard „Linear" meist „Nearest Neighbors" die bessere Wahl.
Diesen Arbeitsablauf habe ich (allerdings mit ArcGIS 9.3 und csv-Dateien) schon oft durchlaufen lassen und es scheint mir für große Datenmengen (z.B. 120 Kacheln mit 10 GB Laserscanpunkten...) eine relativ schnell arbeitende Möglichkeit zu sein.
Grüße
Rena
Gespeichert von mr_default am Di., 14.08.2012 - 09:54
Permalinkdanke für die Anleitung. Ich werde das mit Terrain dann doch einmal ausprobieren, gerade die Rastererstellung wäre interessant.
Ich habe mich schlussendlich doch auf den XY Import konzentriert, da die Konvertierung von DBF zu TXT doch recht fehlerbehaftet bei mir war. Ich hatte ein VBA Script für Excel, welches mir die DBF automatisch in ein TXT konvertiert hat. Danach waren die Koordinaten aber durcheinander, sehr komisch...
Ja, rechenintensiv ist das ganze tatsächlich, selbst mit meinem relativ schnellen PC (Core i3 4x 3Ghz + 8GB RAM) läuft es recht schleppend, wobei die Festplatte auch wohl einen limitierenden Faktor darstellt. Eine SSD würde da schon sehr helfen.
Gruß
Marc
Gespeichert von mr_default am Mi., 05.09.2012 - 08:50
Permalinkich würde gerne noch die Information zu diesem Thread loswerden, dass ich noch eine andere Lösung gefunden bzw. angewendet habe.
Die Funktion "Merge" unter den Geoverarbeitungstools bietet auch die Möglichkeit Tabellen im DBF Format zusammenzufügen. Ich dachte immer, das geht nur mit Shape bzw. Features aber dem ist nicht so. Das beuetet, dass es in meinem Fall möglich war, alle Tabellen in einem langen (sehr sehr langen) Rutsch zu verbinden, diese dann als xyz-Datei zu importieren und schließlich als Shape-File zu speichern.
Die Rechenzeit ist je nach DGM Ausflösung extrem lang, der Klickaufwand ist aber minimal. Was bei Rechenoperationen über Nacht, meiner Meinung nach am effizientesten ist.
Gruß
Marc