![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/913195/image.png)
補間方法について
8 ビュー (過去 30 日間)
古いコメントを表示
実施したいこと:指定の座標の補間データが欲しいです。
使用するデータ:海面水温の緯度経度のグリッドデータを使用します。
データの概要は以下です。
% 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
2022 年 3 月 3 日
グリッドデータの素性(単調増加か否か、等間隔か否か)により「どのようにすれば,lon=130.7778,lat=42.3772のSea surface temperatureが返せるか」の答えも異なります。グリッドが等間隔なら下図の赤いクエリ点の緯度・経度とインデックスの関係から緑の近傍点4点を得て、近傍点4点間を線形内挿して目的の値を返せます。グリッドが非等間隔なら2分探索で近傍点を探します。グリッドが単調増加ではなかったり、グリッドではなく散布データだったりする場合はまた別のアルゴリズムが必要です。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/913195/image.png)
採用された回答
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)
一応図示します
hold on
surf(x,y,z,'FaceAlpha',.4,'EdgeAlpha','.3');
plot3(xq,yq,zq,'o','MarkerEdgeColor','none','MarkerFaceColor','r');
view([40 15])
axis off
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!