2016-03-25 18 views
0

ich ein geopandas GeoDataFrame mit verschiedenen Polygonen und Farben, die ich meteorologische Daten plotten bin mit (einem anderen Frage, die ich here gefragt):Convert GeoDataFrame Polygone zu KML-Datei

 color geometry 
0 #fbfdd1 (POLYGON ((-97.12191717810094 32.569, -97.1194... 
1 #f3fabf (POLYGON ((-97.12442748846019 32.569, -97.1219... 
2 #ebf7b1 (POLYGON ((-97.12944810917861 32.569, -97.1269... 
3 #daf0b2 (POLYGON ((-97.18969555780023 32.569, -97.1879... 
4 #cbeab3 (POLYGON ((-97.18969555780023 32.5710632999095... 
5 #afdfb6 (POLYGON ((-97.18467493708175 32.569, -97.1821... 
6 #92d4b9 (POLYGON ((-97.17463369564484 32.5730575804109... 
7 #74c9bc (POLYGON ((-97.17714400600408 32.5764063816167... 
8 #5bbfc0 (POLYGON ((-97.17714400600408 32.5790959050363... 
9 #40b5c3 (POLYGON ((-97.17463369564484 32.5814268890055... 
10 #31a6c2 (POLYGON ((-97.17714400600408 32.5852716913413... 
11 #2397c0 (POLYGON ((-97.17714400600408 32.5878055733984... 
12 #1e83b9 (POLYGON ((-97.17714400600408 32.5895482376014... 
13 #206eaf (POLYGON ((-97.17714400600408 32.5911487379959... 
14 #2259a5 (POLYGON ((-97.17714400600408 32.5927834911588... 
15 #23479d POLYGON ((-97.17463369564484 32.59421434681196... 
16 #243594 POLYGON ((-97.17463369564484 32.5962866795434,... 
17 #1a2b7d POLYGON ((-97.1721233852856 32.59996829071199,... 

Ich möchte dies konvertieren zu einer kml/kmz-Datei, aber ich habe noch nie mit diesem Dateityp gearbeitet, daher bin ich mir nicht sicher, wie es weitergehen soll. Ich habe versucht mit this Skript, aber es erfordert einige Höhe Feld, das ich nicht habe. Gibt es eine gute/einfache Möglichkeit, dies in Python zu tun? Ich möchte möglichst keine Online-Konverter-Tools verwenden.

Antwort

1

So kann ich eine Lösung gefunden haben ...

ich die Geospatial Data Abstraction Library installiert und haben die ogr2ogr Funktion.

Wie ich in meiner Frage erklärt, ich habe einen geopandas GeoDataFrame mit Polygonen und die zugehörigen Farben, die ich in eine JSON-Datei schreiben:

with open('/Users/Me/Documents/mydata.json', 'w') as f: 
    f.write(gdf.to_json()) 

Im Anschluß/Befehlszeile Typ I:

ogr2ogr -f KML /Users/Me/Documents/mydata.kml /Users/Me/Documents/mydata.json 

Sie technisch diesen Befehl aus einem python-Skript mit der Bibliothek ‚Subprozess‘ nennen könnte:

import subprocess 
subprocess.call("ogr2ogr -f KML /Users/Me/Documents/mydata.kml /Users/Me/Documents/mydata.json",shell=True) 

Dies erzeugt eine kml-Datei mit meinen lat/lon-basierten Polygonen. Es setzt jedoch automatisch alle Linienfarben auf rot ohne Füllfarbe (obwohl meine JSON-Datei Farben enthält). Ich habe keine gute Lösung gefunden, daher habe ich die KML-Datei von Hand bearbeitet, um das gewünschte Styling zu erhalten.

+0

Dies endet mit einem Fehler von 'ERROR 4: GeoJSON-Daten konnten nicht gelesen werden FAILURE: Konnte Datenquelle .... json 'mit den folgenden Treibern nicht öffnen.' – nish