1/36
2/36 Something cool …
3/36 Google Maps API Live earthquake mapping Other cool Google Maps API examplesOther cool Google Maps API examples:
4/36 More Google … Search full text of books e.g. Calculator Search tips Search tips & Hidden featuresHidden features Also look for Google Code, Drive & Translate Google Code, Drive & Translate
5/36 Google Earth ( )
6/36 arcpy.mapping module
7/36 What can you do with arcpy.mapping? Manage Map Documents (mxd) Manage DataFrames and Layers Change extents Add, remove, insert, move, and update layers Fix broken data sources etc. Manage some layer properties (definitionQuery, showLabels, etc.) Page Layout elements Position, size, text, … Print & Export map Map automation, map book creation (pdf tools) Publish to ArcGIS server (not covered in this course) Check for warnings and errors Convert MXD to MSD
8/36 Arcpy.mapping Classes & Functions
9/36 MapDocument – Class / Function …
10/36 MapDocument Properties & Methods Properties activeView (rw) author (rw) credits (rw) dataDrivenPages (ro) dateExported (ro) datePrinted (ro) dateSaved (ro) description (rw) filePath (ro) hyperlinkBase (rw) relativePaths (ro) summary (rw) tags (rw) title (rw) Methods deleteThumbnail() findAndReplaceWorkspacePaths( find_workspace_path, replace_workspace_path, {validate}) makeThumbnail () replaceWorkspaces( old_workspace_path, old_workspace_type, new_workspace_path, new_workspace_type, {validate}) save () saveACopy( file_name, {version}) (ro) = read-only (rw) = read-write
11/36 MapDocument.ActiveView
12/36 Find DataFrames in MapDocument
13/36 DataFrame Properties & Methods Properties credits (rw) description (rw) displayUnits (rw) elementHeight (rw) elementPositionX (rw) elementPositionY (rw) elementWidth (rw) extent (rw) geographicTransformations (rw) mapUnits (ro) name (rw) referenceScale (rw) rotation (rw) scale (rw) spatialReference (rw) time (ro) type (ro) Methods panToExtent(extent) zoomToSelectedFeatures()
14/36 Layer Class / Function Layer Class Layer Function
15/36 Layer Properties & Methods Properties brightness (rw) contrast (rw) credits (rw) datasetName (rw) dataSource (rw) definitionQuery (rw) description (rw) isFeatureLayer (ro) isGroupLayer (ro) isRasterizingLayer (ro) isRasterLayer (ro) labelClasses (rw) longName (ro) name (rw) serviceProperties (ro) showLabels (rw) transparency (rw) visible (rw) workspacePath (ro) Methods findAndReplaceWorkspacePath( find_workspace_path, replace_workspace_path, {validate}) getExtent( {symbolized_extent}) getSelectedExtent( {symbolized_extent}) replaceDataSource( workspace_path, workspace_type, dataset_name, {validate}) save () saveACopy( file_name, {version}) supports( layer_property) Selected properties Layer =.lyr file Layer in DataFrame
16/36 Find Layers in a DataFrame i.e. All layers in all DataFrame’s
17/36 Finding a specific layer in a DataFrame
18/36 Working with Layers arcpy.mapping can’t Create new map layers in DataFrame or.lyr files from scratch Change all layer properties in a script arcpy.mapping can Add lyr file to DataFrame & change selected layer properties dataSource, definitionQuery, etc. (see “(rw)” on previous slide) Apply symbology from existing lyr files to existing layers in DataFrame
19/36 Adding a Layer to a DataFrame
20/36 Managing Layers in a DataFrame FunctionDescription AddLayer Add a layer to a data frame within a map document (.mxd) using simple placement options. AddLayerToGroup Add a layer to a group layer within a map document (.mxd) using simple placement options. InsertLayer Insert a layer at a specific location within a data frame or within a group layer in a map document (.mxd). MoveLayer Move a layer to a specific location within a data frame or group layer in a map document (.mxd). RemoveLayer Remove a single layer or group layer from a specific data frame. If there is more than one layer that meets the criteria, then only the first layer will be removed unless the script iterates through each layer in a returned list. UpdateLayer Update all layer properties or just the symbology for a layer in a map document (.mxd) by extracting the information from a source layer.
21/36 Fixing broken data sources
22/36 Methods for fixing broken data sources MapDocument.findAndReplaceWorkspacePathsMapDocument.findAndReplaceWorkspacePaths(find_workspace_path, replace_workspace_path, {validate}) MapDocument.replaceWorkspacesMapDocument.replaceWorkspaces(old_workspace_path, old_workspace_type, new_workspace_path, new_workspace_type, {validate}) Layer.findAndReplaceWorkspacePathLayer.findAndReplaceWorkspacePath(find_workspace_path, replace_workspace_path, {validate}) Layer.replaceDataSourceLayer.replaceDataSource(workspace_path, workspace_type, dataset_name, {validate}) TableView.findAndReplaceWorkspacePathTableView.findAndReplaceWorkspacePath(find_workspace_path, replace_workspace_path, {validate}) TableView.replaceDataSourceTableView.replaceDataSource(workspace_path, workspace_type, dataset_name, {validate})
23/36 Fixing broken data source examples Update all workspace paths for all the mxd’s in a folder from local system to UNC paths Update all workspace paths to new folder and save to new mxd.
24/36 Page Layout elements
25/36 Getting Page Layout Elements
26/36 MapSurround Element
27/36 Text Element
28/36 RefreshActiveView() and RefreshTOC() After changing the content of a DataFrame or Page Layout … arcpy.RefreshActiveView()RefreshActiveView After changing items in the Table of Contents (add, remove, move, update layers) … arcpy.RefreshTOC()RefreshTOC
29/36 Exporting maps to images (jpg)
30/36 Exporting maps to PDF
31/36 PDFDocument’s
32/36 Creating/Opening PDF Documents
33/36 PDFDocument.appendPages Example
34/36 Working with arcpy.mapping scripts Edit in PyScripter and use Load …
35/36 Help is not perfect Should be: Find the MAPSURROUND_ELEMENT with the name "ScaleBar" and move it's x position (relative to its anchor point) to the center of the parentDataFrame. Save this change to the MXD. Update: ESRI listened to me:
36/36