¿Clasificar manualmente datos graduados fuera del rango en ArcGIS for Desktop?

13

Tengo dos archivos de formas que representan cuadrículas con valores simbolizados con colores graduados, que se muestran a continuación:

Original

Puede ver que los dos archivos de forma abarcan rangos de datos similares, pero asignan colores ligeramente diferentes a los rangos de estos datos. Me gustaría simbolizar los rangos en cada uno de los dos archivos de forma usando los mismos colores para los mismos rangos, permitiendo una comparación más fácil entre los archivos y permitiendo que se use una sola leyenda.

Sin embargo, cuando intento clasificar los rangos con un intervalo manual, ArcGIS fuerza lo que debería ser el rango más alto para incluir también el valor mínimo del conjunto de datos. Puede ver esto en el rango "-81.64 - 10.00" del marco de datos izquierdo, a continuación. Esto obliga a simbolizar toda la capa con este color. Esencialmente, ArcGIS requiere que el valor mínimo en el conjunto de datos se use como valor en uno de los rangos.

Nuevos intervalos

¿Hay alguna manera de eludir esta característica?

hfisch
fuente
Recuerdo haber tenido este problema también, aunque no recuerdo exactamente cómo lo resolví. Si clasifica como "intervalo igual" y hace doble clic en los valores, ¿puede cambiarlos de esa manera?
GISKid
@GISKid tan pronto como hago doble clic, la clasificación vuelve a "Manual", desafortunadamente.
hfisch
¿Qué pasa con el ajuste de los valores en el histograma en sí?
GISKid
@GISKid los valores vuelven al valor mínimo si los arrastra por debajo del valor mínimo.
hfisch
2
Creo que la mejor y más simple respuesta a esto es gis.stackexchange.com/a/136497 : la primera (y actualmente aceptada) respuesta es demasiado larga para mi gusto.
PolyGeo

Respuestas:

12

Definitivamente es un gran dolor cuando ArcMap trata de ser, um, útil incluso cuando realmente no quieres que sea.

Una solución alternativa que he encontrado es crear un nuevo conjunto de datos temporal y agregar algunos puntos con los valores mínimos y máximos que sabe que necesitará en la salida, solo asegúrese de cubrir todo el rango.

Cree su simbología basada en este conjunto de datos falso y guarde esta simbología en un archivo de capa :

ingrese la descripción de la imagen aquí

... luego importe la simbología del archivo * .lyr a su conjunto de datos real:

ingrese la descripción de la imagen aquí

Stephen Lead
fuente
1
Esta solución es menos hacky que la mía. Estoy cambiando a tu respuesta.
hfisch
Gracias, funciona de maravilla si lees todos los cuadros de diálogo que arcmap te arroja con suficiente cuidado.
Luuklag el
6

@ChrisW dijo:

Hasta donde yo sé y puedo encontrar evidencia, no puede establecer un rango de clasificación por debajo del valor mínimo en los datos.

Esto me hizo pensar, y en realidad encontré una manera de establecer el rango de clasificación por debajo del valor mínimo. Mi problema original se basó en el hecho de que se requería el rango de clasificación más bajo para contener el valor mínimo en los datos.

Sin embargo, dicha restricción no se aplica a los otros rangos de clasificación utilizados. Por lo tanto, se puede forzar que dos (o más) rangos de clasificación caigan por debajo del valor mínimo en los datos. Uno de estos representará el rango de clasificación mínimo preferido, mientras que el otro funcionará como un rango ficticio para contener el valor mínimo.


Aquí está el punto de partida que utilicé para la clasificación. Cada una de las capas en los cuatro marcos de datos se clasificó utilizando un intervalo definido de 10 pies sin tener en cuenta los rangos de datos de las otras capas.

Punto de partida

El rango de clasificación máximo en cualquiera de los cuatro marcos de datos es "0.01 a 10.00", y el rango de clasificación mínimo es "-110.62 a -110.00" (que idealmente se convertirá en "-119.00 a -110.00"). Como intento mantener intervalos de 10 pies, esto se traduce en un total de 13 intervalos.


