このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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');
生のデータの処理
データをマップにプロットする前に、生の緯度データと経度データを処理します。
緯度と経度の情報を、lat
と lon
という別々の変数に保存します。
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 日間、南シナ海を航行していたことを示しています。
参考
関数
geoquadline
(Mapping Toolbox) |bufgeoquad
(Mapping Toolbox) |wmsfind
(Mapping Toolbox) |WMSLayer.refine
(Mapping Toolbox) |wmsread
(Mapping Toolbox) |geoshow
(Mapping Toolbox) |thingSpeakRead