Blog

    

Working with Web Data using Requests and Beautiful Soup

Posted by: Zulfikar Akbar Muzakki | in Python | 2 days, 7 hours ago | Comments

Imagine us in charge of developing a feature to show public data coming from a third party that doesn’t have an API. Let’s say, we need to show current and historical data of dam water level which we can access at http://www.dwa.gov.za/Hydrology/Weekly/ProvinceWeek.aspx?region=WC. We cannot possibly add the entry manually--it’s too time consuming. Some of us might choose the hard way to ask the data provider to make a public API, but there is a time constraint as we need it as soon as possible. One way to solve this is to use a method called “web scraping”.

Finding and fixing topology and geometry errors in QGIS

Posted by: Admire Nyakudya | in QGIS | 1 week, 2 days ago | Comments

Google Maps, Google Earth, Uber are examples leading software/apps that are driven by GIS. They have allowed the ordinary person inadvertently to use  GIS and appreciate its power without needing an understanding of the basics of GIS.  Many people have taken the leap to using GIS by using some of the GIS capabilities in Google Earth.

CyanoLakes app 1.0 launched

Posted by: Dimas Ciputra | in JavaScript | 2 weeks, 3 days ago | Comments

We recently launched a mobile application that we developed with the CyanoLakes team. It adds a new dimension to the successful Cyanolakes web app, which has also received a facelift.

Publishing digital elevation in Cesium

Posted by: Admire Nyakudya | in GeoServer | 3 weeks, 5 days ago | Comments

Digital elevation data is now readily available from multiple sources. There are several tools that can help to visualise elevation data, Cesium being one. Recently I have been researching how to visualise terrain data in cesium and I could not see a  complete example that I could replicate on my own. This post will highlight the steps I took to visualise elevation data in cesium.

QGIS Road to Nerdvana Part 7: Logging Postgres Calls

Posted by: Seabilwe Tilodi | in PostGIS, QGIS | 3 weeks, 5 days ago | Comments

In this episode, Tim Sutton will show you how to enable PostgreSQL logging and what underlying queries are generated by QGIS or any other PostgreSQL client.

QGIS Road to Nerdvana Part 6 - Responding to feedback on Part 5 Pull Request

Posted by: Seabilwe Tilodi | in QGIS | 3 weeks, 5 days ago | Comments

This episode is a follow-up from Part 5, responding to the feedback received.
Enjoy Part 6 of our Road to Nerdvana!!

Mocking Requests with requests_mock

Posted by: Zulfikar Akbar Muzakki | in Python | 3 weeks, 5 days ago | Comments

Testing is an important part of software development, be it manual or automated. Untested code is a ticking time bomb ready to explode at the worst time possible, hence each developer must be responsible for testing their code. It’s even better when they make automated tests for their code, even if it’s only unit tests.

QGIS Road to Nerdvana Part 5: Tweaking the first run dialog

Posted by: Seabilwe Tilodi | in QGIS | 1 month ago | Comments

In this episode, Tim Sutton takes you along for the ride as he picks a long-time irritation in QGIS: The first run dialog. He tweaks it to make it look nice to submit it as a pull request to QGIS.

QGIS Road to Nerdvana Part 4: Dealing with Issues

Posted by: Seabilwe Tilodi | in QGIS | 1 month ago | Comments

In this episode of QGIS road to Nerdvana, Tim Sutton will be showing you a workflow that will aid in dealing with issues encountered with a QGIS that compiles, so you won’t have to compile or debug.

QGIS Road to Nerdvana Part 3: QGIS QA using astyle and pre-commit hooks

Posted by: Seabilwe Tilodi | in QGIS | 1 month, 2 weeks ago | Comments

We are back with another episode of our roads to Nerdvana. On today’s episode Tim Sutton and world-renowned QGIS developer Matthias Kuhn walk you through the setup process for using 'astyle precommit hooks' - basically clever tools that will make sure your code looks smart and neat automatically so that nobody rejects it for not being standard compliant when you make a pull request.

QGIS Road to Nerdvana Part 2: QGIS QtCreator Build on Pop_OS! 20.04

Posted by: Seabilwe Tilodi | in QGIS | 1 month, 2 weeks ago | Comments

In today’s video blog, Tim Sutton shows you how to use QtCreator to build QGIS in a graphical development environment. The key entries used when setting up 3D support and here are the commands used to install QtCreator:

QGIS Road to Nerdvana Part 1: QGIS Console Build

Posted by: Seabilwe Tilodi | in QGIS | 2 months ago | Comments

QGIS Road to Nerdvana is an exciting series of videos blogs that walk you through building QGIS environments to installing and using QTCreator all running on Ubuntu 20.04.

Calculating area of rasters in QGIS

Posted by: Admire Nyakudya | 2 months, 2 weeks ago | Comments

QGIS raster functionality has come a long way and continues to improve. During my spare time, I am always on the lookout for interesting questions posed on https://gis.stackexchange.com.

Speeding up multiple web map service requests using Python's asyncio and aiohttp

Posted by: Andre Theron | in Python | 4 months ago | Comments

Geocontext is a Django app that retrieves information from multiple web based services for a specific query point. The services are arranged into hierarchies with multiple services in a group and multiple groups in a collection. It currently supports querying WMS, WFS & ArcREST services.

School GIS task: create a 5km COVID-19 lockdown exercise buffer around your house

Posted by: Gavin Fleming | in Education, QGIS | 5 months, 2 weeks ago | Comments

If you are doing some teaching in the classroom and some online and you are finding "blended teaching" overwhelming, this task is designed for asynchronous self study.

Does hosting your own server still make sense in 2020?

Posted by: Tim Sutton | 5 months, 2 weeks ago | Comments

Client: We need a server for this project, and we want to host it in house

Consuming cloud optimised GeoTIFFs in QGIS Server

Posted by: Admire Nyakudya | in QGIS | 7 months ago | Comments

QGIS has been able to consume cloud optimised GeoTIFFs (COGs) since v3.2, through the data source manager.  This article does not aim to explain what a COG is as various other articles have done so extensively.

Create a custom reference grid in qgis composer part 2

Posted by: Admire Nyakudya | in QGIS | 8 months, 1 week ago | Comments

This is a follow-up post on https://kartoza.com/en/blog/create-a-custom-reference-grid-in-qgis-composer/.

Data defined settings for grid placements in QGIS 3.12

Posted by: Admire Nyakudya | 9 months, 1 week ago | Comments

For a while now I have been trying to simulate the 1in50k topographic maps of South Africa. I started using QGIS since version 1.8 and I couldn't replicate the cartography on the topographic maps but over time as QGIS has matured, I could replicate the NGI maps. NGI uses proprietary software and then Adobe to fine-tune some context on the maps. For this exercise I used QGIS 3.12.0

Calculating intersects for map layers and map extent dynamically in QGIS

Posted by: Admire Nyakudya | in Python, QGIS | 9 months, 2 weeks ago | Comments

Recently we have been working on a project that involves simulating the 1 in 50k topographic maps in South Africa. Since we are using QGIS Server to print the map all the logic is set up in print composer. All  maps generated are dynamic (users can select a specific area within South Africa to print) and QGIS Server will use the map template to generate the map. 

Have any questions? Contact us.
We would love to hear from you!
Subscribe to our Mailing list (spam-free, industry-relevant occasional emails)

Subscribe to our mailing list

* indicates required