Automate Mapping using Geoprocessing and Python

Geoprocessing allows you to take advantage of the full power of GIS for automating database-centered workflows including cartographic data processing, multi-scale data creation, updates, and Web based automation. Using python, you can script redundant mapping tasks, such as updating a symbol across many map products, merging multiple pages into a single PDF file, or batch printing and exporting.


Annotation geoprocessing tools allow you to batch convert labels to annotation using your Web map cache tile schema. This makes it possible convert labels to annotation over a large area, such as a country or continent, and helps with the caching processes for these very large areas.

Cartographic Refinement

Cartographic refinement tools, designed to work with representations, provide the means to create cartographic visual effects and symbol refinements, such as road overpasses and underpasses. Additional tools allow you to:

  • Align and orient markers to line segments.
  • Calculate different line cap types for cased-line symbols.
  • Rotate marker fills to the main angle of lines and polygons.
  • Disperse groups of markers that are close together or co-located.
  • Set control points to adjust line patterns at intersections or specific angles.

Generalization and Graphic Conflict Resolution

Generalization operations are divided into two toolsets, Generalization and Conflict Resolution.

Generalization tools allow you to reduce feature counts through aggregation, thinning and typification, as well as reduce feature complexity through simplification, smoothing and collapsing.

Graphic conflict resolution tools can be used to reduce graphic conflicts after symbolization where conflicts can occur because of features being symbolized at scale. Specific tools are available for resolving road and building conflicts, as well as propagating displacement to other features. Conflict detection tools can be used to calculate and highlight where symbolized features on a map overlap so you can visualize where more cartographic editing may be needed.

Recent development efforts have focused on the generalization of very large data sets (entire countries) for use in creating the different levels of detail (LOD) necessary to create multi-scale Web maps.

Grids and Graticules

Geoprocessing tools make it possible to generate grids and graticules as layers in your map using grid definition files to define grid symbols, ticks, intervals, and coordinate formats. Grids and graticules are stored as feature classes in a geodatabase which makes it possible to symbolize and edit them using standard symbology and editing tools, and allows you to draw them in data view as well as layout.

Representation Management

With automated database-driven tools to manage cartographic representations, you can

  • Add or drop a feature representation.
  • Assign representation rules to features using SQL.
  • Make a feature layer from representation.
  • Select, remove, and update overrides.


A variety of masking effects are required to draw outlines and halos around features and feature annotation. Other masks are applied at the layer level to render complex symbols for features such as stacked highways, intersections, bridges, and tunnels. Rounded or squared masked caps are rendered at the end of line features such as cul-de-sacs.

Batch Processing

The efficiency and quality of production cartography is supported by many workflow tools and Python scripting for automation. Automation tools include:

  • Model building with grouping and enhanced looping functionality
  • Support for Python scripts
  • Python Interactive window for executing geoprocessing functions

Map Books

Data driven pages allow you to create map books, or multiple maps using the extents of features in a layer to drive extents within the same map document layout. Geoprocessing tools are provided to help set up a map book:

  • Create a rectangular grid of polygons to define multiple map extents
  • Calculate the neighboring pages or a grid of rectangular polygons
  • Create polygons that follow a linear feature for use in creating strip maps
  • Calculate the UTM zone for a set of features
  • Calculate the Central Meridian and Standard Parallels for a set of features
  • Calculate the true north rotation angle for a feature given it’s maps coordinate system

Map Automation through Python scripting

You can access and interact with your map documents, layouts, symbols, and layers through simple Python scripting. This makes it possible to automate map layout, map management and printing and exporting workflows. There are a lot of things you can do with Python to automate redundant tasks, for example:

  • Update text elements in the layout of a group of maps
  • Modify a symbol across multiple map documents
  • Repair data sources for all of the layers in a map
  • Create a report containing information about the contents of a group of maps
  • Assemble a complete map book by combing a title page, maps, and pages of text and graphs into a single multi-page PDF file
  • Create a thematic atlas with multiple pages specifying a different theme on each page
  • Build a map book with facing left and right hand pages
  • Batch print and export
Contact Us | Privacy | Legal | Site Map