TLDR: Hvordan kan jeg konvertere en kmz-fil til GeoJSON ved hjælp af Python? Det ser ud til, at kmz-filen foretager webservicekald.

Detaljer:

Jeg downloadede FEMA_NFHL_v3.2.kmz -filen fra FEMA her: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Mit mål er at tage den fil og konvertere den til et format, som jeg kan føje til MapBox eller på anden måde bruges til at udfylde en PostGIS-database. Mit foretrukne format er GeoJSON.

Jeg fandt følgende kode på StackExchange-netværket, men det ser ikke ud til at fungere.

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

Koden ovenfor producerer denne fejl:

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

Jeg pakkede kmz-filen ud og har følgende:

$ 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 

Det ser ud til, at den eneste fil, der er værd at overveje, og som indeholder data, er doc.kml. Jeg ser der

“er en kode der henviser til en FEMA webservice. Yderligere, ved at åbne FEMA NFHL v3.2 kmz i Google Earth, ser jeg, at det rent faktisk foretager webtjenesteopkald.

Er der en måde at programmatisk bruge Python på, har .kmz-filen foretager webserviceopkald og genererer derefter en GeoJSON-fil?

Kommentarer

  • " Dette eller det " spørgsmål er faktisk to spørgsmål, der overtræder vores politik med et spørgsmål pr. Spørgsmål. Vælg, om du vil have JSON- eller shapefile-output; du kan bede om den anden i et senere spørgsmål, hvis det er nødvendigt.
  • Jeg opdaterede spørgsmålet om at begrænse det til GeoJSON, selvom en shapefile også ville gøre det.
  • Nej, du kan ' t. WMS-tjenester returnerer stylede kortbilleder. Ifølge FEMA-webstedet kan du downloade de faktiske data – " Brug af “Søg efter alle produkter” på MSC , kan du downloade NFHL-data for et amt eller en stat i shapefile-format. " Se også fema.gov/media-library -data / …

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *