Coder Social home page Coder Social logo

resto's Introduction

About

Build Average time to resolve an issue Percentage of issues still open

resto is a metadata catalog and a search engine dedicated to geospatialized data. Originally, it’s main purpose it to handle Earth Observation satellite imagery but it can be used to store any kind of metadata localized in time and space.

resto search API conforms to the SpatioTemporal Asset Catalog (STAC) specification v1.0.0 and to the CEOS OpenSearch Best Practice Document.

It is mentioned in ESA's "Exploitation Platform Common Core Components" as the closest implementation of a catalogue component according to the requirements specified in ESA's "Exploitation Platform Open Architecture"

Demo

The [https://tamn.snapplanet.io] resto server provides up to date access to Landsat-8 and Sentinel-2 images.

You can browse it with the rocket web client

Or test the API :

Installation

TL;DR

The INSTALLATION.md file provides additional information on the installation process.

Deploy the service

To launch a default pre-configured resto instance, just type :

./deploy

This will build locally the jjrom/resto image and launch a resto container exposing the resto API service at http://localhost:5252

[IMPORTANT] Docker on Mac M1

If you're using docker on Mac with apple Silicon M1 chip, be sure to turn off "Use Rosetta for x86/amd64 emulation on Apple Silicon" in Docker Desktop > Settings > General.

When this option is turned on, every calls to PHP preg_match function (which is used by resto) leads to a segmentation fault within php fpm and an HTTP 502 Bad Gateway error in nginx. Why ? I just don't know !

Users, groups and rights

See ./USERS.md

Collection and catalogs

See .COLLECTIONS_AND_CATALOGS.md

References

Here are some projects that use resto.

If you plan to use resto and would like to have your project added to this list, feel free to contact support

Support

resto is developped and maintained by jeobrowser.

For questions, support or anything related to resto feel free to contact jerome[dot]gasperi[at]gmail[dot]com

resto's People

Contributors

baresse avatar crossi202 avatar jjrom avatar michaelbitard avatar mkadunc avatar nicolasribot avatar nitreb avatar pamtrak06 avatar rmourembles avatar valtri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

resto's Issues

Query Analyzer : "last month" incorrectly processed if found after a "in location" block

The query "in Toulouse last month" is incorrectly handled because "in ... last month" is detected as a whole by the WhenProcessor. Correct handling should be "in Toulouse" discarded by WhenProcessor then "last month" detected by WhenProcessor, then "in Toulouse" detected by WhereProcessor.
For instance the query "last month in Toulouse" is correctly analyzed

Unwanted PHP warning on unsuccessful login


Notice: Undefined index: userid in /Users/jrom/Devel/resto2/include/resto/RestoUser.php

on line 72



Notice: Undefined index: email in /Users/jrom/Devel/resto2/include/resto/RestoUser.php</b
on line 76



Notice: Undefined index: groupname in /Users/jrom/Devel/resto2/include/resto/RestoUser.php
on line 76



Notice: Undefined index: email in /Users/jrom/Devel/resto2/include/resto/RestoCart.php</b
on line 50

Can't create two admin users with different login but the same password.

$RESTO_HOME/_install/createAdminUser.sh -u admin -p mypass
INSERT 0 1

$RESTO_HOME/_install/createAdminUser.sh -u admin_resto -p mypass
ERROR: duplicate key value violates unique constraint "users_activationcode_key"
DETAIL: Key (activationcode)=(41b95ca5************b1fa5823a529c74a) already exists.

Missing normalize() function in PostgreSQL

With the following query : http://localhost/resto2/api/collections/RO/search.json?q=haiti

I get the following answer (only partial answer is quoted here) :

query: {
    searchFilters: {
        searchTerms: ""
    },
    analysis: {
        query: "haiti",
        language: "en",
    analyze: {
        What: [ ],
        When: [ ],
        Where: [ ],
        Errors: [
            {
            error: "LOCATION_NOT_FOUND",
            message: "haiti"
            }
        ]
        },
        processingTime: 0.0031042098999
    },
    processingTime: 0.00775694847107
},

I see this in the logs

[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_query(): Query failed: ERROR:  function normalize(character varying) does not exist
LINE 1: SELECT name,countryname,normalize(countryname) as countrynor...
                                ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts. in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 296
[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_fetch_assoc() expects parameter 1 to be resource, boolean given in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 297
[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_query(): Query failed: ERROR:  function normalize(character varying) does not exist
LINE 1: SELECT name,countryname,normalize(countryname) as countrynor...
                                ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts. in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 296
[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_fetch_assoc() expects parameter 1 to be resource, boolean given in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 297
[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_query(): Query failed: ERROR:  function normalize(character varying) does not exist
LINE 1: SELECT admin, normalize(admin) as normalized, continent, ST_...
                      ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts. in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 489
[09-Apr-2015 15:40:34 Europe/Paris] PHP Warning:  pg_fetch_assoc() expects parameter 1 to be resource, boolean given in /Users/laurent.baresse/Documents/workspaces/workspaces/workspace_RO/LocalDeploy/resto2/include/resto/Modules/Gazetteer.php on line 490

Move from license per collection to license per products

Currently license are per collection (i.e. each product within a collection share the same license).
However, in the frame of Recovery Observatory project, one collection should contain products with different licences.
This update implies :

  • to add a new "licences" table that contains licence id, licence urls (json), licence signing type (i.e. once, always, never)
  • to add a licence column within resto.features referencing licence id
  • to apply collection licence to product when no licence is defined within a product

Query Analyzer : do not search for location if only a stop word remains

Assume the query "In the town of Lota". Analyzer detects two locations "in the town" and "of Lota".
The first search for "the-town" with no result and then "the" which appears to be a toponym in Pakistan.
General handling should be : never search location if remaining toponym name is a stop word

Add support to new iTag 'keywords' property

The keywords property in iTag v3.0 indicates :

  • the season of a product (from timestamp)
  • the relative location on earth i.e. northern, southern, tropical, equatorial, coastal

QueryAnalyzer : discard first stop word in location detection

During location detection process, if first word is a stop word discard it unless it is a part of the location name (e.g. "The Hague"). For instance in french "near Toulouse" would be "près (de) Toulouse". In this case "de" should be discarded (i.e. stop word). However in "near the Hague", "the" should not be discarded since it is a part of the city name.

Missing '/' in download link

The download link is missing a '/' between the collection name and the feature identifier (same problem for feature links)

Query Analyzer : "with something" should be discarded

When searching for "with something" and "something" is not a valid keyword, then words should be marked as processed and NOT_UNDERSTOOD.
This is not the case currently - as a consequence "something" is processed afterward by the WhereProcessor leading to incorrect results

Keywords composed by multiple words are not detected

Refactor of QueryAnalyzer in 2.0RC1 broke the detection of multiple word keywords. For instance, in the sentence "Volcano eruption in Villarrica last month" - "Volcano eruption" is not detected. As a consequence, "Volcano" is the location and Villarica is discared without being detected

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.