The landscape of geospatial software, listed by categories.

GIS Software Hierarchy A high-level summary of the geospatial software ecosystem. The "800-pound gorillas" including GDAL, PROJ and GEOS are the foundation of nearly all other geospatial software; CGAL and JTS are the reference implementations for many of the algorithms used by GEOS.

Geospatial Libraries

  1. Data access:
    • GDAL, Geospatial Data Abstraction Library, raster/vector format translation;
  2. Computational geometry:
    • GEOS, C/C++ port of JTS and CGAL;
    • GeoTools, Java geospatial toolkit.
      • Java Topology Suite (JTS), Java library for geometry processing;
  3. Coordinate Reference System:
    • MetaCRS, coordinate reference system transformations.
      • PROJ.4, conversions between geographic coordinates (longitude-latitude) and map projection coordinates (cartesian), also supports datum transformation; (Parameter List; Executable Documentation)

CGAL (C++ Geometric Algorithms Library) is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems, computer aided design, molecular biology, medical imaging, computer graphics, and robotics.

GeoTools is an open source (LGPL) Java code library which provides standards-compliant methods for the manipulation of geospatial data. GeoTools is used by many Web Feature Servers, Web Map Servers, and desktop applications. A list of projects provided on GeoTools wiki is: uDig, Spearfish, Sound Velocity, WorldImageReader, NOAA/NCDC Java NEXRAD Viewer, Virtual GIS village, Balloon Project, Spatial Data Integrator, AtlasStyler, GeoPublisher.

Programming Language Support

Python:

  • Parsers
    • for markup and tag-based languages: minidom, ElementTree, WKT
    • for JSON: json, geojson
    • for Shapefile: PyShp, dbfpy
  • GDAL bindings: GDAL, fiona.
  • GIS API: PyGRASS, qgis.
  • Computational geometry: Shapely
  • Image processing: PIL, PNGCanvas, SPy (hyper-spectral processing)
  • Meteorology and Climatology: Iris
  • Geocoding: geopy

geopython has a few geospatial Python projects, mostly OGC-compliant web services.

R:

  • Bindings: rgdal, rgeos
  • Map projections: mapproj
  • GRASS 7 interface: rgrass7
  • Data formats: sp, raster, sfr, satellite
  • Manipulation: maptools
  • Geostatistics: gstat, spatstat
  • Static mapping: tmap, RgoogleMaps
  • Web mapping: leaflet, mapview

Spatial Databases

  • PostgreSQL with PostGIS extension [Spatial Database]
    • pgRouting, Routing Queries within PostGIS
  • SQLite with SpatiaLite extension [Lightweight Database]
  • geodatabase (.gdb; ArcGIS only)
  • Rasdaman [Multi-Dimensional Raster Database]
  • Spreadsheets
    • OS: MS Excel, Numbers (OS X)
    • Web: Google Sheets, Google Fusion Table

Maps and Navigation

OpenStreetMap

Marble: Virtual globe with multiple projections, tiles and vector data, routing and POI search.

GPS/Navigation:

  • GpsDrive: Multimodal GPS Navigation
  • GpsPrune: View, Edit and Convert GPS trajectories.
  • OpenCPN: Marine GPS Chart-plotter
  • Viking: GPS Data Analysis and Viewer

Graphic Design:

  • TileMill (Styling and Web Publishing) [Web Mercator is the main supported projection];

GUI Applications

