developmentseed / eoAPI

[Active Development] Earth Observation API (Metadata, Raster and Vector services)
https://eoapi.dev
MIT License
202 stars 21 forks source link

Design a Front-End Application to Demonstrate eoAPI Capabilities #117

Closed zacharyDez closed 4 months ago

zacharyDez commented 1 year ago

Design a Front-End Application to Demonstrate eoAPI Capabilities

We aim to build a front-end application that can effectively demonstrate the capabilities of eoAPI. In the short term, this application will be a demonstrative tool on our eoAPI website and be shipped within eoAPI as an onboarding tool.

Features

The application should include the following basic features:

Out of Scope

The following features are not included in the first version of this application:

Acceptance Criteria

The acceptance criteria for this task are to link to our design work (low fidelity, mock-ups) and gather feedback from the team and the community.

Additional Steps

We need to ping Oliver to see if he has any additional requirements for this application.

Success Metrics

Success for this task is defined as helping users effectively onboard eoAPI and providing them with an easy tool to demonstrate the different components of eoAPI. The application should also serve as an example for other front-end applications to get started.

Next Steps

Please provide your feedback on the proposed features and any additional requirements you might have. Your input is precious as we aim to create an application that effectively demonstrates the capabilities of eoAPI and aids users in onboarding the tool.

zacharyDez commented 1 year ago

@heidimok @vincentsarago @oliverroick , please let me know if you think of other requirements. Also, can you review the features list to include and exclude? I think you may have a better understanding of the details required to demonstrate the intricacies of eoAPI @vincentsarago .

oliverroick commented 1 year ago

Thanks for putting this together; it seems like a reasonable scope for an initial solution.

One question:

Ability to link to a data source to start building

I don't understand what this means, "to start building," in this context Can you clarify?

heidimok commented 1 year ago

@oliverroick I think @zacharyDez took that from the planning doc that I had put together and what I meant there was that a user would have the ability to link to the source data. I was thinking about the context that users would want to get a url to the data source so that they could then start building their own platforms/tools/features based on that data.

Another related question is:

For the requirement around dynamic visualization:

heidimok commented 1 year ago

UI update Aug 2, 2023:

Link to clickable prototype

In both cases, add comments by clicking on the comment button image


Design decisions

Key screens

image

image

image

image

image

image

This is pretty much the full scope I'm proposing at this time.

Next steps:

@oliverroick would love to get your feedback as comments in the prototype on anything from questions about the flow to the UI components. As a first release are there ways to limit this even more or areas you think we could expand? @vincentsarago does this appropriately highlight key aspects of the eoAPI as a first release? What really key features would you like to see included? @zacharyDez we already reviewed this together but you're welcome to add thoughts here as well or tag anyone else who you think should provide direct feedback

vincentsarago commented 1 year ago

🙏 thanks @heidimok for this

does this appropriately highlight key aspects of the eoAPI as a first release? What really key features would you like to see included?

eoAPI has 4 components:

In this first design, we can see the metadata search part which will use the metadata service but none of the 2 other services (raster/vector). TBH, it's not clear yet how the Vector service could be used but we should make sure we use the Raster one.

Raster Tiles

The raster service enables 2 things:

Per Item visualisation

For Item viz, user should be able to either visualize one asset or mix the assets bands (assuming each assets is one band)

Screenshot 2023-08-03 at 12 12 27 PM Screenshot 2023-08-03 at 12 18 51 PM

demo: https:/ /raster.eoapi.dev/collections/MAXAR_Kahramanmaras_turkey_earthquake_23/items/37_031133101031_10300100E2780300/viewer

Options:

Per Collection visualisation (a.k.a Mosaic)

