# DEM to Polygon

1150
5
Jump to solution
07-24-2019 12:09 AM
New Contributor II

Dear Experts,

Working on a DEM (30m x 30m raster) of a large area, I need to find out the area (polygons) which is greater that 5,000 hectares and within which average slope is less than 10 degree. The shape of the area/polygon- more it is towards square or reactangle better it is.
I cannot figure out which step would enable me to achieve this. Can you experts guide me or give me hint, please?
1 Solution

Accepted Solutions
MVP Esteemed Contributor

The raster tools have capabilities that make this pretty straightforward. Check out the following tools:

• Slope
• Con
• Region Group
• Zonal Geometry

I suggest trying them on your data (using a smaller environment extent to save time) until you get a workflow that gets you what you want. Laster, you can expand the extent to process the full study area.

You can use the magic of map algebra to do this analysis in Raster Calculator, using an expression that combines these tools. This may be helpful if you want to easily tweak your parameters once you have the process working. In this example I am assuming your xy coordinates are in meters so 1e6 is a 1 km2 (1000x1000 m2) minimum area.

RegionGroup(Con(ZonalGeometry(
RegionGroup(Con(Slope("dem") < 10, 1)),
"Value", "AREA") > 1e6, 1))‍‍‍‍‍‍‍‍‍‍‍‍‍

Once you have these zones defined, you can convert them to polygons with the Raster To Polygon tool. A good way to then identify the "rounder" polygons would be to calculate the area / perimeter ratio (larger ratios are "rounder" polygons).

5 Replies
MVP Esteemed Contributor

The raster tools have capabilities that make this pretty straightforward. Check out the following tools:

• Slope
• Con
• Region Group
• Zonal Geometry

I suggest trying them on your data (using a smaller environment extent to save time) until you get a workflow that gets you what you want. Laster, you can expand the extent to process the full study area.

You can use the magic of map algebra to do this analysis in Raster Calculator, using an expression that combines these tools. This may be helpful if you want to easily tweak your parameters once you have the process working. In this example I am assuming your xy coordinates are in meters so 1e6 is a 1 km2 (1000x1000 m2) minimum area.

RegionGroup(Con(ZonalGeometry(
RegionGroup(Con(Slope("dem") < 10, 1)),
"Value", "AREA") > 1e6, 1))‍‍‍‍‍‍‍‍‍‍‍‍‍

Once you have these zones defined, you can convert them to polygons with the Raster To Polygon tool. A good way to then identify the "rounder" polygons would be to calculate the area / perimeter ratio (larger ratios are "rounder" polygons).

New Contributor II

Thank you very much for your suggestion. I think I understand it correctly and looks like it produce teh resultst hat i want in such straight forward way - but knowing only after you have mentioned it. But somehow when I copied the "expression" given by you in the raster calculator window--it shows error and doesnot run further..why can it be? I have changed the "dem" with my dem file name..rest i use as it is written by you. Do not know what t odo with the terms "Value" and "Area" in your expression..i leave as it is in my expression--and it does not run.

MVP Legendary Contributor

What is the error?

New Contributor II

Oh yes. Thanks a lot. I get it done correctly by splitting the workflow in the expression as suggested by Curtis Price. Great help.

Cheers!

MVP Esteemed Contributor

To understand the tools, please read up each of the tools so you know what they do and their syntax. "Value" is the value field in the raster table, and "AREA" is an option for the zonal geometry tool. Again I suggest experimenting with these tools individually first instead of copying and pasting map algebra code so you know what you are doing. BTW "dem" would be a raster layer in your map, not a path to disk.