8.1 GIS Hardware and Software 8.2 Hybrid vs. Integrated Systems 8.3 Clients and Servers
8.4 Web-based Spatial
Databases 8.5 Summary
8 Architecture of Geographic Information Systems
• A geographic information system is a system
designed to collect, manage, analyze, display spatial data
• Specialized information system that consists of
– Spatial database,
– Spatial database system, – Application Software
• Often end users only see specially programmed
user interface
8 Architecture of GIS
http://www.physicalgeography.net/
• Environmental information system
8.1 GIS Hardware and Software
• Tourist information system
8.1 GIS Hardware and Software
[SX08]
• Urban planning information system
8.1 GIS Hardware and Software
• Network information system
8.1 GIS Hardware and Software
http://www.uni-potsdam.de/Geographie/
• GIS hardware mainly differs from "normal"
information systems in the input devices, e.g.
– Digitizer
• Electromagnetic surface
• Digitization of maps
– Drum scanner
• Provides accurate results
• Scanning device always in the same position to
the original
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.1 GIS Hardware and Software
640
http://www.uni-potsdam.de/Geographie/
http://www.litho-erfurt.de
• Classification of GIS software
– Expert GIS
standard GIS, spatial data server, geodatabase
– Desktop-GIS
data management for collection and information
– Mobile GIS
information, collection, updating
– Web-GIS
information, usually no collecting and updating
– Component GIS
embedding GIS functionality into third party systems
– GIS-Viewer
software for displaying and querying GIS data formats
8.1 GIS Hardware and Software
http://www.esri.com/
• Architecture of GIS can be roughly classified
– File based – Hybrid
– Layer-oriented – Integrated
8.2 Hybrid vs. Integrated Systems
• File based architecture
– First generation of GIS (since approx. 1960) – All information stored in files
– No logical data independence – No physical data independence – No standardization
8.2 Hybrid vs. Integrated Systems
• Hybrid architecture
– Relational databases are used for thematic attributes
– Spatial data is stored
in specific data structures on files
– Consistency of the data is difficult to
ensure
– Queries which
combine thematic and
spatial attributes are
not possible
8.2 Hybrid vs. Integrated Systems
• For example, a query which is not possible with hybrid architecture (see chapter 4.4)
• Attention: sometimes the term "hybrid GIS"
also is used for such systems, able to integrate vector and raster data
8.2 Hybrid vs. Integrated Systems
SELECT b1.id
FROM Building b1, Building b2 WHERE b1.typeOfUse = ’church’
AND
b2.typeOfUse = ’car park’
AND
Distance(Centroid(b1.groundPlan),
Centroid(b2.groundPlan)) < 2000;
• Layer-oriented architecture
– Thematic attributes and spatial data are stored in one single (relational) database
– Spatial data are modeled as relations – Introduction of a layer with
geometric functions
– Inefficient access to individual spatial objects (have to be collected by
means of joins)
8.2 Hybrid vs. Integrated Systems
• Example of relational modeling of polygons as a list of points (see chapter 4.3)
– Id attribute, list position and integer attributes x, y – For each polygon the values of
position have to start with value 1 and have to be dense
(implementation of a list)
8.2 Hybrid vs. Integrated Systems
CREATE TABLE Polygons (
id CHAR(20), position INTEGER, x INTEGER, y INTEGER,
PRIMARY KEY (id,position));
• Integrated architecture
– Thematic attributes and spatial data are stored in one single (geographic) database
– Database functions and GIS functionality in one system
– Database functions support the processing of spatial data
– Spatial index structures – Logical data independence – Standardization possible
8.2 Hybrid vs. Integrated Systems
• Example of a query which is possible with integrated architecture;
typically, this query is evaluated by using an
R-tree index (see chapter 4.5 and chapter 5)
8.2 Hybrid vs. Integrated Systems
SELECT p.id
FROM Parcel p, Brook b
WHERE intersects (p.groundPlan, b.geometry);
• Relational join algorithms aren’t applicable for spatial joins (except Nested Loop)
– Sort-Merge-Join
– No order on spatial (multi-dimensional) data
8.2 Spatial Join
matNr result
1005 4.0
1005 1.3
2832 5.0
5119 1.7
8676 1.3
9876 3.7
matNr firstName 1005 Clark
2832 Lois
4512 Lex
5119 Charles 6676 Erik
8024 Jean
– Hashjoin
– A hash function, which assigns the same value to extended, overlapping objects is not known
8.2 Spatial Join
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 matNr firstName
1005 Clark 2832 Lois
4512 Lex
5119 Charles 6676 Erik
8024 Jean
matNr result
9876 3.7
2832 5.0
1005 4.0
1005 1.3
6676 1.3
5119 1.7
• Spatial join using r-trees
– Suppose the height of both r-trees is the same
– Only MBRs on the same level have to be checked for intersections and only if their parent’s MBRs intersect – A priority queue is used to store the node pairs which
have to be checked
– Filter step of the spatial query evaluation
→ results have to be validated using the original geometry of the objects
8.2 Spatial Join
8.2 Spatial Join
procedure INDEX_TRAVERSAL_SPATIAL_JOIN(rootA, rootB) begin
priorityQueue ← CREATE_PRIORITY_QUEUE();
priorityQueue.ADD_PAIR(rootA, rootB);
while NOT priorityQueue.EMPTY() do nodePair ← priorityQueue.POP();
rectanglePairs ← FIND_INTERSECTING_PAIRS(nodePair);
foreach p Є rectanglePairs do if p is a pair of leaves then
REPORT_INTERSECTIONS(p);
else
priorityQueue.ADD_PAIR(p);
endif;
enddo;
enddo;
end; http://doi.acm.org/10.1145/1206049.1206056
• ADD-PAIR
– Defines the order in which the priority queue is processed
• Breadth first search
• Breadth first search with additional ordering of the nodes on one level i.e. x-coordinate or z-address of the MBR’s center
• Depth first search
8.2 Spatial Join
1 2
7
3 4
6
5 8 9 10
1 2
6
5 8
4
3 7 9 10
• Example
8.2 Spatial Join
1
2 3
4 5
7
6
8 9 a
b c
f
g h
d e
i
k j
l
• R-tree of the rivers
8.2 Spatial Join
a
b c
f
g h
d e
i
k j
l
• R-tree of the rivers
8.2 Spatial Join
I II
A B C D E
a c
b d e
h i
j k l f g
a
b c
f
g h
d e
i
k j
l A
B
C
D E
I
II
• R-tree of the woods
8.2 Spatial Join
1
2 3
4 5
7
6
8 9
• R-tree of the woods
8.2 Spatial Join
1
2 3
4 5
7
6
8 9 F
G
H
I
III
IV
III IV
F G H I
1 2
3 4
5 6 7 8 9
• 1. iteration
– nodePair: (rootA, rootB)
– priorityQueue: ((II,III) (I,IV) (I,III))
8.2 Spatial Join
III
IV I
II
((E,H) (D,H) (I,IV) (I,III))
• 2. iteration
– nodePair: (II, III) – priorityQueue:
8.2 Spatial Join
D
E F
G
H
((i,7) (h,7) (D,H) (I,IV) (I,III))
• 3. iteration
– nodePair: (E,H) – priorityQueue:
8.2 Spatial Join
h i 5
7
6
8.2 Spatial Join
I II
C A B D E
a c b d e h i
j k l f g
III IV
H G F I
1 2 3 4
5 6 7 8 9
• FIND_INTERSECTING_PAIRS
8.2 Spatial Join
procedure PLANE_SWEEP(listA, listB) begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo end
f g
5
7
6
statusA:
statusB:
f Result:
• FIND_INTERSECTING_PAIRS
8.2 Spatial Join
procedure PLANE_SWEEP(listA, listB) begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo end
f g
5
7
6
statusA:
statusB:
f, g Result:
• FIND_INTERSECTING_PAIRS
8.2 Spatial Join
procedure PLANE_SWEEP(listA, listB) begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo end
f g
5
7
6
statusA:
statusB:
5
g
Result: (g,5)
• FIND_INTERSECTING_PAIRS
8.2 Spatial Join
procedure PLANE_SWEEP(listA, listB) begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo end
f g
5
7
6
statusA:
statusB:
g 5,7
Result: (g,5) (g,7)
• FIND_INTERSECTING_PAIRS
8.2 Spatial Join
procedure PLANE_SWEEP(listA, listB) begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo end
f g
5
7
6
statusA:
statusB:
5,7,6
Result: (g,5) (g,7)
• Cooperating components
– Client initiates the communication – Client sends requests to the server – Server provides a fixed set of services – Roles and functions are asymmetric
– Sequence of interaction steps is determined – Client may access
multiple servers – Server may serve
multiple clients
– Server may also be client when
processing a request
8.3 Clients and Servers
• Various kinds of realising client/server systems
• The differences arise as a result of the partitioning of total functionality
• Possible sub-functions
– Presentation function
– Application function
– Data
management function
8.3 Clients and Servers
• Typical functions of a GIS server
– Selection of thematic and spatial information from geographic data base
– Preview of selected spatial data – Conversion of selected spatial
data into the appropriate target format
– Cartographic representation of selected spatial data
8.3 Servers
http://www.dottedeyes.com/
• Selection of some common GIS servers
– ESRI
• Market leader, founded in 1969 as "Environmental Systems Research Institute"
• Chargeable, not open source, Windows and Linux
• Covers the whole range of GIS functionalities
• Products
– ArcGIS - desktop GIS, includes ArcView, ArcEditor, ArcInfo – ArcView - basic GIS functionality
– ArcEditor - interactive changes – ArcInfo - full analytical capabilities – ArcIMS - internet mapserver
– ArcSDE - spatial database engine
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
668
– GRASS
• “Geographic Resources Analysis Support System”
• Free of charge, open source, Linux, Mac OS, Windows
• Offers a variety of GIS functions
– Spatial analysis
– Integrated simulation models – Geostatistics
– Several projections with transformations – Map production
– Database connection (PostgreSQL, MySql, Oracle) – Grass consists of more than 400 programs and tools – Somewhat uncomfortable to use
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
669
– Smallworld
• Product of General Electric (now)
• Market leader in the area of network information systems
• Chargeable, not open source, Windows and Linux
• Professional system for companies and authorities
• Focus on user interface, easy in training, scalability
• Various specialized application modules available from third party developers
– Pipeline
– ALKIS, zoning map, land development plan – Environmental atlas
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
670
– Oracle Spatial
• Spatial extension of the Oracle database system (see chapter 4.4, 7.3)
• Chargeable, not open source, Windows, MacOS, Linux
• Set of functions for handling spatial data
• Specific geometric data type SDO_GEOMETRY
• MapViewer (additional component for rendering spatial data)
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
671
– PostgreSQL
• Relational database system with spatial data types and corresponding SQL extensions (see chapter 4.4, 7.2)
• Free, open source, Linux, MacOS, Windows
• Following data types are offered
– point (float, float) – box (point, point) – lseg (point, point)
– path (point1, point2, ..., pointn) – polygon (point1, point2, ..., pointn) – circle (point, float)
• Numerous geometric predicates and functions
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
672
– PostGIS
• Extension of PostgreSQL (PostgreSQL is designed to be extensible)
• Additional data types:
MultiPoint, MultiLinestring, MultiPolygon, GeometryCollection
• Syntactic embedding of the new data types is different because they are realized as user-defined types:
first a table is defined
CREATE TABLE ...
then a column with a new data type is added SELECT AddGeometryColumn (...)
Spatial Databases and GIS – Karl Neumann, Sarah Tauscher– Ifis – TU Braunschweig
8.3 Servers
673
• PostgreSQL provides several geometric data types and related functions
• Some types and functions are missing, e.g.
intersection: Polygon × Polygon
GeometryCollection 8.3 PostgreSQL PostGIS
• Create a new PostgreSQL type
8.3 PostgreSQL PostGIS
http://www.postgresql.org/
• Create a new PostgreSQL function 8.3 PostgreSQL PostGIS
http://www.postgresql.org/
• PostGIS extends PostgreSQL by implementing missing types and functions
• Is certified as a compliant "Simple Features for SQL" database by the OGC
8.3 PostgreSQL PostGIS
SELECT ST_AsText(ST_Intersection(
ST_GeomFromText(
'MULTIPOLYGON(((-77 56,-52 18,-88 -27,
-10 -13,-11 38,-77 56)))'), ST_GeomFromText(
'MULTIPOLYGON(((-49 63,-32 24,-39 -7,-66 -19, -72 -9,-74 31,-49 63)))')));
• For indexing new (unknown) types PostgreSQL provides GiST (Generalized Search Tree)
– Template in which to implement balanced trees of (p, ptr) pairs
• p is a key predicate
• p holds for all objects below ptr
– Takes care of concurrency, logging and searching the tree structure
– Requires only to implement the semantics of the new data type
8.3 PostgreSQL PostGIS
• By means of GiST PostGIS provides an R-tree implementation
• Confusingly, this implementation is called GIST
8.3 PostgreSQL PostGIS
CREATE TABLE Building
(id CHAR(25), typeOfUse CHAR(25));
SELECT AddGeometryColumn( ‘Building', ‘groundPlan', 423, ‘Polygon', 2);
CREATE INDEX groundPlanIndex ON Building USING GIST (groundPlan);
• Typical functions of a GIS client
– Data acquisition, digitization – Transformations
– Functions for image processing – Basic CAD functions
– Constructing of spatial objects
– Data reduction, smoothing, generalization – User interface
– Presentation of data – Data output
8.3 Clients
http://www.ikg.uni-hannover.de/
http://www.dgfk.net/
• Selection of some common GIS clients
– OGC WMS Viewer
• Company: Intergraph
• Thin client, web application
• Can connect to web servers which provide the OGC Web Map Services
• Loads maps and displays them
• Can combine different maps
• Contains configurable GUI
8.3 Clients
http://www.demis.nl/
– con terra mapClient
• Configurable web application
• Display, navigation,
selection, management
of
– OGC WMS and WFS services
– ArcIMS and ArcGIS services
• Measurement of distances and areas
• Drawing of points, lines, and surfaces
• Can be upgraded with further components to a GIS server
8.3 Clients
http://www.conterra.de/de/
– ESRI ArcExplorer Web
• Browser-based mapping application
• Can access ArcIMS services and OGC WMS Web Map Service
• Combination of different maps or layers
• Search for locations worldwide
• Address search (U.S.)
• Works without any plug-in or applet
8.3 Clients
http://www.esri-germany.de/
• Collection of spatial data is particularly expensive
• Spatial data is durable
• Geoservices are increasingly offered by the internet
• Typical keyword: "Internet GIS"
– Internet GIS applications reach many users
– Requirement for internet clients are low
– Standards enable simple exchanges
8.4 Web-based Spatial Databases
• Application areas of internet-GIS
– Simple information systems
• Standard internet environment with usual plug-ins
• Presentation of interactive maps
• E.g. in the local area for publication of information to citizens and
visitors
8.4 Web-based Spatial Databases
http://www.braunschweig.de/
– Specialized georeferenced information systems
• Additional services to the public or for a restricted group of people
• Dynamical systems needed, since data is processed during request
• E.g. address search, route planner
8.4 Web-based Spatial Databases
– Web-based GIS clients with access to key resources
• Offer advanced functionalities
• Analysis and intersection of spatial data
• Export and update of attributes
• Used mostly in spatial data infrastructures, because user training is required
– Portals for spatial data
• For providing and selling of large quantities of data
• Usually data is supplied by different spatial data servers
8.4 Web-based Spatial Databases
http://www.lgn.niedersachsen.de/
• OpenStreetMap (OSM) is a free editable map of the whole world
• Founder: Steve Coast
• Established: August 9, 2004
• Funding: Entirely by donations
• Licensing model: Creative Commons Attribution- ShareAlike 2.0
• Mission: To map the world and give the data away for free
8.4 Open Street Map
8.4 Open Street Map
www.openstreetmap.org
• Provide an Open Platform
– OSM Users may freely input and extract data
• Raw sources for OSM Basemap
– GPS track logs
– Existing Free Data Sources (e.g. TIGER/LINE)
– Historical Maps – Out of Copyright mapping
• Users Create Basemap from Raw Sources
– Via Online and Offline Editing Software
8.4 Open Street Map
• OSM's data is made up from the following elements:
– Nodes: The dots that are used to mark specific locations (such as a post box) or for drawing segments between.
– Ways: An ordered list of nodes, displayed as connected by line segments. They are used to describe roads, paths etc.
– Closed Ways: Closed ways are ways which go in a
complete loop. They are used to describe areas like parks, lakes or islands
– Relations: Basically groups of objects in which each object may take on a specific role
8.4 Open Street Map
• Tags
– Key=value pairs
– Can be assigned to OSM-elements i.e. nodes, ways and relations
– No content restrictions, but they have to be verifiable – Recommended set of features and corresponding tags
• in order to create, interpret and display a common basemap
• Not every recommended feature will be rendered
• Some rendered Features are not listed
– Possibility to propose new features/icons
8.4 Open Street Map
8.4 Open Street Map
Key Value Element Comment Rendering Photo
highway motorway A restricted access major divided highway, normally with 2 or more running lanes plus emergency hard shoulder. Equivalent to the Freeway, Autobahn, etc..
highway trunk_link The link roads (sliproads/ramps)
leading to/from a trunk road from/to a trunk road or lower class highway.
highway pedestrian For roads used mainly/exclusively for pedestrians/shopping areas. Also for tagging squares and plazas (in which case, add area=yes.
highway steps For flights of steps (stairs) on
footways. Use with step_count=* to indicate the number of steps
http://wiki.openstreetmap.org/wiki/Map_Features
8.4 Open Street Map
Key Value Element Comment Rendering Photo
amenity university A University campus or buildings
amenity grit_bin A container that hold grit or a mixture from salt and grit.
landuse vineyard A piece of land where grapes are grown.
access yes/ designated/
official/ private/
permissive/ destina- tion/ delivery/
agricultural/
forestry/ unknown/
no
General access permission.
- permissive means there is no legally-enshrined right of access, but the landowner has allowed it at his/her discretion
- private …. http://wiki.openstreetmap.org/wiki/Map_Features
• GPS-Traces
8.4 Open Street Map
File name: GPSDATA_20100113.gpx (download)
Upload: Wednesday, 13. Januar 2010, 11:45 Uhr
Points: 3,162 Coordinate of
starting point:
-37.8654; 144.695 (Map /edit)
owner: Pegaxs
Description: Bike ride
Tags: none
Visibility:
Identifiable (list of
ordered points with time stamp)
8.4 Open Street Map
8.4 Open Street Map
• Database Schema
– 16 administrative tables – 3 GPX tables
– 2 changesets tables – 17 geodata tables
• 8 master tables, containing all previous edit history
• 8 current tables, latest revision, used for drawing the map
• 1 table for storing mbrs of countries
8.4 Open Street Map
• OpenStreetMap stats report (19.12.2013)
8.4 Open Street Map
users GPS points nodes ways relations users editing gpx files/nodes day week month
1464553 3737517862 2131500338 209890609 2287118 125/2441 692/7829 2049/19077
http://wiki.openstreetmap.org/wiki/Stats
05.2006
• Isle of Wight
8.4 Open Street Map
05.2006 09.2006
• Isle of Wight
8.4 Open Street Map
05.2006 09.2006
• Isle of Wight
8.4 Open Street Map
01.2010
• Export
8.4 Open Street Map
…
…
• Export
8.4 Open Street Map
…
…
• GIS to collect, manage, analyze, display spatial data
– Specialized information system
– Spatial database, spatial database system
• GIS hardware and software
– Digitizer
– Drum scanner
– Classification of GIS software
8.5 Summary
• Hybrid vs. integrated systems
– File based architecture – Hybrid architecture
– Layer-oriented architecture – Integrated architecture
– Spatial join with R-tree index
• Clients and Servers
– Various kinds of realising client/server systems – Typical functions of a GIS server/client
8.5 Summary
• Servers
– ESRI; ArcGIS, ArcIMS, ArcSDE – GRASS
– Smallworld – Oracle Spatial
– PostgreSQL, PostGIS
• Clients
– Intergraph OGC WMS Viewer – con terra mapClient
– ESRI ArcExplorer Web
8.5 Summary
• Web-based spatial databases
– Internet GIS
– Application areas of internet GIS – Open Street Map
8.5 Summary
8.5 Summary
GIS internet
GIS
software
hardware
client/
server system
architectures