This is from a student and it really hits the mark!
Link to Canvas
Note: We will be trying to use Python 3.x this semester! To activate Python 3.x in the Wing IDE:
- Select "Properties" from the "Project" menu
- Check "Custom"
- "Browse" to the Python 3.x directory ("C:/Python3x) and select the "python.exe" file
- Click OK
Schedule
Below is an outline of the presentation of topics numbered by week:
- Introduction
- Introductions
- Introduction (PowerPoint)
- How to use the web site
- What is Python and why would I want to use it?
- Fun: Why we should be teaching kids to code
- Getting Started with Python and an Introduction to Arithmetic in Python
- Quote: "programming is like writing a book...except if you miss out a single comma on page 126 the whole thing makes no damn sense"
- Introduction to Programming in Python (in the Wingware IDE)
- Documenting Code
- Generating Random Numbers
- Arithmetic in Python
- If you struggle with programming, see: You can grow your intelligence!
- The Power of believing that you can improve
- How Computers Work and While Loops
- How Computers Work
- Text and Numeric Types
- While Loops
- Generating Random Numbers
- When you have a chance, check out this online Python Tutor!
- "For" Loops, and "If" statements
- Boolean Logic and "If" Statements
- Lists
- "For" Loops.
- Strings and writing them to files
- Strings are Made Up of Characters
- Formatting Strings
- Writing to Text Files
- Writing to CSV Files
- Writing to CSV Files using the Python CSV library (new and optional)
- Grid ASCII File Format
- Creating ASCII Grid Files
- Fun: Programming Language Comparison
- Reformatting Data in Text Files With Python
- Introduction to Functions
- Calling Functions to Get Pie
- Sample Locations File
- Reading Text Files
- Splitting Delimited Strings
- Converting Dates
- Converting Dates Using a Function
- Converting Files of Point Data
- Lab: Converting Files
- Review outside class:
- Additional Variable Types
- Source Assistant
- Converting Coordinates
- For Fun: Record number of UAVs
- Accessing data on the Internet
- How the Internet Works
- Accessing Data on the Internet
- Handling Exceptions
- The XML Standard
- Subsetting Strings
- Parsing XML Data
- Optional:
- The JSON Standard
- For fun and motivation: Die-hard Coders Just Rescued NASA's Earth Science Data
- Accessing ArcGIS from Python
- Note: Using ArcGIS Pro, we need to specify one of the Python installs that comes with ArcGIS Pro:
- Open Project Properties in Wing IDE
- Browse to "c:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe"
- An Overview of ArcGIS Functions
- Calling ArcGIS From Python
- Flavors of ArcGIS functions
- Adding Try/Except Blocks
- Finding the Format for arcpy Parameters
- Calling ArcGIS Pro From Python 3.x with Wing 6.0
- Assignment: Calling ArcGIS to Compute Watersheds (Extra Credit)
- Batch Processing With Python
- Batch Processing in Python
- More on ArcGIS functions
- Accessing Attributes
- Running Python From the Command Line
- Debugging With Log Files (optional)
- User Interfaces and Classes
- Graphical User Interfaces (GUIs)
- Getting Started with PyQt
- An Introduction to Classes
- Fun
- Other Packages
- Design
- Classes, Modules, and Functions
- Other Libraries/Packages
- NumPy & SciPy
- Introduction to Charting
- Shapefile Format
- Shapefile.py
- Getting File Paths from the user with Qt
- Getting File Paths from the User with tkinter
- The Expert, for fun
- New library: GeoViews
- Open Source GIS Packages
- OpenSource GIS Packages
- SpPy Package (in development)
- Structuring Folders
- Documenting Programs
- Optional: Java and BlueSpray
- Getting Anything to Work!
- Writing code that can be debugged and maintained
- Sub-Launching Other Programs
- The Ultimate ArcGIS Tools
- Simple Models
- New: Simple Painting with Qt
- Old with tKinter: The Blob Class
- Cool stuff: Bird Migrations
- Creating larger projects
- Software Life cycle
- Investigation
- Design
- Classes, Modules, and Functions
- Implementation
- Testing
- Release
- Maintenance
- Where to Go From Here
- What will the world look like in 2100?
- Discussion: Where to go from here
- Review Test (optional)
- Interactive Python on the Web?
- Final Projects Due by 5:00pm on Friday at the latest!
- Final Exam: Friday, May 17 8:00 - 9:50 AM, location TBD
Other Resources:
Machine Learning in Python
ArcPy and ArcGIS-geospatial Analysis with Python : Use the ArcPy Module to Automate the Analysis and Mapping of Geospatial Data in ArcGIS (in our library)
Python Programming Learning Resources
Official Python Website
Python Tutorial
Dive Into Python (e-book)
Link to Tracy Kugler's Examples for ArcGIS 9
PyOpenGL
tutorialspoint Python Programming
Ton's of programming cartoons
National Climate Data
Think Python
Beginner's Guide to SQL
Old Materials
Old tKinter GUI modules:
- The Python GUI
- Dialog Boxes in tkinter
Building ArcGIS tools with Python
- Creating Custom Tools in ArcGIS
- Debugging ArcGIS Tools
- A Note on Model Builder To Python (optional)