補間方法について

18 ビュー (過去 30 日間)
Hiroki Takeda
Hiroki Takeda 2022 年 3 月 2 日
コメント済み: Hiroki Takeda 2022 年 3 月 3 日
実施したいこと:指定の座標の補間データが欲しいです。
使用するデータ:海面水温の緯度経度のグリッドデータを使用します。
データの概要は以下です。
% Area:44.0N 130.0E 42.0N 133.0E
% Grid:0.125 x 0.125
% Parameter:Sea surface temperature
補間について
2次元データなので,interp2を用いるのが良いかとも思ったのですが,別に新たな座標間隔でグリッドデータを作りたいわけではありません。
例えば,lon=130.7778,lat=42.3772 における,Sea surface temperatureの値が知りたいということです。
上記のようなgrid dataから,どのようにすれば,lon=130.7778,lat=42.3772のSea surface temperatureが返せるかを知りたいです。
よろしくお願いいたします。
  1 件のコメント
Atsushi Ueno
Atsushi Ueno 2022 年 3 月 3 日
グリッド データの内挿 - MATLAB & Simulink - MathWorks 日本グリッドベースの内挿を使用する利点」参照
グリッドデータの素性(単調増加か否か、等間隔か否か)により「どのようにすれば,lon=130.7778,lat=42.3772のSea surface temperatureが返せるか」の答えも異なります。グリッドが等間隔なら下図の赤いクエリ点の緯度・経度とインデックスの関係から緑の近傍点4点を得て、近傍点4点間を線形内挿して目的の値を返せます。グリッドが非等間隔なら2分探索で近傍点を探します。グリッドが単調増加ではなかったり、グリッドではなく散布データだったりする場合はまた別のアルゴリズムが必要です。

サインインしてコメントする。

採用された回答

Hernia Baby
Hernia Baby 2022 年 3 月 3 日
書いてある通り、interp2 がいいと思います。
見たい座標を1つ打てばオッケーです。
clear,clc,close all;
[x,y,z] = peaks(50);
xq = 1;
yq = -2;
zq = interp2(x,y,z,xq,yq)
zq = -2.1043
一応図示します
hold on
surf(x,y,z,'FaceAlpha',.4,'EdgeAlpha','.3');
plot3(xq,yq,zq,'o','MarkerEdgeColor','none','MarkerFaceColor','r');
view([40 15])
axis off
  1 件のコメント
Hiroki Takeda
Hiroki Takeda 2022 年 3 月 3 日
早速ありがとうございます。
ご示唆のおかげで実施することができました。
ありがとうございました。
-----
Lat=repmat(lat',size(lon,1),1);
Lon=repmat(lon,1,size(lat,1));
SSTq=interp2(Lat,Lon,sst,latq,lonq);
-----

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange内挿 についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!