1 |
function [mn]=idma_area_mean(fld,msk); |
2 |
% IDMA_AREA_MEAN computes area-weighted average of a |
3 |
% field (fld; 2D or 3D) over a region defined by |
4 |
% a 0/1 mask (msk). Both fld and msk are of |
5 |
% the gcmfaces class. If fld has a third dimension |
6 |
% (e.g., for depth or time) then mn is a vector |
7 |
% |
8 |
% Example: box_l=[-180 -140]; box_L=[-10 10]-30; |
9 |
% msk=(mygrid.XC>=box_l(1)&mygrid.XC<box_l(2)&... |
10 |
% mygrid.YC>=box_L(1)&mygrid.YC<box_L(2)); |
11 |
% |
12 |
% fileName='release1/nctiles_climatology/THETA/THETA'; |
13 |
% fldName='THETA'; |
14 |
% fld=read_nctiles(fileName,fldName,1); |
15 |
% fld=fld.*mygrid.mskC; |
16 |
% |
17 |
% [mn]=idma_area_mean(fld,msk); |
18 |
% figureL; plot(mn,mygrid.RC); |
19 |
|
20 |
gcmfaces_global; |
21 |
|
22 |
n=size(fld{1},3); |
23 |
mn=NaN*zeros(1,n); |
24 |
|
25 |
racmsk=msk.*mygrid.RAC; |
26 |
racmsk=repmat(racmsk,[1 1 n]); |
27 |
racmsk(isnan(fld))=0; |
28 |
|
29 |
for k=1:n; |
30 |
mn(k)=nansum(racmsk(:,:,k).*fld(:,:,k))/nansum(racmsk(:,:,k)); |
31 |
end; |
32 |
|
33 |
|