Extract data from a matrix for each polygon in a shape file
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sourangsu Chowdhury
am 22 Jan. 2019
Kommentiert: KSSV
am 22 Jan. 2019
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 shapefile
S=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]);
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Map Display finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!