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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *