lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13...

26
1 ENGRG 59910 Introduction to GIS Michael Piasecki May 1, 2014 Lecture 13: GIS Modeling and Programming Spatial Modeling and Programming The slides about GIS modeling in this lecture are prepared by Dr. Michael W. Binford, U of Florida 5/1/2014 ENGRG 59910 Intro to GIS 2

Transcript of lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13...

Page 1: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

1

ENGRG 59910Introduction to 

GISMichael Piasecki

May 1, 2014

Lecture 13: GIS Modeling and Programming

Spatial Modeling and Programming

The slides about GIS modeling in this lecture are prepared by Dr. Michael W. Binford, U of Florida

5/1/2014 ENGRG 59910 Intro to GIS 2

Page 2: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

2

•Cartographic Model (static)

• Spatial‐temporal Model (dynamic)• Cell‐based model (cellular automata, CA)• Agent‐based model

Spatial Modeling

5/1/2014 ENGRG 59910 Intro to GIS 3

“Designing the best cartographic model to solve a problem – the selection of the appropriate spatial tools and the specification of their sequence – is perhaps the most important and often the most difficult process in cartographic modeling.”

5/1/2014 ENGRG 59910 Intro to GIS 4

Spatial Modeling and Cartographic Modeling

Page 3: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

3

• Simplified, idealized representation of a part of the real world

• Learning Tool

• Experimental Tool

•Constantly tested by comparison with the real world

•Useful insofar as they explain or simulate the real world

Definition of “Model”

5/1/2014 ENGRG 59910 Intro to GIS 5

•Analysis Models – Step‐by‐step description of how problems are solved.

•Representation models – images, dioramas, wind‐tunnel models, flow channels, sand tables, maps, globes.

• Conceptual models ‐ no numerical values or formulas

• Theoretical models ‐ with numerical values or formula 

• Empirical models ‐ based on observations, but the mechanism may be unknown.

• Statistical, e.g. Regression Models• Rule‐based Models• Models based on many measurements (e.g. USLE, RUSLE)

•Physical‐mathematical models ‐ based on physical laws, first principles

• Stochastic models ‐ bases on the concept of randomness and probability: Random numbers simulate variation.

5/1/2014 ENGRG 59910 Intro to GIS 6

Models come in many, many flavors.

Page 4: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

4

Representation Models

5/1/2014 ENGRG 59910 Intro to GIS 7

Representation Models in GIS

5/1/2014 ENGRG 59910 Intro to GIS 8

Digital Elevation Model

Page 5: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

5

•Representation Modeling

• Exploratory Data Analysis• Environmental Modeling 

• Environmental Risk Assessment• Atmospheric Modeling• Soil Erosion Modeling• Hydrological

• Topographic Modeling

• Watershed Analysis

• Dynamic Modeling

• Land‐water interactions• Habitat Modeling

GIS Modeling

5/1/2014 ENGRG 59910 Intro to GIS 9

•Human‐Environment Modeling• Land Suitability Modeling• Land‐use/land‐cover change

• Economic models (Walker)

• Agent‐based models

• Archaeological Modeling• Decision‐Support Systems

• Land allocation• Agroforestry (Ellis)

•Business/Economic Modeling –Thrall

• Emergency Management

Different Models for Different Questions

Representation Models

Process Models

Evaluation Models

Change Models

Impact Models

Decision Models

Landscape Description

Landscape Function

Is the Landscape Working Well?

Landscape Change (Scenarios?)

How will the change(s) affect Landscape Function?

How should the landscape be changed?

Data

Cultural Knowledge

Information

Define ProblemRecognize ContextDefine Time

Steinitz et al. 1996

5/1/2014 ENGRG 59910 Intro to GIS 10

Page 6: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

6

•Cartographic Modeling (= Spatial Modeling)

•Models (representations) using Maps (Cartography)

•Analytical model based on  simple, sequential operations.

•Start: “What is the Question? What are the Objectives?”

Analytical Models: Project Design With Cartographic Modeling

Land Use

Property

Soils

Dissolve

Reclass

Overlay: Intersection

Reclass

ClipFinal Product

Private and Public Ownership

Fertile and Infertile Soils

Ag vs. Forest

Fertile Forest Soils

Objective: Map of Lands to Buy (Fertile Forest Soils in Private Ownership)

Start here.

5/1/2014 ENGRG 59910 Intro to GIS 11

1. Cartographic Modeling emphasizes process, not data specifics. (Should accommodate new/changed data.)

2. Cartographic Modeling decomposes analytical tasks into elementary components that can be combined into complicated algorithms.

3. Cartographic modeling is useful for making the work flow more efficient.

4. Every object class (data, operation, map, etc.) has a specific symbol.

5. Useful flowcharts (Cartographic Models) should contain enough information for both you and someone else to reproduce the analysis.

Principles of Cartographic Modeling

5/1/2014 ENGRG 59910 Intro to GIS 12

Page 7: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

7

•After the question and objectives are adequately defined, Determine the output product FIRST.

• What are the final maps, tables, graphs that you need to determine and support the conclusions of your study?

•Break up the task into smaller sub‐tasks by working backwards from the final result.

•Define how you will combine variables and operations to achieve the final maps, tables, graphs, etc.

• Isolate each element (data, map, intermediate result, operation) that will be used in the model.

•Determine the input data.• What do you have/need to solve a specific problem?

Cartographic Modeling: Methods of Flowcharting

5/1/2014 ENGRG 59910 Intro to GIS 13

•Qualitative statements (“too steep,” “big enough,” “far away”) must be made quantitative. (GIS generally not good at fuzzy.)

•Consultation, meetings, discussions, etc., with “client group” may be necessary.

A note about cartographic modeling

5/1/2014 ENGRG 59910 Intro to GIS 14

Page 8: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

8

Terrible Cartographic Model

5/1/2014 ENGRG 59910 Intro to GIS 15

Get Data

AnalyzeData

PresentTable ofResults

Say What???

• Environmental Impact of a new Road

Examples of Spatial Models for Problem Solving

5/1/2014 ENGRG 59910 Intro to GIS 16

Page 9: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

9

• Problem: A new road is going to be built between cities A and B, through a forest with both high biodiversity and high development potential.

•Question: How much undisturbed forest is going to be affected?

• Principle: New roads affect a zone 2 km wide on each side of the road• Sound• Territorial Birds•Water and Sediment Runoff

Problem 1

5/1/2014 ENGRG 59910 Intro to GIS 17

• Input data• Land Use/Cover Map• Proposed New road

Problem 1

Affected land Area m2

Natural Forest 345453Disturbed Area 76755

• Output Data

– Table with the area of affected lands

How do we get from here

To here?

What do we want at the end?

5/1/2014 ENGRG 59910 Intro to GIS 18

Page 10: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

10

•Can you come up with a flowchart for answering this specific problem?

• Possible Solution with Operations Available:• Buffer• Reclass• Overlay (Intersection)

Problem 1

5/1/2014 ENGRG 59910 Intro to GIS 19

• This problem can be solved with the procedure described in this flowchart

Problem 1

Road Problem Flowchart

Buffer Reclass

Overlay (Intersection)

Attribute table analysis

Roads

2-km Buffers

Land Cover

Natural/Non Natural

2-km Buffer in Vegetation

Table with areas affectedWorkFlow

DesignFlow

Data

5/1/2014 ENGRG 59910 Intro to GIS 20

Page 11: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

11

• In a given region, what are the areas with the largest soil losses? What are the magnitudes of the losses?

•The USDA (Dept of Agriculture) has developed an empirical equation for estimating soil erosion (Universal Soil Loss Equation).

A= R*K*L*S*C*P

R=Erosivity or RainfallK=Soil characteristicsL=Length of the slope (topographic)S=Slope (topographic)C=Type of cultivationP=Protection parameter (i.e terraces)

Problem 2: Universal Soil Loss Equation, USLE

5/1/2014 ENGRG 59910 Intro to GIS 21

•Output Data:Map showing the areas with the largest soil erosion losses

•Input Data

Rainfall, Soils, Topographic Map, Land Use (Agriculture)

5/1/2014 ENGRG 59910 Intro to GIS 22

Problem 2

Page 12: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

12

•Operations available• Arithmetic (x, +, ‐, /)• Reclass or Recode• Slope and Length of Slope (Topographic)• Greater Than, less than

•Can you create a flowchart for solving this problem?

Problem 2

5/1/2014 ENGRG 59910 Intro to GIS 23

Land CoverTopoSoilsRainfall

RKLSCPArithmetic 

(multiplication)

R

Recl

ass

K

Recl

ass

C

Recl

ass

P

Recl

ass

L

Leng

th

S

Slop

e

ResultSelect Soil Loss >= X

5/1/2014 ENGRG 59910 Intro to GIS 24

Problem 2

Page 13: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

13

Landmark text: Ian McHarg, 1969 – Design with Nature: transparent maps of  “value,” overlaid; darker is better.

For a park: Near lakes, near roads, not wetlands

5/1/2014 ENGRG 59910 Intro to GIS 25

Example: Suitability Analysis

General Criteria Refined (Quantified) Criteria

Slopes not too steep Slopes < 30 degrees

Southern aspect preferred 90 < aspect <270 degrees

Soils suitable for septic system Specified list of septic‐suitable soils

Away from major roads, but not isolated

300m < distance to road < 2000m

5/1/2014 ENGRG 59910 Intro to GIS 26

Example: Home Site Selection

Page 14: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

14

Available data

Raster

Meet criteria? Assign codes for yes or no.

Suitable or unsuitable

Simplify

Add, to ID areas of good slope & aspect by sum

Fig. 12-3

Not helpful to say “overlay”!

5/1/2014 ENGRG 59910 Intro to GIS 27

Suitable or unsuitable

Simplify

Intersect, to map areas of suitable terrain AND soil

5/1/2014 ENGRG 59910 Intro to GIS 28

Page 15: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

15

Exclude roads not “major”

Subtract, to create new buffer poly of correct width

Two new polygon buffers

Limit buffers to area of interest

Intersect, to map areas meeting all criteria, or…

Simplify

*

5/1/2014 ENGRG 59910 Intro to GIS 29

• The major objective of a flowchart is to communicate the operations and their order to yourself as well as to someone else.

• Every object class (data, operation, map, etc.) has a specific symbol (e.g., in MS Office).

Data - map

Process - operation

x > y?Decision

YesNo

StatisticalTable

Multiple Data Layers?

5/1/2014 ENGRG 59910 Intro to GIS 30

Project Management: Flowcharting

Page 16: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

16

•Cartographic Modeling comprises simple objects and operations; however, combining objects and operations in specific sequences becomes complicated.

•Begin at the end: What do we want? (Did I say this already?)

•Cartographic model, or flowchart, must be sufficiently comprehensive to inform the analyst and the audience.

•Another analyst should be able to reproduce your project by reading your flowchart. “Reproducible” = “defensible.” These are essential to good science.

•Criteria: opportunity for expert and public input to modeling!

5/1/2014 ENGRG 59910 Intro to GIS 31

Points about Cartographic Modeling

1. No GIS at all, but model is spatially explicit

2. GIS holds data, model is not spatially explicit but takes as input aggregated information calculated by GIS.

3. GIS holds data, model is not spatially explicit but runs within GIS.

4. GIS holds data, model is spatially explicit but runs outside GIS.

5. Model is integrated with GIS software.

5/1/2014 ENGRG 59910 Intro to GIS 32

Kinds of Model – GIS Links

Page 17: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

17

5/1/2014 ENGRG 59910 Intro to GIS 33

Modeling – Taxonomy of Models

• Spatial Modeling is infinitely diverse – limited only by your imagination.

•Not limited to functions already within GIS application software (ArcGIS, etc.)

•But, developing models outside of GIS software programs requires programming knowledge: Java, Python, Fortran, C++, VisualBasic, or any other. LEARN AT LEAST ONE PROGRAMMING LANGUAGE.

•What is your interest?

5/1/2014 ENGRG 59910 Intro to GIS 34

GIS modeling Wrap‐Up

Page 18: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

18

GIS Programming

Second Part

• To calculate values needed for analysis

• To perform repetitive tasks

• To created customized GIS interface for special purposes

• To automated complex GIS modeling

Why GIS Programming?

5/1/2014 ENGRG 59910 Intro to GIS 36

Page 19: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

19

•Reproject 1000 shape files from Lon/Lat to UTM coordinates

•Build a simplified map interface for using by land manager with customized features

• Simulate flood progress when a certain event is happened.

• Include a map in an EXCEL spreadsheet

Example of Tasks

5/1/2014 ENGRG 59910 Intro to GIS 37

