Hier ist ein hübsches Bild des Rasters, das ich verwende - ohne angewendete Effekte - nur die Farbrampe und das Histogramm, die angepasst wurden, um das gesamte Relief hervorzuheben - wenn auch auf sehr 2D-Weise!
Ich habe eine Rasterebene, die ich standardmäßig mit Schatten anzeigen möchte. Ich kann dies im Code tun und im Grunde ist es dasselbe wie das Auswählen der Hillshade-Option in ArcMap (siehe unten):
Wenn Sie dies jedoch tun, sieht es enttäuschend aus:
Besonders wenn Sie in das Raster hineinzoomen, sehen Sie alle Arten von gerasterten Artefakten - was überhaupt nicht gut aussieht!
Wenn ich jedoch mithilfe des Rasters mit Spatial Analyst eine richtige Hillshade-Ebene erstelle und diese mit einer Transparenz von 85% überlagere, sieht sie ziemlich gut und sehr unterschiedlich aus !:
- Wie kann ich diesen Effekt in ArcMap erzielen und die Standardfunktionalität der Hillshade-Option überschreiben (ich nehme an, dass dies nicht möglich ist, oder habe ich eine Einstellung verpasst, die dazu geführt hat, dass das Raster schlecht angezeigt wird)? Wenn die richtigen Einstellungen überschrieben oder ausgewählt werden können, ist dies in ArcObjects möglich.
- Wenn Option 1 nicht möglich ist, kann ich meinen Effekt mit der Erstellung eines Hillshade-Layers (ohne Verwendung von Spatial Analyst) erstellen und ihn effektiv mit dem ursprünglichen Raster verschmelzen. Das heißt, Benutzer sollen im Inhaltsverzeichnis von ArcMap keine zwei Layer sehen . Ich möchte nur eine Ebene, aber mit einem Standard-Hillshade-Rendering meiner Wahl / Konfiguration. Ich muss dies auch programmgesteuert tun, dh ArcObjects.
Eine Sache, die ich gelernt habe, ist, dass Sie Ihr DEM in der richtigen Raumbezugs- und Maßeinheit haben müssen, oder dass der resultierende Schatten zu schwarz und übertrieben aussieht. Schauen Sie sich dieses Video an, um mehr zu erfahren. Es ist eine sehr gute Erklärung.
Ich glaube, ich weiß jetzt, was ich tun muss, um qualitativ hochwertiges Hillshading zu erzeugen, aber ich denke, es wird einige geringfügige Optimierungen von ArcObjects-Code erfordern. Ich denke, ich muss mir ein eigenes Grafik-Rendering einfallen lassen und dieses in ArcMap einbinden (ich habe eine DLL, die Bitmaps von Gittern auf coole Weise rendert). Ich denke, ein guter Ort, um dies zu zeigen, wäre, das Draw () -Ereignis auf etwas wie dem IRasterRenderer zu überschreiben und mein eigenes Bild-Rendering einzufügen. Natürlich kann es bei Reprojektionen usw. etwas kompliziert werden.
Hat jemand in ArcMap irgendeine Art von Grafik-Rendering auf niedriger Ebene durchgeführt? Wenn ja, können Sie Anleitungen oder Dinge anbieten, die mir bekannt sein sollten?