I was involved with different kinds of Django projects in the past. Back then the standard approach of attaching your debug interpreter was by creating a virtual environment in your python project. We debugged using PyCharm at that time. JetBrains generously gave us a free licence to use the whole suite of JetBrains tools as their way of supporting open source projects.
QGIS Road to Nerdvana Episode 19 and 20
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 Timeseries Explorer plugin for QGIS and in Episode 20 Tim shows off some of the work he has been doing to integrate QGIS Server and QGIS Atlas reports on his farm project.
Reading and Writing XLSX File with Openpyxl
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
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
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
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 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
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
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!
In case you missed out on Episode 12 of our QGIS Road to Nerdvana, click on the link and enjoy the stream: QGIS Road to Nerdvana Episode 12
QGIS Style sharing repository
Woohoo! A new way to share styles in QGIS! Work sponsored by Kartoza.
Python Mocking Introduction
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
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!
QGIS Road To Nerdvana Episode 10: Speed Map Making (part 2)
Why make just one map in the quickest time possible? Make more! In this video Tim Sutton will again try to go from Zero to a Nice Looking Map as quick as he can.
QGIS Road to Nerdvana Episode 10: Speed Map Making (part 1)
In this video Tim Sutton will be trying to go from Zero to Nice Looking Map as quick as he can. See how he goes about creating the map and see if you can't make a nice looking map in 30 minutes.
QGIS Road to Nerdvana Episode 9: Building a 3D scene from scratch
In this episode Tim Sutton will show you how to make a simple 3D scene in QGIS.
QGIS Road To Nerdvana Episode 8: It's all a big meshunderstanding
In this episode watch along as Tim Sutton explores some of the new mesh capabilities coming in QGIS 3.16!
Using a Docker Compose-Based Python Interpreter in PyCharm
Working with Web Data using Requests and Beautiful Soup
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
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
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.