Ordenar una tabla de características por ubicación geográfica

8

Aquí hay un desafío interesante: necesito insertar una tabla en un diseño de mapa para que los registros en la tabla se ordenen de acuerdo con su posición geográfica en el suelo. Por ejemplo, en un mapa de norte a arriba, la característica más al norte (puntos en este caso) debería ser el primer registro, y la más meridional la última.

La composición del mapa está en ArcGIS, pero estoy dispuesto a usar gdal / ogr, qgis, etc. para la clasificación de la tabla si es necesario.

Para ampliar esta pregunta más allá de mi caso de uso inmediato y, por lo tanto, hacerla más útil para la comunidad, una solución sólida permitiría elegir otros tipos geográficos, como de oeste a este o de interior a exterior .

ilustración

wilkie mate
fuente
¿Qué sistema de coordenadas estás usando?
Mapperz
@mapperz, grados decimales geográficos, pero podría ser fácilmente UTM o Albers si es necesario.
Matt Wilkie

Respuestas:

7

Para ordenar en la dirección con un cojinete de una grados al este del norte, calcular previamente el vector de dirección como unidad (sin (a), cos (a)).

Con un cálculo de campo, obtenga las coordenadas (proyectadas) [X] e [Y] de las entidades (use sus centroides o lo que sea para entidades sin puntos) si aún no están disponibles y calcule un nuevo campo igual a la distancia a lo largo del demora, dada por el producto escalar del vector de dirección con las coordenadas:

z = sin(a) * [X] + cos(a) * [Y]

Ordenar la tabla en [z] en orden ascendente.

Por ejemplo, para una ordenación de norte a sur, la demora es 180 grados, v = (sin (180), cos (180)) = (0, -1), y la ordenación resultante, por lo tanto, está en - [Y], que organiza los registros de mayor [Y] (primero) a menor [Y] (último), exactamente como se pretendía.


Una clasificación "interna a externa" podría significar muchas cosas, pero una interpretación es que la clasificación debe ser por distancia en relación con una ubicación central. Se aplica una solución similar, utilizando el teorema de Pitágoras para calcular la distancia (al cuadrado) desde un punto fijo. (Aplicar la raíz cuadrada es innecesario porque no cambia el orden de clasificación).


Un orden de clasificación más fantasioso se explica e ilustra en el "Mapa unidimensional del mundo".

whuber
fuente
2

Para expresar la respuesta de Whuber en términos de uso de herramientas, aquí hay una implementación simple del caso de uso Norte-Sur, Este-Oeste cuando se usan datos de puntos en Arcgis:

  • Agregue Xy Y(o Laty Long) columnas a la tabla de atributos, Calcular geometría
  • exportación a Excel o lo que sea, ordenar por la columna de interés (X para este-oeste, Y para el Norte-Sur), y luego traer de nuevo con añadir datos X / Y .

cortesía de Esri Technical Article HowTo: Clasificar características Norte / Sur o Este / Oeste para Exportar

¿Cómo cambiar el orden de las características en un shapefile? tiene soluciones para hacer la parte de clasificación de tablas tanto para Arcgis como para Qgis sin necesidad de exportar a un programa externo (aunque aún necesita duplicar la tabla / clase de entidad) y Ordenar registros de archivos de forma en el atributo para actualizar el nuevo campo de clasificación usando Python? tiene un método arcpy.

wilkie mate
fuente
3
ArcGIS 10.0 y superior proporciona una opción de ordenación espacial en la herramienta de ordenación.
Klewis
1

Como comentó @klewis :

ArcGIS 10.0 y superior proporciona una opción de ordenación espacial en la herramienta Ordenar

La ayuda de la herramienta Ordenar , que necesita una licencia de nivel Avanzado, describe spatial_sort_methodcuáles:

Specifies how features are spatially sorted. Sort method is only enabled when the Shape field is selected as one of the sort fields.
UR —Sorting starts at upper right corner. This is the default.
UL —Sorting starts at upper left corner.
LR —Sorting starts at lower right corner.
LL —Sorting starts at lower left corner.
PEANO —Sorting uses a space filling curve algorithm, also known as a Peano curve.
PolyGeo
fuente