¿Cómo cambiar el orden de las entidades en un shapefile?

18

Tengo un shapefile y quiero cambiar el orden de las características. ¿Es eso posible?

Quiero ordenar las características en el shapefile porque estoy incrustando este shapefile en una aplicación móvil. La aplicación mostrará una lista de características y, aunque podría hacer la clasificación en el momento de la carga, preferiría que se ordenaran.

    
pregunta tato 06.02.2011 - 22:29

7 respuestas

6

Siempre puede abrir la tabla de atributos en ArcMap y hacer clic con el botón derecho en el encabezado de las columnas y seleccionar Ordenar ascendente ... / Descendente ... para campos individuales.

Para varios campos, en su lugar, debería hacer clic en Clasificación avanzada para seleccionar varios campos.

NOTA: Agregar, por ejemplo, un campo de ID secuencial basado en la clasificación actual (que es temporal, almacenado solo en este mapa / mxd) cuando se usa el método anterior será ordenado por el OID / ObjectID original de la clase de entidad .

Hay un ArcScripts disponible que ordenará los registros permanentemente y generará un nuevo shapefile: enlace

Espero que cuando indique "orden de las características" este sea el orden que se encuentra en la tabla de atributos y no el orden de dibujo para la tabla de contenidos / niveles de simbología.

    
respondido por el SaultDon 06.02.2011 - 23:54
16

No sé sobre Arc *, pero para QGIS hay un complemento de Ordenar: enlace

    
respondido por el underdark 06.02.2011 - 22:40
7

Aquí hay una solución para volver a escribir un shapefile nuevo y ordenado usando la herramienta de línea de comandos GDAL / OGR ogr2ogr .

Por ejemplo, un shapefile orig.shp tiene un campo numérico volume para ordenar. Esta declaración de SQL en particular realiza una ordenación inversa (con DESC ) para que las características con valores grandes de volume se dibujen antes (debajo) de características con valores pequeños:

ogr2ogr -sql "SELECT * FROM orig ORDER BY volume DESC" sorted.shp orig.shp
    
respondido por el Mike T 08.09.2014 - 06:08
5

Si tiene acceso a una licencia de arcinfo, puede usar Ordenar en la (Caja de herramientas de gestión de datos) que escribe los registros en un nuevo shapefiles o gdb fc basado en la clasificación espacial o de atributos

    
respondido por el gotchula 07.02.2011 - 05:09
4

Un software de utilidad de MapServer (libre y de código abierto) puede ordenar las formas según los valores de los atributos:

enlace

    
respondido por el Laurent Jégou 07.02.2011 - 15:52
2

Un método muy, muy RÁPIDO y fácil de ordenar una capa de shapefile (usando varios campos).

1 - Exportar shapefile a CSV (seleccione un buen separador, como el punto y coma) y agregue GEOMETRY usando "opciones de capa" - > "AS WKT"

2-Abrafile.csvconLIBREOFFICE(calc)yuseMENU->DATA->SORT(muyintuitivo,potenteyMUYRÁPIDO)(Clasifiquesobrelamarcha50000funcionesusando3columnascomosort-key,ascendenteyopcionesdescendentes,ytengouncuadernomuylento;))

3-GuardenuevamenteelarchivodeLIBREOFFICE(calc)como"Text CSV" (marque "Editar configuración de filtro" y elija el separador como 'punto y coma', no importa la advertencia de libreoffice, guárdelo como CSV y seleccione 'punto y coma' como separador)

4 - Desde Qgis abra el nuevo archivo.csv (y ordenado) desde el menú 'Agregar capa "- > Agregar capa de texto delimitador.

PROS: - Muy, muy rápido, de varios campos. - Funciona bien con datos codificados en UTF_8

CONS:   - Necesito LIBREOFFICE (pero es un software de código abierto)

Método alternativo para ordenar (sustituye los puntos 2 y 3, y es el más rápido) usando la consola (BASH)

  • Abre la consola y ve a donde tengas el archivo.csv

    Supongamos que desea ordenar el archivo con la clave:

    campo6 (desc) + campo1 (ascen) + campo3 (diseño)

    por lo que el comando será:

    sort -t ';' -k6,6r -k1,1 -k3,3r file.csv > file_sort.csv

    NOTAS:

    • puede agregar -kn, n para cada número de columna 'n' (campo) que necesita agregar a su "clave de clasificación"
    • agregar 'r' después de cada n, n ordenará en modo inverso (descenso)
    • Debe pasar el separador de caracteres utilizado en el archivo csv con -t param
respondido por el Juanma Font 24.11.2016 - 11:40
-2
  1. Exportar datos como CSV
  2. Abrir con Excel ir a Datos ---- Ordenar --- Expandir la selección y listo
respondido por el user102129 19.07.2017 - 10:48

Lea otras preguntas en las etiquetas