Python >> Python tutoriál >  >> Python Tag >> Pandas

Manipulace s KML/CSV pomocí geopand – DriverError:nepodporovaný ovladač:u'CSV'

v případě csv by bylo pravděpodobně jednodušší jej přečíst pomocí pand a poté převést na geopandas Dataframe

import pandas as pd
import geopandas as gp
from shapely.geometry import Point

stations = pd.read_csv('../data/stations.csv')
stations['geometry'] = stations.apply(lambda z: Point(z.X, z.Y), axis=1)
stations = gp.GeoDataFrame(stations)

Ovladač KML není ve výchozím nastavení povolen, jak je podrobně popsáno v tomto problému s githubem https://github.com/Toblerity/Fiona/issues/97. V zásadě se zdá, že ovladač KML nesplňuje požadavky Fiony na kvalitu (od roku 2014), není jisté, zda bude v budoucnu opraven.

Můžete to zkusit a přečíst si jednoduchý/standardně dostačující soubor KML takto:

import geopandas as gpd
fiona.drvsupport.supported_drivers['kml'] = 'rw' # enable KML support which is disabled by default
fiona.drvsupport.supported_drivers['KML'] = 'rw' # enable KML support which is disabled by default

gpd.read_file("/path/to/your/test.kml")

Pokusil jsem se přečíst soubor zde a dal mi následující výstup:

Poděkování za tuto podstatu:

https://gist.github.com/timtroendle/6f61dc38a0aad58c2261524d7d8594c3

Upravit 20191021:S novějšími verzemi fiona , možná budete muset použít libkml místo kml . T.j.:

fiona.drvsupport.supported_drivers['libkml'] = 'rw' # enable KML support which is disabled by default
fiona.drvsupport.supported_drivers['LIBKML'] = 'rw' # enable KML support which is disabled by default

GeoPandas se spoléhá na knihovnu Fiona (http://github.com/toblerity/Fiona) pro from_file() implementace. V současné době Fiona, a tedy GeoPandas, nepodporuje vstup CSV ani KML. Pokud je můžete převést na GeoJSON nebo Shapefiles, pak by GeoPandas měly být schopny číst bez problémů.