-
-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
STAC client in QGIS core #300
Comments
This would be really great! I have had a similar idea previously, some things I've considered that I think would make sense (don't necessarily need to be added as part of this, but at least should be kept in mind so as not to make it unnecessarily hard to implement later):
Though possibly just as much work or more than the current proposal by itself, I think the second point is what would really make STAC nice to use in QGIS. After all, it's geographic data so we'd like to browse it on a map, in the context of our existing data, right? |
Hey @uclaros, this sounds absolutely brilliant! At Digital Earth Australia we maintain a large STAC catalogue and STAC search API for Australia's national satellite data archive - we'd be very happy to test any prototype out and provide feedback if it would be useful for you! |
QGIS Enhancement: STAC client in QGIS core
Date 2024/08/01
Author Stefanos Natsis (@uclaros)
Contact stefanos.natsis at lutraconsulting dot co dot uk
Version QGIS 3.40
Summary
This Enhancement Proposal is about bringing support for interacting with STAC catalogs in QGIS.
Currently one can search for data within a STAC catalog in QGIS using the STAC browser plugin, however it is not very practical for browsing the catalog's contents as well as dealing with nested catalogs/collections.
It's time to have STAC catalogs in QGIS core!
Proposed Solution
Code additions
STAC element classes
Basic container classes will be created for STAC objects:
STAC controller
A
QgsStacController
class will be handling the network requests and JSON parsing.The controller will function as a factory, generating reply objects, which will fire a signal once the network reply is received. The appropriate
QgsStacObject
will then be returned by the reply object based on the received STAC object type.QGIS Browser related classes
The necessary classes related to the QGIS Browser will be created:
User facing additions
QGIS Browser Panel
A new STAC node will be added to the browser panel, where the users will be able to add connections to file based or network based STAC catalogs. The catalog's contents (sub Catalogs/Collections/Items/Assets) will be used to populate the tree structure while data will be lazily fetched when nodes are expanded.
Assets with a cloud optimized media type like COG or COPC will be added as remote layers by drag and drop.
A right click context menu will be added for further interaction with the STAC elements, allowing downloading of assets, displaying the selected element's properties and showing items' footprints on the map canvas.
On servers that support the STAC API Item search, collection nodes will also include a Search Items... entry on the context menu that will open and pre-populate the STAC Search Panel.
On servers that support the Collection Search STAC API extension, the root node will also include a Search Collections... entry on the context menu that will open and pre-populate the STAC Search Panel.
Data Source Manager
A new STAC tab will be added to the Data Source Manager which will allow managing STAC catalog connections, similar to other connection based data providers.
A combination view will allow browsing, collection searching and item searching on the active catalog on separate tabs:
Browse
Search Collections
Search Items
QgsMapCanvasItem
for easy orientation.Stac Object Properties
A new Properties dialog will be added which will display the JSON contents of a STAC Catalog, Collection or Item in a human readable way.
Preview assets will be used to generate thumbnails and urls will be rendered as anchors, ideally allowing some navigation between objects (eg going from catalog, to collection, to item and back to root catalog).
Risks
The risk of having the STAC specification grow out of control leaving high maintenance needs to the QGIS implementation code is relatively low.
The spec is stable atm and is designed to be expanded through the use of extensions, special handling of which may be added in QGIS core in the future.
Performance Implications
None, users may be more productive when using STAC catalogs though!
Further Considerations/Improvements
Support for further STAC extensions may be added in the future
The text was updated successfully, but these errors were encountered: