Proposals for a new GRASS GIS startup mechanism


GRASS GIS 6.4 Tcl/Tk Startup Window GRASS GIS 6.4 wxPython Startup Window GRASS GIS 7.5 Startup Window
GRASS GIS 6.4 Tcl/Tk GRASS GIS 6.4 wxPython GRASS GIS 7.5

This page is meant as a brainstorming exercise to collect ideas on how to make GRASS GIS startup more newbie-friendly. The general idea is to make initial contact easier and with a less steep learning curve.

This discussion also contains a paradigm choice: should GRASS continue to demand a choice by the user about the projection system to use, possibly making this choice easier and more transparent, or should GRASS start in an arbitrary projection system (lat-long has been suggested) and then inform the user that she might want to change system, or highlight the issue as soon as the user tries to import data which is not lat-long ? To be discussed...

Keep current paradigm, but make contact easier

Proposal A1 (Moritz): Make startup screen more newbie-friendly

In this proposal, the idea is to keep the current paradigm, but to use vocabulary that is more easily accessible to the user and to guide the user through the choices in a different way than currently.

The startup screen is organized in three tabs (but one could imagine three initial buttons that then lead to the next screens). Each tab provides a small collection of easy choices corresponding to different possible paths into a location. Locations are called 'projects' to correspond to what a user might find elsewhere.

  • Tab 1 provides easy entry into the creation of a new project. In the new project (aka location) the PERMANENT mapset is used and the interface opens up immediately:

  • Tab 2 provides access to pre-defined locations (similar to the current "Download" button). The OSM data is just a brainstorming idea to allow the user to designate a zone on a map and download main OSM layers for that zone:

  • Tab 3 provides access to existing projects (aka locations)

Proposal A2 (Gcmillar): Quick access through well-designed tabs on the side

This proposal retains similar structure to current paradigm, with idea to use tabs (on the side) designed with simple images and one-word descriptions for what they access ("New", "Recent", and "Open").

Splash Screen

