Filter löschen
Filter löschen

Extract data from a matrix for each polygon in a shape file

8 Ansichten (letzte 30 Tage)
Sourangsu Chowdhury
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?
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]);

Akzeptierte Antwort

KSSV
KSSV am 22 Jan. 2019
Read about inpolygon.
  7 Kommentare
Sourangsu Chowdhury
Sourangsu Chowdhury am 22 Jan. 2019
h = geoshow(S);
set(h.Children, {'CData'}, {S.cx}');
set(h.Children, 'Facecolor', 'flat');
I tried with the following code, but it returns an error,
Error using matlab.graphics.primitive.Patch/set
Value cell array handle dimension must match handle vector length.
KSSV
KSSV am 22 Jan. 2019
figure
hold on
for i = 1:N
x = S(i).X ;
y = S(i).Y ;
patch(x,y,rand(1,3))
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by