TLDR: Hogyan lehet konvertálni a Pyzont használva egy kmz fájlt GeoJSON-vá? Úgy tűnik, hogy a kmz fájl webszolgáltatás-hívásokat indít.

Részletek:

A FEMA_NFHL_v3.2.kmz fájlt itt töltöttem le a FEMA-ból: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMSkmzdownload

Célom, hogy ezt a fájlt átvegyem és átalakítsam olyan formátumba, amelybe betáplálhatom MapBox vagy más módon használható a PostGIS adatbázis feltöltésére. Az előnyben részesített formátumom a GeoJSON.

A következő kódot találtam a StackExchange hálózaton, de úgy tűnik, hogy nem működik.

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

A fenti kód okozza ezt a hibát:

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

Kicsomagoltam a kmz fájlt, és a következővel rendelkezem:

$ 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 

Úgy tűnik, hogy az egyetlen megfontolásra érdemes fájl, amely bármilyen adatot tartalmaz, a doc.kml. A doc.kml vizsgálata szerint ott látom néhány kód a FEMA webszolgáltatásra hivatkozva. Továbbá, ha megnyitom a FEMA NFHL v3.2 kmz oldalt a Google Earth programban, látom, hogy valóban webszolgáltatási hívásokat indít.

Van-e mód arra, hogy programozatosan, a Python használatával a .kmz fájl hívja a webszolgáltatást, majd létrehoz egy GeoJSON fájlt?

Megjegyzések

  • " Ez vagy az a " kérdés gyakorlatilag két kérdés, ami sérti az egy kérdésre vonatkozó kérdésre vonatkozó irányelvünket. Válassza ki, hogy JSON vagy shapefile kimenetet szeretne-e; szükség esetén megkérdezheti a másikat egy későbbi kérdésben.
  • Frissítettem a kérdést, és GeoJSON-ra korlátoztam, bár egy shapefile is megtenné.
  • Nem = “8385da30ab”>

t. A WMS-szolgáltatások stílusú térképképeket adnak vissza. A FEMA webhely szerint a tényleges adatokat letöltheti – " Az MSC , megye vagy állam NFHL-adatait töltheti le formefile formátumban. " Lásd még: fema.gov/media-library -data / …

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük