How to subset the matrix/array with shape file?

조회 수: 5 (최근 30일)
Shakir Hussain
Shakir Hussain 2018년 6월 26일
댓글: Adi Mulsandi 2020년 10월 22일
I have matrix of 890*751 and array 890*751*5 and I want to clip/crop/subset this matrix and array with shape file. The shape file is consist on several sub-polygon inside. Each inside sub-polygon of shape file has to clip/crop/subset separately and save with unique name. E.g, we have a shape file with 4 sub-polygon (with name (a,b,c,d) and we have to get 4 clip/crop/subset(a,b,c,d) of the matrix/array with. we can read the shape file by
area = shaperead('shapefile', 'UseGeoCoords', true);
geoshow( area , 'Facecolor', 'blue')
but no idea how to crop/clip/subset the matrix/array. The sample testmatrix, testarray and shapefile are attached here for easy to understand the question. Thank you in advance for any helpe/guide
  댓글 수: 3
Shakir Hussain
Shakir Hussain 2018년 6월 26일
Dear KSSV, the lat lon of matrix are attached here
KSSV
KSSV 2018년 6월 26일
편집: KSSV 2018년 6월 26일
aaah...got it....

댓글을 달려면 로그인하십시오.

채택된 답변

KSSV
KSSV 2018년 6월 26일
편집: KSSV 2018년 6월 26일
Check this link for a similar question. You can follow the same code.
shapefile = 'shapefile.shp' ;
S = shaperead(shapefile) ;
N = length(S) ;
for i = 1:N
plot(S(i).X,S(i).Y)
hold on
end
lon = load('testlon.mat') ; lon = lon.testlon ;
lat = load('testlat.mat') ; lat = lat.testlat ;
[X,Y] = meshgrid(lon,lat) ;
data = load('testarray.mat') ; data = data.testarray ;
[nx,ny,d] = size(data) ;
%%Extract data
iwant = cell(d,N) ;
for i =1:d
A = data(:,:,i) ;
for j = 1:N
idx = inpolygon(X(:),Y(:),S(i).X,S(i).Y) ;
iwant{i,j} = A(idx) ;
end
end
  댓글 수: 10
Shakir Hussain
Shakir Hussain 2018년 8월 19일
Yes, Now it is fixed and code is working well. Last thing is how we convert the result (iwant) into 2d matrix according to the polygon extend?
Adi Mulsandi
Adi Mulsandi 2020년 10월 22일
Hi Shakir Hussain can you share how to convert the result (iwant) into 2d matrix according to the polygon extend?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by