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 / …