GRASS startup "Splash screen"

  • Splash screen appears when users first open GRASS. It was decided this should be the first thing users see, instead of simply opening to one of the three tabs (below) so that users do not become frustrated from seeing options they do not need (e.g., user only wants to open project they have been working on in "Recent" tab, and do not care to see options for starting a new project in "New" tab (see below).
  • A better-designed image to use in splash screen may be needed.

"New" Tab

Designed for the first-time user and / or any user looking to create new Locations, Mapsets, and / or Workspaces.

GRASS startup "New" tab

  • "New Location" option opens pre-existing wizard for defining a new location.
    • Preferably when this is selected, a dialogue window asks the user, "First time using GRASS? Check out the Online Manual (linked) for tips on getting started." This can be disabled to not be shown anymore by more experienced users.
      • This message could also be shown on Splash Screen.
  • "Template 1" & "Template 2" options open simple sample datasets (e.g., county boundaries) in commonly used locations (e.g., NC) to provide new users a place to start from (especially users just looking to explore).
    • "Template 1 & 2" names are temporary, should be renamed to describe dataset they contain.
  • "More Templates" option opens wizard for browsing downloadable sample datasets.
    • Wizard could contain option to browse for more templates online.
  • "New Mapset (Existing Location)" option opens wizard for user to select a Location (that the user has previously defined / created) for which a new Mapset will be created in.
  • "New Workspace (Existing Mapset)" option opens wizard for user to select pre-existing Location & Mapset (user-defined) for which a new Workspace will be created in.
  • "More Options" option is not yet well-defined. Suggestions for what this should open are welcome.

"Recent" Tab

Designed for quick access to recently used data.

GRASS startup "Recent" tab

  • "Recent" Tab separates all recently used data into three categories: Locations, Mapsets, and Workspaces.
    • GRASS session should be able to be started with selected data from any of the three categories.
  • On the right, "Selected Data Information" displays relevant and necessary additional information about the selected data.
    • Helps inform user that the data they have selected is what they want / need to open, instead of having to reopen after discovering it wasn't the data they had in mind.
    • "More Info" radio button should display further information about the selected data (i.e., txt file is displayed, containing extended descriptions of the to-be-opened data).
  • Number of recently used data displayed in each category is not decided upon (above example shows two, but three may be better option).
  • "Database" category may be needed.

"Open" Tab

Designed for more experienced users looking to open data already on computer.

GRASS startup "Open" tab

  • "Current Database Directory" shows directory the user is currently in, and will work from when data is opened.
    • Option is given to change directory with "Change" radio button.
      • "Open Existing GRASS data" window below should then automatically refresh to display change in database.
  • "Open Existing GRASS data" displays data in database in same tree-like structure as the "Data" tab in Layer Manager.
    • Each data type (Database, Location, Mapset displayed with matching "icon") for easy identification.
    • Display of Workspaces may be needed as well (above example only uses screenshot of "Data" tab in Layer Manager).
  • "Selected Data Information" is again showed on the right (same functionality as in "Recents" tab).

Proposal A3 (Prague 2019): Data tree and big buttons

  • Keeping current good practices is beneficial and no change is needed as other software packages require similar setup procedures (Git, PostgreSQL, ArcGIS Pro, Zim).
  • Startup window:
    • One startup page, no tabs
    • Tree in the center
    • Big buttons on the right for the important things
  • Data tree:
    • Same tree as in Data tab, i.e. Data Catalog
    • No maps visible by default
    • Workspaces visible by default
  • Big buttons:
    • New location based on existing data
    • New location based on EPSG code
    • Download sample location
    • Other (I want to do something else)
  • First start:
    • Create "grassdata" in a reasonable place automatically.
  • This can be implemented step by step with each step providing benefits immediately (see the roadmap).
    • Additionally, all parts are useful even if we decide for starting GRASS GIS in some predefined location or provided this as an additional option (button).
    • Contributors can take individual parts of the roadmap and implement them (most of the tasks are independent of each other).
  • See notes from GRASS GIS Community Sprint Prague 2019 for details, discussion, and reasoning.

Change paradigm

Proposal B1 (Moritz) : Open into a predefined lat-long location but give information message

In this proposal, GRASS GIS launches directly with layer manager and map display, and displays a world map. The location is a lat-long system with a worldwide, 1 degree-resolution region. Before the user can interact, however, a message is displayed informing about the importance of projection choice for spatial analysis. The user has the option to get out of that message to simply explore GRASS GIS in the default location, or to create a new project with her own data:

Notes from discussions

NCSU GeoForAll Lab, May 30, 2018

These are notes from members of NCSU GeoForAll Lab.

  • Similar window as now but just hide path to GRASS GIS Database. (PT) Automatically find or create the directory when started. (VP)
  • Something like tabs (4 or more) on the side from most basic on the top to most advanced at the bottom. (GM) Maybe button, not tabs. (VP)
  • Sample datasets translate to templates in other software, so they should be called templates (at least in this context). (PT)
  • The default should be "recent mapsets/workspaces" (not applicable for the first time user).
  • What came up, but is not part of the startup:
    • Different layouts of GUI (maybe just too many options)
    • Scariness of and bad associations with terminal window/command line on Windows (but consistency and most people seem to ignore it anyway)
    • Low resolution, all the time the same splash screen, e.g. Blender also includes version number (splash is the same as about box in Blender). Different image for each release can be achieved by creating a pool of ~20 images (one for each minor (x.y) release).

grass-dev mailing list: a proposal to rename location

These are notes from a discussion on mailing list.

  • The term location in GRASS GIS refers to collection of data with common CRS/SRS. (MB)
  • The term location refers to something else, more general in today's GIS world and geospatial field in general. (MB)
  • GRASS (GIS) Database (Directory) can be used as a project similarly to how Location or Mapset can be used (just depends on the user). Potentially, non-GRASS data can be stored in that directory as well. (NA)

NCSU GeoForAll Lab, June 5, 2018

These are notes from members of NCSU GeoForAll Lab.

  • What New can split to (all overlapping options):
    • new location (wizard)
    • loc from template
    • new mapset (new from recent?)
    • new from recent
    • more (options option) -> wizard
  • Word open is not properly describing what is happening. Replace it with Connect to Mapset or Open Workspace. It is perhaps open "map" (i.e. workspace or mapset) or start a new session. (PT)
  • CRS of Location should be easy to view by user (#992, #3580). I have started to just name the Location with EPSG code. Tend to use Mapsets to organize projects. The work I've been doing is all within same geographic area, so I want easy access to the same base layers and data from other projects that use same EPSG. (KM)
  • No right click in startup for additional info. "Show me more" button is better. (PT)
  • Text like map names and counts won't be enough for visually oriented people like cartographers, thumbnails of maps will be needed. (PT)
  • Workspace file (VP)
    • Save D/L/M (#3575 Associate database/location/mapset with workspace file)
    • Save CWD (#3573 Save current working directory in wxGUI workspace and use it)
  • We need the recently opened "files":
    • Recent workspaces
      • #2604 recently open workspace in wxGUI
    • Recent mapsets
      • maybe shown at the same place as workspaces in a separate list or distinguished by a graphics
      • #3584 Remember recent mapsets
    • Recent locations
      • useful for creating new mapsets or switching between mapsets
      • it might be already covered by mapsets
    • Recent or all databases
      • good for list/tree such as the one in Data tab, or selection in the current startup
      • #572 Remember recent GIS Data Directory
  • Template should have something there when opened (i.e. couple maps need to be displayed, so probably workspace needs to be opened).
  • Workspace as part of location or mapset in the sample location (aka template). (VP)
  • What came up, but is not part of the startup:
    • It is hard to "find" the Data tab (or understand its usefulness). Perhaps there should be additional path ways to find it. (KM) (This is (or at least was) a common case also for Modules tab. (VP))
    • The place where location/mapset things are in the menu might not be optimal. It is in Settings as GRASS working environment together with Preferences (e.g. which font you want to use) and Addons extensions (what extra modules you want to install). (The other two items Computational region and Projections are more related.) For example when we consider that mapset path would be stored in the workspace file (#3575), mapset could be then switched from File > Workspace and Settings > GRASS working environment > Change mapset. If database/location/mapset is the data we are using/opening/connecting to then why it is in Settings and not e.g. File menu? (VP)
    • Number of automatically displayed layers after import should be limited (import of temporal multiband leads to a really long rendering time). (VP)
  • After meeting notes:
    • Create location from file > Import file > GUI opens but it is empty. This could be solved by generating some workspace (like the mapset bound workspace) during this first start. (VP)

Anna and Vaclav, June 18, 2018

Discussion about Proposal 2 (Gcmillar): Quick access through well-designed tabs on the side.

  • The good parts:
    • Recent items
    • Quick access to a lot of options
    • Visually appealing
    • Efficient and simple design with places for additional information and metadata
    • It is a significantly redesigned GUI aiming at both new and current users
  • Splash Screen:
    • Does not seem useful enough by itself even with additional info.
    • Merge with Recent.
    • May not serve well as true splash screen since it may not be possible to load it fast enough.
  • New Tab:
    • A lot of depends on template vs sample dataset controversy.
    • First row seems overloaded: loc wizard/new location button, templates/sample datasets, shortcuts from loc wizard.
    • Second row seems empty: Only 3 options and the last one is just a placeholder.
    • New workspace button: This is basically the current state, i.e. start an empty GUI. Is this how people think about it? Do we want to promote this way?
      • It seems completely counterintuitive for current advanced users, but might be fitting to new users.
      • Making Workspace part of the hierarchy (and e.g. putting it to the Data tab tree) is problematic because db/loc/mapset are here to separate data while the workspace, although often showing subset of what is in the mapset, puts the data together rather then separates them (even from diff mapsets).
    • New mapset button: This will be also possible from the Open tab because that's where the advanced users are likely to go. It may be available also from the Recent tab.
    • New location is actually a new empty/blank location, the others are from the template, so if two words, then "Empty location".
    • New two rows suggestion:
      • First row - Empty location: Using EPSG, XY, WGS84, ..., More
        • Items from the first page of loc wizard plus few often used ones (either by everybody like WGS84 or by the user (which requires to store e.g. recently used EPSGs)), i.e. "quick access", with More button going to loc wizard.
      • Second row - From template/With data: Sample NC SPM dataset, LL World Template, ..., More
        • Sample datasets and templates (whatever the distinction is or is not, it is arguable that template without data is more the "quick access" button from above) with More button going just to a full list (of whatever was installed as template to the operating system or is available online).
      • Possibly change oder.
      • Problems:
        • No place for New Mapset which seems quite fitting (and New Workspace if we go with it)
        • Empty location part contains the "quick access" items taken from loc wizard but these include "From existing data" which possibly import existing data.
    • Recent tab:
      • Merged with the Welcome/Splash Screen (just different content for new and returning users, but same default tab)
      • Details if present at all should be part of the item in the selection, otherwise it is not quick enough.
      • Workspaces will need a full paths. Mapsets locatons.
      • Locations here need to be reconsidered. It seems inappropriate here (similarly to database dir) because mapset needs to be created in it first. Even if we consider Workspace subitem of Mapset, an empty workspace is created without a name (file name is selected later), but Mapset always requires name to be created (similarly location would require CRS/loc wizard). On the other hand, new mapset from recent location is exactly what students need when following assignments in a course which is using one location (or couple of locations).
      • These can be in further tabs to show more (items and kinds of items), but that 1) makes it more nested 2) potentially breaks the one click advantage (but we also could remember the last tab user used)
    • Open tab:
      • Why not to have multiple databases in the first level of the tree (see e.g. #3576)?
      • Should the maps by part of the tree or of the info part?
      • It could show locked mapsets on Linux/Unix by using a different icon.
      • Last used one could be preselected as it is now. Additionally all recent items could use different icon.
      • With the functionality of data tab/data catalog (adding new locs or mapsets), renaming, it would be similar to the current page which is great for advanced users, but it may interfere with simplicity and it may create confusion (more than one way how to do a certain thing, it is tab open, but it is actually doing management, maybe there should be only the non-destructive actions, so new and maybe rename, but no remove).
      • Might the go-to tab for advanced users, should we make it possible to show it as the default one?

Martin and Vaclav, July 12, 2018

Short comments on Proposal 2 (Gcmillar): Quick access through well-designed tabs on the side.

  • Recent:
    • Mixes Workspaces, Locations and Mapsets, confusing?
    • "Project" as mixture of Workspaces, Locations and Mapsets
  • New:
    • New Workspace only, choice of
      • New WS with New Location
      • New WS with New Mapset in existing Location
      • New WS with New Workspace in exising Mapset

NCSU GeoForAll Lab, August 28, 2018

These are notes from members of NCSU GeoForAll Lab (AP, GM, VP).

  • Splash:
    • Splash is needed for the main GUI not the startup.
  • If not splash, what is the default?
    • If new user (no recent), open the New tab.
    • If there is recent, open the Recent tab.
    • But what if we there is no recent, but there is GRASS database in one of the usual places (e.g. ~/Documents/grassdata after what installer on Windows creates it)?
      • Possibly remove that feature from the Windows installer since it is for beginners and this should superseded if not already superseded by the Download button in 7.4. This should take care of most novice cases because there is no such option on Linux).
  • Recent:
    • The info/metadata should be in the list, not after clicking.
    • However, implementing just the list is much faster, so we should start with that.
  • Workspace importance:
    • If we auto load last autosaved workspace for each mapset or e.g. its default workspace in case of sample datasets, then start with empty workspace makes more sense, i.e. is more important/needed.
  • 3-4 tabs option:
    • Recent
    • New
    • Open
    • Manage (optionally merge with open)
  • 4-button option for the New tab:
    1. New blank/empty location
      • Possible names:
        • Create location
        • New empty location
        • New blank location
        • New location
        • ...
      • Goes to location wizard
    2. New location using sample dataset (current Download button)
      • Possible names:
        • Get location
        • Download location
        • Create location from sample data
        • New location from sample data
      • Goes to selection of downloads
    3. New mapset in/from existing location
      • Divides into:
        • All locations
          • In current database? In all past or recent databases?
        • Recent locations
    4. New (blank) workspace in/from/for existing mapset
      • Divides into:
        • All mapsets in all locations which is basically whole (current main GUI) Data tab tree (datacatalog) whether we limit ourselves to one database or not.
        • Recent mapsets
    5. Additional section at the bottom could contain small buttons covering the "quick access" cases from below.
      • Advantage of one list is that the suggested downloads like NC SPM disappear after some which is probably appropriate for most users.
  • 2-3 groups option for the New tab:
    1. Blank/empty locations: WGS584, EPSG, Existing File, UTM, XY, More
      • Most of these lead to further selection.
      • Most of them are for skipping the second page in location wizard (choose method).
      • More goes to standard wizard.
      • These could dynamically change, e.g. by adding recently used EPSGs and removing UTM if option not used.
    2. Download (sample data): Full NC SPM, Basic NC SPM, ..., More
    3. New Mapset
      • Perhaps more common for 2nd time users than new location.
      • But Does not really fit here
      • Would lead to selection of locations (see above)
      • Most similar button is a New Workspace button
      • To make it a 3rd row we could show buttons for creating mapset in a recent location
  • General Data tab (datacatalog)/Manage tab functions
    • Reproject whole mapset function
    • Reproject whole location function
  • Templates versus sample data:
    • There is also create location on the fly automatically from local OSM data and other sources.
    • Although many programs have templates like office or graphical programs, sample dataset is what usually comes with analytical programs.
    • However, concept of document/project templates is still useful as an argument for not showing blank map display when opening a sample dataset.
      • We should put a sample, default or recent workspace into to each mapset.
        • There can be one recent for every mapset. Last closed g.gui wins.
        • Similar to computational region (WIND file) but autosaved by GUI.
          • There can be even an analogue to a default computation region, i.e. a default workspace in PERMANENT mapset which is used when the mapset does not have its own. This does not need a separate file as the PERMAMENT recent can be used as the default for simplicity.
        • Works well enough for opening the sample dataset for the first time.

GRASS GIS Community Sprint Prague 2019


Notes from VP, AP, ML, OP by VP.

  • No redoing database/location/mapset mechanism.
  • Maybe use different names, but perhaps better explain and present in the first place because there might be lots of conflicts with names such as project.
  • Create "grassdata" dir automatically if starting first time (and no grassdata exists)
    • Windows: in Documents
    • Linux: in home
  • "Create new location" ("create project")
    • From existing file
      • Needs:
        • file name
        • location name
    • From EPSG
    • "Something else"
  • Current location wizard should simplified but kept
    • Simpler first page and simpler dialogs if needed, but same options as now, so it will in fact add pages, but it should be simpler for users.
    • Interface issue: Next button versus "Do this button"
  • Use data catalog widget including data items in startup
    • However, the data part needs to be lazy loaded.
      • Add lazy loading to Data Catalog
      • Add "Show content" on right click (any level, just recurse down)
  • Open recent tab (see earlier above)
    • Show the same tree as in Open tab but with "recent filter"
      • Keeping list of recent for every kind
      • Show if recent and not already shown as a parent
    • Show all locations, show all mapsets context menu button might be needed.
    • Example for 3 recent items of a kind (tree contains last 3 mapsets, last 1-2 locations, 1-2 databases):
      • /home/grassdata
        • nc_spm
          • PERMANENT
      • /home/grassdata
        • nc_spm
          • landsat
      • /home/grassdata
        • Oregon
          • PERMANENT
      • /project1/grassdata
        • California
      • /home/project2/grassdata
      • /home/project3/grassdata
  • Data tab:
    • Include workspaces
      • Workspaces could be read and put under the mapset
    • Roots:
      • Databases
        • /home/grassdata
        • /home/project1/grassdata
        • /home/project2/grassdata
        • /data/grassdata
      • Workspaces
        • My Workspace 1
        • My Workspace 2
    • Collect workspace paths when saving them
    • Collect database paths when starting in them
  • Workspaces (possibly) inside mapsets in Data tab based on mapset stored there
  • Filters:
    • Recent
    • Workspaces only
      • ie mapsets with workspaces only
  • Workspaces could be also stored in mapsets
  • Priorities:
    • Workspaces not priority for new users
    • Multiple databases not priority for new users
  • Data tab as default (or first) tab in the Layer Manager to lead people to data in the current location.
  • Simpler first page in the location wizard
    • Challenge: Clicking a big button is simpler, but wizard by default uses radio buttons and a next button.
  • Use in-GUI documentation in the startup and remove as many buttons as possible, replace by context menu
    • Challenge: Search requires a widget (nested in context menu is strange)
    • Some buttons anyway needed for quick actions
  • Three ways how to show workspaces:
    • Use separate tree in a separate tab/window or on button pressed.
    • Add another node on the basic level with all workspaces listed
      • Mapset needs to be mentioned somewhere.
    • Together with rasters and vectors in the same tree.
      • This option was chosen, but startup window and data tab will have opposite defaults (data enabled and workspaces disabled and the other way around).
  • General design goals and principles:
    • Convenient is better than consistent.
    • Reduce number of clicks user needs to do start.
    • Every click counts.
    • Show the most specific thing possible based on the current state of the environment, i.e., use all knowledge available to reduce number of clicks for the most likely way through the GUI.
  • There still could be an additional option "I just want to explore"
    • This could do some small download (one of the sample locations) or generate some data (that could even be a choice) automatically and just to GUI.
    • Having this button on the startup scree would allow to skip the startup when opening GRASS GIS the first time.
    • See image above in #Changeparadigm

Prague Roadmap

Location wizard (no dependencies):

  • Remove map picture
  • First page:
    • Database directory not editable but mentioned
    • Location name marked as required
    • Location title (renamed as description) marked as optional
    • "Set default region and resolution" removed and set automatically if info is available
      • Tickets in the opposite direction: #504, #592
    • "Create user mapset" removed (user can do it from the data catalog in the future, now with a button in the startup window)
  • EPSG page:
    • Remove path to "/usr/share/proj/epsg"
      • Advanced users can use env var
      • If broken on Windows, new installer/package needed anyway.
    • Merge search and EPSG code text inputs
    • Add link to Possibly put text from text field into a query part of the URL.
    • Show the matching CSRs as user types EPSG or any text (like now), if only a number, assume it is EPSG (don't search through definition)
    • "to WGS" dialog as an additional page
  • Choose projection page (Projection from a list choice)
    • Rename to something like define custom, esp. if search is removed from the EPSG page.
  • Final page:
    • Try harder to show EPSG, e.g. in case file was used
    • PROJ.4 definition
      • Add mechanisms to show WKT for new versions Proj.

Location download functionality (possibly part of location wizard because of Page zero mentioned below):

  • Show something like data catalog but from a metadata file
  • Action there is downloading whole location

Data catalog (no dependencies):

  • Another toolbar on the side
    • This will be the common functionality between all places where data catalog is used.
    • Beginners can ignore this one in startup, but useful for advanced users.
  • Load/show data button on the side
    • Turned on by default in the Data tab
    • Turned of by default and at every startup in the startup window.
  • A choice in context menu to load the data for part of the tree
  • Support multiple databases to data catalog
  • Add button to add existing or new database
  • New location action from context menu on a database node (#3578)
    • This needs a separate widget or improved location wizard for selecting from options: EPSG, File, Download, Other
  • New mapset action from context menu on a location node (#3579)

General GUI (no dependencies):

  • CLI parameters for g.gui:
    • load (display) all data in location as layers
    • prompt user to import more data
    • To be used after new location created by the startup script
    • Either as flags (-d -i) or as an actions option (actions=load-data,suggest-import)
  • Collect "recent info" and "used info"
    • Collect N=5 recent mapsets (#3584)
    • Collect N=5 workspaces (#2604)
    • Collect all used databases (#572)
    • Collect all used workspaces
    • Mapset and database recorded at the same time when GRASS GIS is started or switched to a mapset.
    • Workspace is recorded when opened or saved.
    • Check if the item is already in the list.
    • For the recent, when saving, read all, see if it is in the list, if yes, remove and put at the beginning/end (there is a wxPython API for that)
    • At least on the level of API, recent and general settings can be the same or connected (so they can be the same in the background).
  • Consider making the Data tab in Layer Manager the first tab or the default tab.

Data catalog changes which need "recent info" and "used info" to be collected:

  • Filter in data catalog showing only recent items (#3576)
  • Show workspaces button
    • All previously saved or opened
    • Workspaces shown under corresponding mapset
      • Requires to parse XML of each workspace file and extract the mapset (the parsing step may need to be done in parallel).
      • Challenge: We need to emphasize somewhere that a workspace is "associated with a mapset", not "part of a mapset" since we are showing alongside the data which is stored in a mapset.

Location wizard changes partially inter-depended with a set of new buttons in startup:

  • Page zero is needed with 4 main options need
    • For cases when used not from the 4th button on the startup window - (currently only) context menu on the database item in the data catalog
  • Second page depends on how the wizard was started
    • Jump to EPSG page or georef file page if started by those buttons
    • Go to decide what way to go page (current second page)
  • Page for deciding what way to go (current second page):
    • Only options not covered by the buttons in the startup screen or initial dialog from GUI
      • From WKT (is it useful, perhaps yes, but not only as a file but also as text)
      • XY
      • Projection from a list (or search for projection, add EPSG list?)
      • From PROJ.4 string (isn't this the same as WKT once we have Proj v6 and proj4 strings are completely dropped?)
      • Add also option to search for CRS defined by EPSG? (basically the current EPSG page)

Startup window final phase (partially inter-depended with changes in location wizard):

  • Data catalog left and center
    • Show data disabled by default
    • Show workspaces enabled by default
    • A "show data" choice per item in context menu
  • Big fancy buttons on the right (for the important things)
    • New location based on existing data
    • New location based on EPSG code
    • Download sample location
    • Other (I want to do something else)

New GUI startup video call, May 14, 2020

These are notes (meeting minutes) from video call on May 14, 2020 (posted on grass-dev).

Discussion happened in two areas plans for GSoC 2020 and general direction and ideas for start of GRASS GIS through GUI with a special focus on the first-time user.

GSoC 2020

  • GSoC 2020 will be following the incremental additions strategy improving Location Wizard and Data Catalog (aka the Data tab or the Data tree), i.e., it is still roughly following the Prague Roamap (see above) bringing immediate improvements to all users.

Prague Roadmap concerns and additions

  • In Startup screen, selecting (and double-clicking) a raster map in a Data tree should take user to the mapset which contains this raster and also show this raster.
    • This requires "show raster"/"show vector" parameters in the g.gui and the main wxGUI script.
  • Projection database should be customizable using the same environmental variable which is used by GDAL or PROJ (if there is any).
  • Is double-clicking in the Data tree an obvious way of launching GRASS GIS in a mapset? (Or is it show data for this mapset?)

First-time users

  • First-time user should not have to deal with a concept of mapset (only addressed in the Location Wizard part of the roadmap).
  • A demo location with some minimal data should be part of the installation and copied to some default palace for the first-time user.

Left for the next time

  • Terminology (e.g., should we embrace the word project?)
    • Quote of the meeting: "Workspace is your project and mapset is your workspace."
    • ...and location is your database, database directory is your grassdata, and current working directory is your user folder :-)
  • More detailed analysis of skipping the startup screen, starting in a temporary or demo/world location, and just showing the Data tab instead of the Startup screen.
  • Exact behavior of workspace files, last used files, and last active session.

Related email discussion

  • Why not check for grassdata regardless of case, i.e. also accepting GRASSDATA or Grassdata or GRASSData?

Next steps in GSoC and beyond video call, July 15, 2020

Participants: Linda Kladivova, Anna Petrasova, Vaclav Petras, Moritz Lennert, Martin Landa, Helena Mitasova. Notes by VP.

  • State of GSoC 2020 and next steps:
    • Automatic creation and improved detection of grassdata for first-time user
    • Location wizard
    • Data catalog
      • Refresh and sync when things change in the GUI (e.g., from the Settings menu or File import).
      • Test double click on maps from a different location. (Should be disabled, but causes an error.)
      • Add buttons to add new things:
        • Create location, mapset in current location/database.
        • Import into current mapset (also as a context menu item on mapset, see below).
      • Add context menu items:
        • Import into mapset (like in File)
        • Export map (like in Layers)
      • Search for mapsets (and locations?), not only maps.
    • Tab order in GUI
      • Redo the rest of the tabs and window title:
        • Layer Manager -> (simply) GRASS GIS
        • Layers -> Display(s)?
        • Swap Modules and Console.
  • Data catalog:
    • Read-only mapsets (locked, non-owned, r-x, ...?)
      • Focus in GRASS "permissions", i.e., lock and "primary owner".
      • Handle system permissions as errors (see e.g. is_mapset_valid() in
    • Is allowed editing needed for renaming, deleting, and creating mapsets or locations?
      • Yes. (VP: Have the options enabled to allow a click, but then ask to allow editing first if not allowed.)
    • Terminology of locked mapsets versus allowed editing of other mapsets (note the lock symbol in the toolbar icon)
    • Large databases
      • Does not seem to be a huge issue as long as there is an indication of loading.
      • Loading of only the current mapset or current location or other ways of dealing with large databases should be feature requests.
    • Storing a list of databases (in settings, in workspace, not at all, track recent, track all ever used)
  • Startup:
    • What location/mapset to use as a demo location for the first-time user?
      • Yes, for sure, use the demolocation with a world map which is already present in the source code.
    • What additional behavior is needed for the first-time user?
      • Tell about the need for a new mapset and import of data.
    • Starting GUI in the last used mapset (--text starts in the last used mapset)?
      • Yes, at least experimentally.
    • Always start in some mapset (demo, last, temporary)?
      • Start in the last used and use the demolocation as a fallback when locked or deleted. (Create demolocation if needed. Create a new mapset there if needed and/or find the first unlocked mapset.)
  • Workspaces:
    • Rename to projects?
      • Yes, project or project file is used a lot in other software and the current workspaces share a lot of the same characteristics.
    • Workspace/project is GUI + db/location/mapset + current working directory + ...?
    • A challenge is to communicate to users what is stored, namely that data is not stored there.
    • Track saved projects/workspaces, remove non-existing ones from the list.
    • Do not mix projects/workspaces and data, but test the idea of showing them in a data catalog-like view.
  • Left for next time:
    • History issues in terminal with switching mapset always/often.
  • Next steps for the whole community:
    • Test and create issues with bugs and feature requests.
    • Cover the different tasks leading to starting in a demolocation for the first-time user.
    • Set up a week for testing by community and a feedback session (active mailing list period and a video call with presentation of the functionality).

New GUI Startup Presentation and Feedback, August 31, 2020

This was a video call advertised on user and dev mailing lists. More than 10 users and developers joined (during the 2 hours). Notes by Vaclav Petras.

  • Outline:
    • Linda Kladivova presented the major changes in GUI individually done in GSoC 2020.
    • LK presented a live demo for the non-beginner cases.
    • Availability of the updates (all already available in master branch).
    • General discussion (see notes below).
  • The new design was well received.
  • Concerns about speed and interaction/feedback during loading:
    • The data catalog takes time to load with really large mapsets (time series with thousands of maps).
    • Splash screen shows only for a short time not really covering most of the waiting period. (Probably not related to the data catalog itself, but more important now when no other window was shown.)
  • Documentation needed.
    • Video would be really useful also for promotion.
    • The official documentation, i.e. the related manual pages, needs to be updated (they are not outdated!), but this won't be the primary source of information. More a reference or overview. (We don't know who will read it.)
    • Embedded documentation would be best. (If interactive even better.)
  • Workspaces (called Projects in the future) are related, but whole another issue.
    • Some users would be probably fine with just one workspace/project file per mapset.
    • In-mapset workspace/project file would be useful for the demos. Can be read only without an explicit way of creating those in the GUI, i.e., it would be really meant for demos and advanced users.
  • The different situations during startup require notifications to inform user about what happen.
    • The not-yet-implemented fallback start for a returning user with unusable last used mapset requires a notification because the situation can be confusing as new location and/or mapset will be created in the middle of using GRASS GIS.
    • The start in the last used mapset, although generally agreed on, seems to be confusing or unexpected to some, so a message about "that's what happen and here is how you can change mapset" is needed.
  • An issue related to the startup, although not to the data catalog is presence of command line/terminal window.
    • Making terminal optional is now possible. (Interactive shell is not longer required by GRASS GIS).
    • An option from the GUI to start terminal is desired by some users.
    • A discussion on mailing will follow to discuss the options.

See also

Partially related

Open Trac tickets with startup component

defect type tickets:

encoding information in locale gets lost
Starting GRASS in mapset which is not owned by the user
GUI startup: encoding error if location with accent has been renamed to other name
Provide an error message pointing out that session is not active
starting French WinGRASS sometimes fails because of localisation errors
Clicking Help on first screen does nothing

enhancement type tickets:

grass command should read commands from stdin as an interpreter would do
Launching in text mode should not automaticly use location/mapset from rc file
Save current working directory in wxGUI workspace and use it
Interface needs to warn that directory must be created before start
Allow multiple --exec's

task type tickets:

Remove legacy meaning of LOCATION variable

Open Trac tickets with startup keyword

GRASS startup screen should provide metadata about available locations
associate *.gxw files with grass executable
Main GUI fails to start when g.extension fails when fetching the addons
Avoid errors in parallel creation of tempfiles
Save current working directory in wxGUI workspace and use it
Remember recent mapsets
wxgui: startup menu crunched on small display
Allow interface text to be copyable with mouse

Open Trac tickets with datacatalog keyword

GRASS startup screen should provide metadata about available locations
wxGUI datacatalog: allow actions on multiple selected files
Show recent GRASS Databases in the Data tab
Show info about a Location in Datacatalog
Show info about a Mapset in Datacatalog

Open Trac tickets with workspace keyword

associate *.gxw files with grass executable
recently open workspace in wxGUI
g.gui.animation: save to workspace
Save current working directory in wxGUI workspace and use it

Open Trac tickets with location wizard keyword

wxGUI: allow location wizard to set DMS bounds
wx location wizard fails to create a winkel tripel location
wxPy loc'n wiz: datum transform "0" do nothing still gets default terms set
wxPy loc'n wiz: hardcoded colors not compatible with random desktop themes
wxPy loc'n wiz: doesn't complain about garbage terms

Last modified 4 years ago Last modified on Aug 31, 2020, 7:39:48 PM

Attachments (12)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.