Literate Programming and the Process of GIS
Steve Signell, Instructor ([email protected])Robert Poirier, TA ([email protected])
School of ScienceRensselaer Polytechnic Institute
Monday, March 17, 2014
GIS in the SciencesERTH 4750 (38031)
Literate Programming
The process of GIS
• What is the task?• What data do I need• What analyses do I need to perform.• How is the data to be presented
(Maps/Reports/Web applications…)
3
The process of GIS
One example in action…
The process of GIS
The process of GIS
One question that immediately comes to mind with this dataset is "just how many Ecocodes, Domains, Divisions, Provinces, and Sections are present in this map?" Fortunately, we can answer this with a simple SQL query.
The process of GIS
Here is SQL that gives a table of names of the domains, along with area in km
The process of GIS
Here is SQL that gives you a map of the domains
The process of GIS
Here is SQL that gives a table of names of the divisions, along with area in km
The process of GIS
Here is SQL that gives you a map of the divisions
The process of GIS
Example, continued…
Projects & Grading: Review
Short written assignments & quizzes (25%)Participation in lab, lecture & group project (25%)Individual project (50%)
Vector and raster dataWritten & Oral ReportsMust have dynamic web map component
Group Projects
• Several layers: vector and/or raster • 3-4 data analysis components.• Basic web map with layers & layer selector.• Various assignments along the way
Individual Projects
Most proposals are very ambitious– this is good!
Doing the following will get you 75%:• Several vector & at least one raster component (or vice versa) • 3-4 data analysis components.• Written report with static (print) maps. This will be in the style of literate
programming.• Basic web map with layers & layer selector.• Oral report (~7 minutes, last day of class)
Remaining 25%-- excel in one or more areas:• Data Analysis• Written Report• Static Maps• Web Map• Oral report
Individual Projects
Individual Projects
Individual Projects
Individual Projects
Individual Projects
Individual Projects
Individual Projects
Homework
22
Homework for Thursday• Sections 10-13, 18-19, Boundless PostGIS
Tutorial
http://workshops.boundlessgeo.com/postgis-intro/
Homework
23
Homework: quick overview--demo
Tip: Loading PostGIS layers in QGIS
24
I’ve found the DB Manager to work best (DatabaseDB Manager).
Tip: Loading PostGIS layers in QGIS
25
I’ve found the DB Manager to work best (DatabaseDB Manager). • Click and drag layers to add to map. • SQL window is awesome...
Tip: DB Manager SQL Window
26
DB Manager SQL window is awesome...
Tip: DB Manager SQL Window
27
DB Manager SQL window is awesome...
Tip: Getting PostGIS views to work in QGIS
28
This will not work in QGIS because QGIS requires a primary key
CREATE OR REPLACE VIEW orangeline ASSELECT nyc_subway_stations.geom, nyc_subway_stations.color, nyc_subway_stations.nameFROM nyc_subway_stationsWHERE nyc_subway_stations.color::text = 'ORANGE’
Tip: Getting PostGIS views to work in QGIS
29
Add the red highlighted code to make a fake primary key
CREATE OR REPLACE VIEW orangeline ASSELECT nyc_subway_stations.geom, nyc_subway_stations.color, nyc_subway_stations.name,
row_number() OVER() AS id_qgisFROM nyc_subway_stationsWHERE nyc_subway_stations.color::text = 'ORANGE’