細かいgriddataを荒いgriddataに直す方法
Show older comments
緯度・経度ごとのgriddata(海面水温)があります(sizeは4500×3251の配列です)。
これを,緯度(2°間隔)・経度(5°間隔)の分解能へ粗くして,sizeを90×72の配列にしたいです。
代表となる緯度(2°間隔)・経度(5°間隔)のdataを中心として,その周辺のデータの代表値(平均値)として取り出したいです。
その際に,interp2がいいのか,それとも別な方法があるのか知りたいです。
よろしくお願いいたします。
Answers (1)
Hernia Baby
on 7 Apr 2022
0 votes
参考になる回答がこちらにありますので、こちら試していただくことをオススメします。
4 Comments
Hiroki Takeda
on 8 Apr 2022
ちょっと思ったのですが、
3251が素数なのでどのように分割すればいいかわからないです
とりあえずやり方のみ書きます
-----
データを作ります
clc,clear;
n = 4500;
m = 3251;
data = reshape(1:n*m,n,[])
区画を決めます
n1 = 90;
m1 = 72;
何分割にするか決めます
step = round([n m]./[n1 m1]);
cellに格納します
for ii = 1:n1
for jj = 1:m1
A{ii,jj} = data(step(1)*(ii-1)+1:step(1)*ii,step(2)*(jj-1)+1:step(2)*jj);
end
end
各区画で平均を取ります
B = cellfun(@(x) mean(x,["all"]),A)
-----
ここで問題になるのが、3251は72で割り切れないことです
つまり『あまりの列』が存在し、それらは切り捨てられます
(data(1,end)-A{1,end}(1,end))/n
11列分のデータが切り捨てられてしまいます
Hiroki Takeda
on 12 Apr 2022
Hernia Baby
on 12 Apr 2022
Edited: Hernia Baby
on 12 Apr 2022
Categories
Find more on 大規模なイメージ ファイル in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!