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-29 - Programming of Mobile GIS Applications

Mobile technology has significantly changed how we communicate and interact with the outside world. With the increasing use of mobile devices and advancement of information communication information (ICT) technologies, mobile GIS emerged to provide real-time data collection and update, and made GIS easier and convenient to access. This entry introduces the concept, types, and general architecture of mobile GIS, key technologies used for mobile GIS development, and examples of mobile GIS applications.

PD-31 - PySAL and Spatial Statistics Libraries

As spatial statistics are essential to the geographical inquiry, accessible and flexible software offering relevant functionalities is highly desired. Python Spatial Analysis Library (PySAL) represents an endeavor towards this end. It is an open-source python library and ecosystem hosting a wide array of spatial statistical and visualization methods. Since its first public release in 2010, PySAL has been applied to address various research questions, used as teaching materials for pedagogical purposes in regular classes and conference workshops serving a wide audience, and integrated into general GIS software such as ArcGIS and QGIS. This entry first gives an overview of the history and new development with PySAL. This is followed by a discussion of PySAL’s new hierarchical structure, and two different modes of accessing PySAL’s functionalities to perform various spatial statistical tasks, including exploratory spatial data analysis, spatial regression, and geovisualization. Next, a discussion is provided on how to find and utilize useful materials for studying and using spatial statistical functions from PySAL and how to get involved with the PySAL community as a user and prospective developer. The entry ends with a brief discussion of future development with PySAL.

PD-11 - Python for GIS

Figure 1. PySAL within QGIS Processing Toolbox: Hot-spot analysis of Homicide Rates in Southern US Counties.

 

Python is a popular language for geospatial programming and application development. This entry provides an overview of the different development modes that can be adopted for GIS programming with Python and discusses the history of Python adoption in the GIS community. The different layers of the geospatial development stack in Python are examined giving the reader an understanding of the breadth that Python offers to the GIS developer. Future developments and broader issues related to interoperability and programming ecosystems are identified.