wxGUI/datacatalog : Add STDS in datacatalog - #7608
Conversation
ninsbl
left a comment
There was a problem hiding this comment.
Good start. Please see my initial feedback below...
- Added _popupMenuMultipleStds for multiple temporal dataset selections - Added 'Register maps' and 'Unregister maps' STDS options - Added 'Duplicate dataset', 'Rename dataset', and 'Delete dataset' options - Added 'Merge datasets' option for multiple STDS selections - Optimized t.connect background checks to prevent unnecessary scanning across all mapsets
…oss-mapset support - Add active mapset locks for --ui dialogs (Create STDS/Register/Unregister) - Enable cross-mapset execution for native background tasks (Rename/Delete) - Implement safe JSON parsing for g.mapsets search path check for Merge STDS option
|
As discussed, some screenshots or the like would be very helpful also for others to better grasp the changes in the UI... |
|
It's not working for me, I think the problem is with the recent changes in t.list. If you don't have temporal connection in PERMANENT, t.list doesn't list anything in other mapsets. |
This should most probably handle both issues. |
|
Having a context menu entry to plot the timeline (https://grass.osgeo.org/grass-stable/manuals/g.gui.timeline.html) of one ore more selected STDS would be a useful UI component IMHO, what do you think? |
|
Also modifying metadata (https://grass.osgeo.org/grass-stable/manuals/t.support.html) would make sense to me. |
|
Just a thought on icons: we could already start preparing Data Catalog for region integration here (#7614), specifically by creating subnodes for type groups. For the STDS dataset subnode, we could use either a plain clock icon or a plain timeline icon as suggested by @petrasovaa. The specific STDS items underneath could then use the standard vector and raster icons. |
- Removed options: Removed the 'Duplicate dataset' option and removed the standalone 'Display map(s)' method. - Updated map ID structuring: Upgraded t.*.list queries to fetch id,name natively and store the map_id. This ensures that maps registered in an STDS from other mapsets maintain their correct paths for basic functions. - Expanded STDS context menu: Added 'Plot timeline' (g.gui.timeline) and 'Modify metadata' (t.support) to the primary Space Time Dataset context menu. - Standardized map actions: Added a 'Copy name' option to STDS maps and fixed edge cases for 'Display layer' and 'Show metadata' by utilizing the new map_id fallback and safely creating cross-mapset environments. - Created a dedicated context menu (_popupMenuStdsMap) specifically for maps inside an STDS. This prevents users from accidentally triggering standard spatial tools (g.rename / g.remove) that desync the temporal SQLite database. - Added temporary UI icons: Replaced duplicate mapset placeholders with temporary STRDS, STVDS, and STR3DS icons in the Data Catalog treeview.
|
Hi @saket0187 , I have been testing your code locally on my linux machine. I fetched your fork and branch and built from a clean state. Unfortunately, the data catalog never loads and the progress indicator just keeps spinning. Could you please report load times for the data catalog on your machine (together with a rough estimate of the number of proects, mapsets, and maps)? I do not have that many maps in my current dev-project: But the other projects do not contain that much more either... I do see some critical wx / gtk messages in the console: But I am not sure if they are related.... This is the system I have right now: ./configure --without-pdal My version of wxpython is 4.2.2 and Python is 3.13.13. I can update elements if there is indication that it could fix some of the issues. Anyway, it would be great if you could investigate... I alos tested on Windows Subsystem for Linux (WSL), but there the GUI justs starts and crashes (which may be due to WSL limitations, though other GUI applications do work there). |
|
The gui can work on wsl, but I just wouldn’t consider resolution or visual theme weirdnesses as grass bugs. But it does work enough to see something |
|
Hello! I have two questions about the desired behavior for space-time datasets in the Data Catalog:
|
It should update. I think reloading entire mapset node is acceptable, not everybody has hundreds of maps. But we can look into more efficient solutions.
It should be:
|
|
When testing I am getting: |
Thanks for reporting that. I did some research and The Data Catalog shouldn't crash on that either way. I've fixed it in Could you try the update? If it still fails, please share the full traceback. |
That fixes it! Thank you. It would be interesting to measure how long the loading takes, e.g. measure time to load the temporal testing dataset with this PR vs on main branch (i.e. without the changes adding the STDS). |
I thought just mix of relative and absolute datasets in one mapset might trigger it but I didn't check, anyway, it's fixed. |
Added the comment and one small optimisation in unregistermap.
The GUI, with the changes, takes around 4 seconds more. |
Is this expected and how bad is it? |
|
Hi @saket0187 , I will test the latest version more thoroughly with the different test data and check performance on my system with the test data. |
|
P.S.: It is not possible to re-size the window from g.gui.tplot other than maximize. Would be good if size can be adjusted... |
@echoix Yes, 3-4 seconds expected.
Good idea, but as far as I can tell wx does not support tooltips on menu items. What I can do is put the reason in the label itself, which changes depending on why it is unavailable. Not sure if that is a good idea though. See below.
Thanks, I looked at #7670. I can do a small follow-up for timeline after it gets merged.
Agreed, worth considering. I'm already working on g.gui.animation, so I'll keep this in mind.
@ninsbl On macOS the window isn't locked to a fixed size, so I can drag-resize freely. I can't reproduce issue for now.
I'll try. |
|
Claude review found several issues. I will post it here: DetailsCorrectness
Performance / cleanup
I think number 5 and 6 are intentional behavior/design decisions to avoid more complexity. See if you can figure out most of these and we can discuss the rest. |
If you have no temporal datasets, this PR shouldn't be adding any significant delay. But since people may have empty databases (even opening temporal tool dialog is creating the database, or some other ways), I wonder if there could be any optimization there, but that by itself would be a query, so I don't know... |
Implemented 1-4 and 8-12
Rename and delete build their own environment with The |

This PR implements the Data Catalog integration for Space Time Datasets, adding several context menu options, automatic UI updates, and native STDS listing. Adding features mentioned in #861
Features added
t.*.importinto Data Catalog toolbar item “Select another import option”.Current State
Please refer to the video below to see the current state of the PR.
Demo Link - New Demo video will be uploaded soon.