1 |
gforget |
1.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='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 |
|
|
|