Getting Started with Python for QGIS Plugin Development, and integrating the GRASS library for network algorithms
Rachit Kansal (~rachit99) |
Research regarding Energy Systems, Optimization and consequently conservation and minimising wastage is on the rise. Not only is it one of the hottest research topics but also concerns directly with our survival because of depleting fossil fuels, global warming and ineffective renewable resources. Distributed energy system is a novel model for energy consumption and generation, with optimization. As a part of my GSoC program I got a great look into this field. My project talks about using GIS for Distributed Energy Systems. The goal of this project was to provide interface to GIS functionalities for the Energy Hub Modelling framework developed by HUES, Empa.
This talk will focus on QGIS plugin development which is leveraged in variety of research purposes apart form Energy Systems like forestry, agriculture, emergency services, network analysis, spatial data mining, etc. GIS is a specialised field using complex softwares and algorithms. The goal is to make people familiar with it and with python for such development.
The talk will be about the development of a new plugin for one's own use by drawing examples from my own plugin developed for HUES, Empa. It will cover the development of GUI (in PyQT) and the corresponding functionalities. Also the use of GRASS library will be discussed to show how we can use powerful algorithms for network analysis in python from within QGIS for which there are very limited resources online.
Following aspects will be covered:
- Brief description of GIS.
- Brief description of Distributed Energy Systems.
- Setting up QGIS, GRASS and Python for development.
- GUI Elements and integration.
- Working with the Canvas and QGIS Layers.
- Working with GRASS Algorithms.
- Publishing the plugin.
- PyQt (optional)
- GIS (optional)
I am software engineer at Nutanix, India and graduated from BITS Pilani, Hyderabad Campus in August. I am working as the part of PRISM team, for the development of the intent based API and the intent-gateway and engine. I was also a part of GSoC 2017 as a student with Empa, Switzerland. Working for Empa, I leveraged QGIS to create a GUI based plugin for data collection, simulation, visualisation and optimization of distributed energy systems based on actual data from localities, neighbourhoods, cities, etc. My area of interests include Data Sciences, Machine Learning and Cloud Systems.
Previously I was also a Research Intern at IIRS and developed QGISLite, a more condensed version of open source QGIS and also developed 3 python plugins for internal use and research purposes.
Apart from that I am a Hackathon enthusiast and have won prizes in many national level Hackathons. My winning solution for the financial upliftment of the poor and visually impaired was supported by Microsoft and Accenture and was also a part of Thinkfest'17 (invite only startup event) in Bangalore.
In my college tenure I have been active organiser of the Tech events on Campus during our technical festival. I spearheaded and conducted the first ever Pycon at a college level in India "PyBITS" in 2016, also getting support from PSF.