TLDR: Hvordan kan jeg konvertere en kmz-fil til GeoJSON ved hjelp av Python? Det ser ut til at kmz-filen ringer til nettjenester.
Detaljer:
Jeg lastet ned FEMA_NFHL_v3.2.kmz
-filen fra FEMA her: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload
Målet mitt er å ta den filen og konvertere den til et format som jeg kan mate til MapBox eller bruk på annen måte for å fylle ut en PostGIS-database. Mitt foretrukne format er GeoJSON.
Jeg fant følgende kode på StackExchange-nettverket, men det ser ikke ut til å fungere.
import gdal srcDS = gdal.OpenEx("./FEMA_NFHL_v3.2.kmz") ds = gdal.VectorTranslate("output.json", srcDS, format="GeoJSON")
Koden ovenfor gir denne feilen:
$ 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 pakket ut kmz-filen 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 ut til at den eneste filen som er verdt å vurdere og som inneholder data er doc.kml
. Jeg ser der
«er en kode som refererer til en FEMA – nettjeneste. Videre, ved å åpne FEMA NFHL v3.2 kmz
i Google Earth, ser jeg at det faktisk er å ringe webservicen.
Er det en måte å programmatisk, ved hjelp av Python, ha .kmz-filen foretar webserviceanropene og genererer deretter en GeoJSON-fil?
Kommentarer
- " Dette eller det " spørsmålene er i virkeligheten to spørsmål, som bryter med retningslinjene Ett spørsmål per spørsmål. Velg om du vil ha JSON- eller shapefile-utdata; du kan be om den andre i et senere spørsmål, om nødvendig.
- Jeg oppdaterte spørsmålet som begrenset det til GeoJSON, selv om en shapefile også ville gjort det.
- Nei, du kan ' t. WMS-tjenester returnerer stilete kartbilder. I følge FEMA-nettstedet kan du laste ned de faktiske dataene – " Ved å bruke «Søk i alle produkter» på MSC , kan du laste ned NFHL-data for et fylke eller en stat i shapefile-format. " Se også fema.gov/media-library -data / …