Vous utilisez l'option Hillshade dans ArcMap?

15

Voici une jolie image du raster que j'utilise - sans aucun effet appliqué - juste la rampe de couleur et l'histogramme ajustés pour montrer tout le relief - quoique de manière très 2D!

entrez la description de l'image ici

J'ai une couche raster que je souhaite afficher avec ombrage par défaut. Je peux le faire dans le code et en fait, c'est la même chose que la sélection de l'option Hillshade dans ArcMap (voir ci-dessous):

entrez la description de l'image ici

Cependant, lorsque vous faites cela, cela semble décevant:

entrez la description de l'image ici

Surtout si vous zoomez sur le raster, vous voyez toutes sortes d'artefacts quadrillés - ce qui n'est pas joli du tout!

entrez la description de l'image ici

Cependant, si je crée un calque Hillshade approprié à l'aide du raster avec Spatial Analyst et que je le superpose avec une transparence de 85%, il semble assez bon et très différent!:

entrez la description de l'image ici

  1. Comment puis-je obtenir cet effet dans ArcMap et remplacer la fonctionnalité par défaut de l'option Hillshade (je suppose que c'est impossible, ou est-ce un paramètre que j'ai manqué qui fait que le raster est mal affiché). S'il est possible de remplacer ou de sélectionner les paramètres corrects - est-il possible de le faire dans ArcObjects.
  2. Si l'option 1 n'est pas possible, puis-je créer mon effet en créant une couche d'ombrage (sans utiliser Spatial Analyst) et le fusionner efficacement au raster d'origine - c'est-à-dire que je ne veux pas que les gens voient deux couches dans la table des matières dans ArcMap . Je veux juste une couche mais avec un rendu ombrage par défaut de mon choix / configuration. Je dois le faire également par programme, c'est-à-dire ArcObjects.

Une chose que j'ai apprise est que vous devez avoir votre DEM dans la référence spatiale et les unités de mesure correctes ou l'ombrage résultant semble trop noir et exagéré - regardez cette vidéo pour en savoir plus - c'est une très bonne explication.

Je pense donc que je sais maintenant ce que je dois faire en ce qui concerne la production d'un ombrage de haute qualité, mais je pense que cela va prendre du code ArcObjects de réglage de bas niveau. Je pense que je dois créer mon propre rendu graphique et le brancher sur ArcMap (j'ai une DLL qui rend les bitmaps des grilles de manière cool). Je pense qu'un bon endroit pour le montrer serait de remplacer l'événement Draw () sur quelque chose comme IRasterRenderer et d'insérer mon propre rendu d'image. Bien sûr, cela pourrait devenir un peu compliqué avec des reprojections, etc.

Quelqu'un a-t-il effectué ce type de rendu graphique de bas niveau dans ArcMap - si oui, pouvez-vous offrir des conseils ou des choses dont je devrais être conscient?

Vidar
la source
1
Je n'ai jamais fait cela, mais je pense que vous pouvez utiliser IRasterRenderer pour personnaliser la façon de rendre un raster spécifique. Si vous avez les deux jeux de données (hill + regular), vous pouvez utiliser un IRasterCursor pour mélanger et dessiner chaque pixel ensemble.
George Silva
5
Pour ce que ça vaut, j'ai juste essayé la même chose hier dans ArcMap et ça a l'air terrible aussi.
Chad Cooper
@George, je pense qu'un RasterCursor change la valeur CELL - alors que je pense que je veux changer la valeur de couleur - c'est-à-dire changer efficacement son intensité de couleur en fonction d'une valeur ombrée - savez-vous comment changer les valeurs RVB spécifiques pixel par pixel?
Vidar
1
Il semble que "l'effet d'ombrage" soit calculé en arrondissant d'abord les valeurs d'élévation, ce qui transforme efficacement votre DEM en beaucoup de minuscules terrasses abruptes. Si c'est correct, il est peu probable que vous trouviez une solution: soumettre un rapport de bogue. Vous pouvez contourner le problème des deux couches en regroupant la grille et la couche d'ombrage. BTW, je crois que cette option est nouvelle dans la version 10; il serait utile de mettre à jour les balises en indiquant la version d'ArcMap que vous utilisez.
whuber
@Vidar the docs spécifie que les curseurs Raster sont là pour un "accès raster optimisé". Ils doivent également pouvoir lire.
George Silva

Réponses:

20

Utiliser le rééchantillonnage d'interpolation bilinéaire pendant l'affichage

Vous pouvez quelque peu améliorer l’affichage en changeant la méthode de rééchantillonnage utilisée de l’interpolation bilinéaire la plus proche par défaut. Propriétés du calque -> onglet Affichage -> Rééchantillonner pendant l'affichage à l'aide de: Interpolation bilinéaire.

Cet effet fonctionne mieux avec DEM et la rampe de couleur noir et blanc par défaut.

Vous obtiendrez un résultat bien meilleur et beaucoup plus de contrôle sur l'affichage lorsque vous utiliserez 2 rasters comme vous l'avez déjà fait. Assurez-vous que vous utilisez également la méthode de rééchantillonnage d'interpolation bilinéaire pendant l'affichage.

Ajouter DEM:

entrez la description de l'image ici

Activez "Utiliser l'effet ombrage" sur: entrez la description de l'image ici

Rendu comme suit à l'écran: entrez la description de l'image ici

