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

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

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

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

Switch to another mapset when in use (aka force remove lock): 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

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

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

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

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

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

Add new icons to Data Catalog for actions avaliable in context menu (continue): ​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

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

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

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

Distinguish label and name of node: ​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

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

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

InderError after right click on ‘GRASS Locations in…’ in the Data tab: https://github.com/OSGeo/grass/pull/736

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

Pull requests related to the Location Wizard:

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

Improve new location’s CRS method selection page: ​https://github.com/OSGeo/grass/pull/706

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

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

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

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

Pull requests related to the Startup:

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

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

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

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

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

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

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

Weekly Reports:
​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

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. :slight_smile:

Thank you!

Best,

Linda Kladivova

Hi Linda,

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.

thanks for your comprehensive final report and your nice GSoC work to revamp
the GRASS GIS startup!

-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Dev-f3991897.html