DEM to Polygon

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?


Best Answer

  • JSLJSL Global Mapper User Posts: 418
    Answer ✓
    If I was trying to solve this problem, the first thing I'd do would be to create a slope shader with two values, one for slopes less than or equal to 10 degrees, and one for all higher degrees.  Just to keep things simple, make one color black and the other white.

    Next, I would zoom to the bounds of the DEM and click File -> Capture Screen Contents.  In the dialog box, I would select TIFF for the image type and check the boxes Generate a World File, Generate a Projection File, and Create 256 Color Palette Image.

    I would then save the resulting image somewhere, and once it was saved, I would open it in the workspace.

    Now you can right click on the image and choose Layer -> Create Area Features from Equal Values.  You should end up with two sets of polygons, one black and one white.  I'll assume for the example that black represents slopes less than or equal to 10 degrees.

    Select the layer and choose Attribute/Style Functions and then Add Style Attributes to Selected Features.  This will assign a fill color to all the polygons.

    Next, select the layer again and choose Layer -> Split, and split the layer by fill color.  This will give you a layer of black polygons and a layer of white polygons.  You can select the layer of black polygons and find their measure attributes, and then you will be able to determine which black polygons are greater than 5000 hectares. 


  • pawan_thapapawan_thapa Posts: 5
    Thank you ver much JSL for your tip/hint. I will try it following your suggestion once i'm back t owork tomorrow morning. In the meantime, just a quick query. I have the 30m x 30m raster. The way you suggest will selct only those cells (or connection of cells) which has slope less than 10 degree locally isn't it? Is there a way to get polygon area such that average slope inside the poly gon is less than 10 degree, which means locally inside teh poly gon some ratser cells can have more than 10 degree but as whole polygon, the avergae slope isnide it is less than 10 degree?
  • JSLJSL Global Mapper User Posts: 418Trusted User
    You could make a grid of polygons over your raster and use the slope analysis to get the average slope within each polygon, but it would be  a random distribution of polygons.
  • pawan_thapapawan_thapa Posts: 5
    Can you please little bit elaborate, how can I do that?
  • JSLJSL Global Mapper User Posts: 418Trusted User
    The easiest way would be to first create a rectangular polygon that completely covers the area you're concerned with.  First, make sure all the area is in the window, then right click and choose Create Area/Polygon Features -> Create Rectangular/Square Area.  Next, draw the rectangle to cover your desired area.

    Then select the rectangle, right click and choose Crop/Combine/Split Functions ->Subdivide quadrilateral area.

    In the dialog window that opens up (see below), input the number of rows and columns that will give you the approximate number of subdivisions that you want.  In the example below, I chose 3 rows and 3 columns so I'll end up with 9 rectangles.  It's also importnat to choose Create Horizontal/Vertical Subdivisions in the options column.

    When you click OK, you should end up with two layers:  one with your original polygon and one with all the rectangles created from the original polygon.  You can then select the layer with all the subdivisions and right click Analysis/Measurement -> Calculate Elevation/Slope Stats for Selected Features, and that will give you the average elevation for each subdivision.  Then you can just use the search function to find all the polygons that have an average slope of less than 10 degrees.
Sign In or Register to comment.