Changez le rééchantillonnage pendant l'affichage en interpolation bilinéaire: entrez la description de l'image ici

Rendu comme suit à l'écran: entrez la description de l'image ici

Jakub Sisak GeoGraphics
la source
Vous avez raison dans ce que vous dites - cela élimine effectivement les artefacts de quadrillage - mais l'ombrage semble toujours horrible. D'une certaine manière, je suppose que les artefacts étaient une sorte de problème secondaire - car c'est l'ombrage que je veux vraiment clouer. Mais merci pour l'effort dans votre réponse!
Vidar
10

L'ombrage à la volée d'Arcmap, la méthode décrite, est rapide et sale et n'a jamais été conçu pour remplacer le résultat de l'ombrage de Spatial Analyst et / ou 3D Analyst. Bien que le même terme soit utilisé pour décrire les deux, ils ne sont pas du tout les mêmes.

Pour créer un véritable ombrage sans Spatial Analyst, vous pouvez essayer le gdaldem de GDAL :

gdaldem hillshade dem.tif shade.tif

Le didacticiel sur les données de terrain TileMill offre un bon aperçu de la façon d'utiliser gdaldem pour créer un ombrage composite avec une teinte hypsométrique.
détail de l'ombrage et du relief composite hypsométrique

Si l'utilitaire n'est pas assez direct pour votre application, le code source C ++ pour gdaldem est ici .

Matt Wilkie
la source
1
Bon produit! Surtout comme l'idée de combiner les résultats et d'utiliser le Hillshade ainsi que la pente. Je n'ai jamais pensé à les combiner. Faudra essayer.
Jakub Sisak GeoGraphics
gdaldem est définitivement la voie à suivre pour certaines opérations SIG sur ArcGIS. Hillshading, j'ai appris, est certainement l'une de ces opérations.
GIStack
1
@jakub, si vous aimez l'idée de l'ombrage combiné à la pente et à l'hypsométrie, jetez un œil aux travaux de Tom Patterson sur les teintes hypsométriques mélangées et la production de cartes en couleurs naturelles avec des données de couverture terrestre par satellite . Les techniques discutées visent à surmonter la limitation avec une teinture hypsométrique standard de l'association souvent inappropriée des verts riches en basse altitude avec la végétation et des bruns / rouges élevés avec les déserts ou les terres stériles. Vaut la peine d'être lu et étudié.
matt wilkie
7

Si vous recherchez un ombrage de belle apparence qui prend du temps à créer, mais qui est idéal pour les grands projets où il obtiendra beaucoup d'exposition, vous pouvez essayer la méthode Swiss Hillshade - elle nécessite 3 couches, mais vous pouvez ensuite les exporter à un tiff géoréférencé pour économiser de l'espace et pour la portabilité. Cette méthode NÉCESSITE Spatial Analyst, je crois, donc ce n'est pas une réponse directe à la question d'OP, mais peut être utile à d'autres qui regardent les méthodes d'ombrage dans ArcGIS. La méthode fonctionne également dans d'autres systèmes SIG, mais la boîte à outils liée est destinée à ArcGIS.

Edit 11/2014: Esri a récemment publié un nouvel outil pour créer Hillshades. Il a l'air vraiment lisse et devrait fusionner avec les flux de travail de l'Asker. Ils le présentent ici et vous pouvez télécharger le code et les instructions d'installation ici

nicksan
la source
Je l'ai utilisé plusieurs fois récemment. Très agréable. Ajouté à mon sac de trucs. Merci d'avoir partagé.
Kstoney
Pas de problème - je suis content que vous l'ayez trouvé utile. Cela rend définitivement un ombrage plus agréable, et j'aime pouvoir garder mes couches autour et changer la coloration sur la dem pour souligner tout un peu différemment
nicksan
1
Merci pour cela. aussi, dans 10.1, le Raster Shader ( blogs.esri.com/esri/apl/2013/05/02/… ) donne un contrôle beaucoup plus amélioré sur l'affichage raster et vous permet de créer de belles nuances.
SoilSciGuy
4

Lorsque vous dites dans l'élément # 2 "puis-je créer mon effet en créant une couche d'ombrage (sans utiliser Spatial Analyst)", voulez-vous dire des applications alternatives pour créer un ombrage?

Si vous souhaitez utiliser une application en dehors de Spatial Analyst, je viens tout juste d'apprendre (mais je n'ai jamais utilisé) l' extension " SEXTANTE for ArcGIS " ( gratuite ), qui permet aux utilisateurs de consommer les outils SEXTANTE dans ArcMap. Si vous regardez ce clip vidéo , vous pouvez voir qu'ils montrent des façons de créer un ombrage.

RyanKDalton
la source
Pas vraiment - je veux juste appliquer mes propres techniques d'ombrage sans utiliser d'ESRI. J'ai ajouté des commentaires supplémentaires dans mon message d'ouverture.
Vidar
4

On m'a toujours demandé d'augmenter l'exagération z lorsque je fais de l'ombrage.
Je viens d'essayer 100 sur le mien et cela semble un peu extrême.
Changer également le type d'étirement fait une grande différence dans l'apparence de l'ombrage.
Puisque vous parlez de son apparence, vous pouvez également consulter cet élément d'aide. esir help
Qui dit que l'ombrage est appliqué à la résolution du pixel d'affichage.
Et pour changer l'angle d'éclairage,
Esri aide
également à changer la direction et le contraste

Brad Nesom
la source