PostGIS and Spatial Queries

Slides:



Advertisements
Similar presentations
Relational Algebra Relational algebra consists of a set of relational operators Each operator has one or more relations as input and creates a new relation.
Advertisements

What is a Database By: Cristian Dubon.
Concepts of Database Management Sixth Edition
Introduction to Structured Query Language (SQL)
The University of Akron Dept of Business Technology Computer Information Systems The Relational Model: Query-By-Example (QBE) 2440: 180 Database Concepts.
XP Chapter 3 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Analyzing Data For Effective Decision Making.
Chapter 8 Special-Purpose Languages. SQL SQL stands for "Structured Query Language". Allows the user to pose complex questions of a database. It also.
Introduction to Structured Query Language (SQL)
Geographic Information Systems
Introduction to Structured Query Language (SQL)
1 Chapter 2 Reviewing Tables and Queries. 2 Chapter Objectives Identify the steps required to develop an Access application Specify the characteristics.
Concepts of Database Management Sixth Edition
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Akhila Kondai October 30, 2013.
Concepts of Database Management, Fifth Edition
Introduction to SQL Steve Perry
Analyzing Data For Effective Decision Making Chapter 3.
SQL: Data Manipulation Presented by Mary Choi For CS157B Dr. Sin Min Lee.
PostGIS and Spatial Queries Steve Signell, Instructor Robert Poirier, TA School of Science Rensselaer Polytechnic Institute.
SQL access and working with ST_Geometry Functions
Using Special Operators (LIKE and IN)
Concepts of Database Management Seventh Edition
CS146 References: ORACLE 9i PROGRAMMING A Primer Rajshekhar Sunderraman
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
Intro to SQL Management Studio. Please Be Sure!! Make sure that your access is read only. If it isn’t, you have the potential to change data within your.
Concepts of Database Management Eighth Edition Chapter 3 The Relational Model 2: SQL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
PostGIS and Spatial Queries Steve Signell, Instructor Robert Poirier, TA School of Science Rensselaer Polytechnic Institute.
Creating and Maintaining Geographic Databases. Outline Definitions Characteristics of DBMS Types of database Relational model SQL Spatial databases.
Database Fundamental & Design by A.Surasit Samaisut Copyrights : All Rights Reserved.
John Pickford IBM H11 Wednesday, October 4, :30. – 14:30. Platform: Informix Practical Applications of IDS Extensibility (Part 2 of 2)
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 (Part II) INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor.
DAY 21: MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Aliya Farheen October 29,2015.
SqlExam1Review.ppt EXAM - 1. SQL stands for -- Structured Query Language Putting a manual database on a computer ensures? Data is more current Data is.
Lecture 10 Creating and Maintaining Geographic Databases Longley et al., Ch. 10, through section 10.4.
9-1 © Prentice Hall, 2007 Topic 9: Physical Database Design Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Component 4: Introduction to Information and Computer Science Unit 6: Databases and SQL Lecture 6 This material was developed by Oregon Health & Science.
PeopleSoft Financials Advanced Query Training Financial Information Systems and Reporting Controller’s Division
Oracle & SQL. Oracle Data Types Character Data Types: Char(2) Varchar (20) Clob: large character string as long as 4GB Bolb and bfile: large amount of.
7 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel 7.6 Advanced Select Queries SQL provides useful functions that.
MICROSOFT ACCESS – CHAPTER 5 MICROSOFT ACCESS – CHAPTER 6 MICROSOFT ACCESS – CHAPTER 7 Sravanthi Lakkimsety Mar 14,2016.
 CONACT UC:  Magnific training   
