Hallo,
Habe als Ausgangsbasis einen 200m Raster (in Vektorform) mit etwa 2,1 Mio. Zellen. Von jeder Zelle ist ein Buffer (von den Seitenkanten) mit 3.000 m zu erstellen (schon geschehen) und die Spaltenwerte der darin liegenden Zellen (im Normalfall 777 Zellen) sind pro Buffer-Kreis zu summieren. Daten sind ein einer File Geodatabase gespeichert.
Siehe auch die angefügten Bilder. Ist das mit ArcMap oder ArcCatalog zu bewältigen?
Spatial Join (Rechtsklick Layer 'Joins and Relates') habe ich bereits probiert, nach ungefähr 10.000 Datensätzen wird abgebrochen. Spatial Join über die Toolbox in ArcCatalog habe ich auch schon probiert, dort werden nur die Daten eingelesen umd mehr tut sich nicht.
Ich habe das ganze auch rechnerisch über MySQL-Datenbank probiert, allerdings ist die Rechenzeit für eine Zelle 6 Sekunden, würde also über 140 Tage dauern.
Gibt es alternative Lösungsmethoden?
Danke!
mfg,
Mike
[imgs=http://img171.imageshack.us/img171/1443/buff erdetail.png http://img12.imageshack.us/img12/5935/bufferg.png ]Buffer für eine Zelle[/imgs]
[imgs=http://img171.imageshack.us/img171/1443/buff erdetail.png http://img12.imageshack.us/img12/5935/bufferg.png ]alle Bufferkreis Detail[/imgs]
Habe als Ausgangsbasis einen 200m Raster (in Vektorform) mit etwa 2,1 Mio. Zellen. Von jeder Zelle ist ein Buffer (von den Seitenkanten) mit 3.000 m zu erstellen (schon geschehen) und die Spaltenwerte der darin liegenden Zellen (im Normalfall 777 Zellen) sind pro Buffer-Kreis zu summieren. Daten sind ein einer File Geodatabase gespeichert.
Siehe auch die angefügten Bilder. Ist das mit ArcMap oder ArcCatalog zu bewältigen?
Spatial Join (Rechtsklick Layer 'Joins and Relates') habe ich bereits probiert, nach ungefähr 10.000 Datensätzen wird abgebrochen. Spatial Join über die Toolbox in ArcCatalog habe ich auch schon probiert, dort werden nur die Daten eingelesen umd mehr tut sich nicht.
Ich habe das ganze auch rechnerisch über MySQL-Datenbank probiert, allerdings ist die Rechenzeit für eine Zelle 6 Sekunden, würde also über 140 Tage dauern.
Gibt es alternative Lösungsmethoden?
Danke!
mfg,
Mike
[imgs=http://img171.imageshack.us/img171/1443/buff erdetail.png http://img12.imageshack.us/img12/5935/bufferg.png ]Buffer für eine Zelle[/imgs]
[imgs=http://img171.imageshack.us/img171/1443/buff erdetail.png http://img12.imageshack.us/img12/5935/bufferg.png ]alle Bufferkreis Detail[/imgs]
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von mikew4 am Fr., 12.03.2010 - 11:56
PermalinkGespeichert von KEngelberg am Sa., 13.03.2010 - 23:37
PermalinkHast Du schon probiert, die Abfrage in MySQL zu optimieren? Du brauchst nicht jedesmal alle Zellen zu prüfen. Die fraglichen können ja nur in der bounding box des buffers liegen und das ist relative einfach zu prüfen, vor allem kann es durch einen Index der X- und Y-Werte sehr beschleunigt werden. Die rechenaufwendige Contains()-Prüfung läuft dann nur noch in einem vielfach kleineren Datensatz ab. 777 statt 2.100.000.
Ich habe nicht die geringste Ahnung über den spatial Dialekt von MySQL (und würde wohl PostGIS oder Manifold bevorzugen) aber generell würde ich ein Konstrukt verwenden wie
SELECT .... FROM "RasterPkts" INNER JOIN "Buffer" ON "RasterPkts"."X" BETWEEN "Buffer"."BBOX_Xmin" AND "Buffer"."BBOX_Xmax" AND ... <gleiches für Y> ... WHERE CONTAINS(...)
Das ist natürlich nur Pseudocode, weil ich - wie gesagt - keinen Schimmer über die MySQL Syntax habe. Du könntest es so ausdrücken, das jeder buffer-Kreis ein eigenes Area of Interest mit seiner bounding box umsonst mitbringt.
Gespeichert von mikew4 am So., 14.03.2010 - 19:33
Permalinkmfg,
Mike
Gespeichert von KEngelberg am Di., 16.03.2010 - 07:29
Permalink