Estoy usando el marco de datos superior izquierdo como la fuente de mi leyenda genérica. Comienzo abriendo las Propiedades de la capa y yendo a Clasificar. Como quiero que sean visibles 13 intervalos, necesito seleccionar 14 intervalos para tener un rango ficticio disponible. Hago esto seleccionando Manual como método y creando 14 clases.

Paso 1a

Con los rangos configurados en su estado actual (con los valores más grandes en la parte superior), cualquier cambio en el valor ingresado en el rango no tendrá ningún efecto en nada más que el rango en la parte inferior de la lista. @ChrisW señaló que esto no es un error, sino una característica de cómo ArcGIS asigna valores de ruptura. Aquí está la ventana Propiedades de capa después de seleccionar el método Manual, pero antes de realizar cualquier cambio en los rangos:

Paso 1b


Para resolver este problema, revierto temporalmente la clasificación de la capa. En este punto, los rangos más bajos están en la parte superior, mientras que los rangos más altos están en la parte inferior.

Paso 2a

Ahora, si me desplazo al final de la lista de rangos (donde se muestra el rango más alto) y comienzo a definir los intervalos adecuados de abajo hacia arriba, ArcGIS recordará los rangos que defino:

Paso 2b

En esta imagen, he definido el valor superior en 5 de los 14 rangos, comenzando con el valor más grande (10.00) y trabajando hacia abajo.


Cuando llegue a la parte superior de la lista y edite mi decimocuarto rango, su valor mínimo todavía se definirá como el valor mínimo en la capa, ya que no tiene otro rango debajo para que pueda extraer un valor de:

Paso 3a

Sin embargo, esto no importa, ya que es el rango ficticio que mencioné antes. En este punto, invierto la clasificación de la capa una vez más, por lo que los rangos más altos están nuevamente en la parte superior. La imagen a continuación muestra la leyenda actualizada para el marco de datos superior izquierdo, que ahora refleja los rangos adecuados para los cuatro marcos de datos, incluido el rango ficticio número 14:

Paso 3b


El siguiente paso es propagar estos cambios al resto de los marcos de datos. Sin embargo, algunos problemas son aparentes cuando intento importar la simbología a los otros marcos de datos:

Paso 4a

Como señaló @ChrisW, esto se debe a mi decisión de comenzar con una capa que no tiene el valor mínimo absoluto en todos los marcos de datos. Parece que el marco de datos no mostrará ningún rango que esté por debajo de los rangos que existen en el marco de datos original.

Si está comenzando con una capa como la que hice, la mejor solución que he encontrado para esto es repetir los pasos que discutí anteriormente para cada uno de los cuatro marcos de datos; define manualmente 14 clases, invierte la clasificación de las clases, redefine la parte superior de cada rango y luego revierte la clasificación para colocar los rangos más altos en la parte superior.

Sin embargo, la solución más simple es comenzar el proceso de clasificación con la capa que tiene el valor más pequeño. La opción Importar simbología se puede usar correctamente para los otros marcos de datos.

Paso 4b


Finalmente, puedo eliminar tres de las leyendas y ocultar el rango ficticio en la leyenda restante o convertirlo a gráficos y eliminar el rango ficticio.

Punto final

