Usando l'opzione Hillshade in ArcMap?


15

Ecco una bella foto del raster che sto usando - senza effetti applicati - solo la scala dei colori e l'istogramma regolati per mostrare tutto il rilievo, anche se in modo molto 2D!

inserisci qui la descrizione dell'immagine

Ho un livello raster che voglio visualizzare come predefinito con hillshade. Posso farlo nel codice ed in effetti è lo stesso che selezionare l'opzione Hillshade in ArcMap (vedi sotto):

inserisci qui la descrizione dell'immagine

Quando lo fai, tuttavia, sembra deludente:

inserisci qui la descrizione dell'immagine

Soprattutto se ingrandisci il raster vedi tutti i tipi di manufatti grigliati, il che non sembra affatto bello!

inserisci qui la descrizione dell'immagine

Tuttavia, se creo un layer Hillshade corretto usando il raster con Spatial Analyst e lo sovrappongo con una trasparenza dell'85%, sembra piuttosto buono e molto diverso !:

inserisci qui la descrizione dell'immagine

  1. Come posso ottenere questo effetto in ArcMap e sovrascrivere la funzionalità predefinita dell'opzione Hillshade (suppongo che ciò sia impossibile o è un'impostazione che mi è sfuggita a causare una visualizzazione scadente del raster). Se è possibile sovrascrivere o selezionare le impostazioni corrette, è possibile farlo in ArcObjects.
  2. Se l'opzione 1 non è possibile, posso creare il mio effetto con la creazione di un livello Hillshade (senza utilizzare Spatial Analyst) e fonderlo efficacemente con il raster originale - cioè non voglio che le persone vedano due livelli nel sommario in ArcMap . Voglio solo un livello, ma con un rendering predefinito di hillshade di mia scelta / configurazione. Devo farlo anche a livello di programmazione, ovvero ArcObjects.

Una cosa che ho imparato è che devi avere il tuo DEM nelle unità di misura e di riferimento spaziale corrette oppure la sfumatura risultante appare troppo nera e eccessivamente esagerata - guarda questo video per saperne di più - è un'ottima spiegazione.

Quindi penso di sapere ora cosa devo fare per quanto riguarda la produzione di alcune qualità di alta qualità, ma penso che ci vorrà un po 'di codice ArcObjects di modifica di basso livello. Sto pensando di dover elaborare il mio rendering grafico e collegarlo ad ArcMap (ho una dll che rende in modo fantastico bitmap di griglie). Penso che un buon posto per mostrare questo sarebbe quello di sovrascrivere l'evento Draw () su qualcosa come IRasterRenderer e inserire il mio rendering dell'immagine. Certo, potrebbe essere un po 'complicato con riproiezioni ecc.

Qualcuno ha mai fatto questo tipo di rendering grafico di basso livello in ArcMap - in tal caso puoi offrire qualche guida o cose di cui dovrei essere a conoscenza?


1
Non l'ho mai fatto, ma sento che puoi usare IRasterRenderer per personalizzare il modo di renderizzare un raster specifico. Se hai i due set di dati (hill + regular) puoi usare un IRasterCursor per fondere e disegnare ogni pixel insieme.
George Silva,

5
Per quello che vale, ho provato la stessa cosa ieri in ArcMap e sembra anche terribile.
Chad Cooper,

@George, penso che un RasterCursor cambi il valore CELL - mentre penso di voler cambiare il valore del colore - cioè cambiando in modo efficace la sua intensità di colore in base al valore di una sfumatura di collina - sai come modificare valori RGB specifici pixel per pixel?
Vidar,

1
Sembra che l '"effetto collinoso" sia calcolato arrotondando prima i valori di elevazione, il che trasforma efficacemente il tuo DEM in molte piccole terrazze improvvise. Se questo è corretto, è improbabile che tu trovi una soluzione: inviare una segnalazione di bug. È possibile aggirare il problema dei due livelli raggruppando la griglia e il livello della sfumatura. A proposito, credo che questa opzione sia nuova nella versione 10; sarebbe utile aggiornare i tag indicando quale versione di ArcMap stai utilizzando.
whuber

@Vidar the documents specifica che i cursori raster sono lì per "accesso raster ottimizzato". Devono anche essere in grado di leggere.
George Silva,

Risposte:


20

Utilizzare il ricampionamento dell'interpolazione bilineare durante la visualizzazione

È possibile migliorare in qualche modo la visualizzazione modificando il metodo di ricampionamento utilizzato dal vicino più vicino predefinito all'interpolazione bilineare. Proprietà layer -> Scheda Display -> Ricampiona durante la visualizzazione usando: Interpolazione bilineare.

Questo effetto funziona meglio con DEM e la rampa di colore predefinita in bianco e nero.

Otterrai un risultato molto migliore e un controllo molto maggiore sul display quando usi 2 raster come hai già fatto. Assicurarsi di utilizzare anche il metodo di ricampionamento dell'interpolazione bilineare durante la visualizzazione.

Aggiungi DEM:

inserisci qui la descrizione dell'immagine

Attiva "Usa effetto Hillshade" su: inserisci qui la descrizione dell'immagine

Esegue il rendering come segue sullo schermo: inserisci qui la descrizione dell'immagine

