• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Article
Statistical testing of segment homogeneity in classification of piecewise-regular objects

Savchenko A., Belova N. S.

International Journal of Applied Mathematics and Computer Science. 2015. Vol. 25. No. 4. P. 915-925.

Article
Reconstruction of a word from a finite set of its subwords under the unit shift hypothesis. I. Reconstruction without for bidden words1

Smetanin Y., Ulyanov M.

Cybernetics and Systems Analysis. 2015. Vol. 50. No. 1. P. 148-156.

Article
VTMine Framework as Applied to Process Mining Modeling

Sergey Andreevich Shershakov.

International Journal of Computer and Communication Engineering. 2015. Vol. 4. No. 3. P. 166-179.

Geoapplications Development

2020/2021
Academic Year
ENG
Instruction in English
5
ECTS credits
Type:
Elective course
When:
3 year, 1, 2 module

Course Syllabus

Abstract

This course gives programming experience with geospatial data as well as related core theory and algo-rithms. We will use Java and JavaScript to work with diverse libraries, spatial databases and servers to store, process, visualize and exchange geodata. The course is beneficial for any modern software developer due to explosive growth in popularity of geo-aware applications and services. The knowledge from this course is useful in a broad range of industries which operate with geodata: environmental monitoring, transportation, urban planning, agriculture, insurance, real estate sector, and many other practically important fields. The course website rgeo.wikience.org is an integral part of this program. On the course website, the course program, topics, literature, course rules, homework, and any other course materials can be specified and supplemented. Please, refer to the course website for up-to-date information. In case of discrepancy with the information in the LMS, preference should be given to the course website.
Learning Objectives

Learning Objectives

  • Have strong understanding of geospatial concepts and properties unique to geospatial data
  • Be able to programmatically access, transfer, process and visualize geospatial data
  • Acquire skills and experience in modern technologies related to geoapplication development
Expected Learning Outcomes

Expected Learning Outcomes

  • Have strong understanding of geospatial concepts and properties unique to geospatial data
  • Know the differences between main spatial coordinate systems and their peculiarities
  • Know the structure of the most common file formats used to store geospatial data
  • Be able to programmatically access, transfer, process and visualize geospatial data
  • Programmatically access and issue queries to most widely used servers used to store, process and disseminate geospatial data
  • Visualize geospatial data on the Web using a Web mapping service
  • Design custom network protocol for geospatial data exchange
  • Basic API features of Web mapping services
  • Know modern geopositioning techniques
  • Be aware of modern geospatial data management trends
Course Contents

