Skip to content

Commit f720e70

Browse files
CHG: do not error out if data is outside requested x/y
1 parent 063d825 commit f720e70

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/m/modeldata/interpFromGeotiff.m

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,22 @@
6161

6262
%Get pixels we are interested in
6363
offset=2;
64+
6465
xmin=min(X(:)); xmax=max(X(:));
65-
posx=find(xdata<=xmax);
66-
id1x=max(1,find(xdata>=xmin,1)-offset);
67-
id2x=min(numel(xdata),posx(end)+offset);
66+
xflags = (xdata>xmin & xdata<xmax);
67+
if ~any(xflags); dataout = NaN(size(X)); return; end
68+
id1x=find(xflags, 1, 'first'); id1x = max(1,id1x -offset);
69+
id2x=find(xflags, 1, 'last' ); id2x = min(numel(xdata),id2x+offset);
6870

6971
ymin=min(Y(:)); ymax=max(Y(:));
70-
posy=find(ydata>=ymin);
71-
id1y=max(1,find(ydata<=ymax,1)-offset);
72-
id2y=min(numel(ydata),posy(end)+offset);
72+
yflags = (ydata>ymin & ydata<ymax);
73+
if ~any(yflags); dataout = NaN(size(X)); return; end
74+
id1y=find(yflags, 1, 'first'); id1y = max(1,id1y -offset);
75+
id2y=find(yflags, 1, 'last' ); id2y = min(numel(ydata),id2y+offset);
7376

7477
data = double(imread(geotiffname,'PixelRegion',{[id1y,id2y],[id1x,id2x]}));
75-
xdata=xdata(id1x:id2x);
76-
ydata=ydata(id1y:id2y);
78+
xdata = xdata(id1x:id2x);
79+
ydata = ydata(id1y:id2y);
7780
else
7881
data=double(flipud(imread(geotiffname)));
7982
end

0 commit comments

Comments
 (0)