Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.

Slides:



Advertisements
Similar presentations
Foundations of Programming and Problem Solving Introduction.
Advertisements

Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Computers in Principle & Practice I - V Deena Engel Computers in Principle and Practice I V , Sections 1 & 2 Fall, 2009 Deena Engel .
Intro to ArcMap Customization with Visual Basic  Create your own toolbars, buttons, interactive tools, and programs  Runs behind the scenes in ArcMap.
26-Jun-15 Getting Ready for CIT Labs Lab is scheduled for 3;00-4:30 Fridays in Moore 207 Lab is not in Towne 309 (Registrar has it wrong) Everyone.
OBJECT ORIENTED PROGRAMMING I LECTURE 1 GEORGE KOUTSOGIANNAKIS
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
30-Jun-15 Getting Ready for CIT Labs Lab is scheduled for 1:30-3:00 Fridays in Moore 207 Lab is not in Towne 313 (Registrar has it wrong) Everyone.
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
Course: Introduction to Computers
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
Arc: Programming Options Dr Andy Evans. Programming ArcGIS ArcGIS: Most popular commercial GIS. Out of the box functionality good, but occasionally: You.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
1 Programming Concepts Module Code : CMV6107 Class Contact Hours: 45 hours (Lecture 15 hours) (Laboratory/Tutorial 30 hours) Module Value: 1 Textbook:
CS-0401 INTERMEDIATE PROGRAMMING USING JAVA Prof. Dr. Paulo Brasko Ferreira Fall 2014.
Enterprise ETL & the Home Again
Introduction CSE 1310 – Introduction to Computers and Programming
Introduction to InVEST ArcGIS Tool Nasser Olwero GMP, Bangkok April
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
1. 2 Class Class meets here 7:00 Tuesdays for between 1 and 1.5 hours A Lab immediately follows the class in 143 Baker A second lab is Friday 2-5 in 143.
Lecture 4 MATLAB Windows Arithmetic Operators Maintenance Functions
Jim Graham, Humboldt State University Geospatial Research Methods Instructor: Jim Graham
Python: An Introduction
Please take a seat Choose any seat except mine DON’T touch the computers! Don’t sit near someone who might get you in trouble!
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Programming for Geographical Information Analysis: Advanced Skills Lecture 1: Introduction Programming Arc Dr Andy Evans.
Programming Concept Chapter I Introduction to Java Programming.
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
1 3. Computing System Fundamentals 3.1 Language Translators.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
CIT 590 Intro to Programming First lecture on Java.
Automating Processes with ArcPy to do work so I don’t have to Joe Guzi GIS Systems Analyst Stark County GIS Department 2015 Ohio GIS Conference September.
Introduction to Software Software. Types of software Click on each type of software to find out what it does.
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
Computing System Fundamentals 3.1 Language Translators.
JavaScript Defined JavaScript Basics Definitions JavaScript is an object-oriented programming language designed for the world wide web. JavaScript code.
CSCE 1030 Computer Science 1 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
Jim Graham, Humboldt State University eographic nformation ystems Instructor: Jim Graham Introduction to Concepts.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Data Structures and Algorithms in Java AlaaEddin 2012.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Water and people in a changing world Yhd ; Spring
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Jim Graham, Humboldt State University Instructor: Jim Graham Advanced GIS.
Introduction to CSCI 1311 Dr. Mark C. Lewis
Programming vs. Packaged
Introduction to InVEST ArcGIS Tool
Geo 318 – Introduction to GIS Programming
CSC207 Fall 2016.
CSE 374 Programming Concepts & Tools
PYTHON: AN INTRODUCTION
Computer Science 102 Data Structures CSCI-UA
PHP / MySQL Introduction
Geo 118/318 – Introduction to GIS Programming
Week 1 Gates Introduction to Information Technology cosc 010 Week 1 Gates
CS190/295 Programming in Python for Life Sciences: Lecture 1
Programming vs. Packaged
Course Overview - Database Systems
Geo 318 – Introduction to GIS Programming
Accelerated Introduction to Computer Science
CS 2530 Intermediate Computing Dr. Schafer
Software Lesson 3.
CS Problem Solving and Object Oriented Programming Spring 2019
Presentation transcript:

Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham

Class Goals Focus: Programming in GIS – How computers work – How to program & debug code – How to tackle GIS programming tasks With Python – By itself – With ArcGIS – With other packages Software development – Documentation – Management/Phases – Making users “happy”

