1 votos

¿Utilizar Microsoft Footprint GeoJSON para el análisis espacial con GDAL?

Estoy intentando utilizar los datos de Microsoft Footprint (disponibles como GeoJSON) para el análisis espacial con el fin de identificar aproximadamente los edificios de un determinado tamaño dentro de un rango específico de las principales vías férreas y carreteras. Estoy seguro de que sé cómo realizar el análisis, pero no puedo encontrar una manera de utilizar un archivo GeoJSON tan grande como estos (por ejemplo, Alabama aproximadamente 500 mb de txt) para el análisis espacial.

Puedo cargar muy lentamente el GeoJSON en QGIS, pero no puedo exportar como shapefile ni ejecutar ninguna búsqueda por localizaciones sin que todo el sistema se cuelgue.

He intentado utilizar el JSON to Feature de ArcMap, pero no lee un GeoJSON de ese tamaño.

También he intentado crear shapefiles individuales de cada característica dentro del GeoJSON para evitar tener un shapefile que supere el límite de tamaño. Mi intención era incluirlos todos en un GDB para el análisis, pero este proceso también se estrelló constantemente mi instancia de Python e incluso desmontó un disco.

from osgeo import ogr
import fiona
import json

text = open('Alabama.txt', 'r')
text = text.read()
search = re.findall('{"type":"Polygon","coordinates"[^}]+', text)

i = 0

for line in search:
    i += 1
    poly = line + '}'
    polyogr = ogr.CreateGeometryFromJson(poly)
    schema = {'geometry': 'Polygon','properties': {'fld_a': 'str:50'}}
    with fiona.open('%s.shp' % i, 'w', 'ESRI Shapefile', schema) as layer:
        layer.write({'geometry': json.loads(poly), 'properties': {'fld_a': 'test'}})  

¿Puedo utilizar archivos GeoJSON de este tamaño para trabajos de análisis en GDAL?

4voto

Nick Puntos 3115

GeoJSON es un formato de texto muy verboso y, por lo tanto, da lugar a archivos enormes y a una sobrecarga de memoria, por lo que convertir los enormes archivos geojson a otra cosa es, sin duda, un buen enfoque. No indicas la especificación de tu máquina, pero dado que QGIS no puede cargarlo de forma efectiva y estás teniendo muchos fallos, yo usaría ogr2ogr desde la línea de comandos para la conversión y así eliminar la sobrecarga de ejecutar el propio QGIS (también me aseguraría de no tener nada más ejecutando en mi máquina). Como tienes QGIS, no necesitarás instalar ogr2ogr ya que deberías tenerlo (puede que necesites asegurarte de que las variables de entorno de tu máquina están configuradas adecuadamente y de que tienes las rutas correctas para asegurarte de que funciona).

En la documentación de ogr2ogr, fíjate en las opciones que tienes para recortar los datos y para controlar el rendimiento (especialmente la opción -gt). ogr2ogr puede dar salida a un gran número de formatos diferentes y para algo tan grande yo podría seguir el camino de una base de datos PostGIS y luego puedes hacer algunas consultas SQL para abanicar los datos (o no) a tu antojo y con menos riesgo de colapso. Las versiones recientes de opgr2ogr han tenido mejoras para reducir su sobrecarga de memoria, así que aquí es donde yo empezaría.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X