8 Architecture of Geographic Information Systems
8.1 GIS Hardware and Software 8.1 GIS Hardware and Software 8.2 Hybrid vs. Integrated Systems 8.3 Client/Server Systems
8.4 Web-based Spatial 8.4 Web-based Spatial
Databases
8.5 Summary
8.5 Summary
8 Architecture of GIS
• A geographic information system is a system
• A geographic information system is a system
designed to collect, manage, analyze, display spatial data
data
• Specialized information system that consists of
– Spatial database, – Spatial database,
– Spatial database system, – Application Software – Application Software
• Often end users only see
• Often end users only see specially programmed
user interface
user interface
8 Architecture of GIS
• Environmental information system
• Environmental information system
8 Architecture of GIS
• Tourist information system
• Tourist information system
8 Architecture of GIS
• Urban planning information system
• Urban planning information system
8 Architecture of GIS
• Network information system
• Network information system
8.1 GIS Hardware and Software
• GIS hardware mainly differs from "normal"
• GIS hardware mainly differs from "normal"
information systems in the input devices
8.1 GIS Hardware and Software
• Input device: digitizer
• Input device: digitizer
– Collection of coordinates
– Magnifying glass with crosshairs – Magnifying glass with crosshairs – Electronic pen
– Electromagnetic
surface http://www.uni-
surface
– Digitization of maps
http://www.uni-
potsdam.de/Geographie/
8.1 GIS Hardware and Software
• Input device: drum scanner
• Input device: drum scanner
– Oldest type of scanner – Provides accurate results – Provides accurate results – Usually with very high
resolution
– Original on a rotating drum
http://www.at-mix.de/
– Original on a rotating drum – Scanning device always in the
same position to the original same position to the original
8.1 GIS Hardware and Software
• GIS-Software
• GIS-Software
– Components (user-oriented view)
8.1 GIS Hardware and Software
•
Classification of GIS software
•
Classification of GIS software
– Expert GIS
standard GIS, spatial data server, geodatabase
– Desktop-GIS – Desktop-GIS
data management for collection and information
– Mobile GIS – Mobile GIS
information, collection, updating
– Web-GIS – Web-GIS
information, usually no collecting and updating
– Component GIS
embedding GIS functionality into third party systems
– Component GIS
embedding GIS functionality into third party systems
– GIS-Viewer
software for displaying and querying GIS data formats software for displaying and querying GIS data formats
8.2 Hybrid vs. Integrated Systems
• Architecture of GIS can be roughly classified
• Architecture of GIS can be roughly classified
– File based – Hybrid – Hybrid
– Layer-oriented – Integrated
8.2 Hybrid vs. Integrated Systems
• File based architecture
• File based architecture
– First generation of GIS (since approx. 1960) – All information stored in files
– All information stored in files – No logical data independence – No physical data independence – No standardization
– No standardization
8.2 Hybrid vs. Integrated Systems
•
Hybrid architecture
•
Hybrid architecture
– Relational databases are used for thematic attributes – Spatial data is stored
– Spatial data is stored
in specific data structures on files
– Consistency of the data is difficult to ensure
ensure
– Queries which
combine thematic and combine thematic and spatial attributes are not possible
not possible
8.2 Hybrid vs. Integrated Systems
• For example, a query which is not possible with
• For example, a query which is not possible with hybrid architecture (see section 4.5)
SELECT b1.id
FROM Building b1, Building b2 WHERE b1.typeOfUse = ’church’
AND AND
b2.typeOfUse = ’car park’
AND
Distance(Centroid(b1.groundPlan),
• Attention: sometimes the term "hybrid GIS"
Distance(Centroid(b1.groundPlan),
Centroid(b2.groundPlan)) < 2000;
• Attention: sometimes the term "hybrid GIS"
also is used for such systems, able to integrate vector and raster data
vector and raster data
8.2 Hybrid vs. Integrated Systems
• Layer-oriented architecture
• Layer-oriented architecture
– Thematic attributes and spatial data are stored in one single (relational) are stored in one single (relational) database
– Spatial data are modeled as relations – Spatial data are modeled as relations – Introduction of a layer with
geometric functions
– Inefficient access to individual spatial – Inefficient access to individual spatial
objects (have to be collected by means of joins)
means of joins)
8.2 Hybrid vs. Integrated Systems
• Example of relational modeling of polygons as a
• Example of relational modeling of polygons as a list of points (see section 4.3)
– Id attribute, list position and integer attributes x, y – Id attribute, list position and integer attributes x, y – For each polygon the values of
position have to start with value 1 position have to start with value 1 and have to be dense
(implementation of a list) (implementation of a list)
CREATE TABLE Polygons ( CREATE TABLE Polygons (
id CHAR(20),
position INTEGER,
x INTEGER,
y INTEGER,
y INTEGER,
8.2 Hybrid vs. Integrated Systems
• Integrated architecture
• Integrated architecture
– Thematic attributes and spatial data are stored in one single (geographic) database
single (geographic) database – Database functions and GIS
functionality in one system functionality in one system
– Database functions support the processing of spatial data
– Spatial index structures – Spatial index structures – Logical data independence – Standardization possible – Standardization possible
8.2 Hybrid vs. Integrated Systems
• Example of a query which is possible with
• Example of a query which is possible with integrated architecture;
typically, this query is typically, this query is evaluated by using an
R-tree index (see section R-tree index (see section 4.6 and section 5)
4.6 and section 5)
SELECT p.id
FROM Parcel p, FROM Parcel p, Brook b
WHERE intersects (p.groundPlan, b.geometry);
8.2 Spatial Join
• Relational join algorithms aren’t applicable for
• Relational join algorithms aren’t applicable for spatial joins (except Nested Loop)
– Sort-Merge-Join – Sort-Merge-Join
matNr result
1005 4.0
matNr firstName
1005 Clark 1005 4.0
1005 1.3
2832 5.0
1005 Clark
2832 Lois
4512 Lex 2832 5.0
5119 1.7
8676 1.3
5119 Charles
6676 Erik
8024 Jean
– No order on spatial (multi-dimensional) data
9876 3.7
8024 Jean
– No order on spatial (multi-dimensional) data
8.2 Spatial Join
– Hashjoin – Hashjoin
0 1
0
matNr firstName 1 matNr result
1 2 3
1 2 3 1005 Clark
2832 Lois
4512 Lex
9876 3.7
2832 5.0
1005 4.0
4 5 6
4 5 6
4512 Lex
5119 Charles
6676 Erik
1005 4.0
1005 1.3
6676 1.3
6 7
6 7
6676 Erik
8024 Jean
6676 1.3
5119 1.7
– A hash function, which assigns the same value to extended, overlapping objects is not known
extended, overlapping objects is not known
8.2 Spatial Join
• Spatial join using r-trees
• Spatial join using r-trees
– Suppose the height of both r-trees is the same
– Only MURs on the same level have to be checked for – Only MURs on the same level have to be checked for intersections and only if their parent’s MURs 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
→ results have to be validated using the original geometry of the objects
8.2 Spatial Join
procedure INDEX_TRAVERSAL_SPATIAL_JOIN(rootA, rootB) begin
priorityQueue ← CREATE_PRIORITY_QUEUE();
priorityQueue ← CREATE_PRIORITY_QUEUE();
priorityQueue.ADD_PAIR(rootA, rootB);
while NOT priorityQueue.EMPTY() do nodePair ← priorityQueue.POP();
nodePair ← priorityQueue.POP();
rectanglePairs ← FIND_INTERSECTING_PAIRS(nodePair);
foreach p Є rectanglePairs do if p is a pair of leaves then if p is a pair of leaves then
REPORT_INTERSECTIONS(p);
else
priorityQueue.ADD_PAIR(p);
priorityQueue.ADD_PAIR(p);
endif;
enddo;
enddo;
enddo;
end; http://doi.acm.org/10.1145/1206049.1206056
8.2 Spatial Join
• ADD-PAIR
• ADD-PAIR
– Defines the order in which the priority queue is processed
processed
• Breadth first search
• Breadth first search with additional ordering of the nodes
• Breadth first search with additional ordering of the nodes on one level i.e. x-coordinate or z-address of the MUR’s center
center
• Depth first search
1 1
1
2 3 4
1
2 5 8
8.2 Spatial Join
• Example
• Example
3 8
a
j 2
3 8
b 9
c d
k j
1 4
5
6
c d
e
l 5
7 f
g h
8.2 Spatial Join
• R-tree of the rivers
• R-tree of the rivers
a j
b
c d
k j
l
c d
e
l
f
g h
8.2 Spatial Join
• R-tree of the rivers
• R-tree of the rivers
I II
A B C D E a
j C
I
h i
b
c d
k j
l A
B
C
a c
b d e j k l
f g c d
e
l
b d e j k l
f
g D E h
i II
8.2 Spatial Join
• R-tree of the woods
• R-tree of the woods
3 8
1
2
3
4
9
1 4
5
6
7
8.2 Spatial Join
• R-tree of the woods
• R-tree of the woods
III IV
3 8
III IV
F G H I
2
3
4
8 9 F
G IV I
F G H I
8 9
1 4
5
6 1 2 F
3 4
8 9
5
7 H
5 6 7 III
8.2 Spatial Join
• 1. iteration
• 1. iteration
– nodePair: (rootA, rootB)
– priorityQueue: ((II,III) (I,IV) (I,III)) – priorityQueue: ((II,III) (I,IV) (I,III))
I
IV
III
8.2 Spatial Join
• 2. iteration
((E,H) (D,H) (I,IV) (I,II))
• 2. iteration
– nodePair: (II, III)
– priorityQueue: ((E,H) (D,H) (I,IV) (I,II)) – priorityQueue:
F
G F
D H
E
8.2 Spatial Join
• 3. iteration
((i,7) (h,7) (D,H) (I,IV) (I,II))
• 3. iteration
– nodePair: (E,H)
– priorityQueue: ((i,7) (h,7) (D,H) (I,IV) (I,II)) – priorityQueue:
5
6
h 7
8.2 Spatial Join
I II III IV
C A B D E H G F I
C A B D E H G F I
a c b d e h i
j k l f g 5 6 7 3 4 1 2 8 9
8.2 Spatial Join
• FIND_INTERSECTING_PAIRS
• FIND_INTERSECTING_PAIRS
procedure PLANE_SWEEP(listA, listB)
begin 5 6
begin
statusA ← CREATE_STATUS() statusB ← CREATE_STATUS()
while NOT listA.END() OR NOT listB.END() do if listA.FIRST() < listB.FIRST() then
f g
5
7 if listA.FIRST() < listB.FIRST() then
statusA.INSERT(listA.FIRST())
statusB.REMOVE_INACTIVE(listA.FIRST()) statusB.SEARCH(listA.FIRST())
listA.NEXT()
statusA:
listA.NEXT() else
statusB.INSERT(listB.FIRST())
statusA.REMOVE_INACTIVE(listB.FIRST()) statusB:
statusA.REMOVE_INACTIVE(listB.FIRST()) statusA.SEARCH(listB.FIRST())
listB.NEXT() endif
enddo
statusB:
enddo
8.3 Client/Server Systems
•
Cooperating components
•
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 – Sequence of interaction steps is determined – Client may access
multiple servers multiple servers – Server may serve
multiple clients multiple clients
– Server may also be client when
processing a request processing a request
8.3 Client/Server Systems
• Various kinds of realising client/server systems
• Various kinds of realising client/server systems
• The differences arise as a result of the partitioning of total functionality
partitioning of total functionality
• Possible sub-functions
– Presentation – Presentation
function
– Application – Application
function – Data
– Data
management function
function
8.3 Client/Server Systems
• In the GIS area there are several alternatives how to assign sub-functionalities to clients and to servers
• In the GIS area there are several alternatives how to assign sub-functionalities to clients and to servers
• Typical functions of a GIS client
– Data acquisition, digitization – Data acquisition, digitization – Transformations
– Functions for image processing – Functions for image processing – Basic CAD functions
– Constructing of spatial objects – Constructing of spatial objects
– Data reduction, smoothing, generalization – User interface
http://www.ikg.uni-hannover.de/
– User interface
– Presentation of data – Data output
– Data output
8.3 Client/Server Systems
• Typical functions of a GIS server
• Typical functions of a GIS server
– Selection of thematic and spatial information from geographic
information from geographic data base
– Preview of selected spatial data – Preview of selected spatial data – Conversion of selected spatial
data into the appropriate target format
– Cartographic representation of selected spatial data
selected spatial data
8.3 Client/Server Systems
•
The main services of a GIS server (in the web) were
•
The main services of a GIS server (in the web) were defined by the Open Geospatial Consortium (OGC, see section 6.3)
see section 6.3)
– Web Coverage Service (WCS)
Selection of raster data and its meaning – Web Feature Service (WFS)
Exchange of spatial objects (features) – Web Map Service (WMS)
– Web Map Service (WMS) Selection of maps
derived from derived from raster or
vector data vector data
8.3 Client/Server Systems
•
Web Coverage Service (WCS)
•
Web Coverage Service (WCS)
– A coverage is multidimensional (usually 2-dimen-dimensional) (usually 2-dimen-dimensional) image of a space-related
phenomenon (also called "field", see section 2.4)
see section 2.4)
– Enables modeling and
representation of an actual representation of an actual distribution of values in space – WCS operations are
– WCS operations are
• GetCapabilities
• DescribeCoverage
8.3 Client/Server Systems
•
GetCapabilities
•
GetCapabilities
– Describes the services provided by the WCS server – Indicates what coverages are available
– Indicates what coverages are available
•
DescribeCoverage
– Provides detailed – Provides detailed
information about a coverage
a coverage
•
GetCoverage
– Provides a coverage or a subset of a coverage – Provides a coverage or a subset of a coverage – Also specifies the
output format output format
8.3 Client/Server Systems
•
Web Feature Service (WFS)
•
Web Feature Service (WFS)
– Exchange of spatial objects with vector geometries – Requests are sent as a
– Requests are sent as a
HTTP request from a client to the WFS
– WFS offers the following operations
• GetCapabilities
• GetCapabilities
• DescribeFeatureType
• GetFeature
• GetFeature
• Transaction
• LockFeature
• LockFeature
8.3 Client/Server Systems
• GetCapabilities
• GetCapabilities
– Describes which WFS services are available – Gives the names of the available feature types – Gives the names of the available feature types
• DescribeFeatureType
– Describes the schema of a feature type – Describes the schema of a feature type
• GetFeature
<wfs:QuerytypeName="AX_Gebaeude">
<ogc:Filter>
• GetFeature
– Delivers an instance of a feature
typeName="AX_Gebaeude">
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>
weitereGebaeudefunktion
– Supports spatial and non-spatial selections
weitereGebaeudefunktion
</ogc:PropertyName>
<ogc:Literal>1170</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter></ogc:PropertyIsEqualTo>
</ogc:Filter>
8.3 Client/Server Systems
•
Web Map Service (WMS)
•
Web Map Service (WMS)
– Request/transmission of visual representations of spatial information (maps)
– Supports three functions – Supports three functions
• GetCapabilities
• GetMap
• GetMap
• GetFeatureInfo (optional)
•
GetCapabilities
•
GetCapabilities
– Provides metadata in XML format – General information about the
provider provider
– Available output formats
– Available maps and their layers – Available maps and their layers
8.3 Client/Server Systems
• GetMap
– Provides map – Several options
• Map layers
• Presentation of the layers
• Underlying coordinate system
• Map window
• Size of the map
• Output format
• GetFeatureInfo (optional)
• GetFeatureInfo (optional)
– Information about spatial objects on the map – Thematic attributes, usually in XML format – Thematic attributes, usually in XML format
8.4 Web-based Spatial Databases
• Collection of spatial data is particularly expensive
• Collection of spatial data is particularly expensive
• Spatial data is durable
• Geoservices are increasingly offered by the
• Geoservices are increasingly offered by the internet
• Typical keyword: "Internet GIS"
• Typical keyword: "Internet GIS"
– Internet GIS applications reach – Internet GIS applications reach
many users
– Requirement for internet clients are low
– Requirement for internet clients are low
– Standards enable simple exchanges
exchanges
8.4 Web-based Spatial Databases
• Application areas of internet-GIS
• Application areas of internet-GIS
– Simple information systems
• Standard internet environment with usual plug-ins
• Standard internet environment with usual plug-ins
• Presentation of interactive maps
• E.g. in the local area for publication of information to
• E.g. in the local area for publication of information to citizens and
visitors visitors
8.4 Web-based Spatial Databases
– Specialized georeferenced information systems – Specialized georeferenced information systems
• Additional services to the public or for a restricted group of people
people
• Dynamical systems needed, since data is processed during request
request
• E.g. address search, route planner
8.4 Web-based Spatial Databases
– Web-based GIS clients with access to key resources – Web-based GIS clients with access to key resources
• Offer advanced functionalities
• Analysis and intersection of spatial data
• Analysis and intersection of spatial data
• Export and update of attributes
• Used mostly in spatial data infrastructures, because user
• Used mostly in spatial data infrastructures, because user training is required
– Portals for spatial data – Portals for spatial data
• For providing and selling of large quantities of data
quantities of data
• Usually data is supplied by different spatial data servers
spatial data servers
8.4 Web-based Spatial Databases
• Internet GIS components
• Internet GIS components
8.4 Web-based Spatial Databases
• Technical options for internet GIS
setting server client remark
setting server client remark
statical websites
HTML documents, graphic objects
web browser proven feasible and easy solution
interactive websites
HTML documents, graphics objects, extensive embedded functionalities
web browser with script support
needed for larger amounts of and changing selections of data client HTML documents with web browser with with high demands on
client
application
HTML documents with
embedded software components, data files
web browser with plug-ins such as SVG, Java, special viewer
with high demands on
presentation, scalability, and interaction
dynamic dynamic server application, direct web browser independence from the client, dynamic
websites
dynamic server application, direct access to spatial data
web browser independence from the client, large amounts of data, and a variety of functions
spatial data data services which provide spatial client, for access to distributed spatial spatial data
infrastructure
data services which provide spatial data via pre-defined interfaces
spatial client, for example, viewer, web portal, desktop GIS
access to distributed spatial databases
terminal high performance server with special client full access to a desktop GIS via terminal
server
high performance server with terminal suite, GIS software, and
special client full access to a desktop GIS via internet
8.5 Summary
• GIS to collect, manage, analyze, display spatial data
• GIS to collect, manage, analyze, display spatial data
– Specialized information system
– Spatial database, spatial database system – Spatial database, spatial database system – Application software
• GIS hardware and software
– Special input devices – Special input devices – Digitizer
– Drum scanner – Drum scanner
– Classification of GIS software – Classification of GIS software
8.5 Summary
• Hybrid vs. integrated systems
• Hybrid vs. integrated systems
– File based architecture – Hybrid architecture – Hybrid architecture
– Layer-oriented architecture – Integrated architecture
– Integrated architecture
– Detour [spatial join with R-tree index]
• Client/server Systems
• Client/server Systems
– Various kinds of realising client/server systems – Various kinds of realising client/server systems – Typical functions of a GIS client
– Typical functions of a GIS-server – Typical functions of a GIS-server
8.5 Summary
– Web Coverage Service (WCS) – Web Coverage Service (WCS) – Web Feature Service (WFS) – Web Map Service (WMS) – Web Map Service (WMS)
• Web-based spatial databases Web-based spatial databases
– Internet GIS
– Application areas of internet GIS – Application areas of internet GIS – Internet GIS components
8.5 Summary
software system
architectures
hardware
architectures
internet
GIS client/
GIS
GIS client/
server