{"id":172261,"date":"2010-10-07T17:33:57","date_gmt":"2010-10-08T00:33:57","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=172261"},"modified":"2020-10-26T12:24:25","modified_gmt":"2020-10-26T19:24:25","slug":"getting-started-with-python-map-automation","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation","title":{"rendered":"Getting started with Python map automation"},"author":3601,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37501,23341],"tags":[25311,31181,24321,24341],"industry":[],"product":[36991],"class_list":["post-172261","blog","type-blog","status-publish","format-standard","hentry","category-administration","category-analytics","tag-arcgis-10","tag-arcpy","tag-geoprocessing","tag-python","product-arcgis-desktop"],"acf":{"short_description":"ArcGIS 10 provides a new Python mapping module (arcpy.mapping) that\r\nallows you to interact with the contents of map documents","flexible_content":[{"acf_fc_layout":"content","content":"<p>ArcGIS 10 provides a new Python mapping module (arcpy.mapping) that<br \/>\nallows you to interact with the contents of map documents and layer<br \/>\nfiles without necessarily needing to interactively open an ArcMap<br \/>\nsession.\u00a0 The methods, properties and functions available in this new<br \/>\nmap scripting API enable you, for example, to automate changing data<br \/>\nsources, modify layer properties, export and print maps, as well as<br \/>\nautomate the creation of thematic maps and map series.\u00a0 Because the new<br \/>\nmapping module is part of the ArcPy geoprocessing framework, scripts can<br \/>\nbe used within ArcGIS Desktop but also published to ArcGIS Server as<br \/>\ngeoprocessing services making it much easier to make <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/mapping\">mapping<\/a> and<br \/>\nprinting capabilities available on the server.<\/p>\n<p>The following links are resources that will help you learn more about<br \/>\narcpy.mapping as well as sample scripts available for download:<\/p>\n<ul>\n<li>\u00a0A \u201c<a href=\"http:\/\/resources.arcgis.com\/gallery\/video\/geoprocessing\/details?entryID=B449043B-1422-2418-7F7A-E7EA74EF068E\">Python Scripting for Map Automation in ArcGIS 10<\/a>\u201d<br \/>\nvideo presented at the 2010 Developer\u2019s Summit is an excellent starting<br \/>\npoint.\u00a0 This presentation not only introduces arcpy.mapping but also<br \/>\ndemonstrates many of its use cases.<\/li>\n<li>ArcGIS Desktop\u00a0<a href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/Geoprocessing_scripts_for_map_document_management_and_output\/00s300000032000000\/\">help\u00a0<\/a>has a complete section dedicated to the\u00a0<a href=\"http:\/\/help.arcgis.com\/en\/arcgisdesktop\/10.0\/help\/index.html#\/Geoprocessing_scripts_for_map_document_management_and_output\/00s300000032000000\/\">ArcPy mapping module<\/a>.\u00a0 Embedded within the help are over 100 different, practical help samples that can be copied\/pasted into your applications.<\/li>\n<li>Approximately<a href=\"http:\/\/resources.arcgis.com\/gallery\/file\/geoprocessing\/details?entryID=A910AB18-1422-2418-3418-3885D388EF60\">\u00a020 script tools<\/a>\u00a0that perform routine map and layer management tasks, printing and exporting, as well as basic cartographic operations<\/li>\n<li>A\u00a0<a href=\"http:\/\/resources.arcgis.com\/gallery\/file\/geoprocessing\/details?entryID=FBE3D235-1422-2418-8820-E071ED243854\">script tool<\/a><br \/>\nthat combines Data Driven Pages, arcpy.mapping, and the ReportLab site<br \/>\npackage to generate a map series that includes index pages<\/li>\n<li>A\u00a0<a href=\"http:\/\/resources.arcgis.com\/gallery\/file\/geoprocessing\/details?entryID=FFBB051B-1422-2418-88A0-9DD853478BA3\">script that automatically reposition<\/a>s a locator map on a page layout avoiding overlap with underlying features.<\/li>\n<li>A\u00a0<a href=\"http:\/\/resources.arcgis.com\/gallery\/file\/geoprocessing\/details?entryID=3B67F638-1422-2418-A00C-D271D1E954CB\">script that calculates adjacent page numbers<\/a>\u00a0to be used for a map series.<\/li>\n<\/ul>\n"}],"authors":[{"ID":3601,"user_firstname":"Rob","user_lastname":"Elkins","nickname":"Rob Elkins","user_nicename":"rpe2","display_name":"Rob Elkins","user_email":"relkins@esri.com","user_url":"","user_registered":"2018-03-02 00:15:15","user_description":"Rob is Managing Director of Product Management at Esri, helping guide the strategy and evolution of ArcGIS. He works with product development, and customer communities to bring innovative GIS capabilities to organizations around the world.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/08\/rElkins-headshot-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting started with Python map automation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Python map automation\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-26T19:24:25+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\"},\"author\":{\"name\":\"Rob Elkins\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3334a2f9ab0a4c95d2e01e7e7f44c5d5\"},\"headline\":\"Getting started with Python map automation\",\"datePublished\":\"2010-10-08T00:33:57+00:00\",\"dateModified\":\"2020-10-26T19:24:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\"},\"wordCount\":6,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS 10\",\"ArcPy\",\"geoprocessing\",\"python\"],\"articleSection\":[\"Administration\",\"Analytics\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\",\"name\":\"Getting started with Python map automation\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2010-10-08T00:33:57+00:00\",\"dateModified\":\"2020-10-26T19:24:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with Python map automation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3334a2f9ab0a4c95d2e01e7e7f44c5d5\",\"name\":\"Rob Elkins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/08\/rElkins-headshot-213x200.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/08\/rElkins-headshot-213x200.jpg\",\"caption\":\"Rob Elkins\"},\"description\":\"Rob is Managing Director of Product Management at Esri, helping guide the strategy and evolution of ArcGIS. He works with product development, and customer communities to bring innovative GIS capabilities to organizations around the world.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/rpe2\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting started with Python map automation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation","og_locale":"en_US","og_type":"article","og_title":"Getting started with Python map automation","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2020-10-26T19:24:25+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation"},"author":{"name":"Rob Elkins","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3334a2f9ab0a4c95d2e01e7e7f44c5d5"},"headline":"Getting started with Python map automation","datePublished":"2010-10-08T00:33:57+00:00","dateModified":"2020-10-26T19:24:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation"},"wordCount":6,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS 10","ArcPy","geoprocessing","python"],"articleSection":["Administration","Analytics"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation","name":"Getting started with Python map automation","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2010-10-08T00:33:57+00:00","dateModified":"2020-10-26T19:24:25+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-desktop\/analytics\/getting-started-with-python-map-automation#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with Python map automation"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/3334a2f9ab0a4c95d2e01e7e7f44c5d5","name":"Rob Elkins","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/08\/rElkins-headshot-213x200.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/08\/rElkins-headshot-213x200.jpg","caption":"Rob Elkins"},"description":"Rob is Managing Director of Product Management at Esri, helping guide the strategy and evolution of ArcGIS. He works with product development, and customer communities to bring innovative GIS capabilities to organizations around the world.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/rpe2"}]}},"text_date":"October 7, 2010","author_name":"Rob Elkins","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/rpe2","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcMap","tag_data":[{"term_id":25311,"name":"ArcGIS 10","slug":"arcgis-10","term_group":0,"term_taxonomy_id":25311,"taxonomy":"post_tag","description":"","parent":0,"count":48,"filter":"raw"},{"term_id":31181,"name":"ArcPy","slug":"arcpy","term_group":0,"term_taxonomy_id":31181,"taxonomy":"post_tag","description":"","parent":0,"count":32,"filter":"raw"},{"term_id":24321,"name":"geoprocessing","slug":"geoprocessing","term_group":0,"term_taxonomy_id":24321,"taxonomy":"post_tag","description":"","parent":0,"count":134,"filter":"raw"},{"term_id":24341,"name":"python","slug":"python","term_group":0,"term_taxonomy_id":24341,"taxonomy":"post_tag","description":"","parent":0,"count":173,"filter":"raw"}],"category_data":[{"term_id":37501,"name":"Administration","slug":"administration","term_group":0,"term_taxonomy_id":37501,"taxonomy":"category","description":"","parent":0,"count":442,"filter":"raw"},{"term_id":23341,"name":"Analytics","slug":"analytics","term_group":0,"term_taxonomy_id":23341,"taxonomy":"category","description":"","parent":0,"count":1367,"filter":"raw"}],"product_data":[{"term_id":36991,"name":"ArcMap","slug":"arcgis-desktop","term_group":0,"term_taxonomy_id":36991,"taxonomy":"product","description":"","parent":36981,"count":325,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=arcgis-desktop","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/172261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/3601"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=172261"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/172261\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=172261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=172261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=172261"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=172261"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=172261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}