MATLAB: How to extract data through the shapefile (India) from global precipitation data.

shapefile

Hello Guys,
I have shapefile for Indian region. Actually, I want to extract Indian region data through this shapefile from global data. Please help me for doing this. I am attaching here both (Shaplefile and Global data in .mat).
Thank you so much in advance.
Regards,
Varunesh

Best Answer

YOu need to read about inpolygon. This function helps you to extract what you want.
shapefile = 'India_Shapefile\ind_state_2000.shp' ;
S = load('global_data.mat') ;
C = shaperead(shapefile) ;
N = length(C) ;
lon = S.lon ; lat = S.lat ;
P = S.prc ;
[X,Y] = meshgrid(lon,lat) ;
iwant = cell(N,2) ;
for i =1:N
Cx = C(i).X ; Cy = C(i).Y ;
idx = inpolygon(X(:),Y(:),Cx',Cy') ;
P1 = P(:,:,1)' ;
iwant{i,1} = P1(idx) ;
P2 = P(:,:,2)' ;
iwant{i,2} = P2(idx) ;
end