Course Contents

  • Coordinates
    Goals of 2D maps creation. Map projection chain (Earth, geoid, spheroid, developable surface, map projection). Datum and its components. Coordinate Reference System (CRS) and its components. Why different coordinate reference systems exist. Spherical orthogonal geographic coordinate system (lati-tude/longitude), coordinate representation and its peculiarities (distance calculations, convergence at poles, dateline crossing issues). Floating point arithmetic peculiarities with geographical coordinates.
  • Introduction to Spatial Data Management
    Course goals, organization, and assessment types. The spatial data and their fundamental differences from other types of data. Two main types of geospatial data (raster and vector). Examples of geospatial data. The notion of georeferencing.
  • Spatial raster data formats
    Agenda: open raster data in different file formats, read complete raster from a file, subset raster data by dimensions, subsetting types. Geospatial raster data types (swaths, scenes, gridded data, global regular latitude-longitude grids, Gaussian and other types of grids). Raster metadata and their examples. Cell size of a geospatial raster. List of existing geospatial raster file formats with focus on GeoTIFF, BigTIFF, GeoPackage, HDF, NetCDF, Grib, XDR. Software libraries used for spatial raster data input/output (GDAL, NetCDF, GeoTools, Apache SIS). Common Data Models (GDAL, Unidata CDM, ISO 19*** Data Model) and their archi-tectures. Differences between data models and their storage schemes.
  • Processing spatial raster data
    Classes of raster operations. Map (raster) algebra: basic local, focal, zonal and global operations. Inter-polation and its basic types. Resampling/regridding. Tiling and multilevel pyramid. Reclassification. Binning. Masking. Window. Correlation. Mosaicking. Reprojection. Affine transformation. Filtering. Radiometric and geometric enhancement. Edge sharpening and detection. Change detection. Image fusion, segmentation and classification. Raster data processing tools: R, ImageMagic, GDAL tools, Orfeo Toolbox, ImageJ.
  • Spatial vector data formats
    Agenda: open vector data in different file formats, iterate over features, filter features. List of existing geospatial vector file formats with focus on SHP, WKT, KML, KMZ, GML, and GeoJSON. Well Known Text (WKT) features and their syntax. Geospatial vector data structure (features, geometries, attributes, coordinate reference system). OpenStreetMap (OSM) data. Checking vector metadata with GDAL OGR. Reading programmatically vector data from a file using GeoTools. Java Topology Suite (JTS). Other software libraries used for geospatial vector data input/output (Geotoolkit, Apache SIS).
  • Processing spatial vector data
    Core geometry types according to OGC/ISO standards. Implementation of standards by OpenGIS and Java Topology Suite (JTS). JTS TestBuilder. WKT Specification for geometries. Geometry validation. Basic types of operations on vector data. Set-oriented operations (union, intersect, difference). Repro-jection. Buffering. Affine transformations. Line simplification. Using Java Topology Suite (JTS) to perform operations on geometries. Topology. Topological properties. Deviations from general topology (border, exterior and interior definitions). Egenhofer matrix model. Topological relationships (contains, covers, intersects, touches, crosses, etc.). Peculiarities of topological relationships. Indexing vector data and spatial data structures (bounding boxes, R-Tree, GeoHash).
  • Spatial vector data management systems
    Spatial queries: motivating examples (demonstrate diversity and challenges in storing and efficient sub-setting of geospatial vector data). Spatial database management system (SDBMS). Popular SDBMS: PostgreSQL and PostGIS, h2 and h2gis, MongoDB spatial extensions, SQLite and SpatiaLite. Mobile GIS data collectors. Spatial SQL (SQL extension to deal with spatial vector data), basic spatial SQL statements, spa-tial data types, objects, and functions. Java DataBase Connectivity (JDBC). Programmatic access to geospatial vector data stored in databases using Java.
  • Spatial raster data management systems
    Challenges in storing spatial raster data. Main approaches to store spatial raster data (file-based, BLOB-based). Raster data dissemination: THREDDS, GeoServer, MapServer, Mapnik, NextGIS, ArcGIS Im-age Server. Spatial queries to access spatial raster data (coverage requests). Raster data processing: PostGIS in-db and out-db rasters, RasDaMan, SciDB. SQL raster exten-sions, SQL raster data processing queries.
  • Visualizing geospatial data in 3D
    Virtual globes: NASA WorldWind, Google Earth, Cesium. Capabilities of a virtual globe not present in 2D maps. Differences between OpenGL, JOGL (Java OpenGL), WebGL. Generic architecture for visualizing geospatial data. Experience in designing and implementing Climate Wikience. Analysis of several existing 3D geoapplications. Brief Java Swing revision. Sample Java geoapplication to visualize spatial data in 3D using NASA WorldWind and Cesium.
  • Frameworks for rapid development of a geoapplication back-end
    An interactive mapping service: goals and problems. Multi-user service problems. Sockets, networking fallacies. Blocking and non-blocking sockets, java.nio. Difficulties of handling multiple connections using blocking and non-blocking sockets. Example of Java application using plain sockets. Architecture of Netty and Apache Mina. Google Protocol Buffers, Apache Thrift and Avro. Designing custom mul-tiuser server.
  • Network protocols to exchange spatial data
    Definitions: network protocol, messages, event-driven architecture. Key elements of a typical protocol for spatial data access. OSI model. Protocols: WCS (Web Coverage Service), WFS (Web Feature Ser-vice), WPS (Web Processing Service), WMS (Web Mapping Service), TMS (Tile Map Service), OPeNDAP, REST API, custom protocols. Designing a custom network protocol for geospatial data exchange.
  • Spatial data on the Web
    Digital maps: Google Maps, Yandex Maps, OpenStreetMap. Sources of their data. Sample Ja-vaScript geoapplication to visualize spatial data in Google Maps and Yandex Maps. Leaflet, Mapbox, OpenLayers, CartoDB, ArcGIS Online, TileMill, CartoCSS. Capabilities, API survey. Publishing geospatial data on the Web. Ways of eye-candy presentation of spatial data. Sample web service delivering spatial data.
  • Overview of spatial networks and positioning systems
    Types of signal-based positioning. Overview of WiFi and Cellular Positioning. Indoor navigation and iBeacon. Overview of Global Positioning System (GPS) and GLONASS, their applications. GPS or-bital, ground and user segments.
  • Recent trends in spatial data management and geoapplications development
    Spatial data mining. Unmanned Aerial Vehicles (UAV) and geo-aware software. Reconstructing urban environment using community photography. Augmented reality. Distributed systems: ChronosServer, Hadoop GeoMesa, GeoTrellis. Summary of the course.
Assessment Elements

Assessment Elements

  • non-blocking LP (Lecture presence)
  • non-blocking PP (Work during practical lessons)
  • non-blocking CW (Control work)
  • non-blocking HW1 (Home assignment 1)
  • non-blocking HW2 (Home assignment 2)
  • non-blocking EX (Exam)
Interim Assessment

Interim Assessment

  • Interim assessment (2 module)
    0.1 * CW (Control work) + 0.2 * EX (Exam) + 0.3 * HW1 (Home assignment 1) + 0.15 * HW2 (Home assignment 2) + 0.2 * LP (Lecture presence) + 0.05 * PP (Work during practical lessons)
Bibliography

Bibliography

Recommended Core Bibliography

  • An introduction to geographical information systems, Heywood, I., 2011

Recommended Additional Bibliography

  • Konecny, G. (2014). Geoinformation : Remote Sensing, Photogrammetry and Geographic Information Systems, Second Edition (Vol. Second edition). Boca Raton, FL: CRC Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1631976