In theory, titiler-pgstac can create mosaic tiles from any STAC Search (https://stac-utils.github.io/titiler-pgstac/intro/#2-fetch-mosaic-tiles) but in pratique this is not as simple because to be able to create a tile we HAVE TO have the same set of assets for each items returned by a search query.

Screenshot 2023-08-03 at 12 25 23 PM Screenshot 2023-08-03 at 12 38 51 PM Screenshot 2023-08-03 at 12 42 31 PM

The flow of creating a mosaic tile is as:

demo: https://raster.eoapi.dev/mosaic/81abc4dcd1834417b031f23b1366c16e/map?assets=visual&minzoom=12&maxzoom=18

Mosaic Gotcha:

heidimok commented 1 year ago

UI update Aug 16, 2023:

Key Updates

Link to clickable prototype

Instructions: Click on the prototype screen to see blue boxes around things that are clickable.

UI Overview

image

Metadata Service

image

image

image

image

Raster Service

Mosaic Building

image

image image

image

Item Visualization

image

Vector Service

Next Steps

oliverroick commented 1 year ago

I’m still confused about what we’re trying to achieve with this frontend. The new design feels very disjointed; it showcases the individual services that are bundled with eoAPI. This might work for people who know what these services are and what they do but if you want to convince someone to adopt eoAPI, I’m not sure if they will be able to make sense of this.

For example, you can search for items in two different areas, then there’s item visualisation and mosaic visualisation. It's not clear what the difference between item and mosaic visualisation is and how the mosaic visualisation works. I understand, you can take a collection and render a mosaic of its items, but I can only see a bounding box in the demo that Vincent linked. Is there a step missing that is not included in the design? I’m assuming that when I render a mosaic, I have similar options to adjust the visualisation like I can with individual items.

Is there a way to join the different services together, UX-wise? Could we guide the user from finding a collection to visualising a mosaic, and from finding an item to visualising an item? I think this would make for a more integrated demo.

heidimok commented 1 year ago

^ thanks @oliverroick

Goal The goal I'm working from is to create a demonstrative UI for developers that can be shipped within eoAPI that provides an example of what they could do and visualize on a map when using its services, so that they can make a decision about whether to build their own tools using eoAPI.

Overall UX We can certainly try and join the services together so that the user flows from finding a collection to visualizing assets.

heidimok commented 1 year ago

UI update Aug 22, 2023:

Default landing page - prompt to ingest data if it hasn't been done yet

image

Once data is ingested, developers can select collections from that data

image

Once collections area selected, users can browse items

image

This is where a Mosaic toggle or button can exist to see all the items 'stitched' together image

If a user selects an item, they can see a few details and visualize the item assets

image This is where we can incorporate some visualization options that change what shows up for a given COG or other visual asset.


Link to clickable prototype

Open to thoughts here. I think when development starts, the details on design can change, but ideally we'd align on the general flow and features we are highlighting. Does this flow make more sense in your view @oliverroick? Is the goal clear? I think the boundary for this UI is that we aren't helping users search for STAC data. We are trying to highlight capabilities of eoAPI through an interface experience so give people a glimpse of what they could build on their own, using the APIs.

j08lue commented 1 year ago

Quick question - have you made a feature comparison with the MS Planetary Computer Explore UI, which is very related to this effort here and also works more or less plug-and-play with eoAP?

There are a lot of simple but powerful features in that UI, IMO. Like:

Find items as you pan and zoom - progressive disclosure ish

image

Once you selected a collection, you get an overview of the items within your viewport, with additional filtering options.

Nice about this: As a user, I want to progressively discover products of interests, refining my filters and selection iteratively, so I can approach my items of interest even without knowing all the details in advance. (👈 that's me) 🕵️

Hi-fi collection selection

image

Nice about this: As a user, I want to have visual aid and structure to guide me to a collection that is useful to me, so I do not need to parse a lot of text. 🧠

Also: As an eoAPI provider, I want my data to look good, even when I look at it myself, so it seems high-quality and appealing. 😻

Rather than just listing collections, the selection feature includes thumbnails and descriptions, helping the user understand the content of the catalog.

Probably a feature coming from their Catalog and does require that the STAC metadata is in good shape (thumbnails, nice descriptions, etc).

zacharyDez commented 1 year ago

@j08lue I like both features. The progressive filtering based on pan and zoom actions is an excellent add-on to the demonstration.

I also like the hi-fi selection - it looks great with the thumbnail, and providing a description gives more context to the user. Adding the description should be a manageable lift. My only concern with the thumbnail is adding another requirement for users generating STAC catalogs. We want the front-end to demo eoAPI's capabilities and give a short example of how it can be pieced together. The primary blocker in their onboarding process is creating their STAC catalog (correctly) and ingesting it. In a subsequent iteration, we could provide a demonstration or even some GUI to effectively manage STAC catalogs, including adding thumbnails. This could tie into #127.

cc: @batpad

j08lue commented 4 months ago

Just connecting dots - within EOEPCA+, we have plans to further develop STAC Admin. Maybe these designs can serve as inspiration, too.

cc @ricardoduplos