J'ai deux fichiers de formes représentant des grilles avec des valeurs symbolisées par des couleurs graduées, illustrées ci-dessous:
Vous pouvez voir que les deux fichiers de formes englobent des plages de données similaires, mais affectez des couleurs légèrement différentes aux plages de ces données. Je voudrais symboliser les plages dans chacun des deux fichiers de formes en utilisant les mêmes couleurs pour les mêmes plages, ce qui permet une comparaison plus facile entre les fichiers et permet d'utiliser une seule légende.
Cependant, lorsque j'essaie de classer les plages avec un intervalle manuel, ArcGIS force ce qui devrait être la plage la plus élevée à inclure également la valeur minimale de l'ensemble de données. Vous pouvez le voir dans la plage "-81.64 - 10.00" du bloc de données de gauche ci-dessous. Cela force le calque entier à être symbolisé avec cette couleur. Essentiellement, ArcGIS exige que la valeur minimale dans l'ensemble de données soit utilisée comme valeur dans l'une des plages.
Existe-t-il un moyen de contourner cette fonctionnalité?
Réponses:
C'est vraiment une douleur majeure quand ArcMap essaie d'être, euh, utile même quand vous ne voulez vraiment pas que ce soit.
Une solution de contournement que j'ai trouvée consiste à créer un nouvel ensemble de données temporaire et à ajouter quelques points avec les valeurs minimale et maximale dont vous savez que vous aurez besoin dans la sortie - assurez-vous simplement de couvrir toute la plage.
Créez votre symbologie basée sur ce faux ensemble de données et enregistrez cette symbologie dans un fichier de couche :
... puis importez la symbologie du fichier * .lyr dans votre ensemble de données réel:
la source
@ChrisW a déclaré:
Cela m'a fait réfléchir et j'ai trouvé un moyen de définir la plage de classification en dessous de la valeur minimale. Mon problème d'origine était basé sur le fait que la plage de classification la plus basse était nécessaire pour contenir la valeur minimale dans les données.
Cependant, aucune restriction de ce type n'est imposée aux autres gammes de classification utilisées. Par conséquent, on peut forcer deux plages de classification (ou plus) à tomber en dessous de la valeur minimale dans les données. L'un d'eux représentera la plage de classification minimale préférée, tandis que l'autre fonctionnera comme une plage fictive pour contenir la valeur minimale.
Voici le point de départ que j'ai utilisé pour le classement. Chacune des couches dans les quatre trames de données a été classée en utilisant un intervalle défini de 10 pieds sans égard aux plages de données des autres couches.
La plage de classification maximale dans l'un des quatre blocs de données est "0,01 à 10,00", et la plage de classification minimale est "-110,62 à -110,00" (qui deviendra idéalement "-119,00 à -110,00"). Puisque j'essaie de maintenir des intervalles de 10 pieds, cela se traduit par un total de 13 intervalles.
J'utilise le bloc de données en haut à gauche comme source pour ma légende générique. Je commence par ouvrir les propriétés du calque et aller à Classifier. Comme je veux que 13 intervalles soient visibles, je dois sélectionner 14 intervalles pour avoir une plage fictive disponible. Je le fais en sélectionnant Manual comme méthode et en créant 14 classes.
Avec les plages définies dans leur état actuel (avec les plus grandes valeurs en haut), toute modification de la valeur entrée dans la plage n'aura aucun effet sur autre chose que la plage tout en bas de la liste. @ChrisW a souligné qu'il ne s'agit pas d'un bogue, mais plutôt d'une caractéristique de la façon dont ArcGIS attribue les valeurs de rupture. Voici la fenêtre Propriétés de la couche après avoir sélectionné la méthode manuelle mais avant d'apporter des modifications aux plages:
Pour résoudre ce problème, j'inverse temporairement le tri du calque. À ce stade, les plages les plus basses sont en haut, tandis que les plages les plus élevées sont en bas.
Maintenant, si je fais défiler vers le bas de la liste des plages (où la plage la plus élevée est affichée) et que je commence à définir les intervalles appropriés de bas en haut, ArcGIS se souviendra des plages que je définis:
Dans cette image, j'ai défini la valeur supérieure dans 5 des 14 plages, en commençant par la plus grande valeur (10,00) et en descendant.
Lorsque j'atteins le haut de la liste et modifie ma 14e plage, sa valeur minimale sera toujours définie comme la valeur minimale dans le calque, car il n'a pas d'autre plage en dessous pour extraire une valeur de:
Cela n'a pas d'importance, cependant, car c'est la gamme factice que j'ai mentionnée auparavant. À ce stade, j'inverse à nouveau le tri du calque, de sorte que les plages les plus élevées sont à nouveau en haut. L'image ci-dessous montre la légende mise à jour pour le bloc de données en haut à gauche, qui reflète désormais les plages appropriées pour les quatre blocs de données, y compris la 14e plage factice:
L'étape suivante consiste à propager ces modifications jusqu'au reste des trames de données. Certains problèmes sont cependant apparents lorsque j'essaie d'importer la symbologie dans les autres trames de données:
Comme l'a souligné @ChrisW, cela est dû à ma décision de commencer avec une couche qui n'a pas la valeur minimale absolue dans toutes les trames de données. Il semble que le bloc de données n'affichera aucune plage inférieure aux plages qui existent dans le bloc de données d'origine.
Si vous commencez avec un calque comme celui que j'ai fait, la meilleure solution que j'ai trouvée pour cela est de répéter les étapes que j'ai discutées ci-dessus pour chacun des quatre blocs de données; définir manuellement 14 classes, inverser le tri des classes, redéfinir le haut de chaque plage, puis inverser le tri pour placer les plages les plus élevées en haut.
Cependant, la solution la plus simple consiste à démarrer le processus de classification avec la couche qui a la plus petite valeur. L'option Importer la symbologie peut alors être utilisée correctement pour les autres trames de données.
Enfin, je peux supprimer trois des légendes et masquer la plage factice dans la légende restante ou la convertir en graphiques et supprimer la plage factice.
la source
Je suis tombé sur ce même problème, je pense ... Si je comprends bien, vous aviez deux (ou plus) ensembles de données et vous devez obtenir les plages d'échelle des ensembles de données pour que les comparaisons puissent être faites.
Je l'ai résolu en:
Désolé si c'est un peu trop simplifié ou même une mauvaise / mauvaise pratique. Je suis un utilisateur de longue date de GIS Stack Exchange et j'ai pensé qu'il était temps que je commence à contribuer, donc c'est mon premier message!
la source
save class breaks
TERMINÉ
la source
Bien que la classification utilise des plages similaires, les données ne partagent pas de plage. Je pense que la solution ici est de le résoudre dans la légende et les affectations de couleurs, et non dans la classification réelle.
Commencez avec votre résultat en bas à gauche et convertissez cette légende en graphique. Modifiez le texte pour obtenir les plages souhaitées. Je remarque que toutes vos autres images ont une plage de 10 unités, mais celle-ci en fait 20 et elle se chevauche. Par exemple, trois des images ont -49,99 à -40,00 mais la partie inférieure gauche a -49,99 à -60,00, et la classe suivante est de -59,99 à -70,00. Les images sont également des plages opposées - c'est-à-dire que trois sont une valeur inférieure à gauche tandis que le coin inférieur gauche est une valeur inférieure à droite (qui me lit beaucoup plus nativement, augmentant les nombres sinon les valeurs de gauche à droite). Peut-être que ces problèmes doivent être résolus en premier pour gagner du temps plutôt qu'une simple modification manuelle du texte.
Une fois que vous avez une légende avec des plages et une rampe de couleurs que vous aimez, vous pouvez revenir à vos deux premiers calques (qui sont déjà classés correctement) et modifier manuellement le patch de couleur de chaque plage pour correspondre à la couleur que vous avez choisie pour la plage dans la légende . Étant donné que les deux couches n'affichent pas leurs propres légendes, peu importe que dans l'une d'entre elles, la plage soit en fait de -89,99 à -80,00 et l'autre de -81,64 à -80,00 car elles auront toutes les deux la même couleur .
Notez cependant que cela impliquera que les deux ensembles de données ont la même plage, ce qu'ils n'ont pas. En fait, il semble qu'il y aura deux patchs de couleur qui ne seront utilisés que dans une seule carte (la plus haute et la plus basse). Vous voudrez peut-être mettre une note sur chaque carte qui donne leur plage de données absolue. J'utiliserais également «à» au lieu de «-» entre les plages, car avec les valeurs négatives, c'est un peu déroutant à lire.
Solution alternative:
Pour autant que je sache et que je puisse trouver des preuves, vous devez avoir une classe qui commence à votre valeur minimale. Vous pouvez ajouter manuellement des classes (même vides) au-dessus ou en dessous de votre plage de données, mais une classe doit commencer à la valeur minimale.
Donc, configurez votre symbologie à l'aide du raster qui contient la valeur minimale / minimale de tous les rasters. Faites-les symboliser. Vous pouvez ensuite modifier l' étiquette de classe pour dire ce que vous voulez. Donc, si votre valeur la plus basse était de 0,4, vous pouvez toujours changer l'étiquette pour dire 0.
Une fois que vous avez terminé et configuré avec la palette de couleurs que vous aimez, enregistrez un fichier lyr de la symbologie. Vous devriez alors pouvoir ouvrir vos autres rasters et appliquer cette même symbologie. Parce que les autres rasters auront tous des valeurs plus élevées, ils devraient se classer correctement et juste la valeur minimale elle-même augmentera (ou peut-être que cette classe sera supprimée si rien ne s'y trouve). Ce qui encore une fois, vous pouvez changer le libellé de classe en plancher de classe au lieu de la valeur réelle si cela ne se poursuit pas avec la symbologie.
la source
Une solution plus simple mais aussi plus sale qui a fonctionné pour moi. N'oubliez pas de créer une sauvegarde de vos données d'origine.
la source
Je crois qu'il s'agit de la légende des fonctionnalités mais pas des rasters. S'il s'agit de rasters, ne tenez pas compte de ma suggestion. J'utilise habituellement ces derniers:
J'espère que ça aide, FP
la source
J'ai effectué la solution de contournement suivante. J'ai créé mes propres interruptions de classe dans un document XML et l'ai chargé dans la symbologie classée des deux couches.
Charger les ruptures de classe XML: même menu que celui où vous avez enregistré le modèle (voir 1), cliquez sur "charger les ruptures de classe"
la source
Une autre manière consiste à combiner toutes les valeurs de chaque couche en une seule couche, de cette façon, vous aurez les valeurs minimum et maximum sur la couche.
L'illustration:
1.combinez les valeurs de tous les calques dans une seule colonne (appelons-la All_Vals) dans une feuille Excel
à côté de la colonne All_Vals, ajoutez deux nouvelles colonnes nommées X et Y et remplissez-les de zéros.
Dans arcmap, ajoutez la feuille Excel en tant que tableau et utilisez-la pour créer une classe d'entités ponctuelles à l'aide de la commande / outil d'affichage des données xy, puis exportez la couche d'événements dans un fichier de formes (je vais l'appeler NB_Point) et ajoutez-la au bloc de données.
4. Convertissez le fichier de forme NB_Point en une grande partie du type de classe d'entités de vos couches, par exemple si le type de votre couche d'entités est polygone, utilisez l'outil tampon pour créer une classe d'entités polygonales à partir du fichier de formes NB_Point (appelons-le NB_polygon).
J'espère que cela vous aide et désolé pour toute faute d'orthographe.
la source