TLDR: Hur kan jag konvertera en kmz-fil till GeoJSON med hjälp av Python? Det verkar som om kmz-filen ringer webbtjänstsamtal.
Detaljer:
Jag laddade ner FEMA_NFHL_v3.2.kmz
-filen från FEMA här: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload
Mitt mål är att ta den filen och konvertera den till ett format som jag kan mata till MapBox eller använd på annat sätt för att fylla i en PostGIS-databas. Mitt föredragna format är GeoJSON.
Jag hittade följande kod i StackExchange-nätverket, men det verkar inte fungera.
import gdal srcDS = gdal.OpenEx("./FEMA_NFHL_v3.2.kmz") ds = gdal.VectorTranslate("output.json", srcDS, format="GeoJSON")
Koden ovan ger detta fel:
$ 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)
Jag packade upp kmz-filen och har följande:
$ 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 verkar som att den enda filen som är värt att överväga att innehålla data är doc.kml
. Inspekterar doc.kml
ser jag där ”det är en kod som hänvisar till en FEMA – webbtjänst. Vidare, när jag öppnar FEMA NFHL v3.2 kmz
i Google Earth, ser jag att det verkligen gör webbtjänstsamtal.
Finns det ett sätt att programmatiskt, med Python, ha .kmz-filen ringer webserviceanropen och genererar sedan en GeoJSON-fil?
Kommentarer
- " Denna eller den där " -frågorna är i själva verket två frågor som bryter mot vår policy för en fråga per fråga. Välj om du vill ha JSON- eller shapefile-utdata; du kan be om den andra i en senare fråga, om det behövs.
- Jag uppdaterade frågan som begränsade den till GeoJSON, även om en shapefile också skulle göra det.
- Nej du kan ' t. WMS-tjänster returnerar utformade kartbilder. Enligt FEMA-webbplatsen kan du ladda ner faktiska data – " Med hjälp av ”Sök alla produkter” på MSC , du kan ladda ner NFHL-data för ett län eller stat i formfilformat. " Se även fema.gov/media-library -data / …