AnsweredAssumed Answered

How do I assign polygon colors based on the values in an attribute table?

Question asked by on Sep 15, 2017
Latest reply on Sep 19, 2017 by KKramer-esristaff

I have a polygon feature class that represents the elevation change of the surface of a glacier. The feature class has a numeric field that contains elevation change values (example: 1.23, -4.56, etc.) So for example, a value of 1.23 indicates that the surface elevation increased by 1.23 meters, and a value of -4.56 indicates that the surface elevation decreased by 4.56 meters.


I want to assign a color to each polygon based on the polygon's elevation change value, such that positive changes would be shown in shades of green, and negative changes would be shown in shades of red.


I can do this using a colorramp that grades from green to red. However, it's not possible to assign the colors of a colorramp to a specific range of elevation change values, which is what I need to do. What I'd like to do is to use a lookup table to assign specific colors to specific ranges of elevation changes. Here's an example that might make this easier to understand:


From     To      Color

 2.00     2.99     Dark green

 1.00     1.99     Medium green

 0.00     0.99    Light green

-0.01    -0.99    Light red

-1.00    -1.99    Medium red

-2.00    -2.99    Dark red


So, if a polygon in my feature class has an elevation change value of 1.48, it would be filled with a medium green color (because it falls within the range of 1.00 to 1.99). A value of -2.38 would be dark red, and so on.


I can't find a way to accomplish what I want to do in either ArcMap 10.5.1 or in ArcGIS Pro 2.0. Initially, I thought I'd be able to do it in Pro, as it provides a means to symbolize polygon color based on a specific attribute value. But that won't work for me; I need to assign polygon colors based on ranges of values (example: 1.00 to 1.99; -1.00 to -1.99; etc.).


Another option in Pro is to write a script to assign the polygon colors, but unfortunately, Pro 2.0 does not yet support using the Arcade scripting language to control symbolization.


So, any ideas on how I can accomplish what I want to do?