Python: Getting Started Ben Ramseth [email protected] @Esrimapninja E M E R a L D

Python: Getting Started Ben Ramseth Bramseth@Esri.Com @Esrimapninja E M E R a L D

Python: Getting Started Ben Ramseth [email protected] @esriMapNinja E M E R A L D SAPPHIRE THANK YOU TO OUR SPONSORS Topics covered • What’s is python? • Why use python? • Basics of python • ArcPy • Geoprocessing tools • Other python options What is Python? What is Python? • Python is an interpreted, object-oriented, high-level programming . • Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance. • Python supports modules and packages, which encourages program modularity and code reuse. • Scripting language of ArcGIS • Free, cross-platform, easy to learn, widely useful, great community Why use Python? Why use Python with ArcGIS • Automate repetitive tasks • Develop custom tools • Add geoprocessing to web applications • Customize Desktop apps • Extend the capabilities of ArcGIS Basics of Python Where do I write Python scripts? • Python file is text with .py extension • Python window in ArcGIS • Best to use IDE - Integrated Development Environment Python in an IDE GIS from the comfort of your development environment • Integrated Development Environments - Debuggers - Test Frameworks - Coverage - PyLint/pycodestyle - Version Control Integration - Refactoring Tools - Virtual Environment Support - AutoComplete Python in an IDE GIS from the comfort of your development environment • Recommended IDEs - PyCharm - Python Tools for Visual Studio - Spyder - Eclipse with PyDev - Wingware Python basics • Variable - A name that stores a value; assigned using = • Logic for testing conditions - If, else statement - Colon at the end of each condition - Indentation determines what is executed - == tests equality; other operators like >,<, != • Techniques for iterating or looping - While loops, for loops - Colon at end of statement - Indentation determines what is executed Python building blocks • Function: - A defined piece of functionality that performs a specific task; requires arguments • Module: - a Python file where functions live; import • Package: - A collection of related modules • Code example - Math.sqrt(100) … 10 • Python Standard Library / Built-ins - Os, sys, math, datetime, urllib2 Python Demo Basics ArcPy ArcPy • ArcGIS Python site package • Introduced in ArcGIS 10.0 - June 29, 2010 • Successor to arcgisscripting module • Create tools leveraging ArcGIS - In-Application Geoprocessing Tools and Scripting - Standalone Python Programs • 1,000+ ArcPy-based Tools Included in ArcGIS ArcGIS Desktop and ArcGIS Pro Python versions • ArcGIS Desktop uses • ArcGIS Pro uses Python Python 2.7 3.x ArcPy in ArcGIS Pro • ArcGIS 10.x to ArcGIS Pro - ArcObjects SDK will not move to Pro - Great time to be a Python GIS Developer! - ArcObjects high cost of maintenance and very tightly coupled to COM - Rewrite code in Python 3 in Pro - Platform agnostic vs. .NET code - Web Services - Vast library of Packages - Improved features in Pro - … it’s Python and not .NET Automating ArcGIS with Python Toolboxes, Python Toolboxes, Interpreters, Command Line, Services… • Multiple ways to create tools - ArcGIS Toolbox (.tbx) - Python Toolbox (.pyt) - Stand-alone Scripts (.py) - Interactive Python Window • Decouple logic code from Toolbox - Testing!! • Distutils to create packaged code Sharing Install into tools as needed Running geoprocessing tools with Python Run gp tools • Import arcpy • Follow tool syntax - Arcpy.toolname_toolboxalias() - Enter input and output parameters • How do I use a specific tool? - Tool help page - Copy as Python Snippet - Help(arcpy.Buffer_analysis) Geoprocessing environment settings • Use geoprocessing environments as global parameters - See tool help for honored environments • Productivity and code cleanup • Arcpy.env - Example: arcpy.env.workspace = “c:/code” Troubleshooting • Why do errors occur? - Incorrect tool use, typos, syntax, data already exists • My script doesn’t work…now what! - View geoprocessing messages - Use Python error handling - Debug the script in an IDE Geoprocessing messages • Three types of messages - Info, warning, Error • Displayed in the Python window • Errors displayed in the IDE • To see other messages - arcpy.GetMessages Python error handling • Try…Except - Try to do something, and if an error occurs, do something else - Like… - Print(arcpy.GetMessages()) ArcPy functions • Perform useful tasks - List data: - ListFeatureClasses - Get data properties: - Describe • Enables automation of manual tasks Batch processing • Automating a geoprocessing operation to run multiple times - Clip every feature class in a geodatabase to a boundary - Calculate statistics for every raster in a folder • May List functions in ArcPy to perform batch processing • Example: - arcpy.env.workspace = “c:/data” - fcList = arcpy.ListFeatureClasses() - for fc in fcList: - print(fc) Getting data properties • Describe function reads data properties • Returns an object with properties - Data type - Shape type - Spatial reference - Fields • Example: - desc = arcpy.Describe(“c:/data/roads.shp”) - print(desc.shapeType) Python script tools • Python script as custom geoprocessing tool • Great way to create and share workflows, extend ArcGIS - More accessible the stand-alone • Integrated with geoprocessing framework - Use it just like any other tool - Geoprocessing properties and environments - Works with map layers ArcGIS API for Python Script against a portal ArcGIS Python API vs ArcPy ArcGIS Python API ArcPy • Script against a portal • ArcGIS Desktop - ArcGIS Online or ArcGIS Enterprise - ArcMap – Python 2.7 - Python 3.5 - ArcGIS Pro – 3.5 • Analysis, Portal Admin, Content • Mostly geoprocessing Creation, Big Data Analysis • Some map automation Four different groups working with the ArcGIS Python API - Org Administrators - Content Publishers - GIS Analysts and Data Scientists - Power Users/Developers Overview of the ArcGIS Python API • A Pythonic GIS API • Corresponds to best practices • Uses standard Python constructs • Data structures with clean, readable idioms • Easy for a Python programmer to use ArcGIS • Easy for an ArcGIS user to script and automate their GIS The Future of Python in ArcGIS • Conda integration into ArcGIS - Advanced Python Package Management - Curated channels of scientific Python packages - Includes C and Fortran compiler - Create and host your own conda packages - Easily share your code with the GIS community - Built-In Virtual Environment Support - Manage multiple environments with access to ArcPy - Easily share environments - Trivializes dependency issues Questions? .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    36 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us