MATLAB/Google Earthにプロットする

地球上の風速や水位などのデータ(もちろんこれ以外でも)をGoogle Earthにプロットすることができる.

準備(Toolboxのインストール)

  1. MATLAB File ExchangeからGoogle Earth Toolboxのページに行き,toolboxをダウンロード
  2. 圧縮されたファイルを解凍し,addpathなどでpathを通す

実際に使ってみる

plot ⇒ ge_plot,contour ⇒ ge_contour,imagesc ⇒ ge_imagesc,surf ⇒ ge_surfと分かりやすい対応.

ただし,ge_pcolorはなさそうなのでge_imagescを使うのが良さそう.Syntaxもほとんど元の関数と同じ.

しかし,オプションで入れる変数が特殊なのでdemoなどを見て確認すること.

 

使用例

NCEP再解析データの月平均高度10m風速データ(京大生存圏データベース)を利用して,風速をマッピングしてみる

% 
% --- input (edit here)
% 

% file names and directories
fdir = './';
fname_read = 'wspd.mon.mean.nc';
fname_save = 'wspd_snapshot_googleearth.kml';

% figure config
cax = [0 14];
cmap = jet;

% 
% --- read data (NetCDF)
% 

ncdisp(fullfile(fdir,fname_read))

% time
time = ncread(fullfile(fdir,fname_read),'time');
% wind speed
wspd = ncread(fullfile(fdir,fname_read),'wspd');
% longitude and latitude
lon = ncread(fullfile(fdir,fname_read),'lon');
lat = ncread(fullfile(fdir,fname_read),'lat');


% 
% --- plot data on Google Earth
%


% 1フレーム目の風速をとってくる
wspd_snapshot = double(wspd(:,:,1));

% 型がdoubleしか受け付けないので変換する
lon_plt = double(lon);
lat_plt = flipud(double(lat));

% figure set up
alphaMatrix = ones(size(wspd_snapshot'))*0.75;
altitude = 10000;

% make kml
kmlStr_contour = ge_imagesc(lon_plt,lat_plt,wspd_snapshot',...
                      'imgURL','windspeed_snapshot.png',...
                        'cLimLow',cax(1),...
                            'cLimHigh',cax(2),...
                          'altitude',altitude,...
                      'altitudeMode','absolute',...
                          'colorMap',cmap,...
                       'alphaMatrix',alphaMatrix);


% save
ge_output(fname_save,kmlStr_contour)

Google Earth上にプロットしてみた例

 

ムービーを作ることも可能(詳しくは参考サイトを参照してください)

 

参考サイト