hfisch
fuente
Me alegra que hayas podido resolver algo. Edité mi respuesta para corregir el error que usted citó (no estoy seguro de por qué dije eso: sus imágenes originales mostraron que podía hacerlo ).
Chris W
En realidad, estoy teniendo problemas para replicar esto. Para que la respuesta sea un poco más útil, ¿podría editar exactamente cómo creó esos rangos por debajo del valor mínimo?
Chris W
@ChrisW He ampliado mucho el proceso. ¡Avísame si todavía no tiene sentido!
hfisch
2
Gracias por la actualización. Resolví el problema: hay una diferencia significativa en la forma en que se manejan las pausas de definición entre los cuadros de diálogo de clasificación y simbología que se relacionan con lo que usted cuestiona como error. Básicamente, ordena automáticamente los valores de ruptura, pero la ruptura más baja por debajo del valor mínimo siempre está vinculada al valor mínimo y aparece en la parte superior (o inferior, según la clasificación). Para su información, aunque no puede especificar un número total, puede agregar o eliminar clases en el Manual haciendo clic derecho en el histograma.
Chris W
1
En cuanto a la aplicación de la simbología a otros marcos de datos, como mencioné en mi respuesta, intente comenzar con los datos que tengan el valor más bajo (el -110.62) utilizando eso para la simbología inicial. Observo en su tercera a última imagen que el valor mínimo de la clase ficticia sigue siendo -61.01 para los cuatro, lo que creo es la razón por la que nada de lo que se muestra a continuación a pesar de que hay una clase para ello. Si comienza con el valor más bajo y el valor mínimo es mayor, creo que incluirá o mostrará el mínimo de simbología al mínimo de datos cuando aplique la simbología a los otros conjuntos de datos.
Chris W
5

Me encontré con este mismo problema, creo ... Si lo entiendo bien, tenía dos (o más) conjuntos de datos y necesita hacer que los rangos de escala de los conjuntos de datos coincidan para poder hacer comparaciones.

Lo resolví por:

  1. Cree su primer conjunto de datos como desea que aparezca. Idealmente con el rango de datos más grande solo para que los símbolos se puedan copiar más fácilmente al segundo conjunto de datos (rango más pequeño).

ingrese la descripción de la imagen aquí

  1. Cree su segundo conjunto de datos, pero todavía no se preocupe por la simbología. En el segundo conjunto de datos Propiedades de capa> pestaña Simbología, elija el mismo tipo de clasificación que con el primer conjunto de datos, para este ejemplo estoy usando Categorías> Valores únicos y luego haga clic en el botón Agregar todos los valores .

ingrese la descripción de la imagen aquí

  1. Agrupe los valores para que caigan en los rangos correspondientes utilizados en el primer conjunto de datos. Seleccione todos los valores para una categoría en particular y luego haga clic derecho y seleccione Agrupar . Las dos categorías principales ya se han agrupado en la imagen a continuación, los cuatro valles resaltados están a punto de "agruparse" en un tercer grupo.

ingrese la descripción de la imagen aquí

  1. Me resulta más fácil en esta etapa volver a etiquetar las categorías para que sea más fácil realizar un seguimiento. En este punto, puede ver cinco de las siete categorías pobladas.

ingrese la descripción de la imagen aquí

  1. Finalmente (casi) y el quid de este problema, agregar las categorías vacías que existen fuera del rango de datos del segundo conjunto de datos. En la pestaña Propiedades de capa> Simbología, haga clic en el botón Agregar valores y complete las categorías requeridas encima y debajo de los rangos de datos según sea necesario.

ingrese la descripción de la imagen aquí

  1. Por último, vuelva a etiquetar las nuevas categorías vacías para que se correspondan con el primer conjunto de datos y luego vuelva a colorear cada categoría para que coincida con las primeras.

ingrese la descripción de la imagen aquí

Lo siento si eso es un poco simplificado o incluso una práctica errónea / mala. Hace mucho tiempo que uso GIS Stack Exchange y pensé que ya era hora de que comenzara a contribuir, así que esta es mi primera publicación.

Nige
fuente
2
Lo siento, acabo de darme cuenta de que el OP es para datos graduados y después de una comprobación rápida ahora me doy cuenta de que mi solución no es válida. Leeré más de cerca la próxima vez ...
Nige
4
  1. Elige la cantidad de clases que deseas.
  2. Haga clic derecho en los símbolos y seleccione save class breaks
  3. esto guarda un archivo xml que puede abrir y editar en cualquier editor de texto
  4. edite los saltos de clase que desee en el archivo xml y guárdelos
  5. haga clic derecho en los símbolos nuevamente e importe el archivo de saltos de clase recién editado

HECHO

Craig
fuente
3

Si bien la clasificación utiliza rangos similares, los datos no comparten un rango. Creo que la solución aquí es resolverlo en la leyenda y las asignaciones de color, y no en la clasificación real.

Comience con su resultado inferior izquierdo y convierta esa leyenda en un gráfico. Edite el texto para obtener los rangos que desee. Noté que todas sus otras imágenes tienen un rango de 10 unidades, pero esta está haciendo 20 y se superpone. Por ejemplo, tres de las imágenes tienen -49.99 a -40.00 pero la parte inferior izquierda tiene -49.99 a -60.00, y la siguiente clase es -59.99 a -70.00. Las imágenes también son rangos opuestos, es decir, tres tienen un valor más bajo a la izquierda, mientras que la izquierda más baja es un valor más bajo a la derecha (que me lee mucho más de forma nativa, aumentando los números si no los valores de izquierda a derecha). Quizás esos problemas deben abordarse primero para ahorrar algo de tiempo en lugar de solo una edición manual de texto.

Una vez que tenga una leyenda con rangos y una rampa de color que le guste, puede volver a sus dos primeras capas (que ya están clasificadas correctamente) y editar manualmente el parche de color de cada rango para que coincida con el color que decidió para el rango en la leyenda . Dado que las dos capas no mostrarán sus propias leyendas, no importará que en una de ellas el rango sea de -89.99 a -80.00 y la otra sea de -81.64 a -80.00 porque ambas tendrán el mismo color .

Sin embargo, tenga en cuenta que esto implicará que ambos conjuntos de datos tienen el mismo rango, que no tienen. De hecho, parece que habrá dos parches de color que solo se usan en un mapa cada uno (el más alto y el más bajo). Es posible que desee poner una nota en cada mapa que proporcione su rango de datos absoluto. También usaría 'to' en lugar de '-' entre rangos, porque con los valores negativos es un poco confuso de leer.


Solución alternativa:

Hasta donde yo sé y puedo encontrar evidencia, debes tener una clase que comience con tu valor mínimo. Puede agregar clases manualmente (incluso las vacías) por encima o por debajo de su rango de datos, pero una clase debe comenzar con el valor mínimo.

Por lo tanto, configure su simbología utilizando el ráster que contiene el valor mínimo / mínimo de todos los rásteres. Obtenga estos simbolizados. Luego puede editar la etiqueta de la clase para decir lo que quiera. Entonces, si su valor más bajo fue 0.4, aún podría cambiar la etiqueta para decir 0.

Una vez que haya hecho esto y configurado con la rampa de color que desee, guarde un archivo de letra de la simbología. Entonces debería poder abrir sus otros rásteres y aplicar esa misma simbología. Debido a que todos los otros rásteres tendrán valores más altos, deberían clasificarse correctamente y solo el valor mínimo en sí mismo aumentará (o tal vez esa clase se eliminará si nada cae dentro de ella). De nuevo, puede cambiar la etiqueta de la clase al piso de la clase en lugar del valor real si eso no se transfiere con la simbología.

Chris W
fuente
En realidad, puede omitir el paso .lyr y simplemente clasificar un ráster como desee (rangos, colores, etc.) y luego usar la función de simbología de importación para aplicar esto a todos sus otros rásteres. Abra Propiedades de capa, seleccione la pestaña Simbología, seleccione el Icono de carpeta @ arriba a la derecha (que indicará Importar cuando pase el cursor sobre él) y luego seleccione el ráster que desea imitar.
JWallace
@JWallace True, siempre que sus otros rásteres ya estén cargados en el mismo documento de mapa (posiblemente el mismo marco de datos, no puedo recordar si le permitirá importar simbología de uno diferente) y está dispuesto a dejar que su trabajo configure el la simbología reside solo en el mxd (y tal vez guarde una copia de seguridad en caso de que cambie las cosas). Tengo una respuesta gráfica que cubre esos pasos aquí .
Chris W
Buena captura de las unidades extrañas para el resultado inferior izquierdo. Creo que fue un artefacto de mis intentos de definir manualmente los rangos, y los definí en orden inverso. El uso de 'to' en lugar de '-' también es bueno. El problema que tengo con su solución original es que requiere mucho trabajo manual con coloración y etiquetado, y necesito generar una serie de estas figuras. Sin embargo, su solución alternativa me dio algunas ideas. Creo que encontré una manera de hacerlo un poco más elegante y eliminar los problemas del valor mínimo.
hfisch
3

