Creating 3D models for QGIS with ODM on Windows

Posted by: Victoria Neema | in QGIS | 2 years, 2 months ago | 0 comments

This post is a walkthrough showing you how to create a 3D model using ODM and Blender from the video frames of a video shot on your cellphone and use the 3D model as a symbol in QGIS. Blender is a free and open-source 3D creation suite. Open Drone Map (ODM) is drone mapping software that can be used to generate 3D models from aerial images (or in this case, generate 3D reconstructions from cell phone video). This post is adapted from Creating 3D Models for QGIS With ODM by Tim Sutton, which describes how to achieve the same results on Linux.


Posted by: Samweli Mwakisambwe | in Python, QGIS | 2 years, 2 months ago | 0 comments

A new QGIS plugin that allows browsing STAC API catalogs inside QGIS has been released. The plugin, developed by Kartoza and sponsored by Microsoft, is available for download and installation in the QGIS official plugin repository. Before this plugin was developed, there was an existing plugin that aimed at providing the same services, though it wasn't updated to use the latest stable release of the STAC API and was not being actively maintained.

Mocking Requests with Responses

Posted by: Zulfikar Akbar Muzakki | in Python | 2 years, 2 months ago | 0 comments

Sometimes, making a request to third-party service is a requirement in our code. And when we test it, those requests could affect the test result i.e. when the service is down, hence causing a test error. It's also a bad idea if our request incurs a cost, like when our code requests a subscription to a third party. If you have read my blog "Mocking Requests with requests_mock", then you would know that all those issues can be solved by mocking our requests in tests using requests_mock. This blog will show you an alternative to requests_mock, the one that is simpler to use yet offers more features: responses. For ease of understanding, the return value from requests will be called "response" and the library that we use is "responses" (i.e. an extra "s" in "responses").

10 Python Tips and Tricks for Beginners

Posted by: Zulfikar Akbar Muzakki | in Python | 2 years, 2 months ago | 0 comments

What I love most in Python is its readability and ease of use, which makes Python a good language to start in programming. To make Python learning easier, I will list some useful tips and tricks. Please note that I use Python 3.9 and you must have basic Python knowledge to use it properly.

Collaborating on a QGIS Project saved in a PostgreSQL database

Posted by: Admire Nyakudya | in Database, QGIS | 2 years, 9 months ago | 1 comment

QGIS provides a couple of options when it comes to working with QGIS projects. All these formats have their strengths and weakness. When doing some work in QGIS we used to share around the QGIS projects but ever since storing the QGIS projects in a PostgreSQL database became an option we have been investigating using this as our primary method of collaboration.

PostgreSQL SSL setup in docker-postgis

Posted by: Admire Nyakudya | in Database, Docker, PostGIS | 2 years, 10 months ago | 0 comments

Databases are the cornerstone of most web applications and also act as a central repository for the storage of data.

A step forward in Kartoza's QGIS and GeoNode Training

Posted by: Amy Burness | in Education, GeoNode, QGIS | 2 years, 10 months ago | 0 comments

Learning online has become an essential part of education globally. Kartoza has answered the call for up-to-date, engaging and dynamic teaching material by updating our QGIS and GeoNode teaching platforms. Kartoza uses our open source 'changelog' platform, that allows for continual updates and customisation of material to deliver cutting-edge training. 

The Kartoza Intern's journey creating a field survey with QGIS, Mergin and Input

Posted by: Amy Burness | in Education, FOSSGIS, QGIS | 2 years, 11 months ago | 0 comments

Simple, powerful and efficient field data collection is vital for any project with a geospatial aspect. Input is a FOSS application created by Lutra consulting that brings the power of QGIS to a portable device for data collection. The Kartoza intern team was challenged to get to grips with Input. The team decided to keep it simple and create a project to collect data from local parks, including paths, trees and infrastructure. This blog follows the journey taken by the team and includes tips and tricks to help novice users. 

QGIS Road to Nerdvana Episode 19 and 20

Posted by: Seabilwe Tilodi | in QGIS | 3 years ago | 0 comments

