Geography 465 GIS Database Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Geography 465 GIS Database Programming

Description:

Geography 465 GIS Database Programming Getting Started with GIS Database Programming – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 25
Provided by: pio90
Category:

less

Transcript and Presenter's Notes

Title: Geography 465 GIS Database Programming


1
Geography 465 GIS Database Programming
  • Getting Started with GIS Database Programming

2
  • See Geog 465 course web site for
  • Overview and Schedule

3
What is GIS Database Programming?
  • Geoprocessing - application of GIS operations on
    a set of data inputs for generating information.
  • Database (DB) programming the part of
    geoprocessing focusing on DB manipulation not
    quite spatial analysis but almost.
  • Use scripting to automate DB programming

4
Why write scripts?
  • Scripts supply the added benefit of decision
    making logic and looping functionality
  • Automate a work flow, for example
  • Copy all incoming data into a geodatabase
  • Perform a project, clip, buffer operation on
    multiple data sets (iterate)
  • Easily distribute code
  • A script is a self-contained, single file

5
Why use Python for Scripting?
  • An open-source, object-oriented, scripting
    language
  • Offers IDE (integrated development environment)
    with debugging tools
  • Modular, can be broken apart
  • Ability to compile scripts
  • Installed with ArcGIS 9 and ESRI samples provided

6
Writing code in Python
  • Writing Python code
  • Python command line
  • IDE (integrated development environment) e.g.,
    PythonWin and Komodo
  • Michalis will use Komodo Edit (open source editor
    - free)
  • http//www.activestate.com/Products/komodo_ide/kom
    odo_edit.mhtml
  • IDE allows you to perform all jobs from one
    location
  • Write, Save, Run, and Debug code

7
PythonWin Interface
  • Script window
  • Write and save code
  • Interactive window
  • Test lines of code
  • Report messages
  • Menus and Toolbars
  • standard and debugging

8
Basics of Python
  • Comment A non-executable line of code
  • One number sign () for green and italicized
  • Two number signs () for gray
  • Name Michalis Avraam
  • Date January 5, 2009
  • Purpose To buffer a feature class
  • import win32com.client
  • gp win32com.client.Dispatch(esriGeoprocessing.G
    pDispatch.1)
  • gp.Workspace C\\Python_Data\\SanDiego.mdb
  • Gp.Buffer_analysis (Freeways, BuffFreeway,
    1000)
  • Can comment and uncomment blocks of code

9
Creating Scripts in Python
  • Use of ArcGIS help system to find
  • Usage, command syntax, and scripting examples of
    standard ArcToolbox tools,
  • Usage and syntax of Geoprocessor properties and
    methods, which are only accessible through
    scripting

10
Running Python Scripts Three Modes
  • 1) Running scripts in IDE, e.g. PythonWin
  • 2) Running scripts as script tools in ArcGIS
  • 3) Running scripts as embedded model components
    in ArcGIS

11
(non) Running Scripts in Python
  • Problem with the schema lock
  • Cannot manipulate with the same file open in
    ArcGIS and in IDE at the same time

