Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am a relatively new ArcGIS user and I have a question about automating a tedious join/symbology classification/export operation. I have a very simple shapefile to which I join a bunch of fields. I then need to have these new fields symbolized with a specific color ramp using a five quantile classification and then exported to a JPG at a certain resolution with a specific filename.

First of all, is this even possible? If so, is it possible to sort of "preload" the software manually with the layers and page layout I want and then have it loop in such a way that it merely changes the symbology field value and exports, over and over? There is a legend but since the labels will remain the same (quantile 1, quantile 2, etc) I can just leave that as a hardcoded graphic.

I'm envisioning something like this: I add my two layers (one is a fill-free layer of US states to serve as an outline for the other layer) and then join one big file to the layer that needs symbology. This program I don't know how to write would then loop through and change the symbology field value to the next column I've added, and changes the classification back to a 5-class quantile (it always reverts to Jenks for some reason). Then since the legend is hardcoded it just needs to save this new map of field Beta1 as a jpg and then switch to Beta2, Beta3, etc.

Does this make sense? Is it possible? Is it really complicated? Thanks for your help!

share|improve this question
    
It is possible to update the legends of the maps representing different fields, as arcmap allows to update the legend of an existing layer. See this link resources.arcgis.com/en/help/main/10.1/index.html#/… –  osmarllq Jul 2 at 23:21
    
This doesn't really answer the question though. Asker isn't seeking to update a legend, he's trying to apply a standard symbology to geometry using many different fields iteratively. –  Chris W Jul 3 at 0:03
add comment

1 Answer

The ArcMap interface resets the symbology classification to jenks whenever you change the symbology layer, which is kind of annoying. I've gotten around this to make batches of 100s of maps using ArcPython.

First, set the symbology to run off of a field in the attribute table called "temp" or something like that. Tweak the symbology to your liking. Then you will iteratively replace that values of that field using Field Calculator, then export the map:

import arcpy

#List of names of fields to be mapped
ListOfFieldsToSymbolize = ["field1","field2","field3"]

#Temporary field that layer is currently using in ArcMap
SymbolizedField = "temp"

for Field in ListOfFieldsToSymbolize:

    #Replace temporary field with one of the fields to be mapped
    arcpy.CalculateField_management("Layer", SymbolizedField, "!" + Field + "!", "PYTHON")    

    arcpy.mapping.ExportToPDF(Current.mxd, Output.pdf)
share|improve this answer
    
THANKS! This is working wonders. I got a bit hung up because it didn't understand what Current meant in the export, but I added an mxd= line to the top and that fixed it. Do you know how to tell it which folder I want to export the PDFs to? I'm not sure how it chose the folder it did (maybe because the MXD file is saved there) but I would like to be able to tell it to save somewhere else. –  Jacob Mar 21 '12 at 13:14
    
Wait no sorry this doesn't work. It keeps the same break values for each of the fields. I need it to recalculate the appropriate breakpoints based on the new field that cycles through. Is this possible? –  Jacob Mar 21 '12 at 13:49
    
@Jacob As far as I know this is not possible. ArcMap symbology can only be "edited" with ArcPython by importing pre-made .lyr files. The workaround for this that I've used in the past is to use Excel to determine which bin each feature of each map should be in, and symbolize based off of these bin numbers. The issue with this is that the legend values will not update. To get around this, you can convert the legend to graphics and use ArcPy to update the text elements. However, this much work is probably only worth it if you're doing lots of maps in your batch. –  dmahr Mar 21 '12 at 17:32
    
Ahh, clever. I like that approach. The legend doesn't matter since it just says "lowest quintile" and "highest quintile" (we're not divulging actual numbers). Now I just need to figure out how to get it to export the PDF to a certain folder and I'll be golden. –  Jacob Mar 22 '12 at 13:08
    
@Jacob You can just specify the output path in the arcpy.mapping.ExportToPDF() command. –  dmahr Mar 22 '12 at 14:22
show 3 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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