Geospatial Softtware¶
Geospatial analyses (or analytics) use, manipulate and illustrate data from geographic information systems (GIS). GIS data contain geographically referenced and spatially explicit information of for example gauging stations, terrain elevation, or land use. Efficient processing of geospatial data involves programming methods, where Python is an efficient tool. This page presents desktop software for manual geospatial analyses and the illustration of geospatial data. For geospatial programming, please refer to the section Pythongeospatial.
Note
Geospatial data are either geographically referenced, pixel-based rasters data or vector-based Esri shapefiles (read more on the Pythongeospatial pages).
QGIS¶
For the visualization of geodata (.shp
and .tif
files) a GIs software is required and the analyses described on these pages refer to the usage of QGIS. This website uses QGIS within the sections on geospatial programming with Python and numerical modelling with the ETh Zurich’s BASEMENT software.
Install QGIS on Linux (via Flatpak)¶
The QGIS developers provide detailed installation instructions for several Linux distributions, but the instructions will not satisfy all requirement for the use of QGIS described on hydro-informatics.github.io. One of the most functional ways for installing QGIS on Linux is to use Flatpak, which requires some system preparation. On Debian-based Linux platforms (e.g., all sorts of Ubuntu such as Lubuntu or Mint) open Terminal and tap (the second line is only needed if you use GNOME):
sudo apt install flatpak
sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Restart the system and open the Software Manager app. It will update and add the flathub repo. Once the update was successful, search for QGIS and click Install (patience - the installation may take while).
The QGIS Flatpak installation will most likely not include the important scipy module. In order to fix this issue, open Terminal (standard Linux application) and type: |br|
flatpak run --command =pip3 org.QGIS.QGIS install scipy --user
This solution has been tested on Linux Ubuntu and Linux Mint. It potentially also works with Red Hat, openSUSE, Mac OS, Arch, Fedora, and roid, Debian, Kubuntu and many more (read installation guides on the maintainer’s website). Read more about the QGIS Flatpak installation on the QGIS website.
Install QGIS on macOs¶
Note
If you plan to use BASEMENT for numerical modelling: BASEMENT will not run on macOS.
Download and install the latest version of QGIS for macOS. The integrity of using macOS for the applications on hydro-informatics.github.io is has not yet been tested. Possible trouble-shooting with Python is provided by kyngchaos.com.
Learn QGIS¶
Working with geospatial data editors involves complex tasks that require background knowledge before intuitive comprehension is possible. The QGIS developers provide compound tutorials on their website (also available in other languages including Czech, French, German, and Portuguese). On this website, QGIS is occasionally used for plotting and creating georeferenced data (e.g., the chapters on geospatial programming and numerical modelling BASEMENT). These chapters illustrate the usage of QGIS with screenshots for specific tasks and do not cover a full tutorial for working with QGIS.
Basemaps for QGIS (google, open street maps and more)¶
Note
A fast internet connection is required for adding online base maps.
To add a base map (e.g., satellite data, streets, or administrative boundaries), go to the Browser, right-click on XYZ Tiles, select New Connection…, add a name and a URL of an online base map. Once the new connection is added, it can be added to a QGIS project by drag and drop just like any other geodata layer. The below figure illustrates the procedure of adding a new connection and its XYZ tiles as a layer to the project.
The following URL can be used for retrieving online XYZ tiles (more URLs can be found in the internet).
Provider (Layer Name) |
URL |
---|---|
ESRI World Imagery |
|
ESRI Street |
|
ESRI Topo |
|
Google Satellite |
|
Google Street |
|
Ope nStreetMap (OSM) |
|
OSM Black | |
Tip
Most base maps are provided in the EPSG:3857 -WGS84 / Pseudo Mercator
coordinate system (CRS). To use custom geodata products, make sure that all other layers have the same coordinate system. Read more about coordinate systems projections on the geospatial data and shapefile projection pages.
Install QGIS conda Environment¶
In Anaconda Prompt, you can create a new environment to specifically use QGIS features (i.e., tools and scripts) including its raster calculator. The environment is featured by Open Data Cube (read more) and can be installed as follows:
conda create -c conda-forge -n QGIScube python=3.6 QGIS=3 datacube conda activate QGIScube
Get Useful Plugins¶
The conversion between geospatial data types and numerical (computational) grids can be facilitated with plugins. To install any plugin in QGIS, go to the Plugins
menu > Manage and Install Plugins...
> All
tab > Search...
for a relevant plugin and install it.
In the context of river analysis, the following plugins are recommended and used at multiple places on this website:
The Crayfish plugin, which is available in the QGIS toolbox after the installation.
ArcGIS Pro¶
Important
ArcGIS Pro is designed for Windows and will not run on macOS or Linux. In addition, a license needs to be purchased. The proprietary software ArcGIS Pro represents a powerful tool for any kind of geospatial analysis including web applications. ArcGIS Pro is maintained by esri and comes with an own Python conda Environments. With the focus on freely available software, the usage of ArcGIS Pro and its Python environment including the arcpy
package is just mentioned on this website.
Others¶
There are many other tools for geospatial analyses, which all deserve much more than just being mentioned here. Alas, for practical reasons, this website focuses on the usage of QGIS. This is why there is just a absolutely-not-complete list of other GIS tools here:
Geospatial analyses¶
Geospatial analyses involve efficient code practices (e.g., with Python) and this is why detailed descriptions of geospatial data handling are embedded in the Pythongeospatial chapter of this website.