12
Running scripts in PythonWin
  • Example of a simple script to buffer a feature
    class
  • Name Tim Nyerges
  • Date January 5, 2009
  • Purpose To buffer a feature class
  • import win32com.client
  • gp win32com.client.Dispatch("esriGeoprocessing.G
    pDispatch.1
  • gp.Workspace "C\\Python_Data\\SanDiego.mdb
  • gp.Buffer_analysis ("Freeways",
    "BufferedFreeways", 1000)

13
Debugging the Code
  • Test code in Python Win (or other IDE)
  • A check for syntax errors
  • Do not test a script from ArcToolbox
  • Test code in PythonWin, then add it to ArcToolbox

14
Running scripts in PythonWin
  • Run the script from the script window of
    PythonWin
  • Check the message in the lower left corner of the
    interactive window in PythonWin
  • While the script is running you will see the
    message
  • running script lt.gt.py
  • The indication of the successful run is the
    message
  • Script lt.gt returned the exit code 0
  • Display the result in ArcCatalog

15
Running scripts in PythonWin
  • Example of a simple script to clip a feature
    class
  • Name Tim Nyerges
  • Date January 3, 2007
  • Purpose To clip a feature class
  • import win32com.client
  • gp win32com.client.Dispatch("esriGeoprocessing.Gp
    Dispatch.1")
  • gp.Workspace "C\\Python_Data\\SanDiego.mdb"
  • gp.Clip_analysis ("MajorAttractions",
    "SDdowntown", "SDdowntownAttractions")

16
Running scripts in PythonWin
  • Example of a simple script to buffer and clip
    a feature class
  • Name Tim Nyerges
  • Date January 5, 2009
  • Purpose To buffer SD freeways first and then
    to clip the downtown section
  • of freeways
  • import win32com.client
  • gp win32com.client.Dispatch("esriGeoprocessing.G
    pDispatch.1")
  • gp.Workspace "C\\Python_Data\\SanDiego.mdb"
  • if gp.Exists(gp.Workspace "\\bufferedFreeways")
  • gp.Delete_management(gp.Workspace
    "\\bufferedFreeways")
  • gp.Buffer_analysis ("Freeways",
    "bufferedFreeways", "500")
  • gp.Clip_analysis ("bufferedFreeways",
    "SDdowntown", "downtownFreeways")

17
Michalis will get you started in labb session
hands-on Python and Komodo edit
18
Variables in Python
  • Variables are dynamically typed
  • No declaration required
  • No type assignment required
  • fc C\\ProjectData\\SanDiego.mdb\\Freeways.shp
  • Variables are case sensitive
  • fc Freeways.shp
  • Fc 20000
  • Variables can hold different data types
  • numbers, strings, lists, files

Two different variables
19
Numbers
  • Variables can hold numbers and expressions
  • num1 1.2
  • num2 3 5

20
Strings
  • Variables can hold strings
  • folder c/Student
  • Strings are surrounded in double () or single
    () quotes
  • Pathnames use two back (\\) or one forward (/)
    slash
  • One backslash (\) is a reserved escape character
    and a line continuation character

21
Strings
  • Strings can be combined together
  • gdbPath c\\SanDiego.mdb
  • fc Roads
  • fullPath gdbPath \\ fc
  • Strings are indexed
  • strings are zero-based from the left and
    one-based from the right
  • fc Streets.shp
  • fc0 ---gt S S is in the 0 position
  • fc13 ---gt tr start at 1st, up to not
    including 3rd
  • fc-4 ---gt Streets get rid of the last 4
    charaters

C\SanDiego.mdb\Roads
22
Lists
  • Variables can hold lists
  • numList 1, 2, 3
  • fcList Roads, Streets, Parcels,
    Zipcodes
  • Lists are indexed
  • fc1 fcList1
  • fc2 fcList02 ---gt Roads, Streets
  • fc3 fcList0-1 ---gt Roads, Streets,
    Parcels
  • fc4 fcList2 ---gt Parcels,
    Zipcodes

---gt Streets
23
Variable naming conventions
  • Upper case versus lower case
  • First word lower case, capitalize each successive
    word
  • tableFieldName Street
  • - Acronym at the beginning, use lower case
    letters
  • gdbPath C\\SanDiego.mdb
  • Acronym in the middle or at the end, use upper
    case letters
  • inputFC Streets.shp
  • Avoid special characters (for example / \
    !)
  • Use descriptive variable names

24
Line continuation
  • Line continuation characters
  • Parentheses ( ), brackets , and braces
  • Backslash \
  • Indentation is automatic
  • fcList Roads, Climate, Streams,
  • Zipcodes, Coastlines
  • distanceValues 100, 200, 300, 400, 500, \
  • 1000, 1500
  • gp.Buffer_analysis(fcList2, BuffStreams1000,
    distanceValues5)
Write a Comment
User Comments (0)
About PowerShow.com