Tengo un archivo shape grande (1 gb) y necesito rasterizarlo. Ya he intentado lo siguiente.
1.) Importarlo a GRASS usando v.in.ogr
esto falló con el mensaje de error: ERROR: G_realloc: incapaz de asignar 498240036 bytes en break_polygons.c: 188
2.) Mi segunda idea fue usar PostGIS. Importe el archivo de forma, vuelva a muestrearlo en la ubicación x, y de la cuadrícula y luego exporte estos puntos y cree una cuadrícula a partir de xyz. Importé con éxito los archivos de forma (polígonos y puntos), pero la intersección de 1 millón de polígonos con 300k puntos parece ser muy lenta. Utilicé el siguiente comentario de PostGIS, tal vez haya margen de mejora.
select polygons.land_id,grid.geom from grid,polygons where grid.geom && polygons.geom and within(grid.geom,polygons.geom)
3.) También intenté usar simplify()
en PostGIS. Pero perdí con muchos polígonos pequeños (es decir, algunas áreas que estaban cubiertas solo con pequeños polígonos se volvieron nulas).
Cualquier idea sería muy apreciada.
Respuestas:
Puede probar gdal_rasterize , aunque no lo he usado con un archivo de forma tan grande, por lo que puede tener los mismos problemas que tuvo con GRASS. Creo que algo como lo siguiente debería funcionar (con GDAL> = 1.8.0):
Por supuesto, tendrá que jugar con algunas de las opciones dependiendo de su archivo de forma fuente. El parámetro más importante es -tr, que especifica la resolución de un píxel; sin él, puede encontrarse con una trama muy grande ...
Si desea seguir con GRASS, intente configurar una extensión más pequeña para la rasterización, y divida el proceso en trozos manejables, luego mosaiquee los rasters en uno.
fuente
Con respecto a su primer intento, ¿podría intentar ejecutar el comando v.in.ogr en una máquina que tenga más RAM o espacio de disco de intercambio?
Si no, puede dividirlo en muchos archivos y rasterizar cada uno de ellos antes de fusionarlos nuevamente.
fuente
Si necesita más control al hacer una rasterización, consulte el script poly_density.py de perrygeo que usa GDAL debajo del capó, pero puede usarse para superponer características o agregar evaluaciones condicionales más allá de las posibles
gdal_rasterize
solo.fuente
Como Jack el Destripador, hazlo por partes. A partir de postgis, los segmentos de exportación de datos se importan en pasto y se convierten.
fuente
Aquí hay una guía sobre cómo rasterizar una tabla de vectores en PostGIS ...
fuente