[GRASS-dev] GSoC 2020- Final Report: Creation of a new GRASS GIS startup mechanism

L.Kladivova L.Kladivova at seznam.cz
Sat Aug 29 23:49:29 PDT 2020


Dear Community, 

 
 
I would like to present to you the final report. The final report can be 
also found at https://trac.osgeo.org/grass/wiki/GSoC/2020/StartupWindow#
FinalReport.

I am very proud to be part of this project. I think it brought me lots of 
new experience and it is a great thing that I could contribute to such a 
great project as GRASS GIS is!

 
 
Title: Creation of a new GRASS GIS startup mechanism
Community: GRASS GIS - OSGeo 

 
 
Abstract:
This project focused on the creation of a more user-friendly GRASS GIS 
startup. The general idea was to make the initial user’s contact easier and 
with a less steep learning curve. While programming new GRASS startup GUI 
several tasks were solved – changes in Location wizard structure, Data 
Catalog as well as general GUI. The initial motion was that the Data Catalog
would be only expanded so that in addition to raster and vector data, it can
even manage Locations and Mapsets. Eventually, the Data Catalog took over 
the role of the Startup screen and completely replaced it. After these 
changes when starting GRASS GIS we are directly redirected to Data Catalog 
which became the focal point of the whole system. 

 
 
The state of the art BEFORE the start of GSoC:
Every new GRASS GIS user was always redirected to the Startup screen, where 
he had to perform several steps (set up a database, location, and mapset). 
It was quite confusing without knowing what each of these elements actually 
means. So It can happen that a new potentially satisfied user could give up 
working with this software right at the beginning (I speak from my own 
experience). And that's a shame because GRASS GIS offers a lot of great 
features! Before GSoC, the main role was played by the Startup screen and 
after somewhat confusing setup the GRASS was launched on the Layers tab. At 
this point, the Data Catalog only allowed to work with layers and did not 
allow to manage mapsets and locations. It also does not allow adding more 
than one database. 

 
 
The state of the art AFTER GSoC:
First, let's focus on the first important utility, and that is the Location 
Wizard. This guide for creating a new location has changed quite a lot. The 
first page has been streamlined and somewhat misleading names of the 
individual attributes have also been changed. Similarly, the next page, 
originally named "Choose method for creating a new location", is now much 
more clearly defined with the new name "Select Coordinate Reference System 
(CRS)". CRS can be newly specified using WKT string. However, the biggest 
change has affected the page with the original name "Choose EPSG Code", now 
"Select CRS from list". This window newly supports dynamic search as well as
a hyperlink to EPSG pages which changes dynamically according to the filter 
set by the user. 

The second thing I focused on throughout July and August was the Data 
Catalog. For this tool, it was necessary to take over all the functionality 
of the canceled Startup screen. I would like to emphasize here the most 
important functionalities that were coded. The data catalog now supports the
addition of multiple databases. These databases can be deleted from the tree
or deleted directly from the disk. The Data Catalog also supports the 
creation, renaming, and deletion of mapsets and locations. Among other 
things, it also supports deleting multiple mapsets and locations. Several 
icons have also been added for easy manipulation. Another important thing 
that has been addressed is the distinguishing of mapsets. In the Data 
Catalog, mapsets owned by a different user are now grayed out as well as 
mapsets that are "in use". These cases were also considered when renaming/
deleting, therefore several checks were performed. When switching mapsets, 
it is possible to remove gislock (make available the mapset which is "in 
use"). The term gislock is no longer confused with the lock icon in the 
context menu which allows or restricts editing outside the current mapset 
and which now has the character of an editing pencil. At this point, I would
also like to emphasize the great contribution that Anna Petrasova coded, and
that does the differentiation of databases, locations, mapsets, and layers 
in Data Catalog by icons. 

The third thing that has undergone a big change is the very start of GRASS. 
GRASS GIS no longer uses the Startup screen. The default tab in GUI is now 
the Data tab which contains the Data Catalog. For the first-time user, GRASS
is launched in the Demolocation "world_latlong_wgs84" which should be an 
example of the correct use of the PERMANENT mapset and other user-created 
mapsets. If you are not a first-time user, Data Catalog is opened in the 
last used mapset. 

 
 
Conclusion:
The main task to create a new starting mechanism has been completed. 
Features have also been added compared to the original Startup screen, such 
as deleting mapsets and locations, resolving mapsets by ownership and lock, 
etc. The Data Catalog can be enhanced with additional features, but the main
part where it replaces the Startup screen is done. Similarly, the Location 
Wizard has been improved and is currently much more user-friendly. A more 
detailed description of the new functionalities and a comparison using 
screenshots is contained in a short presentation which will be used for 
presenting the news to the GRASS community. 

 
 
Next Steps:

   * An important task for the future is to improve the first-time user 
   experience. To do this, we could implement information windows that 
   introduce the first-time user to the next steps. Example: Do you want to 
   create a new location? Etc. 
   * Although the Demolocation contains maps, they are not displayed in the 
   map window at startup. This should be improved as well. 
   * Furthermore, it is necessary to focus on the connection of the Layer 
   Manager with the Data Catalog. For example, when creating a location from
   the Layer Manager, a location should be also loaded in the Data Catalog. 
   * Due to the fact that the Data Catalog has become the center of the 
   whole system, further development will be focused on the Data Catalog. 
   Its functionality might be extended to work with time series (raster, 
   vector, and raster3d). 
   

Permanent Links:

Pull requests related to the Data Catalog:

Adapt tooltip 'Add new grass database' button:  https://github.com/OSGeo/
grass/pull/936(https://github.com/OSGeo/grass/pull/936)

Add direct editing of mapset and location name:  https://github.com/OSGeo/
grass/pull/920(https://github.com/OSGeo/grass/pull/936)

Multiple grass databases context menu shows Delete locations: https://
github.com/OSGeo/grass/pull/914(https://github.com/OSGeo/grass/pull/936)

Switch to another mapset when in use (aka force remove lock):  https://
github.com/OSGeo/grass/pull/906(https://github.com/OSGeo/grass/pull/906)

Check for gislock and other issues when deleting/renaming/editing mapset and
location in Data Catalog: https://github.com/OSGeo/grass/pull/904
(https://github.com/OSGeo/grass/pull/906)

Double click on map from different location fails: https://github.com/OSGeo/
grass/pull/886(https://github.com/OSGeo/grass/pull/906)

Allow delete on multiple locations in Data Catalog:  https://github.com/
OSGeo/grass/pull/875(https://github.com/OSGeo/grass/pull/906)

Misleading lock symbol icon in the in the Data tab toolbar: https://github.
com/OSGeo/grass/pull/870(https://github.com/OSGeo/grass/pull/870)

Distinguish mapsets by ownership and lock in Data tab: https://github.com/
OSGeo/grass/pull/849(https://github.com/OSGeo/grass/pull/870)

An action should be required before modifying other mapsets:  https://
github.com/OSGeo/grass/pull/848(https://github.com/OSGeo/grass/pull/870)

Add new icons to Data Catalog for actions avaliable in context menu 
(continue): ​https://github.com/OSGeo/grass/pull/830
(https://github.com/OSGeo/grass/pull/830)

Add new icons to Data Catalog for actions avaliable in context menu: 
https://github.com/OSGeo/grass/pull/811
(https://github.com/OSGeo/grass/pull/811)

Allow delete on multiple mapsets in Data Catalog: https://github.com/OSGeo/
grass/pull/795(https://github.com/OSGeo/grass/pull/811)

Add new location action to database node in Data tab: https://github.com/
OSGeo/grass/pull/790(https://github.com/OSGeo/grass/pull/811)

Do not reload the tree after canceled Delete in Data Catalog: ​https://
github.com/OSGeo/grass/pull/789(https://github.com/OSGeo/grass/pull/789)

Distinguish label and name of node:  ​https://github.com/OSGeo/grass/pull/
783(https://github.com/OSGeo/grass/pull/783)

Add rename and delete of Location and Mapset in Data Catalog: https://
github.com/OSGeo/grass/pull/771(https://github.com/OSGeo/grass/pull/771)

Add multiple GRASS databases:  https://github.com/OSGeo/grass/pull/761
(https://github.com/OSGeo/grass/pull/761)

Merge LocationMapTree and DataCatalogTree: ​https://github.com/OSGeo/grass/
pull/755(https://github.com/OSGeo/grass/pull/771)

InderError after right click on 'GRASS Locations in...' in the Data tab: 
https://github.com/OSGeo/grass/pull/736
(https://github.com/OSGeo/grass/pull/736)

Add new mapset action to Data Catalog: https://github.com/OSGeo/grass/pull/
731(https://github.com/OSGeo/grass/pull/736)

 
 
Pull requests related to the Location Wizard:

Correct errors according to flake 8 and add some description: ​https://
github.com/OSGeo/grass/pull/728(https://github.com/OSGeo/grass/pull/789)

Improve new location's CRS method selection page:  ​https://github.com/
OSGeo/grass/pull/706(https://github.com/OSGeo/grass/pull/783)

EPSG page: https://github.com/OSGeo/grass/pull/670
(https://github.com/OSGeo/grass/pull/771)

Map picture removed:  https://github.com/OSGeo/grass/pull/657
(https://github.com/OSGeo/grass/pull/761)

First page: ​https://github.com/OSGeo/grass/pull/646
(https://github.com/OSGeo/grass/pull/771)

First page: https://github.com/OSGeo/grass/pull/493
(https://github.com/OSGeo/grass/pull/736)

 
 
Pull requests related to the Startup:

Start in a demo/startup location: ​https://github.com/OSGeo/grass/pull/868
(https://github.com/OSGeo/grass/pull/789)

Store list of databases in settings:  ​https://github.com/OSGeo/grass/pull/
858(https://github.com/OSGeo/grass/pull/783)

Changes in Layer Manager tabs order and labels: https://github.com/OSGeo/
grass/pull/802(https://github.com/OSGeo/grass/pull/771)

Make Data tab the default in GUI:  https://github.com/OSGeo/grass/pull/756
(https://github.com/OSGeo/grass/pull/761)

Create grassdata automatically on the first GUI startup: ​https://github.
com/OSGeo/grass/pull/705(https://github.com/OSGeo/grass/pull/771)

Startup GUI automatic detection of grassdata: make case independent: 
https://github.com/OSGeo/grass/pull/664
(https://github.com/OSGeo/grass/pull/736)

 
 
The project that includes all PRs (not only mine) related to this 
problematics:
​https://github.com/OSGeo/grass/projects/1
(https://github.com/OSGeo/grass/projects/1)

 
 
Weekly Reports:
​https://trac.osgeo.org/grass/wiki/GSoC/2020/StartupWindow
(https://trac.osgeo.org/grass/wiki/GSoC/2020/StartupWindow)

 
 
Presentation of new startup GUI in Beamer (Google Drive public folder):
https://drive.google.com/file/d/1dMTAKSW43P3lmIdcSIxRASDomIGxTyJL/view?usp=
sharing
(https://drive.google.com/file/d/1dMTAKSW43P3lmIdcSIxRASDomIGxTyJL/view?usp=sharing)




I would like to express my big gratitude to Google, OSGeo, GRASS community, 
and special Thank you belongs to Anna Petrasova and Vaclav Petras, 
experienced mentors, who taught me many interesting things. :-)




Thank you!





Best,

Linda Kladivova




 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20200830/1e96719d/attachment-0001.html>


More information about the grass-dev mailing list