Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

NASA の地図の通過経路の可視化

この例では、NASA が提供するラスター地図で、ThingSpeak™ チャネル フィードの緯度と経度のデータを可視化する方法を説明します。ラスター地図を Web Map Service (WMS) から取得して、Mary Maersk 号が通過した経路をプロットすることができます。

メモ

この例を実行するには、Mapping Toolbox を使用するライセンスの与えられた MathWorks アカウントにログインしていなければなりません。

データの読み取り

チャネル 73734 に保存された Mary Maersk 号の位置を、過去 10 日間にわたり関数 thingSpeakRead を使用して読み取ります。

data = thingSpeakRead(73734,'DateRange',...
    [datetime('today')-caldays(10),datetime('today')],'outputFormat','table');

生のデータの処理

データをマップにプロットする前に、生の緯度データと経度データを処理します。

緯度と経度の情報を、latlon という別々の変数に保存します。

lon = data.Longitude;
lat = data.Latitude;

関数 geoquadline を使用して、lat および lon で指定された地理座標の頂点を結ぶ線を境界とする、できるだけ狭い地理的四角形の範囲を見出します。

[latlim,lonlim] = geoquadline(lat,lon);

地図をもっと見やすくするために、緯度と経度の範囲を 10 単位拡張します。

buf = 10;
[latlim,lonlim] = bufgeoquad(latlim,lonlim,buf,buf);

NASA からのラスター地図の取得

NASA の Web Map Service を使用して、空間参照されたラスター データの地図を作成します。

関数 wmsfind は、文字列 'nasa' を WMS データベースの 'serverurl' のエントリで検索します。

nasa = wmsfind('nasa','SearchField','serverurl');

NASA データベースからの必要なラスター地図レイヤーの検索を、関数 refine を使用して絞り込みます。

layer = refine(nasa,'bluemarbleng','SearchField','layername', ...
    'MatchType','exact');

関数 wmsread を呼び出してラスター地図を読み取ります。

[A,R] = wmsread(layer(1),'Latlim',latlim,'Lonlim',lonlim);

地図の生成

関数 worldmap で返されるラスター地図を使用して、過去 10 日間に Mary Maersk 号が通過した経路のプロットを生成します。

geoshow(A,R);
geoshow(lat,lon);
xlabel('Longitude');
ylabel('Latitude');
axis tight;

このラスター マップは、Mary Maersk 号がこの 10 日間、南シナ海を航行していたことを示しています。

参考

関数