TLDR: Kuinka voin muuntaa Pyzonin avulla kmz-tiedoston GeoJSONiksi? Vaikuttaa siltä, että kmz-tiedosto soittaa verkkopalvelupuheluja.

Tiedot:

Latasin FEMA_NFHL_v3.2.kmz -tiedoston FEMA: sta täältä: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Tavoitteenani on viedä tiedosto ja muuntaa se muotoon, johon voin syöttää MapBoxia tai muuten PostGIS-tietokannan täyttämiseen. Ensisijainen muoto on GeoJSON.

Löysin seuraavan koodin StackExchange-verkosta, mutta se ei näytä toimivan.

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

Yllä oleva koodi tuottaa tämän virheen:

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

Purkasin kmz-tiedoston ja minulla on seuraava:

$ 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 

Näyttää siltä, että ainoa harkitsemisen arvoinen tiedosto, joka sisältää tietoja, on doc.kml. Tarkastan doc.kml, näen siellä Jotkut koodit viittaavat FEMA-verkkopalveluun. Lisäksi, avaamalla FEMA NFHL v3.2 kmz Google Earthissa, näen, että se todellakin soittaa verkkopalvelupuheluja.

Onko mahdollista ohjelmoida Pythonin avulla ohjelmallisesti .kmz-tiedosto soittaa verkkopalvelukutsut ja luo sitten GeoJSON-tiedoston?

Kommentit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *