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を作成できるようです.その他の例を含め,詳細は本家を参照ください.

参考資料

  • PyPi googleearthplot url
  • GitHub AtsushiSakai/googleearthplot url

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください