Creating a georeferenced polygon

4 vues (au cours des 30 derniers jours)
Darragh Kenny
Darragh Kenny le 13 Nov 2018
Modifié(e) : Bruno Luong le 13 Nov 2018
Hi all,
I'm trying to map out a certain area over southern Africa, which is meant to look like the one in the image. The image was created with the matrix dro_dom_fill containing 1's for the regions of interest and NaN's otherwise. From this matrix, I am trying to create a georeferenced polygon or something similiar, so that I can find gridpoints in another dataset with a different resolution that lie within the domain. However, if I run this code my polygon looks like in droughtdomain_geoshape.jpg attached
[LAT,LON]=meshgrid(lat,lon);
a=dro_dom_fill.*LAT
b=dro_dom_fill.*LON
a(isnan(a))=[]
b(isnan(b))=[]
g=geoshape(a,b,'Geometry','polygon')
worldmap([-35 0],[9 50]), bordersm
geoshow(g)

Réponses (2)

KSSV
KSSV le 13 Nov 2018
Modifié(e) : KSSV le 13 Nov 2018
Read about inpolygon. As you have the boundary points, you can get all the points lying inside the polygon.
Or, you can arrange your boundary points..in a order using this link and plot the boundary.
  2 commentaires
Darragh Kenny
Darragh Kenny le 13 Nov 2018
Modifié(e) : Darragh Kenny le 13 Nov 2018
I have problems creating the polygon itself as a first step...
meaning how do I create a polygon on a map, given the longitudes and latitudes of all the gridpoints that are meant to be in the polygon?
KSSV
KSSV le 13 Nov 2018
Have a look on boundary. If you are looking for a boundary of country/ state, you can download shape files.

Connectez-vous pour commenter.


Bruno Luong
Bruno Luong le 13 Nov 2018
Modifié(e) : Bruno Luong le 13 Nov 2018
You can get a linear connected contour (polygon) by
C = contourc(lat,lon,double(isfinite(dro_dom_fill)),0.5*[1 1]);
C = C(:,2:C(2,1)+1) % Assuming it returns 1 polygon

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by