Google Earth Proでプロット
Table of Contents
PythonでGoogle Earth Pro上にbar plotを描画するkmlファイルの作成方法です.こちらのgoogleearthplot packageを使用させて頂きました.
インストール
pandasはインストールされているものとします.simplekmlとgoogleearthplotをインストールします.
pip install simplekml
pip install googleearthplot
このgoogleearthplotはPython2用で,Python3ではprint
文に関するエラーが出ます.よって,若干のコードの修正が必要です.まず,googleearthplotのコードがインストールされている場所を次のように特定します.
pip show googleearthplot
その場所にある,googleearthplot.py
をエディタで開き,print文の仕様をPython3形式に変更します.これはprint ****
となっている行を,括弧を付けて,print(****)
とするだけです.
使い方
Jupyter Notebookを開き,importします.本家を参考に例を示します.作成されたkmlをダブルクリックすれば,Google Earth Proで表示されるはずです.
from googleearthplot import googleearthplot as gep
import pandas as pd
point plot
Point plotの例です.
lon=139.0 #degree
lat=35.5 #degree
gep1=gep.googleearthplot()
gep1.PlotPoints(lat,lon,point)
gep1.GenerateKMLFile(filepath=sample1.kml)
bar plot
Bar plotの例です.
#A bar plot
gep2=gep.googleearthplot()
lat=35.5 #degree
lon=139.5 #degree
num=100 #bar height size
size=1 #meter
name=test
color=red
gep2.PlotBarChart(lat,lon,num,size,name,color)
gep2.GenerateKMLFile(filepath=sample2.kml)
複数のbar plotはfor loopで作成するだけです.
ファイルからデータを読み込んでbar plotを作る
以下の様なテキストファイルsample3.txt
をローカルに用意します.左から経度,緯度,barの高さです.
139.662750 35.477141 166.771019
139.663961 35.477226 171.858589
139.665148 35.477312 169.775301
139.666306 35.477394 160.395112
このファイルをpandas DataFrameとして読み込み,forループでbarを作成します.
fpath = sample3.txt
names = [lon, lat, height]
df = pd.read_csv(fpath, sep='\s+', header=None, names=names)
### height==0は以下のように除外しておきます
lon_p = df[df['height'] != 0.0]['lon'].values
lat_p = df[df['height'] != 0.0]['lat'].values
height_p = df[df['height'] != 0.0]['height'].values
size=2
name=None
color='red'
gep3 = gep.googleearthplot()
for (lon, lat, height) in zip(lon_p, lat_p, height_p):
gep3.PlotBarChart(lat, lon, height, size, name, color)
gep3.GenerateKMLFile(filepath=sample3.kml)
なお,csvファイルからはPlotBarChartsFromCSVメソッドで直接bar plotを作成できるようです.その他の例を含め,詳細は本家を参照ください.