Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Ardon Bailey
    @waystilos
    Is anyone pushing their STAC data to SQL? If so, what libraries are being used? Any info is helpful. Thanks.
    5 replies
    Jed Sundwall
    @jedsundwall

    Hi everyone! Just want to say hi as I'm the incoming ED of Radiant Earth Foundation and am very eager to support this community. :D

    Carry on!

    1 reply
    Henry Rodman
    @hrodmn

    I spun up a stac-fastapi service with a pgstac backend as a docker network on a remote server and almost everything is working really well. I am able to open the catalog with pystac_client without any problems and the search endpoint is working great, but get_collections and similar functions are not working because of a problem with the self_href attribute which is getting set to the current working directory on my local machine even!

    It looks like the root and self hrefs are the same for my catalog, which might be confounding pystac somehow. I tried playing around with the pystac.stac_object internals and could not identify the exact point at which the href for the selflink gets replaced with a local directory, but I presume it happens because the root href is identical to self.

    Here is what I see at my STAC endpoint:

    {
        "type": "Catalog",
        "id": "stac-fastapi",
        "title": "ncx-stac",
        "description": "stac-fastapi",
        "stac_version": "1.0.0",
        "conformsTo": [
            "https://api.stacspec.org/v1.0.0-rc.1/ogcapi-features/extensions/transaction",
            "https://api.stacspec.org/v1.0.0-rc.1/ogcapi-features",
            "http://www.opengis.net/spec/ogcapi-features-4/1.0/conf/simpletx",
            "https://api.stacspec.org/v1.0.0-rc.1/item-search#fields",
            "https://api.stacspec.org/v1.0.0-rc.1/item-search#sort",
            "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core",
            "https://api.stacspec.org/v1.0.0-rc.1/item-search",
            "https://api.stacspec.org/v1.0.0-rc.1/item-search#query",
            "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30",
            "https://api.stacspec.org/v1.0.0-rc.1/item-search#context",
            "https://api.stacspec.org/v1.0.0-rc.1/collections",
            "https://api.stacspec.org/v1.0.0-rc.1/core",
            "http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"
        ],
        "links": [
            {
                "rel": "self",
                "type": "application/json",
                "href": "http://<IP.ADDRESS>:<PORT>/"
            },
            {
                "rel": "root",
                "type": "application/json",
                "href": "http://<IP.ADDRESS>:<PORT>/"
            },
            {
                "rel": "data",
                "type": "application/json",
                "href": "http://<IP.ADDRESS>:<PORT>/collections"
            },
            {
                "rel": "conformance",
                "type": "application/json",
                "title": "STAC/WFS3 conformance classes implemented by this server",
                "href": "http://<IP.ADDRESS>:<PORT>/conformance"
            },
            {
                "rel": "search",
                "type": "application/geo+json",
                "title": "STAC search",
                "href": "http://<IP.ADDRESS>:<PORT>/search",
                "method": "GET"
            },
            {
                "rel": "search",
                "type": "application/geo+json",
                "title": "STAC search",
                "href": "http://<IP.ADDRESS>:<PORT>/search",
                "method": "POST"
            },
            {
                "rel": "child",
                "type": "application/json",
                "title": "hls-monthly",
                "href": "http://<IP.ADDRESS>:<PORT>/collections/hls-monthly"
            },
            },
            {
                "rel": "service-desc",
                "type": "application/vnd.oai.openapi+json;version=3.0",
                "title": "OpenAPI service description",
                "href": "http://<IP.ADDRESS>:<PORT>/api"
            },
            {
                "rel": "service-doc",
                "type": "text/html",
                "title": "OpenAPI service documentation",
                "href": "http://<IP.ADDRESS>:<PORT>/api.html"
            }
        ],
        "stac_extensions": [
            "https://raw.githubusercontent.com/radiantearth/stac-api-spec/v1.0.0-rc.1/fragments/context/json-schema/schema.json"
        ]
    }

    Looking around at public STACs, it seems like there is sometimes one more layer (landing page?) above the catalog with the actual STAC endpoint that serves as the root. e.g. https://cmr.earthdata.nasa.gov/stac/

    Henry Rodman
    @hrodmn

    Does anyone have any ideas on how to configure stac-fastapi to generate a link structure that pystac_client interprets correctly? The catalog's links look like this when I open the catalog using pystac_client:

    [<Link rel=self target=/home/<USER>/workspace>, # this is a local directory!
     <Link rel=root target=http://<IP.ADDRESS>:<PORT>/>,
     <Link rel=data target=http://<IP.ADDRESS>:<PORT>/collections>,
     <Link rel=conformance target=http://<IP.ADDRESS>:<PORT>/conformance>,
     <Link rel=search target=http://<IP.ADDRESS>:<PORT>/search>,
     <Link rel=search target=http://<IP.ADDRESS>:<PORT>/search>,
    ...]

    When I try to run catalog.get_all_collections() I hit an error because it is searching through my local workspace!

    Michelle Roby
    @mirob9363
    Hey everyone! For those of you who do not already know me, I am the new Geospatial Software Engineer at Radiant Earth Foundation! I am reaching out because my engineering team and I met last week to discuss improvements to make to our python client (https://github.com/RadiantMLHub). I am currently improving the functionality of the catalog and asset downloaders. In our team meeting last week, the question came up: what STAC downloader resources are already out there? Ive got a decent vision for how I would like to improve our catalog and asset downloaders, but I thought it would be useful to see what else, if anything, already exists.
    3 replies
    Henry Rodman
    @hrodmn

    When creating a STAC item for multi-band datasets which of these options do people prefer?

    • one multi-band asset
    • several single-band assets

    I have seen both in the wild, and it looks like some of the tooling is better-suited to multi-band assets e.g. https://github.com/developmentseed/rio-stac

    1 reply
    Simon Ilyushchenko
    @simonff
    Hi all. We (Google Earth Engine) are finally looking at how to add STAC support to EE itself (not just have a static STAC catalog of datasets). Obviously, matching the data models is a challenge - EE doesn't serve files, for one. Would someone like to chat with our PM to give your view of how you'd want to use STAC with EE?
    2 replies
    Howard Butler
    @hobu

    Please excuse my dumb question up front. We're hashing about for a kind of "VRT for point clouds", which STAC+extensions would seem to fit decently except for the desire to have A SINGLE FILE.

    Is STAC Collection, Catalog, and Items all jammed single JSON file a valid thing right now? Could it be?

    17 replies
    Matthias Mohr
    @m-mohr
    Does anyone have a relatively fresh deck of slides about STAC? I could only find stuff that is over 2 yrs old ;-)
    Kendall Smith
    @ksgeocoder:matrix.org
    [m]

    As per the EO Extension Specification, there is a limited set of common_name values that are accepted. Does anyone know what values should be placed into the common_name property of the Band Object for bands that don't have an accepted Common Name, e.g. the cloud mask (CLD) or scene classification layer (SCL) bands of Sentinel-2? Should I add these in a PR to the extension, or is there another extension/place these bands should go within a STAC Item? Thanks in advance!

    https://github.com/stac-extensions/eo#common-band-names

    11 replies
    Tom Kralidis
    @tomkralidis
    hi all: question: do any of the STAC Item/Catalog/Collection specifications have conformance URIs?
    5 replies
    Cole Erickson
    @colecloudtostreet
    Hi folks! I'm running stac-fastapi with the SQLAlchemy backend. I'd like to filter on a STAC item property. Nothing fancy, I just want to do a simple comparison like stac_item["properties"]["sensor"] == "sentinel2". What's the best way to accomplish this? Setting the "query" argument on the /search endpoint fails because it looks like the queryables don't include the properties. Setting the "filter" argument is silently ignored as far as I can tell. I'm not sure it's supported in the SQLAlchemy backend. Do I need to migrate to the pgstac backend?
    Prasong Patheepphoemphong
    @astrony

    Hi everyone,
    I do have curoius about the relation or linkage between OGC API - RECORDS and STAC Spec. Do you explain the linkage or relation on it?
    As both of its has similar metadata over the features.

    Thanks all.

    4 replies
    Phil Varner
    @philvarner
    stac-api-validator v 0.0.2 has been released and is now available through PyPI https://pypi.org/project/stac-api-validator
    Jerome Gasperi
    @jjrom
    Hi all - just update https://github.com/jjrom/resto to STAC API 1.0.0-rc.1 with support to Browsable, Children and Filter (Basic CQL2 + Basic Spatial operators + CQL2 Text). You can try a running Sentinel-2 catalog at https://tamn.snapplanet.io
    Jerome St-Louis
    @jerstlouis
    Hi all, is there a way to specify an eo:cloud_cover filter as part of an OGC API - Features -like /items GET query, for implementations that do not yet support Features - Part 3: Filtering / cql2-text? Thank you!
    6 replies
    Phil Varner
    @philvarner
    STAC API Validator https://github.com/stac-utils/stac-api-validator/releases/tag/v0.1.0 has been released. This includes validation for the Filter Extension, among many other improvements
    For STAC API v1.0.0-rc.2, there are currently 4 open PRs that need review -- after this, we can release!:
    Luca Fabbri
    @keul
    Hi all. Exploring how to implement pagination with stac_fastapi. Already looked at details about difference between PaginationExtension and TokenPaginationExtension.
    Can you confirm that those extensions are not including any support for the page size?
    11 replies
    Phil Varner
    @philvarner
    STAC API spec v1.0.0-rc.2 release PR is open for review radiantearth/stac-api-spec#344
    Luke
    @LukeSturtevant
    Hello,
    I also posted this question in the Issues page of the GIT repo Best way to return maximum item object for a request #348
    I would like to return the maximum number of item objects from the server for a given request. I'm running into an error when attempting to increase the limit parameter to the maximum 10000 granule return
    Matthias Mohr
    @m-mohr
    I need yet another round or PR reviews for radiantearth/stac-spec#1192
    4 replies
    Matthias Mohr
    @m-mohr

    We've added recommended citation information for publications if you write about STAC. More details and Bibtex is available from the corresponding repos.
    For stac-spec:

    STAC Contributors. (2021). SpatioTemporal Asset Catalog (STAC) specification (Version 1.0.0). https://stacspec.org

    For stac-api-spec:

    STAC API Contributors. (2022). SpatioTemporal Asset Catalog (STAC) API specification (Version 1.0.0-rc.2). https://stacspec.org

    5 replies
    Matthias Mohr
    @m-mohr
    STAC Forecast extension v0.1.0 has been released. This is a pre-release to spur discussions and foster first implementations.
    https://github.com/stac-extensions/forecast
    Phil Varner
    @philvarner
    1 reply
    Jake Herrmann
    @jtherrmann
    Hi, does anyone have experience using https://stac-utils.github.io/stac-fastapi/ or does anyone know of some usage examples or tutorials?
    2 replies
    Dmytro Cherepovskyi
    @dc-up42

    @cholmes Hey-hey.

    I left a sizable PR ( radiantearth/stac-site#63 ) to add links to the logos on the site.

    Could you or Stuart take a look?

    1 reply
    Chris Holmes
    @cholmes
    Does anyone know if there's any sort of STAC tag to say 'this item is part of a stereo collect'? And ideally describes a way to link to the other stereo pair (or triplets, etc)? It's a use case for us with our SkySat catalog - make it easy for users to search for just good stereo data.
    Or if there's not one already if there's others who'd be interested? And ideas on if it should be its own extension, or should be a new one?
    Brad Hards
    @bradh
    @cholmes I have no solution, but to help you admire the problem, there are a couple of NITF extensions that relate things: STREOB and MATESA. STREOB is in the airborne set (STDI-0002 Vol 1 App E) and tries to describe the stereo relationship in terms of related images and angles. MATESA is newer work from the spectral NITF activity (STDI-0002 Vol 1 App AK) tries to build a graph describing relationships in a more general way (e.g. stereo pairs, derived product, CCD, etc). Document download from the top part of https://nsgreg.nga.mil/doc/view?i=5417 (direct link not practical, sorry).
    Also the download file is missing the leading "S" and the unzip won't have a parent directory. About to beat up the NTB about that.
    Chris Holmes
    @cholmes
    @bradh - super cool, thanks so much! This is definitely a big help - always better to base on the deep thinking someone else has done. The matesa stuff looks quite cool, with the 'concurrent collection' stuff, as it seems like that stuff will become more prevalent as so many different satellites are up.
    Brad Hards
    @bradh
    The driving use case for MATESA was multispectral / hyperspectral.
    In any case, if you have to play the NGA game, useful if you've already got the data in the right format.
    Matthias Mohr
    @m-mohr
    I recently discussed this with others, too. My proposal was to write a (pretty small) new extension that defines the following behavior:
    Each stereo asset is a separate item and then use a new "stereo" rel type to link between two items. One or two fields to describe the characterictics may also be good to have (like a common identifier and the "side"), depending on the use case.
    Matthias Mohr
    @m-mohr
    We went for two different STAC Items as the characteristics seem to differ enough so that it makes sense to have them separate, e.g. position and view angles.
    5 replies
    Marc Pfister
    @drwelby
    If you had a STAC Collection and the same items represented as a STAC ItemCollection, what would be a decent way to rel between them, recognizing that yes, they are somewhat redundant?
    4 replies
    Phil Varner
    @philvarner
    1 reply
    Jake Herrmann
    @jtherrmann
    Is there a recommended way to restrict access to the Transaction extension so that only authorized users can access create/update/delete endpoints? We're using https://stac-utils.github.io/stac-fastapi/
    5 replies
    Marc Pfister
    @drwelby
    I gotta say the GDAL STACIT driver is a lot of fun and I can't wait to see what the community builds with it.
    Kurt Schwehr
    @schwehr
    I've asked NOAA behind the scenes if they can work up a machine readable way to announce satellite outages. e.g. there is a GOES 16, 17, 18 outage today. I only know because of a chain of email forwards. If anyone is already doing this kind of thing in the STAC community, it would be awesome to know so as to not reinvent any wheels
    1 reply
    Atma Mani
    @atma1c
    I am working on cataloging my organizations datasets as STAC and storing them on GCS. The trouble is, these are private buckets and when reading these catalogs in pystac, the HTTPS url requires authentication. The gs:// protocol is no good either. Can anyone share an example of how they adapted the StacIO class of pyStac lib to work with GCS? Or, is there a built-in solution that I am missing?
    1 reply
    Jake Herrmann
    @jtherrmann
    In stac-fastapi, does anyone know how to disable individual extensions in the provided pgstac app? We're using the app provided by the stac_fastapi.pgstac.app module (source code) which sets the list of extensions at import time. We'd like to remove the TransactionExtension from that list, but I'm not sure if it's possible to remove an extension after the StacApi object has already been created?
    Nick Klein-Baer
    @nkleinbaer
    My organization stores assets in S3 and would like to store the object Etag as asset-level metadata. It's easy enough for us to write a custom extension to allow this, but it got me thinking: Since S3/GCS/etc are quite common, has there ever been discussion around a "Cloud Storage" extension? Just brainstorming I can think of a few other metadata properties that may be useful to record - if the object has SSE, requester-pays policies, storage class, etc
    2 replies
    Kendall Smith
    @KennSmithDS
    Hey Everyone! Open ended question here, but I want to get a pulse from the STAC community how folks are using the Label extension, common problems you're running into with implementing it, things you feel missing, etc. Also curious if/how folks are using things like the STAC API query fragments to query items from label collections specifically. Radiant Earth is going to make a push to clean up the Label extension to better handle the different label types most common for ML use-cases. Feedback is greatly appreciated!
    mingzizenmequ
    @mingzizenmequ
    I am a new stac, may I ask how to add labels on the catalog to classify data? Is this possible
    Corey White
    @cwhite911
    I've started a GRASS GIS STAC Extension proposal at https://github.com/tomorrownow/grass-stac-extension. The extension aims to capture GRASS-specific metadata when exporting GRASS databases (i.e., locations/mapsets/data) to a STAC. Any community feedback is greatly appreciated (tomorrownow/grass-stac-extension#1).
    1 reply
    Phil Varner
    @philvarner
    STAC API Validator v0.4.0 is out! https://github.com/stac-utils/stac-api-validator/releases/tag/v0.4.0
    This version incorporates stac-validator and stac-check runs on the collections and items returned by the API, support for passing Authorization: Bearer token header or a query parameter for authorization, and a lot of refactoring the internals of how the http requests are made.
    1 reply
    Jonathan Healy
    @jonhealy1
    stac-validator v3.3.0 has been released https://pypi.org/project/stac-validator/3.3.0/ Functionality has been added to crawl item collections and paginated results. You can do something like this now: $ stac-validator https://earth-search.aws.element84.com/v0/collections/sentinel-s2-l2a/items --item-collection --pages 2
    2 replies
    Kurt Schwehr
    @schwehr
    I've been working on a different style of validation/linting for Earth Engine with the checker component here: https://github.com/google/earthengine-catalog/tree/main/checker/node Check out the doc strings at the top of each file. The goal here is opposite of the STAC spec. The STAC Spec is about flexibility. The GEE STAC checker is about trying to make uniform STAC Collections that all look as alike as possible for super diverse datasets coming from all over the community. The checks are also meant to 1) guide folks towards a uniform end goal and 2) help capture knowledge about datasets and keywords. There is always more to add, but it's now at a point where there is enough for folks to get a sense of it.