Una solución más fácil pero también más sucia que me ha funcionado. No olvides crear una copia de seguridad de tus datos originales.

  1. Abra la tabla de atributos y comience a editar
  2. Edite dos valores manualmente para que se incluyan el valor mínimo y máximo en el que desea que se base su clasificación (recuerde los valores originales)
  3. Guardar y detener la edición
  4. Clasificar en base a los nuevos extremos
  5. Comience de nuevo y reemplace manualmente los valores alterados con los valores originales.
  6. La clasificación existente no se verá afectada
Alex_A
fuente
2

Creo que esto se trata de leyenda de características pero no de rásteres. Si se trata de rásteres, ignore mi sugerencia. Usualmente uso estos:

  • Combinar 2 (o más shapefiles) NIÑOS en uno, llamémoslo FAMILIA
  • crear leyenda para FAMILIA
  • Importar simbología para cada NIÑO de FAMILIA

Espero que ayude, FP

FelixIP
fuente
Solo date cuenta de que es muy similar a JWallace
FelixIP
2

Hice la siguiente solución. Creé mis propios saltos de clase en un documento XML y lo cargué en la simbología clasificada de ambas capas.

  1. Para obtener una plantilla de un documento XML de saltos de clase: en las propiedades de la capa, haga clic derecho en el rango de clasificación y luego "guardar saltos de clase".
  2. Editar documento XML: ingrese los saltos de clases en el documento XML, también puede ingresar números que estarán fuera del rango de sus conjuntos de datos.
  3. Cargar saltos de clase XML: mismo menú donde guardó la plantilla (ver 1), haga clic en "cargar saltos de clase"

    Paso 1 y 3

Paso 2

Maja Ott
fuente
1
¿Qué versión de ArcMap? No tengo la opción de guardar saltos de clase en v10.6: i.imgur.com/znDqUpQ.png
matt wilkie
@mattwilkie No es una cuestión de versión sino de tipo de datos. Está viendo un cuadro de diálogo de simbología para datos vectoriales, y guardar saltos de clase como este solo está disponible para datos ráster. Esta respuesta básicamente duplica la de Craig, pero con ilustraciones.
Chris W
1

Una forma alternativa es combinar todos los valores de cada capa en una capa, de esta manera tendrá los valores mínimos y máximos en la capa.

La ilustración:
1. combina los valores de todas las capas en una columna (vamos a nombrarlo como All_Vals) en una hoja de Excel

  1. junto a la columna All_Vals, agregue dos columnas nuevas denominadas X e Y y llénelas con ceros.

  2. En arcmap, agregue la hoja de Excel como una tabla y úsela para crear una clase de entidad de puntos usando el comando / herramienta de visualización de datos xy luego exporte la capa de evento a un archivo de forma (lo nombraré NB_Point) y agréguela al marco de datos.

4) Convierta el archivo de forma NB_Point en gran parte del tipo de clase de entidad de sus capas, por ejemplo, si el tipo de su capa de entidad es poligonal, use la herramienta de búfer para crear una clase de entidad poligonal a partir del archivo de forma NB_Point (nombrámoslo como NB_polygon).

  1. Ahora todo lo que tiene que hacer es hacer clic con el botón derecho en la capa final NB_polygon y aplicar la simbología de color graduada usando la clasificación de cortes naturales, exportarla a un archivo .lyr para usarla como la capa de entrada al usar la utilidad de simbología de capa de importación para cada de las capas originales.

Espero que esto ayude y lo siento por cualquier falta de ortografía.

BMB
fuente