All Topics

Computer programming and development are critical to the past, present, and future of geospatial systems and techniques. The increasing ubiquity and diversity of online, mobile, and desktop GIS platforms along with the inclusion of cyber-infrastructure components within the bounds of geographic information systems (e.g., supercomputing, wireless sensor networks) means that GIS researchers and professionals need to be fluent in multiple forms of programming, and the life-cycles of system and software development.

Topics in this Knowledge Area are listed thematically below. Existing topics are in regular font and linked directly to their original entries (published in 2006; these contain only Learning Objectives). Entries that have been updated and expanded are in bold. Forthcoming, future topics are italicized

 

Algorithm Design/Algorithmic Approaches Programming Languages & Libraries
Real-time GIS Programming and Geocomputation Python for GIS
Natural Language Processing in GIScience Applications PySAL and Spatial Statistics Libraries
Machine Learning Programming for GIS R for Geospatial Analysis & Mapping
Linear Programming and GIS Javascript for GIS
GIS and Parallel Programming SQL Languages for GIS
Object-oriented Programming in GIS Applications GDAL/OGR and IO Libraries
  Application Development
Development Tools Design, Development, Testing, and Deployment of GIS Applications
Visual Programming for GIS Applications Verification & Validation of GIS Applications
SpatialMPI: Message Passage Interface for GIS Applications Commercialization of GIS Applications
GIS APIs Licensing of GIS Applications
  Open Source Software Development
Platform Specific Programming  
GIS and GPU Programming  
Programming of Mobile GIS Applications  
Web GIS Programming  

 

C D G J L N O P R S V W
PD-15 - R for Geospatial Analysis and Mapping

R is a programming language as well as a computing environment to perform a wide variety of data analysis, statistics, and visualization. One of the reasons for the popularity of R is that it embraces open, transparent scholarship and reproducible research. It is possible to combine content and code in one document, so data, analysis, and graphs are tied together into one narrative, which can be shared with others to recreate analyses and reevaluate interpretations. Different from tools like ArcGIS or QGIS that are specifically built for spatial data, GIS functionality is just one of many things R offers. And while users of dedicated GIS tools typically interact with the software via a point-and-click graphical interface, R requires command-line scripting. Many R users today rely on RStudio, an integrated development environment (IDE) that facilitates the writing of R code and comes with a series of convenient features, like integrated help, data viewer, code completion, and syntax coloring. By using R Markdown, a particular flavor of the Markdown language, RStudio also makes it particularly easy to create documents that embed and execute R code snippets within a text and to render both, static documents (like PDF), as well as interactive html pages, a feature particularly useful for exploratory GIS work and mapping.

PD-20 - Real-time GIS Programming and Geocomputation

Streaming data generated continuously from sensor networks, mobile devices, social media platforms and other edge devices have posed significant challenges to existing computing platforms for achieving both high throughput and low latency data processing in addition to scalable computing. This entry introduces a real-time computing and programming platform for time-critical GIS (Geographic Information System) applications. In this platform, advanced streaming data processing software, such as Apache Kafka and Spark Streaming, are integrated to enable data analytics in real-time. This computing platform can also be extended to integrate GeoAI (Geospatial Artificial Intelligence) based machine learning models to leverage both historical and streaming data to achieve real-time prediction and intelligent geospatial analytics. Two real-time geospatial applications in terms of flood simulation and climate data visualization are introduced to demonstrate how real-time programming and computing can help tackle real-world problems with important societal impacts.