TLDR: Usando Python, ¿cómo puedo convertir un archivo kmz a GeoJSON? Parece que el archivo kmz realiza llamadas al servicio web.

Detalles:

Descargué el archivo FEMA_NFHL_v3.2.kmz de FEMA aquí: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Mi objetivo es tomar ese archivo y convertirlo a un formato al que pueda alimentar MapBox o utilizar de otro modo para rellenar una base de datos PostGIS. Mi formato preferido es GeoJSON.

Encontré el siguiente código en la red StackExchange, pero no parece funcionar.

import gdal srcDS = gdal.OpenEx("./FEMA_NFHL_v3.2.kmz") ds = gdal.VectorTranslate("output.json", srcDS, format="GeoJSON") 

El código anterior produce este error:

$ python scratch.py Warning 1: The output driver does not natively support DateTime type for field timestamp. Misconversion can happen. -mapFieldType can be used to control field type conversion. Warning 1: The output driver does not natively support DateTime type for field begin. Misconversion can happen. -mapFieldType can be used to control field type conversion. Warning 1: The output driver does not natively support DateTime type for field end. Misconversion can happen. -mapFieldType can be used to control field type conversion. ERROR 1: Layer "NFHL" does not already exist in the output dataset, and cannot be created by the output driver. ERROR 1: Terminating translation prematurely after failed translation of layer NFHL (use -skipfailures to skip errors) 

Descomprimí el archivo kmz y tengo lo siguiente:

$ tree FEMA_NFHL_v3.2 FEMA_NFHL_v3.2 ├── doc.kml └── files ├── FEMA_Logo.png ├── GenStruct_item.gif ├── LOMA_item.gif ├── Levee_item.gif ├── LiMWA_item.gif ├── NFHL_Legend.png ├── NFHL_Quick_Start_Instructions.png └── RivMrk_item.gif 1 directory, 9 files 

Parece que el único archivo que vale la pena considerar que contiene datos es doc.kml. Al inspeccionar doc.kml, veo Es un código que hace referencia a un servicio web de FEMA. Además, al abrir FEMA NFHL v3.2 kmz en Google Earth, veo que, de hecho, está haciendo llamadas a servicios web.

¿Hay alguna manera de programar, usando Python, el archivo .kmz realiza las llamadas al servicio web y luego genera un archivo GeoJSON?

Comentarios

  • " Esta o aquella " preguntas son efectivamente dos preguntas, lo que infringe nuestra política de Una pregunta por pregunta. Elija si desea salida JSON o shapefile; puede preguntar por el otro en una pregunta posterior, si es necesario.
  • Actualicé la pregunta limitándola a GeoJSON, aunque un shapefile también serviría.
  • No, puede ' t. Los servicios WMS devuelven imágenes de mapas con estilo. Según el sitio de FEMA, puede descargar los datos reales: " Con «Buscar todos los productos» en el MSC , puede descargar los datos NFHL para un condado o estado en formato shapefile. " Consulte también fema.gov/media-library -data / …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *