TLDR: Utilizzando Python, come posso convertire un file kmz in GeoJSON? Sembra che il file kmz effettui chiamate al servizio web.

Dettagli:

Ho scaricato il file FEMA_NFHL_v3.2.kmz da FEMA qui: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Il mio obiettivo è prendere quel file e convertirlo in un formato che possa alimentare MapBox o altrimenti utilizzare per popolare un database PostGIS. Il mio formato preferito è GeoJSON.

Ho trovato il seguente codice sulla rete StackExchange, ma non sembra funzionare.

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

Il codice precedente produce questo errore:

$ 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) 

Ho decompresso il file kmz e ho quanto segue:

$ 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 

Sembra che lunico file degno di essere considerato che contiene dati sia doc.kml. Ispezionando doc.kml, vedo lì “è un codice che fa riferimento a un servizio web FEMA. Inoltre, aprendo FEMA NFHL v3.2 kmz in Google Earth, vedo che si tratta effettivamente di chiamate a servizi Web.

Esiste un modo per programmare, utilizzando Python, il file .kmz effettua le chiamate al servizio web e quindi genera un file GeoJSON?

Commenti

  • " Questa o quella " domande sono effettivamente due domande, il che viola le nostre norme Una domanda per domanda. Scegli se desideri loutput JSON o shapefile; puoi chiedere laltra in una domanda successiva, se necessario.
  • Ho aggiornato la domanda limitandola a GeoJSON, sebbene andrebbe bene anche uno shapefile.
  • No, puoi ' t. I servizi WMS restituiscono immagini di mappe con stile. Secondo il sito FEMA, puoi scaricare i dati effettivi – " utilizzando “Cerca in tutti i prodotti” su MSC , puoi scaricare i dati NFHL per una contea o uno stato in formato shapefile. " Vedi anche fema.gov/media-library -data / …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *