Python Map Automation – Beyond the Basics of arcpy.mapping

Slides:



Advertisements
Similar presentations
Esri UC 2014 | Technical Workshop | Automating Cache Workflows and Tile Usage Heat Maps Eric J. Rodenberg.
Advertisements

Technical Workshops | Esri International User Conference San Diego, California Leveraging Metadata Standards in ArcGIS for Interoperability Aleta Vienneau.
Sharing imagery and raster data in ArcGIS
Sharing Geographic Content
ArcGIS Workflow Manager An Introduction
Technical Workshops | Esri International User Conference San Diego, California ArcMap: Tips and Tricks Miriam Schmidts Jorge Ruiz-Valdepena July 23 – 27,
A Sample Print Web Service Utilizing ArcGIS Server and ArcObjects Cheryl Spencer, IndyGIS Marianne Cardwell, Woolpert.
1/36. 2/36 Something cool …
Class Instructor Name Date. Classroom Tips Class Roster – Please Sign In Class Roster – Please Sign In Internet Usage Internet Usage –Breaks and Lunch.
Network Analysis with Python
Python: An Introduction
Python Map Automation: Introduction to arcpy.mapping / arcpy.mp
Publishing to ArcGIS for Server
Enabling High-Quality Printing in Web Applications
Working with Metadata in ArcGIS Aleta Vienneau. Working with metadata in ArcGIS View metadata Edit metadata Set your metadata style Leverage metadata.
ArcGIS Pro: Mapping and Visualization Craig Williams, Edie Punt, &
Advance Map Automation With Python
Esri Defense Mapping: Cartographic Production
Preparing and Deploying Data to ArcPad Juan Luera.
MXD, Maps, Layers arcpy.mapping Classes.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Esri UC 2014 | Technical Workshop | Python Map Automation – Beyond the Basics of arcpy.mapping Jeff Barrette Jeff Moulds.
Technical Workshops | Esri International User Conference San Diego, California Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for.
Esri UC 2014 | Technical Workshop | Designing and Using Cached Map Services Tom Brenneman & Eric Rodenberg.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Supporting High-Quality.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Building Map Books.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Automating Geodatabase.
Getting the most out of ArcMap Jack Horton & Jorge Ruiz-Valdepeña.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
Map Books & Dynamic Tables
Desktop Mapping: Building Map Books Jeff Barrette Michael Grossman.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Python Map Automation.
Publishing GIS Services to ArcGIS Server
Esri UC 2014 | Technical Workshop | Python Map Automation – Introduction to arcpy.mapping Michael Grossman Jeff Barrette.
Esri UC 2014 | Technical Workshop | ArcGIS API for JavaScript: An Introduction Kelly Hutchins Derek Swingley.
ArcGIS Workflow Manager: Integrating Geoprocessing into Your Business Processes Nishi Mishra.
Esri UC 2014 | Technical Workshop | Administering ArcGIS for Server with Python Jon Bodamer.
Sharing Maps and Layers to Portal for ArcGIS Melanie Summers, Tom Shippee, Ty Fitzpatrick.
Jeff Barrette Jeff Moulds
ArcGIS Pro Mapping and Visualization
ArcGIS Workflow Manager: Advanced Workflows and Concepts
Desktop Mapping: Building Map Books
Working with Feature Layers
PYTHON: AN INTRODUCTION
ArcGIS for Server: What’s New
Shankar Chandrasekaran
Creating Geoprocessing Services
Geoprocessing with ArcGIS for Server
Python Map Automation – Introduction to arcpy.mapping
Python Map Automation – Beyond the Basics of arcpy.mapping
Learning Common GIS Workflows
Learning Common GIS Workflows
Building Map Books in ArcGIS
Web AppBuilder for ArcGIS
Best Practices for Designing Effective Map Services: Case Studies
ArcGIS Pro: What’s New in Editing and Data Management
ModelBuilder – Getting Started
PYTHON: BUILDING GEOPROCESSING TOOLS
Building Map Books in ArcGIS
GIS Lecture: Sharing GIS
Editing Parcels with the Local Government Information Model
Network Analyst – Automating Workflows with Geoprocessing
ArcGIS API for Silverlight – An Introduction
Publishing image services in ArcGIS
Desktop Mapping: Building Map Books
ArcGIS Pro: An Introduction Overview
Esri Production Mapping: An Introduction
Presentation transcript:

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

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

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”

Sample Application Jeff Barrette

What’s new at 10.1 What’s new  Mapping  What’s new for automating map workflows (http://esriurl.com/4634)

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

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

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: http://esriurl.com/4638 Take mouse input, respond to app events FinishDrawing, DPP PageChange, etc. Python Add-in Wizard Download from: http://esriurl.com/4635 Related Session: Migrating your VBA applications to Desktop Add-ins

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

Authoring geoprocessing tasks with Python scripts Things to consider help topic: http://esriurl.com/4656 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

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

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: http://esriurl.com/4651 1 2

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})

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 http://esriurl.com/4600 Related Session: Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for Server

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

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

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

High quality server printing with arcpy.mapping Use the web help updated samples and discussion two new tutorials: Basic high-quality web map printing: http://esriurl.com/4601 Advanced web map printing: http://esriurl.com/4602

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()

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: http://esriurl.com/4598

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

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

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)

Thank you for attending Have fun at UC2012 Open for Questions Please fill out the evaluation: www.esri.com/ucsessionsurveys First Offering ID: 624 Second Offering ID: 1796