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
- " Tämä tai se " kysymykset ovat käytännössä kaksi kysymystä, mikä rikkoo Yksi kysymys per kysymys -käytäntöämme. Valitse, haluatko JSON- tai shapefile-lähdön; voit kysyä toista tarvittaessa myöhemmässä kysymyksessä.
- Päivitin kysymyksen rajoittamalla sen koskemaan GeoJSONia, vaikka myös muototiedosto tekisi.
- Ei, voit ' t. WMS-palvelut palauttavat tyylitetyt karttakuvat. FEMA-sivuston mukaan voit ladata todelliset tiedot – " MSC a: n "Etsi kaikista tuotteista" -toiminnolla. >, voit ladata läänin tai osavaltion NFHL-tiedot shapefile-muodossa. " Katso myös fema.gov/media-library -data / …