• For Research: • Dynamic spatial modeling• Repeated, intensive computing

• For Career:• More easily to get a job• More easily to get more $$

GIS Job Cleanhouse: http://www.gjc.org

Why do you need to learn GIS Programming?

5/1/2014 ENGRG 59910 Intro to GIS 38

Page 20: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

20

•ARC/INFO: Arc Macro Language (AML) : too old• Essentially a list of normal ARC commands• Some features for variables, looping etc.• Used only in Arc/INFO

•ArcView (through V3.3) AVENUE language : too old• Object‐oriented Programming• Used only in ARCView

•ArcGIS: ArcObjects : that’s right now, but it will be too old!• COM complaint (Component Object Model), interface for software components, introduced by Microsoft in 1993, language neutral

• Whatever COM‐compatible language: Virtual Basic,Virtual Basic for Application, Python, C++, JAVA, .NET etc.)

• ArcGIS Engine and ArcGIS Server

GIS Programming Languages: ESRI Products Suites

5/1/2014 ENGRG 59910 Intro to GIS 39

•Media Clip: introduction to ArcGIS Engine http://gis.esri.com/esriclips/clip.cfm?ClipID=213

• Introduction to ArcGIS Server: http://esri.com/software/arcgis/arcgisserver/about/demos.html

ArcGIS Engine and ArcGIS Server

5/1/2014 ENGRG 59910 Intro to GIS 40

Page 21: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

21

• (Chinese vs English) VS (C++ vs C#): • the most important thing is the logical, rather than characters

•Common themes:• Primitives (string name=“GIS”)• Control Flow (if, else, else if, then)• Loops (count, condition or collection)• Sub routine/function (private function doSth())

Common themes in various programming languages

5/1/2014 ENGRG 59910 Intro to GIS 41

•Object Oriented Programming (OOP)is a programming paradigm that represents the concept of "objects" that have data fields (attributes that describe the object) and associated procedures known as methods.

•Component Object Model (COM)language agnostic

•Objects vs. ClassesClass is a construct that defines a collection of properties and methodsObject is an instance of a class, it brings it to “life”

•Object Model Diagram 

Fundamentals of ArcObjects

5/1/2014 ENGRG 59910 Intro to GIS 42

Page 22: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

22

• There are a large number of objects defined by ESRI which can control all aspects of ArcGIS applications

•Only requires you to know what the objects are and what methods and properties are available to you

• You can use any COM‐compatible languagePython is really popular these days!

• The objects allow you to do EVERYTHING you can do in ARCGIS and more!

Benefits for using ArcObjects

5/1/2014 ENGRG 59910 Intro to GIS 43

• Some basic understanding of OOP language such as Visual Basic or Python is expected

• The large (huge?) number of objects available makes it difficult to locate the object or method you need

Challenge of using ArcObjects

5/1/2014 ENGRG 59910 Intro to GIS 44

Page 23: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

23

Object Model DiagramObject Model Diagram

5/1/2014 ENGRG 59910 Intro to GIS 45

Object Model Diagram

5/1/2014 ENGRG 59910 Intro to GIS 46

Page 24: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

24

ArcObject in ArcMap

5/1/2014 ENGRG 59910 Intro to GIS 47

• First go through a basic Visual Basic or Python book 

• Think of a task that you want to tackle 

• Find sample code that does something like what you are looking for 

•Develop code snippets that work, then try to put them together 

How to go about learning ArcObjects

5/1/2014 ENGRG 59910 Intro to GIS 48

Page 25: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

25

•Online Developers web site

•ArcObjects Developer Help

•Object Models

•Components/Core Components/Interfaces

• Sample Code

•Ask Google before asking anybody

Places to find help

5/1/2014 ENGRG 59910 Intro to GIS 49

Pain and Gain?

5/1/2014 ENGRG 59910 Intro to GIS 50

Page 26: lecture 13 - GIS modeling and programmingdaisy.ccny.cuny.edu/~michael/Courses/ENGRG59910/lecture 13 - GIS... · • Agent‐based model Spatial Modeling 5/1/2014 ENGRG 59910 Intro

26

• Thank you for your participation in this GIS course!

•Wish you success with the skills learnt from this course!

Thank you and Best wishes to you!

5/1/2014 ENGRG 59910 Intro to GIS 51