Tengo que fusionar muchos shapefiles en un gran shapefile.
Por lo tanto, quiero comparar las propiedades de las tablas de atributos para ver si hay diferencias entre las propiedades de tabla de cada forma (tipo, longitud, precisión, nombre, etc.). Con la intención de estandarizar todos los archivos de forma
p.ej:
¿Hay alguna manera de imprimir una lista de las propiedades de la tabla como se muestra en la pestaña 'campos' o exportar las propiedades a un .xls o .dbf?
¿O hay una manera automatizada de hacer la estandarización? (Quizás este es un tema para un nuevo hilo ...)
Estoy usando QGIS 1.8 (QGIS 2.2 también es posible).
Gracias
Respuestas:
Solución de shell OSGeo4W
En mi humilde opinión, la forma más simple de extraer las propiedades de la tabla de atributos ( esquema ) consiste en abrir el shell OSGeo4W (porque estás en Windows), cambiar el directorio a tu carpeta de datos y simplemente escribir algo como:
Le mostrará la información de resumen como proyección, esquema , recuento de características y extensiones. Luego, debido a que tiene un montón de shapefiles, puede hacer un
FOR
ciclo como el siguiente:Esto devuelve un archivo txt con las propiedades de todos los archivos de forma en un directorio (porque la redirección de salida
>>
agrega cada salida individual alproperties.txt
archivo).Alternativamente, si está interesado en un archivo de propiedades para cada archivo de forma:
Sobre la estandarización, hay varias técnicas. Le sugiero que use la
RESIZE
opción de creación de capa después de la fusión para cambiar el tamaño de los campos a su tamaño óptimo (por ejemplo, los campos de texto con una longitud excesiva se acortarán). Por ejemplo:Solución de procesamiento de script
Abra la caja de herramientas Procesamiento en QGIS, cree un nuevo script (haciendo clic en
Scripts
->Tools
->Create new script
) y escriba:Guárdelo como desee, por ejemplo
ogrinfo_so.py
. Luego,ogrinfo (summary only)
aparecerá un nuevo script en la caja de herramientas Procesamiento ->Scripts
->User script
grupo. Se puede ejecutar tal cual o en modo por lotes.La misma operación es posible para cambiar el tamaño de la longitud del campo, como se describió anteriormente:
Un nuevo script llamado
Resize fields
estará disponible en la caja de herramientas Procesamiento ->Scripts
->User scripts
grupo. ¡Disfrútala!fuente
Los archivos de forma contienen sus atributos en archivos .dbf, ¿no puede simplemente abrir el archivo .dbf directamente en un programa como libreoffice calc y luego imprimir desde allí? Si no tiene demasiados archivos, esto debería funcionar.
Otra opción sería escribir un script de Python que imprima (en la consola) los atributos de las funciones directamente, o incluso los compare por usted. Puede acceder a los atributos de una función como esta:
Debería hacer esto para cada archivo de forma que compare y ver si
Más información aquí: http://www.qgis.org/en/docs/pyqgis_developer_cookbook/
fuente
Siguiendo con el tema .dbf, ¿ha buscado comparadores .dbf directamente? No he encontrado una solución gratuita de inmediato, pero algo como: dbfCompare
fuente
Pruebe algunos de los extractores de metadatos DBF disponibles. La mayoría de ellos admiten el modo de línea de comandos, por lo que se pueden ejecutar múltiples lotes de extracción de metadatos.
http://geology.usgs.gov/tools/metadata/tools/doc/dbfmeta.html http://sco.wisc.edu/wisclinc/metatool/dbfmeta.htm
fuente
Simplemente abra el archivo .dbf en Libreoffice Calc o Excel, simplemente guárdelo como un archivo nuevo. Lo guardé una vez y el archivo de forma no era bueno.
fuente