A list of GIS software and libraries

Various open source software libraries and utilities that can be useful for GIS applications.

The ones that we use and recommend are marked with a .


Databases

PostGIS
Spatial extensions for PostgreSQL

PostgreSQL
DBMS, use together with PostGIS

SpatiaLite
A complete Spatial DBMS in a nutshell (can work with shapefiles as external storage format)

Geometry

Boost.geometry
Various geometric datatypes and algorithms

CGAL (Computational Geometry Algorithms Library)
Robust geometric operations, including many packages for convex hulls, meshes, triangulations, polygon and polyhedron operations, etc.

GEOS (Geometry Engine - Open Source)
Spatial operations, including validation and topology functions

GTS (GNU Triangulated Surface Library)
Triangulations and surface operations

Hull
Convex hulls and triangulations

JTS (Java Topology Suite)
Spatial operations, including validation and topology functions

LEDA
Robust computational geometry and combinatorial algorithms

Miniball
Smallest enclosing ball in n-D

NormFet
Normals and feature sizes in point clouds

Open CASCADE
CAD engine that uses constructive solid geometry

PCL (Point Cloud Library)
2D/3D image and point cloud processing

PROJ.4
Projections

Qhull
n-D approximate convex hulls and triangulations

Shapely
Python bindings for GEOS

TetGen
Tetrahedral meshes

Triangle
Very fast 2D (constrained) Delaunay triangulations

Graphs

graph-tool
Efficient Python module for manipulation and statistical analysis of graphs

Input and Output

Assimp
Import various 3D model formats, such as OBJ and COLLADA. C++ and Python.

Fiona
OGR Python bindings

GDAL (Geospatial Data Abstraction Library)
Various raster formats

GeoTIFF
GeoTIFF format

laspy
Read/write LAS with Python

LAStools/LASlib
Point cloud I/O and processing

OGR
Various vector formats

PDAL
Point cloud I/O

pyshp
Shapefiles using only Python

Rasterio
GDAL Python bindings

Spatial indexing

ANN (Approximate Nearest Neighbor Library)
Real and approximate nearest neighbors in n-D point clouds

GiST
A template indexing structure to create your own spatial indexing

libspatialindex
Different spatial indexing methods

pykdtree
Fast kd-tree implementation in Python

Visualisation

azul
A fast 3D city model viewer for macOS

CloudCompare
3D point cloud and mesh processing software

D3.js
Framework to create interactive maps and more

GeoServer
Publish web maps

GRASS
GIS package

LidarViewer
Interactive visualisation of massive point clouds

mapnik
Toolkit for map applications

MapServer
Publish web maps

MeshLab
Process and view triangular meshes and point clouds

ParaView
Visualiser for large data sets

plasio
Web-based LAS/LAZ point cloud viewer

Potree
Web-based viewer for massive point clouds

QGIS (Quantum GIS)
GIS package

TileMill
Simple map creator

VTK (Visualization Toolkit)
Software that implements a wide variety of visualisation algorithms.