Aqui está um desafio interessante: preciso incorporar uma tabela em um layout de mapa para que os registros na tabela sejam classificados de acordo com sua posição geográfica no terreno. Por exemplo, em um mapa do norte para o topo, o recurso mais ao norte (neste caso, pontos) deve ser o primeiro registro e o mais ao sul o último.
A composição do mapa está no ArcGIS, mas estou disposto a usar gdal / ogr, qgis, etc. para a classificação da tabela, se necessário.
Para expandir essa questão além do meu caso de uso imediato e, assim, torná-lo mais útil para a comunidade, uma solução robusta permitiria escolher outros tipos geográficos, como oeste para leste ou interno para externo .
geoprocessing
attribute-table
sorting
Matt Wilson
fonte
fonte
Respostas:
Para classificar na direcção com um rolamento de uma graus leste de norte, precompute o vector direccional unidade como (sin (a), COS (um)).
Com um cálculo de campo, obtenha as coordenadas (projetadas) [X] e [Y] de recursos (use seus centróides ou o que quer que seja para recursos não pontuais) se eles ainda não estiverem disponíveis e calcule um novo campo igual à distância ao longo do rolamento, dado pelo produto escalar do vetor de direção com as coordenadas:
Classifique a tabela em [z] em ordem crescente.
Por exemplo, para uma classificação norte-sul, o rolamento é 180 graus, v = (sin (180), cos (180)) = (0, -1) e, portanto, a classificação resultante está em - [Y], que organiza os registros do maior [Y] (primeiro) até o menor [Y] (último), exatamente como pretendido.
Uma classificação "interna para externa" pode significar muitas coisas, mas uma interpretação é que a classificação deve ser à distância em relação a um local central. Uma solução semelhante se aplica, usando o teorema de Pitágoras para calcular a distância (ao quadrado) de um ponto fixo. (A aplicação da raiz quadrada é desnecessária porque não altera a ordem de classificação.)
Uma ordem de classificação mais fantasiosa é explicada e ilustrada em "Mapa unidimensional do mundo".
fonte
Para expressar a resposta do whuber em termos de uso de ferramentas, aqui está uma implementação simples do caso de uso Norte-Sul, Leste-Oeste ao usar dados de pontos no Arcgis:
X
eY
(ouLat
eLong
) colunas à tabela de atributos, Calcular geometriacortesia de Esri Artigo Técnico Como : Classificar recursos Norte / Sul ou Leste / Oeste para exportação
Como alterar a ordem dos recursos em um shapefile? possui soluções para fazer a parte de classificação da tabela para o Arcgis e o Qgis sem a necessidade de exportar para um programa externo (embora você ainda precise duplicar a tabela / classe de recurso) e a Classificação dos registros do shapefile no atributo para atualizar o novo campo de classificação usando o Python? tem um método arcpy.
fonte
Como comentado por @klewis :
A ajuda da ferramenta Classificar , que precisa de uma licença de nível Avançado, descreve
spatial_sort_method
quais são:fonte