-
Notifications
You must be signed in to change notification settings - Fork 0
/
ncgis2017.html
699 lines (557 loc) · 16.3 KB
/
ncgis2017.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
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
<section>
<h4>33 years of</h4>
<h3>GRASS GIS</h3>
<h4>as an innovation platform</h4>
<p style="margin-top: 0.5em">
Vaclav (Vashek) Petras</p>
<p class="title-foot">
<a href="http://www.ncsu.edu/" title="North Carolina State University">NCSU</a>
<a href="http://geospatial.ncsu.edu/osgeorel/" title="NCSU GeoForAll Lab">GeoForAll Lab</a>
at
<a href="http://geospatial.ncsu.edu/" title="Center for Geospatial Analytics">Center for Geospatial Analytics</a>
<br>
</p>
<p>30th NCGIS, Feb 22-24, 2017, Raleigh NC</p>
</section>
<section data-years="1983">
<h3>The beginning</h3>
<ul>
<li>1980-1982: Ideas, predecessors and prototypes
<li>1983: First reference manual published
<li>
1985: Geographic Resources Analysis
Support System 1.0 released
</ul>
<img src="img/fort_hood_gis.png" class="stretch">
</section>
<section data-years="1983 1987">
<p class="small">
Let William Shatner do the introduction
</p>
<video data-autoplay controls loop class="stretch">
<source src="img/grassmovie_1min.mp4" type="video/mp4">
Your browser does not support the video tag.
</source>
</video>
<p class="small">
see full 15 min video at
<a href="https://av.tib.eu/media/12963">av.tib.eu/media/12963</a>
</p>
</section>
<section data-years="1983 2017">
<h3>GRASS GIS now</h3>
<img src="img/hexagons_python_editor.png" class="stretch">
</section>
<section data-years="1983 2017">
<h3>GRASS GIS</h3>
<ul>
<li>over 30 years of development
</ul>
<img src="img/modeler_skyview.png" class="stretch">
</section>
<section data-years="1983 2017">
<h3>GRASS GIS</h3>
<ul>
<li>vector, 2D/3D raster, imagery
<li>single integrated software
</ul>
<img src="img/count_and_modules.png" class="stretch">
</section>
<section data-years="1983 2017">
<h3>GRASS GIS</h3>
<ul>
<li>GUI, CLI, Python API, C API
<li>backend processing for QGIS, R, ..., OpenDroneMap
</ul>
<img src="img/hexagons_3d_white_outlier.png" class="stretch">
</section>
<section data-years="1983 2017">
<h3>GRASS GIS</h3>
<ul>
<li>free
<ul>
<li>use when you need, pay when you can
<li>zero license cost, no license servers
</ul>
<li>user-driven development
<ul>
<li>users directly interact with developers
</ul>
</ul>
<img src="img/modeler_skyview.png" class="stretch">
</section>
<section data-years="1983 2006 2017">
<h3>GRASS GIS</h3>
<ul>
<li><a href="http://osgeo.org/">OSGeo Foundation</a> project
</ul>
<img src="img/osgeo_project.svg" class="stretch" alt="OSGeo Project label">
</section>
<section>
<h2>Old Innovations Are Still Serving Now</h2>
<p class="small">
* The list is incomplete.
</section>
<section data-years="1993 2002 2008 2017">
<h3>Solar radiation modeling</h3>
<ul style="margin-bottom: 0em; padding-bottom: 0em">
<li>available since 1993
<!-- 2017: more than 17 years as tracked by Subversion-->
<li>renewed multiple times
<ul class="small">
<li>major changes in 1996, 1999, 2002, 2003, 2006, 2008
</ul>
<li style="margin-bottom: 0em; padding-bottom: 0em">parallelized version coming in 7.4
</ul>
<p class="small" style="margin-top: 0em !important; padding-top: 0em !important">
summer solstice dynamics on lidar DEM
</p>
<img class="stretch" src="img/summer_solstice_centennial.gif">
</section>
<section data-years="1989 2011">
<h3>Watershed and stream extraction</h3>
<ul>
<li>unique least cost path algorithm (1989)
<ul class="small">
<li>no depression filling needed
<li>first worldwide map of watersheds
</ul>
<li>updated for massive data sets (2011)
</ul>
<img src="img/basins.png" class="stretch">
</section>
<section data-years="2002 2016">
<h3>Vector topology cleaning</h3>
<ul>
<li>introduced in 2002
<li>continuous improvements
</ul>
<img src="img/topology_cleaning.png" class="stretch">
</section>
<section data-years="1992 2011">
<!--
Brown and Gerdes, 1992: SG3d - supporting information
Brown and Astley, 1995: NVIZ
(It evolved from the earlier GRASS program SG3d)
-->
<h3>3D view</h3>
<ul>
<li>visualization and analytical visualization
</ul>
<p class="small">
reviewing UAV fligh path
</p>
<img src="img/drone_3d.png" class="stretch">
</section>
<section data-years="1993 2017">
<h3>Multivariate splines</h3>
<ul>
<li>2D, 3D and 4D interpolation with tension
<li>simultaneous topographic analysis
<span class="small">(gradients, curvatures)</span>
<li>parallelized version coming in 7.4
<span class="small">(useful for lidar)</span> <!-- 2015-2016 -->
<li>fast spline interpolation as an addon
</ul>
<img src="img/interpolation_precip_vvolrst.png" class="stretch">
</section>
<section data-years="2005 2016">
<h3>64bit version</h3>
<ul>
<li>since 2005 on Linux, Mac, Unix
<li>can use more than 4GB RAM
<li>long established 64bit
<span class="small">(nobody even talks about it)</span>
<li>since 2016 on MS Windows
<li>also: large file support
<span class="small">even on 32bit MS Windows</span>
</ul>
<img src="img/hexagons_3d_white_outlier.png" class="stretch">
</section>
<section data-years="1983 2017">
<h3>Operating system support</h3>
<ul>
<li>Windows, Mac, Linux
<li>FreeBSD, IBM AIX, ...
<ul class="small">
<li>accessible source code
</ul>
<li>running on
<ul>
<li>High-Performance Computing clusters
<ul class="small">
<li>license does not limit number of cores or users
</ul>
<li>Raspberry Pi
</ul>
</ul>
<img src="img/count_and_modules.png" class="stretch">
<p class="small">
GUI on Ubuntu
</section>
<section>
<h2>Innovation with stability</h2>
</section>
<section data-years="2002 2017">
<h3>2002 code in 2017?</h3>
<ul>
<li>Command line code with raster algebra
<li>from the 1st edition of the "GRASS book"
<span class="small">(Neteler, Mitasova)</span>
<li>for version 5 pre-release, 2002
</ul>
<pre>
r.mapcalc depr.bin="if((elev - fill)< 0., 1, 0)"
</pre>
</section>
<section data-years="2002 2017">
<h3>Return of investment</h3>
version 5 pre-release and works as is in 7.2:
<pre>r.mapcalc depr.bin="if((elev - fill)< 0., 1, 0)"
</pre>
better:
<pre>r.mapcalc <em style="color: red;">"</em>depr<em style="color: red;">_</em>bin<em style="background-color: #FFDDDD;"> = </em>if((elev - fill) < 0., 1, 0)"
</pre>
</section>
<section data-years="2008 2014">
<h3>Replaced module</h3>
<ul>
<li>r.los replaced by r.viewshed in 7.0
<li>r.viewshed much faster than r.los
<li>existed together for some time in 6.x
<li>r.los still available in Addons
</ul>
<img src="img/r_viewshed.png" class="stretch">
</section>
<section>
<h2>GRASS GIS 7.0</h2>
</section>
<section data-years="2011">
<h3>Geomorphons</h3>
<ul>
<li>landform detection
<li>basic landforms extracted for the entire US
<li class="small">by Spatial Informatics Laboratory, University of Cincinnati
</ul>
<img src="img/us_geom_26642.jpg" class="stretch">
</section>
<section data-years="2012">
<h3>Image segmentation</h3>
<ul>
<li>created in 2012
<span class="small">during Google Summer of Code</span>
<li>greatly improved in 2013
<span class="small">at GRASS GIS Community Sprint</span>
<li>...
<li>4 other developers contributed in 2016
</ul>
<img src="img/i_segment.png" class="stretch">
</section>
<section data-years="2014">
<h3>Spatio-temporal Framework</h3>
<ul>
<li>space and time for 2D, 3D rasters and vectors
<li>animation, plot one place over time, query, aggregation,
conversion, statistics, gap filling
</ul>
<img src="img/temporal_precip_temp.png" class="stretch">
</section>
<section data-years="2003 2009 2014">
<h3>Vector network analysis</h3>
<ul>
<li>2003: shortest path, traveling salesman, ...
<li>2009: centrality measures, connected components, ...
<li>2014: turn cost in network nodes
</ul>
<img src="img/network.png" class="stretch">
</section>
<section>
<h2>More than just code</h2>
</section>
<section>
<h3>Link to research papers</h3>
<img src="img/module_references.png" class="stretch">
</section>
<section>
<h3>Public author & accessible code</h3>
<img src="img/module_author_source.png" class="stretch">
</section>
<section data-years="1991">
<h3>Discussions archived</h3>
<img src="img/mailing_list.png" class="stretch">
<p>
since 1991
</section>
<section>
<h3>Addons repository</h3>
<ul>
<li>user contributed modules, plugins, tools, functions
<li>almost 300
<li>distributed to users
<li>including compiled C and C++ for MS Windows
<li>automatically generated GUI
<span class="small">for Python and C/C++</span>
</ul>
<img src="img/addons.png" class="stretch">
</section>
<section>
<h3>User-reviewed implementation</h3>
<ul>
<li>user tested the module
<li>discovered error in equation in code
</ul>
<img src="img/bug_in_equation.png" class="stretch">
</section>
<section>
<h3>Reduced limits</h3>
<ul>
<li>"people limited by tools" issue
<li><em>GRASS GIS covers many fields</em>
<li>for example, no borders between remote sensing and vector network analysis
</ul>
<img src="img/modules_tab.png" class="stretch">
</section>
<section>
<h2>User Interfaces</h2>
</section>
<section data-years="1983 1990">
<h3>Command Line Interface</h3>
<pre>r.fill.dir input=elev output=fill direction=dir
</pre>
scripting with shell, Bash, cmd.exe, ...
<!-- letter-dot naming for modules introduced as standard in 4.0 (1990) -->
</section>
<section data-years="1990">
<h3>Graphical User Interface</h3>
<img src="img/grass_gui.png" class="stretch">
</section>
<!-- In the early 1990s X-windows user interface -->
<section>
<h3>Graphical Modeler</h3>
<img src="img/grass_gmodeler.png" class="stretch">
</section>
<section data-years="1990 2008 2012">
<h3>Python</h3>
<!--
Python conceived in the late 1980s
Implementation began in December 1989 by Guido van Rossum
Python: os.system mentioned in 1.4 doc, exec... documented, Dec 1996
GRASS GIS: Jul 20, 2008, r32179
-->
<ul>
<li>since Python existed (90s)
<li>API and use in GRASS GIS itself in 2008
<li>grass package part of GRASS GIS
<li>access to GRASS GIS C functions and objects
</ul>
<pre><code>import grass.script as gs
gs.run_command('r.fill.dir', input='elev',
output='fill', direction='dir')
</code></pre>
</section>
<section data-years="2016">
<h3>Python</h3>
<ul>
<li>since GRASS GIS 7.2 also integrated editor
</ul>
<img src="img/grass_pyedit.png" class="stretch">
</section>
<section>
<h3>R</h3>
<ul>
<li>rgrass7 package
<ul>
<li>not part of GRASS GIS but well established
</ul>
<li>also accessible through RQGIS
</ul>
<pre><code>execGRASS("r.fill.dir", input = "elev",
output = "fill", direction = "dir")
</code></pre>
</section>
<section>
<h3>Other languages</h3>
<ul>
<li>C
<ul>
<li>used by GRASS GIS itself
<li>works for C++
</ul>
<li>Perl
<li>PHP
<li>Java (JGrasstools, gvSIG)
<li>Web Processing Service (ZOO or PyWPS)
<li>Jupyter (methods, code and results together)
<li>Ruby (dedicated interface: grassgis gem)
</ul>
<pre><code>r.fill.dir input: 'elev', output: 'fill',
direction: 'dir'
</code></pre>
</section>
<section>
<h3>QGIS Processing Plugin</h3>
<ul>
<li>access to most of GRASS GIS modules
<li>unified interface to GDAL, SAGA, OTB, ...
<li>Python interface as well
</ul>
<img src="img/qgis_processing.png" class="stretch">
</section>
<section>
<h3>QGIS GRASS Plugin</h3>
<ul>
<li>access to almost all of GRASS GIS modules
<li>seamless integration with GRASS GIS native database
<li>includes also CLI (GRASS shell)
</ul>
<img src="img/qgis_grass.png" class="stretch">
</section>
<section data-years="1994 2017">
<h3>GRASS GIS in Cloud</h3>
<ul>
<li>GRASSLinks: A WWW interface to GIS (1994-1998)
<li>Secure Shell (since 1995)
<ul>
<li>client-server
<li>HPC clusters
</ul>
<li>...
<li>ESA PROBA-V Mission Exploitation Platform
<li>rollApp <span class="small">*<a href="https://www.rollapp.com/app/grassgis">rollApp.com</a></span>
<li>GRaaS (GRASS GIS as a Service) <span class="small">*<a href="https://www.mundialis.de/en/high-performance-computing">mundialis.de</a></span>
</ul>
</section>
<section data-years="1987">
<h3>Command Line</h3>
<img src="img/cmdline_grass_movide.png" class="stretch">
</section>
<section data-years="2017">
<h3>Command Line</h3>
<img src="img/cmdline_tangible.png" class="stretch">
</section>
<section data-years="2006 2014">
<!--
Mitasova et al. (2006). Real-time landscape model...
Petrasova et al. (2014). GIS-based environmental modeling...
-->
<h3>Tangible Landscape</h3>
<p>
a tangible user interface
<img src="img/tangible_landscape.jpg">
</section>
<section>
<h2>GRASS GIS 7.2 and ongoing work</h2>
</section>
<section data-years="2013">
<h3>Temporal Algebra</h3>
<ul>
<li>temporal buffers, overlays, relations, operators
<li>includes spatial 2D raster, 3D raster and vector algebra
<li>operates on time series
<span class="small">(e.g. of climate data)</span>
<li>prototype available in 2013, full version in 7.2
</ul>
<pre>D = if(start_date(A) < "2005-01-01", A & B)
</pre>
<img src="img/temporal_htc.png" class="stretch">
<p class="small">
Hydro-thermal coefficients for 2003 and 2007 for Germany
</p>
<p class="credit">
(image from Leppelt and Gebbert, 2015)
</p>
</section>
<section data-years="2014">
<h3>FUTURES</h3>
<p>
urban growth modeling
</p>
<img src="img/futures.jpg" class="stretch">
<p class="small">
projected development around Asheville, NC
<p class="credit">
(research at NC State University, Center for Geospatial Analytics)
</p>
</section>
<section data-years="2016">
<h3>Default Color Table</h3>
<p>
Perceptually uniform — viridis
<p class="small">
following Matplotlib
</p>
<img src="img/viridis_comparison.png" class="stretch">
<p class="small">
viridis and rainbow and their luminance
</section>
<section data-years="2016">
<h3>Itzï</h3>
<p>
flood simulation
</p>
<img src="img/itzi.png" class="stretch">
<p class="small">
June 2007 floods in the city of Hull, UK,
image from <a href="https://www.itzi.org/example/">itzi.org</a>
</section>
<section data-years="2017">
<h3>SLIC Superpixels</h3>
<img src="img/slic_request.png" alt="Would someone be interested in implementing SLIC image segmentation?" class="stretch">
<p class="small">
SLIC: Simple Linear Iterative Clustering
</section>
<section data-years="2017">
<h3>SLIC Superpixels</h3>
<img src="img/slic_post.png" class="stretch">
</section>
<section data-years="2017">
<h3>SLIC Superpixels</h3>
5 months later
<img src="img/slic_closed.png" class="stretch">
</section>
<section data-years="2017">
<h3>SLIC Superpixels</h3>
<img src="img/i_superpixels_slic_ndvi.png" class="stretch">
</section>
<section>
<h3>Resources</h3>
<ul>
<li>
Full list of
<a href="https://grass.osgeo.org/grass72/manuals/graphical_index.html">core modules</a>
and official
<a href="https://grass.osgeo.org/grass72/manuals/addons">addon modules</a>
<li>
<a href="http://ncsu-geoforall-lab.github.io/grass-intro-workshop/">Introduction to GRASS GIS</a>
<li>
<a href="https://github.com/wenzeslaus/python-grass-addon">How to write a Python GRASS GIS 7 addon</a>
<li>
<a href="http://ncsu-geoforall-lab.github.io/grass-temporal-workshop/">
Spatio-temporal data handling and visualization</a>
<li>
<a href="https://grasswiki.osgeo.org/wiki/Workshop_on_urban_growth_modeling_with_FUTURES">
Urban growth modeling with FUTURES</a>
<li>
Books (co-)authored at NC State:
<ul>
<li>Open Source GIS: A GRASS GIS Approach
<li>Tangible Modeling with Open Source GIS (pre-print available)
<li>GIS-based Analysis of Coastal Lidar Time-Series
</ul>
</ul>
</section>
<section>
<img src="img/grasslogo_variant_nobg.png" alt="GRASS GIS logo" style="height: 300px;">
<p>
Get your lifelong license now!
<p>
<a href="https://grass.osgeo.org">grass.osgeo.org</a>
<p class="small">
Slides
<br>
<a href="https://goo.gl/LVZY8t">goo.gl/LVZY8t</a>
<br>
GRASS GIS Raleigh meetups
<br>
<a href="https://goo.gl/hXbzE4">goo.gl/hXbzE4</a>
</section>