We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Introduction to STAC API plugin in QGIS

00:00

Formal Metadata

Title
Introduction to STAC API plugin in QGIS
Title of Series
Number of Parts
351
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2022

Content Metadata

Subject Area
Genre
Abstract
STAC or SpatialTemporal Asset Catalog is now a popular option for providers wishing to create accessible catalogs of spatiotemporal asset data for end users. STAC aims to create a standardized and performant way for providers to expose their spatiotemporal asset data, and for users to ingest that data. A 'spatiotemporal asset' is any file that represents information about the earth captured in a certain space and time. Since the development of STAC started in 2007, the STAC ecosystem was not able to use the STAC data in desktop softwares. Recently through collaboration between Kartoza and Microsoft, a QGIS (a desktop GIS application) plugin called “STAC API Browser” was developed to bridge the gap between QGIS users and STAC data. Now using “STAC API Browser” users can access, download, analyze and use a vast amount of imagery data offered by various STAC specification providers, such as Microsoft Planetary Computer. The aim of this talk is to introduce the “STAC API Browser” plugin, give a guide on how to use the plugin inside QGIS, showcase cool things that the plugin supports and how users/developers can collaborate on the plugin project. On top of all, we will also look at how to use the QGIS temporal controller feature with the added STAC data from the plugin.
Keywords
202
Thumbnail
1:16:05
226
242
Stack (abstract data type)Open setWeb pageDesign of experimentsView (database)Covering spacePoint cloudPlug-in (computing)Polygon meshWeb browserData typeOpticsSoftware developerCore dumpSoftwareLibrary catalogStandard deviationLink (knot theory)Landing pageComponent-based software engineeringData structureService (economics)Point cloudLibrary catalogComponent-based software engineeringRight angleSoftware developerStack (abstract data type)Internet service providerLatent heatForcing (mathematics)Service (economics)Data storage deviceSoftware maintenanceInstance (computer science)Temporal logicPlug-in (computing)SatelliteExecution unitCharacteristic polynomialComputer fileCore dumpWeb pageMedical imagingInformationDifferent (Kate Ryan album)Formal languageACIDFunctional (mathematics)Electronic mailing listAreaPhysical systemWave packetQuery languageSlide ruleSoftwareSystem callMiniDiscGeometryComputer animationMeeting/Interview
Vector spaceSatelliteLibrary catalogRWE DeaComputer-generated imageryComputerLibrary catalogNeuroinformatikMedical imagingStack (abstract data type)Type theoryMusical ensembleMathematical analysisInternet service providerEmailVariety (linguistics)Data analysisComputer animation
Standard deviationTransportation theory (mathematics)Google MapsSatelliteGoogolHybrid computerOpen setPoint cloudWeb browserCoordinate systemRotationData typeRouter (computing)Stack (abstract data type)Process (computing)View (database)Plug-in (computing)Raster graphicsDatabasePolygon meshVector spaceWeb pageHome pageCodeVolumenvisualisierungRevision controlFunction (mathematics)Library catalogServer (computing)Proxy serverDemo (music)Bookmark (World Wide Web)BuildingSQL ServerComputerSuccessive over-relaxationDigital filterElectric currentQuery languageDiscrete element methodElectronic visual displayUsabilityComputer programInterface (computing)Raw image formatCalculationThumbnailComputer-generated imageryDefault (computer science)Functional (mathematics)Type theoryLibrary catalogOcean currentStack (abstract data type)Point (geometry)Data managementBookmark (World Wide Web)Computer fileMetropolitan area networkThumbnailWeb browserArrow of timeView (database)Computer iconPlug-in (computing)Temporal logicCartesian coordinate systemInformationLatent heatResultantRepository (publishing)Electronic mailing listInternet service providerDefault (computer science)NeuroinformatikFormal languageMultiplication signBitRevision controlCore dumpField (computer science)Software developerStructural loadSet (mathematics)Filter <Stochastik>GUI widgetDynamical systemMathematical analysisoutputOrder (biology)Level (video gaming)Diallyl disulfideRange (statistics)NumberExtension (kinesiology)Slide ruleConnected spaceComputer configurationQuery languageVariable (mathematics)Configuration spacePartial derivativeComputer animationDiagram
Evolutionarily stable strategyLibrary catalogMathematical analysisPlug-in (computing)Repository (publishing)Medical imagingLibrary catalogMathematical analysisPlug-in (computing)Repository (publishing)Latent heatInternet service providerMultiplication signLink (knot theory)BlogDifferent (Kate Ryan album)WebsiteComputer animation
Transcript: English(auto-generated)
So, hi all, in the next session I'm going to introduce you to a QGIS stack API plugin and how you can use it to access stack catalog inside QGIS. My name is Samuel Maki-Sambue, I'm from Tanzania Dar eslam, I work for Cartoza as
a senior software developer. We are a technological company that provides services for force software, so we provide training, software development and we provide maintenance for the existing force GIS systems.
Also I'm a QGIS core and PyQGIS developer. So we're going to cover, these are the topics that we're going to cover, we're going
to have a brief overview on stack, Spatial Temporal Acid Catalog. For those who have attended session in this room today, they might have an idea of what stack is. Can I just, can those who have attended area session list their answer so I can
know? Okay, so a few of them, then I'll just have a brief overview on the stack. Also we're going to look at the stack components, the stack catalog collection and then we're going to dive in into the stack API.
After that I'm going to give a brief look into the QGIS and QGIS plugins and then we're going to dive in into the QGIS stack plugin. So stack stands for Spatial Temporal Acid Catalog.
I like to define it as a unified language for, unified language that provide access to your spatial data. So let's say you have different satellite imagery providers and let's say you have So what stack does is that it provides a specification where you could, you could use to access
data from both providers instead of, you know, going to each provider and fetch data and use it, stack provides a way that you could just query data and blows from both
providers. Stack focuses on being more searchable and accessible. It has more emphasis on the discovery of data compared to other specifications.
And stack has JSON at its core. That means the whole components of the stack catalog are based on JSON files. And also stack has a distinguished characteristics compared to other specifications.
So for example, stack focuses more on cloud native and compared to other specifications. That is, you could easily access data that's been saved on the cloud. And so the stack components are basically catalog, collection, and item.
So catalog is more of a folder for other components and it is possible in stack to, for a catalog to host another catalog. We have collection which is a unit for storing items and item is an instance that
store the assets which is the main component, like I say, main component for the stack specification. We also have, among the stack components, we also have stack API.
The basic functionality of the stack API is to link in a dynamic way the catalog, the collection, and the item so that the user could find a more structured way of accessing the catalog.
So stack API achieves this by providing end points to each of the stack components. So we can see that we have already looked at that we have catalog, we have collection, and then we have item. And then the stack API has end point for each of those components.
If you just take a look at the image right now, the current slide, you can see that there's a loot page where a user can get all information about the catalog. And then there is a collection. Can I move on? Yes.
Yes, you can see that there is collection here. That is an end point for getting all the collection available on the stack. And then if you look down here, you can see there's items, which is the end point that you can use to get the information for the items that has been served on the
stack catalog. Yeah, stack data. So there's a variety of data that stack can host and provide. You can see, for example, those imagery data and climate data. These images are from the Microsoft planetary computer catalog, which has a lot of data.
And other catalogs are also available, not only from Microsoft. There is also digital F, and then there's also S search. So this is just an example of the type of data that stack can host.
So we can see one benefit of stack is that it provides a structured way of accessing all this data. You don't have to sit down and write an email to a provider, I want this data. You could just use the catalog from that specific provider and then fetch that data
and then do your data analysis or editing. So this is QGIS, a GIS desktop application that enables creating, editing, and analysis
of GIS partial data. QGIS contains functionality through core features and through plug-ins that add on top of the core features. So now we're going to go and talk about the QGIS stack API plug-in.
So around the end of last year, Microsoft reached out to us, Cartosa, and they wanted to develop a plug-in that will enable access of stack catalog inside QGIS.
So we have seen what stack catalog is. Now we are looking at how we could use the data inside a GIS desktop application. So that's where the plug-in comes in. So we started development and on January this year we published the first plug-in version
on the QGIS official plug-in repository. So the plug-in is available for all QGIS 3 versions and we can see that's the icon
of the plug-in once installed. You can see here where the arrow points. The plug-in is available, as I mentioned, in the QGIS official plug-in repository. You can just open the QGIS plug-in manager and then download it from there.
You can just search stack API blows and then just download the plug-in. So plug-ins has a ton of features, I can say. In the current site, we can see that's the main look of the plug-in.
We have connections, which are essentially the stack catalogs. So let's say we have a stack catalog from a planetary computer that has a ton of data. When you open the plug-in, the plug-in will come with default installed catalogs.
So when you click here, you see a list of other providers that are using the stack catalog specification. So the plug-in enables you to edit and add and remove basic functionality for the connection
in the QGIS application. Then you can see below there, there are filters. You could see here there's a temporal filter, filter by date, where you can enter the start and the end date, the range of the type of data, the range for the data that
you want to access. Also, there's an extent here, which you could use to filter data using the extent that you want from the map.
We also have advanced filter and data-driven variables, which are specific way of filtering the data inside the stack catalog. Also, the plug-in supports sorting and the order of sorting for the stack catalog.
So when the user searches, this is how the result tab looks. So the plug-in has, as you can see, enough information for the item.
And it's possible for the user to view assets from the stack item. So imagine you are dealing with a stack catalog itself. You have to go to the browser and then type in the catalog URL.
And then it will list the catalog details, and then you could go to the specific item, and then you will see a list, a JSON file with a list of items. But what the plug-in does for you is that instead of you using JSON file, you could
directly see a widget with the name of the item, the collection that it belongs to, and then the date that it was acquired with a glimpse of what the dataset, the item looks. You can just see the thumbnail here.
And also the plug-in gives you an access to the footprints. So that means you could download and load the footprint of the stack catalog item inside QGIS and see it. And when you download and access the footprint, it will be added as a layer inside QGIS.
So you won't just download it and have it in a file somewhere. No, you see it inside the QGIS map canvas. Yep, so that's searching.
So I'm going to talk about filtering inside the plug-in. So it is possible to filter using extent as I just touched in the two last slides. You could either filter the extent by inputting the values, or you could use a present layer inside the QGIS.
You could use a layout map, a bookmark, something that you have once used. But you could also take the current map canvas, the current map canvas of the QGIS. And you could also draw on the canvas. So this is basically how QGIS works.
For filtering extent. And we are showing you that it's also possible to do that inside the plug-in. It's not that the plug-in comes with its own way of filtering extent. If you are familiar with using QGIS, then you could just easily, you know,
duplicate what you usually do when you are trying to filter items or layers using extent. Also, the temporal filtering, when you want to, let's say you want to filter, because as I've just touched, some of the catalogs have a lot of data.
So sometimes you want to trim down the number of items that you want to view. And the plug-in comes with the temporal filtering, where you can just input dates of the specific range where you want to download. And the current behavior is that they both are inclusive.
And yeah. Data variables. So there's one feature of the star catalogs is that it's possible to,
it provides a way of finding some dynamic filters. So there are some filters that are available only for set of collections and only for catalog. So let's say there's a certain collection for Landsat data.
It might be possible that inside that collection, there are items that maybe there's a possibility of filtering them using, okay, five minutes. Is there a possibility of maybe filtering them using another type of field.
So what the plug-in does is that it exposes that functionality. That's from the star catalog. Now it's possible using the plug-in to fetch those fields and then use them in filtering. Another thing is the filter that we have is the possibility of, you know,
filtering using the available languages, filter languages, which the plug-in supports SQL, supports SQL2, supports SQL text and stack query. So I'm going to go first a little bit. I'm out of time. So this is how the plug-in asset dialogue looks.
So when you click on the item view asset, it will provide you with a list of available assets and then from there you have option either to select and add it to the layer or to download it. The plug-in also provides so in the past we have only talked about the search and
the result tab, but the plug-in also provides the setting tab, which has configurations for download. So this is just an example of an NDVI analysis done with images that was loaded by the
star catalog using the plug-in. Yeah. So that's it. The plug-in is released on QGIS official plug-in repository and it's available on the same tab if you use it and you have some issue, then those are the links you
should visit. One of the things that I would also like to touch on the importance of this plug-in is that it does fill in the gap of users to go to each provider or different provider and instead you just use this plug-in and then download data from the stack catalog,
different stack catalogs and immediately do analysis inside QGIS. So these are the resources that you have. There's a plug-in site and there's official. There's another blog about the plug-in you can go and visit.
There's a stack specification link and there's a QGIS for those who are not familiar with QGIS and it's new time for them. Questions?