6

Using ArcGIS 10.1, I am interested in symbolizing a series of polylines to generate a pseudo-heatmap like one of the answers to this question.

The essence of the solution idea is to symbolize each polyline as red center, green border, and set the individual line transparency to 20%. Using ArcGIS, it is trivial to set the entire layer transparency, but then the cumulative, low alpha, overlaps never sum to an opaque level.

Is it possible to set opacity / transparency at the symbol level and not the layer level?

Similar to Displaying transparent overlapping polygons in ArcGIS for Desktop?, but I am interested in polyline and using color, instead of hatching.

Edit


I have tested the ability to do this in two ways:

  1. If I buffer the polyline and add a transparency field, I can directly set transparency for each layer. Unfortunately, this still appears to 'flatten' the symbology, i.e. the cumulative alpha of overlapping polylines is lost.

  2. By exporting 4 of the polylines, known to overlap, it was possible to manually set the transparency (on the layer) to 80%. When all layers are viewed the cumulative alpha is displayed as anticipated, i.e. two overlapping lines are 'darker' (40% opaque).

As an aside, I tested this using a google fusion table and the result is as expected, i.e. alpha is per line and cumulative for overlapping symbols. This can also be done in OpenLayers, but that removes the step from my ArcGIS workflow (and more importantly, my users ArcGIS workflow).

enter image description here

Edit 2

I was able to accomplish this manually in ArcGIS using the following workflow. This is non-ideal as it requires a duplication of the layer n times, where n is the number of features.

  1. Copy the layer and paste to the same dataframe.
  2. Define a definition query on a unique field. In my case I used a grouping: `"id" >= 20 AND "id" < 30.
  3. Repeat 2 until all features are in their own layer...
  4. Add the features to a New Group Layer
  5. In Group Layer Properties select Symbol Levels
  6. Check 'Draw this layer using the symbol levels specified below'
  7. Manually check Merge for each layer

I suspect that the above workflow can be automated as a python add-in. I will need to explore that next.

Result with black background: enter image description here

1

I ended up writing a Python Add-in to get this done. Some notes:

  1. Apparently the progress dialog is not available via add-ins...so this looks like it hangs Arc until it is done. This is fine for my own internal use, but not something I would distribute.

  2. Perhaps a better way exists to symbolize the derived layer? If so, I would love to know since performance during 'resymbolization' is poor.

Code is on a github gist. No reason to dump it all here. I might create a repo if this is of interest to anyone...

https://gist.github.com/jlaura/6223127

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.