forked from karlbenedict/GEOG485-585
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lecture05_Mod03_a_01_a.md.html
439 lines (439 loc) · 20.6 KB
/
lecture05_Mod03_a_01_a.md.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="Karl Benedict" />
<title>Geography 485L/585L - Internet Mapping</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="page.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">Geography 485L/585L - Internet Mapping</h1>
<p class="author">Karl Benedict</p>
<p class="date">Spring 2018</p>
</header>
<!---------------------------------------------------------------------------->
<!-- Week 05 ----------------------------------------------------------------->
<!-- Lecture 03 a 01 a ------------------------------------------------------->
<!-- GIS and Services Oriented Architectures---------------------------------->
<!---------------------------------------------------------------------------->
<!---------------------------------------------------------------------------->
<h1 id="week-5---module-3---gis-and-services-oriented-architectures">Week 5 - Module 3 - GIS and Services Oriented Architectures</h1>
<h3 id="overview" class="module03a01a">Overview</h3>
<ul>
<li>Geographic Information Systems
<ul>
<li>Data Types</li>
<li>Coordinate Systems</li>
</ul></li>
<li>Services Oriented Architectures
<ul>
<li>Historic Context</li>
<li>Current Model - Network Computing</li>
<li>Components</li>
<li>Interoperability Standards</li>
</ul></li>
</ul>
<h2 id="geographic-information-systems" class="module03a01a">Geographic Information Systems</h2>
<h3 id="data-types---vector" class="module03a01a">Data Types - Vector</h3>
<ul>
<li>Vector data represent phenomena that are associated with specific bounded locations, typically represented by:
<ul>
<li>Points</li>
<li>Lines</li>
<li>Polygons</li>
</ul></li>
<li>Vector data include:
<ul>
<li>The geometries that describe the area being referenced, and</li>
<li>Attributes associated with that area</li>
</ul></li>
</ul>
<p>For example, a census vector data product might include the geometries that define census tracts and attributes associated with each geometry: population, income, etc.</p>
<h3 id="data-types---raster" class="module03a01a">Data Types - Raster</h3>
<ul>
<li><p>Raster data are frequently used to represent values for phenomena that vary continuously across space (e.g. elevation, concentration of air pollutants, depth to ground water, etc. )</p></li>
<li><p>These values are encoded over a regular grid of observation locations with a specified grid spacing - often referred to as the spatial resolution of the dataset (i.e. 10m resolution for a standard USGS Digital Elevation Model product)</p></li>
<li><p>Often parts of data collections that are repeated (i.e. remote sensing data products)</p></li>
</ul>
<h3 id="accessing-and-processing-raster-and-vector-data">Accessing and Processing Raster and Vector Data</h3>
<ul>
<li>ArcGIS - ArcCatalog</li>
<li>QGIS - Dataset properties available through the “Metadata” tab</li>
<li>Through metadata files available from the provider web site or embedded in the downloaded file</li>
</ul>
<h3 id="accessing-and-processing-raster-and-vector-data---programmatically" class="module03a01a">Accessing and Processing Raster and Vector Data - Programmatically</h3>
<ul>
<li>Two geospatial libraries and their related utility programs provide information about and tools for modifying vector and raster data sets</li>
</ul>
<dl>
<dt>OGR</dt>
<dd>vector data access and information
</dd>
<dt>GDAL</dt>
<dd>raster data access and information
</dd>
</dl>
<p>These libraries are the data access and processing foundation for a growing number of open source and commercial mapping systems</p>
<p>Information and documentation: <a href="http://gdal.org/">GDAL Home Page</a> | <a href="http://www.gdal.org/ogr/">OGR Home Page</a></p>
<h3 id="coordinate-systemsprojections" class="module03a01a">Coordinate Systems/Projections</h3>
<ul>
<li>To convert locations from a 3-dimensional oblate spherical coordinate system (such as is commonly used to represent the surface of the earth) to a 2-dimensional representation in a map, a coordinate transformation must be performed.</li>
<li>There are a limitless number of potential coordinate transformations possible, and a large number have been named and defined that meet specific cartographic or other requirements</li>
</ul>
<h3 id="epsg-codes" class="module03a01a">EPSG Codes</h3>
<ul>
<li><p>A catalog of numeric codes and associated coordinate transformation parameters is maintained by the International Association of Oil & Gas Producers (OGP) - the successor scientific organization to the European Petroleum Survey Group (EPSG)</p></li>
<li><p>These numeric codes are used by many desktop and online mapping systems to document and represent the coordinate systems of available data and services</p></li>
<li><p>Links to an online version of the registry and downloadable databases of the registry are available from: <a href="http://www.epsg.org">http://www.epsg.org/Geodetic.html</a>.</p></li>
</ul>
<h3 id="projection-parameters" class="module03a01a">Projection Parameters</h3>
<p>The parameters that define a map projection may be looked up in a number of online locations:</p>
<dl>
<dt>EPSG registry</dt>
<dd>Helpful if you already know the EPSG code of the projection you are looking for - <a href="http://www.epsg-registry.org/" class="uri">http://www.epsg-registry.org/</a>
</dd>
<dt>GeoTIFF Projection List</dt>
<dd>Helpful if you know the name of one of the broadly used projections - uneven performance of links - <a href="http://web.archive.org/web/20160802172057/http://www.remotesensing.org/geotiff/proj_list/">http://www.remotesensing.org/geotiff/proj_list/ [Archived Version]</a>
</dd>
<dt>SpatialReference.org</dt>
<dd>Decent search tool, includes non-EPSG as well as EPSG projection information, multiple descriptions of projection parameters - <a href="http://spatialreference.org/" class="uri">http://spatialreference.org/</a>
</dd>
</dl>
<h2 id="services-oriented-architectures" class="module03a01a">Services Oriented Architectures</h2>
<h3 id="where-have-we-come-from---eniac-1946" class="module03a01a oneUp">Where have we come from - ENIAC (1946)</h3>
<figure>
<img src="./images/Eniac.jpg" alt="ENIAC Computer" class="oneUp" /><figcaption>ENIAC Computer</figcaption>
</figure>
<ul>
<li>First general purpose electronic computer</li>
<li>Programmable, but could not store programs</li>
</ul>
<h3 id="where-have-we-come-from---early-client-server-computing-1960s" class="module03a01a threeUp">Where have we come from - Early Client-Server Computing (1960s)</h3>
<figure>
<img src="./images/IBM_704_mainframe.jpg" alt="IBM 704 Mainframe Computer" class="threeUp" /><figcaption>IBM 704 Mainframe Computer</figcaption>
</figure>
<figure>
<img src="./images/Model33_ASR_Teletype.jpg" alt="Model 33 ASR Teletype" class="threeUp" /><figcaption>Model 33 ASR Teletype</figcaption>
</figure>
<figure>
<img src="./images/279px-Televideo925Terminal.jpg" alt="TeleVideo 925 ASCII Terminal" class="threeUp" /><figcaption>TeleVideo 925 ASCII Terminal</figcaption>
</figure>
<ul>
<li>Mainframe computers to which client terminals connected over a local network</li>
<li>Computing performed by server, client purely a display device</li>
</ul>
<h3 id="where-have-we-come-from---personal-computers-1970s" class="module03a01a twoUp">Where have we come from - Personal Computers (1970s)</h3>
<figure>
<img src="./images/ibm_pc_5150.jpg" alt="IBM 5150 Personal Computer" class="twoUp" /><figcaption>IBM 5150 Personal Computer</figcaption>
</figure>
<figure>
<img src="./images/Apple_I_Computer.jpg" alt="Apple I Personal Computer" class="twoUp" /><figcaption>Apple I Personal Computer</figcaption>
</figure>
<ul>
<li>Desktop computers capable of running a variety of operating systems and applications</li>
<li>In some environments can be interconnected to a central local server</li>
</ul>
<h3 id="now---network-computing" class="module03a01a oneUp">Now - Network computing</h3>
<figure>
<img src="./images/hosts.png" alt="World Internet Hosts 1/94-1/13. Image courtesy IWS - http://www.isc.org/services/survey/" class="oneUP" /><figcaption>World Internet Hosts 1/94-1/13. Image courtesy <a href="http://www.isc.org/services/survey/">IWS - http://www.isc.org/services/survey/</a></figcaption>
</figure>
<h3 id="network-computing-timeline" class="module03a01a">Network Computing Timeline</h3>
<ul>
<li>Predecessor to the Internet - ARPANET (1969). Interconnection between UCLA and SRI (Menlo Park)</li>
<li>Adoption of TCP/IP as next generation protocol for ARPANET (1983)</li>
<li>NSF commissions construction of NSFNET, also based upon TCP/IP (1983)</li>
<li>NSFNET opened to commercial connections (1988). Led to interconnection of multiple, previously separate networks into an “Internet”</li>
<li>Growth of internet users has expanded rapidly over the past decade</li>
</ul>
<h3 id="in-a-phrase" class="module03a01a">In a Phrase …</h3>
<p>The current networking computing model consists of <em>Components Interacting</em> with Each Other</p>
<h3 id="so---we-need-to-answer-the-following-questions" class="module03a01a">So - We Need to Answer the Following Questions</h3>
<p>What are components?</p>
<p>What does it mean to interact?</p>
<h3 id="the-big-picture---services-oriented-architectures" class="module03a01a floatLeft">The Big Picture - Services Oriented Architectures</h3>
<figure>
<img src="./images/SOAillustration.png" alt="SOA Illustration" /><figcaption>SOA Illustration</figcaption>
</figure>
<ul>
<li>Services Oriented Architecture (SOA) for Geospatial Data and Processing
<ul>
<li>Data, Processing & Client Tiers</li>
</ul></li>
<li>Open Geospatial Consortium Interoperability Standards
<ul>
<li>WMS, WFS, WCS</li>
</ul></li>
<li>Geospatial Metadata Standards
<ul>
<li>ISO 19115, FGDC</li>
</ul></li>
<li>Internet Standards
<ul>
<li>Web: HTML, CSS, JavaScript, XML</li>
<li>SOAP - Simple Object Access Protocol</li>
<li>REST - Representation State Transformation</li>
</ul></li>
</ul>
<h2 id="the-pieces---components" class="module03a01a">The Pieces - Components</h2>
<h3 id="key-components---data" class="module03a01a">Key Components - Data</h3>
<p>Database systems</p>
<ul>
<li>Optimized for storing massive quantities of tabular data</li>
<li>May be spatially enabled to support the storage of geometries (points, lines, polygons) in addition to related attribute data</li>
<li>Standard language (Structured Query Language [SQL]) for interacting with many databases</li>
<li>Broad support for accessing the contents of databases from many other applications and programming languages, for example:
<ul>
<li>Spreadsheets</li>
<li>Statistical Software</li>
<li>Geographic Information Systems (GIS)</li>
</ul></li>
</ul>
<h3 id="key-components---data-1" class="module03a01a">Key Components - Data</h3>
<p>File-based data</p>
<ul>
<li>Often stored on the file system</li>
<li>Sometimes difficult represent data within a database structure (i.e. binary data)</li>
<li>May be in a wide variety of formats
<ul>
<li>XML</li>
<li>ASCII Text (e.g. CSV, tab-delimited)</li>
<li>Binary files</li>
<li>Excel Spreadsheets</li>
<li>Word Processing Documents</li>
<li>Geospatial data (e.g. imagery)</li>
</ul></li>
<li>Remotely Accessible Data
<ul>
<li>Some data may be provided through reference to an external network resource (i.e. a web address, or other identifier) or service</li>
</ul></li>
</ul>
<h3 id="key-components---processing-services" class="module03a01a">Key Components - Processing Services</h3>
<ul>
<li>Perform modification of source data to generate a new data product</li>
<li><p>May be “chained” together to create a processing “workflow”. Output from one processing service may be used as the input to another</p></li>
<li>May be simple OGC services; or complex data processing, analysis, or visualization services. Examples include
<ul>
<li>Extraction of a subset of a large data set based upon provided search criteria</li>
<li>Generation of a map from a collection of data</li>
<li>Fusion of two data products into a single derived product (e.g. vegetation indices calculated from multiple remote sensing images)</li>
<li>Calculation of statistical information for an input product, and delivery of the statistical summary</li>
</ul></li>
</ul>
<h3 id="key-components---clients" class="module03a01a">Key Components - Clients</h3>
<ul>
<li>Any system that accesses the services provided by the system may be considered a “client”</li>
<li>That system may be manually operated by a human user, or triggered automatically by software</li>
<li>Human operated clients include
<ul>
<li>Web-based applications</li>
<li>Desktop applications such as Geographic Information Systems and Statistical Analysis tools</li>
</ul></li>
<li>Machine clients include
<ul>
<li>Data processing services that translate requests to them into requests for other system services</li>
<li>Regularly scheduled requests that are automatically triggered by external computer systems.</li>
</ul></li>
</ul>
<h2 id="the-glue---interoperability-standards-service-interfaces" class="module03a01a">The Glue - Interoperability Standards / Service Interfaces</h2>
<h2 id="open-geospatial-consortium-interoperability-standards" class="module03a01a">Open Geospatial Consortium Interoperability Standards</h2>
<h3 id="open-geospatial-consortium-ogc-standards" class="module03a01a">Open Geospatial Consortium (OGC) Standards</h3>
<ul>
<li>Two Classes of Standards Considered Here
<ul>
<li>Geospatial Product Access Standards</li>
<li>Geospatial Data and Representation Standards</li>
</ul></li>
<li>Product Access Standards
<ul>
<li>Web Map Services (WMS)</li>
<li>Web Feature Services (WFS)</li>
<li>Web Coverage Services (WCS)</li>
</ul></li>
<li>Data and Representation Standards
<ul>
<li>Geography Markup Language (GML)</li>
<li>KML (formerly known as Keyhole Markup Language)</li>
</ul></li>
</ul>
<h3 id="comparison-of-ogc-service-models" class="module03a01a center">Comparison of OGC Service Models</h3>
<figure>
<img src="./images/ogcComparison.png" alt="Comparison of OGC Service Models" /><figcaption>Comparison of OGC Service Models</figcaption>
</figure>
<h3 id="ogc-web-map-services-wms" class="module03a01a oneUp">OGC Web Map Services (WMS)</h3>
<figure>
<img src="./images/wms_landsat_BernCo.jpeg" alt="WMS request result for Bernalillo County Landsat Mosaic from NM RGIS link" /><figcaption>WMS request result for Bernalillo County Landsat Mosaic from NM RGIS <a href="http://tinyurl.com/nue486n">link</a></figcaption>
</figure>
<div class="codeTable short">
<pre class="numberlines"><code>http://gstore.unm.edu/apps/rgis/datasets/
b030ab7b-86e3-4c30-91c0-f427303d5c77/
services/ogc/wms?
VERSION=1.1.1&&
SERVICE=WMS&
REQUEST=GetMap&
SRS=EPSG:4326&
FORMAT=image/jpeg&
STYLES=&
LAYERS=bernalillo_tm2011&
TRANSPARENT=TRUE&
WIDTH=521&
HEIGHT=200&
bbox=-107.207,34.8404,-106.143,35.2487</code></pre>
</div>
<h3 id="ogc-web-feature-services-wms-characteristics" class="module03a01a">OGC Web Feature Services (WMS) Characteristics</h3>
<ul>
<li>HTTP GET (required), HTTP POST (optional)</li>
<li>Requests:
<ul>
<li><code>GetCapabilities</code></li>
<li><code>GetMap</code></li>
<li><code>GetFeatureInfo</code></li>
</ul></li>
<li>Returns
<ul>
<li>Mapped data</li>
<li>XML Capabilities Document, Feature Attributes</li>
</ul></li>
<li>Includes support for time-based requests</li>
</ul>
<h3 id="ogc-web-feature-services-wfs-characteristics" class="module03a01a">OGC Web Feature Services (WFS) Characteristics</h3>
<ul>
<li>Either HTTP GET or POST required</li>
<li>Requests
<ul>
<li><code>GetCapabilities</code></li>
<li><code>DescribeFeatureType</code></li>
<li><code>GetFeature/GetFeatureWithLock</code></li>
<li><code>GetGmlObject</code></li>
<li><code>LockFeature</code></li>
<li><code>Transaction</code></li>
</ul></li>
<li>Returns
<ul>
<li>XML (GML)</li>
<li>Capabilities</li>
<li>Feature Data</li>
</ul></li>
</ul>
<h3 id="ogc-web-coverage-services-wcs-characteristics" class="module03a01a">OGC Web Coverage Services (WCS) Characteristics</h3>
<ul>
<li>Either HTTP GET or POST required</li>
<li>Requests
<ul>
<li><code>GetCapabilities</code></li>
<li><code>DescribeCoverage</code></li>
<li><code>GetCoverage</code></li>
</ul></li>
<li>Returns
<ul>
<li>Geospatial data for coverage</li>
<li>XML Capabilities</li>
</ul></li>
<li>Includes support for time-based requests</li>
</ul>
<h3 id="ogc-geography-markup-language-gml" class="module03a01a">OGC Geography Markup Language (GML)</h3>
<ul>
<li>GML is an XML grammar for representing geospatial features and their associated attributes</li>
<li>In its generic form it can encode points, lines, and polygons and their associated attributes</li>
<li>As an XML schema GML was designed to be extensible by communities of practice for consistent encoding of geographic data more richly than allowed by the generic default model</li>
<li>GML documents representing large complex geometries can be quite large - therefore slow to transfer over the Internet</li>
</ul>
<h3 id="ogc-kml" class="module03a01a">OGC KML</h3>
<ul>
<li>An XML specification that supports the encoding of representation and embedding of geospatial data for use in geospatial viewers</li>
<li>Began as the underlying representation language of Google Earth (originally developed by Keyhole for their virtual Earth viewer)</li>
<li>Adopted as an OGC standard in 2008</li>
<li>Supports data linkage through
<ul>
<li>Embedding</li>
<li>Reference through external URLs - with WMS specifically supported through <em>parameterization</em></li>
</ul></li>
<li>Includes support for the representation of time in relation to data objects</li>
</ul>
<h3 id="implementation-of-the-ogc-standards" class="module03a01a twoColumn">Implementation of the OGC Standards</h3>
<ul>
<li>WMS
<ul>
<li>1.3.0 - 389 implementations</li>
<li>1.1.1 - 558</li>
<li>1.1 - 263</li>
<li>1.0 - 301</li>
</ul></li>
<li>WFS
<ul>
<li>2.0 - 78</li>
<li>2.0 transactional - 17</li>
<li>1.1.0 - 310</li>
<li>1.1.0 transactional - 83</li>
<li>1.0.0 - 363</li>
<li>1.0.0 transactional - 131</li>
</ul></li>
<li>WCS
<ul>
<li>2.0 - Core - 7</li>
<li>1.1.2 - 27</li>
<li>1.1.1 Corregendum 1- 67</li>
<li>1.1.0 - 30</li>
<li>1.0.0 Corregendum - 227</li>
</ul></li>
<li>KML
<ul>
<li>2.2.0 - 117</li>
<li>2.2 Reference (Best Practice) - 11</li>
<li>2.1 Reference (Best Practice) - 82</li>
</ul></li>
<li>GML
<ul>
<li>3.3 - 6</li>
<li>3.2.1 - 157</li>
<li>3.1.1 - 161</li>
<li>3.0 - 156</li>
<li>2.1.2 - 179</li>
<li>2.1.1 - 127</li>
<li>2.0 - 82</li>
<li>1.0 - 20</li>
</ul></li>
</ul>
<p>Implementation information based upon <a href="http://www.opengeospatial.org/resource/products/stats">OGC Implementation Statistics</a> - Accessed 2/2017</p>
<h3 id="ogc-summary" class="module03a01a">OGC Summary</h3>
<p>The OGC web service specifications support key geospatial data access requirements</p>
<dl>
<dt>WMS</dt>
<dd>visualization of geospatial data through simple web requests
</dd>
<dt>WFS</dt>
<dd>delivery of geospatial data (typically points, lines, and polygons) in a format that is usable in GIS and other applications
</dd>
<dt>WCS</dt>
<dd>delivery of geospatial data (typically, but not limited to, raster data) usable in other applications
</dd>
</dl>
<h3 id="ogc-summary-1" class="module03a01a">OGC Summary</h3>
<p>The OGC data and representation standards support data exchange and higher level representation</p>
<dl>
<dt>GML</dt>
<dd>XML schema for the representation of features and associated attributes. It may be extended for use by specific communities of users (i.e. ecological data models)
</dd>
<dt>KML</dt>
<dd>XML schema that supports the combination of embedded data and external data into a complete representation model that may be used by client applications to present the data through a user interface (e.g. Google Earth, WorldWind)
</dd>
</dl>
<hr />
<section>
<div class="license">
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />This work by <span data-xmlns:cc="http://creativecommons.org/ns#" data-property="cc:attributionName">Karl Benedict</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
</div>
</section>
</body>
</html>