|
61 | 61 |
|
62 | 62 | %Get pixels we are interested in |
63 | 63 | offset=2; |
| 64 | + |
64 | 65 | 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); |
68 | 70 |
|
69 | 71 | 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); |
73 | 76 |
|
74 | 77 | 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); |
77 | 80 | else |
78 | 81 | data=double(flipud(imread(geotiffname))); |
79 | 82 | end |
|
0 commit comments