Eu tenho um shapefile e quero alterar a ordem dos recursos. Isso é possível?
Quero classificar os recursos no shapefile porque estou incorporando esse shapefile em um aplicativo móvel. O aplicativo exibirá uma lista de recursos e, embora eu possa fazer a classificação no tempo de carregamento, prefiro ordená-los.
Respostas:
Você sempre pode abrir a tabela de atributos no ArcMap e clicar com o botão direito do mouse no cabeçalho das colunas e selecionar Classificar Crescente ... / Decrescente ... para campos únicos.
Para vários campos, clique em Classificação avançada para selecionar vários campos.
NOTA: A adição, por exemplo, de um campo de ID seqüencial com base na classificação atual (temporária, armazenada apenas neste mapa / mxd) ao usar o método acima, será solicitada pelo OID / ObjectID original da classe de recurso.
Existe um ArcScripts disponível que classifica os registros permanentemente e gera um novo shapefile: http://arcscripts.esri.com/details.asp?dbid=16771
Espero que, quando você declara 'ordem dos recursos', essa seja a ordem encontrada na tabela de atributos e não a ordem de desenho para os níveis da tabela de conteúdo / simbologia.
fonte
Não sei sobre o Arc *, mas para o QGIS existe um plug-in de classificação: http://michaelminn.com/linux/mmqgis/
fonte
Aqui está uma solução para reescrever um shapefile novo e classificado usando a ferramenta de linha de comando GDAL / OGR
ogr2ogr
.Por exemplo, um shapefile
orig.shp
possui um campo numéricovolume
para classificar. Essa instrução SQL específica faz uma classificação inversa (comDESC
) para que os recursos comvolume
valores grandes sejam desenhados antes dos recursos (abaixo) com valores pequenos:fonte
Se você tiver acesso a uma licença arcinfo, poderá usar a Classificação na (caixa de ferramentas Gerenciamento de dados), que grava os registros em uma nova classificação espacial ou de atributo baseada em shapefiles ou gdb fc
fonte
Um software utilitário do MapServer (gratuito e de código aberto) pode classificar as formas de acordo com os valores dos atributos:
http://mapserver.org/utilities/sortshp.html
fonte
Um método muito, muito rápido e fácil de classificar uma camada de shapefile (usando vários campos).
1 - Exporte o shapefile para CSV (selecione um bom separador, como ponto e vírgula) e adicione GEOMETRIA usando "opções de camada" -> "AS WKT"
2 - Abra file.csv com LIBREOFFICE (calc) e use MENU-> DADOS-> CLASSIFICAR (muito intuitivo, poderoso e MUITO RÁPIDO (recursos rápidos e fáceis de classificar 50000 usando 3 colunas como chave de classificação, opções de subida e descida) ei tem um notebook muito lento;))
3 - Salve novamente o arquivo do LIBREOFFICE (calc) como "CSV de texto" (marque "Editar configurações de filtro" e escolha o separador como 'ponto e vírgula', não importa o aviso do libreoffice, salve como CSV e selecione 'ponto e vírgula' como separador)
4 - No Qgis, abra o novo arquivo.csv (e classificado) no menu 'Adicionar camada' -> Adicionar camada de texto delimitadora.
PRÓS: - Muito, muito rápido, classifique de vários campos - Funciona bem com dados codificados em UTF_8
CONTRAS: - Precisa de LIBREOFFICE (mas é um software de código aberto)
Método alternativo para classificar (substitua os pontos 2 e 3 e é o mais rápido) usando o console (BASH)
Abra o console e vá para onde você tem o arquivo.csv
Suponha que você queira classificar o arquivo com a chave:
field6 (desc) + field1 (ascen) + field3 (desce)
então o comando será:
sort -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv
NOTAS:
fonte
fonte