メインコンテンツ

緯度と経度のデータを使用したアニメーションの作成

この例では、コメット プロットを作成し、アニメーション化されたラインを作成し、ラインに沿ってマーカーを移動することで、マップ上で緯度と経度のデータをアニメーション化する方法を示します。

データの読み込み

台風追跡データ [1] を含む table を読み込みます。ID 1013 の台風の緯度と経度の座標を抽出します。

load cycloneTracks.mat
lat = cycloneTracks.Latitude(cycloneTracks.ID == 1013);
lon = cycloneTracks.Longitude(cycloneTracks.ID == 1013);

コメット プロットの作成

comet 関数を使用してコメット プロットを作成します。コメット プロットは、現在のデータ点のマーカーと前のデータ点のラインを使用して、一連のデータ点をアニメーション化します。

grayland ベースマップを使用する地理座標軸を作成します。次に、座標からコメット プロットを作成します。comet 関数への入力として地理座標軸を指定します。

figure
geobasemap grayland

gxComet = gca;
comet(gxComet,lat,lon)

アニメーション化されたラインの作成

animatedline 関数を使用してアニメーション化されたラインを作成し、addpoints 関数を使用してポイントをラインに追加します。exportgraphics 関数を使用してアニメーションを GIF にエクスポートします。

grayland ベースマップを使用する新しい地理座標軸を作成します。座標の境界を使用して地理的範囲を設定します。

figure
geobasemap grayland

[latmin,latmax] = bounds(lat);
[lonmin,lonmax] = bounds(lon);
geolimits([latmin latmax],[lonmin-1 lonmax+1])

地理座標軸を animatedline 関数に渡して、最初のアニメーション化されたラインを作成します。次に、ループで座標を追加してラインをアニメーション化します。各追加内容をアニメーション GIF の 1 フレームとして取得します。

gxLine = gca;
an = animatedline(gxLine);

for k = 1:length(lat)
    addpoints(an,lat(k),lon(k))
    exportgraphics(gxLine,"cycloneLine.gif",Append=true)
end

ラインに沿ったマーカーのトレース

マーカーのデータ プロパティを更新して、ラインに沿ってマーカーをトレースします。exportgraphics 関数を使用してアニメーションを GIF にエクスポートします。

grayland ベースマップを使用する新しい地理座標軸を作成します。geoplot 関数を使用して、座標からラインを作成します。座標軸のホールド状態を on に設定して、追加データをプロットする準備をします。

figure
geobasemap grayland
geoplot(lat,lon)
hold on

geoscatter 関数を使用して、最初のポイントからマーカーを作成します。sScatter オブジェクトを返します。

s = geoscatter(lat(1),lon(1),"filled");

ループで Scatter オブジェクトの LatitudeData および LongitudeData プロパティを更新して、ラインに沿ってマーカーを移動します。各変更内容をアニメーション GIF の 1 フレームとして取得します。

gxMarker = gca;
for k = 1:length(lat)
    s.LatitudeData = lat(k);
    s.LongitudeData = lon(k);
    exportgraphics(gxMarker,"cycloneMarker.gif",Append=true)
end

[1] この例では、日本の気象庁の RSMC Best Track Data を修正して使用しています。

参考

関数

プロパティ