The definitive reference of open-source geospatial software, organized by user type and category.
200+ tools across 16 categories — desktop GIS, CLI tools, libraries, databases, web maps, and more.
Table of Contents
For GIS analysts, planners, environmental scientists, and other non-developers who need daily geospatial tools.
Full-featured Desktop GIS
| Tool | Description | Platform | Status | Link |
|---|
| QGIS | The leading open-source desktop GIS, feature-rich comparable to ArcGIS. Supports 100+ vector/raster formats, 3D view, Python plugin system, 500+ community plugins | Win/Mac/Linux | ✅ Active | qgis.org |
| gvSIG Desktop | Mature desktop GIS popular in Spanish-speaking regions and public administration. Supports vector/raster editing, network analysis, CRS transformation | Win/Linux | ⚠️ Maintenance | gvsig.com |
| OpenJump | Lightweight Java desktop GIS with fast startup. Good at vector editing, topology processing, SQL queries | Win/Mac/Linux | ⚠️ Low activity | openjump.org |
| uDig | Eclipse-based desktop GIS for users who need Java IDE integration | Win/Mac/Linux | ⛔ Stalled | udig.refractions.net |
| SAGA GIS | Designed for geoscientific research with 600+ raster/vector/terrain analysis modules. Academic-oriented UI | Win/Linux | ✅ Active | saga-gis.sourceforge.io |
| GRASS GIS | The oldest open-source GIS (40+ years). Extremely powerful raster/vector/terrain analysis engine. Usable via QGIS plugin | Win/Mac/Linux | ✅ Active | grass.osgeo.org |
| WhiteboxTools (GUI) | Cross-platform desktop app with 500+ geospatial analysis tools, developed at University of Guelph | Win/Mac/Linux | ✅ Active | whiteboxgeo.com |
Spatial Data Analysis & Statistics
| Tool | Description | Platform | Status | Link |
|---|
| GeoDa | Spatial statistical analysis and visualization, focused on spatial autocorrelation, clustering, regression | Win/Mac/Linux | ✅ Active | geodacenter.github.io |
| Cartographica | Native macOS GIS, lightweight yet fully featured | Mac | ⚠️ Niche | cartographica.com |
3D Earth & Terrain Visualization
| Tool | Description | Platform | Status | Link |
|---|
| CesiumJS | 3D Earth/map Web library with GPU acceleration, supports 3D Tiles, terrain, time dynamics | Web | ✅ Active | cesium.com/platform/cesiumjs |
| NASA WorldWind | NASA’s 3D Earth SDK with Java/Web versions | Win/Mac/Linux/Web | ⚠️ Low activity | worldwind.arc.nasa.gov |
For data engineers, DevOps, and developers who need batch processing and automation.
| Tool | Description | Language | Link |
|---|
| GDAL/OGR | The “Swiss Army knife” of open-source GIS. Read/write 200+ raster formats and 100+ vector formats, spatial analysis, projection conversion | C/C++ (CLI) | gdal.org |
| osmium-tool | High-speed OSM PBF data processor for area extraction, tag filtering, format conversion | C++ (CLI) | osmcode.org/osmium-tool |
| OsmConvert | OSM PBF ↔ OSM XML format converter, old but stable | C (CLI) | wiki.openstreetmap.org |
| mapshaper | Lightweight vector simplification/ conversion tool. Supports Shapefile/GeoJSON/TopoJSON simplification, clipping, format conversion | Node.js (CLI+Web) | github.com/mbloch/mapshaper |
| ogr2ogr | GDAL’s primary vector format conversion command. Supports virtually all vector format interconversion | C/C++ (CLI) | Ships with GDAL |
| gdal_translate | GDAL’s raster format conversion command. Supports GeoTIFF/COG/MBTiles and more | C/C++ (CLI) | Ships with GDAL |
| gdalwarp | GDAL’s raster reprojection/cropping/mosaicking command | C/C++ (CLI) | Ships with GDAL |
| gdalbuildvrt | GDAL’s virtual raster mosaicking tool. Combines multiple raster files into one VRT | C/C++ (CLI) | Ships with GDAL |
| gdal_contour | Generate contour lines from DEM | C/C++ (CLI) | Ships with GDAL |
Coordinate Reference Systems
| Tool | Description | Language | Link |
|---|
| PROJ | Coordinate transformation library and CLI (cs2cs, proj, cct, geod). Supports thousands of CRS | C/C++ (CLI) | proj.org |
| gdaltransform | GDAL’s coordinate transformation CLI for batch file conversion | C/C++ (CLI) | Ships with GDAL |
| Cartographic Projections (pyproj) | Python bindings for PROJ. CLI via proj and related tools | Python | pyproj4.github.io |
| Tool | Description | Language | Link |
|---|
| Tippecanoe | Convert large GeoJSON/CSV datasets to MVT vector tiles (MBTiles/PMTiles) with level-of-detail simplification | C++ (CLI) | github.com/felt/tippecanoe |
| Tilemaker | Generate vector tiles (MBTiles) directly from OSM PBF with Lua-configurable styles | Lua/C++ (CLI) | tilemaker.org |
| Planetiler | Ultra-fast vector tile generation from global OSM data. Java implementation, memory-efficient | Java (CLI) | github.com/onthegomap/planetiler |
| Tilemaker (v2) | Newer version of tilemaker with performance improvements and flexible styling | Lua/C++ (CLI) | Same as above |
| MBUtil | MBTiles import/export/management tool | Python (CLI) | github.com/mapbox/mbutil |
| PMTiles CLI | Create, inspect, and merge PMTiles format | Go | github.com/protomaps/go-pmtiles |
| gdal2tiles | Generate Web map tiles (raster tiles) using GDAL | Python (CLI) | Ships with GDAL |
| gdal2xyz | Export raster DEM to XYZ point cloud | C/C++ (CLI) | Ships with GDAL |
| Tool | Description | Language | Link |
|---|
| gdaldem | Generate hillshade, slope, aspect, and color relief from DEM | C/C++ (CLI) | Ships with GDAL |
| pdal | Point cloud processing, filtering, and conversion CLI. Like GDAL but for LAS/LAZ | C++ (CLI) | pdal.io |
| ctb-tile | Cesium Terrain Builder — Generate Cesium quantized-mesh terrain tiles from DEM | C++ (CLI) | github.com/geo-data/cesium-terrain-builder |
| dem-tools | Various DEM processing script collections | Python | Multiple independent projects |
| Erosion Threads | Terrain flow erosion simulation CLI | C++ (CLI) | github.com/erosion-threads |
OSM Data Processing
3. Geospatial Libraries & SDKs
For developers building geospatial applications.
C/C++ Core Libraries
| Library | Description | Link |
|---|
| GDAL | Vector/raster data abstraction layer. The foundation stone of virtually all GIS tools | gdal.org |
| GEOS | Geometry engine implementing OGC Simple Features standard. Foundation of PostGIS/Shapely/QGIS | libgeos.org |
| PROJ | Coordinate projection/transformation library | proj.org |
| SFCGAL | Extends GEOS with 3D geometry operations and advanced spatial SQL support | oslandia.github.io/SFCGAL |
Java Libraries
| Library | Description | Link |
|---|
| JTS Topology Suite | Java geometry operations library. The Java-native equivalent of GEOS | github.com/locationtech/jts |
| GeoTools | Java GIS toolkit. Foundation of GeoServer, supports OGC standards | geotools.org |
| H2GIS | Spatial extension for H2 database | h2gis.org |
Python Ecosystem
JavaScript / TypeScript Ecosystem
| Library | Description | Link |
|---|
| Turf.js | Spatial analysis library for browser/Node.js. Supports buffers, intersections, unions, distance calculations | turfjs.org |
| Leaflet | Lightweight Web map library with rich plugin ecosystem (3000+ plugins) | leafletjs.com |
| OpenLayers | Full-featured Web map library with vector tile and multi-source support | openlayers.org |
| MapLibre GL JS | WebGL-accelerated Web map library. Open-source fork of Mapbox GL JS with 3D terrain support | maplibre.org |
| CesiumJS | 3D Earth/map Web library | cesium.com/platform/cesiumjs |
| deck.gl | WebGL-powered data visualization framework from Uber. Renders millions of data points | deck.gl |
| Kepler.gl | WebGL data visualization tool from Uber. No-code drag-and-drop | kepler.gl |
| L7 (AntV) | Large-scale geospatial visualization engine by Ant Group | github.com/antvis/L7 |
| Tangram | Real-time Web 3D map rendering engine | github.com/tangrams/tangram |
| Mapbox GL Native | Native Mapbox GL for Android/iOS/macOS/Windows | github.com/maplibre/maplibre-native |
R Language Ecosystem
Go Ecosystem
Rust Ecosystem
4. Spatial Databases & Engines
| Tool | Description | Type | Link |
|---|
| PostGIS | PostgreSQL spatial extension. The most mature open-source spatial database with full OGC standard support | Database extension | postgis.net |
| SpatiaLite | Spatial extension for SQLite. Suitable for mobile/lightweight deployments, no separate server needed | Database extension | gaia-gis.it |
| DuckDB Spatial | Spatial extension for embedded OLAP database. Columnar storage, ideal for large-scale spatial analysis | Database extension | duckdb.org/docs/extensions/spatial |
| GeoPackage | Open spatial data format standard based on SQLite. Stores vector + raster + metadata | Format/Database | geopackage.org |
| GeoMesa | Spatial indexing and time-series storage for Accumulo/HBase/Cassandra/Kafka | Big data | geomesa.org |
| H2GIS | Spatial extension for H2 database | Database extension | h2gis.org |
| pgRouting | Routing extension for PostGIS. Shortest path, TSP, parking, and more | Database extension | pgrouting.org |
| MobilityDB | Moving object extension for PostGIS. Trajectory data storage and analysis | Database extension | mobilitydb.com |
| 3DCityDB | 3D city model database. Store/manage CityGML data | Database extension | 3dcitydb.net |
5. Web Map Engines & Visualization
Frontend Rendering Engines
| Tool | Description | Rendering | Link |
|---|
| MapLibre GL JS | WebGL vector tile rendering. 3D buildings/terrain. Open-source successor to Mapbox GL | GPU (WebGL) | maplibre.org |
| OpenLayers | Full-featured 2D Web map library supporting various data sources and OGC standards | Canvas/WebGL | openlayers.org |
| Leaflet | The lightest and most popular 2D Web map library with 3000+ plugins | Canvas/DOM | leafletjs.com |
| CesiumJS | 3D Earth/map Web library. GPU-accelerated, supports 3D Tiles and terrain | GPU (WebGL) | cesium.com/platform/cesiumjs |
| deck.gl | Uber’s WebGL data visualization framework. Millions of data points | GPU (WebGL) | deck.gl |
| Kepler.gl | Uber’s WebGL data visualization tool. No-code drag-and-drop | GPU (WebGL) | kepler.gl |
| L7 (AntV) | Large-scale geospatial visualization engine by Ant Group | GPU (WebGL) | github.com/antvis/L7 |
| Tangram | Real-time Web 3D map rendering engine | WebGL | github.com/tangrams/tangram |
| Mapbox GL Native | Native Mapbox GL for Android/iOS/macOS/Windows | GPU | github.com/maplibre/maplibre-native |
| Tool | Description | Link |
|---|
| Kepler.gl | Uber’s drag-and-drop data visualization tool supporting big data and animation | kepler.gl |
| GeoDataViewer | Browser-based drag-and-drop GIS viewer (Shapefile/GeoJSON/KML/PMTiles etc.), MapLibre rendering | geodataviewer.com |
| MapTiler | Map hosting + style editor with free tier | maptiler.com |
6. GIS Servers & APIs
Map Tile / Feature Services
| Tool | Description | Language | Link |
|---|
| GeoServer | The most popular open-source map server. Supports WMS/WFS/WCS/WMTS with Web management UI | Java | geoserver.org |
| MapServer | Veteran C-language map server. High performance, Mapfile-based configuration | C | mapserver.org |
| QGIS Server | Map server based on QGIS project files. WYSIWYG configuration | C++/Python | qgis.org |
| deegree | Comprehensive SDI (Spatial Data Infrastructure) software. WMS/WFS/WCS/WPS | Java | deegree.org |
| MapProxy | Tile cache/proxy/WMS accelerator supporting multiple source aggregation | Python | mapproxy.org |
Lightweight Tile Services
OGC API Services
| Tool | Description | Language | Link |
|---|
| pygeoapi | Python service framework implementing OGC API standards (Features/Tiles/Coverages/etc.) | Python | pygeoapi.io |
| GeoNetwork | Spatial metadata catalog management system (ISO 19115/19119) | Java | geonetwork-opensource.org |
| CKAN (geospatial) | Open-source data portal platform with spatial data extension support | Python | ckan.org |
| STAC (SpatioTemporal Asset Catalogs) | Spatiotemporal asset catalog specification and implementations | Multi-language | stacspec.org |
| pygeoapi-stac | STAC extension for pygeoapi | Python | pygeoapi |
Tile Cache / CDN
| Tool | Description | Language | Link |
|---|
| MapProxy | Professional WMS/tile cache proxy | Python | mapproxy.org |
| TileCache | Lightweight tile cache server | Python | tilecache.org |
Vector Tile Creation
| Tool | Description | Language | Link |
|---|
| Tippecanoe | Generate MVT vector tiles (MBTiles/PMTiles) from large GeoJSON/CSV datasets | C++ | github.com/felt/tippecanoe |
| Tilemaker | Generate vector tiles from OSM PBF with Lua-configurable styles | C++ | tilemaker.org |
| Planetiler | Generate global vector tiles from OSM PBF quickly | Java | github.com/onthegomap/planetiler |
| OpenMapTiles | Complete OSM → vector tile toolchain with map style generation | Multi | openmaptiles.org |
| Mapbox Studio (CLI) | Mapbox vector tile style tools (free tier has limitations) | Node.js | mapbox.com |
| Baremaps | Java ecosystem OSM vector tile pipeline | Java | baremaps.org |
Raster Tile Creation
| Tool | Description | Language | Link |
|---|
| gdal2tiles.py | GDAL utility. Generate Web Mercator raster tiles from raster files | Python | Ships with GDAL |
| MapTiler Engine | Desktop GUI tool for raster/vector tile creation (free tier limited) | C++ | maptiler.com |
| Kosmos Tile Generator | Mapnik-based tile generator | Python | github.com/kosmtik/kosmtik |
Terrain Tiles
| Format | Description | Typical Toolchain |
|---|
| MBTiles | SQLite database containing tiles. Suitable for offline maps | Tippecanoe → TileServer GL |
| PMTiles | Single-file tile format. Direct browser requests, no server needed | Tippecanoe/Planetiler → Browser |
| MVT | Mapbox Vector Tile standard | Tippecanoe/PostGIS → MapLibre/OpenLayers |
| GeoPackage | OGC standard with tile support (WIP) | GDAL → QGIS |
| COG (Cloud Optimized GeoTIFF) | Cloud-optimized GeoTIFF. Direct HTTP Range reads | gdal_translate → Browser/MapLibre |
8. Routing Engines
| Engine | Description | Language | Performance | Link |
|---|
| OSRM | Open Source Routing Machine. C++ implementation,极致性能,专为 OSM 优化 | C++ | ⚡ Very Fast | project-osrm.org |
| GraphHopper | Java routing engine supporting multiple transport modes. Enterprise-grade | Java | 🚀 Fast | graphhopper.com |
| Valhalla | Open-source routing engine with multi-modal, time/distance matrix, isolines | C++ | 🚀 Fast | valhalla.github.io |
| pgRouting | PostGIS extension. SQL-based routing analysis. Flexible but slower than dedicated engines | C/SQL | Medium | pgrouting.org |
| OpenTripPlanner | Multi-modal travel planning (transit + walking + bike + train) with GTFS data | Java | Medium | opentripplanner.org |
| BRouter | Bike/hiking dedicated routing engine | Java | Medium | brouter.de |
| Routino | Lightweight routing engine, suitable for embedded systems | C | Fast | routino.org |
9. Geocoding Engines
| Engine | Description | Language | Data Size | Link |
|---|
| Nominatim | Official OSM geocoding engine. Full forward/reverse support | C++/Python | Large (full OSM) | nominatim.org |
| Photon | Elasticsearch-based lightweight geocoding. Fast with fuzzy search support | Java | Large | photon.komoot.com |
| Pelias | Elasticsearch-based modular geocoder with multi-source support | Node.js | Large | pelias.io |
| geocoder (Python) | Unified Python interface for multiple geocoding services | Python | N/A | geocoder.readthedocs.io |
| geopy | Python geocoding library supporting Nominatim/Google/Bing and more | Python | N/A | geopy.readthedocs.io |
10. Remote Sensing & Image Processing
| Tool | Description | Platform | Link |
|---|
| Orfeo ToolBox (OTB) | Remote sensing image processing platform by CNES (French Space Agency). 500+ processing modules with GUI (Monteverdi) + CLI + Python | Win/Mac/Linux | orfeo-toolbox.org |
| SNAP (ESA) | ESA’s remote sensing platform designed for Sentinel data | Win/Mac/Linux | step.esa.int |
| GRASS GIS | Powerful raster/image processing engine with classification, filtering, change detection | Win/Mac/Linux | grass.osgeo.org |
| Opticks | Extensible remote sensing image analysis platform | Win/Linux | opticks.org — ⚠️ May be inactive |
Python Remote Sensing Libraries
InSAR (Interferometric Synthetic Aperture Radar)
Photogrammetry
11. Point Cloud & 3D Processing
Point Cloud Processing
| Tool | Description | Platform/Language | Link |
|---|
| PDAL | Point cloud processing library (GDAL for point clouds). Supports LAS/LAZ/COPC/EPT | C++ (CLI+API) | pdal.io |
| CloudCompare | 3D point cloud/triangle mesh processing and comparison software, GUI + CLI | Win/Mac/Linux | cloudcompare.org |
| Entwine | Massive point cloud organization/indexing with Cesium 3D Tiles output | C++ (CLI) | entwine.io |
| Potree | WebGL large point cloud visualization renderer | Web (JS) | potree.github.io |
| Open3D | 3D data processing library for Python/C++. Point cloud registration/segmentation/reconstruction | Python/C++ | open3d.org |
| PDAL (Python) | Python bindings for PDAL | Python | Ships with PDAL |
| lastools | LAS toolset (partially open-source: las2las/las2txt etc. CLI tools) | C++ (CLI) | github.com/LAStools/LAStools |
| WhiteboxTools | 500+ tools including point cloud classification, DEM generation | CLI/Python | whiteboxgeo.com |
3D Tiles
12. Mobile Data Collection
| Tool | Description | Platform | Link |
|---|
| QField | Leading open-source mobile GIS with deep QGIS integration. Offline, GPS, forms | Android/iOS | qfield.org |
| Mergin Maps (Input) | QGIS-based mobile data collection with cloud sync service | Android/iOS | merginmaps.com |
| ODK (Open Data Kit) | Universal mobile data collection framework with geospatial fields | Android | getodk.org |
| KoboToolbox | Humanitarian data collection platform based on ODK | Web/Android | kobotoolbox.org |
| GeoODK | Spatially-enhanced version of ODK | Android | geoodk.com |
| Organic Maps | Offline map navigation with POI and track recording | Android/iOS | organicmaps.app |
13. Spatial Data Science & Big Data
- GeoPandas — Spatial DataFrame operations
- Shapely — Geometry operations
- Kepler.gl (Python) — Big data visualization in Jupyter
- Leafmap — Low-code spatial analysis
- Xarray-spatial — Large-scale raster analysis
- OSMnx — OSM urban network analysis
Distributed Computing
Spatial Indexing
| Library | Description | Link |
|---|
| H3 | Uber’s hexagonal hierarchical grid index (Python/JS/Java/Go etc.) | h3geo.org |
| S2 Geometry | Google’s spherical geometry index library (S2 cells) | s2geometry.io |
| Geohash | Z-order curve spatial encoding | Multi-language implementations |
| RTree / libspatialindex | R-tree spatial index library | libspatialindex.org |
15. QGIS Ecosystem — Selected Plugins
| Plugin | Description | Category | Link |
|---|
| QuickMapServices | One-click basemap services (OSM/ESRI/Google etc.) | Basemaps | Plugin Manager |
| OpenLayers Plugin | Preview OpenLayers-supported basemaps in QGIS | Basemaps | Plugin Manager |
| OSMDownloader | Download OSM data via Overpass API | OSM | Plugin Manager |
| QuickOSM | Quick OSM data query and download | OSM | Plugin Manager |
| Orfeo ToolBox (OTB) Plugin | Run OTB remote sensing modules from QGIS | Remote Sensing | Plugin Manager |
| Processing R Provider | Run R spatial analysis from QGIS | Analysis | Plugin Manager |
| HFEQS (SAGA) | SAGA GIS processing integration | Analysis | Ships with QGIS |
| Profile Tool | Terrain profile tool | Terrain | Plugin Manager |
| qgis2web | QGIS project → Leaflet/OpenLayers Web map | Web | github.com/tomchadwin/qgis2web |
| Tile+ | Raster/vector tile loading and management | Tiles | Plugin Manager |
| Mergin Maps Plugin | QGIS ↔ Mergin mobile data collection sync | Mobile | Plugin Manager |
| QFieldSync | QGIS ↔ QField mobile data collection sync | Mobile | Plugin Manager |
| Data Plotly | Interactive charts in QGIS (scatter, histogram, etc.) | Visualization | Plugin Manager |
| Time Manager | Temporal animation control | Spatiotemporal | Plugin Manager |
| LAT / Lizard | Connect to Lizard remote sensing data platform | Remote Sensing | Plugin Manager |
| OpenTopography DEM Downloader | Download SRTM/ALOS/COP DEM data | Terrain | Plugin Manager |
| HCMGIS | Chinese geospatial data tools (Baidu/Amap/Tianditu etc.) | China | github.com/hcmgis |
| Semi-Automatic Classification Plugin | Supervised/unsupervised remote sensing image classification | Remote Sensing | semiautomaticclassificationalgorithm.com |
| Plugin Builder 3 | QGIS plugin development wizard | Development | Plugin Manager |
| Cadasta | Land tenure and political boundary data | Specialized | Plugin Manager |
| From → To | GeoJSON | Shapefile | GeoPackage | KML | GPX | CSV | TopoJSON | GeoParquet | FlatGeobuf |
|---|
| GeoJSON | - | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | mapshaper | mapshaper | ogr2ogr | ogr2ogr |
| Shapefile | ogr2ogr | - | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | mapshaper | ogr2ogr | ogr2ogr |
| GeoPackage | ogr2ogr | ogr2ogr | - | ogr2ogr | ogr2ogr | ogr2ogr | mapshaper | ogr2ogr | ogr2ogr |
| KML | ogr2ogr | ogr2ogr | ogr2ogr | - | ogr2ogr | ogr2ogr | mapshaper | ogr2ogr | ogr2ogr |
| GPX | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | - | ogr2ogr | mapshaper | ogr2ogr | ogr2ogr |
| GeoParquet | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | ogr2ogr | mapshaper | - | ogr2ogr |
| PMTiles → Extract | tippecanoe —output=… | - | - | - | - | - | - | - | - |
Tip: Use ogr2ogr for most vector format conversions. Use gdal_translate for raster format conversions. Use mapshaper for format simplification. use mapshaper for JSON/TopoJSON conversions.
Appendix: About OSGeo
The Open Source Geospatial Foundation (OSGeo) is the core organization of the open-source GIS ecosystem. Many of the projects listed above are its formal or incubating projects.
OSGeo Flagship Projects:
- GDAL/OGR, QGIS, GRASS GIS, GeoServer, MapServer, PostGIS, PROJ, GeoNetwork, Orfeo ToolBox, OpenLayers, OSGeoLive
OSGeo Community Projects:
- PDAL, ZOO-Project, PyWPS, istSOS, Tellus, METEOR
OSGeoLive:
- A Linux distribution containing 50+ open-source GIS applications on a single DVD/USB. Try them all without installation.
About This Directory
- Written: 2026-06-29
- Purpose: Reference for GeoDataViewer’s GIS Tool Directory series
- Future: May be published as multi-part series: GUI Tools / CLI Tools / Python Ecosystem / Databases / Web Maps / Tile Tools, etc.