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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *