GIS software

There is a lot of different GIS software projects, below is a list of most widely used ones. Most of the them are open source, exceptions are marked accordingly. The first link for each software is the link to the software's main home page. Software installed to Puhti or included in CSC software consortium are provided with an extra link to our software specific page, with additional information about the software.

Desktop GIS-software is used for analyzing and visualizing spatial data on a local PC or laptop. They have a nice GUI (graphical user interface) for easy working. If looking for software with Finnish user interface, ArcGIS Pro, QGIS and MapInfo are the main options.

Web Server-software is used for providing spatial data according to OGC standard web service standards:  WMS, WMTS WFS, WCS. They can do also spatial analysis, if supporting the WPS standards.

Web Client-software, for making web maps usually some JavaScript library is used. The web client is usually backed by a web server.

  • OpenLayers. More features.
  • Leaflet. Lighter and faster.
  • Google Maps API. Commercial.
  • Oskari, the code behind NLS Karttaikkuna, developed mostly by Finnish Land Survey. Based on OpenLayers.

Database-software, for storing bigger amounts of data, mostly used with vector data.

Libraries, for specific or lower level tasks.

Scripting, for automating analysis. Both R and Python have their own GIS-specific packages. Additionally they have packages for accessing some other GIS-software functionality, for details see the table below.

  • R, is originally specialized on general statistical analysis of data, but it has also a lot of packages for spatial analysis and statistics. R spatial in Puhti.
  • Python, a general use programming language, which is widely used also for GIS purposes. Geoconda in Puhti.
  • Shell, several software packages provide also command line interface (CLI), that can be used for automating processes with shell scripts. Additionally both R and Python support running CLI commands from the script.
Software R Python CLI
ArcGIS R – ArcGIS Community ArcPy, ArcGIS API for Python -
QGIS RQGIS3 PyQGIS -
GRASS rgrass7 GRASS GIS Python libraries GRASS shell scripting
LasTools (something in uavRst) - Yes
MapInfo - MapInfo Pro and Python Basics -
OrfeoToolBox (link2GI) OTB Python API OTB CLI
SagaGIS Rsagacmd, RSAGA SAGA GIS API for Python Saga Tools
SNAP - snappy GPT
Zonation - - Yes
PostGIS (sf) (GeoAlchemy2) psql
GDAL sf, raster, sp, rgdal, gdalUtils fiona, shapely, geopandas, rasterio, GDAL Yes
OpenDroneMap     Yes
PDAL - Python in PDAL Yes
FORCE - - Yes
GPSBabel readGPS gpsbabel Yes
WhiteboxTools whiteboxR whitebox_tools.py Yes

 

Even longer GIS-software lists are available here and here.

GIS-software for parallel computing

If the intention is to do analyze big amounts of data, the best option for speeding things up is to use parallel computing, and then it is well worth choosing your tools right. Only some GIS software packages support parallel computing out-of-the box (meaning that the software use only one core for computations). From the available software in Puhti, the following ones have some kind of support for parallel computing: R, Python, FORCE, LasTools, OpenDroneMap, OrfeoToolBox, SagaGIS, SNAP and WhiteboxTools, the details are given on each software's own page.

Most server kind of software support parallel computing, including GeoServer and PostGIS. These can be set up to cPouta.

Also both ArcMap and especially ArcGIS Pro have functions that can run in parallel. Please see our ArcGIS computing page for additional info.

See also geocomputing page for additional information about analyzing big spatial datasets.

Hadoop/Spark

There are several GIS-oriented Hadoop or Spark extensions. The good side with these tools is that it is possible to analyze huge amounts of data, and fast. The down side is that they are rather complicated to set up and to learn. Also in case of Python / R bindings these usually are incompatible with "normal" Python  / R spatial packages, so the code has to be written specifically for these systems. Also the functionality of these tools are usually rather limited to a few functions. In principle these should be possible to set up in cPouta, but so far it has not been done.