I have a matrix (331X301) at 0.1 degree resolution data encompassing entire India and a shapefile with 2299 attributes(polygons). I generally extarct data for each attribute from the matrix raster in ArcGIS. Is there a way to extract the mean data(mean of all the 0.1 degree grids that fall in that attribute) for all the polygons of the shpfile in Matlab?
Link for shapefile: https://1drv.ms/f/s!Ajxh9oeoND9bhOcwrzoLfEqBUNUTOg
Link for data: https://1drv.ms/u/s!Ajxh9oeoND9bhOcva9i-ByW45YBwoA
Note: the data is 3 dimension-331x301x12.
Below is the code written to overlay the shapefile on the data.
However, the shapefile S has 2299 attributes, I could not extract value of z2 for each of these 2299 attributes
Reading the shapefileS=shaperead('C:\shpfiles\india_adm3.shp');%selecting the first month from the data of 321x321x12
z2= data(:,:,1)%makking dummy coordinates for the data
x = linspace(67, 97, 301);y = linspace(5, 38, 331);[x,y] = meshgrid(x,y);y=flipud(y);%Clipping the data to the coastlines
isin = inpolygon(x,y,S.X,S.Y);z2(~isin) = NaN;figure('color','w');mx=geoshow('landareas.shp', 'FaceColor', 'White');%display the data
contourf(x,y,z2,'LineColor','none');hold on%display the shapefile
S1=shaperead('C:\shpfiles\india_adm3.shp','Attributes',{'BoundingBox'});lon1 = [S1.X]';lat1 = [S1.Y]';plot(lon1,lat1,'Linewidth',2,'color',[0 0 0]);
Best Answer