Fourni par Blogger.

overlay complexity

Publié par elharrak mardi 22 avril 2014

Grouping raster or vector data by attribute in order to SIMPLIFY the OVERLAY process
Need to ask 2 questions first;"With what complexity?" then "How to assign values?"
in order of Increasing Complexity simplification of continuous layers yields discrete categorical layers
  1. binary layers (yes/no, on/off, 1/0, suitable/unsuitable)
  2. multiple category layers( yes/maybe/no, on/bordering/off, highly suitable/less suitable/not suitable)
  3. "index" layers (1, 2, 3, ....10, or 1, 2, 3,...1000, etc)
How does one divide up a continuous variable into discrete categories? (open simplify_elevation.mxd from your ...GIS\Demo\simplify folder)
  1. Raster Calculator Map Algebra
    1. "IF" statements (plus "if... then...else") in traditional programming
      1. BINARY DISRETE CATEGORIES : a simple "Con" statement has this syntax 
        Con (conditional statement, yesGrid, noGrid) . . . . .see help -- it means "conditional testing"
        Con("elev" > 500, 1, 0) copy and paste this into the Spatial Analyst Raster Calculator 
      2. MULTIPLE DISCRETE CATEGORIES: a "nested" .Con statement (where the "no" for the first conditional sends you to another conditional test)
        Con("elev" > 600, 2, Con("elev" > 300, 1, 0)) 
    2. Using arithmetic (works for Binary, Multiple, or Index Category Layers)
      1. Determine the range and divide by the number of categories required
        index category width = ([range]/[# of divs needed])
        for our elevation example; 240 to 830 = 590 / 10 classes = 59 m per index level
      2. subtract the minimum from each cell or attribute value to set the origin of the index at the lowest value
        ([elev] - 240) / 59
      3. find the next lowest integer (or highest, depending if you want the index valuesto start at 0 or 1) using the Floor or Ceil functions
        Floor(([elev] - 240) / 59) however to get it into an INTEGER raster, you must use 
        Int(Floor(([elev] - 240) / 59)) 
        which yields 10 categories from 0 to 9
        or
        Int(Ceil(([elev] - 240) / 59) )
        which yields 10 categories from 1 to 10 

        What if you want the same number of cells in each category?

  2. Reclassify geoprocessing 

0 commentaires

Enregistrer un commentaire