General GIS viewing, editing, and analysis.

  1. Desktop GIS
    • QGIS (Quantum GIS)
    • GRASS GIS (Geographic Resources Analysis Support System)
    • gvSIG (Generalitat Valenciana, Sistema d'Informació Geogràfica)
    • uDig (User-friendly Desktop Internet GIS)
    • SAGA GIS (System for Automated GeoScientific Analysis)
    • OpenJUMP GIS
    • Kosmo Desktop
  2. Browser Clients
    • Leaflet - Mobile Friendly Interactive Maps
    • OpenLayers3 - Browser Mapping JS Library
    • Cesium - 3D globes and 2D maps in a browser
    • Geomajas - Browser GIS Client
    • Mapbender - Geoportal Framework
    • GeoMoose - Web GIS Portal
    • GeoNode - Geospatial Content Management System (CMS)
    • Cartaro - Geospatial Content Management System (CMS)

There's a slew of destop GIS software, but I recommend sticking to the best. If you are really attempted to see how they differ from each other, here's a Desktop GIS Comparison Matrix nicely curated by Dragons8mycat.

ArcGIS (Proprietary)

  • ArcGIS can be used for research, but no commercial use is allowed.
  • advantage of ArcGIS over Python (svg/xml)
    • data only available in ArcGIS format
    • ArcToolbox functionality
    • Database/group collaboration
    • Industry standard

ArcGIS online: Free online GIS software for basic mapping

Leavey Library PCs have ArcGIS & ATLAS.ti [Windows GUI for text analysis].

ArcMap Extension:

  • ST-Links (commercial license):
    • AlignmentKit - linear reference mapping
    • SpatialKit - directly connecting to spatial databases

IDRISI (Proprietary)

Key features:

  1. GIS Analysis
  2. Image Processing: remotely-sensed images, image classification.
  3. Surface Analysis
  4. Land Change and Time Series Analysis
  5. Decision Support and Uncertainty Management
  6. Modeling:
    • Land Change Modeler (land change analysis and prediction);
    • Earth Trends Modeler (image time series of environmental trends).

Web Services

Publishing spatial data to the internet.

  • OGC Web Services: GeoServer, MapServer, deegree;
  • Metadata Catalogue: GeoNetwork, pycsw;
  • Web Map Service: QGIS Server, ncWMS;
  • Web Coverage Service: EOxServer;
  • Web Processing Service: ZOO Project, 52°North WPS;
  • Sensor Observation Service: 52°North SOS;
  • Proxy WMS & tile services: MapProxy;
  • Transactional Web Feature Service (WFS-T): TinyOWS;

Domain-specific Applications

Applications targeted at a specific domain.

  • Sahana Eden - Disaster Management
  • Ushahidi - Mapping and Timeline for Events
  • osgEarth - 3D Terrain Rendering
  • MB-System - Sea Floor Mapping
  • zyGrib - Weather Forecast Maps

  • libLAS - C/C++ Library for Accessing LAS LiDAR Data

  • Orfeo ToolBox (OTB) - Processing of Remote Sensing Images
  • OSSIM (Open Source Software Image Map) - Processing of Remote Sensing Images
  • MapSlicer - Create Map Tiles
  • GeoKettle - Extract, Transform and Load (ETL)

Resources

OSGeo

OSGeo (Open Source Geospatial Foundation) is an NGO promoting free and open source geospatial software and data.

OSGeo-Live is a self-contained bootable DVD/USB/VM based on Lubuntu, containing a wide variety of open source geospatial software. The following sections follows OSGeo-Live's main catalog Geospatial.

OSGeo4W is a binary distribution of a broad set of open source geospatial software for Microsoft Windows.

A framework model of OSGeo. GeoServer and GeoNetwork with interfaces and applications sketch. Green represents read and write paths. Dotted arrowed line indicates mostly read-only data flow.

GeoServer GeoNetwork

OSGeoLive reveal.js deck

Linux Projects

  • DebianGIS
    • UbuntuGIS (aggregation page)
  • Fedora Geo Spin
  • ELGIS (Enterprise Linux GIS) - Red Hat Enterprise Linux, CentOS, Scientific Linux
  • VigerGIS (VIrtual machine GEntoo Replace)

DebianGIS is a project for maintaining GIS packages in Debian's 'main' archives. It is the most mature repository among the above.

Debian GIS Blend tasks/meta-packages:

  • 'gis-workstation', Geographic Information Systems (GIS) workstation
  • 'gis-osm', OpenStreetMap parser, editor, viewer.
  • 'gis-statistics', Statistics with geographic data (R)
  • 'gis-devel', GIS development packages (OpenCV, HDF, NetCDF)
  • 'gis-gps', GPS data (tracks) and sensors.
  • 'gis-remotesensing', Remote sensing and earth observation (GDAL, OSSIM, etc.)
  • 'gis-web', Present geographic information via web map server
  • 'gis-data', Debian GIS data (coastlines by GMT)

On a normal computer desktop, you will most likely want to install at least the workstation task which contains most commonly used GIS applications.


🏷 Category=Geographic Information System