Oracle Spatial Extension of the RDBMS Oracle by spatial data types and operations –introduced in version 8 (current version.
Get Familiar with Spatial Data. Slava Murygin – SQL SlavaSQL.BlogSpot.com.
Concepts of Database Management, Fifth Edition Chapter 3: The Relational Model 2: SQL.
IFS180 Intro. to Data Management Chapter 10 - Unions.
More SQL: Complex Queries, Triggers, Views, and Schema Modification
PostGIS and Spatial Queries
Get Familiar with Spatial Data
SQL Query Getting to the data ……..
GML in CDI and CSR ISO using Ends&Bends
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
SQL Implementation & Administration
SQL in Oracle.
Geographic Information Systems
SQL FUNDAMENTALS CDSE Days 2018.
Prof: Dr. Shu-Ching Chen TA: Yimin Yang
Prof: Dr. Shu-Ching Chen TA: Hsin-Yu Ha
Chapter # 7 Introduction to Structured Query Language (SQL) Part II.
Prof: Dr. Shu-Ching Chen TA: Haiman Tian
Introduction To Structured Query Language (SQL)
Database systems Lecture 3 – SQL + CRUD
Access: SQL Participation Project
Structured Query Language – The Fundamentals
Introduction To Structured Query Language (SQL)
Contents Preface I Introduction Lesson Objectives I-2
Chapter 8 Advanced SQL.
IST 318 Database Administration
Databases and Information Management
Introduction to SQL Server and the Structure Query Language
Presentation transcript:

PostGIS and Spatial Queries GIS in the Sciences ERTH 49xx PostGIS and Spatial Queries Peter Fox (thanks to Steve Signell) Rensselaer Polytechnic Institute October, 2016

Spatial Databases PostGIS is a spatial database. Oracle Spatial and SQL Server 2008 are also spatial databases. But what does that mean; what is it that makes an ordinary database a spatial database? The short answer, is. . . Spatial databases store and manipulate spatial objects like any other object in the database.

Databases & SQL: Review The four “verbs” of SQL (Structured Query Language) SELECT, returns rows in response to a query INSERT, adds new rows to a table UPDATE, alters existing rows in a table DELETE, removes rows from a table

Databases & SQL: Review SELECT QUERIES Required: SELECT (field(s)) FROM (tables) Optional: JOIN (combines two FROM items) WHERE (conditions) GROUP BY (fields– used for AGGREGATE functions) ORDER BY (field(s)) LIMIT (# rows returned)

JOIN Combines two FROM items (tables) using a common identifier. Usage:

WHERE… WHERE…. ALSO: BETWEEN x AND y Mathematical functions (+ - * /, etc.) See http://www.postgresql.org/docs/9.2/static/functions-math.html Operator Description < less than > greater than <= less than or equal to >= greater than or equal to = equal <> or != not equal

Aggregate Functions AGGREGATE functions: compute a single result from a set of input values http://www.postgresql.org/docs/9.2/static/functions-aggregate.html avg(), sum(), min(), count() Also statistics: corr(), regr_slope(), stdev() Always have a ‘GROUP BY’ in the SQL statement

Spatial Databases 1. Spatial data types refer to shapes such as point, line, and polygon; 2. Multi-dimensional spatial indexing is used for efficient processing of spatial operations; 3. Spatial functions, posed in SQL, are for querying of spatial properties and relationships.

Spatial Indexing Spatial indexing & Bounding Boxes Answering the question “is A inside B?” is very computationally intensive for polygons but very fast in the case of rectangles. Even the most complex polygons and linestrings can be represented by a simple bounding box.

Spatial Functions Conversion: Functions that convert between geometries and external data formats. Management: Functions that manage information about spatial tables and PostGIS administration. Retrieval: Functions that retrieve properties and measurements of a Geometry. Comparison: Functions that compare two geometries with respect to their spatial relation. Generation: Functions that generate new geometries from others.

Conversion Functions Well-known text (WKT) ST_GeomFromText(text, srid) returns geometry ST_AsText(geometry) returns text ST_AsEWKT(geometry) returns text Well-known binary (WKB) ST_GeomFromWKB(bytea) returns geometry ST_AsBinary(geometry) returns bytea ST_AsEWKB(geometry) returns bytea Geographic Mark-up Language (GML) ST_GeomFromGML(text) returns geometry ST_AsGML(geometry) returns text Keyhole Mark-up Language (KML) ST_GeomFromKML(text) returns geometry ST_AsKML(geometry) returns text GeoJSON ST_AsGeoJSON(geometry) returns text Scalable Vector Graphics (SVG) ST_AsSVG(geometry) returns text

Management Functions AddGeometryColumn - Adds a geometry column to an existing table of attributes. DropGeometryColumn - Removes a geometry column from a spatial table. DropGeometryTable - Drops a table and all its references in geometry_columns. PostGIS_Version - Returns PostGIS version number and compile-time options. Populate_Geometry_Columns - Ensures geometry columns have appropriate spatial constraints and exist in the geometry_columns table. Probe_Geometry_Columns - Scans all tables with PostGIS geometry constraints and adds them to the geometry_columns table if they are not there. UpdateGeometrySRID - Updates the SRID of all features in a geometry column, geometry_columns metadata and srid table constraint

Retrieval Functions ST_Area: Returns the area of the surface if it is a polygon or multi-polygon. For “geometry” type area is in SRID units. For “geography” area is in square meters. ST_Length: Returns the 2d length of the geometry if it is a linestring or multilinestring. geometry are in units of spatial reference and geography are in meters (default spheroid) ST_NPoints: Returns the number of points (vertexes) in a geometry. ST_NumGeometries: If geometry is a GEOMETRYCOLLECTION (or MULTI*) returns the number of geometries, otherwise return NULL. ST_Perimeter: Returns the length measurement of the boundary of an ST_Surface or ST_MultiSurface value. (Polygon, Multipolygon) ST_StartPoint: Returns the first point of a LINESTRING geometry as a POINT. ST_X: Returns the X coordinate of the point, or NULL if not available. Input must be a point. ST_Y: Returns the Y coordinate of the point, or NULL if not available. Input must be a point.

Comparison Functions Questions like “Which are the closet bike racks to a park?” or “Where are the intersections of subway lines and streets?” can only be answered by comparing geometries representing the bike racks, streets, and subway lines. Other Questions: “What neighborhood and borough is Atlantic Commons in?” “What streets does Atlantic Commons join with?” “Approximately how many people live on (within 50 meters of) Atlantic Commons?”

Comparison Functions

Comparison Functions

Comparison Functions

Comparison Functions

Comparison Functions

Comparison Functions

Part II: Demos Trail Registers Parking Areas Campsites Aquatic Invasives

Trail Registers SELECT yr, SUM(people) FROM dec.trailregisterdata WHERE asset_uid = '$regid' GROUP BY yr ORDER BY yr ASC SELECT a.asset_uid, b.mo, b.month, AVG(a.people)::integer FROM dec.trailregisterdata a INNER JOIN argis.month_lookup b ON a.mo=b.mo WHERE asset_uid = $regid GROUP BY b.mo, a.asset_uid, b.month ORDER BY b.mo ASC 21800

Parking Areas SELECT a.name, a.geom FROM dec.asset a, dec.slt b WHERE a.asset like '%PARKING%'

Campsites near Trails SELECT DISTINCT a.name, ST_AsGeoJSON(ST_Transform(a.geom,4326),6) as geojson FROM dec.asset a, dec.slt b WHERE a.asset = 'PRIMITIVE CAMPSITE' AND st_dwithin(a.geom,b.geom,200) AND a.name != 'NULL'

Aquatic Invasive Species This script runs on the 1st of every Month: wget http://www.adkinvasives.com/database/apippexport.asp -O /tmp/apipp.csv psql -d argis < /home/steve/bin/import_apipp.sql Import_apipp.sql: DELETE FROM apipp.aquatic COPY apipp.aquatic FROM '/tmp/apipp.csv' CSV HEADER ; UPDATE argis.metadata SET last_updated = CURRENT_DATE WHERE tablename='apipp.aquaticinvasives'; CREATE OR REPLACE VIEW apipp.aquaticinvasives AS SELECT DISTINCT a.pond, a.station_area, a.abundance, a.surveydate, a.species, b.geom, b.gnis_name FROM apipp.aquatic a LEFT JOIN apipp.lake b ON a.pond = b.pond_num::bpchar ORDER BY a.pond, a.surveydate;

Questions? Group Project status? Look at - Sections 1-9, Boundless PostGIS Tutorial http://workshops.boundlessgeo.com/postgis-intro/