About This Class Moving from Toolbox to Python Programming in Python Putting Python and ArcGIS Together Other libraries GIS Software development Special topics: – What would you like to see here?

We are not learning… Everything about Python – It’s a huge language that is growing all the time! – You only need a fraction of what is out there – The challenge is to find that fraction and get good at it! Everything about programming ArcGIS – You will learn how to find anything available in programming ArcGIS Everything about programming GIS – More on this later…

We are learning… Everything you need to figure out how to solve any programming problem in GIS that can be solved! – Programming – Debugging – Finding answers – Getting help – Intro to the larger world of software development

Resources for Help ArcGIS help – best for Arc libraries The web – search for answers ListServs – including Moodle blogs Other students – make friends in this class Me and the TA Others? – Anyone you can find who might have dealt with the same problem!

Other Stuff… The website: – See Moodle – Will be updated before class – Please send corrections and suggestions! Office hours: – When is best?

Last Semester 20% did not pass! If you fall behind in this class you will not pass! – Each week we learn concepts that are used the next week – We move together as a whole group Attendance is mandatory If you miss a class, make sure you catch up and getting assignments in Assignments must be in on time If you fall behind you’ll be working on the wrong assignment

Keep Up with the Pack! This class moves! – If you miss 1 class, you’ll miss 10% of the material – This is a skills class, not everything you need to know is online – you’ll need to attend classes Turn in labs each week – Better to turn in partial work than completed work late Get help when you need it! – If you get stuck for 20 minutes, get help!

Final Projects GIS Programming Problem Must include some code you have written Must apply to a GIS application Class is 15 weeks – don’t build a biomass model for the earth! Start getting the data now!

Examples Harvest tree ring data to create a map in GoogleEarth with growth charts Program to compute likely camping sites in wilderness areas Program to mosaic LandSat scenes for anywhere in US

About Me Programming for over 30 years! Developer, Manager, CEO, Research Scientist, Professor Operating systems: CPM, Apple, DOS, Mac, Windows, and others Languages: Machine code, assembly, Pascal, Fortran, C/C++, VBA, Visual Basic, Forth… Most recently: PHP, JavaScript, Java, SQL, Python

Me and ArcGIS Worked on ArcGIS 8 beta – Helped improve performance of raster transforms 10x – Visual Basic Lots of VBA, some C/C++, now Python And I teach classes on using ArcGIS and applying it to natural resource problems

About You! Name Department & Degree Programming Experience GIS Experience What you want to get out of the class Other comments, questions, concerns?

Why Program? Automate tasks – Repeated over and over again Speed up tasks – Computers can run 24/7 Allows for “exact” replication of processes – Except that the libraries you call will change! “Encapsulate” functionality and expertise – You and everyone else can use it

Ready to become a NERD? Learn a bunch of new terms (mostly TLAs) Think like a computer Amaze (and confuse) your friends! Get a whole new wardrobe!

Definitions Code – Instructions for a computer Programming/Coding – writing, documenting, and testing code Program – A file with instructions for a computer to execute to complete a task Application – A program with a graphic user interface (as opposed to a command line interface) Library – A file with code for a computer to be used by other programs

GIS Library/Package A library with code to complete GIS tasks – Spatially referenced data – Tasks specific to GIS Union, intersect, mosaic, project, and lots more! Options – ArcGIS – arcpy, etc. – GeoTools – Open source – GDAL, ORG, Proj – Open source – BlueSpray – SchoonerTurtles

Big Picture ArcGIS Libraries Model BuilderPython Scripts Wing IDEArcGIS Desktop Data Other Libraries Other Programs Data includes GIS (spatially referenced) and non-spatially reference

Why Python? ESRI’s primary scripting language (for now) Very popular in GIS (Arc and OpenSource) Very flexible (can solve lots of problems) Well supported (with Wing IDE) Easy to learn (relative to complied languages) Portable But it is not the fastest language – Compiled (C/C++, Java, C#) are faster

“Results” in ArcGIS 10 New window in ArcGIS 10 Records each time you use a tool Right click to “Copy to Python…” Paste into another window to see how to use the tool Warning: The function calls do not always match exactly! (more on this later)

First Assignment Do at least two operations with tools that you would normally do Copy the Python code into Wingware Make sure it works! – Use data in files, not loaded into ArcGIS Document what the Python code is doing in your own words (comments)