Cambia il ricampionamento durante la visualizzazione in Interpolazione bilineare: inserisci qui la descrizione dell'immagine

Esegue il rendering come segue sullo schermo: inserisci qui la descrizione dell'immagine


Hai ragione in quello che dici - questo effettivamente elimina i manufatti sorridenti - ma il collinare sembra ancora orribile. In un certo senso, immagino che i manufatti fossero una sorta di problema secondario - poiché è il pelo delle colline che voglio davvero inchiodare. Ma grazie per lo sforzo nella tua risposta!
Vidar,

10

Arcmap's on the fly hillshade, il metodo descritto, è rapido e sporco e non è mai stato pensato per sostituire il risultato di una sfumatura di Analista spaziale e / o Analista 3D. Sebbene lo stesso termine sia usato per descrivere entrambi, non sono affatto gli stessi.

Per creare una vera sfumatura senza Analista spaziale potresti provare il gdaldem di GDAL :

gdaldem hillshade dem.tif shade.tif

Il tutorial sui dati del terreno di TileMill ha una bella panoramica su come usare gdaldem per costruire una sfumatura composita con colorazione ipometrica.
dettaglio di sfumatura di collina e rilievo composito ipometrico

Se l'utilità non è abbastanza diretta per la tua applicazione, il codice sorgente C ++ per gdaldem è qui .


1
Roba buona! Soprattutto mi piace l'idea di combinare i risultati e di usare Hillshade e la pendenza. Non ho mai pensato di combinarli insieme. Dovrà provarlo.
Jakub Sisak GeoGraphics,

gdaldem è sicuramente la strada da percorrere per alcune operazioni GIS su ArcGIS. Hillshading, ho imparato, è sicuramente una di queste operazioni.
GIStack

1
@jakub, se ti piace l'idea della sfumatura di collina unita alla pendenza e all'ipometria, dai un'occhiata al lavoro di Tom Patterson sulle tinte ipometriche incrociate e alla produzione di mappe a colori naturali con dati satellitari di copertura del suolo . Le tecniche discusse hanno lo scopo di superare la limitazione con la colorazione ipsometrica standard dell'associazione spesso inappropriata di verdi ricchi di bassa quota con vegetazione e alti-marrone-rosso / rosso con deserti o terre sterili. Vale la pena leggere e studiare.
matt wilkie,

7

Se stai cercando una bella collina che impiega un po 'di tempo per essere creata, ma è ottima per progetti più grandi in cui otterrà molta esposizione, potresti provare il metodo Swiss Hillshade - richiede 3 strati, ma puoi quindi esportarli a un tiff georeferenziato per risparmiare spazio e per la portabilità. Questo metodo richiede Analista spaziale, credo, quindi non è una risposta diretta alla domanda di OP, ma può essere utile per gli altri che guardano i metodi di Hillshade in ArcGIS. Il metodo funziona anche in altri sistemi GIS, ma la cassetta degli attrezzi collegata è per ArcGIS.

Modifica 11/2014: Esri ha recentemente rilasciato un nuovo strumento per la creazione di Hillshades. Sembra davvero liscio e dovrebbe fondersi con i flussi di lavoro di Asker. Lo introducono qui e puoi scaricare il codice e le istruzioni di installazione qui


L'ho usato alcune volte di recente. Molto bella. Aggiunto alla mia borsa dei trucchi. Grazie per la condivisione.
Kstoney,

Nessun problema: sono contento che l'abbia trovato utile. Rende sicuramente una sfumatura più gradevole, e mi piace che riesca a mantenere i miei strati intorno e cambiare la colorazione sul dem per enfatizzare tutto in modo leggermente diverso
nicksan

1
Grazie per questo. inoltre, in 10.1, il Raster Shader ( blogs.esri.com/esri/apl/2013/05/02/… ) offre un controllo molto migliore sul display raster e consente di creare gradevoli sfumature.
SoilSciGuy

4

Quando dici all'articolo 2 "posso creare il mio effetto con la creazione di un livello Hillshade (senza usare Analista spaziale)", intendi applicazioni alternative per la creazione di una sfumatura?

Se si desidera utilizzare un'applicazione al di fuori di Analista spaziale, di recente ho appreso (ma non ho mai usato) la " estensione SEXTANTE per ArcGIS " ( gratuita ), che consente agli utenti di utilizzare gli strumenti SEXTANTE in ArcMap. Se guardi questo video , puoi vedere che dimostrano i modi per creare una sfumatura.


Non proprio: voglio solo applicare le mie tecniche di hillhading senza usare ESRI. Ho aggiunto commenti extra nel mio post di apertura.
Vidar,

4

Mi è sempre stato chiesto di aumentare l'esagerazione z quando si fa la collina.
Ho appena provato 100 sul mio e sembra un po 'estremo.
Anche cambiare il tipo di stiramento fa una grande differenza nell'aspetto della sfumatura.
Dal momento che stai parlando di come appare potresti anche guardare questo articolo di aiuto. esir help
Che dice che i Hillshading sono applicati alla risoluzione dei pixel del display.
E per cambiare l'angolo di illuminazione
Esri aiuta
anche a cambiare la direzione e il contrasto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.