During my master’s studies, I began contributing to the enhancement of the GRASS GIS user interface (GUI). My main goal was to increase its user-friendliness, making GRASS accessible not only to experienced users with scripting knowledge but also to GIS beginners.
Over the years, I have worked on several projects, including:
In the summer of 2023, during the community meeting in Prague, we recognized the need for a brand-new feature in the GUI - a History pane to track the history of executed commands. This idea instantly excited me, and by the end of the sprint, I had already developed a basic prototype that displayed a command history tree and by double-clicking on a command, users could open the module window with pre-filled values, making it easy to re-edit and re-execute previously run commands.
Fast forward to the end of 2023, as a PhD student, I applied for a GRASS Student Grant to make command history navigation easier through the History pane. The project proposal was well received, and I began the implementation. The main task involved switching from storing command history in a plain-text format to using a more flexible JSON format. This change allowed to save additional important details, such as execution time, duration, status (successful, failed, running, aborted), and region settings at the time of command execution.
Once the data was reliably stored in JSON format, the next step was to display it effectively within the GUI. To achieve this, the History pane was divided into two sections: a tree view of the commands at the top and an information panel at the bottom. The command tree was further enhanced by sorting commands by time intervals and adding icons to indicate their status.
Besides showing details of the selected command, the information panel includes one interesting feature - users can update their current computational region settings to match those used during the command execution if they differ.
Although there is still room for improvement, I believe that the new History pane streamlines command management from the GUI. Detailed information about the project can be found on the project wiki.
Linda Karlovska