Raster (DEM) teilweise aktualisieren?

8

Wie aktualisiere ich ein IMG-DEM in ArcView 9.3?

Ich habe DEM, das nur aktualisiert werden muss, wenn nur wenige Teile vorhanden sind. Der zu aktualisierende Bereich wurde in einem separaten DEM mit Spline-Interpolation mit Barrieren erstellt.

Der Bereich, der selbst aktualisiert werden soll, ist S-förmig, aber ich habe ein größeres rechteckiges DEM erhalten (übrigens hatte ich gehofft, einen Wert von -9999 außerhalb der Barrieren zu erhalten, aber es scheint, dass der Außenbereich auch interpoliert wurde).

Mein Ziel ist es, nur den Bereich innerhalb der Polylinie / Barrieren zu aktualisieren. Wie geht das?

Tomek
quelle
Obwohl die Frage DEM-spezifisch ist, ist die Herausforderung und Lösung nicht. Der gleiche Vorgang kann auf alle Rasterebenen (Bildschichten) angewendet werden. Danke, dass du Tomek angesprochen hast.
Matt Wilkie

Antworten:

8

Sie müssen einen bedingten Operator verwenden . Die Logik lautet:

Result = If {new DEM has values, use them} 
         Else {use values from the original DEM}.

Alternativ kann dies ausgedrückt werden als

Result = If {new DEM does not have values, use original DEM}
         Else {use the new DEM}.

In ArcView variiert die Syntax mit der Version: Es gibt eine Syntax für Versionen bis 3.3, eine andere bis 9.3 und eine neue Syntax in 10.0. (Zweifellos wird sich die Syntax alle paar Jahre weiter ändern, weshalb es so wichtig ist, GIS unabhängig von Software zu betrachten.) Der alternative Ausdruck ist in ArcView einfacher. Die 9.3-Syntax sieht so aus

CON( IsNull([New DEM]), [DEM], [New DEM] )

Angenommen, das neue DEM enthält einige Werte, die Sie nicht verwenden möchten, aber Sie haben ein anderes Raster, das Ihr Polygon darstellt und angibt, wo das neue DEM das alte ersetzen soll. Nennen wir dieses Polygonraster "I". Diese Variante würde sich wie folgt ausdrücken

CON( IsNull([I]), [DEM], [New DEM] )

Wie Sie sehen können, ist die Vorgehensweise recht allgemein: Sie haben ein "Basis" -Gitter (das ursprüngliche DEM), ein neues Gitter mit Werten, die Sie über das Basisgitter "patchen" möchten, und ein "Zonen" -Raster, das angibt, wo das Patchen erfolgt sollte sein. Ein bedingter Ausdruck implementiert das Raster-Patching . Mit diesem Ansatz können Sie Raster in jedem rasterbasierten GIS patchen, das die Kartenalgebra unterstützt.

whuber
quelle
du rockst!
Brad Nesom
Kein Zweifel, sehr klare Erklärung. Vielen Dank. Vielleicht werde ich eines Tages jemandem helfen :)
Tomek
Die neueste Syntax finden Sie auf der aktuellen HilfeseiteCON unter help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#/Con/… .
whuber