{
    "version":"0.0.1",
    "id":"filter-by-attribute",
    "use_case":"hydrography90m",
    "title":"Filter by attribute",
    "description":"Filter a table (e.g. CSV) by attribute. Only keep those rows of the table that match all the conditions. You can give conditions for several columns.",
    "jobControlOptions":[
        "sync-execute",
        "async-execute"
    ],
    "keywords":[
        "subcatchment",
        "GeoFRESH",
        "hydrography90m"
    ],
    "links":[
        {
            "type":"text/html",
            "rel":"about",
            "title":"GeoFRESH website",
            "href":"https://geofresh.org/",
            "hreflang":"en-US"
        },
        {
            "type":"text/html",
            "rel":"about",
            "title":"On Subcatchment Ids (Hydrography90m)",
            "href":"https://hydrography.org/hydrography90m/hydrography90m_layers",
            "hreflang":"en-US"
        },
        {
            "type":"application/json",
            "rel":"self",
            "href":"https://aqua.igb-berlin.de/pygeoapi-dev/processes/filter-by-attribute?f=json",
            "title":"Process description as JSON",
            "hreflang":"en-US"
        },
        {
            "type":"text/html",
            "rel":"alternate",
            "href":"https://aqua.igb-berlin.de/pygeoapi-dev/processes/filter-by-attribute?f=html",
            "title":"Process description as HTML",
            "hreflang":"en-US"
        },
        {
            "type":"text/html",
            "rel":"http://www.opengis.net/def/rel/ogc/1.0/job-list",
            "href":"https://aqua.igb-berlin.de/pygeoapi-dev/jobs?f=html",
            "title":"Jobs list as HTML",
            "hreflang":"en-US"
        },
        {
            "type":"application/json",
            "rel":"http://www.opengis.net/def/rel/ogc/1.0/job-list",
            "href":"https://aqua.igb-berlin.de/pygeoapi-dev/jobs?f=json",
            "title":"Jobs list as JSON",
            "hreflang":"en-US"
        },
        {
            "type":"application/json",
            "rel":"http://www.opengis.net/def/rel/ogc/1.0/execute",
            "href":"https://aqua.igb-berlin.de/pygeoapi-dev/processes/filter-by-attribute/execution?f=json",
            "title":"Execution for this process as JSON",
            "hreflang":"en-US"
        }
    ],
    "inputs":{
        "csv_url":{
            "title":"Input table (CSV, by URL)",
            "description":"URL of the input table to be filtered. Please pass a URL.",
            "schema":{
                "type":"string"
            },
            "minOccurs":1,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[]
        },
        "points_geojson_url":{
            "title":"Input data (GeoJSON FeatureCollection, by URL)",
            "description":"URL of the GeoJSON FeatureCollection to be filtered. Please pass a URL.",
            "schema":{
                "type":"string"
            },
            "minOccurs":1,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[]
        },
        "points_geojson":{
            "title":"Input data (GeoJSON FeatureCollection)",
            "description":"GeoJSON FeatureCollection to be filtered. Please pass GeoJSON content as part of the HTTP POST payload.",
            "schema":{
                "type":"string"
            },
            "minOccurs":1,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[]
        },
        "keep":{
            "title":"Attribute values to keep (by equality)",
            "description":"JSON dictionary of the form 'attribute-name': [list of attribute values], e.g.'species':['species1', 'species2'].",
            "schema":{
                "type":"string"
            },
            "minOccurs":1,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[]
        },
        "conditions":{
            "title":"Numerical conditions (<, >, <=, >=, ==)",
            "description":"JSON dictionary representing numerical conditions for numerical attributes, of the form 'attribute-name': 'condition', e.g. 'latitude': 'x>=20' or 'concentration': '30<x<40'.",
            "schema":{
                "type":"string"
            },
            "minOccurs":1,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[]
        },
        "comment":{
            "title":"Comment",
            "description":"Arbitrary string that will not be processed but returned, for user's convenience.",
            "schema":{
                "type":"string"
            },
            "minOccurs":0,
            "maxOccurs":1,
            "metadata":null,
            "keywords":[
                "comment"
            ]
        }
    },
    "outputs":{
        "filtered_data":{
            "title":"Filtered data",
            "description":"The input data, but without the items (rows or features) whose values for the given attributes do not fall into the given list(s), or do not match the given condition(s).",
            "schema":{
                "type":"object",
                "contentMediaType":"application/json"
            }
        }
    },
    "example":{
        "inputs":{
            "csv_url":"https://example.com/spdata.csv",
            "keep":{
                "species":[
                    "Salaria fluviatilis",
                    "Squalius peloponensis"
                ]
            },
            "comment":"filtering fish species"
        }
    },
    "outputTransmission":[
        "value"
    ]
}