フィルターのクリア

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

13 ビュー (過去 30 日間)
Sourangsu Chowdhury
Sourangsu Chowdhury 2019 年 1 月 22 日
コメント済み: KSSV 2019 年 1 月 22 日
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]);

採用された回答

KSSV
KSSV 2019 年 1 月 22 日
Read about inpolygon.
  7 件のコメント
Sourangsu Chowdhury
Sourangsu Chowdhury 2019 年 1 月 22 日
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 2019 年 1 月 22 日
figure
hold on
for i = 1:N
x = S(i).X ;
y = S(i).Y ;
patch(x,y,rand(1,3))
end

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMap Display についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by