Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Map Automation – Beyond the Basics of arcpy.mapping

Similar presentations


Presentation on theme: "Python Map Automation – Beyond the Basics of arcpy.mapping"— Presentation transcript:

1 Python Map Automation – Beyond the Basics of arcpy.mapping
July 24, 2012 Python Map Automation – Beyond the Basics of arcpy.mapping Jeff Barrette Jeff Moulds

2 What is map scripting (arcpy.mapping)?
A python scripting API that allows you to: Manage map documents, layer files, and the content within them Automate the exporting and printing of map documents Automate map production and create PDF map books Extend Data Driven Pages A simple way to publish mapping tasks to the server environment

3 Basic rules Reference an MXD using a path or “current” keyword
When using CURRENT Always run in foreground May need to refresh (e.g., RefreshActiveView\TOC) Uniquely name all the objects you want to reference Pre-author MXDs with all possible elements Can’t create new objects (e.g., north arrow, data frames) Author the extra elements off the page No "New Map" function, so keep an empty MXD available This is not a replacement for ArcObjects – we are trying to draw a line in the sand Us You “The Line”

4 Sample Application Jeff Barrette

5 What’s new at 10.1 What’s new  Mapping  What’s new for automating map workflows (

6 What’s new in 10.1: cloning elements
You can now clone text and graphic elements This allows you to automate things like dynamic tables Example: vertl = arcpy.mapping.ListLayoutElements( mxd, “GRAPHIC_ELEMENT”, “VerticalLine”)[0] vertl.elementPositionX = xPos; vertl.elementPositionY = 4 vert1.elementHeight = 3 for line in range(1, numColumns+1): vert_clone = vertLine.clone("_clone") xPos = xPos + colWidth vert_clone.elementPositionX = xPos DEMO 1 DEMO 2

7 What’s new in 10.1: symbology classes
Layer.symbologyType r/o : string Returns: GRADUATED_COLORS, GRADUATED_SYMBOLS, UNIQUE_VALUES RASTER_CLASSIFIED, OTHER Layer.symbology r/o : Symbology Class Example: if lyr.symbologyType == “GRADUATED_COLORS”: lyr.symbology.numClasses = 10 lyr.symbology.valueField = “POP2007” General notes, can NOT change: Symbology class Individual symbols use arcpy.mapping.UpdateLayer Classification methods DEMO1 DEMO2

8 Deployment - arcpy.mapping and Python Add-Ins
ArcGIS 10.1 – Python Add-Ins Add-in deployment of mapping tools Mechanism for deploying ArcMap customizations Online help: Take mouse input, respond to app events FinishDrawing, DPP PageChange, etc. Python Add-in Wizard Download from: Related Session: Migrating your VBA applications to Desktop Add-ins

9 What’s new in 10.1: legend items
A referenced legend item in a .style file can then be used to update already existing legend items in a layout. Example: mxd = arcpy.mapping.MapDocument("current") legend = arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")[0] styleItem = arcpy.mapping.ListStyleItems( "USER_STYLE", "Legend Items", "MyNewStyle")[0] for lyr in legend.listLegendItemLayers(): legend.updateItem(lyr, styleItem) DEMO

10 Authoring geoprocessing tasks with Python scripts
Things to consider help topic: Before import arcpy path = r”C:\Project\maps” ... arcpy.mapping.ExportToPDF(mxd, path + "\\output.pdf") After path = arcpy.env.scratchWorkspace             ... arcpy.SetParameterAsText(1,path + "\\output.pdf") Related Session: Geoprocessing with ArcGIS for Server

11 New functions in 10.1 for server publishing and printing
ConvertWebMapToMapDocument Use with the ArcGIS web APIs for advanced web map printing workflows Web application High-quality output (e.g. PDF) arcpy.mapping CreateMapSDDraft Automate publishing map documents to map services Map document arcpy.mapping Map service

12 Server printing out-of-the-box
ArcGIS Server 10.1 and the ArcGIS web APIs support effortless web map printing via print services. Out-of-the-box print service and template maps ship with Server Print services sample: 1 2

13 High quality server printing with arcpy.mapping
Build customized versions of the new print services built into 10.1 server New arcpy.mapping method for converting Web Maps to MapDocuments: ConvertWebMapToMapDocument () ConvertWebMapToMapDocument (webmap_json, {template_mxd}, {notes_gdb}, {extra_conversion_options})

14 High quality server printing with arcpy.mapping
Convert the web map to a map document Full capabilities of arcpy.mapping on the document Modify content (e.g. replace service layers with high quality local vector data) Export using custom options Export data driven pages Export to PDF and insert additional pages Return the output file (PDF, PNG, etc.) or map book Online help and examples Related Session: Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for Server

15 Demo: High quality server printing with arcpy.mapping
Print high quality vector layers instead of tiled image cache of service layers Vector layers will be staged in template map documents Map service tiled cache Vector data

16 Demo: High quality server printing with arcpy.mapping
Reference the custom arcpy.mapping based GP service

17 Demo: High quality server printing with arcpy.mapping
Arcpy.mapping code used in custom geoprocessing service Get web map JSON Get template MXD Create new MXD based on web map Remove service layers Export PDF Output file of job

18 High quality server printing with arcpy.mapping
Use the web help updated samples and discussion two new tutorials: Basic high-quality web map printing: Advanced web map printing:

19 Publishing map services with arcpy.mapping
arcpy.mapping.CreateMapSDDraft Workflow from map document to map service Use python for: Publishing automated analysis results Scheduled service upgrades Batch migration from 10.0 to 10.1 Create SDDraft and edit XML (arcpy.mapping) arcpy.mapping.CreateMapSDDraft() Prepare MXDs arcpy.mapping.MapDocument() Stage and Publish Map Service (arcpy server GP tools) arcpy.StageService_server() arcpy.UploadServiceDefinition_server()

20 Publishing map services with arcpy.mapping
Sample: CreateMapSDDraft (arcpy.mapping) Reference a MXD Create and analyze SDDraft for errors Stage and publish Map Service Online help:

21 Publishing other service types with python
Two new functions coming at 10.1 sp1: arcpy.CreateGPSDDraft() Create geoprocessing services with Python arcpy.CreateGeocodeSDDraft() Create geocoding services with Python

22 Resources available ArcGIS Resource Center (web help)
Alphabetical lists of classes and functions Detailed discussions Multiple sample scripts for each class and function topic ArcGIS Resource Center (forums) Map Automation: Python: ArcGIS Online – arcpy.mapping / Map Automation group Download sample scripts

23 Related sessions Wednesday Thursday
8:30-9:45 – Geoprocessing with ArcGIS for Server (Room 4) 8:30-9:45 – Introduction to arcpy.mapping (Room 6D) 8:30-9:45 – Supporting High-Quality Printing in Web Applications for ArcGIS 10.1 for Server (Room 7A/B) 10:15-11:30 – Building Map Books (Room 6F) Thursday 8:30-9:45 – Geoprocessing with ArcGIS for Server (Room 9) 8:30-9:45 – Introduction to arcpy.mapping (Room 8) 10:15-11:30 Migrating your VBA Applications to Desktop Add-ins (Room 6A) 3:15-4:30 – Building Map Books (Room 8)

24 Thank you for attending
Have fun at UC2012 Open for Questions Please fill out the evaluation: First Offering ID: 624 Second Offering ID: 1796


Download ppt "Python Map Automation – Beyond the Basics of arcpy.mapping"

Similar presentations


Ads by Google