source: issm/trunk-jpl/src/m/contrib/chenggong/dataprocessing/integrateOverDomain.m

Last change on this file was 27694, checked in by Cheng Gong, 2 years ago

ADD: a function to interpolate ice mask from Greene monthly reconstruction data

File size: 1.0 KB
Line 
1function [intData, meanData, areas] = integrateOverDomain(md, data, masked, weights)
2% integrateOverDomain - integrating data over the whole domain
3%
4% intData: integral of the data over each element
5% meanData: intData/areas
6% areas: areas of the domain
7if nargin < 4
8 weights = ones(size(data));
9 if nargin<3
10 masked = logical(zeros(size(data)));
11 end
12end
13
14masked = masked | isnan(data) | isnan(weights);
15% Set the area with masked=1 to nan
16data(masked) = nan;
17weights(masked) =nan;
18
19
20% get the mesh
21elements=md.mesh.elements;
22x=md.mesh.x;
23y=md.mesh.y;
24
25%compute areas;
26eleAreas=GetAreas(elements,x,y);
27
28% integrate nodal data to element
29eleData = 1/3*eleAreas.*(data(elements(:,1),:).*weights(elements(:,1),:) + data(elements(:,2),:).*weights(elements(:,2),:) + data(elements(:,3),:).*weights(elements(:,3),:));
30eleAreas = 1/3*eleAreas.*(weights(elements(:,1),:)+weights(elements(:,2),:)+weights(elements(:,3),:));
31
32intData = sum(eleData, 1, 'omitnan');
33areas = sum(eleAreas, 1, 'omitnan');
34meanData = intData ./ areas;
Note: See TracBrowser for help on using the repository browser.