Comment utiliser une symbologie cohérente entre plusieurs rasters étirés dans ArcMap?

17

J'ai une série de rasters continus représentant le même phénomène au fil du temps, j'ai donc besoin d'utiliser la même symbologie entre eux tous.

J'ai donc défini la symbologie étirée du premier raster, avec une rampe de couleur à partir des valeurs min / max:

entrez la description de l'image ici

Maintenant, dans le deuxième raster, j'importe la symbologie du premier raster. Malheureusement, bien que les étiquettes correspondent, les valeurs min / max réelles ne sont pas les mêmes que pour la première couche:

entrez la description de l'image ici

Ainsi, le rouge dans le deuxième raster correspond à une valeur de 0,47, au lieu de 0,66.

Comment puis-je m'assurer que les deux rasters utilisent une symbologie cohérente?

Stephen Lead
la source

Réponses:

18

Un grand merci à @Erica pour la réponse, qui pour une raison quelconque n'a pas fonctionné pour moi.

Mais cela m'a mis sur la bonne voie pour trouver une solution, qui était d'utiliser l'étirement minimum / maximum, en combinaison avec l'option Modifier les valeurs hautes / basses:

entrez la description de l'image ici

L'importation de cette symbologie dans les autres rasters a provoqué l'étirement correct à appliquer à toutes les images.

Stephen Lead
la source
Je rencontre ce même problème aujourd'hui. Avez-vous également utilisé les paramètres personnalisés pour les statistiques ou l'avez-vous simplement laissé sur la valeur par défaut?
Devdatta Tengshe
2
C'est la façon la plus simple et la plus simple de procéder. @Devdatta Tengshe: Il n'est pas nécessaire d'utiliser les paramètres personnalisés en combinaison avec l'étirement minimum-maximum et les valeurs élevées / basses modifiées. L'étirement minimum-maximum est toujours linéaire (sauf si un étirement gamma supplémentaire est appliqué), et les valeurs élevées / basses modifiées remplacent les statistiques personnalisées .
lavarider
2
Génial, j'ai appris un moyen plus simple :)
Erica
J'ai également rencontré ce problème! Cette solution est excellente, mais ce serait encore mieux si le lien entre les couches était dynamique; si vous définissez des couleurs en fonction du raster avec la plus grande plage, mais que certains rasters avec une petite plage semblent "délavés", alors vous voudrez modifier légèrement le min / max. Cependant, lorsque vous effectuez cette opération, les autres rampes ne sont pas mises à jour dynamiquement, et vous finissez par devoir recommencer tout le processus de définition de la symbologie de chaque couche. Quelqu'un connaît-il un moyen de conserver un lien de symbologie dynamique?
Keegan Smith
5

Faites un clic droit sur la couche raster dans la table des matières et sélectionnez "Enregistrer en tant que fichier de couche". Ajoutez votre autre raster à la carte, accédez à Propriétés de la couche - onglet Symbologie, cliquez sur importer, recherchez le fichier de couche enregistré. Vous pouvez également appliquer la symbologie de tout raster de votre document ArcMap à tout autre raster de votre document en cliquant également sur Importer mais en sélectionnant la symbologie de raster source dans la liste.

EDIT: Les valeurs que vous voyez dans votre capture d'écran # 2 sont les valeurs minimum et maximum du raster dont vous essayez de faire correspondre la symbologie à celle de votre raster d'origine. (Si vous vérifiez les propriétés - onglet source - faites défiler vers le bas jusqu'à la statistique - Min et Max - ces valeurs sont les mêmes que celles rapportées sur l'onglet de symbologie.

Pour que toutes les symbologies correspondent, toutes les valeurs des rasters doivent se situer dans la même plage de la symbologie.

Concevez votre symbologie avec une gamme pouvant accueillir TOUS vos rasters. Dans votre cas des 2 rasters, vous avez montré: Haut: 0,66196 Bas: 0140288 (Haut du raster 1 et bas du raster 2). Pour ce faire, vous devez modifier le type d'étirement sur Minimum-Maximum. Une fois que vous le faites, vous allez modifier les valeurs Haute et Basse de votre symbologie souhaitée, puis l'enregistrer en tant que fichier de couche. Si tous vos rasters correspondent à la plage que vous avez spécifiée et que vous appliquez le même fichier de couche à tous, la symbologie correspondra.

J'ai fait quelque chose de similaire avec des images RVB composites d'images aériennes, mais je viens de tester avec 2 rasters complètement différents; Information sur les terres Ontario DEM version 2 résolution de 20 m et SMRT3 DEM à l'échelle de la province (résolution de 90 m) et les symbologies correspondent comme prévu.

FIGURE 1: Supposons que j'ai déjà modifié et enregistré un fichier de couche dans une plage min-max que je voulais (haute 600, basse 300). Ici, j'ajoute un nouveau raster DEM de dimensions et de résolution différentes mais dont la plage min, max tombe avec la plage de symbologie: entrez la description de l'image ici

Après avoir chargé la symbologie dans ce raster: entrez la description de l'image ici

Et voici comment ils correspondent - vous ne pouvez pas voir où un DEM se termine et où l'autre commence, mais seulement que les cellules sont plus grandes dans l'une par rapport à l'autre:

entrez la description de l'image ici

Jakub Sisak GeoGraphics
la source
1
Merci pour l'astuce - cependant, c'est ce que je faisais dans la deuxième capture d'écran du message d'origine, où vous pouvez voir que la valeur maximale de la rampe ne correspond pas à celle de l'étiquette.
Stephen Lead le
1
@StephenLead - J'ai ajouté plus d'informations à ma réponse.
Jakub Sisak GeoGraphics
5

Pour appliquer le fichier Layer avec python à tous les rasters portant un certain nom, vous pouvez utiliser:

# read in mxd file
mxd=arcpy.mapping.MapDocument(r"Path_To_MXD_File")

# read in all rasters in the mxd which have names starting with "test"
rasters=arcpy.mapping.ListLayers(mxd,"test*") 

# apply the symbology lyr file to the rasters
for r in rasters:

     arcpy.ApplySymbologyFromLayer_management(r,r"Path_To_Lyr_File")
NiklasKeck
la source
4

Grande question - j'avais besoin de faire quelque chose de similaire récemment, et c'est bien caché! Dans la boîte de dialogue Symbologie que vous montrez ci-dessus, vous devez faire défiler vers le bas. Cela vous amènera à la boîte de dialogue "Stretch".

Tfaites défiler vers le bas pour trouver les détails de l'histogramme

Par défaut, ArcMap analysera l'histogramme et trouvera son propre ajustement optimal en fonction des statistiques d'une image spécifique. Cela optimise la rampe de couleur pour chaque image, mais ce n'est pas ce que vous voulez - vous voulez UNE rampe pour BEAUCOUP d'images. Choisissez Type "Personnalisé" et Statistiques "Dans les paramètres personnalisés (ci-dessous)", puis entrez des valeurs qui couvrent la plage min-max complète de vos rasters.

Erica
la source
Merci, cela semble être exactement ce dont j'ai besoin. Malheureusement, je trouve que cela ne semble pas réellement fonctionner - bien que la plage dans la boîte de dialogue Symbologie affiche désormais correctement le nouveau min / max, les symboles sur la carte sont inchangés (0.47 est toujours rouge). Je vais le tester un peu plus, puis enregistrer un appel au support si nécessaire.
Stephen Lead