2010-06-10 14 views
8

Estoy trabajando con archivos de formas en GeoDjango. En este momento estoy intentando escribir una prueba para el código que se carga en un archivo de forma y lo guarda en una base de datos. El archivo de forma actualmente tiene un recuento de funciones de 64,118. Me gustaría reducir esto a un puñado para que la prueba pueda cargarlo rápidamente y confirmar que todo esté bien.¿Dividir o guardar un subconjunto de un archivo ESRI Shape SHP en un nuevo archivo?

Como los archivos de formas no están en formato de texto, ¿hay alguna aplicación o biblioteca gratuita que pueda usar para extraer algunas funciones y guardarlas en un archivo nuevo?

Debo mencionar que no tengo licencia ni acceso a ninguna de las líneas de productos ESRI.

+0

Quizás este tipo de preguntas también sean adecuadas en http://gis.stackexchange.com/? –

+0

¿Pueden estos procesos funcionar con archivos shp en una base de datos geográfica de archivos? mis archivos de aspecto y pendiente tienen más de 16 millones de registros. mejor, – GeorgeC

Respuesta

12

Tiene varias opciones para exportar un subconjunto de registros de un shapefile.

  • Cualquier Open Source desktop GIS podrá realizar esto. Algunos de los más populares son Quantum GIS, gvSIG o openJUMP. Los pasos exactos variarán en cada uno de ellos, pero básicamente tiene que cargar el archivo de forma, comenzar a editar, seleccionar los registros que desea y exportarlos a un nuevo shapefile.

  • La herramienta ogr2ogr, parte del paquete GDAL le permite transformar entre diferentes formatos de vectores geográficos (o dentro del mismo formato), y puede especificar una expresión de tipo SQL para filtrar el conjunto de datos original.

    ogr2ogr -f "ESRI" -donde "Identificación < 10" huge_shapefile.shp new_shapefile.shp

  • Si está utilizando PostGIS y no desea instalar cualquiera de las aplicaciones anteriores, se puede utilizar la herramienta pgsql2shp para exportar un subconjunto de su tabla PostGIS a un shapefile.

    pgsql2shp -f "/ ruta/a/archivo de forma" -h servidor -u usuario -P contraseña postgisdb "SELECT * FROM tabla WHERE ID < 10"

Editar: En cualquiera de Las tres opciones permiten realizar un filtro espacial (es decir, funciones que se encuentran dentro de un cuadro delimitador) en lugar de una selección basada en atributos.

Cuestiones relacionadas