Today's blog shows the next two episodes in the Road to Nerdvana series. Episode 19 is a walk through using the Google Earth Engine Time series Explorer plugin for QGIS.

Reading and Writing XLSX File with Openpyxl

Posted by: Zulfikar Akbar Muzakki | in Python | 3 years ago | 0 comments

Openpyxl is a Python library used for manipulating Excel files. I came across a ticket that required exporting data to XLSX format, and I used Openpyxl for that as it’s pretty straightforward.

Using geospatial technology to promote Clean Cooking

Posted by: Tim Sutton | in FOSSGIS | 3 years, 1 month ago | 0 comments

Access to clean cooking technology (such as gas or electric stoves) can greatly improve health outcomes. Approximately 3 million people depend on biomass fuels such as wood, coal, and dung for cooking to cook with (source: WHO article on household air pollution). The indoor air pollution generated whilst cooking indoors has serious, negative health impacts, with women and children in particular being affected. In fact the World Health Organisation (WHO) notes:

QGIS Road to Nerdvana Intern Edition

Posted by: Seabilwe Tilodi | in QGIS | 3 years, 1 month ago | 0 comments

The interns took over the Nerdvana space, showing off their mapping skills using QGIS

QGIS Road to Nerdvana Episode 18: Introduction to PostgreSQL and PostGIS

Posted by: Seabilwe Tilodi | in PostGIS, QGIS | 3 years, 1 month ago | 0 comments

This is a walk-through showing how PostgreSQL and PostGIS can be used as a geospatial data store and then the data in that store be consumed and created by geopandas.

Python Type-Hint

Posted by: Zulfikar Akbar Muzakki | in Python | 3 years, 1 month ago | 0 comments

Python is a dynamically-typed language, which means the interpreter does type-checking when the code is executed, and the variable type can change over its lifetime.

Making Django Custom Migrations

Posted by: Zulfikar Akbar Muzakki | in Python | 3 years, 2 months ago | 0 comments

Working with Django, we must be familiar with makemigrations and the migrate command. We use makemigrations to automatically generate migration files, and migrate to apply them.

QGIS Road to Nerdvana Episode 14: Fun and games with QGIS Server

Posted by: Seabilwe Tilodi | in QGIS | 3 years, 2 months ago | 0 comments

In this episode, Charles and Tim walk through setting up a QGIS server in docker with data and QGIS project files published in PostgreSQL / PostGIS. They have made a resource pack with the configuration files created and the sampled data etc., all of which are available at:

QGIS Road to Nerdvana Episode 12: Dashboards revisited!

Posted by: Seabilwe Tilodi | in QGIS | 3 years, 2 months ago | 5 comments

In case you missed out on Episode 12 of our QGIS Road to Nerdvana, click on the link and enjoy the stream:

QGIS Style Sharing Repository

Posted by: Seabilwe Tilodi | in QGIS | 3 years, 2 months ago | 0 comments

Woohoo! A new way to share styles in QGIS! Work sponsored by Kartoza.

Python Mocking Introduction

Posted by: Zulfikar Akbar Muzakki | in Python | 3 years, 3 months ago | 0 comments

Mocking is a process in unit testing when the test has external dependencies. We isolate our code during the test, without having to worry about the unexpected behavior of the dependencies. For example, we create a routine to save something to Firebase which utilizes 3rd party library called Firestore. There could be problems when saving data to Firebase, like internet connections, wrong configuration, non-existing document, you name it. Instead of testing every possible scenario when saving to Firebase, we only test that Firestore is called with correct parameter, which represents our data. The tests for Firestore itself should have been done by Firestore developer. Hence, we can shift our focus towards the implementation of our code. It also reduces testing time because we don’t need to send our data to Firebase.

QGIS Road to Nerdvana Episode 11: Aggregate dashboards

Posted by: Seabilwe Tilodi | in QGIS | 3 years, 4 months ago | 0 comments

Tim Sutton decided to change things up a bit, he was joined by Charles and Seabilwe from Kartoza and the three made aggregate dashboards in QGIS. It is just the first steps and a lot of bumbling around, but hey, maybe you will learn something!

Have a question? Get in touch!