TLDR: hoe kan ik met Python een kmz-bestand converteren naar GeoJSON? Het lijkt erop dat het kmz-bestand webservice-oproepen doet.

Details:

Ik heb het FEMA_NFHL_v3.2.kmz -bestand van FEMA hier gedownload: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Mijn doel is om dat bestand te nemen en het te converteren naar een formaat dat ik kan invoeren MapBox of anderszins gebruiken om een PostGIS-database te vullen. Mijn voorkeursformaat is GeoJSON.

Ik vond de volgende code op het StackExchange-netwerk, maar het lijkt niet te werken.

import gdal srcDS = gdal.OpenEx("./FEMA_NFHL_v3.2.kmz") ds = gdal.VectorTranslate("output.json", srcDS, format="GeoJSON") 

De bovenstaande code produceert deze fout:

$ 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) 

Ik heb het kmz-bestand uitgepakt en heb het volgende:

$ 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 

Het lijkt erop dat het enige bestand dat het overwegen waard is en dat gegevens bevat doc.kml is. Inspectie van doc.kml, ik zie daar is een code die verwijst naar een FEMA-webservice. Verder, als ik FEMA NFHL v3.2 kmz in Google Earth open, zie ik dat het inderdaad webserviceaanroepen is.

Is er een manier om programmatisch, met Python, het .kmz-bestand de webservice aanroepen en vervolgens een GeoJSON-bestand genereren?

Opmerkingen

  • " Deze of gene " vragen zijn in feite twee vragen, wat in strijd is met ons één vraag per vraag-beleid. Kies of u JSON- of shapefile-uitvoer wilt; je kunt de ander in een latere vraag stellen, indien nodig.
  • Ik heb de vraag bijgewerkt en deze beperkt tot GeoJSON, hoewel een shapefile ook zou werken.
  • Nee, je kunt ' t. WMS-services retourneren opgemaakte kaartafbeeldingen. Volgens de FEMA-site kunt u de feitelijke gegevens downloaden – " met behulp van “Search All Products” op de MSC kunt u de NFHL-gegevens voor een provincie of staat downloaden in shapefile-indeling. " Zie ook fema.gov/media-library -data / …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *