diff --git a/CHANGELOG.md b/CHANGELOG.md
index 95c0f9c5a..813036367 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,14 @@
## Current Main
+### Breaking Changes
+
+* remove endpoint and project parameters from topic and indicator definitions ([#1028])
+* remove metadata endpoints for projects ([#1028])
+
+### Other Changes
+
+* topics: remove topics, that were not in the core project ([#1028])
* feat: get OSM data for User Activity indicator from ohsome-api v2 (69841b3e)
* feat: include authorization header in requests to ohsome-api (2b2ebeea)
* fix(attributes): add missing `ref=*` tag to the road name attribute (99fbaa50)
@@ -28,6 +36,7 @@
[#1017]: https://github.com/GIScience/ohsome-quality-api/pull/1017
[#1018]: https://github.com/GIScience/ohsome-quality-api/pull/1018
[#1029]: https://github.com/GIScience/ohsome-quality-api/pull/1029
+[#1028]: https://github.com/GIScience/ohsome-quality-api/pull/1028
## Release 1.17.1
diff --git a/docs/topic.md b/docs/topic.md
index 20ae06031..b8b316b30 100644
--- a/docs/topic.md
+++ b/docs/topic.md
@@ -1,6 +1,6 @@
# Topic
-A topic describes the request which should be made to the [ohsome API](https://api.ohsome.org). Each topic is representative of a specific set of features, aggregated information or user statistics derived from the OpenStreetMap database. Each topic is defined by the ohsome API `endpoint`, an `aggregation_type` and the `filter` parameter. In addition, each topic preset has a key, name, description, a list of valid indicators and a list of projects the topic belongs to. Topic presets are written down as YAML file at `ohsome_quality_api/topics/presets.yaml`
+A topic describes the request which should be made to the [ohsome API](https://api.ohsome.org). Each topic is representative of a specific set of features, aggregated information or user statistics derived from the OpenStreetMap database. Each topic is defined by the an `aggregation_type` and the `filter` parameter. In addition, each topic preset has a key, name, description and a list of valid indicators. Topic presets are written down as YAML file at `ohsome_quality_api/topics/presets.yaml`
## Example
@@ -9,15 +9,12 @@ building-count:
name: Building Count
description: >-
All buildings as defined by all objects tagged with 'building=*'.
- endpoint: elements
aggregation_type: count
filter: building=* and geometry:polygon
indicators:
- mapping-saturation
- currentness
- attribute-completeness
- projects:
- - core
```
## How to Add a New Topic?
@@ -25,7 +22,7 @@ building-count:
First create an ohsome API query to retrieve desired information from the ohsome API. Helpful resources for this task are:
- The Swagger UI of the ohsome API:
https://api.ohsome.org/v1/swagger-ui.html
-- ohsome API documentation on the `aggregation_type` and `endpoint` parameters:
+- ohsome API documentation on the `aggregation_type`:
https://docs.ohsome.org/ohsome-api/stable/endpoints.html
- ohsome API documentation on the `filter` parameter:
https://docs.ohsome.org/ohsome-api/stable/filter.html
diff --git a/ohsome_quality_api/api/api.py b/ohsome_quality_api/api/api.py
index bda809439..a9ddff121 100644
--- a/ohsome_quality_api/api/api.py
+++ b/ohsome_quality_api/api/api.py
@@ -43,7 +43,6 @@
IndicatorMetadataCoverageResponse,
IndicatorMetadataResponse,
MetadataResponse,
- ProjectMetadataResponse,
QualityDimensionMetadataResponse,
TopicMetadataResponse,
)
@@ -60,11 +59,6 @@
get_indicator,
get_indicator_metadata,
)
-from ohsome_quality_api.projects.definitions import (
- ProjectEnum,
- get_project,
- get_project_metadata,
-)
from ohsome_quality_api.quality_dimensions.definitions import (
QualityDimensionEnum,
get_quality_dimension,
@@ -95,9 +89,6 @@
{"name": "metadata", "description": "Request Metadata"},
]
-DEFAULT_PROJECT = ProjectEnum.core
-
-
description = """
Data quality estimations for OpenStreetMap.
@@ -410,27 +401,22 @@ async def _post_indicator(
@app.get("/metadata", tags=["metadata"], response_model=MetadataResponse)
-async def metadata(project: ProjectEnum = DEFAULT_PROJECT) -> Any:
+async def metadata() -> Any:
"""All metadata."""
- if project == ProjectEnum.all:
- project = None
return {
"result": {
- "topics": get_topic_presets(project=project),
+ "topics": get_topic_presets(),
"quality_dimensions": get_quality_dimensions(),
- "projects": get_project_metadata(),
- "indicators": get_indicator_metadata(project=project),
+ "indicators": get_indicator_metadata(),
"attributes": get_attributes(),
}
}
@app.get("/metadata/topics", tags=["metadata"], response_model=TopicMetadataResponse)
-async def metadata_topic(project: ProjectEnum = DEFAULT_PROJECT) -> Any:
+async def metadata_topic() -> Any:
"""Get topics."""
- if project == ProjectEnum.all:
- project = None
- return {"result": get_topic_presets(project=project)}
+ return {"result": get_topic_presets()}
@app.get(
@@ -472,36 +458,14 @@ async def metadata_quality_dimension_by_key(
)
-@app.get(
- "/metadata/projects",
- tags=["metadata"],
-)
-async def metadata_projects() -> ProjectMetadataResponse:
- """Get projects."""
- return ProjectMetadataResponse(result=get_project_metadata())
-
-
-@app.get(
- "/metadata/projects/{key}",
- tags=["metadata"],
-)
-async def metadata_project_by_key(
- key: ProjectEnum,
-) -> ProjectMetadataResponse:
- """Get project by key."""
- return ProjectMetadataResponse(result={key.value: get_project(key.value)})
-
-
@app.get(
"/metadata/indicators",
tags=["metadata"],
response_model=IndicatorMetadataResponse,
)
-async def metadata_indicators(project: ProjectEnum = DEFAULT_PROJECT) -> Any:
+async def metadata_indicators() -> Any:
"""Get metadata of all indicators."""
- if project == ProjectEnum.all:
- project = None
- return {"result": get_indicator_metadata(project=project)}
+ return {"result": get_indicator_metadata()}
@app.get(
diff --git a/ohsome_quality_api/api/response_models.py b/ohsome_quality_api/api/response_models.py
index 1aef140d9..21c5f149b 100644
--- a/ohsome_quality_api/api/response_models.py
+++ b/ohsome_quality_api/api/response_models.py
@@ -7,8 +7,6 @@
from ohsome_quality_api.definitions import ATTRIBUTION_URL
from ohsome_quality_api.indicators.definitions import IndicatorEnum
from ohsome_quality_api.indicators.models import Result as IndicatorResult
-from ohsome_quality_api.projects.definitions import ProjectEnum
-from ohsome_quality_api.projects.models import Project
from ohsome_quality_api.quality_dimensions.definitions import QualityDimensionEnum
from ohsome_quality_api.quality_dimensions.models import QualityDimension
from ohsome_quality_api.topics.definitions import TopicEnum
@@ -32,11 +30,9 @@ class BaseResponse(BaseConfig):
class TopicMetadata(BaseConfig):
name: str
description: str
- endpoint: Literal["elements"]
aggregation_type: Literal["area", "count", "length", "perimeter", "area/density"]
filter: str
indicators: list[str]
- projects: list[ProjectEnum]
source: str | None = None
model_config = ConfigDict(title="Topic Metadata")
@@ -82,22 +78,9 @@ def check_quality_dimension_dict(cls, values):
return values
-class ProjectMetadataResponse(BaseResponse):
- result: dict[str, Project]
-
- @field_validator("result")
- @classmethod
- def check_project_dict(cls, value):
- assert len(value) > 0
- for key in value:
- ProjectEnum(key)
- return value
-
-
class IndicatorMetadata(BaseConfig):
name: str
description: str
- projects: list[ProjectEnum]
quality_dimension: QualityDimensionEnum
model_config = ConfigDict(title="Indicator Metadata")
@@ -125,7 +108,6 @@ class Metadata(BaseConfig):
indicators: dict[str, IndicatorMetadata]
topics: dict[str, TopicMetadata]
quality_dimensions: dict[str, QualityDimension]
- projects: dict[str, Project]
attributes: dict[str, dict[str, AttributeMetadata]]
model_config = ConfigDict(title="Metadata")
diff --git a/ohsome_quality_api/attributes/attributes.yaml b/ohsome_quality_api/attributes/attributes.yaml
index 5a33b0d01..42f3abcc9 100644
--- a/ohsome_quality_api/attributes/attributes.yaml
+++ b/ohsome_quality_api/attributes/attributes.yaml
@@ -276,12 +276,6 @@ tram-stops:
description: TODO
filter: public_transport=platform
-clc-leaf-type:
- leaf-type:
- name: Type of Leaves
- description: TODO
- filter: leaf_type in (broadleaved, needleleaved, mixed)
-
roads:
name:
name: Road Name
diff --git a/ohsome_quality_api/indicators/definitions.py b/ohsome_quality_api/indicators/definitions.py
index be13df7a0..a251f95df 100644
--- a/ohsome_quality_api/indicators/definitions.py
+++ b/ohsome_quality_api/indicators/definitions.py
@@ -5,7 +5,6 @@
from geojson import FeatureCollection
from ohsome_quality_api.indicators.models import IndicatorMetadata
-from ohsome_quality_api.projects.definitions import ProjectEnum
from ohsome_quality_api.topics.definitions import load_topic_presets
from ohsome_quality_api.utils.helper import (
get_class_from_key,
@@ -28,22 +27,14 @@ def load_indicators() -> dict[str, IndicatorMetadata]:
return indicators
-def get_indicator_metadata(project: ProjectEnum = None) -> dict[str, IndicatorMetadata]:
+def get_indicator_metadata() -> dict[str, IndicatorMetadata]:
indicators = load_indicators()
- if project is not None:
- return {k: v for k, v in indicators.items() if project in v.projects}
- else:
- return indicators
+ return indicators
def get_indicator(indicator_key: str) -> IndicatorMetadata:
indicators = get_indicator_metadata()
- try:
- return indicators[indicator_key]
- except KeyError as error:
- raise KeyError(
- "Invalid project key. Valid project keys are: " + str(indicators.keys())
- ) from error
+ return indicators[indicator_key]
def get_valid_indicators(topic_key: str) -> tuple:
diff --git a/ohsome_quality_api/indicators/indicators.yaml b/ohsome_quality_api/indicators/indicators.yaml
index aecbfdf87..2eac9c9e7 100644
--- a/ohsome_quality_api/indicators/indicators.yaml
+++ b/ohsome_quality_api/indicators/indicators.yaml
@@ -1,33 +1,12 @@
---
mapping-saturation:
name: Mapping Saturation
- projects:
- - core
- - corine-land-cover
- - expanse
- - experimental
- - idealvgi
- - mapaction
- - sketchmap
- - bkg
- - unicef
quality_dimension: completeness
description: >-
Calculate if mapping has saturated. High saturation has been reached if the
growth of the fitted curve is minimal.
-minimal:
- name: Minimal
- projects:
- - misc
- quality_dimension: minimal
- description: >-
- An minimal Indicator for testing purposes.
currentness:
name: Currentness
- projects:
- - core
- - bkg
- - unicef
quality_dimension: currentness
description: >-
Estimate currentness of features by classifying contributions based on topic
@@ -35,26 +14,16 @@ currentness:
out-of-date.
road-comparison:
name: Road Comparison
- projects:
- - core
- - bkg
- - unicef
quality_dimension: completeness
description: >-
Compare the road length of OSM roads with the road length of reference data.
building-comparison:
name: Building Comparison
- projects:
- - core
- - bkg
quality_dimension: completeness
description: >-
Comparison of OSM buildings with the buildings of reference datasets.
attribute-completeness:
name: Attribute Completeness
- projects:
- - core
- - bkg
quality_dimension: completeness
description: >-
Derive the ratio of OSM features compared to features which match additional
@@ -62,9 +31,6 @@ attribute-completeness:
wheelchair=yes).
land-cover-thematic-accuracy:
name: Land Cover Thematic Accuracy
- projects:
- - core
- - bkg
quality_dimension: thematic-accuracy
description: >-
Thematic accuracy OpenStreetMap land cover data in comparison to the dataset.
land-cover-completeness:
name: Land Cover Completeness
- projects:
- - core
- - bkg
quality_dimension: completeness
description: >-
Percentage of the area of interest that is covered by OpenStreetMap land
cover data.
user-activity:
name: User Activity
- projects:
- - core
- - bkg
quality_dimension: none
description: >-
Shows the count of unique mappers per month for the selected topic.
None-quality indicator.
roads-thematic-accuracy:
name: Road Accuracy
- projects:
- - core
- - bkg
quality_dimension: none
description: >-
Comparison of OSM road attributes with the attributes from the None:
- super().__init__(topic=topic, feature=feature)
- self.count = 0
-
- async def preprocess(self) -> None:
- self.count = 1
- self.result.timestamp_osm = datetime.now()
-
- def calculate(self) -> None:
- description = Template(self.templates.result_description).substitute()
- self.result.value = 1.0
- self.result.description = description + self.templates.label_description.green
-
- def create_figure(self) -> None:
- # Do nothing ...
- return None
diff --git a/ohsome_quality_api/indicators/minimal/templates.yaml b/ohsome_quality_api/indicators/minimal/templates.yaml
deleted file mode 100644
index b7f5e0a21..000000000
--- a/ohsome_quality_api/indicators/minimal/templates.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-label_description:
- red: >-
- Bad data quality.
- yellow: >-
- Medium data quality.
- green: >-
- Good data quality.
- undefined: >-
- The quality level could not be calculated for this indicator.
-result_description: >-
- Some description of the result.
diff --git a/ohsome_quality_api/indicators/models.py b/ohsome_quality_api/indicators/models.py
index fdf2423ea..17dad8485 100644
--- a/ohsome_quality_api/indicators/models.py
+++ b/ohsome_quality_api/indicators/models.py
@@ -4,7 +4,6 @@
from fastapi_i18n import _
from pydantic import BaseModel, ConfigDict, Field, computed_field, field_validator
-from ohsome_quality_api.projects.definitions import ProjectEnum
from ohsome_quality_api.quality_dimensions.definitions import QualityDimensionEnum
from ohsome_quality_api.utils.helper import snake_to_lower_camel
@@ -14,7 +13,6 @@ class IndicatorMetadata(BaseModel):
name: str
description: str
- projects: list[ProjectEnum]
quality_dimension: QualityDimensionEnum
model_config = ConfigDict(
alias_generator=snake_to_lower_camel,
diff --git a/ohsome_quality_api/projects/__init__.py b/ohsome_quality_api/projects/__init__.py
deleted file mode 100644
index e69de29bb..000000000
diff --git a/ohsome_quality_api/projects/definitions.py b/ohsome_quality_api/projects/definitions.py
deleted file mode 100644
index 051e64509..000000000
--- a/ohsome_quality_api/projects/definitions.py
+++ /dev/null
@@ -1,47 +0,0 @@
-"""Global Variables and Functions."""
-
-import os
-from enum import Enum
-
-import yaml
-
-from ohsome_quality_api.projects.models import Project
-from ohsome_quality_api.utils.helper import get_module_dir
-
-
-def get_project_keys() -> list[str]:
- return [str(t) for t in load_projects()]
-
-
-def load_projects() -> dict[str, Project]:
- """Read definitions of projects.
-
- Returns:
- A dict with all projects included.
- """
- directory = get_module_dir("ohsome_quality_api.projects")
- file = os.path.join(directory, "projects.yaml")
- with open(file, "r") as f:
- raw = yaml.safe_load(f)
- projects = {}
- for k, v in raw.items():
- projects[k] = Project(**v)
- return projects
-
-
-def get_project_metadata() -> dict[str, Project]:
- projects = load_projects()
- return projects
-
-
-def get_project(project_key: str) -> Project:
- projects = get_project_metadata()
- try:
- return projects[project_key]
- except KeyError as error:
- raise KeyError(
- "Invalid project key. Valid project keys are: " + str(projects.keys())
- ) from error
-
-
-ProjectEnum = Enum("ProjectEnum", {key: key for key in [*get_project_keys(), "all"]})
diff --git a/ohsome_quality_api/projects/models.py b/ohsome_quality_api/projects/models.py
deleted file mode 100644
index 917ee94cf..000000000
--- a/ohsome_quality_api/projects/models.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""Pydantic Models for Projects."""
-
-from fastapi_i18n import _
-from pydantic import BaseModel, ConfigDict, field_validator
-
-
-class Project(BaseModel):
- name: str
- description: str
- model_config = ConfigDict(
- title="Project",
- frozen=True,
- extra="forbid",
- populate_by_name=True,
- )
-
- @field_validator("name", "description", mode="before")
- @classmethod
- def translate(cls, value: str) -> str:
- return _(value)
diff --git a/ohsome_quality_api/projects/projects.yaml b/ohsome_quality_api/projects/projects.yaml
deleted file mode 100644
index 215ed714a..000000000
--- a/ohsome_quality_api/projects/projects.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
----
-# TODO description
-
-core:
- name: TODO
- description: >-
- something that is still a TODO
-
-mapaction:
- name: TODO
- description: >-
- something that is still a TODO
-
-sketchmap:
- name: TODO
- description: >-
- something that is still a TODO
-
-unicef:
- name: TODO
- description: >-
- something that is still a TODO
-
-misc:
- name: TODO
- description: >-
- something that is still a TODO
-
-experimental:
- name: TODO
- description: >-
- something that is still a TODO
-
-corine-land-cover:
- name: TODO
- description: >-
- something that is still a TODO
-
-idealvgi:
- name: TODO
- description: >-
- something that is still a TODO
-
-expanse:
- name: TODO
- description: >-
- something that is still a TODO
-
-bkg:
- name: TODO
- description: >-
- something that is still a TODO
-
-ohmygrid:
- name: ohmygrid
- description: >-
- https://mapyourgrid.org/
-silverways:
- name: Silver Ways
- description: >-
- https://heigit.org/silver-ways/
\ No newline at end of file
diff --git a/ohsome_quality_api/quality_dimensions/quality_dimensions.yaml b/ohsome_quality_api/quality_dimensions/quality_dimensions.yaml
index 5890544fc..0b68abf7d 100644
--- a/ohsome_quality_api/quality_dimensions/quality_dimensions.yaml
+++ b/ohsome_quality_api/quality_dimensions/quality_dimensions.yaml
@@ -22,11 +22,6 @@ thematic-accuracy:
source:
https://onlinelibrary.wiley.com/doi/full/10.1155/2014/372349
-minimal:
- name: minimal
- description: >-
- A minimal quality dimension definition for testing purposes.
-
none:
name: none
description: >-
diff --git a/ohsome_quality_api/topics/definitions.py b/ohsome_quality_api/topics/definitions.py
index cbf4f01cf..7b0663a71 100644
--- a/ohsome_quality_api/topics/definitions.py
+++ b/ohsome_quality_api/topics/definitions.py
@@ -4,7 +4,6 @@
import yaml
from fastapi_i18n import _
-from ohsome_quality_api.projects.definitions import ProjectEnum
from ohsome_quality_api.topics.models import Topic
from ohsome_quality_api.utils.helper import get_module_dir
@@ -27,14 +26,11 @@ def get_topic_keys() -> list[str]:
return [str(t) for t in load_topic_presets()]
-def get_topic_presets(project: ProjectEnum = None) -> dict[str, Topic]:
+def get_topic_presets() -> dict[str, Topic]:
topics = load_topic_presets()
# sort by dict value (name)
topics_sorted = dict(sorted(topics.items(), key=lambda item: _(item[1].name)))
- if project is not None:
- return {k: v for k, v in topics_sorted.items() if project in v.projects}
- else:
- return topics_sorted
+ return topics_sorted
def get_topic_preset(topic_key: str) -> Topic:
diff --git a/ohsome_quality_api/topics/models.py b/ohsome_quality_api/topics/models.py
index 81422f47c..0ae3a1833 100644
--- a/ohsome_quality_api/topics/models.py
+++ b/ohsome_quality_api/topics/models.py
@@ -1,7 +1,7 @@
"""Pydantic Models for Topics
Note:
- The topic key, name, description and the ohsome API endpoint and filter are defined
+ The topic key, name, description and filter are defined
in the `presets.yaml` file in the `topic` module.
"""
@@ -11,7 +11,6 @@
from ohsome_filter_to_sql.main import OhsomeFilter
from pydantic import BaseModel, ConfigDict, field_validator
-from ohsome_quality_api.projects.definitions import ProjectEnum
from ohsome_quality_api.utils.helper import snake_to_lower_camel
@@ -34,13 +33,11 @@ def translate(cls, value: str) -> str:
class Topic(BaseTopic, validate_assignment=True):
- """Includes the ohsome API endpoint and parameters needed to retrieve the data."""
+ """Includes the parameters needed to retrieve the data."""
- endpoint: Literal["elements"]
aggregation_type: Literal["area", "count", "length", "perimeter", "area/density"]
filter: OhsomeFilter
indicators: list[str]
- projects: list[ProjectEnum]
source: str | None = None
ratio_filter: str | None = None
diff --git a/ohsome_quality_api/topics/presets.yaml b/ohsome_quality_api/topics/presets.yaml
index f7fd25f77..3af45873f 100644
--- a/ohsome_quality_api/topics/presets.yaml
+++ b/ohsome_quality_api/topics/presets.yaml
@@ -9,24 +9,18 @@ custom-topic:
name: Custom Topic
description: >-
A custom topic for user defined filters.
- endpoint: elements
aggregation_type: count
filter: building=* and building!=no and geometry:polygon
indicators:
- - minimal
- mapping-saturation
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
building-count:
name: Buildings (count)
description: >-
All buildings as defined by all objects tagged with 'building=*'.
- endpoint: elements
aggregation_type: count
filter: building=* and building!=no and geometry:polygon
indicators:
@@ -34,15 +28,11 @@ building-count:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
building-area:
name: Buildings (area)
description: >-
All buildings as defined by all objects tagged with 'building=*'.
- endpoint: elements
aggregation_type: area
filter: building=* and building!=no and geometry:polygon
indicators:
@@ -51,9 +41,6 @@ building-area:
- building-comparison
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
roads-all-highways:
name: Roads (all highways)
@@ -61,7 +48,6 @@ roads-all-highways:
All linear OSM features holding the prinicipal tag `highway=*`. The
road network defined by all objects which hold the principal tags
for the road network and their link roads as defined in the OSM Wiki
- endpoint: elements
aggregation_type: length
filter: >-
highway=* and geometry:line
@@ -74,9 +60,6 @@ roads-all-highways:
- attribute-completeness
- currentness
- user-activity
- projects:
- - core
- - bkg
roads:
name: Roads (cars)
@@ -85,7 +68,6 @@ roads:
(i.e. cars). The road network defined by all objects which hold
the principal tags for the road network and their link roads as
defined in the OSM Wiki
- endpoint: elements
aggregation_type: length
filter: >-
highway in (motorway, trunk, primary, secondary, tertiary, residential, service, living_street, trunk_link, motorway_link, primary_link, secondary_link, tertiary_link, unclassified) and geometry:line
@@ -96,15 +78,11 @@ roads:
- currentness
- user-activity
- roads-thematic-accuracy
- projects:
- - core
- - bkg
railway-length:
name: Railways
description: >-
Railway networks.
- endpoint: elements
aggregation_type: length
filter: >-
railway in (rail, subway, tram, light_rail, monorail, funicular, narrow_gauge) and type:way
@@ -113,15 +91,11 @@ railway-length:
- currentness # currentness always requests /contributions/latest/count [count!]
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
bridges_cars:
name: Bridges (cars)
description: >-
All linear OSM features referring to a bridge usable by vehicles.
- endpoint: elements
aggregation_type: length
filter: >-
highway in (motorway, trunk, primary, secondary, tertiary, residential, service, living_street, trunk_link, motorway_link, primary_link, secondary_link, tertiary_link, unclassified) and bridge=* and geometry:line
@@ -130,15 +104,11 @@ bridges_cars:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
bridges_all_ways:
name: Bridges (all ways)
description: >-
All linear OSM features referring to a bridge including footpaths only.
- endpoint: elements
aggregation_type: length
filter: >-
bridge=* and geometry:line
@@ -147,15 +117,11 @@ bridges_all_ways:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
bridges_count:
name: Bridges (count)
description: >-
Count of all polygons labelled as bridge.
- endpoint: elements
aggregation_type: count
filter: >-
man_made=bridge and geometry:polygon
@@ -164,15 +130,11 @@ bridges_count:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
cycleway:
name: Cycleway
description: >-
All linear OSM features referring to a cycleway. Includes exclusive cycleways and cycleways on the side of streets.
- endpoint: elements
aggregation_type: length
filter: >-
((cycleway=* and cycleway!=no)
@@ -194,15 +156,11 @@ cycleway:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
power_lines:
name: Power Lines
description: >-
All linear OSM features referring to power lines.
- endpoint: elements
aggregation_type: length
filter: >-
((power=line)
@@ -214,15 +172,11 @@ power_lines:
- currentness
- user-activity
- attribute-completeness
- projects:
- - ohmygrid
- - core
power_substations:
name: Power Substation
description: >-
A facility which controls the flow of electricity in a power network with transformers, switchgear or compensators.
- endpoint: elements
aggregation_type: count
filter: >-
power=substation and (type:way or type:node)
@@ -232,16 +186,12 @@ power_substations:
- currentness
- user-activity
- attribute-completeness
- projects:
- - ohmygrid
- - core
footpath:
name: Footpath
description: >-
All linear OSM features commonly used for walking, including dedicated pedestrian paths,
shared-use paths, and roads where foot traffic is allowed or sidewalks exist.
- endpoint: elements
aggregation_type: length
filter: >-
(
@@ -260,17 +210,12 @@ footpath:
- currentness
- user-activity
- attribute-completeness
- projects:
- - silverways
- - core
- - bkg
footway:
name: Footway
description: >-
All linear OSM features commonly used for walking, including dedicated pedestrian paths,
shared-use paths, and roads where foot traffic is allowed or sidewalks exist.
- endpoint: elements
aggregation_type: length
filter: >-
(
@@ -290,14 +235,11 @@ footway:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
poi:
name: POI
description: >-
Points of interest.
- endpoint: elements
aggregation_type: count
source: https://github.com/GIScience/openpoiservice/blob/master/openpoiservice/server/categories/categories.yml
filter: >-
@@ -354,14 +296,10 @@ poi:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
schools:
name: Schools
description: Count of schools.
- endpoint: elements
aggregation_type: count
filter: amenity=school and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dschool
@@ -370,15 +308,10 @@ schools:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
- - unicef
kindergarten:
name: Kindergartens
description: Count of kindergartens.
- endpoint: elements
aggregation_type: count
filter: amenity=kindergarten and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dkindergarten
@@ -387,14 +320,10 @@ kindergarten:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
clinics:
name: Clinics
description: Count of clinics.
- endpoint: elements
aggregation_type: count
filter: (amenity=clinic or healthcare=clinic) and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Global_Healthsites_Mapping_Project
@@ -403,14 +332,10 @@ clinics:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
doctors:
name: Doctors
description: Count of doctors.
- endpoint: elements
aggregation_type: count
filter: (amenity=doctors or healthcare=doctor) and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Global_Healthsites_Mapping_Project
@@ -419,14 +344,10 @@ doctors:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
bus-stops:
name: Bus Stops
description: Count of bus stops.
- endpoint: elements
aggregation_type: count
filter: highway=bus_stop and type:node
source: https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbus_stop
@@ -435,14 +356,10 @@ bus-stops:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
tram-stops:
name: Tram Stops
description: Count of tram stops.
- endpoint: elements
aggregation_type: count
filter: railway=tram_stop and type:node
source: https://wiki.openstreetmap.org/wiki/Tag:railway%3Dtram_stop
@@ -451,14 +368,10 @@ tram-stops:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
public-transport-stops:
name: Public Transport Stops
description: Count of public transport stops.
- endpoint: elements
aggregation_type: count
filter: public_transport=platform and (type:way or type:node)
indicators:
@@ -466,14 +379,10 @@ public-transport-stops:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
subway-stations:
name: Subway Stations
description: Count of subway stops.
- endpoint: elements
aggregation_type: count
filter: station=subway and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:station%3Dsubway
@@ -482,14 +391,10 @@ subway-stations:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
supermarkets:
name: Supermarkets
description: Count of supermarkets.
- endpoint: elements
aggregation_type: count
filter: (shop=supermarket or shop=convenience) and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsupermarket
@@ -498,14 +403,10 @@ supermarkets:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
marketplaces:
name: Marketplaces
description: Count of marketplaces.
- endpoint: elements
aggregation_type: count
filter: amenity=marketplace and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dmarketplace
@@ -514,14 +415,10 @@ marketplaces:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
parks:
name: Parks
description: Count of parks.
- endpoint: elements
aggregation_type: count
filter: leisure=park and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:leisure%3Dpark
@@ -530,14 +427,10 @@ parks:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
sports-pitch:
name: Sports Pitches
description: Count of sports pitches (an area designed for practising a particular sport).
- endpoint: elements
aggregation_type: count
filter: leisure=pitch and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:leisure%3Dpitch
@@ -546,15 +439,11 @@ sports-pitch:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
forests:
name: Forests
- description: Count of forests.
- endpoint: elements
- aggregation_type: count
+ description: Area of forests.
+ aggregation_type: area
filter: landuse=forest and geometry:polygon
source: https://wiki.openstreetmap.org/wiki/Forest
indicators:
@@ -562,14 +451,10 @@ forests:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
industrial-landuse-count:
name: Industrial Landuse (count)
description: Industrial landsites.
- endpoint: elements
aggregation_type: count
filter: landuse=industrial and type:way
source: https://wiki.openstreetmap.org/wiki/Tag:landuse%3Dindustrial
@@ -578,13 +463,10 @@ industrial-landuse-count:
- currentness
- user-activity
- attribute-completeness
- projects:
- - experimental
industrial-landuse-area:
name: Industrial Landuse (area)
description: Industrial areas.
- endpoint: elements
aggregation_type: area
filter: landuse=industrial and type:way
source: https://wiki.openstreetmap.org/wiki/Tag:landuse%3Dindustrial
@@ -593,13 +475,10 @@ industrial-landuse-area:
- currentness
- user-activity
- attribute-completeness
- projects:
- - experimental
fitness-centres:
name: Fitness Centres
description: Count of fitness centres.
- endpoint: elements
aggregation_type: count
filter: leisure in (fitness_centre, sports_centre) and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Gym_/_Fitness_centre
@@ -608,14 +487,10 @@ fitness-centres:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
fire-stations:
name: Fire Stations
description: Count of firestations.
- endpoint: elements
aggregation_type: count
filter: amenity=fire_station and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dfire_station
@@ -624,14 +499,10 @@ fire-stations:
- currentness
- user-activity
- attribute-completeness
- projects:
- - core
- - bkg
hospitals:
name: Hospitals
description: Count of hospitals.
- endpoint: elements
aggregation_type: count
filter: (amenity=hospital or healthcare=hospital) and (type:way or type:node)
source: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dhospital
@@ -640,162 +511,11 @@ hospitals:
- currentness
- attribute-completeness
- user-activity
- projects:
- - core
- - bkg
- - unicef
-
-### UNICEF PROJECT ###
-
-roads-unicef:
- name: UNICEF Roads
- description: >-
- The road network usable for routing as defined for the UNICEF Project.
- endpoint: elements
- aggregation_type: length
- filter: >-
- highway in (motorway, motorway_link, motorroad, trunk, trunk_link, primary, primary_link, secondary, secondary_link,
- tertiary, tertiary_link, unclassified, residential, living_street, service, road, track) and geometry:line
- ratio_filter: >-
- (highway in (motorway, motorway_link, motorroad, trunk, trunk_link, primary, primary_link, secondary,
- secondary_link, tertiary, tertiary_link, unclassified, residential, living_street, service, road, track)) and name=* and geometry:line
- source: https://heigit.atlassian.net/wiki/spaces/GIS/pages/756645935/2024-10-01+Unicef+education+access
- indicators:
- - mapping-saturation
- - road-comparison
- - attribute-completeness
- - currentness
- - user-activity
- projects:
- - unicef
-
-healthcare-primary:
- name: Primary Healthcare facilities for UNICEF Project
- description: Count of hospitals.
- endpoint: elements
- aggregation_type: count
- filter: (amenity in (clinic, doctors, health_post) or healthcare in (clinic, doctors, doctor, midwife, nurse, center)) and (type:way or type:node)
- source: https://heigit.atlassian.net/wiki/spaces/GIS/pages/756645935/2024-10-01+Unicef+education+access
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - unicef
-
-### MAPACTION PROJECT ###
-
-mapaction-settlements-count:
- name: MapAction Settlements Count
- description: >-
- Number of settlements (cities).
- endpoint: elements
- aggregation_type: count
- filter: place=city and type:node
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - mapaction
-
-mapaction-capital-city-count:
- name: MapAction Capital City Count
- description: >-
- Number of capital cities.
- endpoint: elements
- aggregation_type: count
- filter: place=city and (is_capital=country or admin_level=2 or capital=yes) and type:node
- indicators:
- - mapping-saturation
- - currentness
- - attribute-completeness
- projects:
- - mapaction
-
-mapaction-rail-length:
- name: MapAction Rail Length
- description: >-
- Length of objects identified as rails (large railways).
- endpoint: elements
- aggregation_type: length
- filter: railway=rail and type:way
- indicators:
- - mapping-saturation
- - currentness
- - attribute-completeness
- - user-activity
- projects:
- - mapaction
-
-mapaction-major-roads-length:
- name: MapAction Major Roads length
- description: >-
- Length of objects identified as major roads (primary, motorway and trunk).
- endpoint: elements
- aggregation_type: length
- filter: highway in (motorway, trunk, primary) and type:way
- indicators:
- - mapping-saturation
- - currentness
- - attribute-completeness
- - user-activity
- projects:
- - mapaction
-
-mapaction-lakes-count:
- name: MapAction Lakes Count
- description: >-
- Number of objects identified as lakes, lagoons and reservoirs.
- endpoint: elements
- aggregation_type: count
- filter: (water in (lagoon,lake,reservoir) or landuse=reservoir) and type:way
- indicators:
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - mapaction
-
-mapaction-lakes-area:
- name: MapAction Lakes Area
- description: >-
- Area of objects identified as lakes, lagoons and reservoirs.
- endpoint: elements
- aggregation_type: area
- filter: (water in (lagoon,lake,reservoir) or landuse=reservoir) and type:way
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - mapaction
-
-mapaction-rivers-length:
- name: MapAction Rivers Length
- description: >-
- Length of objects identified as rivers (or riverbanks).
- endpoint: elements
- aggregation_type: length
- filter: waterway in (riverbank,river) and type:way
- indicators:
- - mapping-saturation
- - currentness
- - attribute-completeness
- - user-activity
- projects:
- - mapaction
-
-### IDEALVGI PROJECT ###
land-cover:
name: Land Use and Land Cover
description: >-
Features related to land use and land cover.
- endpoint: elements
aggregation_type: area
filter: >-
(landuse=* and landuse!=no) or natural in (wood,
@@ -812,289 +532,3 @@ land-cover:
- land-cover-thematic-accuracy
- land-cover-completeness
- user-activity
- projects:
- - core
- - bkg
-
-### EXPANSE PROJECT ###
-
-local-food-shops:
- name: Local food shops
- description: Count of local food shops.
- endpoint: elements
- aggregation_type: count
- filter: (shop=bakery or shop=butcher or shop=greengrocer or shop=seafood or shop=cheese or shop=dairy) and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-fast-food-restaurants:
- name: Fast food restaurants
- description: Count of fast food restaurants.
- endpoint: elements
- aggregation_type: count
- filter: amenity=fast_food and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-restaurants:
- name: Restaurants
- description: Count of restaurants.
- endpoint: elements
- aggregation_type: count
- filter: (amenity=restaurant or amenity=cafe) and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-convenience-stores:
- name: Convenience stores
- description: Count of convenience stores.
- endpoint: elements
- aggregation_type: count
- filter: shop=convenience and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-pubs-and-biergartens:
- name: Pubs and biergartens
- description: Count of pubs and biergartens.
- endpoint: elements
- aggregation_type: count
- filter: (amenity=pub or amenity=biergarten or amenity=bar) and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-alcohol-and-beverages:
- name: Alcohol and beverages
- description: Count of shops selling alcohol.
- endpoint: elements
- aggregation_type: count
- filter: (shop=alcohol or shop=beverages) and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-sweets-and-pasteries:
- name: Sweets and pastries
- description: Count of shops selling sweets and pastries.
- endpoint: elements
- aggregation_type: count
- filter: (shop=pastry or amenity=ice_cream or shop=confectionery) and (type:way or type:node)
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - expanse
-
-### LAND-USE LAYERS (CORINE PROJECT) ###
-#
-# currentness always requests /contributions/latest/count [count!]
-clc-arable-land-area:
- name: Arable Land CLC
- description: >-
- Selected features for Corine Land Cover Category "Arable Land" (level 2) in Agriculture.
- endpoint: elements
- aggregation_type: area
- filter: (landuse=farmland or crop=*) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-permanent-crops-area:
- name: Permanent Crops CLC
- description: Selected features for Corine Land Cover Category "Permanent Crops" (level 2) in Agriculture.
- endpoint: elements
- aggregation_type: area
- filter: landuse in (vineyard, orchard, farmland) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-pastures-area:
- name: Pastures CLC
- description: Selected features for Corine Land Cover Category "Pastures" (level 2) in Agriculture.
- endpoint: elements
- aggregation_type: area
- filter: (landuse=grass or natural=grassland or landcover=grass or natural=fell) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-forest-area:
- name: Forests CLC
- description: Selected features for Corine Land Cover Category "Forests" (level 2) in Seminatural Land.
- endpoint: elements
- aggregation_type: area
- filter: >-
- (natural=wood or landuse=forest) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-leaf-type:
- name: Leaf Types of Forests CLC
- description: Frequency of forests according to Corine Land Cover Category "Forests" (level 2) tagged with Leaf Type.
- endpoint: elements
- aggregation_type: area
- filter: >-
- (natural=wood or landuse=forest) and geometry:polygon
- ratio_filter: >-
- (natural=wood or landuse=forest) and
- leaf_type in (broadleaved, needleleaved, mixed) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - attribute-completeness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-shrub-area:
- name: Shrubs CLC
- description: Selected features for Corine Land Cover Category "Shrubs" (level 2) in Seminatural Land.
- endpoint: elements
- aggregation_type: area
- filter: (natural in (scrub, fell, tundra, shrubbery) or landuse=meadow) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-open-spaces-area:
- name: Open Spaces CLC
- description: Selected features for Corine Land Cover Category "Open Spaces" (level 2) in Seminatural Land.
- endpoint: elements
- aggregation_type: area
- filter: >-
- natural in (beach, bare_rock, rock, stone, glacier, ridge, peak, earth_bank, cliff, arete, shingle, crevasse) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-wetland-area:
- name: Wetlands CLC
- description: Selected features for Corine Land Cover Category "Wetlands" (level 1).
- endpoint: elements
- aggregation_type: area
- filter: (natural in (wetland, mud) or landuse=salt_pond) and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-water-area:
- name: Water CLC
- description: Selected features for Corine Land Cover Category "Water" (level 1), excluding waterways.
- endpoint: elements
- aggregation_type: area
- filter: >-
- (natural in (water, spring, hot_spring)
- or water in (lake, reservoir, pond, oxbow, basin))
- and geometry:polygon
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-clc-waterway-len:
- name: Waterways CLC
- description: Selected features for Corine Land Cover Category "Waterways" (level 2) in Water.
- endpoint: elements
- aggregation_type: length
- filter: waterway in (river, canal, stream, drain, ditch) and geometry:line
- indicators:
- - mapping-saturation
- - currentness
- - user-activity
- - attribute-completeness
- projects:
- - corine-land-cover
-
-### MISC TOPICS ###
-
-minimal:
- name: Minimal
- description: A minimal topic definition for testing purposes.
- endpoint: elements
- aggregation_type: count
- filter: building=* and building!=no and geometry:polygon
- indicators:
- - minimal
- projects:
- - misc
-
-### EXPERIMENTAL TOPICS ###
-
-infrastructure-lines:
- name: Infrastructure Lines
- description: Line objects related to infrastructure.
- endpoint: elements
- aggregation_type: length
- filter: (aerialway=* or aeroway=* or highway=* or power=* or railway=* or telecom=*) and geometry:line
- indicators:
- - mapping-saturation
- - currentness # currentness always requests /contributions/latest/count [count!]
- - user-activity
- - attribute-completeness
- projects:
- - experimental
diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py--test_calculate_low_coverage.approved.txt b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py--test_calculate_low_coverage.approved.txt
index c5ca909ed..e31069fa1 100644
--- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py--test_calculate_low_coverage.approved.txt
+++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py--test_calculate_low_coverage.approved.txt
@@ -1 +1 @@
-In your area-of-interest, the thematic accuracy of all CORINE Land Cover (CLC) classes is 82.53% (medium agreement between OSM and CORINE). This suggests that OSM does capture some land cover categories but may lack detail or accuracy. The F1-Score is used as a statistical metric that considers both the correctness and completeness of the land cover categories weighted by area. Warning: There is only 0 coverage with the comparison data. Please take the Land Cover Completeness indicator into account for interpretation of these results.
+In your area-of-interest, the thematic accuracy of all CORINE Land Cover (CLC) classes is 82.53% (medium agreement between OSM and CORINE). This suggests that OSM does capture some land cover categories but may lack detail or accuracy. The F1-Score is used as a statistical metric that considers both the correctness and completeness of the land cover categories weighted by area. Warning: There is only 30% coverage with the comparison data. Please take the Land Cover Completeness indicator into account for interpretation of these results.
diff --git a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_building_area].approved.json b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_building_area].approved.json
index 5b4412579..41f60e075 100644
--- a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_building_area].approved.json
+++ b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_building_area].approved.json
@@ -1 +1 @@
-{"data":[{"line":{"color":"#2185D0"},"name":"OSM data","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[179980,180605,194380,194817,229270,229231,246017,247675,247670,259126,264264,265582,355691,364419,364419,386985,403175,423333,430461,428190,436593,434946,440533,442248,442247,445940,445940,459015,455822,675735,721926,1034986,1136636,1622836,2055636,2142744,2190436,2258992,2259155,2254683,2273776,2278587,2281242,2281646,2283410,2296416,2296284,2295566,2299014,2312022,2314528,2321674,2324682,2345275,2341944,2351381,2349435,2349459,2350556,2350571,2349632,2347081,2346787,2351834,2344487,2338243,2334022,2337084,2337599,2335738,2331812,2341968,2333482,2337885,2335531,2334369,2334024,2335392,2336427,2339055,2345296,2334262,2329255,2328337,2322665,2322721,2323352,2324522,2323260,2322004,2323881,2334613,2338086,2338393,2339155,2339316,2338233,2337408,2338279,2337662,2337303,2338215,2338081,2339133,2338889,2368670,2368521,2368583,2342557,2342633,2343163,2342947,2356045,2356061,2354942,2356686,2354870,2354255,2354570,2354181,2350756,2360200,2361658,2361615,2361068,2361899,2355834,2354827,2355121,2357054,2352888,2352757,2353781,2353351,2352737,2352306,2355710,2353140,2353367,2353843,2359363,2360742,2359902,2361224,2361600,2361624,2359657,2359935,2359051,2360163,2361130,2363489,2361205,2360518,2362305,2361442,2361797,2367515,2366720,2372163,2373986,2374004,2376223,2379680,2380812,2383575,2385881,2386132,2386505,2406097,2404101,2404509,2401215,2410099,2393203,2393694,2397041,2394528,2396630,2396922,2397246,2395146,2395134,2401274,2403821,2403772,2403011,2406765,2407033,2406226,2406270,2405702,2406783,2407914,2408036,2407978,2404628,2405187,2403099,2400650,2393410,2391476,2391298,2390587,2390854,2389828,2389716,2389740,2414754,2414821,2415230,2418127,2416905,2421758,2421795,2422240,2422074],"type":"scatter"},{"line":{"color":"#DB2828"},"name":"Modelled saturation curve","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[492.49,649.5,856.54,1129.55,1489.52,1964.11,2589.74,3414.38,4501.11,5932.85,7818.49,10300.85,13566.81,17860.43,23499.34,30895.17,40578.37,53227.39,69701.29,91073.3,118660.21,154038.23,199030.97,255648.41,325951.77,411820.3,514610.75,634734.99,771234.66,921487.15,1081197.65,1244777.21,1406073.84,1559270.14,1699681.03,1824233.74,1931555.07,2021737.86,2095935.07,2155926.61,2203753.08,2241454.48,2270911.44,2293767.47,2311406.31,2324962.25,2335347.05,2343283.03,2349336.26,2353946.8,2357454.68,2360121.38,2362147.34,2363685.78,2364853.59,2365739.81,2366412.2,2366922.27,2367309.16,2367602.59,2367825.12,2367993.88,2368121.85,2368218.89,2368292.47,2368348.26,2368390.57,2368422.64,2368446.97,2368465.41,2368479.39,2368489.99,2368498.03,2368504.13,2368508.75,2368512.25,2368514.91,2368516.92,2368518.45,2368519.61,2368520.49,2368521.15,2368521.66,2368522.04,2368522.33,2368522.55,2368522.72,2368522.85,2368522.94,2368523.01,2368523.07,2368523.11,2368523.14,2368523.17,2368523.18,2368523.2,2368523.21,2368523.22,2368523.22,2368523.23,2368523.23,2368523.23,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24],"type":"scatter"},{"hovertext":"Estimated total data: 2368523.24","line":{"color":"#DB2828","dash":"dash"},"name":"Estimated total data","showlegend":true,"x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24],"type":"scatter"}],"layout":{"legend":{"bgcolor":"rgba(255,255,255,0.66)","x":0.02,"y":0.85},"showlegend":true,"title":{"text":"Mapping Saturation"},"xaxis":{"ticks":"outside","title":{"text":"Date"}},"yaxis":{"range":[179980,2543352.0],"title":{"text":"Area"}},"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}}}}
+{"data":[{"line":{"color":"#2185D0"},"name":"OSM data","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[179980,180605,194380,194817,229270,229231,246017,247675,247670,259126,264264,265582,355691,364419,364419,386985,403175,423333,430461,428190,436593,434946,440533,442248,442247,445940,445940,459015,455822,675735,721926,1034986,1136636,1622836,2055636,2142744,2190436,2258992,2259155,2254683,2273776,2278587,2281242,2281646,2283410,2296416,2296284,2295566,2299014,2312022,2314528,2321674,2324682,2345275,2341944,2351381,2349435,2349459,2350556,2350571,2349632,2347081,2346787,2351834,2344487,2338243,2334022,2337084,2337599,2335738,2331812,2341968,2333482,2337885,2335531,2334369,2334024,2335392,2336427,2339055,2345296,2334262,2329255,2328337,2322665,2322721,2323352,2324522,2323260,2322004,2323881,2334613,2338086,2338393,2339155,2339316,2338233,2337408,2338279,2337662,2337303,2338215,2338081,2339133,2338889,2368670,2368521,2368583,2342557,2342633,2343163,2342947,2356045,2356061,2354942,2356686,2354870,2354255,2354570,2354181,2350756,2360200,2361658,2361615,2361068,2361899,2355834,2354827,2355121,2357054,2352888,2352757,2353781,2353351,2352737,2352306,2355710,2353140,2353367,2353843,2359363,2360742,2359902,2361224,2361600,2361624,2359657,2359935,2359051,2360163,2361130,2363489,2361205,2360518,2362305,2361442,2361797,2367515,2366720,2372163,2373986,2374004,2376223,2379680,2380812,2383575,2385881,2386132,2386505,2406097,2404101,2404509,2401215,2410099,2393203,2393694,2397041,2394528,2396630,2396922,2397246,2395146,2395134,2401274,2403821,2403772,2403011,2406765,2407033,2406226,2406270,2405702,2406783,2407914,2408036,2407978,2404628,2405187,2403099,2400650,2393410,2391476,2391298,2390587,2390854,2389828,2389716,2389740,2414754,2414821,2415230,2418127,2416905,2421758,2421795,2422240,2422074],"type":"scatter"},{"line":{"color":"#DB2828"},"name":"Modelled saturation curve","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[492.49,649.5,856.54,1129.55,1489.52,1964.11,2589.74,3414.38,4501.11,5932.85,7818.49,10300.85,13566.81,17860.43,23499.34,30895.17,40578.37,53227.4,69701.29,91073.3,118660.21,154038.24,199030.97,255648.41,325951.78,411820.3,514610.75,634735.0,771234.66,921487.15,1081197.65,1244777.21,1406073.84,1559270.14,1699681.03,1824233.74,1931555.07,2021737.85,2095935.07,2155926.61,2203753.08,2241454.48,2270911.44,2293767.47,2311406.31,2324962.25,2335347.05,2343283.03,2349336.26,2353946.8,2357454.68,2360121.38,2362147.34,2363685.78,2364853.59,2365739.81,2366412.2,2366922.27,2367309.16,2367602.59,2367825.12,2367993.88,2368121.85,2368218.89,2368292.47,2368348.26,2368390.57,2368422.64,2368446.97,2368465.41,2368479.39,2368489.99,2368498.03,2368504.13,2368508.75,2368512.25,2368514.91,2368516.92,2368518.45,2368519.61,2368520.49,2368521.15,2368521.66,2368522.04,2368522.33,2368522.55,2368522.72,2368522.85,2368522.94,2368523.01,2368523.07,2368523.11,2368523.14,2368523.17,2368523.18,2368523.2,2368523.21,2368523.22,2368523.22,2368523.23,2368523.23,2368523.23,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24],"type":"scatter"},{"hovertext":"Estimated total data: 2368523.24","line":{"color":"#DB2828","dash":"dash"},"name":"Estimated total data","showlegend":true,"x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24,2368523.24],"type":"scatter"}],"layout":{"legend":{"bgcolor":"rgba(255,255,255,0.66)","x":0.02,"y":0.85},"showlegend":true,"title":{"text":"Mapping Saturation"},"xaxis":{"ticks":"outside","title":{"text":"Date"}},"yaxis":{"range":[179980,2543352.0],"title":{"text":"Area"}},"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}}}}
diff --git a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_roads].approved.json b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_roads].approved.json
index 5fb1e8ea3..69ff0379c 100644
--- a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_roads].approved.json
+++ b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py--TestFigure--test_negative_saturation[topic_roads].approved.json
@@ -1 +1 @@
-{"data":[{"line":{"color":"#2185D0"},"name":"OSM data","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[133062,132682,132325,132000,132779,133412,133879,134606,134842,136279,136026,134536,135002,136195,135955,137324,137961,138102,138073,138784,141026,141776,144634,144638,144360,144807,144994,145046,145744,146675,147001,149919,155447,156392,157620,158556,158789,159320,159611,161579,161839,162319,163981,168253,169406,176122,176856,177384,168678,171384,172284,172913,173984,174773,174736,175676,175658,175545,175405,175154,175464,175331,175196,175026,174968,175038,175298,176051,176136,176081,176263,176395,176414,176455,176279,176364,174492,174644,174717,175061,179142,178793,179113,179086,179125,179869,180533,180797,181220,181713,182125,182138,182771,182841,183660,184064,185073,186072,186419,186524,186329,186381,186544,186626,186874,187504,187370,187535,187586,187547,188380,188665,189917,189988,191187,192001,191943,192159,192284,192058,192397,192366,191756,191811,192370,192558,192750,193005,193167,192635,192864,193261,193103,193084,193338,193371,193782,194183,194890,194503,194798,194636,195083,194857,195166,195913,195877,196741,194791,194903,195341,195332,195691,195809,195937,196419,196565,196515,196687,197012,196946,197404,197805,198749,198301,198804,198774,198793,198833,199241,199022,204102,204389,204509,204595,204322,204837,204688,204989,205221,205285,205583,205629,205694,206409,206729,207074,207257,207127,207004,206945,207236,207968,208548,208443,208627,207981,207494,207912,207971,207368,207403,207447,207501,208136,207528,208827,208827,209086,209454,209257,209346,209377,209389,209387,209613,210294],"type":"scatter"},{"line":{"color":"#DB2828"},"name":"Modelled saturation curve","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[130232.59,131028.66,131821.58,132611.28,133397.67,134180.68,134960.22,135736.21,136508.59,137277.27,138042.19,138803.28,139560.45,140313.66,141062.83,141807.91,142548.81,143285.5,144017.9,144745.97,145469.64,146188.87,146903.6,147613.78,148319.37,149020.32,149716.59,150408.12,151094.89,151776.86,152453.98,153126.22,153793.55,154455.94,155113.36,155765.77,156413.16,157055.49,157692.74,158324.9,158951.94,159573.85,160190.6,160802.19,161408.59,162009.8,162605.81,163196.61,163782.19,164362.54,164937.67,165507.56,166072.22,166631.64,167185.83,167734.79,168278.53,168817.04,169350.34,169878.42,170401.31,170919.01,171431.53,171938.88,172441.08,172938.14,173430.08,173916.9,174398.64,174875.3,175346.91,175813.49,176275.05,176731.62,177183.23,177629.88,178071.62,178508.46,178940.42,179367.55,179789.85,180207.36,180620.11,181028.12,181431.43,181830.06,182224.05,182613.42,182998.21,183378.44,183754.16,184125.38,184492.16,184854.51,185212.47,185566.08,185915.36,186260.36,186601.11,186937.64,187269.99,187598.2,187922.29,188242.31,188558.29,188870.27,189178.27,189482.35,189782.53,190078.85,190371.35,190660.07,190945.03,191226.28,191503.86,191777.79,192048.12,192314.88,192578.11,192837.85,193094.12,193346.98,193596.45,193842.57,194085.37,194324.89,194561.17,194794.25,195024.15,195250.91,195474.57,195695.17,195912.73,196127.29,196338.89,196547.56,196753.33,196956.25,197156.33,197353.62,197548.15,197739.95,197929.06,198115.5,198299.31,198480.52,198659.16,198835.27,199008.87,199180.0,199348.69,199514.97,199678.86,199840.4,199999.62,200156.55,200311.22,200463.65,200613.88,200761.93,200907.83,201051.61,201193.3,201332.92,201470.51,201606.08,201739.67,201871.3,202001.0,202128.8,202254.71,202378.76,202500.99,202621.41,202740.05,202856.93,202972.08,203085.52,203197.28,203307.37,203415.82,203522.66,203627.9,203731.57,203833.68,203934.27,204033.35,204130.94,204227.07,204321.75,204415.01,204506.86,204597.33,204686.44,204774.19,204860.63,204945.75,205029.58,205112.15,205193.46,205273.54,205352.4,205430.06,205506.54,205581.86,205656.03,205729.07,205800.99,205871.82,205941.56,206010.24,206077.86,206144.45,206210.02,206274.59,206338.16,206400.76],"type":"scatter"},{"hovertext":"Estimated total data: 210336.9","line":{"color":"#DB2828","dash":"dash"},"name":"Estimated total data","showlegend":true,"x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9],"type":"scatter"}],"layout":{"legend":{"bgcolor":"rgba(255,255,255,0.66)","x":0.02,"y":0.85},"showlegend":true,"title":{"text":"Mapping Saturation"},"xaxis":{"ticks":"outside","title":{"text":"Date"}},"yaxis":{"range":[132000,220853.745],"title":{"text":"Lenght"}},"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}}}}
+{"data":[{"line":{"color":"#2185D0"},"name":"OSM data","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[133062,132682,132325,132000,132779,133412,133879,134606,134842,136279,136026,134536,135002,136195,135955,137324,137961,138102,138073,138784,141026,141776,144634,144638,144360,144807,144994,145046,145744,146675,147001,149919,155447,156392,157620,158556,158789,159320,159611,161579,161839,162319,163981,168253,169406,176122,176856,177384,168678,171384,172284,172913,173984,174773,174736,175676,175658,175545,175405,175154,175464,175331,175196,175026,174968,175038,175298,176051,176136,176081,176263,176395,176414,176455,176279,176364,174492,174644,174717,175061,179142,178793,179113,179086,179125,179869,180533,180797,181220,181713,182125,182138,182771,182841,183660,184064,185073,186072,186419,186524,186329,186381,186544,186626,186874,187504,187370,187535,187586,187547,188380,188665,189917,189988,191187,192001,191943,192159,192284,192058,192397,192366,191756,191811,192370,192558,192750,193005,193167,192635,192864,193261,193103,193084,193338,193371,193782,194183,194890,194503,194798,194636,195083,194857,195166,195913,195877,196741,194791,194903,195341,195332,195691,195809,195937,196419,196565,196515,196687,197012,196946,197404,197805,198749,198301,198804,198774,198793,198833,199241,199022,204102,204389,204509,204595,204322,204837,204688,204989,205221,205285,205583,205629,205694,206409,206729,207074,207257,207127,207004,206945,207236,207968,208548,208443,208627,207981,207494,207912,207971,207368,207403,207447,207501,208136,207528,208827,208827,209086,209454,209257,209346,209377,209389,209387,209613,210294],"type":"scatter"},{"line":{"color":"#DB2828"},"name":"Modelled saturation curve","x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[130232.59,131028.66,131821.58,132611.28,133397.67,134180.68,134960.22,135736.21,136508.59,137277.27,138042.19,138803.28,139560.46,140313.66,141062.83,141807.91,142548.81,143285.5,144017.9,144745.97,145469.64,146188.87,146903.6,147613.78,148319.37,149020.32,149716.59,150408.12,151094.89,151776.86,152453.98,153126.22,153793.55,154455.94,155113.36,155765.77,156413.16,157055.49,157692.74,158324.9,158951.94,159573.85,160190.6,160802.19,161408.59,162009.8,162605.81,163196.61,163782.19,164362.54,164937.67,165507.56,166072.22,166631.64,167185.83,167734.79,168278.53,168817.04,169350.34,169878.42,170401.31,170919.01,171431.53,171938.88,172441.08,172938.14,173430.08,173916.9,174398.64,174875.3,175346.91,175813.49,176275.05,176731.62,177183.23,177629.88,178071.62,178508.46,178940.42,179367.55,179789.85,180207.36,180620.11,181028.12,181431.43,181830.06,182224.05,182613.42,182998.21,183378.44,183754.16,184125.38,184492.16,184854.51,185212.47,185566.08,185915.36,186260.36,186601.11,186937.64,187269.99,187598.2,187922.29,188242.31,188558.29,188870.27,189178.27,189482.35,189782.53,190078.85,190371.35,190660.07,190945.03,191226.28,191503.86,191777.79,192048.12,192314.88,192578.11,192837.85,193094.12,193346.98,193596.45,193842.57,194085.37,194324.89,194561.17,194794.25,195024.15,195250.91,195474.57,195695.17,195912.73,196127.29,196338.89,196547.56,196753.33,196956.25,197156.33,197353.62,197548.15,197739.95,197929.06,198115.5,198299.31,198480.52,198659.16,198835.27,199008.87,199180.0,199348.69,199514.97,199678.86,199840.4,199999.62,200156.55,200311.22,200463.65,200613.88,200761.93,200907.83,201051.61,201193.3,201332.92,201470.51,201606.08,201739.67,201871.3,202001.0,202128.8,202254.71,202378.76,202500.99,202621.41,202740.05,202856.93,202972.08,203085.52,203197.28,203307.37,203415.82,203522.66,203627.9,203731.57,203833.68,203934.27,204033.35,204130.94,204227.07,204321.75,204415.01,204506.86,204597.33,204686.44,204774.19,204860.63,204945.75,205029.58,205112.15,205193.46,205273.54,205352.4,205430.06,205506.54,205581.86,205656.03,205729.07,205800.99,205871.82,205941.56,206010.24,206077.86,206144.45,206210.02,206274.59,206338.16,206400.76],"type":"scatter"},{"hovertext":"Estimated total data: 210336.9","line":{"color":"#DB2828","dash":"dash"},"name":"Estimated total data","showlegend":true,"x":["2008-07-21T00:00:00+00:00","2008-08-21T00:00:00+00:00","2008-09-21T00:00:00+00:00","2008-10-21T00:00:00+00:00","2008-11-21T00:00:00+00:00","2008-12-21T00:00:00+00:00","2009-01-21T00:00:00+00:00","2009-02-21T00:00:00+00:00","2009-03-21T00:00:00+00:00","2009-04-21T00:00:00+00:00","2009-05-21T00:00:00+00:00","2009-06-21T00:00:00+00:00","2009-07-21T00:00:00+00:00","2009-08-21T00:00:00+00:00","2009-09-21T00:00:00+00:00","2009-10-21T00:00:00+00:00","2009-11-21T00:00:00+00:00","2009-12-21T00:00:00+00:00","2010-01-21T00:00:00+00:00","2010-02-21T00:00:00+00:00","2010-03-21T00:00:00+00:00","2010-04-21T00:00:00+00:00","2010-05-21T00:00:00+00:00","2010-06-21T00:00:00+00:00","2010-07-21T00:00:00+00:00","2010-08-21T00:00:00+00:00","2010-09-21T00:00:00+00:00","2010-10-21T00:00:00+00:00","2010-11-21T00:00:00+00:00","2010-12-21T00:00:00+00:00","2011-01-21T00:00:00+00:00","2011-02-21T00:00:00+00:00","2011-03-21T00:00:00+00:00","2011-04-21T00:00:00+00:00","2011-05-21T00:00:00+00:00","2011-06-21T00:00:00+00:00","2011-07-21T00:00:00+00:00","2011-08-21T00:00:00+00:00","2011-09-21T00:00:00+00:00","2011-10-21T00:00:00+00:00","2011-11-21T00:00:00+00:00","2011-12-21T00:00:00+00:00","2012-01-21T00:00:00+00:00","2012-02-21T00:00:00+00:00","2012-03-21T00:00:00+00:00","2012-04-21T00:00:00+00:00","2012-05-21T00:00:00+00:00","2012-06-21T00:00:00+00:00","2012-07-21T00:00:00+00:00","2012-08-21T00:00:00+00:00","2012-09-21T00:00:00+00:00","2012-10-21T00:00:00+00:00","2012-11-21T00:00:00+00:00","2012-12-21T00:00:00+00:00","2013-01-21T00:00:00+00:00","2013-02-21T00:00:00+00:00","2013-03-21T00:00:00+00:00","2013-04-21T00:00:00+00:00","2013-05-21T00:00:00+00:00","2013-06-21T00:00:00+00:00","2013-07-21T00:00:00+00:00","2013-08-21T00:00:00+00:00","2013-09-21T00:00:00+00:00","2013-10-21T00:00:00+00:00","2013-11-21T00:00:00+00:00","2013-12-21T00:00:00+00:00","2014-01-21T00:00:00+00:00","2014-02-21T00:00:00+00:00","2014-03-21T00:00:00+00:00","2014-04-21T00:00:00+00:00","2014-05-21T00:00:00+00:00","2014-06-21T00:00:00+00:00","2014-07-21T00:00:00+00:00","2014-08-21T00:00:00+00:00","2014-09-21T00:00:00+00:00","2014-10-21T00:00:00+00:00","2014-11-21T00:00:00+00:00","2014-12-21T00:00:00+00:00","2015-01-21T00:00:00+00:00","2015-02-21T00:00:00+00:00","2015-03-21T00:00:00+00:00","2015-04-21T00:00:00+00:00","2015-05-21T00:00:00+00:00","2015-06-21T00:00:00+00:00","2015-07-21T00:00:00+00:00","2015-08-21T00:00:00+00:00","2015-09-21T00:00:00+00:00","2015-10-21T00:00:00+00:00","2015-11-21T00:00:00+00:00","2015-12-21T00:00:00+00:00","2016-01-21T00:00:00+00:00","2016-02-21T00:00:00+00:00","2016-03-21T00:00:00+00:00","2016-04-21T00:00:00+00:00","2016-05-21T00:00:00+00:00","2016-06-21T00:00:00+00:00","2016-07-21T00:00:00+00:00","2016-08-21T00:00:00+00:00","2016-09-21T00:00:00+00:00","2016-10-21T00:00:00+00:00","2016-11-21T00:00:00+00:00","2016-12-21T00:00:00+00:00","2017-01-21T00:00:00+00:00","2017-02-21T00:00:00+00:00","2017-03-21T00:00:00+00:00","2017-04-21T00:00:00+00:00","2017-05-21T00:00:00+00:00","2017-06-21T00:00:00+00:00","2017-07-21T00:00:00+00:00","2017-08-21T00:00:00+00:00","2017-09-21T00:00:00+00:00","2017-10-21T00:00:00+00:00","2017-11-21T00:00:00+00:00","2017-12-21T00:00:00+00:00","2018-01-21T00:00:00+00:00","2018-02-21T00:00:00+00:00","2018-03-21T00:00:00+00:00","2018-04-21T00:00:00+00:00","2018-05-21T00:00:00+00:00","2018-06-21T00:00:00+00:00","2018-07-21T00:00:00+00:00","2018-08-21T00:00:00+00:00","2018-09-21T00:00:00+00:00","2018-10-21T00:00:00+00:00","2018-11-21T00:00:00+00:00","2018-12-21T00:00:00+00:00","2019-01-21T00:00:00+00:00","2019-02-21T00:00:00+00:00","2019-03-21T00:00:00+00:00","2019-04-21T00:00:00+00:00","2019-05-21T00:00:00+00:00","2019-06-21T00:00:00+00:00","2019-07-21T00:00:00+00:00","2019-08-21T00:00:00+00:00","2019-09-21T00:00:00+00:00","2019-10-21T00:00:00+00:00","2019-11-21T00:00:00+00:00","2019-12-21T00:00:00+00:00","2020-01-21T00:00:00+00:00","2020-02-21T00:00:00+00:00","2020-03-21T00:00:00+00:00","2020-04-21T00:00:00+00:00","2020-05-21T00:00:00+00:00","2020-06-21T00:00:00+00:00","2020-07-21T00:00:00+00:00","2020-08-21T00:00:00+00:00","2020-09-21T00:00:00+00:00","2020-10-21T00:00:00+00:00","2020-11-21T00:00:00+00:00","2020-12-21T00:00:00+00:00","2021-01-21T00:00:00+00:00","2021-02-21T00:00:00+00:00","2021-03-21T00:00:00+00:00","2021-04-21T00:00:00+00:00","2021-05-21T00:00:00+00:00","2021-06-21T00:00:00+00:00","2021-07-21T00:00:00+00:00","2021-08-21T00:00:00+00:00","2021-09-21T00:00:00+00:00","2021-10-21T00:00:00+00:00","2021-11-21T00:00:00+00:00","2021-12-21T00:00:00+00:00","2022-01-21T00:00:00+00:00","2022-02-21T00:00:00+00:00","2022-03-21T00:00:00+00:00","2022-04-21T00:00:00+00:00","2022-05-21T00:00:00+00:00","2022-06-21T00:00:00+00:00","2022-07-21T00:00:00+00:00","2022-08-21T00:00:00+00:00","2022-09-21T00:00:00+00:00","2022-10-21T00:00:00+00:00","2022-11-21T00:00:00+00:00","2022-12-21T00:00:00+00:00","2023-01-21T00:00:00+00:00","2023-02-21T00:00:00+00:00","2023-03-21T00:00:00+00:00","2023-04-21T00:00:00+00:00","2023-05-21T00:00:00+00:00","2023-06-21T00:00:00+00:00","2023-07-21T00:00:00+00:00","2023-08-21T00:00:00+00:00","2023-09-21T00:00:00+00:00","2023-10-21T00:00:00+00:00","2023-11-21T00:00:00+00:00","2023-12-21T00:00:00+00:00","2024-01-21T00:00:00+00:00","2024-02-21T00:00:00+00:00","2024-03-21T00:00:00+00:00","2024-04-21T00:00:00+00:00","2024-05-21T00:00:00+00:00","2024-06-21T00:00:00+00:00","2024-07-21T00:00:00+00:00","2024-08-21T00:00:00+00:00","2024-09-21T00:00:00+00:00","2024-10-21T00:00:00+00:00","2024-11-21T00:00:00+00:00","2024-12-21T00:00:00+00:00","2025-01-21T00:00:00+00:00","2025-02-21T00:00:00+00:00","2025-03-21T00:00:00+00:00","2025-04-21T00:00:00+00:00","2025-05-21T00:00:00+00:00","2025-06-21T00:00:00+00:00","2025-07-21T00:00:00+00:00","2025-08-21T00:00:00+00:00","2025-09-21T00:00:00+00:00","2025-10-21T00:00:00+00:00","2025-11-21T00:00:00+00:00","2025-12-21T00:00:00+00:00","2026-01-21T00:00:00+00:00","2026-02-21T00:00:00+00:00","2026-03-21T00:00:00+00:00","2026-04-21T00:00:00+00:00","2026-05-21T00:00:00+00:00","2026-06-21T00:00:00+00:00","2026-07-01T00:00:00+00:00"],"y":[210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9,210336.9],"type":"scatter"}],"layout":{"legend":{"bgcolor":"rgba(255,255,255,0.66)","x":0.02,"y":0.85},"showlegend":true,"title":{"text":"Mapping Saturation"},"xaxis":{"ticks":"outside","title":{"text":"Date"}},"yaxis":{"range":[132000,220853.745],"title":{"text":"Lenght"}},"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}}}}
diff --git a/tests/approvals/integrationtests/test_base_indicator.py--TestBaseIndicator--test_get_template_translated.approved.txt b/tests/approvals/integrationtests/test_base_indicator.py--TestBaseIndicator--test_get_template_translated.approved.txt
index be59afc71..d66f616e1 100644
--- a/tests/approvals/integrationtests/test_base_indicator.py--TestBaseIndicator--test_get_template_translated.approved.txt
+++ b/tests/approvals/integrationtests/test_base_indicator.py--TestBaseIndicator--test_get_template_translated.approved.txt
@@ -1,9 +1,9 @@
{
"label_description": {
- "green": "Gute Datenqualität.",
- "yellow": "Mittlere Datenqualität.",
- "red": "Schlechte Datenqualität",
- "undefined": "Das Qualitätslevel konnte für diesen Indikator nicht berechnet werden."
+ "green": "Hohe Sättigung ereicht (97% < Sättigung ≤ 100%).",
+ "yellow": "Sättigung fortschreitend (30% < Sättigung ≤ 97%).",
+ "red": "Kein Sättigung erkannt (Sättigung ≤ 30%).",
+ "undefined": "Sättigung konnte nicht berechnet werden."
},
- "result_description": "Eine Beschreibung der Ergebnisse."
+ "result_description": "Die Sättigung der letzten 3 Jahre ist $saturation."
}
diff --git a/tests/approvals/unittests/test_indicators_definitions.py--test_get_indicator_de.approved.txt b/tests/approvals/unittests/test_indicators_definitions.py--test_get_indicator_de.approved.txt
index 652c4d4a8..9d6c1d6f7 100644
--- a/tests/approvals/unittests/test_indicators_definitions.py--test_get_indicator_de.approved.txt
+++ b/tests/approvals/unittests/test_indicators_definitions.py--test_get_indicator_de.approved.txt
@@ -1,16 +1,5 @@
{
"name": "Kartierungssättigung",
"description": "Berechne ob das Kartieren gesättigt ist. Bei hohe Sättigung ist die Steigung der Kurve minimal.",
- "projects": [
- "core",
- "corine-land-cover",
- "expanse",
- "experimental",
- "idealvgi",
- "mapaction",
- "sketchmap",
- "bkg",
- "unicef"
- ],
"quality_dimension": "completeness"
}
diff --git a/tests/approvals/unittests/test_quality_dimension_definitions.py--test_get_quality_dimension_translated.approved.txt b/tests/approvals/unittests/test_quality_dimension_definitions.py--test_get_quality_dimension_translated.approved.txt
index ade4a7e14..a71a8c934 100644
--- a/tests/approvals/unittests/test_quality_dimension_definitions.py--test_get_quality_dimension_translated.approved.txt
+++ b/tests/approvals/unittests/test_quality_dimension_definitions.py--test_get_quality_dimension_translated.approved.txt
@@ -1,5 +1,5 @@
{
- "name": "minimal",
- "description": "Eine minimale Qualitätsdimension zum Testen.",
- "source": null
+ "name": "Vollständigkeit",
+ "description": "Der Grad, in dem mit einer Entität verbundene Fachdaten Werte für alle erwarteten Attribute und zugehörige Entitätsinstanzen in einem bestimmten Verwendungskontext aufweisen.",
+ "source": "https://www.iso.org/standard/78900.html"
}
diff --git a/tests/approvals/unittests/test_topics_definitions.py--test_get_topic_preset_translated.approved.txt b/tests/approvals/unittests/test_topics_definitions.py--test_get_topic_preset_translated.approved.txt
index 94b885a10..48555de53 100644
--- a/tests/approvals/unittests/test_topics_definitions.py--test_get_topic_preset_translated.approved.txt
+++ b/tests/approvals/unittests/test_topics_definitions.py--test_get_topic_preset_translated.approved.txt
@@ -1,15 +1,14 @@
{
- "key": "minimal",
- "name": "Minimal",
- "description": "Eine minimale Themen-Definition zu Testzwecken.",
- "endpoint": "elements",
+ "key": "building-count",
+ "name": "Gebäude (Anzahl)",
+ "description": "Alle Gebäude, definiert durch alle Objekte mit dem Tag ‚building=*‘.",
"aggregation_type": "count",
"filter": "building=* and building!=no and geometry:polygon",
"indicators": [
- "minimal"
- ],
- "projects": [
- "misc"
+ "mapping-saturation",
+ "currentness",
+ "attribute-completeness",
+ "user-activity"
],
"source": null,
"ratio_filter": null
diff --git a/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[2897600962].cassette.json b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[2897600962].cassette.json
new file mode 100644
index 000000000..2fde3c2a6
--- /dev/null
+++ b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[2897600962].cassette.json
@@ -0,0 +1 @@
+{"3939642607": {"results": [{"total_dlm": 608470.5960139487, "present_in_both": 0.0, "only_osm": 63264.37977819282, "only_dlm": 0.0, "present_in_both_agree": 0.0, "present_in_both_not_agree": 0.0, "not_matched": 55183.081305949185, "missing_both": 490023.1349298072}], "query": "WITH bpoly AS (\n SELECT\n -- split multipolygon into individual polygons\n (ST_Dump (ST_SetSRID (ST_GeomFromGeoJSON ($1), 4326))).geom AS geometry\n)\nSELECT\n SUM(matched_length) + SUM(not_matched_length) as total_dlm,\n SUM(\n CASE\n WHEN lanes is not NULL AND fsz is not NULL\n AND (name is not NULL OR ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL THEN matched_length\n ELSE 0\n END\n ) AS present_in_both,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND (name is not NULL OR ref is not NULL)\n AND oneway is not NULL\n AND surface is not NULL\n AND width is not NULL\n AND (\n fsz is NULL\n OR nam is NULL\n OR far is NULL\n OR ofm is NULL\n OR brf is NULL\n )\n THEN matched_length\n ELSE 0\n END\n ) AS only_osm,\n SUM(\n CASE\n WHEN fsz IS NOT NULL\n AND nam is not NULL\n AND far is not NULL\n AND ofm is not NULL\n AND brf is not NULL\n AND (\n lanes IS NULL\n OR (name is NULL AND ref is NULL)\n OR oneway is NULL\n OR surface is NULL\n OR width is NULL\n )\n THEN matched_length\n ELSE 0\n END\n ) AS only_dlm,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes = fsz\n AND lev_ratio >= 0.8\n AND oneway = far\n AND ((angle_osm > 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm < 0))\n AND surface = ofm\n AND abs(width - brf) > 1\n THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_agree,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes != fsz\n AND lev_ratio < 0.8\n AND (oneway != far\n OR ((angle_osm < 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm > 0)))\n AND surface != ofm\n AND abs(width - brf) <= 1\n THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_not_agree,\n SUM(not_matched_length) AS not_matched,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n THEN 0\n WHEN lanes is not NULL\n AND (name is not NULL OR ref is not NULL)\n AND oneway is not NULL\n AND surface is not NULL\n AND width is not NULL\n AND (\n fsz is NULL\n OR nam is NULL\n OR far is NULL\n OR ofm is NULL\n OR brf is NULL\n )\n THEN 0\n WHEN fsz IS NOT NULL\n AND nam is not NULL\n AND far is not NULL\n AND ofm is not NULL\n AND brf is not NULL\n AND (\n lanes IS NULL\n OR (name is NULL AND ref is NULL)\n OR oneway is NULL\n OR surface is NULL\n OR width is NULL\n )\n THEN 0\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes = fsz\n AND lev_ratio >= 0.8\n AND oneway = far\n AND ((angle_osm > 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm < 0))\n AND surface = ofm\n AND abs(width - brf) > 1\n THEN 0\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes != fsz\n AND lev_ratio < 0.8\n AND (oneway != far\n OR ((angle_osm < 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm > 0)))\n AND surface != ofm\n AND abs(width - brf) <= 1\n THEN 0\n WHEN osm_id IS NULL THEN 0\n ELSE matched_length\n END\n ) AS missing_both\nFROM road_thematic_accuracy as ora, bpoly b\nWHERE ST_Intersects(ora.geom, b.geometry);\n", "args": ["{\"coordinates\": [[[8.573179, 49.4236], [8.573244, 49.423266], [8.573517, 49.421746], [8.573602, 49.421029], [8.57363, 49.420766], [8.573618, 49.420478], [8.573575, 49.420208], [8.573487, 49.419852], [8.573253, 49.419103], [8.57328, 49.418634], [8.573262, 49.41846], [8.573244, 49.418239], [8.573233, 49.418026], [8.573211, 49.417562], [8.573206, 49.417217], [8.573223, 49.416902], [8.573288, 49.416518], [8.57343, 49.415763], [8.573622, 49.415734], [8.57398, 49.414723], [8.574098, 49.414422], [8.574905, 49.412659], [8.575126, 49.41262], [8.575952, 49.412479], [8.576355, 49.412403], [8.576806, 49.412309], [8.577418, 49.412162], [8.578871, 49.411816], [8.580327, 49.411477], [8.580548, 49.411425], [8.581021, 49.411314], [8.581467, 49.411198], [8.582126, 49.411021], [8.58281, 49.410831], [8.583621, 49.410604], [8.584256, 49.41041], [8.584461, 49.410598], [8.584601, 49.41074], [8.58466, 49.410809], [8.584729, 49.410896], [8.584841, 49.411043], [8.584893, 49.411041], [8.590664, 49.410551], [8.592504, 49.410392], [8.59249, 49.410325], [8.592557, 49.410316], [8.592992, 49.410285], [8.594295, 49.410194], [8.595027, 49.410131], [8.595718, 49.41008], [8.596457, 49.410013], [8.597109, 49.409948], [8.597817, 49.409869], [8.598479, 49.409799], [8.59864, 49.409784], [8.600522, 49.409526], [8.603393, 49.409127], [8.60354, 49.409104], [8.603638, 49.409079], [8.6052, 49.408456], [8.608794, 49.407045], [8.610673, 49.405949], [8.611461, 49.405467], [8.612437, 49.406203], [8.616606, 49.407383], [8.622553, 49.409046], [8.622627, 49.40901], [8.622648, 49.408953], [8.62272, 49.408975], [8.622722, 49.408976], [8.622791, 49.409015], [8.622851, 49.409049], [8.623189, 49.409236], [8.624498, 49.409957], [8.62459, 49.410009], [8.625101, 49.410294], [8.625378, 49.410448], [8.625911, 49.410745], [8.626324, 49.410975], [8.626979, 49.411341], [8.628263, 49.412032], [8.62859, 49.412213], [8.629072, 49.412486], [8.630034, 49.413176], [8.630959, 49.413833], [8.632078, 49.414583], [8.632707, 49.415007], [8.632748, 49.415035], [8.632938, 49.414961], [8.633025, 49.414928], [8.633075, 49.414807], [8.63406, 49.412449], [8.634446, 49.411487], [8.634737, 49.410763], [8.635407, 49.409092], [8.635873, 49.407932], [8.636033, 49.40753], [8.636136, 49.407242], [8.636215, 49.406957], [8.636379, 49.406391], [8.636465, 49.406041], [8.636591, 49.405566], [8.636667, 49.405073], [8.636706, 49.404806], [8.636743, 49.404552], [8.636827, 49.403969], [8.6369, 49.403462], [8.636926, 49.403268], [8.637017, 49.402596], [8.637222, 49.401141], [8.63755, 49.3988], [8.638008, 49.395648], [8.638186, 49.393813], [8.638295, 49.39272], [8.638521, 49.392746], [8.640722, 49.393021], [8.64343, 49.393381], [8.643512, 49.393194], [8.643527, 49.39316], [8.645535, 49.390884], [8.64636, 49.389866], [8.6475, 49.388537], [8.645357, 49.388044], [8.643807, 49.387609], [8.642091, 49.387149], [8.641038, 49.386841], [8.639916, 49.386498], [8.639667, 49.386434], [8.639387, 49.386413], [8.638662, 49.386411], [8.638086, 49.386573], [8.636604, 49.38704], [8.634926, 49.387313], [8.633683, 49.387185], [8.633598, 49.387174], [8.633542, 49.386897], [8.633434, 49.386227], [8.633401, 49.385899], [8.633366, 49.385891], [8.630199, 49.385201], [8.629858, 49.385107], [8.629436, 49.384945], [8.628851, 49.384706], [8.628366, 49.384445], [8.627801, 49.38413], [8.627122, 49.383729], [8.62646, 49.38335], [8.625986, 49.383068], [8.625383, 49.382699], [8.624878, 49.382387], [8.624241, 49.38199], [8.623785, 49.381668], [8.624382, 49.38067], [8.621112, 49.380011], [8.620378, 49.379843], [8.617932, 49.379283], [8.616155, 49.379158], [8.615294, 49.378918], [8.614545, 49.378758], [8.613751, 49.378528], [8.612581, 49.378202], [8.610866, 49.378017], [8.610186, 49.377919], [8.609757, 49.37785], [8.609403, 49.377756], [8.609066, 49.377649], [8.608678, 49.377505], [8.607916, 49.37721], [8.607342, 49.376972], [8.606882, 49.376751], [8.60681, 49.376163], [8.607222, 49.374986], [8.607484, 49.37429], [8.607333, 49.373851], [8.606536, 49.371886], [8.605798, 49.370097], [8.605168, 49.370272], [8.60321, 49.368377], [8.601004, 49.366203], [8.604393, 49.365577], [8.604307, 49.365419], [8.605479, 49.365214], [8.605885, 49.365159], [8.607155, 49.365004], [8.607562, 49.364962], [8.607787, 49.364932], [8.608004, 49.364857], [8.60823, 49.364779], [8.608521, 49.364676], [8.608763, 49.364589], [8.608975, 49.364526], [8.60924, 49.364461], [8.609518, 49.364418], [8.609797, 49.364361], [8.610128, 49.3643], [8.610354, 49.364251], [8.610605, 49.364179], [8.610995, 49.364053], [8.611555, 49.363849], [8.612129, 49.363662], [8.613637, 49.363103], [8.615444, 49.362414], [8.61635, 49.362058], [8.617043, 49.361767], [8.617591, 49.361529], [8.618237, 49.361201], [8.618957, 49.360849], [8.619443, 49.360653], [8.619975, 49.360461], [8.620625, 49.360206], [8.621086, 49.360044], [8.621364, 49.359916], [8.621823, 49.359713], [8.622089, 49.35959], [8.622436, 49.35947], [8.623627, 49.359191], [8.624466, 49.359063], [8.623282, 49.35746], [8.623019, 49.357581], [8.621335, 49.355497], [8.620215, 49.354073], [8.620484, 49.354038], [8.620686, 49.354007], [8.621085, 49.353877], [8.623323, 49.35288], [8.625019, 49.352119], [8.62524, 49.35203], [8.625625, 49.352003], [8.627988, 49.352082], [8.628566, 49.352102], [8.629102, 49.352103], [8.629641, 49.352094], [8.630762, 49.352065], [8.630787, 49.352734], [8.631513, 49.352774], [8.631909, 49.352796], [8.632002, 49.352809], [8.632227, 49.352816], [8.632605, 49.35284], [8.632903, 49.352846], [8.633112, 49.352836], [8.633234, 49.352838], [8.633289, 49.353939], [8.633355, 49.355012], [8.633367, 49.355489], [8.63355, 49.355781], [8.633757, 49.3561], [8.633974, 49.356482], [8.634167, 49.356808], [8.634287, 49.357126], [8.634421, 49.357445], [8.634503, 49.357686], [8.634859, 49.358095], [8.635396, 49.358765], [8.636103, 49.359671], [8.636657, 49.360357], [8.636737, 49.360538], [8.636888, 49.361037], [8.637136, 49.36199], [8.637264, 49.362635], [8.637304, 49.362804], [8.637443, 49.363191], [8.637664, 49.36361], [8.637986, 49.364357], [8.638362, 49.365323], [8.638797, 49.36638], [8.639105, 49.3671], [8.639672, 49.368535], [8.640274, 49.369977], [8.64095, 49.36962], [8.642835, 49.368655], [8.644035, 49.369071], [8.644716, 49.369324], [8.644987, 49.369459], [8.645246, 49.369621], [8.645609, 49.369857], [8.645945, 49.370086], [8.646206, 49.370303], [8.646365, 49.370464], [8.647363, 49.369711], [8.647775, 49.369395], [8.64813, 49.369156], [8.648616, 49.368856], [8.649147, 49.368515], [8.649775, 49.368118], [8.650491, 49.367685], [8.650841, 49.367478], [8.650529, 49.366984], [8.650281, 49.366573], [8.650115, 49.36627], [8.649942, 49.365978], [8.651691, 49.364976], [8.651847, 49.365094], [8.652197, 49.364902], [8.652915, 49.364549], [8.653519, 49.364273], [8.654112, 49.36402], [8.654768, 49.363737], [8.655407, 49.363473], [8.656377, 49.363115], [8.657142, 49.362813], [8.657764, 49.363277], [8.658185, 49.363054], [8.658651, 49.362837], [8.659164, 49.362571], [8.658051, 49.361776], [8.657009, 49.360179], [8.656454, 49.35929], [8.655814, 49.358138], [8.655354, 49.357298], [8.654879, 49.356558], [8.654787, 49.35643], [8.654561, 49.356112], [8.653362, 49.356263], [8.652987, 49.35577], [8.652544, 49.355287], [8.652104, 49.35458], [8.651277, 49.353254], [8.651454, 49.353204], [8.651636, 49.353188], [8.65183, 49.353191], [8.652046, 49.353203], [8.652348, 49.353246], [8.652615, 49.353273], [8.652844, 49.353279], [8.653124, 49.353277], [8.653474, 49.353258], [8.653742, 49.353245], [8.654053, 49.353215], [8.654541, 49.353146], [8.655319, 49.353021], [8.656788, 49.352777], [8.657594, 49.352635], [8.657702, 49.352622], [8.657803, 49.352609], [8.658004, 49.352578], [8.658147, 49.352565], [8.657938, 49.35276], [8.657306, 49.353303], [8.657404, 49.353355], [8.656818, 49.353732], [8.656362, 49.354017], [8.656689, 49.35436], [8.657243, 49.355195], [8.658874, 49.354938], [8.660099, 49.354864], [8.660662, 49.354831], [8.660554, 49.35385], [8.661186, 49.353988], [8.661529, 49.354066], [8.662499, 49.354314], [8.663203, 49.354396], [8.663578, 49.353585], [8.664184, 49.353663], [8.665018, 49.353769], [8.664862, 49.354592], [8.664516, 49.356424], [8.664343, 49.35714], [8.664257, 49.357496], [8.664523, 49.357548], [8.664876, 49.357593], [8.667029, 49.35798], [8.66801, 49.358065], [8.668543, 49.358111], [8.668764, 49.358127], [8.669807, 49.358003], [8.671465, 49.357805], [8.67168, 49.357818], [8.671905, 49.359187], [8.672189, 49.360595], [8.672443, 49.361521], [8.6742, 49.361218], [8.675834, 49.360668], [8.675955, 49.360221], [8.677248, 49.360356], [8.678227, 49.360428], [8.67875, 49.360442], [8.679817, 49.360427], [8.679921, 49.360425], [8.682084, 49.360389], [8.682014, 49.359907], [8.684247, 49.359817], [8.684378, 49.359781], [8.68706, 49.359824], [8.687067, 49.35976], [8.687186, 49.359138], [8.687237, 49.35886], [8.689029, 49.3589], [8.689213, 49.358942], [8.690288, 49.358929], [8.690684, 49.358899], [8.691469, 49.358787], [8.691399, 49.358492], [8.692384, 49.358415], [8.692438, 49.358513], [8.692875, 49.358386], [8.692904, 49.358507], [8.693627, 49.358371], [8.693654, 49.35848], [8.694136, 49.358357], [8.694369, 49.358679], [8.69466, 49.358603], [8.694621, 49.358537], [8.694444, 49.358239], [8.6964, 49.357749], [8.696686, 49.357789], [8.696953, 49.358039], [8.698234, 49.357421], [8.699042, 49.357005], [8.699133, 49.357005], [8.699224, 49.357003], [8.699468, 49.356867], [8.70005, 49.356571], [8.700092, 49.35655], [8.700541, 49.356327], [8.701206, 49.356063], [8.701769, 49.355846], [8.701847, 49.355815], [8.70249, 49.355716], [8.703321, 49.355722], [8.703979, 49.355745], [8.704667, 49.355786], [8.705234, 49.355848], [8.705404, 49.355871], [8.705776, 49.35592], [8.706353, 49.356042], [8.706882, 49.356123], [8.708303, 49.356341], [8.70964, 49.35658], [8.71027, 49.355542], [8.710889, 49.35511], [8.711249, 49.35521], [8.7114, 49.35534], [8.711683, 49.355525], [8.711946, 49.355618], [8.712513, 49.355659], [8.71339, 49.355695], [8.71423, 49.355746], [8.715084, 49.355951], [8.715987, 49.35624], [8.716396, 49.356342], [8.718652, 49.356379], [8.71896, 49.356351], [8.719342, 49.356762], [8.719472, 49.357065], [8.71971, 49.357302], [8.720122, 49.357284], [8.721267, 49.357192], [8.721461, 49.357173], [8.722389, 49.357253], [8.723668, 49.357439], [8.724196, 49.357602], [8.724937, 49.357921], [8.72524, 49.358308], [8.725498, 49.358663], [8.725599, 49.358803], [8.726016, 49.359476], [8.726055, 49.360045], [8.726094, 49.360374], [8.727113, 49.361989], [8.727202, 49.362889], [8.727423, 49.364132], [8.727717, 49.365509], [8.728446, 49.366441], [8.728671, 49.366705], [8.728942, 49.366897], [8.730404, 49.367933], [8.729929, 49.368208], [8.728541, 49.368817], [8.72836, 49.368682], [8.726259, 49.369455], [8.725357, 49.370066], [8.725576, 49.37022], [8.725009, 49.371211], [8.724729, 49.37225], [8.724401, 49.373496], [8.724479, 49.373747], [8.724841, 49.373956], [8.727404, 49.375554], [8.72822, 49.374821], [8.729138, 49.374009], [8.730155, 49.373179], [8.730385, 49.373252], [8.730507, 49.373311], [8.731437, 49.372716], [8.732328, 49.372224], [8.733929, 49.372675], [8.735724, 49.372956], [8.736319, 49.373324], [8.737564, 49.374161], [8.738416, 49.374491], [8.740049, 49.374553], [8.740729, 49.374442], [8.741468, 49.373924], [8.742963, 49.373108], [8.744141, 49.372795], [8.745571, 49.37295], [8.746882, 49.373148], [8.747531, 49.373299], [8.747803, 49.373403], [8.74801, 49.373481], [8.749031, 49.373788], [8.749349, 49.373809], [8.749506, 49.373874], [8.749682, 49.374157], [8.749784, 49.374269], [8.749979, 49.37486], [8.750254, 49.375234], [8.750486, 49.375439], [8.751287, 49.375853], [8.751986, 49.376167], [8.752481, 49.376371], [8.75318, 49.376893], [8.753542, 49.377091], [8.754226, 49.377357], [8.754767, 49.377572], [8.754718, 49.377723], [8.754876, 49.377766], [8.75543, 49.377841], [8.756198, 49.37791], [8.756906, 49.377922], [8.75795, 49.377906], [8.758486, 49.377899], [8.758903, 49.377943], [8.759138, 49.377807], [8.759187, 49.377808], [8.759786, 49.377905], [8.760544, 49.378024], [8.762615, 49.378444], [8.763084, 49.378532], [8.763661, 49.378542], [8.76537, 49.378518], [8.766125, 49.378539], [8.766754, 49.378608], [8.76849, 49.379027], [8.76883, 49.379193], [8.768381, 49.379612], [8.767516, 49.380685], [8.766845, 49.381341], [8.766279, 49.382016], [8.765944, 49.3827], [8.76528, 49.383389], [8.764256, 49.384184], [8.763735, 49.384783], [8.76338, 49.385218], [8.763158, 49.385451], [8.762978, 49.385762], [8.762909, 49.385993], [8.762887, 49.386438], [8.762991, 49.386902], [8.762978, 49.387249], [8.762899, 49.387516], [8.763192, 49.387952], [8.764231, 49.387498], [8.766654, 49.387178], [8.767235, 49.387062], [8.767759, 49.386865], [8.768178, 49.386789], [8.768518, 49.386845], [8.768945, 49.386974], [8.76931, 49.387141], [8.769787, 49.387254], [8.770146, 49.387651], [8.771331, 49.388121], [8.771843, 49.388408], [8.772677, 49.388667], [8.772941, 49.388877], [8.773016, 49.389213], [8.773661, 49.389392], [8.773463, 49.389673], [8.773409, 49.390055], [8.77366, 49.390523], [8.773878, 49.390825], [8.774229, 49.390979], [8.774594, 49.391209], [8.775114, 49.391654], [8.775375, 49.392035], [8.775841, 49.392457], [8.775179, 49.393053], [8.776011, 49.393547], [8.776472, 49.394054], [8.776103, 49.394241], [8.775839, 49.394462], [8.775613, 49.394778], [8.775432, 49.39513], [8.775357, 49.395498], [8.775351, 49.39589], [8.775405, 49.396353], [8.77561, 49.396942], [8.775853, 49.397499], [8.77627, 49.398226], [8.776723, 49.39895], [8.777297, 49.399896], [8.777925, 49.401157], [8.778345, 49.40224], [8.779285, 49.402018], [8.78048, 49.4018], [8.781842, 49.401604], [8.783078, 49.401452], [8.783982, 49.401369], [8.784682, 49.401329], [8.785426, 49.40138], [8.78645, 49.401532], [8.787479, 49.40178], [8.789244, 49.402355], [8.790122, 49.40271], [8.7907, 49.403068], [8.791436, 49.403734], [8.792046, 49.404237], [8.792756, 49.404675], [8.793315, 49.405004], [8.793591, 49.405187], [8.793708, 49.405634], [8.793657, 49.406063], [8.793701, 49.40635], [8.793964, 49.406931], [8.79405, 49.40719], [8.793454, 49.408909], [8.79312, 49.409948], [8.793072, 49.410423], [8.792942, 49.411043], [8.792821, 49.411647], [8.792762, 49.411853], [8.792359, 49.412349], [8.790377, 49.414782], [8.790199, 49.414964], [8.790132, 49.415286], [8.789943, 49.416379], [8.78948, 49.417608], [8.789429, 49.418818], [8.789394, 49.419256], [8.789554, 49.419831], [8.789819, 49.420577], [8.789964, 49.421041], [8.790162, 49.421213], [8.791171, 49.42288], [8.791273, 49.423259], [8.790903, 49.424051], [8.789978, 49.425944], [8.789643, 49.42708], [8.78907, 49.430067], [8.78834, 49.431146], [8.786537, 49.432578], [8.779296, 49.432764], [8.777773, 49.432907], [8.777268, 49.433012], [8.776973, 49.433155], [8.776765, 49.433357], [8.775986, 49.434071], [8.774992, 49.43454], [8.774022, 49.434993], [8.773641, 49.435318], [8.773252, 49.435419], [8.772923, 49.435463], [8.77217, 49.435536], [8.77045, 49.435737], [8.769482, 49.436046], [8.766398, 49.437365], [8.766515, 49.440274], [8.766223, 49.440275], [8.76637, 49.441863], [8.766334, 49.443584], [8.764728, 49.446047], [8.761766, 49.448135], [8.761703, 49.450618], [8.761818, 49.450806], [8.762051, 49.450947], [8.763169, 49.451433], [8.764276, 49.451893], [8.765277, 49.452469], [8.766319, 49.453103], [8.767107, 49.453699], [8.767706, 49.454192], [8.765332, 49.455547], [8.763575, 49.456368], [8.76329, 49.456467], [8.762939, 49.456488], [8.76055, 49.456573], [8.758634, 49.456662], [8.757555, 49.456702], [8.757041, 49.457473], [8.756618, 49.457934], [8.756062, 49.458405], [8.755408, 49.458854], [8.754686, 49.459468], [8.754705, 49.459642], [8.753986, 49.459693], [8.753099, 49.459548], [8.75158, 49.459204], [8.750438, 49.458958], [8.750091, 49.459072], [8.748992, 49.459252], [8.747833, 49.459441], [8.746352, 49.459567], [8.74547, 49.459614], [8.745235, 49.459571], [8.744884, 49.459434], [8.744315, 49.459159], [8.743336, 49.458648], [8.74322, 49.458497], [8.74324, 49.458378], [8.743121, 49.458305], [8.742643, 49.45808], [8.741969, 49.45777], [8.741674, 49.457558], [8.741746, 49.457041], [8.741807, 49.456563], [8.741842, 49.456478], [8.742048, 49.4564], [8.74257, 49.456328], [8.74305, 49.456335], [8.743558, 49.456352], [8.744051, 49.456283], [8.744436, 49.456168], [8.744628, 49.456101], [8.744776, 49.456069], [8.744954, 49.456089], [8.745101, 49.456082], [8.745388, 49.455974], [8.745895, 49.455754], [8.746052, 49.455642], [8.746083, 49.455363], [8.746078, 49.455054], [8.746063, 49.454896], [8.745975, 49.454771], [8.745912, 49.454691], [8.745943, 49.454522], [8.746025, 49.45416], [8.746118, 49.453701], [8.746201, 49.453499], [8.746235, 49.453234], [8.745966, 49.452626], [8.745586, 49.451991], [8.744871, 49.451023], [8.744719, 49.450685], [8.744556, 49.450429], [8.744724, 49.450278], [8.74472, 49.450033], [8.744778, 49.449761], [8.745026, 49.449477], [8.745437, 49.449085], [8.745681, 49.448824], [8.745748, 49.448674], [8.745808, 49.448379], [8.745854, 49.448142], [8.745742, 49.447418], [8.7457, 49.446891], [8.739206, 49.446386], [8.739212, 49.44694], [8.738431, 49.448017], [8.738008, 49.448423], [8.737318, 49.44906], [8.737083, 49.449171], [8.736852, 49.449237], [8.736541, 49.449242], [8.735799, 49.449127], [8.735152, 49.448956], [8.734623, 49.44883], [8.732748, 49.448569], [8.730015, 49.448373], [8.726439, 49.448213], [8.725438, 49.448206], [8.724195, 49.448452], [8.723635, 49.448579], [8.722897, 49.448821], [8.722459, 49.449016], [8.722077, 49.449185], [8.721853, 49.449345], [8.721696, 49.449503], [8.721441, 49.449815], [8.721023, 49.450238], [8.720491, 49.450545], [8.720086, 49.450745], [8.719614, 49.451065], [8.718989, 49.451482], [8.718324, 49.451829], [8.717828, 49.452039], [8.717415, 49.452118], [8.716995, 49.452187], [8.716368, 49.452291], [8.715647, 49.452383], [8.715174, 49.45242], [8.714813, 49.452338], [8.714396, 49.452172], [8.714027, 49.451964], [8.713729, 49.451763], [8.713448, 49.451547], [8.71308, 49.451414], [8.712981, 49.451337], [8.712907, 49.451188], [8.712618, 49.450635], [8.712221, 49.450263], [8.712063, 49.450181], [8.711923, 49.450062], [8.711712, 49.449848], [8.711383, 49.449483], [8.710697, 49.449013], [8.709519, 49.447725], [8.709467, 49.447501], [8.709412, 49.446647], [8.709325, 49.446198], [8.708958, 49.446156], [8.708062, 49.445948], [8.707527, 49.44589], [8.706733, 49.445857], [8.706043, 49.445872], [8.705379, 49.445924], [8.704486, 49.446022], [8.703989, 49.446], [8.703226, 49.44592], [8.702235, 49.445819], [8.700441, 49.445474], [8.698009, 49.445025], [8.696864, 49.444866], [8.696436, 49.444666], [8.695967, 49.444555], [8.695515, 49.444586], [8.693686, 49.444206], [8.692734, 49.444117], [8.692166, 49.444018], [8.691707, 49.443845], [8.691244, 49.44365], [8.690496, 49.443236], [8.68937, 49.443263], [8.687857, 49.443212], [8.687569, 49.443035], [8.687363, 49.443008], [8.686799, 49.443048], [8.686065, 49.443213], [8.685572, 49.443319], [8.685446, 49.443329], [8.68496, 49.443355], [8.684607, 49.44354], [8.6843, 49.443671], [8.683887, 49.443768], [8.683496, 49.443878], [8.682964, 49.444], [8.682677, 49.443971], [8.682335, 49.443862], [8.682116, 49.443773], [8.681657, 49.443692], [8.681244, 49.443675], [8.680796, 49.443534], [8.680393, 49.443483], [8.67967, 49.443133], [8.679113, 49.44302], [8.679192, 49.442698], [8.678359, 49.442592], [8.678334, 49.442624], [8.677207, 49.442494], [8.677012, 49.442391], [8.676933, 49.442349], [8.676097, 49.442199], [8.675185, 49.442035], [8.674777, 49.441968], [8.673293, 49.441504], [8.672861, 49.441253], [8.67274, 49.441326], [8.672341, 49.441125], [8.671575, 49.440834], [8.670761, 49.441343], [8.67033, 49.441494], [8.669915, 49.441467], [8.668932, 49.441262], [8.667104, 49.440835], [8.666264, 49.440772], [8.665848, 49.44064], [8.665677, 49.440536], [8.665516, 49.440349], [8.665451, 49.4403], [8.665403, 49.440276], [8.665344, 49.440267], [8.665214, 49.440227], [8.663494, 49.439941], [8.663245, 49.439948], [8.663238, 49.439857], [8.663046, 49.43963], [8.662637, 49.439686], [8.662439, 49.439689], [8.662374, 49.439664], [8.661735, 49.439538], [8.66046, 49.439285], [8.658385, 49.438873], [8.658267, 49.439039], [8.657003, 49.438758], [8.656308, 49.438606], [8.65531, 49.439943], [8.653394, 49.439318], [8.649054, 49.437866], [8.648862, 49.437785], [8.648968, 49.437693], [8.648204, 49.437252], [8.647218, 49.436878], [8.646552, 49.436626], [8.646193, 49.436973], [8.646016, 49.437132], [8.645786, 49.437345], [8.645488, 49.437604], [8.645159, 49.437851], [8.644754, 49.438187], [8.644168, 49.438623], [8.643741, 49.438944], [8.643149, 49.439309], [8.64261, 49.43961], [8.642565, 49.439635], [8.642246, 49.439785], [8.641292, 49.440204], [8.64031, 49.440607], [8.639305, 49.44098], [8.638212, 49.441336], [8.637172, 49.441631], [8.636078, 49.441893], [8.634983, 49.442126], [8.633858, 49.442342], [8.632702, 49.442524], [8.631601, 49.44272], [8.630453, 49.442879], [8.629367, 49.443018], [8.628703, 49.443115], [8.628211, 49.441976], [8.628012, 49.44157], [8.627351, 49.440827], [8.626819, 49.440265], [8.626616, 49.440059], [8.626743, 49.439998], [8.626134, 49.439394], [8.62331, 49.436631], [8.623037, 49.436356], [8.622925, 49.436225], [8.622831, 49.436102], [8.62272, 49.435915], [8.622619, 49.43575], [8.622521, 49.435595], [8.622406, 49.435412], [8.622309, 49.435279], [8.622204, 49.435144], [8.621395, 49.434225], [8.621165, 49.433964], [8.621049, 49.433843], [8.620927, 49.433893], [8.619493, 49.432264], [8.61626, 49.428621], [8.615974, 49.428303], [8.61531, 49.427884], [8.609952, 49.424382], [8.609733, 49.424242], [8.605472, 49.425826], [8.599884, 49.427972], [8.598382, 49.428508], [8.59849, 49.428044], [8.59823, 49.428143], [8.593259, 49.430025], [8.592963, 49.430133], [8.590778, 49.427735], [8.59045, 49.427367], [8.590054, 49.427347], [8.589757, 49.427329], [8.589435, 49.427296], [8.588442, 49.427151], [8.587764, 49.427038], [8.58724, 49.426958], [8.587079, 49.426934], [8.586232, 49.426846], [8.584079, 49.4266], [8.583508, 49.426541], [8.582919, 49.426506], [8.582023, 49.426473], [8.581379, 49.42645], [8.579833, 49.426199], [8.577791, 49.425274], [8.577288, 49.425085], [8.575385, 49.424356], [8.57529, 49.424422], [8.574243, 49.424021], [8.573179, 49.4236]]], \"type\": \"Polygon\"}"], "limit": 0, "timeout": null, "record_class": null}}
\ No newline at end of file
diff --git a/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[3685929300].cassette.json b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[3685929300].cassette.json
new file mode 100644
index 000000000..b70a863de
--- /dev/null
+++ b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_private_feature[3685929300].cassette.json
@@ -0,0 +1 @@
+{"3972612534": {"results": [{"total_dlm": 608470.5960139487, "present_in_both": 0.0, "only_osm": 507526.49591414037, "only_dlm": 0.0, "missing_both": 45761.01879385946, "present_in_both_agree": 0.0, "present_in_both_not_agree": 0.0, "not_matched": 55183.081305949185}], "query": "WITH bpoly AS (\n SELECT\n -- split multipolygon into individual polygons\n (ST_Dump (ST_SetSRID (ST_GeomFromGeoJSON ($1), 4326))).geom AS geometry\n)\n\nselect\n SUM(matched_length) + SUM(not_matched_length) as total_dlm,\n SUM(\n CASE\n WHEN surface is not NULL AND ofm is not NULL THEN matched_length\n ELSE 0\n END\n ) AS present_in_both,\n SUM(\n CASE\n WHEN surface is not NULL AND ofm is NULL THEN matched_length\n ELSE 0\n END\n ) AS only_osm,\n SUM(\n CASE\n WHEN surface IS NULL AND ofm IS NOT NULL THEN matched_length\n ELSE 0\n end\n ) AS only_dlm,\n SUM(\n CASE\n WHEN surface is NULL AND ofm is NULL THEN matched_length\n ELSE 0\n END\n ) AS missing_both,\n SUM(\n CASE\n WHEN surface is not NULL\n AND ofm is not NULL\n AND surface = ofm THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_agree,\n SUM(\n CASE\n WHEN surface is not NULL\n AND ofm is not NULL\n AND surface != ofm THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_not_agree,\n SUM(not_matched_length) AS not_matched\nFROM road_thematic_accuracy as ora, bpoly b\nWHERE\n ST_Intersects(ora.geom, b.geometry);\n", "args": ["{\"coordinates\": [[[8.573179, 49.4236], [8.573244, 49.423266], [8.573517, 49.421746], [8.573602, 49.421029], [8.57363, 49.420766], [8.573618, 49.420478], [8.573575, 49.420208], [8.573487, 49.419852], [8.573253, 49.419103], [8.57328, 49.418634], [8.573262, 49.41846], [8.573244, 49.418239], [8.573233, 49.418026], [8.573211, 49.417562], [8.573206, 49.417217], [8.573223, 49.416902], [8.573288, 49.416518], [8.57343, 49.415763], [8.573622, 49.415734], [8.57398, 49.414723], [8.574098, 49.414422], [8.574905, 49.412659], [8.575126, 49.41262], [8.575952, 49.412479], [8.576355, 49.412403], [8.576806, 49.412309], [8.577418, 49.412162], [8.578871, 49.411816], [8.580327, 49.411477], [8.580548, 49.411425], [8.581021, 49.411314], [8.581467, 49.411198], [8.582126, 49.411021], [8.58281, 49.410831], [8.583621, 49.410604], [8.584256, 49.41041], [8.584461, 49.410598], [8.584601, 49.41074], [8.58466, 49.410809], [8.584729, 49.410896], [8.584841, 49.411043], [8.584893, 49.411041], [8.590664, 49.410551], [8.592504, 49.410392], [8.59249, 49.410325], [8.592557, 49.410316], [8.592992, 49.410285], [8.594295, 49.410194], [8.595027, 49.410131], [8.595718, 49.41008], [8.596457, 49.410013], [8.597109, 49.409948], [8.597817, 49.409869], [8.598479, 49.409799], [8.59864, 49.409784], [8.600522, 49.409526], [8.603393, 49.409127], [8.60354, 49.409104], [8.603638, 49.409079], [8.6052, 49.408456], [8.608794, 49.407045], [8.610673, 49.405949], [8.611461, 49.405467], [8.612437, 49.406203], [8.616606, 49.407383], [8.622553, 49.409046], [8.622627, 49.40901], [8.622648, 49.408953], [8.62272, 49.408975], [8.622722, 49.408976], [8.622791, 49.409015], [8.622851, 49.409049], [8.623189, 49.409236], [8.624498, 49.409957], [8.62459, 49.410009], [8.625101, 49.410294], [8.625378, 49.410448], [8.625911, 49.410745], [8.626324, 49.410975], [8.626979, 49.411341], [8.628263, 49.412032], [8.62859, 49.412213], [8.629072, 49.412486], [8.630034, 49.413176], [8.630959, 49.413833], [8.632078, 49.414583], [8.632707, 49.415007], [8.632748, 49.415035], [8.632938, 49.414961], [8.633025, 49.414928], [8.633075, 49.414807], [8.63406, 49.412449], [8.634446, 49.411487], [8.634737, 49.410763], [8.635407, 49.409092], [8.635873, 49.407932], [8.636033, 49.40753], [8.636136, 49.407242], [8.636215, 49.406957], [8.636379, 49.406391], [8.636465, 49.406041], [8.636591, 49.405566], [8.636667, 49.405073], [8.636706, 49.404806], [8.636743, 49.404552], [8.636827, 49.403969], [8.6369, 49.403462], [8.636926, 49.403268], [8.637017, 49.402596], [8.637222, 49.401141], [8.63755, 49.3988], [8.638008, 49.395648], [8.638186, 49.393813], [8.638295, 49.39272], [8.638521, 49.392746], [8.640722, 49.393021], [8.64343, 49.393381], [8.643512, 49.393194], [8.643527, 49.39316], [8.645535, 49.390884], [8.64636, 49.389866], [8.6475, 49.388537], [8.645357, 49.388044], [8.643807, 49.387609], [8.642091, 49.387149], [8.641038, 49.386841], [8.639916, 49.386498], [8.639667, 49.386434], [8.639387, 49.386413], [8.638662, 49.386411], [8.638086, 49.386573], [8.636604, 49.38704], [8.634926, 49.387313], [8.633683, 49.387185], [8.633598, 49.387174], [8.633542, 49.386897], [8.633434, 49.386227], [8.633401, 49.385899], [8.633366, 49.385891], [8.630199, 49.385201], [8.629858, 49.385107], [8.629436, 49.384945], [8.628851, 49.384706], [8.628366, 49.384445], [8.627801, 49.38413], [8.627122, 49.383729], [8.62646, 49.38335], [8.625986, 49.383068], [8.625383, 49.382699], [8.624878, 49.382387], [8.624241, 49.38199], [8.623785, 49.381668], [8.624382, 49.38067], [8.621112, 49.380011], [8.620378, 49.379843], [8.617932, 49.379283], [8.616155, 49.379158], [8.615294, 49.378918], [8.614545, 49.378758], [8.613751, 49.378528], [8.612581, 49.378202], [8.610866, 49.378017], [8.610186, 49.377919], [8.609757, 49.37785], [8.609403, 49.377756], [8.609066, 49.377649], [8.608678, 49.377505], [8.607916, 49.37721], [8.607342, 49.376972], [8.606882, 49.376751], [8.60681, 49.376163], [8.607222, 49.374986], [8.607484, 49.37429], [8.607333, 49.373851], [8.606536, 49.371886], [8.605798, 49.370097], [8.605168, 49.370272], [8.60321, 49.368377], [8.601004, 49.366203], [8.604393, 49.365577], [8.604307, 49.365419], [8.605479, 49.365214], [8.605885, 49.365159], [8.607155, 49.365004], [8.607562, 49.364962], [8.607787, 49.364932], [8.608004, 49.364857], [8.60823, 49.364779], [8.608521, 49.364676], [8.608763, 49.364589], [8.608975, 49.364526], [8.60924, 49.364461], [8.609518, 49.364418], [8.609797, 49.364361], [8.610128, 49.3643], [8.610354, 49.364251], [8.610605, 49.364179], [8.610995, 49.364053], [8.611555, 49.363849], [8.612129, 49.363662], [8.613637, 49.363103], [8.615444, 49.362414], [8.61635, 49.362058], [8.617043, 49.361767], [8.617591, 49.361529], [8.618237, 49.361201], [8.618957, 49.360849], [8.619443, 49.360653], [8.619975, 49.360461], [8.620625, 49.360206], [8.621086, 49.360044], [8.621364, 49.359916], [8.621823, 49.359713], [8.622089, 49.35959], [8.622436, 49.35947], [8.623627, 49.359191], [8.624466, 49.359063], [8.623282, 49.35746], [8.623019, 49.357581], [8.621335, 49.355497], [8.620215, 49.354073], [8.620484, 49.354038], [8.620686, 49.354007], [8.621085, 49.353877], [8.623323, 49.35288], [8.625019, 49.352119], [8.62524, 49.35203], [8.625625, 49.352003], [8.627988, 49.352082], [8.628566, 49.352102], [8.629102, 49.352103], [8.629641, 49.352094], [8.630762, 49.352065], [8.630787, 49.352734], [8.631513, 49.352774], [8.631909, 49.352796], [8.632002, 49.352809], [8.632227, 49.352816], [8.632605, 49.35284], [8.632903, 49.352846], [8.633112, 49.352836], [8.633234, 49.352838], [8.633289, 49.353939], [8.633355, 49.355012], [8.633367, 49.355489], [8.63355, 49.355781], [8.633757, 49.3561], [8.633974, 49.356482], [8.634167, 49.356808], [8.634287, 49.357126], [8.634421, 49.357445], [8.634503, 49.357686], [8.634859, 49.358095], [8.635396, 49.358765], [8.636103, 49.359671], [8.636657, 49.360357], [8.636737, 49.360538], [8.636888, 49.361037], [8.637136, 49.36199], [8.637264, 49.362635], [8.637304, 49.362804], [8.637443, 49.363191], [8.637664, 49.36361], [8.637986, 49.364357], [8.638362, 49.365323], [8.638797, 49.36638], [8.639105, 49.3671], [8.639672, 49.368535], [8.640274, 49.369977], [8.64095, 49.36962], [8.642835, 49.368655], [8.644035, 49.369071], [8.644716, 49.369324], [8.644987, 49.369459], [8.645246, 49.369621], [8.645609, 49.369857], [8.645945, 49.370086], [8.646206, 49.370303], [8.646365, 49.370464], [8.647363, 49.369711], [8.647775, 49.369395], [8.64813, 49.369156], [8.648616, 49.368856], [8.649147, 49.368515], [8.649775, 49.368118], [8.650491, 49.367685], [8.650841, 49.367478], [8.650529, 49.366984], [8.650281, 49.366573], [8.650115, 49.36627], [8.649942, 49.365978], [8.651691, 49.364976], [8.651847, 49.365094], [8.652197, 49.364902], [8.652915, 49.364549], [8.653519, 49.364273], [8.654112, 49.36402], [8.654768, 49.363737], [8.655407, 49.363473], [8.656377, 49.363115], [8.657142, 49.362813], [8.657764, 49.363277], [8.658185, 49.363054], [8.658651, 49.362837], [8.659164, 49.362571], [8.658051, 49.361776], [8.657009, 49.360179], [8.656454, 49.35929], [8.655814, 49.358138], [8.655354, 49.357298], [8.654879, 49.356558], [8.654787, 49.35643], [8.654561, 49.356112], [8.653362, 49.356263], [8.652987, 49.35577], [8.652544, 49.355287], [8.652104, 49.35458], [8.651277, 49.353254], [8.651454, 49.353204], [8.651636, 49.353188], [8.65183, 49.353191], [8.652046, 49.353203], [8.652348, 49.353246], [8.652615, 49.353273], [8.652844, 49.353279], [8.653124, 49.353277], [8.653474, 49.353258], [8.653742, 49.353245], [8.654053, 49.353215], [8.654541, 49.353146], [8.655319, 49.353021], [8.656788, 49.352777], [8.657594, 49.352635], [8.657702, 49.352622], [8.657803, 49.352609], [8.658004, 49.352578], [8.658147, 49.352565], [8.657938, 49.35276], [8.657306, 49.353303], [8.657404, 49.353355], [8.656818, 49.353732], [8.656362, 49.354017], [8.656689, 49.35436], [8.657243, 49.355195], [8.658874, 49.354938], [8.660099, 49.354864], [8.660662, 49.354831], [8.660554, 49.35385], [8.661186, 49.353988], [8.661529, 49.354066], [8.662499, 49.354314], [8.663203, 49.354396], [8.663578, 49.353585], [8.664184, 49.353663], [8.665018, 49.353769], [8.664862, 49.354592], [8.664516, 49.356424], [8.664343, 49.35714], [8.664257, 49.357496], [8.664523, 49.357548], [8.664876, 49.357593], [8.667029, 49.35798], [8.66801, 49.358065], [8.668543, 49.358111], [8.668764, 49.358127], [8.669807, 49.358003], [8.671465, 49.357805], [8.67168, 49.357818], [8.671905, 49.359187], [8.672189, 49.360595], [8.672443, 49.361521], [8.6742, 49.361218], [8.675834, 49.360668], [8.675955, 49.360221], [8.677248, 49.360356], [8.678227, 49.360428], [8.67875, 49.360442], [8.679817, 49.360427], [8.679921, 49.360425], [8.682084, 49.360389], [8.682014, 49.359907], [8.684247, 49.359817], [8.684378, 49.359781], [8.68706, 49.359824], [8.687067, 49.35976], [8.687186, 49.359138], [8.687237, 49.35886], [8.689029, 49.3589], [8.689213, 49.358942], [8.690288, 49.358929], [8.690684, 49.358899], [8.691469, 49.358787], [8.691399, 49.358492], [8.692384, 49.358415], [8.692438, 49.358513], [8.692875, 49.358386], [8.692904, 49.358507], [8.693627, 49.358371], [8.693654, 49.35848], [8.694136, 49.358357], [8.694369, 49.358679], [8.69466, 49.358603], [8.694621, 49.358537], [8.694444, 49.358239], [8.6964, 49.357749], [8.696686, 49.357789], [8.696953, 49.358039], [8.698234, 49.357421], [8.699042, 49.357005], [8.699133, 49.357005], [8.699224, 49.357003], [8.699468, 49.356867], [8.70005, 49.356571], [8.700092, 49.35655], [8.700541, 49.356327], [8.701206, 49.356063], [8.701769, 49.355846], [8.701847, 49.355815], [8.70249, 49.355716], [8.703321, 49.355722], [8.703979, 49.355745], [8.704667, 49.355786], [8.705234, 49.355848], [8.705404, 49.355871], [8.705776, 49.35592], [8.706353, 49.356042], [8.706882, 49.356123], [8.708303, 49.356341], [8.70964, 49.35658], [8.71027, 49.355542], [8.710889, 49.35511], [8.711249, 49.35521], [8.7114, 49.35534], [8.711683, 49.355525], [8.711946, 49.355618], [8.712513, 49.355659], [8.71339, 49.355695], [8.71423, 49.355746], [8.715084, 49.355951], [8.715987, 49.35624], [8.716396, 49.356342], [8.718652, 49.356379], [8.71896, 49.356351], [8.719342, 49.356762], [8.719472, 49.357065], [8.71971, 49.357302], [8.720122, 49.357284], [8.721267, 49.357192], [8.721461, 49.357173], [8.722389, 49.357253], [8.723668, 49.357439], [8.724196, 49.357602], [8.724937, 49.357921], [8.72524, 49.358308], [8.725498, 49.358663], [8.725599, 49.358803], [8.726016, 49.359476], [8.726055, 49.360045], [8.726094, 49.360374], [8.727113, 49.361989], [8.727202, 49.362889], [8.727423, 49.364132], [8.727717, 49.365509], [8.728446, 49.366441], [8.728671, 49.366705], [8.728942, 49.366897], [8.730404, 49.367933], [8.729929, 49.368208], [8.728541, 49.368817], [8.72836, 49.368682], [8.726259, 49.369455], [8.725357, 49.370066], [8.725576, 49.37022], [8.725009, 49.371211], [8.724729, 49.37225], [8.724401, 49.373496], [8.724479, 49.373747], [8.724841, 49.373956], [8.727404, 49.375554], [8.72822, 49.374821], [8.729138, 49.374009], [8.730155, 49.373179], [8.730385, 49.373252], [8.730507, 49.373311], [8.731437, 49.372716], [8.732328, 49.372224], [8.733929, 49.372675], [8.735724, 49.372956], [8.736319, 49.373324], [8.737564, 49.374161], [8.738416, 49.374491], [8.740049, 49.374553], [8.740729, 49.374442], [8.741468, 49.373924], [8.742963, 49.373108], [8.744141, 49.372795], [8.745571, 49.37295], [8.746882, 49.373148], [8.747531, 49.373299], [8.747803, 49.373403], [8.74801, 49.373481], [8.749031, 49.373788], [8.749349, 49.373809], [8.749506, 49.373874], [8.749682, 49.374157], [8.749784, 49.374269], [8.749979, 49.37486], [8.750254, 49.375234], [8.750486, 49.375439], [8.751287, 49.375853], [8.751986, 49.376167], [8.752481, 49.376371], [8.75318, 49.376893], [8.753542, 49.377091], [8.754226, 49.377357], [8.754767, 49.377572], [8.754718, 49.377723], [8.754876, 49.377766], [8.75543, 49.377841], [8.756198, 49.37791], [8.756906, 49.377922], [8.75795, 49.377906], [8.758486, 49.377899], [8.758903, 49.377943], [8.759138, 49.377807], [8.759187, 49.377808], [8.759786, 49.377905], [8.760544, 49.378024], [8.762615, 49.378444], [8.763084, 49.378532], [8.763661, 49.378542], [8.76537, 49.378518], [8.766125, 49.378539], [8.766754, 49.378608], [8.76849, 49.379027], [8.76883, 49.379193], [8.768381, 49.379612], [8.767516, 49.380685], [8.766845, 49.381341], [8.766279, 49.382016], [8.765944, 49.3827], [8.76528, 49.383389], [8.764256, 49.384184], [8.763735, 49.384783], [8.76338, 49.385218], [8.763158, 49.385451], [8.762978, 49.385762], [8.762909, 49.385993], [8.762887, 49.386438], [8.762991, 49.386902], [8.762978, 49.387249], [8.762899, 49.387516], [8.763192, 49.387952], [8.764231, 49.387498], [8.766654, 49.387178], [8.767235, 49.387062], [8.767759, 49.386865], [8.768178, 49.386789], [8.768518, 49.386845], [8.768945, 49.386974], [8.76931, 49.387141], [8.769787, 49.387254], [8.770146, 49.387651], [8.771331, 49.388121], [8.771843, 49.388408], [8.772677, 49.388667], [8.772941, 49.388877], [8.773016, 49.389213], [8.773661, 49.389392], [8.773463, 49.389673], [8.773409, 49.390055], [8.77366, 49.390523], [8.773878, 49.390825], [8.774229, 49.390979], [8.774594, 49.391209], [8.775114, 49.391654], [8.775375, 49.392035], [8.775841, 49.392457], [8.775179, 49.393053], [8.776011, 49.393547], [8.776472, 49.394054], [8.776103, 49.394241], [8.775839, 49.394462], [8.775613, 49.394778], [8.775432, 49.39513], [8.775357, 49.395498], [8.775351, 49.39589], [8.775405, 49.396353], [8.77561, 49.396942], [8.775853, 49.397499], [8.77627, 49.398226], [8.776723, 49.39895], [8.777297, 49.399896], [8.777925, 49.401157], [8.778345, 49.40224], [8.779285, 49.402018], [8.78048, 49.4018], [8.781842, 49.401604], [8.783078, 49.401452], [8.783982, 49.401369], [8.784682, 49.401329], [8.785426, 49.40138], [8.78645, 49.401532], [8.787479, 49.40178], [8.789244, 49.402355], [8.790122, 49.40271], [8.7907, 49.403068], [8.791436, 49.403734], [8.792046, 49.404237], [8.792756, 49.404675], [8.793315, 49.405004], [8.793591, 49.405187], [8.793708, 49.405634], [8.793657, 49.406063], [8.793701, 49.40635], [8.793964, 49.406931], [8.79405, 49.40719], [8.793454, 49.408909], [8.79312, 49.409948], [8.793072, 49.410423], [8.792942, 49.411043], [8.792821, 49.411647], [8.792762, 49.411853], [8.792359, 49.412349], [8.790377, 49.414782], [8.790199, 49.414964], [8.790132, 49.415286], [8.789943, 49.416379], [8.78948, 49.417608], [8.789429, 49.418818], [8.789394, 49.419256], [8.789554, 49.419831], [8.789819, 49.420577], [8.789964, 49.421041], [8.790162, 49.421213], [8.791171, 49.42288], [8.791273, 49.423259], [8.790903, 49.424051], [8.789978, 49.425944], [8.789643, 49.42708], [8.78907, 49.430067], [8.78834, 49.431146], [8.786537, 49.432578], [8.779296, 49.432764], [8.777773, 49.432907], [8.777268, 49.433012], [8.776973, 49.433155], [8.776765, 49.433357], [8.775986, 49.434071], [8.774992, 49.43454], [8.774022, 49.434993], [8.773641, 49.435318], [8.773252, 49.435419], [8.772923, 49.435463], [8.77217, 49.435536], [8.77045, 49.435737], [8.769482, 49.436046], [8.766398, 49.437365], [8.766515, 49.440274], [8.766223, 49.440275], [8.76637, 49.441863], [8.766334, 49.443584], [8.764728, 49.446047], [8.761766, 49.448135], [8.761703, 49.450618], [8.761818, 49.450806], [8.762051, 49.450947], [8.763169, 49.451433], [8.764276, 49.451893], [8.765277, 49.452469], [8.766319, 49.453103], [8.767107, 49.453699], [8.767706, 49.454192], [8.765332, 49.455547], [8.763575, 49.456368], [8.76329, 49.456467], [8.762939, 49.456488], [8.76055, 49.456573], [8.758634, 49.456662], [8.757555, 49.456702], [8.757041, 49.457473], [8.756618, 49.457934], [8.756062, 49.458405], [8.755408, 49.458854], [8.754686, 49.459468], [8.754705, 49.459642], [8.753986, 49.459693], [8.753099, 49.459548], [8.75158, 49.459204], [8.750438, 49.458958], [8.750091, 49.459072], [8.748992, 49.459252], [8.747833, 49.459441], [8.746352, 49.459567], [8.74547, 49.459614], [8.745235, 49.459571], [8.744884, 49.459434], [8.744315, 49.459159], [8.743336, 49.458648], [8.74322, 49.458497], [8.74324, 49.458378], [8.743121, 49.458305], [8.742643, 49.45808], [8.741969, 49.45777], [8.741674, 49.457558], [8.741746, 49.457041], [8.741807, 49.456563], [8.741842, 49.456478], [8.742048, 49.4564], [8.74257, 49.456328], [8.74305, 49.456335], [8.743558, 49.456352], [8.744051, 49.456283], [8.744436, 49.456168], [8.744628, 49.456101], [8.744776, 49.456069], [8.744954, 49.456089], [8.745101, 49.456082], [8.745388, 49.455974], [8.745895, 49.455754], [8.746052, 49.455642], [8.746083, 49.455363], [8.746078, 49.455054], [8.746063, 49.454896], [8.745975, 49.454771], [8.745912, 49.454691], [8.745943, 49.454522], [8.746025, 49.45416], [8.746118, 49.453701], [8.746201, 49.453499], [8.746235, 49.453234], [8.745966, 49.452626], [8.745586, 49.451991], [8.744871, 49.451023], [8.744719, 49.450685], [8.744556, 49.450429], [8.744724, 49.450278], [8.74472, 49.450033], [8.744778, 49.449761], [8.745026, 49.449477], [8.745437, 49.449085], [8.745681, 49.448824], [8.745748, 49.448674], [8.745808, 49.448379], [8.745854, 49.448142], [8.745742, 49.447418], [8.7457, 49.446891], [8.739206, 49.446386], [8.739212, 49.44694], [8.738431, 49.448017], [8.738008, 49.448423], [8.737318, 49.44906], [8.737083, 49.449171], [8.736852, 49.449237], [8.736541, 49.449242], [8.735799, 49.449127], [8.735152, 49.448956], [8.734623, 49.44883], [8.732748, 49.448569], [8.730015, 49.448373], [8.726439, 49.448213], [8.725438, 49.448206], [8.724195, 49.448452], [8.723635, 49.448579], [8.722897, 49.448821], [8.722459, 49.449016], [8.722077, 49.449185], [8.721853, 49.449345], [8.721696, 49.449503], [8.721441, 49.449815], [8.721023, 49.450238], [8.720491, 49.450545], [8.720086, 49.450745], [8.719614, 49.451065], [8.718989, 49.451482], [8.718324, 49.451829], [8.717828, 49.452039], [8.717415, 49.452118], [8.716995, 49.452187], [8.716368, 49.452291], [8.715647, 49.452383], [8.715174, 49.45242], [8.714813, 49.452338], [8.714396, 49.452172], [8.714027, 49.451964], [8.713729, 49.451763], [8.713448, 49.451547], [8.71308, 49.451414], [8.712981, 49.451337], [8.712907, 49.451188], [8.712618, 49.450635], [8.712221, 49.450263], [8.712063, 49.450181], [8.711923, 49.450062], [8.711712, 49.449848], [8.711383, 49.449483], [8.710697, 49.449013], [8.709519, 49.447725], [8.709467, 49.447501], [8.709412, 49.446647], [8.709325, 49.446198], [8.708958, 49.446156], [8.708062, 49.445948], [8.707527, 49.44589], [8.706733, 49.445857], [8.706043, 49.445872], [8.705379, 49.445924], [8.704486, 49.446022], [8.703989, 49.446], [8.703226, 49.44592], [8.702235, 49.445819], [8.700441, 49.445474], [8.698009, 49.445025], [8.696864, 49.444866], [8.696436, 49.444666], [8.695967, 49.444555], [8.695515, 49.444586], [8.693686, 49.444206], [8.692734, 49.444117], [8.692166, 49.444018], [8.691707, 49.443845], [8.691244, 49.44365], [8.690496, 49.443236], [8.68937, 49.443263], [8.687857, 49.443212], [8.687569, 49.443035], [8.687363, 49.443008], [8.686799, 49.443048], [8.686065, 49.443213], [8.685572, 49.443319], [8.685446, 49.443329], [8.68496, 49.443355], [8.684607, 49.44354], [8.6843, 49.443671], [8.683887, 49.443768], [8.683496, 49.443878], [8.682964, 49.444], [8.682677, 49.443971], [8.682335, 49.443862], [8.682116, 49.443773], [8.681657, 49.443692], [8.681244, 49.443675], [8.680796, 49.443534], [8.680393, 49.443483], [8.67967, 49.443133], [8.679113, 49.44302], [8.679192, 49.442698], [8.678359, 49.442592], [8.678334, 49.442624], [8.677207, 49.442494], [8.677012, 49.442391], [8.676933, 49.442349], [8.676097, 49.442199], [8.675185, 49.442035], [8.674777, 49.441968], [8.673293, 49.441504], [8.672861, 49.441253], [8.67274, 49.441326], [8.672341, 49.441125], [8.671575, 49.440834], [8.670761, 49.441343], [8.67033, 49.441494], [8.669915, 49.441467], [8.668932, 49.441262], [8.667104, 49.440835], [8.666264, 49.440772], [8.665848, 49.44064], [8.665677, 49.440536], [8.665516, 49.440349], [8.665451, 49.4403], [8.665403, 49.440276], [8.665344, 49.440267], [8.665214, 49.440227], [8.663494, 49.439941], [8.663245, 49.439948], [8.663238, 49.439857], [8.663046, 49.43963], [8.662637, 49.439686], [8.662439, 49.439689], [8.662374, 49.439664], [8.661735, 49.439538], [8.66046, 49.439285], [8.658385, 49.438873], [8.658267, 49.439039], [8.657003, 49.438758], [8.656308, 49.438606], [8.65531, 49.439943], [8.653394, 49.439318], [8.649054, 49.437866], [8.648862, 49.437785], [8.648968, 49.437693], [8.648204, 49.437252], [8.647218, 49.436878], [8.646552, 49.436626], [8.646193, 49.436973], [8.646016, 49.437132], [8.645786, 49.437345], [8.645488, 49.437604], [8.645159, 49.437851], [8.644754, 49.438187], [8.644168, 49.438623], [8.643741, 49.438944], [8.643149, 49.439309], [8.64261, 49.43961], [8.642565, 49.439635], [8.642246, 49.439785], [8.641292, 49.440204], [8.64031, 49.440607], [8.639305, 49.44098], [8.638212, 49.441336], [8.637172, 49.441631], [8.636078, 49.441893], [8.634983, 49.442126], [8.633858, 49.442342], [8.632702, 49.442524], [8.631601, 49.44272], [8.630453, 49.442879], [8.629367, 49.443018], [8.628703, 49.443115], [8.628211, 49.441976], [8.628012, 49.44157], [8.627351, 49.440827], [8.626819, 49.440265], [8.626616, 49.440059], [8.626743, 49.439998], [8.626134, 49.439394], [8.62331, 49.436631], [8.623037, 49.436356], [8.622925, 49.436225], [8.622831, 49.436102], [8.62272, 49.435915], [8.622619, 49.43575], [8.622521, 49.435595], [8.622406, 49.435412], [8.622309, 49.435279], [8.622204, 49.435144], [8.621395, 49.434225], [8.621165, 49.433964], [8.621049, 49.433843], [8.620927, 49.433893], [8.619493, 49.432264], [8.61626, 49.428621], [8.615974, 49.428303], [8.61531, 49.427884], [8.609952, 49.424382], [8.609733, 49.424242], [8.605472, 49.425826], [8.599884, 49.427972], [8.598382, 49.428508], [8.59849, 49.428044], [8.59823, 49.428143], [8.593259, 49.430025], [8.592963, 49.430133], [8.590778, 49.427735], [8.59045, 49.427367], [8.590054, 49.427347], [8.589757, 49.427329], [8.589435, 49.427296], [8.588442, 49.427151], [8.587764, 49.427038], [8.58724, 49.426958], [8.587079, 49.426934], [8.586232, 49.426846], [8.584079, 49.4266], [8.583508, 49.426541], [8.582919, 49.426506], [8.582023, 49.426473], [8.581379, 49.42645], [8.579833, 49.426199], [8.577791, 49.425274], [8.577288, 49.425085], [8.575385, 49.424356], [8.57529, 49.424422], [8.574243, 49.424021], [8.573179, 49.4236]]], \"type\": \"Polygon\"}"], "limit": 0, "timeout": null, "record_class": null}}
\ No newline at end of file
diff --git a/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[2897600962].cassette.json b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[2897600962].cassette.json
new file mode 100644
index 000000000..2fde3c2a6
--- /dev/null
+++ b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[2897600962].cassette.json
@@ -0,0 +1 @@
+{"3939642607": {"results": [{"total_dlm": 608470.5960139487, "present_in_both": 0.0, "only_osm": 63264.37977819282, "only_dlm": 0.0, "present_in_both_agree": 0.0, "present_in_both_not_agree": 0.0, "not_matched": 55183.081305949185, "missing_both": 490023.1349298072}], "query": "WITH bpoly AS (\n SELECT\n -- split multipolygon into individual polygons\n (ST_Dump (ST_SetSRID (ST_GeomFromGeoJSON ($1), 4326))).geom AS geometry\n)\nSELECT\n SUM(matched_length) + SUM(not_matched_length) as total_dlm,\n SUM(\n CASE\n WHEN lanes is not NULL AND fsz is not NULL\n AND (name is not NULL OR ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL THEN matched_length\n ELSE 0\n END\n ) AS present_in_both,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND (name is not NULL OR ref is not NULL)\n AND oneway is not NULL\n AND surface is not NULL\n AND width is not NULL\n AND (\n fsz is NULL\n OR nam is NULL\n OR far is NULL\n OR ofm is NULL\n OR brf is NULL\n )\n THEN matched_length\n ELSE 0\n END\n ) AS only_osm,\n SUM(\n CASE\n WHEN fsz IS NOT NULL\n AND nam is not NULL\n AND far is not NULL\n AND ofm is not NULL\n AND brf is not NULL\n AND (\n lanes IS NULL\n OR (name is NULL AND ref is NULL)\n OR oneway is NULL\n OR surface is NULL\n OR width is NULL\n )\n THEN matched_length\n ELSE 0\n END\n ) AS only_dlm,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes = fsz\n AND lev_ratio >= 0.8\n AND oneway = far\n AND ((angle_osm > 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm < 0))\n AND surface = ofm\n AND abs(width - brf) > 1\n THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_agree,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes != fsz\n AND lev_ratio < 0.8\n AND (oneway != far\n OR ((angle_osm < 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm > 0)))\n AND surface != ofm\n AND abs(width - brf) <= 1\n THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_not_agree,\n SUM(not_matched_length) AS not_matched,\n SUM(\n CASE\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n THEN 0\n WHEN lanes is not NULL\n AND (name is not NULL OR ref is not NULL)\n AND oneway is not NULL\n AND surface is not NULL\n AND width is not NULL\n AND (\n fsz is NULL\n OR nam is NULL\n OR far is NULL\n OR ofm is NULL\n OR brf is NULL\n )\n THEN 0\n WHEN fsz IS NOT NULL\n AND nam is not NULL\n AND far is not NULL\n AND ofm is not NULL\n AND brf is not NULL\n AND (\n lanes IS NULL\n OR (name is NULL AND ref is NULL)\n OR oneway is NULL\n OR surface is NULL\n OR width is NULL\n )\n THEN 0\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes = fsz\n AND lev_ratio >= 0.8\n AND oneway = far\n AND ((angle_osm > 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm < 0))\n AND surface = ofm\n AND abs(width - brf) > 1\n THEN 0\n WHEN lanes is not NULL\n AND fsz is not NULL\n AND (name is not NULL or ref is not null) AND nam is not NULL\n AND oneway is not NULL AND far is not NULL\n AND surface is not NULL AND ofm is not NULL\n AND width is not NULL AND brf is not NULL\n AND lanes != fsz\n AND lev_ratio < 0.8\n AND (oneway != far\n OR ((angle_osm < 0 AND angle_dlm > 0) OR (angle_osm < 0 AND angle_dlm > 0)))\n AND surface != ofm\n AND abs(width - brf) <= 1\n THEN 0\n WHEN osm_id IS NULL THEN 0\n ELSE matched_length\n END\n ) AS missing_both\nFROM road_thematic_accuracy as ora, bpoly b\nWHERE ST_Intersects(ora.geom, b.geometry);\n", "args": ["{\"coordinates\": [[[8.573179, 49.4236], [8.573244, 49.423266], [8.573517, 49.421746], [8.573602, 49.421029], [8.57363, 49.420766], [8.573618, 49.420478], [8.573575, 49.420208], [8.573487, 49.419852], [8.573253, 49.419103], [8.57328, 49.418634], [8.573262, 49.41846], [8.573244, 49.418239], [8.573233, 49.418026], [8.573211, 49.417562], [8.573206, 49.417217], [8.573223, 49.416902], [8.573288, 49.416518], [8.57343, 49.415763], [8.573622, 49.415734], [8.57398, 49.414723], [8.574098, 49.414422], [8.574905, 49.412659], [8.575126, 49.41262], [8.575952, 49.412479], [8.576355, 49.412403], [8.576806, 49.412309], [8.577418, 49.412162], [8.578871, 49.411816], [8.580327, 49.411477], [8.580548, 49.411425], [8.581021, 49.411314], [8.581467, 49.411198], [8.582126, 49.411021], [8.58281, 49.410831], [8.583621, 49.410604], [8.584256, 49.41041], [8.584461, 49.410598], [8.584601, 49.41074], [8.58466, 49.410809], [8.584729, 49.410896], [8.584841, 49.411043], [8.584893, 49.411041], [8.590664, 49.410551], [8.592504, 49.410392], [8.59249, 49.410325], [8.592557, 49.410316], [8.592992, 49.410285], [8.594295, 49.410194], [8.595027, 49.410131], [8.595718, 49.41008], [8.596457, 49.410013], [8.597109, 49.409948], [8.597817, 49.409869], [8.598479, 49.409799], [8.59864, 49.409784], [8.600522, 49.409526], [8.603393, 49.409127], [8.60354, 49.409104], [8.603638, 49.409079], [8.6052, 49.408456], [8.608794, 49.407045], [8.610673, 49.405949], [8.611461, 49.405467], [8.612437, 49.406203], [8.616606, 49.407383], [8.622553, 49.409046], [8.622627, 49.40901], [8.622648, 49.408953], [8.62272, 49.408975], [8.622722, 49.408976], [8.622791, 49.409015], [8.622851, 49.409049], [8.623189, 49.409236], [8.624498, 49.409957], [8.62459, 49.410009], [8.625101, 49.410294], [8.625378, 49.410448], [8.625911, 49.410745], [8.626324, 49.410975], [8.626979, 49.411341], [8.628263, 49.412032], [8.62859, 49.412213], [8.629072, 49.412486], [8.630034, 49.413176], [8.630959, 49.413833], [8.632078, 49.414583], [8.632707, 49.415007], [8.632748, 49.415035], [8.632938, 49.414961], [8.633025, 49.414928], [8.633075, 49.414807], [8.63406, 49.412449], [8.634446, 49.411487], [8.634737, 49.410763], [8.635407, 49.409092], [8.635873, 49.407932], [8.636033, 49.40753], [8.636136, 49.407242], [8.636215, 49.406957], [8.636379, 49.406391], [8.636465, 49.406041], [8.636591, 49.405566], [8.636667, 49.405073], [8.636706, 49.404806], [8.636743, 49.404552], [8.636827, 49.403969], [8.6369, 49.403462], [8.636926, 49.403268], [8.637017, 49.402596], [8.637222, 49.401141], [8.63755, 49.3988], [8.638008, 49.395648], [8.638186, 49.393813], [8.638295, 49.39272], [8.638521, 49.392746], [8.640722, 49.393021], [8.64343, 49.393381], [8.643512, 49.393194], [8.643527, 49.39316], [8.645535, 49.390884], [8.64636, 49.389866], [8.6475, 49.388537], [8.645357, 49.388044], [8.643807, 49.387609], [8.642091, 49.387149], [8.641038, 49.386841], [8.639916, 49.386498], [8.639667, 49.386434], [8.639387, 49.386413], [8.638662, 49.386411], [8.638086, 49.386573], [8.636604, 49.38704], [8.634926, 49.387313], [8.633683, 49.387185], [8.633598, 49.387174], [8.633542, 49.386897], [8.633434, 49.386227], [8.633401, 49.385899], [8.633366, 49.385891], [8.630199, 49.385201], [8.629858, 49.385107], [8.629436, 49.384945], [8.628851, 49.384706], [8.628366, 49.384445], [8.627801, 49.38413], [8.627122, 49.383729], [8.62646, 49.38335], [8.625986, 49.383068], [8.625383, 49.382699], [8.624878, 49.382387], [8.624241, 49.38199], [8.623785, 49.381668], [8.624382, 49.38067], [8.621112, 49.380011], [8.620378, 49.379843], [8.617932, 49.379283], [8.616155, 49.379158], [8.615294, 49.378918], [8.614545, 49.378758], [8.613751, 49.378528], [8.612581, 49.378202], [8.610866, 49.378017], [8.610186, 49.377919], [8.609757, 49.37785], [8.609403, 49.377756], [8.609066, 49.377649], [8.608678, 49.377505], [8.607916, 49.37721], [8.607342, 49.376972], [8.606882, 49.376751], [8.60681, 49.376163], [8.607222, 49.374986], [8.607484, 49.37429], [8.607333, 49.373851], [8.606536, 49.371886], [8.605798, 49.370097], [8.605168, 49.370272], [8.60321, 49.368377], [8.601004, 49.366203], [8.604393, 49.365577], [8.604307, 49.365419], [8.605479, 49.365214], [8.605885, 49.365159], [8.607155, 49.365004], [8.607562, 49.364962], [8.607787, 49.364932], [8.608004, 49.364857], [8.60823, 49.364779], [8.608521, 49.364676], [8.608763, 49.364589], [8.608975, 49.364526], [8.60924, 49.364461], [8.609518, 49.364418], [8.609797, 49.364361], [8.610128, 49.3643], [8.610354, 49.364251], [8.610605, 49.364179], [8.610995, 49.364053], [8.611555, 49.363849], [8.612129, 49.363662], [8.613637, 49.363103], [8.615444, 49.362414], [8.61635, 49.362058], [8.617043, 49.361767], [8.617591, 49.361529], [8.618237, 49.361201], [8.618957, 49.360849], [8.619443, 49.360653], [8.619975, 49.360461], [8.620625, 49.360206], [8.621086, 49.360044], [8.621364, 49.359916], [8.621823, 49.359713], [8.622089, 49.35959], [8.622436, 49.35947], [8.623627, 49.359191], [8.624466, 49.359063], [8.623282, 49.35746], [8.623019, 49.357581], [8.621335, 49.355497], [8.620215, 49.354073], [8.620484, 49.354038], [8.620686, 49.354007], [8.621085, 49.353877], [8.623323, 49.35288], [8.625019, 49.352119], [8.62524, 49.35203], [8.625625, 49.352003], [8.627988, 49.352082], [8.628566, 49.352102], [8.629102, 49.352103], [8.629641, 49.352094], [8.630762, 49.352065], [8.630787, 49.352734], [8.631513, 49.352774], [8.631909, 49.352796], [8.632002, 49.352809], [8.632227, 49.352816], [8.632605, 49.35284], [8.632903, 49.352846], [8.633112, 49.352836], [8.633234, 49.352838], [8.633289, 49.353939], [8.633355, 49.355012], [8.633367, 49.355489], [8.63355, 49.355781], [8.633757, 49.3561], [8.633974, 49.356482], [8.634167, 49.356808], [8.634287, 49.357126], [8.634421, 49.357445], [8.634503, 49.357686], [8.634859, 49.358095], [8.635396, 49.358765], [8.636103, 49.359671], [8.636657, 49.360357], [8.636737, 49.360538], [8.636888, 49.361037], [8.637136, 49.36199], [8.637264, 49.362635], [8.637304, 49.362804], [8.637443, 49.363191], [8.637664, 49.36361], [8.637986, 49.364357], [8.638362, 49.365323], [8.638797, 49.36638], [8.639105, 49.3671], [8.639672, 49.368535], [8.640274, 49.369977], [8.64095, 49.36962], [8.642835, 49.368655], [8.644035, 49.369071], [8.644716, 49.369324], [8.644987, 49.369459], [8.645246, 49.369621], [8.645609, 49.369857], [8.645945, 49.370086], [8.646206, 49.370303], [8.646365, 49.370464], [8.647363, 49.369711], [8.647775, 49.369395], [8.64813, 49.369156], [8.648616, 49.368856], [8.649147, 49.368515], [8.649775, 49.368118], [8.650491, 49.367685], [8.650841, 49.367478], [8.650529, 49.366984], [8.650281, 49.366573], [8.650115, 49.36627], [8.649942, 49.365978], [8.651691, 49.364976], [8.651847, 49.365094], [8.652197, 49.364902], [8.652915, 49.364549], [8.653519, 49.364273], [8.654112, 49.36402], [8.654768, 49.363737], [8.655407, 49.363473], [8.656377, 49.363115], [8.657142, 49.362813], [8.657764, 49.363277], [8.658185, 49.363054], [8.658651, 49.362837], [8.659164, 49.362571], [8.658051, 49.361776], [8.657009, 49.360179], [8.656454, 49.35929], [8.655814, 49.358138], [8.655354, 49.357298], [8.654879, 49.356558], [8.654787, 49.35643], [8.654561, 49.356112], [8.653362, 49.356263], [8.652987, 49.35577], [8.652544, 49.355287], [8.652104, 49.35458], [8.651277, 49.353254], [8.651454, 49.353204], [8.651636, 49.353188], [8.65183, 49.353191], [8.652046, 49.353203], [8.652348, 49.353246], [8.652615, 49.353273], [8.652844, 49.353279], [8.653124, 49.353277], [8.653474, 49.353258], [8.653742, 49.353245], [8.654053, 49.353215], [8.654541, 49.353146], [8.655319, 49.353021], [8.656788, 49.352777], [8.657594, 49.352635], [8.657702, 49.352622], [8.657803, 49.352609], [8.658004, 49.352578], [8.658147, 49.352565], [8.657938, 49.35276], [8.657306, 49.353303], [8.657404, 49.353355], [8.656818, 49.353732], [8.656362, 49.354017], [8.656689, 49.35436], [8.657243, 49.355195], [8.658874, 49.354938], [8.660099, 49.354864], [8.660662, 49.354831], [8.660554, 49.35385], [8.661186, 49.353988], [8.661529, 49.354066], [8.662499, 49.354314], [8.663203, 49.354396], [8.663578, 49.353585], [8.664184, 49.353663], [8.665018, 49.353769], [8.664862, 49.354592], [8.664516, 49.356424], [8.664343, 49.35714], [8.664257, 49.357496], [8.664523, 49.357548], [8.664876, 49.357593], [8.667029, 49.35798], [8.66801, 49.358065], [8.668543, 49.358111], [8.668764, 49.358127], [8.669807, 49.358003], [8.671465, 49.357805], [8.67168, 49.357818], [8.671905, 49.359187], [8.672189, 49.360595], [8.672443, 49.361521], [8.6742, 49.361218], [8.675834, 49.360668], [8.675955, 49.360221], [8.677248, 49.360356], [8.678227, 49.360428], [8.67875, 49.360442], [8.679817, 49.360427], [8.679921, 49.360425], [8.682084, 49.360389], [8.682014, 49.359907], [8.684247, 49.359817], [8.684378, 49.359781], [8.68706, 49.359824], [8.687067, 49.35976], [8.687186, 49.359138], [8.687237, 49.35886], [8.689029, 49.3589], [8.689213, 49.358942], [8.690288, 49.358929], [8.690684, 49.358899], [8.691469, 49.358787], [8.691399, 49.358492], [8.692384, 49.358415], [8.692438, 49.358513], [8.692875, 49.358386], [8.692904, 49.358507], [8.693627, 49.358371], [8.693654, 49.35848], [8.694136, 49.358357], [8.694369, 49.358679], [8.69466, 49.358603], [8.694621, 49.358537], [8.694444, 49.358239], [8.6964, 49.357749], [8.696686, 49.357789], [8.696953, 49.358039], [8.698234, 49.357421], [8.699042, 49.357005], [8.699133, 49.357005], [8.699224, 49.357003], [8.699468, 49.356867], [8.70005, 49.356571], [8.700092, 49.35655], [8.700541, 49.356327], [8.701206, 49.356063], [8.701769, 49.355846], [8.701847, 49.355815], [8.70249, 49.355716], [8.703321, 49.355722], [8.703979, 49.355745], [8.704667, 49.355786], [8.705234, 49.355848], [8.705404, 49.355871], [8.705776, 49.35592], [8.706353, 49.356042], [8.706882, 49.356123], [8.708303, 49.356341], [8.70964, 49.35658], [8.71027, 49.355542], [8.710889, 49.35511], [8.711249, 49.35521], [8.7114, 49.35534], [8.711683, 49.355525], [8.711946, 49.355618], [8.712513, 49.355659], [8.71339, 49.355695], [8.71423, 49.355746], [8.715084, 49.355951], [8.715987, 49.35624], [8.716396, 49.356342], [8.718652, 49.356379], [8.71896, 49.356351], [8.719342, 49.356762], [8.719472, 49.357065], [8.71971, 49.357302], [8.720122, 49.357284], [8.721267, 49.357192], [8.721461, 49.357173], [8.722389, 49.357253], [8.723668, 49.357439], [8.724196, 49.357602], [8.724937, 49.357921], [8.72524, 49.358308], [8.725498, 49.358663], [8.725599, 49.358803], [8.726016, 49.359476], [8.726055, 49.360045], [8.726094, 49.360374], [8.727113, 49.361989], [8.727202, 49.362889], [8.727423, 49.364132], [8.727717, 49.365509], [8.728446, 49.366441], [8.728671, 49.366705], [8.728942, 49.366897], [8.730404, 49.367933], [8.729929, 49.368208], [8.728541, 49.368817], [8.72836, 49.368682], [8.726259, 49.369455], [8.725357, 49.370066], [8.725576, 49.37022], [8.725009, 49.371211], [8.724729, 49.37225], [8.724401, 49.373496], [8.724479, 49.373747], [8.724841, 49.373956], [8.727404, 49.375554], [8.72822, 49.374821], [8.729138, 49.374009], [8.730155, 49.373179], [8.730385, 49.373252], [8.730507, 49.373311], [8.731437, 49.372716], [8.732328, 49.372224], [8.733929, 49.372675], [8.735724, 49.372956], [8.736319, 49.373324], [8.737564, 49.374161], [8.738416, 49.374491], [8.740049, 49.374553], [8.740729, 49.374442], [8.741468, 49.373924], [8.742963, 49.373108], [8.744141, 49.372795], [8.745571, 49.37295], [8.746882, 49.373148], [8.747531, 49.373299], [8.747803, 49.373403], [8.74801, 49.373481], [8.749031, 49.373788], [8.749349, 49.373809], [8.749506, 49.373874], [8.749682, 49.374157], [8.749784, 49.374269], [8.749979, 49.37486], [8.750254, 49.375234], [8.750486, 49.375439], [8.751287, 49.375853], [8.751986, 49.376167], [8.752481, 49.376371], [8.75318, 49.376893], [8.753542, 49.377091], [8.754226, 49.377357], [8.754767, 49.377572], [8.754718, 49.377723], [8.754876, 49.377766], [8.75543, 49.377841], [8.756198, 49.37791], [8.756906, 49.377922], [8.75795, 49.377906], [8.758486, 49.377899], [8.758903, 49.377943], [8.759138, 49.377807], [8.759187, 49.377808], [8.759786, 49.377905], [8.760544, 49.378024], [8.762615, 49.378444], [8.763084, 49.378532], [8.763661, 49.378542], [8.76537, 49.378518], [8.766125, 49.378539], [8.766754, 49.378608], [8.76849, 49.379027], [8.76883, 49.379193], [8.768381, 49.379612], [8.767516, 49.380685], [8.766845, 49.381341], [8.766279, 49.382016], [8.765944, 49.3827], [8.76528, 49.383389], [8.764256, 49.384184], [8.763735, 49.384783], [8.76338, 49.385218], [8.763158, 49.385451], [8.762978, 49.385762], [8.762909, 49.385993], [8.762887, 49.386438], [8.762991, 49.386902], [8.762978, 49.387249], [8.762899, 49.387516], [8.763192, 49.387952], [8.764231, 49.387498], [8.766654, 49.387178], [8.767235, 49.387062], [8.767759, 49.386865], [8.768178, 49.386789], [8.768518, 49.386845], [8.768945, 49.386974], [8.76931, 49.387141], [8.769787, 49.387254], [8.770146, 49.387651], [8.771331, 49.388121], [8.771843, 49.388408], [8.772677, 49.388667], [8.772941, 49.388877], [8.773016, 49.389213], [8.773661, 49.389392], [8.773463, 49.389673], [8.773409, 49.390055], [8.77366, 49.390523], [8.773878, 49.390825], [8.774229, 49.390979], [8.774594, 49.391209], [8.775114, 49.391654], [8.775375, 49.392035], [8.775841, 49.392457], [8.775179, 49.393053], [8.776011, 49.393547], [8.776472, 49.394054], [8.776103, 49.394241], [8.775839, 49.394462], [8.775613, 49.394778], [8.775432, 49.39513], [8.775357, 49.395498], [8.775351, 49.39589], [8.775405, 49.396353], [8.77561, 49.396942], [8.775853, 49.397499], [8.77627, 49.398226], [8.776723, 49.39895], [8.777297, 49.399896], [8.777925, 49.401157], [8.778345, 49.40224], [8.779285, 49.402018], [8.78048, 49.4018], [8.781842, 49.401604], [8.783078, 49.401452], [8.783982, 49.401369], [8.784682, 49.401329], [8.785426, 49.40138], [8.78645, 49.401532], [8.787479, 49.40178], [8.789244, 49.402355], [8.790122, 49.40271], [8.7907, 49.403068], [8.791436, 49.403734], [8.792046, 49.404237], [8.792756, 49.404675], [8.793315, 49.405004], [8.793591, 49.405187], [8.793708, 49.405634], [8.793657, 49.406063], [8.793701, 49.40635], [8.793964, 49.406931], [8.79405, 49.40719], [8.793454, 49.408909], [8.79312, 49.409948], [8.793072, 49.410423], [8.792942, 49.411043], [8.792821, 49.411647], [8.792762, 49.411853], [8.792359, 49.412349], [8.790377, 49.414782], [8.790199, 49.414964], [8.790132, 49.415286], [8.789943, 49.416379], [8.78948, 49.417608], [8.789429, 49.418818], [8.789394, 49.419256], [8.789554, 49.419831], [8.789819, 49.420577], [8.789964, 49.421041], [8.790162, 49.421213], [8.791171, 49.42288], [8.791273, 49.423259], [8.790903, 49.424051], [8.789978, 49.425944], [8.789643, 49.42708], [8.78907, 49.430067], [8.78834, 49.431146], [8.786537, 49.432578], [8.779296, 49.432764], [8.777773, 49.432907], [8.777268, 49.433012], [8.776973, 49.433155], [8.776765, 49.433357], [8.775986, 49.434071], [8.774992, 49.43454], [8.774022, 49.434993], [8.773641, 49.435318], [8.773252, 49.435419], [8.772923, 49.435463], [8.77217, 49.435536], [8.77045, 49.435737], [8.769482, 49.436046], [8.766398, 49.437365], [8.766515, 49.440274], [8.766223, 49.440275], [8.76637, 49.441863], [8.766334, 49.443584], [8.764728, 49.446047], [8.761766, 49.448135], [8.761703, 49.450618], [8.761818, 49.450806], [8.762051, 49.450947], [8.763169, 49.451433], [8.764276, 49.451893], [8.765277, 49.452469], [8.766319, 49.453103], [8.767107, 49.453699], [8.767706, 49.454192], [8.765332, 49.455547], [8.763575, 49.456368], [8.76329, 49.456467], [8.762939, 49.456488], [8.76055, 49.456573], [8.758634, 49.456662], [8.757555, 49.456702], [8.757041, 49.457473], [8.756618, 49.457934], [8.756062, 49.458405], [8.755408, 49.458854], [8.754686, 49.459468], [8.754705, 49.459642], [8.753986, 49.459693], [8.753099, 49.459548], [8.75158, 49.459204], [8.750438, 49.458958], [8.750091, 49.459072], [8.748992, 49.459252], [8.747833, 49.459441], [8.746352, 49.459567], [8.74547, 49.459614], [8.745235, 49.459571], [8.744884, 49.459434], [8.744315, 49.459159], [8.743336, 49.458648], [8.74322, 49.458497], [8.74324, 49.458378], [8.743121, 49.458305], [8.742643, 49.45808], [8.741969, 49.45777], [8.741674, 49.457558], [8.741746, 49.457041], [8.741807, 49.456563], [8.741842, 49.456478], [8.742048, 49.4564], [8.74257, 49.456328], [8.74305, 49.456335], [8.743558, 49.456352], [8.744051, 49.456283], [8.744436, 49.456168], [8.744628, 49.456101], [8.744776, 49.456069], [8.744954, 49.456089], [8.745101, 49.456082], [8.745388, 49.455974], [8.745895, 49.455754], [8.746052, 49.455642], [8.746083, 49.455363], [8.746078, 49.455054], [8.746063, 49.454896], [8.745975, 49.454771], [8.745912, 49.454691], [8.745943, 49.454522], [8.746025, 49.45416], [8.746118, 49.453701], [8.746201, 49.453499], [8.746235, 49.453234], [8.745966, 49.452626], [8.745586, 49.451991], [8.744871, 49.451023], [8.744719, 49.450685], [8.744556, 49.450429], [8.744724, 49.450278], [8.74472, 49.450033], [8.744778, 49.449761], [8.745026, 49.449477], [8.745437, 49.449085], [8.745681, 49.448824], [8.745748, 49.448674], [8.745808, 49.448379], [8.745854, 49.448142], [8.745742, 49.447418], [8.7457, 49.446891], [8.739206, 49.446386], [8.739212, 49.44694], [8.738431, 49.448017], [8.738008, 49.448423], [8.737318, 49.44906], [8.737083, 49.449171], [8.736852, 49.449237], [8.736541, 49.449242], [8.735799, 49.449127], [8.735152, 49.448956], [8.734623, 49.44883], [8.732748, 49.448569], [8.730015, 49.448373], [8.726439, 49.448213], [8.725438, 49.448206], [8.724195, 49.448452], [8.723635, 49.448579], [8.722897, 49.448821], [8.722459, 49.449016], [8.722077, 49.449185], [8.721853, 49.449345], [8.721696, 49.449503], [8.721441, 49.449815], [8.721023, 49.450238], [8.720491, 49.450545], [8.720086, 49.450745], [8.719614, 49.451065], [8.718989, 49.451482], [8.718324, 49.451829], [8.717828, 49.452039], [8.717415, 49.452118], [8.716995, 49.452187], [8.716368, 49.452291], [8.715647, 49.452383], [8.715174, 49.45242], [8.714813, 49.452338], [8.714396, 49.452172], [8.714027, 49.451964], [8.713729, 49.451763], [8.713448, 49.451547], [8.71308, 49.451414], [8.712981, 49.451337], [8.712907, 49.451188], [8.712618, 49.450635], [8.712221, 49.450263], [8.712063, 49.450181], [8.711923, 49.450062], [8.711712, 49.449848], [8.711383, 49.449483], [8.710697, 49.449013], [8.709519, 49.447725], [8.709467, 49.447501], [8.709412, 49.446647], [8.709325, 49.446198], [8.708958, 49.446156], [8.708062, 49.445948], [8.707527, 49.44589], [8.706733, 49.445857], [8.706043, 49.445872], [8.705379, 49.445924], [8.704486, 49.446022], [8.703989, 49.446], [8.703226, 49.44592], [8.702235, 49.445819], [8.700441, 49.445474], [8.698009, 49.445025], [8.696864, 49.444866], [8.696436, 49.444666], [8.695967, 49.444555], [8.695515, 49.444586], [8.693686, 49.444206], [8.692734, 49.444117], [8.692166, 49.444018], [8.691707, 49.443845], [8.691244, 49.44365], [8.690496, 49.443236], [8.68937, 49.443263], [8.687857, 49.443212], [8.687569, 49.443035], [8.687363, 49.443008], [8.686799, 49.443048], [8.686065, 49.443213], [8.685572, 49.443319], [8.685446, 49.443329], [8.68496, 49.443355], [8.684607, 49.44354], [8.6843, 49.443671], [8.683887, 49.443768], [8.683496, 49.443878], [8.682964, 49.444], [8.682677, 49.443971], [8.682335, 49.443862], [8.682116, 49.443773], [8.681657, 49.443692], [8.681244, 49.443675], [8.680796, 49.443534], [8.680393, 49.443483], [8.67967, 49.443133], [8.679113, 49.44302], [8.679192, 49.442698], [8.678359, 49.442592], [8.678334, 49.442624], [8.677207, 49.442494], [8.677012, 49.442391], [8.676933, 49.442349], [8.676097, 49.442199], [8.675185, 49.442035], [8.674777, 49.441968], [8.673293, 49.441504], [8.672861, 49.441253], [8.67274, 49.441326], [8.672341, 49.441125], [8.671575, 49.440834], [8.670761, 49.441343], [8.67033, 49.441494], [8.669915, 49.441467], [8.668932, 49.441262], [8.667104, 49.440835], [8.666264, 49.440772], [8.665848, 49.44064], [8.665677, 49.440536], [8.665516, 49.440349], [8.665451, 49.4403], [8.665403, 49.440276], [8.665344, 49.440267], [8.665214, 49.440227], [8.663494, 49.439941], [8.663245, 49.439948], [8.663238, 49.439857], [8.663046, 49.43963], [8.662637, 49.439686], [8.662439, 49.439689], [8.662374, 49.439664], [8.661735, 49.439538], [8.66046, 49.439285], [8.658385, 49.438873], [8.658267, 49.439039], [8.657003, 49.438758], [8.656308, 49.438606], [8.65531, 49.439943], [8.653394, 49.439318], [8.649054, 49.437866], [8.648862, 49.437785], [8.648968, 49.437693], [8.648204, 49.437252], [8.647218, 49.436878], [8.646552, 49.436626], [8.646193, 49.436973], [8.646016, 49.437132], [8.645786, 49.437345], [8.645488, 49.437604], [8.645159, 49.437851], [8.644754, 49.438187], [8.644168, 49.438623], [8.643741, 49.438944], [8.643149, 49.439309], [8.64261, 49.43961], [8.642565, 49.439635], [8.642246, 49.439785], [8.641292, 49.440204], [8.64031, 49.440607], [8.639305, 49.44098], [8.638212, 49.441336], [8.637172, 49.441631], [8.636078, 49.441893], [8.634983, 49.442126], [8.633858, 49.442342], [8.632702, 49.442524], [8.631601, 49.44272], [8.630453, 49.442879], [8.629367, 49.443018], [8.628703, 49.443115], [8.628211, 49.441976], [8.628012, 49.44157], [8.627351, 49.440827], [8.626819, 49.440265], [8.626616, 49.440059], [8.626743, 49.439998], [8.626134, 49.439394], [8.62331, 49.436631], [8.623037, 49.436356], [8.622925, 49.436225], [8.622831, 49.436102], [8.62272, 49.435915], [8.622619, 49.43575], [8.622521, 49.435595], [8.622406, 49.435412], [8.622309, 49.435279], [8.622204, 49.435144], [8.621395, 49.434225], [8.621165, 49.433964], [8.621049, 49.433843], [8.620927, 49.433893], [8.619493, 49.432264], [8.61626, 49.428621], [8.615974, 49.428303], [8.61531, 49.427884], [8.609952, 49.424382], [8.609733, 49.424242], [8.605472, 49.425826], [8.599884, 49.427972], [8.598382, 49.428508], [8.59849, 49.428044], [8.59823, 49.428143], [8.593259, 49.430025], [8.592963, 49.430133], [8.590778, 49.427735], [8.59045, 49.427367], [8.590054, 49.427347], [8.589757, 49.427329], [8.589435, 49.427296], [8.588442, 49.427151], [8.587764, 49.427038], [8.58724, 49.426958], [8.587079, 49.426934], [8.586232, 49.426846], [8.584079, 49.4266], [8.583508, 49.426541], [8.582919, 49.426506], [8.582023, 49.426473], [8.581379, 49.42645], [8.579833, 49.426199], [8.577791, 49.425274], [8.577288, 49.425085], [8.575385, 49.424356], [8.57529, 49.424422], [8.574243, 49.424021], [8.573179, 49.4236]]], \"type\": \"Polygon\"}"], "limit": 0, "timeout": null, "record_class": null}}
\ No newline at end of file
diff --git a/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[3685929300].cassette.json b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[3685929300].cassette.json
new file mode 100644
index 000000000..b70a863de
--- /dev/null
+++ b/tests/asyncpg_recorder_cassettes/integrationtests/test_main.py--test_create_indicator_public_feature_collection_single[3685929300].cassette.json
@@ -0,0 +1 @@
+{"3972612534": {"results": [{"total_dlm": 608470.5960139487, "present_in_both": 0.0, "only_osm": 507526.49591414037, "only_dlm": 0.0, "missing_both": 45761.01879385946, "present_in_both_agree": 0.0, "present_in_both_not_agree": 0.0, "not_matched": 55183.081305949185}], "query": "WITH bpoly AS (\n SELECT\n -- split multipolygon into individual polygons\n (ST_Dump (ST_SetSRID (ST_GeomFromGeoJSON ($1), 4326))).geom AS geometry\n)\n\nselect\n SUM(matched_length) + SUM(not_matched_length) as total_dlm,\n SUM(\n CASE\n WHEN surface is not NULL AND ofm is not NULL THEN matched_length\n ELSE 0\n END\n ) AS present_in_both,\n SUM(\n CASE\n WHEN surface is not NULL AND ofm is NULL THEN matched_length\n ELSE 0\n END\n ) AS only_osm,\n SUM(\n CASE\n WHEN surface IS NULL AND ofm IS NOT NULL THEN matched_length\n ELSE 0\n end\n ) AS only_dlm,\n SUM(\n CASE\n WHEN surface is NULL AND ofm is NULL THEN matched_length\n ELSE 0\n END\n ) AS missing_both,\n SUM(\n CASE\n WHEN surface is not NULL\n AND ofm is not NULL\n AND surface = ofm THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_agree,\n SUM(\n CASE\n WHEN surface is not NULL\n AND ofm is not NULL\n AND surface != ofm THEN matched_length\n ELSE 0\n END\n ) AS present_in_both_not_agree,\n SUM(not_matched_length) AS not_matched\nFROM road_thematic_accuracy as ora, bpoly b\nWHERE\n ST_Intersects(ora.geom, b.geometry);\n", "args": ["{\"coordinates\": [[[8.573179, 49.4236], [8.573244, 49.423266], [8.573517, 49.421746], [8.573602, 49.421029], [8.57363, 49.420766], [8.573618, 49.420478], [8.573575, 49.420208], [8.573487, 49.419852], [8.573253, 49.419103], [8.57328, 49.418634], [8.573262, 49.41846], [8.573244, 49.418239], [8.573233, 49.418026], [8.573211, 49.417562], [8.573206, 49.417217], [8.573223, 49.416902], [8.573288, 49.416518], [8.57343, 49.415763], [8.573622, 49.415734], [8.57398, 49.414723], [8.574098, 49.414422], [8.574905, 49.412659], [8.575126, 49.41262], [8.575952, 49.412479], [8.576355, 49.412403], [8.576806, 49.412309], [8.577418, 49.412162], [8.578871, 49.411816], [8.580327, 49.411477], [8.580548, 49.411425], [8.581021, 49.411314], [8.581467, 49.411198], [8.582126, 49.411021], [8.58281, 49.410831], [8.583621, 49.410604], [8.584256, 49.41041], [8.584461, 49.410598], [8.584601, 49.41074], [8.58466, 49.410809], [8.584729, 49.410896], [8.584841, 49.411043], [8.584893, 49.411041], [8.590664, 49.410551], [8.592504, 49.410392], [8.59249, 49.410325], [8.592557, 49.410316], [8.592992, 49.410285], [8.594295, 49.410194], [8.595027, 49.410131], [8.595718, 49.41008], [8.596457, 49.410013], [8.597109, 49.409948], [8.597817, 49.409869], [8.598479, 49.409799], [8.59864, 49.409784], [8.600522, 49.409526], [8.603393, 49.409127], [8.60354, 49.409104], [8.603638, 49.409079], [8.6052, 49.408456], [8.608794, 49.407045], [8.610673, 49.405949], [8.611461, 49.405467], [8.612437, 49.406203], [8.616606, 49.407383], [8.622553, 49.409046], [8.622627, 49.40901], [8.622648, 49.408953], [8.62272, 49.408975], [8.622722, 49.408976], [8.622791, 49.409015], [8.622851, 49.409049], [8.623189, 49.409236], [8.624498, 49.409957], [8.62459, 49.410009], [8.625101, 49.410294], [8.625378, 49.410448], [8.625911, 49.410745], [8.626324, 49.410975], [8.626979, 49.411341], [8.628263, 49.412032], [8.62859, 49.412213], [8.629072, 49.412486], [8.630034, 49.413176], [8.630959, 49.413833], [8.632078, 49.414583], [8.632707, 49.415007], [8.632748, 49.415035], [8.632938, 49.414961], [8.633025, 49.414928], [8.633075, 49.414807], [8.63406, 49.412449], [8.634446, 49.411487], [8.634737, 49.410763], [8.635407, 49.409092], [8.635873, 49.407932], [8.636033, 49.40753], [8.636136, 49.407242], [8.636215, 49.406957], [8.636379, 49.406391], [8.636465, 49.406041], [8.636591, 49.405566], [8.636667, 49.405073], [8.636706, 49.404806], [8.636743, 49.404552], [8.636827, 49.403969], [8.6369, 49.403462], [8.636926, 49.403268], [8.637017, 49.402596], [8.637222, 49.401141], [8.63755, 49.3988], [8.638008, 49.395648], [8.638186, 49.393813], [8.638295, 49.39272], [8.638521, 49.392746], [8.640722, 49.393021], [8.64343, 49.393381], [8.643512, 49.393194], [8.643527, 49.39316], [8.645535, 49.390884], [8.64636, 49.389866], [8.6475, 49.388537], [8.645357, 49.388044], [8.643807, 49.387609], [8.642091, 49.387149], [8.641038, 49.386841], [8.639916, 49.386498], [8.639667, 49.386434], [8.639387, 49.386413], [8.638662, 49.386411], [8.638086, 49.386573], [8.636604, 49.38704], [8.634926, 49.387313], [8.633683, 49.387185], [8.633598, 49.387174], [8.633542, 49.386897], [8.633434, 49.386227], [8.633401, 49.385899], [8.633366, 49.385891], [8.630199, 49.385201], [8.629858, 49.385107], [8.629436, 49.384945], [8.628851, 49.384706], [8.628366, 49.384445], [8.627801, 49.38413], [8.627122, 49.383729], [8.62646, 49.38335], [8.625986, 49.383068], [8.625383, 49.382699], [8.624878, 49.382387], [8.624241, 49.38199], [8.623785, 49.381668], [8.624382, 49.38067], [8.621112, 49.380011], [8.620378, 49.379843], [8.617932, 49.379283], [8.616155, 49.379158], [8.615294, 49.378918], [8.614545, 49.378758], [8.613751, 49.378528], [8.612581, 49.378202], [8.610866, 49.378017], [8.610186, 49.377919], [8.609757, 49.37785], [8.609403, 49.377756], [8.609066, 49.377649], [8.608678, 49.377505], [8.607916, 49.37721], [8.607342, 49.376972], [8.606882, 49.376751], [8.60681, 49.376163], [8.607222, 49.374986], [8.607484, 49.37429], [8.607333, 49.373851], [8.606536, 49.371886], [8.605798, 49.370097], [8.605168, 49.370272], [8.60321, 49.368377], [8.601004, 49.366203], [8.604393, 49.365577], [8.604307, 49.365419], [8.605479, 49.365214], [8.605885, 49.365159], [8.607155, 49.365004], [8.607562, 49.364962], [8.607787, 49.364932], [8.608004, 49.364857], [8.60823, 49.364779], [8.608521, 49.364676], [8.608763, 49.364589], [8.608975, 49.364526], [8.60924, 49.364461], [8.609518, 49.364418], [8.609797, 49.364361], [8.610128, 49.3643], [8.610354, 49.364251], [8.610605, 49.364179], [8.610995, 49.364053], [8.611555, 49.363849], [8.612129, 49.363662], [8.613637, 49.363103], [8.615444, 49.362414], [8.61635, 49.362058], [8.617043, 49.361767], [8.617591, 49.361529], [8.618237, 49.361201], [8.618957, 49.360849], [8.619443, 49.360653], [8.619975, 49.360461], [8.620625, 49.360206], [8.621086, 49.360044], [8.621364, 49.359916], [8.621823, 49.359713], [8.622089, 49.35959], [8.622436, 49.35947], [8.623627, 49.359191], [8.624466, 49.359063], [8.623282, 49.35746], [8.623019, 49.357581], [8.621335, 49.355497], [8.620215, 49.354073], [8.620484, 49.354038], [8.620686, 49.354007], [8.621085, 49.353877], [8.623323, 49.35288], [8.625019, 49.352119], [8.62524, 49.35203], [8.625625, 49.352003], [8.627988, 49.352082], [8.628566, 49.352102], [8.629102, 49.352103], [8.629641, 49.352094], [8.630762, 49.352065], [8.630787, 49.352734], [8.631513, 49.352774], [8.631909, 49.352796], [8.632002, 49.352809], [8.632227, 49.352816], [8.632605, 49.35284], [8.632903, 49.352846], [8.633112, 49.352836], [8.633234, 49.352838], [8.633289, 49.353939], [8.633355, 49.355012], [8.633367, 49.355489], [8.63355, 49.355781], [8.633757, 49.3561], [8.633974, 49.356482], [8.634167, 49.356808], [8.634287, 49.357126], [8.634421, 49.357445], [8.634503, 49.357686], [8.634859, 49.358095], [8.635396, 49.358765], [8.636103, 49.359671], [8.636657, 49.360357], [8.636737, 49.360538], [8.636888, 49.361037], [8.637136, 49.36199], [8.637264, 49.362635], [8.637304, 49.362804], [8.637443, 49.363191], [8.637664, 49.36361], [8.637986, 49.364357], [8.638362, 49.365323], [8.638797, 49.36638], [8.639105, 49.3671], [8.639672, 49.368535], [8.640274, 49.369977], [8.64095, 49.36962], [8.642835, 49.368655], [8.644035, 49.369071], [8.644716, 49.369324], [8.644987, 49.369459], [8.645246, 49.369621], [8.645609, 49.369857], [8.645945, 49.370086], [8.646206, 49.370303], [8.646365, 49.370464], [8.647363, 49.369711], [8.647775, 49.369395], [8.64813, 49.369156], [8.648616, 49.368856], [8.649147, 49.368515], [8.649775, 49.368118], [8.650491, 49.367685], [8.650841, 49.367478], [8.650529, 49.366984], [8.650281, 49.366573], [8.650115, 49.36627], [8.649942, 49.365978], [8.651691, 49.364976], [8.651847, 49.365094], [8.652197, 49.364902], [8.652915, 49.364549], [8.653519, 49.364273], [8.654112, 49.36402], [8.654768, 49.363737], [8.655407, 49.363473], [8.656377, 49.363115], [8.657142, 49.362813], [8.657764, 49.363277], [8.658185, 49.363054], [8.658651, 49.362837], [8.659164, 49.362571], [8.658051, 49.361776], [8.657009, 49.360179], [8.656454, 49.35929], [8.655814, 49.358138], [8.655354, 49.357298], [8.654879, 49.356558], [8.654787, 49.35643], [8.654561, 49.356112], [8.653362, 49.356263], [8.652987, 49.35577], [8.652544, 49.355287], [8.652104, 49.35458], [8.651277, 49.353254], [8.651454, 49.353204], [8.651636, 49.353188], [8.65183, 49.353191], [8.652046, 49.353203], [8.652348, 49.353246], [8.652615, 49.353273], [8.652844, 49.353279], [8.653124, 49.353277], [8.653474, 49.353258], [8.653742, 49.353245], [8.654053, 49.353215], [8.654541, 49.353146], [8.655319, 49.353021], [8.656788, 49.352777], [8.657594, 49.352635], [8.657702, 49.352622], [8.657803, 49.352609], [8.658004, 49.352578], [8.658147, 49.352565], [8.657938, 49.35276], [8.657306, 49.353303], [8.657404, 49.353355], [8.656818, 49.353732], [8.656362, 49.354017], [8.656689, 49.35436], [8.657243, 49.355195], [8.658874, 49.354938], [8.660099, 49.354864], [8.660662, 49.354831], [8.660554, 49.35385], [8.661186, 49.353988], [8.661529, 49.354066], [8.662499, 49.354314], [8.663203, 49.354396], [8.663578, 49.353585], [8.664184, 49.353663], [8.665018, 49.353769], [8.664862, 49.354592], [8.664516, 49.356424], [8.664343, 49.35714], [8.664257, 49.357496], [8.664523, 49.357548], [8.664876, 49.357593], [8.667029, 49.35798], [8.66801, 49.358065], [8.668543, 49.358111], [8.668764, 49.358127], [8.669807, 49.358003], [8.671465, 49.357805], [8.67168, 49.357818], [8.671905, 49.359187], [8.672189, 49.360595], [8.672443, 49.361521], [8.6742, 49.361218], [8.675834, 49.360668], [8.675955, 49.360221], [8.677248, 49.360356], [8.678227, 49.360428], [8.67875, 49.360442], [8.679817, 49.360427], [8.679921, 49.360425], [8.682084, 49.360389], [8.682014, 49.359907], [8.684247, 49.359817], [8.684378, 49.359781], [8.68706, 49.359824], [8.687067, 49.35976], [8.687186, 49.359138], [8.687237, 49.35886], [8.689029, 49.3589], [8.689213, 49.358942], [8.690288, 49.358929], [8.690684, 49.358899], [8.691469, 49.358787], [8.691399, 49.358492], [8.692384, 49.358415], [8.692438, 49.358513], [8.692875, 49.358386], [8.692904, 49.358507], [8.693627, 49.358371], [8.693654, 49.35848], [8.694136, 49.358357], [8.694369, 49.358679], [8.69466, 49.358603], [8.694621, 49.358537], [8.694444, 49.358239], [8.6964, 49.357749], [8.696686, 49.357789], [8.696953, 49.358039], [8.698234, 49.357421], [8.699042, 49.357005], [8.699133, 49.357005], [8.699224, 49.357003], [8.699468, 49.356867], [8.70005, 49.356571], [8.700092, 49.35655], [8.700541, 49.356327], [8.701206, 49.356063], [8.701769, 49.355846], [8.701847, 49.355815], [8.70249, 49.355716], [8.703321, 49.355722], [8.703979, 49.355745], [8.704667, 49.355786], [8.705234, 49.355848], [8.705404, 49.355871], [8.705776, 49.35592], [8.706353, 49.356042], [8.706882, 49.356123], [8.708303, 49.356341], [8.70964, 49.35658], [8.71027, 49.355542], [8.710889, 49.35511], [8.711249, 49.35521], [8.7114, 49.35534], [8.711683, 49.355525], [8.711946, 49.355618], [8.712513, 49.355659], [8.71339, 49.355695], [8.71423, 49.355746], [8.715084, 49.355951], [8.715987, 49.35624], [8.716396, 49.356342], [8.718652, 49.356379], [8.71896, 49.356351], [8.719342, 49.356762], [8.719472, 49.357065], [8.71971, 49.357302], [8.720122, 49.357284], [8.721267, 49.357192], [8.721461, 49.357173], [8.722389, 49.357253], [8.723668, 49.357439], [8.724196, 49.357602], [8.724937, 49.357921], [8.72524, 49.358308], [8.725498, 49.358663], [8.725599, 49.358803], [8.726016, 49.359476], [8.726055, 49.360045], [8.726094, 49.360374], [8.727113, 49.361989], [8.727202, 49.362889], [8.727423, 49.364132], [8.727717, 49.365509], [8.728446, 49.366441], [8.728671, 49.366705], [8.728942, 49.366897], [8.730404, 49.367933], [8.729929, 49.368208], [8.728541, 49.368817], [8.72836, 49.368682], [8.726259, 49.369455], [8.725357, 49.370066], [8.725576, 49.37022], [8.725009, 49.371211], [8.724729, 49.37225], [8.724401, 49.373496], [8.724479, 49.373747], [8.724841, 49.373956], [8.727404, 49.375554], [8.72822, 49.374821], [8.729138, 49.374009], [8.730155, 49.373179], [8.730385, 49.373252], [8.730507, 49.373311], [8.731437, 49.372716], [8.732328, 49.372224], [8.733929, 49.372675], [8.735724, 49.372956], [8.736319, 49.373324], [8.737564, 49.374161], [8.738416, 49.374491], [8.740049, 49.374553], [8.740729, 49.374442], [8.741468, 49.373924], [8.742963, 49.373108], [8.744141, 49.372795], [8.745571, 49.37295], [8.746882, 49.373148], [8.747531, 49.373299], [8.747803, 49.373403], [8.74801, 49.373481], [8.749031, 49.373788], [8.749349, 49.373809], [8.749506, 49.373874], [8.749682, 49.374157], [8.749784, 49.374269], [8.749979, 49.37486], [8.750254, 49.375234], [8.750486, 49.375439], [8.751287, 49.375853], [8.751986, 49.376167], [8.752481, 49.376371], [8.75318, 49.376893], [8.753542, 49.377091], [8.754226, 49.377357], [8.754767, 49.377572], [8.754718, 49.377723], [8.754876, 49.377766], [8.75543, 49.377841], [8.756198, 49.37791], [8.756906, 49.377922], [8.75795, 49.377906], [8.758486, 49.377899], [8.758903, 49.377943], [8.759138, 49.377807], [8.759187, 49.377808], [8.759786, 49.377905], [8.760544, 49.378024], [8.762615, 49.378444], [8.763084, 49.378532], [8.763661, 49.378542], [8.76537, 49.378518], [8.766125, 49.378539], [8.766754, 49.378608], [8.76849, 49.379027], [8.76883, 49.379193], [8.768381, 49.379612], [8.767516, 49.380685], [8.766845, 49.381341], [8.766279, 49.382016], [8.765944, 49.3827], [8.76528, 49.383389], [8.764256, 49.384184], [8.763735, 49.384783], [8.76338, 49.385218], [8.763158, 49.385451], [8.762978, 49.385762], [8.762909, 49.385993], [8.762887, 49.386438], [8.762991, 49.386902], [8.762978, 49.387249], [8.762899, 49.387516], [8.763192, 49.387952], [8.764231, 49.387498], [8.766654, 49.387178], [8.767235, 49.387062], [8.767759, 49.386865], [8.768178, 49.386789], [8.768518, 49.386845], [8.768945, 49.386974], [8.76931, 49.387141], [8.769787, 49.387254], [8.770146, 49.387651], [8.771331, 49.388121], [8.771843, 49.388408], [8.772677, 49.388667], [8.772941, 49.388877], [8.773016, 49.389213], [8.773661, 49.389392], [8.773463, 49.389673], [8.773409, 49.390055], [8.77366, 49.390523], [8.773878, 49.390825], [8.774229, 49.390979], [8.774594, 49.391209], [8.775114, 49.391654], [8.775375, 49.392035], [8.775841, 49.392457], [8.775179, 49.393053], [8.776011, 49.393547], [8.776472, 49.394054], [8.776103, 49.394241], [8.775839, 49.394462], [8.775613, 49.394778], [8.775432, 49.39513], [8.775357, 49.395498], [8.775351, 49.39589], [8.775405, 49.396353], [8.77561, 49.396942], [8.775853, 49.397499], [8.77627, 49.398226], [8.776723, 49.39895], [8.777297, 49.399896], [8.777925, 49.401157], [8.778345, 49.40224], [8.779285, 49.402018], [8.78048, 49.4018], [8.781842, 49.401604], [8.783078, 49.401452], [8.783982, 49.401369], [8.784682, 49.401329], [8.785426, 49.40138], [8.78645, 49.401532], [8.787479, 49.40178], [8.789244, 49.402355], [8.790122, 49.40271], [8.7907, 49.403068], [8.791436, 49.403734], [8.792046, 49.404237], [8.792756, 49.404675], [8.793315, 49.405004], [8.793591, 49.405187], [8.793708, 49.405634], [8.793657, 49.406063], [8.793701, 49.40635], [8.793964, 49.406931], [8.79405, 49.40719], [8.793454, 49.408909], [8.79312, 49.409948], [8.793072, 49.410423], [8.792942, 49.411043], [8.792821, 49.411647], [8.792762, 49.411853], [8.792359, 49.412349], [8.790377, 49.414782], [8.790199, 49.414964], [8.790132, 49.415286], [8.789943, 49.416379], [8.78948, 49.417608], [8.789429, 49.418818], [8.789394, 49.419256], [8.789554, 49.419831], [8.789819, 49.420577], [8.789964, 49.421041], [8.790162, 49.421213], [8.791171, 49.42288], [8.791273, 49.423259], [8.790903, 49.424051], [8.789978, 49.425944], [8.789643, 49.42708], [8.78907, 49.430067], [8.78834, 49.431146], [8.786537, 49.432578], [8.779296, 49.432764], [8.777773, 49.432907], [8.777268, 49.433012], [8.776973, 49.433155], [8.776765, 49.433357], [8.775986, 49.434071], [8.774992, 49.43454], [8.774022, 49.434993], [8.773641, 49.435318], [8.773252, 49.435419], [8.772923, 49.435463], [8.77217, 49.435536], [8.77045, 49.435737], [8.769482, 49.436046], [8.766398, 49.437365], [8.766515, 49.440274], [8.766223, 49.440275], [8.76637, 49.441863], [8.766334, 49.443584], [8.764728, 49.446047], [8.761766, 49.448135], [8.761703, 49.450618], [8.761818, 49.450806], [8.762051, 49.450947], [8.763169, 49.451433], [8.764276, 49.451893], [8.765277, 49.452469], [8.766319, 49.453103], [8.767107, 49.453699], [8.767706, 49.454192], [8.765332, 49.455547], [8.763575, 49.456368], [8.76329, 49.456467], [8.762939, 49.456488], [8.76055, 49.456573], [8.758634, 49.456662], [8.757555, 49.456702], [8.757041, 49.457473], [8.756618, 49.457934], [8.756062, 49.458405], [8.755408, 49.458854], [8.754686, 49.459468], [8.754705, 49.459642], [8.753986, 49.459693], [8.753099, 49.459548], [8.75158, 49.459204], [8.750438, 49.458958], [8.750091, 49.459072], [8.748992, 49.459252], [8.747833, 49.459441], [8.746352, 49.459567], [8.74547, 49.459614], [8.745235, 49.459571], [8.744884, 49.459434], [8.744315, 49.459159], [8.743336, 49.458648], [8.74322, 49.458497], [8.74324, 49.458378], [8.743121, 49.458305], [8.742643, 49.45808], [8.741969, 49.45777], [8.741674, 49.457558], [8.741746, 49.457041], [8.741807, 49.456563], [8.741842, 49.456478], [8.742048, 49.4564], [8.74257, 49.456328], [8.74305, 49.456335], [8.743558, 49.456352], [8.744051, 49.456283], [8.744436, 49.456168], [8.744628, 49.456101], [8.744776, 49.456069], [8.744954, 49.456089], [8.745101, 49.456082], [8.745388, 49.455974], [8.745895, 49.455754], [8.746052, 49.455642], [8.746083, 49.455363], [8.746078, 49.455054], [8.746063, 49.454896], [8.745975, 49.454771], [8.745912, 49.454691], [8.745943, 49.454522], [8.746025, 49.45416], [8.746118, 49.453701], [8.746201, 49.453499], [8.746235, 49.453234], [8.745966, 49.452626], [8.745586, 49.451991], [8.744871, 49.451023], [8.744719, 49.450685], [8.744556, 49.450429], [8.744724, 49.450278], [8.74472, 49.450033], [8.744778, 49.449761], [8.745026, 49.449477], [8.745437, 49.449085], [8.745681, 49.448824], [8.745748, 49.448674], [8.745808, 49.448379], [8.745854, 49.448142], [8.745742, 49.447418], [8.7457, 49.446891], [8.739206, 49.446386], [8.739212, 49.44694], [8.738431, 49.448017], [8.738008, 49.448423], [8.737318, 49.44906], [8.737083, 49.449171], [8.736852, 49.449237], [8.736541, 49.449242], [8.735799, 49.449127], [8.735152, 49.448956], [8.734623, 49.44883], [8.732748, 49.448569], [8.730015, 49.448373], [8.726439, 49.448213], [8.725438, 49.448206], [8.724195, 49.448452], [8.723635, 49.448579], [8.722897, 49.448821], [8.722459, 49.449016], [8.722077, 49.449185], [8.721853, 49.449345], [8.721696, 49.449503], [8.721441, 49.449815], [8.721023, 49.450238], [8.720491, 49.450545], [8.720086, 49.450745], [8.719614, 49.451065], [8.718989, 49.451482], [8.718324, 49.451829], [8.717828, 49.452039], [8.717415, 49.452118], [8.716995, 49.452187], [8.716368, 49.452291], [8.715647, 49.452383], [8.715174, 49.45242], [8.714813, 49.452338], [8.714396, 49.452172], [8.714027, 49.451964], [8.713729, 49.451763], [8.713448, 49.451547], [8.71308, 49.451414], [8.712981, 49.451337], [8.712907, 49.451188], [8.712618, 49.450635], [8.712221, 49.450263], [8.712063, 49.450181], [8.711923, 49.450062], [8.711712, 49.449848], [8.711383, 49.449483], [8.710697, 49.449013], [8.709519, 49.447725], [8.709467, 49.447501], [8.709412, 49.446647], [8.709325, 49.446198], [8.708958, 49.446156], [8.708062, 49.445948], [8.707527, 49.44589], [8.706733, 49.445857], [8.706043, 49.445872], [8.705379, 49.445924], [8.704486, 49.446022], [8.703989, 49.446], [8.703226, 49.44592], [8.702235, 49.445819], [8.700441, 49.445474], [8.698009, 49.445025], [8.696864, 49.444866], [8.696436, 49.444666], [8.695967, 49.444555], [8.695515, 49.444586], [8.693686, 49.444206], [8.692734, 49.444117], [8.692166, 49.444018], [8.691707, 49.443845], [8.691244, 49.44365], [8.690496, 49.443236], [8.68937, 49.443263], [8.687857, 49.443212], [8.687569, 49.443035], [8.687363, 49.443008], [8.686799, 49.443048], [8.686065, 49.443213], [8.685572, 49.443319], [8.685446, 49.443329], [8.68496, 49.443355], [8.684607, 49.44354], [8.6843, 49.443671], [8.683887, 49.443768], [8.683496, 49.443878], [8.682964, 49.444], [8.682677, 49.443971], [8.682335, 49.443862], [8.682116, 49.443773], [8.681657, 49.443692], [8.681244, 49.443675], [8.680796, 49.443534], [8.680393, 49.443483], [8.67967, 49.443133], [8.679113, 49.44302], [8.679192, 49.442698], [8.678359, 49.442592], [8.678334, 49.442624], [8.677207, 49.442494], [8.677012, 49.442391], [8.676933, 49.442349], [8.676097, 49.442199], [8.675185, 49.442035], [8.674777, 49.441968], [8.673293, 49.441504], [8.672861, 49.441253], [8.67274, 49.441326], [8.672341, 49.441125], [8.671575, 49.440834], [8.670761, 49.441343], [8.67033, 49.441494], [8.669915, 49.441467], [8.668932, 49.441262], [8.667104, 49.440835], [8.666264, 49.440772], [8.665848, 49.44064], [8.665677, 49.440536], [8.665516, 49.440349], [8.665451, 49.4403], [8.665403, 49.440276], [8.665344, 49.440267], [8.665214, 49.440227], [8.663494, 49.439941], [8.663245, 49.439948], [8.663238, 49.439857], [8.663046, 49.43963], [8.662637, 49.439686], [8.662439, 49.439689], [8.662374, 49.439664], [8.661735, 49.439538], [8.66046, 49.439285], [8.658385, 49.438873], [8.658267, 49.439039], [8.657003, 49.438758], [8.656308, 49.438606], [8.65531, 49.439943], [8.653394, 49.439318], [8.649054, 49.437866], [8.648862, 49.437785], [8.648968, 49.437693], [8.648204, 49.437252], [8.647218, 49.436878], [8.646552, 49.436626], [8.646193, 49.436973], [8.646016, 49.437132], [8.645786, 49.437345], [8.645488, 49.437604], [8.645159, 49.437851], [8.644754, 49.438187], [8.644168, 49.438623], [8.643741, 49.438944], [8.643149, 49.439309], [8.64261, 49.43961], [8.642565, 49.439635], [8.642246, 49.439785], [8.641292, 49.440204], [8.64031, 49.440607], [8.639305, 49.44098], [8.638212, 49.441336], [8.637172, 49.441631], [8.636078, 49.441893], [8.634983, 49.442126], [8.633858, 49.442342], [8.632702, 49.442524], [8.631601, 49.44272], [8.630453, 49.442879], [8.629367, 49.443018], [8.628703, 49.443115], [8.628211, 49.441976], [8.628012, 49.44157], [8.627351, 49.440827], [8.626819, 49.440265], [8.626616, 49.440059], [8.626743, 49.439998], [8.626134, 49.439394], [8.62331, 49.436631], [8.623037, 49.436356], [8.622925, 49.436225], [8.622831, 49.436102], [8.62272, 49.435915], [8.622619, 49.43575], [8.622521, 49.435595], [8.622406, 49.435412], [8.622309, 49.435279], [8.622204, 49.435144], [8.621395, 49.434225], [8.621165, 49.433964], [8.621049, 49.433843], [8.620927, 49.433893], [8.619493, 49.432264], [8.61626, 49.428621], [8.615974, 49.428303], [8.61531, 49.427884], [8.609952, 49.424382], [8.609733, 49.424242], [8.605472, 49.425826], [8.599884, 49.427972], [8.598382, 49.428508], [8.59849, 49.428044], [8.59823, 49.428143], [8.593259, 49.430025], [8.592963, 49.430133], [8.590778, 49.427735], [8.59045, 49.427367], [8.590054, 49.427347], [8.589757, 49.427329], [8.589435, 49.427296], [8.588442, 49.427151], [8.587764, 49.427038], [8.58724, 49.426958], [8.587079, 49.426934], [8.586232, 49.426846], [8.584079, 49.4266], [8.583508, 49.426541], [8.582919, 49.426506], [8.582023, 49.426473], [8.581379, 49.42645], [8.579833, 49.426199], [8.577791, 49.425274], [8.577288, 49.425085], [8.575385, 49.424356], [8.57529, 49.424422], [8.574243, 49.424021], [8.573179, 49.4236]]], \"type\": \"Polygon\"}"], "limit": 0, "timeout": null, "record_class": null}}
\ No newline at end of file
diff --git a/tests/conftest.py b/tests/conftest.py
index 082c189d1..d02dbfdee 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -19,8 +19,6 @@
get_indicator_metadata,
)
from ohsome_quality_api.indicators.models import IndicatorMetadata
-from ohsome_quality_api.projects.definitions import get_project, load_projects
-from ohsome_quality_api.projects.models import Project
from ohsome_quality_api.quality_dimensions.definitions import (
get_quality_dimension,
load_quality_dimensions,
@@ -78,11 +76,6 @@ async def get_connection_(database="oqapidb"):
)
-@pytest.fixture(scope="class")
-def topic_key_minimal() -> str:
- return "minimal"
-
-
@pytest.fixture(scope="class")
def topic_key_building_count() -> str:
return "building-count"
@@ -98,11 +91,6 @@ def topic_roads_all_highways() -> Topic:
return get_topic_preset("roads-all-highways")
-@pytest.fixture(scope="class")
-def topic_minimal(topic_key_minimal) -> Topic:
- return get_topic_preset(topic_key_minimal)
-
-
@pytest.fixture(scope="class")
def topic_building_count(topic_key_building_count) -> Topic:
return get_topic_preset(topic_key_building_count)
@@ -169,26 +157,6 @@ def quality_dimensions() -> dict[str, QualityDimension]:
return load_quality_dimensions()
-@pytest.fixture(scope="class")
-def project_key_core() -> str:
- return "core"
-
-
-@pytest.fixture(scope="class")
-def project_core(project_key_core) -> Project:
- return get_project(project_key_core)
-
-
-@pytest.fixture(scope="class")
-def metadata_project_core(project_key_core, project_core) -> dict[str, Project]:
- return {project_key_core: project_core}
-
-
-@pytest.fixture()
-def projects() -> dict[str, Project]:
- return load_projects()
-
-
@pytest.fixture(scope="class")
def attribute() -> Attribute:
return Attribute(
@@ -306,8 +274,8 @@ def feature_collection_unsupported_geometry_type(request) -> FeatureCollection:
@pytest.fixture
-def metadata_indicator_minimal() -> dict[str, IndicatorMetadata]:
- return {"minimal": get_indicator("minimal")}
+def metadata_indicator_mapping_saturation() -> dict[str, IndicatorMetadata]:
+ return {"mapping-saturation": get_indicator("mapping-saturation")}
@pytest.fixture
diff --git a/tests/integrationtests/api/conftest.py b/tests/integrationtests/api/conftest.py
index 055092178..cc4bd0089 100644
--- a/tests/integrationtests/api/conftest.py
+++ b/tests/integrationtests/api/conftest.py
@@ -40,7 +40,6 @@ def metadata_topic_building_count():
"building-count": {
"name": "Buildings (count)",
"description": "All buildings as defined by all objects tagged with 'building=*'.", # noqa
- "endpoint": "elements",
"aggregationType": "count",
"filter": "building=* and building!=no and geometry:polygon",
"indicators": [
@@ -49,7 +48,6 @@ def metadata_topic_building_count():
"attribute-completeness",
"user-activity",
],
- "projects": ["core", "bkg"],
"source": None,
},
}
@@ -64,17 +62,6 @@ def metadata_indicator_mapping_saturation():
"Calculate if mapping has saturated. High saturation has been reached "
+ "if the growth of the fitted curve is minimal."
),
- "projects": [
- "core",
- "corine-land-cover",
- "expanse",
- "experimental",
- "idealvgi",
- "mapaction",
- "sketchmap",
- "bkg",
- "unicef",
- ],
"qualityDimension": "completeness",
}
}
@@ -83,63 +70,25 @@ def metadata_indicator_mapping_saturation():
@pytest.fixture
def metadata_quality_dimension():
return {
- "minimal": {
- "name": "minimal",
- "description": "A minimal quality dimension"
- " definition for testing purposes.",
- "source": None,
- }
- }
-
-
-@pytest.fixture
-def metadata_project_core():
- return {
- "core": {
- "name": "TODO",
- "description": "something that is still a TODO",
- }
- }
-
-
-@pytest.fixture
-def metadata_topic_minimal():
- return {
- "minimal": {
- "key": "minimal",
- "name": "Minimal",
- "description": "A minimal topic definition for testing purposes",
- "endpoint": "elements",
- "aggregationType": "count",
- "filter": "building=* and building!=no and geometry:polygon",
- "indicators": ["minimal"],
- "ratioFilter": None, # TODO: Should not be in response if None
- "projects": ["misc"],
- "source": None, # TODO: Should not be in response if None
- }
- }
-
-
-@pytest.fixture
-def metadata_indicator_minimal():
- return {
- "minimal": {
- "name": "Minimal",
- "description": "An minimal Indicator for testing purposes.",
- "projects": ["misc"],
- "qualityDimension": "minimal",
+ "completeness": {
+ "name": "completeness",
+ "description": "The degree to which subject data associated "
+ "with an entity has values for all expected "
+ "attributes and related entity instances in "
+ "a specific context of use.",
+ "source": "https://www.iso.org/standard/78900.html",
}
}
@pytest.fixture
-def metadata_attribute_clc_leaf_type():
+def metadata_attribute_forests():
return {
- "clc-leaf-type": {
+ "forests": {
"leaf-type": {
- "name": "Type of Leaves",
+ "filter": "leaf_type=*",
+ "name": "Leaf Type",
"description": "TODO",
- "filter": "leaf_type in (broadleaved, needleleaved, mixed)",
}
}
}
diff --git a/tests/integrationtests/api/test_indicators.py b/tests/integrationtests/api/test_indicators.py
index 9fba993b7..58e54f0df 100644
--- a/tests/integrationtests/api/test_indicators.py
+++ b/tests/integrationtests/api/test_indicators.py
@@ -99,7 +99,6 @@
@pytest.mark.parametrize(
"indicator,topic",
[
- ("minimal", "minimal"),
("mapping-saturation", "building-count"),
("currentness", "building-count"),
],
@@ -123,7 +122,7 @@ def test_indicators(
@oqapi_vcr.use_cassette
-@pytest.mark.parametrize("indicator", ("minimal", "mapping-saturation", "currentness"))
+@pytest.mark.parametrize("indicator", ("mapping-saturation", "currentness"))
def test_indicators_custom_topic(
client,
bpolys,
@@ -150,7 +149,7 @@ def test_indicators_custom_topic(
@oqapi_vcr.use_cassette
-@pytest.mark.parametrize("indicator", ("minimal", "mapping-saturation", "currentness"))
+@pytest.mark.parametrize("indicator", ("mapping-saturation", "currentness"))
def test_indicators_custom_topic_missing_geom_or_osm_type(
client,
bpolys,
@@ -284,26 +283,26 @@ def test_indicators_attribute_completeness_with_custom_topic_and_custom_attribut
@oqapi_vcr.use_cassette
-def test_minimal_fc(
+def test_mapping_saturation_fc(
client,
feature_collection_heidelberg_bahnstadt_bergheim_weststadt,
headers,
schema,
):
"""Minimal viable request for multiple bpolys."""
- endpoint = ENDPOINT + "minimal"
+ endpoint = ENDPOINT + "mapping-saturation"
parameters = {
"bpolys": feature_collection_heidelberg_bahnstadt_bergheim_weststadt,
- "topic": "minimal",
+ "topic": "building-count",
}
response = client.post(endpoint, json=parameters, headers=headers)
assert schema.is_valid(response.json())
@oqapi_vcr.use_cassette
-def test_minimal_include_figure_true(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
- parameters = {"bpolys": bpolys, "topic": "minimal", "includeFigure": True}
+def test_mapping_saturation_include_figure_true(client, bpolys, headers, schema):
+ endpoint = ENDPOINT + "mapping-saturation"
+ parameters = {"bpolys": bpolys, "topic": "building-count", "includeFigure": True}
response = client.post(endpoint, json=parameters, headers=headers)
content = response.json()
if schema == RESPONSE_SCHEMA_JSON:
@@ -315,9 +314,9 @@ def test_minimal_include_figure_true(client, bpolys, headers, schema):
@oqapi_vcr.use_cassette
-def test_minimal_include_figure_false(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
- parameters = {"bpolys": bpolys, "topic": "minimal", "includeFigure": False}
+def test_mapping_saturation_include_figure_false(client, bpolys, headers, schema):
+ endpoint = ENDPOINT + "mapping-saturation"
+ parameters = {"bpolys": bpolys, "topic": "building-count", "includeFigure": False}
response = client.post(endpoint, json=parameters, headers=headers)
content = response.json()
if schema == RESPONSE_SCHEMA_JSON:
@@ -328,26 +327,30 @@ def test_minimal_include_figure_false(client, bpolys, headers, schema):
raise AssertionError()
-def test_minimal_additional_parameter_foo(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
- parameters = {"bpolys": bpolys, "topic": "minimal", "attribute": "foo"}
+def test_mapping_saturation_additional_parameter_foo(client, bpolys, headers, schema):
+ endpoint = ENDPOINT + "mapping-saturation"
+ parameters = {"bpolys": bpolys, "topic": "building-count", "attribute": "foo"}
response = client.post(endpoint, json=parameters, headers=headers)
assert response.status_code == 422
content = response.json()
assert content["type"] == "RequestValidationError"
-def test_minimal_additional_parameter_attribute(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
- parameters = {"bpolys": bpolys, "topic": "minimal", "attribute": "height"}
+def test_mapping_saturation_additional_parameter_attribute(
+ client, bpolys, headers, schema
+):
+ endpoint = ENDPOINT + "mapping-saturation"
+ parameters = {"bpolys": bpolys, "topic": "building-count", "attribute": "height"}
response = client.post(endpoint, json=parameters, headers=headers)
assert response.status_code == 422
content = response.json()
assert content["type"] == "RequestValidationError"
-def test_minimal_custom_topic_missing_filter(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
+def test_mapping_saturation_custom_topic_missing_filter(
+ client, bpolys, headers, schema
+):
+ endpoint = ENDPOINT + "mapping-saturation"
parameters = {"bpolys": bpolys, "topic": "custom-topic"} # missing topic_filter
response = client.post(endpoint, json=parameters, headers=headers)
assert response.status_code == 422
@@ -355,13 +358,15 @@ def test_minimal_custom_topic_missing_filter(client, bpolys, headers, schema):
assert content["type"] == "RequestValidationError"
-def test_minimal_custom_topic_key_with_filter(client, bpolys, headers, schema):
- endpoint = ENDPOINT + "minimal"
+def test_mapping_saturation_custom_topic_key_with_filter(
+ client, bpolys, headers, schema
+):
+ endpoint = ENDPOINT + "mapping-saturation"
parameters = {
"bpolys": bpolys,
- "topic": "minimal",
- "topicFilter": "spring=yes and geometry:point", # invalid with topic `minimal`
- "topicTitle": "Spring", # invalid with topic `minimal`
+ "topic": "building-count",
+ "topicFilter": "spring=yes and geometry:point", # invalid with topic
+ "topicTitle": "Spring", # invalid with topic
}
response = client.post(endpoint, json=parameters, headers=headers)
assert response.status_code == 422
@@ -369,18 +374,6 @@ def test_minimal_custom_topic_key_with_filter(client, bpolys, headers, schema):
assert content["type"] == "RequestValidationError"
-def test_bpolys_size_limit(client, europe, headers, schema):
- endpoint = ENDPOINT + "minimal"
- parameters = {
- "bpolys": europe,
- "topic": "minimal",
- }
- response = client.post(endpoint, json=parameters, headers=headers)
- assert response.status_code == 422
- content = response.json()
- assert content["type"] == "SizeRestrictionError"
-
-
@asyncpg_recorder.use_cassette
@pytest.mark.asyncio
async def test_indicators_roads_thematic_accuracy_specific_attribute(
diff --git a/tests/integrationtests/api/test_metadata.py b/tests/integrationtests/api/test_metadata.py
index 104332629..3b3ec62e1 100644
--- a/tests/integrationtests/api/test_metadata.py
+++ b/tests/integrationtests/api/test_metadata.py
@@ -1,15 +1,10 @@
-from ohsome_quality_api.indicators.definitions import IndicatorEnum
-from ohsome_quality_api.topics.definitions import TopicEnum
-
-
def test_metadata(
client,
response_template,
- metadata_project_core,
metadata_topic_building_count,
metadata_indicator_mapping_saturation,
metadata_quality_dimension,
- metadata_attribute_clc_leaf_type,
+ metadata_attribute_forests,
):
response = client.get("/metadata")
assert response.status_code == 200
@@ -24,70 +19,12 @@ def test_metadata(
)
# check quality dimensions result
assert (
- metadata_quality_dimension["minimal"] == result["qualityDimensions"]["minimal"]
+ metadata_quality_dimension["completeness"]
+ == result["qualityDimensions"]["completeness"]
)
- # check projects result
- assert metadata_project_core["core"] == result["projects"]["core"]
# check indicators result
assert (
metadata_indicator_mapping_saturation["mapping-saturation"]
== result["indicators"]["mapping-saturation"]
)
- assert (
- metadata_attribute_clc_leaf_type["clc-leaf-type"]
- == result["attributes"]["clc-leaf-type"]
- )
-
-
-def test_project_core(
- client,
- response_template,
-):
- response = client.get("/metadata?project=core")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- for k in ("topics", "indicators"):
- for p in result[k].values():
- assert "core" in p["projects"]
- # check topics result
- assert len(result["topics"]) > 0
- # check indicators result
- assert len(result["indicators"]) > 0
-
-
-def test_project_misc(
- client,
- response_template,
-):
- response = client.get("/metadata?project=misc")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- for k in ("topics", "indicators"):
- for p in result[k].values():
- assert "misc" in p["projects"]
- # check topics result
- assert len(result["topics"]) > 0
- # check indicators result
- assert len(result["indicators"]) > 0
-
-
-def test_project_all(
- client,
- response_template,
-):
- response = client.get("/metadata?project=all")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- # check topics result
- assert len(result["topics"]) == len(TopicEnum)
- # check indicators result
- assert len(result["indicators"]) == len(IndicatorEnum)
+ assert metadata_attribute_forests["forests"] == result["attributes"]["forests"]
diff --git a/tests/integrationtests/api/test_metadata_attributes.py b/tests/integrationtests/api/test_metadata_attributes.py
index b033f67d1..47e973609 100644
--- a/tests/integrationtests/api/test_metadata_attributes.py
+++ b/tests/integrationtests/api/test_metadata_attributes.py
@@ -1,7 +1,7 @@
def test_metadata_attribute(
client,
response_template,
- metadata_attribute_clc_leaf_type,
+ metadata_attribute_forests,
):
response = client.get("/metadata/attributes")
assert response.status_code == 200
@@ -9,4 +9,4 @@ def test_metadata_attribute(
content = response.json()
result = content.pop("result")
assert content == response_template
- assert metadata_attribute_clc_leaf_type["clc-leaf-type"] == result["clc-leaf-type"]
+ assert metadata_attribute_forests["forests"] == result["forests"]
diff --git a/tests/integrationtests/api/test_metadata_indicators.py b/tests/integrationtests/api/test_metadata_indicators.py
index c6a534aed..931090de3 100644
--- a/tests/integrationtests/api/test_metadata_indicators.py
+++ b/tests/integrationtests/api/test_metadata_indicators.py
@@ -3,8 +3,6 @@
import geojson
import pytest
-from ohsome_quality_api.indicators.definitions import IndicatorEnum
-
def test(client, response_template, metadata_indicator_mapping_saturation):
response = client.get("/metadata/indicators/")
@@ -17,17 +15,16 @@ def test(client, response_template, metadata_indicator_mapping_saturation):
metadata_indicator_mapping_saturation["mapping-saturation"]
== result["mapping-saturation"]
)
- assert "minimal" not in result
-def test_by_key(client, response_template, metadata_indicator_minimal):
- response = client.get("/metadata/indicators/minimal")
+def test_by_key(client, response_template, metadata_indicator_mapping_saturation):
+ response = client.get("/metadata/indicators/mapping-saturation")
assert response.status_code == 200
content = response.json()
result = content.pop("result")
assert content == response_template
- assert result == metadata_indicator_minimal
+ assert result == metadata_indicator_mapping_saturation
def test_by_key_not_found_error(client):
@@ -35,39 +32,6 @@ def test_by_key_not_found_error(client):
assert response.status_code == 422
-def test_project_core(client, response_template, metadata_indicator_mapping_saturation):
- response = client.get("/metadata/indicators/?project=core")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert (
- metadata_indicator_mapping_saturation["mapping-saturation"]
- == result["mapping-saturation"]
- )
- assert "minimal" not in result
-
-
-def test_project_all(
- client,
- response_template,
-):
- response = client.get("/metadata/indicators/?project=all")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert len(result) == len(IndicatorEnum)
-
-
-@pytest.mark.skip(reason="Not yet implemented")
-def test_project_not_found_error(client):
- response = client.get("/metadata/indicators/?project=foo")
- assert response.status_code == 404 # Not Found
-
-
def test_coverage_default(client):
response = client.get("metadata/indicators/mapping-saturation/coverage")
assert response.status_code == 200
diff --git a/tests/integrationtests/api/test_metadata_projects.py b/tests/integrationtests/api/test_metadata_projects.py
deleted file mode 100644
index 40af3fd0b..000000000
--- a/tests/integrationtests/api/test_metadata_projects.py
+++ /dev/null
@@ -1,25 +0,0 @@
-def test_metadata_projects(client, response_template, metadata_project_core):
- response = client.get("/metadata/projects")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert metadata_project_core["core"] == result["core"]
- # result shouldn't contain the all key
- assert "all" not in result
-
-
-def test_metadata_projects_by_key(client, response_template, metadata_project_core):
- response = client.get("/metadata/projects/core")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert result == metadata_project_core
-
-
-def test_metadata_projects_by_key_not_found_error(client):
- response = client.get("/metadata/projects/foo")
- assert response.status_code == 422
diff --git a/tests/integrationtests/api/test_metadata_quality_dimensions.py b/tests/integrationtests/api/test_metadata_quality_dimensions.py
index f7ee28a5c..0c3df7be1 100644
--- a/tests/integrationtests/api/test_metadata_quality_dimensions.py
+++ b/tests/integrationtests/api/test_metadata_quality_dimensions.py
@@ -7,13 +7,13 @@ def test_metadata_quality_dimensions(
content = response.json()
result = content.pop("result")
assert content == response_template
- assert metadata_quality_dimension["minimal"] == result["minimal"]
+ assert metadata_quality_dimension["completeness"] == result["completeness"]
def test_metadata_quality_dimensions_by_key(
client, response_template, metadata_quality_dimension
):
- response = client.get("/metadata/quality-dimensions/minimal")
+ response = client.get("/metadata/quality-dimensions/completeness")
assert response.status_code == 200
content = response.json()
diff --git a/tests/integrationtests/api/test_metadata_topics.py b/tests/integrationtests/api/test_metadata_topics.py
index e743dc7fe..88778ba3b 100644
--- a/tests/integrationtests/api/test_metadata_topics.py
+++ b/tests/integrationtests/api/test_metadata_topics.py
@@ -1,6 +1,3 @@
-from ohsome_quality_api.topics.definitions import TopicEnum
-
-
def test_metadata_topic(
client,
response_template,
@@ -13,50 +10,6 @@ def test_metadata_topic(
result = content.pop("result")
assert content == response_template
assert metadata_topic_building_count["building-count"] == result["building-count"]
- assert "minimal" not in result
-
-
-def test_metadata_topic_project_core(
- client,
- response_template,
- metadata_topic_building_count,
-):
- response = client.get("/metadata/topics/?project=core")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert metadata_topic_building_count["building-count"] == result["building-count"]
- assert "minimal" not in result
-
-
-def test_metadata_topic_project_experimental(client, response_template):
- response = client.get("/metadata/topics/?project=experimental")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert content == response_template
- assert "building-count" not in result
- assert "minimal" not in result
-
-
-def test_project_all(
- client,
- response_template,
-):
- response = client.get("/metadata/topics/?project=all")
- assert response.status_code == 200
-
- content = response.json()
- result = content.pop("result")
- assert len(result) == len(TopicEnum)
-
-
-def test_metadata_topic_project_not_found_error(client):
- response = client.get("/metadata/topics/?project=foo")
- assert response.status_code == 422
def test_metadata_topic_by_key(
diff --git a/tests/integrationtests/api/test_response_models.py b/tests/integrationtests/api/test_response_models.py
index 6f9950b18..029149ad5 100644
--- a/tests/integrationtests/api/test_response_models.py
+++ b/tests/integrationtests/api/test_response_models.py
@@ -7,15 +7,15 @@
IndicatorGeoJSONResponse,
IndicatorJSONResponse,
)
-from ohsome_quality_api.indicators.minimal.indicator import Minimal
+from ohsome_quality_api.indicators.mapping_saturation.indicator import MappingSaturation
from tests.integrationtests.utils import oqapi_vcr
class TestIndicatorResponseModels:
@pytest.fixture(scope="class")
@oqapi_vcr.use_cassette
- def indicator(self, topic_minimal, feature_germany_heidelberg):
- indicator = Minimal(topic_minimal, feature_germany_heidelberg)
+ def indicator(self, topic_building_count, feature_germany_heidelberg):
+ indicator = MappingSaturation(topic_building_count, feature_germany_heidelberg)
asyncio.run(indicator.preprocess())
indicator.calculate()
indicator.create_figure()
diff --git a/tests/integrationtests/conftest.py b/tests/integrationtests/conftest.py
deleted file mode 100644
index 116e2d303..000000000
--- a/tests/integrationtests/conftest.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import pytest
-
-from tests.integrationtests.utils import get_geojson_fixture
-
-
-@pytest.fixture
-def europe():
- return get_geojson_fixture("europe.geojson")
diff --git a/tests/integrationtests/fixtures/vcr_cassettes/api/test_indicators.yaml b/tests/integrationtests/fixtures/vcr_cassettes/api/test_indicators.yaml
index 0b9c1fd9d..092e0eec8 100644
--- a/tests/integrationtests/fixtures/vcr_cassettes/api/test_indicators.yaml
+++ b/tests/integrationtests/fixtures/vcr_cassettes/api/test_indicators.yaml
@@ -1701,4 +1701,181 @@ interactions:
status:
code: 200
message: OK
+- request:
+ body: ''
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: GET
+ uri: https://ohsome-api.heigitk8s.de/metadata
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"temporalExtent\":{\"start\":\"2007-10-08T00:00:00Z\",\"end\":\"2026-08-18T09:35:01Z\"}}"
+ headers:
+ content-length:
+ - '196'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 09:35:55 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: ''
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: GET
+ uri: https://ohsome-api.heigitk8s.de/metadata
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"temporalExtent\":{\"start\":\"2007-10-08T00:00:00Z\",\"end\":\"2026-08-18T09:35:01Z\"}}"
+ headers:
+ content-length:
+ - '196'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 09:35:55 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.670231,49.405537],[8.676274,49.40322],[8.679977,49.401302],[8.677606,49.400029],[8.675503,49.398956],[8.673028,49.39762],[8.673993,49.397162],[8.67519,49.396593],[8.677237,49.395547],[8.678009,49.395158],[8.679476,49.394736],[8.680709,49.394507],[8.681877,49.394459],[8.683035,49.394452],[8.684498,49.394724],[8.685867,49.395161],[8.6868,49.395618],[8.687121,49.395813],[8.688811,49.397352],[8.688818,49.398172],[8.688821,49.398557],[8.69078,49.398786],[8.691904,49.397883],[8.693082,49.397612],[8.694151,49.397277],[8.694371,49.396897],[8.69535,49.396645],[8.697794,49.396595],[8.698,49.397244],[8.697383,49.397369],[8.69755,49.397912],[8.697462,49.398931],[8.69804,49.399857],[8.697702,49.40023],[8.697911,49.400589],[8.697249,49.40193],[8.697251,49.402692],[8.698847,49.404381],[8.698289,49.404777],[8.696815,49.404328],[8.696045,49.404998],[8.69498,49.405405],[8.694901,49.405606],[8.695544,49.406012],[8.695469,49.406699],[8.694151,49.406813],[8.694012,49.407422],[8.690952,49.406788],[8.686198,49.405954],[8.68525,49.405729],[8.683802,49.405287],[8.682522,49.405074],[8.681117,49.404832],[8.679435,49.404443],[8.67815,49.404317],[8.6771,49.40437],[8.670667,49.405696],[8.670231,49.405537]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '1374'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2008-08-21T00:00:00Z\",\"2008-09-21T00:00:00Z\",\"2008-10-21T00:00:00Z\",\"2008-11-21T00:00:00Z\",\"2008-12-21T00:00:00Z\",\"2009-01-21T00:00:00Z\",\"2009-02-21T00:00:00Z\",\"2009-03-21T00:00:00Z\",\"2009-04-21T00:00:00Z\",\"2009-05-21T00:00:00Z\",\"2009-06-21T00:00:00Z\",\"2009-07-21T00:00:00Z\",\"2009-08-21T00:00:00Z\",\"2009-09-21T00:00:00Z\",\"2009-10-21T00:00:00Z\",\"2009-11-21T00:00:00Z\",\"2009-12-21T00:00:00Z\",\"2010-01-21T00:00:00Z\",\"2010-02-21T00:00:00Z\",\"2010-03-21T00:00:00Z\",\"2010-04-21T00:00:00Z\",\"2010-05-21T00:00:00Z\",\"2010-06-21T00:00:00Z\",\"2010-07-21T00:00:00Z\",\"2010-08-21T00:00:00Z\",\"2010-09-21T00:00:00Z\",\"2010-10-21T00:00:00Z\",\"2010-11-21T00:00:00Z\",\"2010-12-21T00:00:00Z\",\"2011-01-21T00:00:00Z\",\"2011-02-21T00:00:00Z\",\"2011-03-21T00:00:00Z\",\"2011-04-21T00:00:00Z\",\"2011-05-21T00:00:00Z\",\"2011-06-21T00:00:00Z\",\"2011-07-21T00:00:00Z\",\"2011-08-21T00:00:00Z\",\"2011-09-21T00:00:00Z\",\"2011-10-21T00:00:00Z\",\"2011-11-21T00:00:00Z\",\"2011-12-21T00:00:00Z\",\"2012-01-21T00:00:00Z\",\"2012-02-21T00:00:00Z\",\"2012-03-21T00:00:00Z\",\"2012-04-21T00:00:00Z\",\"2012-05-21T00:00:00Z\",\"2012-06-21T00:00:00Z\",\"2012-07-21T00:00:00Z\",\"2012-08-21T00:00:00Z\",\"2012-09-21T00:00:00Z\",\"2012-10-21T00:00:00Z\",\"2012-11-21T00:00:00Z\",\"2012-12-21T00:00:00Z\",\"2013-01-21T00:00:00Z\",\"2013-02-21T00:00:00Z\",\"2013-03-21T00:00:00Z\",\"2013-04-21T00:00:00Z\",\"2013-05-21T00:00:00Z\",\"2013-06-21T00:00:00Z\",\"2013-07-21T00:00:00Z\",\"2013-08-21T00:00:00Z\",\"2013-09-21T00:00:00Z\",\"2013-10-21T00:00:00Z\",\"2013-11-21T00:00:00Z\",\"2013-12-21T00:00:00Z\",\"2014-01-21T00:00:00Z\",\"2014-02-21T00:00:00Z\",\"2014-03-21T00:00:00Z\",\"2014-04-21T00:00:00Z\",\"2014-05-21T00:00:00Z\",\"2014-06-21T00:00:00Z\",\"2014-07-21T00:00:00Z\",\"2014-08-21T00:00:00Z\",\"2014-09-21T00:00:00Z\",\"2014-10-21T00:00:00Z\",\"2014-11-21T00:00:00Z\",\"2014-12-21T00:00:00Z\",\"2015-01-21T00:00:00Z\",\"2015-02-21T00:00:00Z\",\"2015-03-21T00:00:00Z\",\"2015-04-21T00:00:00Z\",\"2015-05-21T00:00:00Z\",\"2015-06-21T00:00:00Z\",\"2015-07-21T00:00:00Z\",\"2015-08-21T00:00:00Z\",\"2015-09-21T00:00:00Z\",\"2015-10-21T00:00:00Z\",\"2015-11-21T00:00:00Z\",\"2015-12-21T00:00:00Z\",\"2016-01-21T00:00:00Z\",\"2016-02-21T00:00:00Z\",\"2016-03-21T00:00:00Z\",\"2016-04-21T00:00:00Z\",\"2016-05-21T00:00:00Z\",\"2016-06-21T00:00:00Z\",\"2016-07-21T00:00:00Z\",\"2016-08-21T00:00:00Z\",\"2016-09-21T00:00:00Z\",\"2016-10-21T00:00:00Z\",\"2016-11-21T00:00:00Z\",\"2016-12-21T00:00:00Z\",\"2017-01-21T00:00:00Z\",\"2017-02-21T00:00:00Z\",\"2017-03-21T00:00:00Z\",\"2017-04-21T00:00:00Z\",\"2017-05-21T00:00:00Z\",\"2017-06-21T00:00:00Z\",\"2017-07-21T00:00:00Z\",\"2017-08-21T00:00:00Z\",\"2017-09-21T00:00:00Z\",\"2017-10-21T00:00:00Z\",\"2017-11-21T00:00:00Z\",\"2017-12-21T00:00:00Z\",\"2018-01-21T00:00:00Z\",\"2018-02-21T00:00:00Z\",\"2018-03-21T00:00:00Z\",\"2018-04-21T00:00:00Z\",\"2018-05-21T00:00:00Z\",\"2018-06-21T00:00:00Z\",\"2018-07-21T00:00:00Z\",\"2018-08-21T00:00:00Z\",\"2018-09-21T00:00:00Z\",\"2018-10-21T00:00:00Z\",\"2018-11-21T00:00:00Z\",\"2018-12-21T00:00:00Z\",\"2019-01-21T00:00:00Z\",\"2019-02-21T00:00:00Z\",\"2019-03-21T00:00:00Z\",\"2019-04-21T00:00:00Z\",\"2019-05-21T00:00:00Z\",\"2019-06-21T00:00:00Z\",\"2019-07-21T00:00:00Z\",\"2019-08-21T00:00:00Z\",\"2019-09-21T00:00:00Z\",\"2019-10-21T00:00:00Z\",\"2019-11-21T00:00:00Z\",\"2019-12-21T00:00:00Z\",\"2020-01-21T00:00:00Z\",\"2020-02-21T00:00:00Z\",\"2020-03-21T00:00:00Z\",\"2020-04-21T00:00:00Z\",\"2020-05-21T00:00:00Z\",\"2020-06-21T00:00:00Z\",\"2020-07-21T00:00:00Z\",\"2020-08-21T00:00:00Z\",\"2020-09-21T00:00:00Z\",\"2020-10-21T00:00:00Z\",\"2020-11-21T00:00:00Z\",\"2020-12-21T00:00:00Z\",\"2021-01-21T00:00:00Z\",\"2021-02-21T00:00:00Z\",\"2021-03-21T00:00:00Z\",\"2021-04-21T00:00:00Z\",\"2021-05-21T00:00:00Z\",\"2021-06-21T00:00:00Z\",\"2021-07-21T00:00:00Z\",\"2021-08-21T00:00:00Z\",\"2021-09-21T00:00:00Z\",\"2021-10-21T00:00:00Z\",\"2021-11-21T00:00:00Z\",\"2021-12-21T00:00:00Z\",\"2022-01-21T00:00:00Z\",\"2022-02-21T00:00:00Z\",\"2022-03-21T00:00:00Z\",\"2022-04-21T00:00:00Z\",\"2022-05-21T00:00:00Z\",\"2022-06-21T00:00:00Z\",\"2022-07-21T00:00:00Z\",\"2022-08-21T00:00:00Z\",\"2022-09-21T00:00:00Z\",\"2022-10-21T00:00:00Z\",\"2022-11-21T00:00:00Z\",\"2022-12-21T00:00:00Z\",\"2023-01-21T00:00:00Z\",\"2023-02-21T00:00:00Z\",\"2023-03-21T00:00:00Z\",\"2023-04-21T00:00:00Z\",\"2023-05-21T00:00:00Z\",\"2023-06-21T00:00:00Z\",\"2023-07-21T00:00:00Z\",\"2023-08-21T00:00:00Z\",\"2023-09-21T00:00:00Z\",\"2023-10-21T00:00:00Z\",\"2023-11-21T00:00:00Z\",\"2023-12-21T00:00:00Z\",\"2024-01-21T00:00:00Z\",\"2024-02-21T00:00:00Z\",\"2024-03-21T00:00:00Z\",\"2024-04-21T00:00:00Z\",\"2024-05-21T00:00:00Z\",\"2024-06-21T00:00:00Z\",\"2024-07-21T00:00:00Z\",\"2024-08-21T00:00:00Z\",\"2024-09-21T00:00:00Z\",\"2024-10-21T00:00:00Z\",\"2024-11-21T00:00:00Z\",\"2024-12-21T00:00:00Z\",\"2025-01-21T00:00:00Z\",\"2025-02-21T00:00:00Z\",\"2025-03-21T00:00:00Z\",\"2025-04-21T00:00:00Z\",\"2025-05-21T00:00:00Z\",\"2025-06-21T00:00:00Z\",\"2025-07-21T00:00:00Z\",\"2025-08-21T00:00:00Z\",\"2025-09-21T00:00:00Z\",\"2025-10-21T00:00:00Z\",\"2025-11-21T00:00:00Z\",\"2025-12-21T00:00:00Z\",\"2026-01-21T00:00:00Z\",\"2026-02-21T00:00:00Z\",\"2026-03-21T00:00:00Z\",\"2026-04-21T00:00:00Z\",\"2026-05-21T00:00:00Z\",\"2026-06-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[2,2,3,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,9,9,9,85,518,518,519,584,592,594,624,627,630,637,637,658,661,686,686,682,682,687,744,745,749,749,757,757,757,758,758,762,791,795,842,847,852,876,921,955,955,955,955,963,999,1000,1002,1041,1042,1082,1128,1130,1151,1149,1149,1149,1151,1153,1153,1168,1170,1174,1168,1190,1194,1206,1206,1337,1343,1343,1343,1349,1358,1358,1358,1359,1358,1358,1359,1358,1367,1397,1397,1398,1400,1400,1404,1405,1405,1543,1543,1543,1547,1547,1547,1547,1547,1548,1550,1553,1553,1553,1557,1558,1558,1558,1558,1558,1560,1562,1563,1561,1561,1564,1564,1564,1564,1566,1566,1566,1566,1566,1567,1566,1566,1573,1576,1575,1576,1576,1576,1576,1576,1575,1575,1575,1575,1575,1576,1578,1576,1569,1567,1567,1567,1567,1567,1567,1567,1567,1571,1571,1571,1571,1571,1569,1569,1570,1568,1569,1570,1570,1570,1570,1570,1570,1574,1572,1574,1714,1713,1706,1707,1707,1710,1711,1711,1707,1707,1712,1712,1710,1711,1710,1713,1705,1705,1706,1614,1614,1614]}}"
+ headers:
+ content-length:
+ - '6098'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 09:35:55 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.656512,49.411047],[8.658857,49.410217],[8.662864,49.408734],[8.662656,49.407493],[8.66543,49.406804],[8.66702,49.406341],[8.669404,49.405746],[8.670231,49.405537],[8.670667,49.405696],[8.6771,49.40437],[8.67815,49.404317],[8.679435,49.404443],[8.681117,49.404832],[8.682522,49.405074],[8.683802,49.405287],[8.68525,49.405729],[8.686198,49.405954],[8.690952,49.406788],[8.694012,49.407422],[8.69333,49.409643],[8.692388,49.411912],[8.690156,49.411761],[8.686451,49.411243],[8.68244,49.410751],[8.679021,49.410418],[8.676393,49.410229],[8.672043,49.410311],[8.667241,49.410724],[8.664269,49.411243],[8.661813,49.411766],[8.659763,49.411702],[8.658441,49.411733],[8.656567,49.412318],[8.656542,49.411595],[8.656512,49.411047]]]},"timeSeries":{"start":"2008-08-18","end":"2026-08-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '902'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-08-18T00:00:00Z\",\"2008-09-18T00:00:00Z\",\"2008-10-18T00:00:00Z\",\"2008-11-18T00:00:00Z\",\"2008-12-18T00:00:00Z\",\"2009-01-18T00:00:00Z\",\"2009-02-18T00:00:00Z\",\"2009-03-18T00:00:00Z\",\"2009-04-18T00:00:00Z\",\"2009-05-18T00:00:00Z\",\"2009-06-18T00:00:00Z\",\"2009-07-18T00:00:00Z\",\"2009-08-18T00:00:00Z\",\"2009-09-18T00:00:00Z\",\"2009-10-18T00:00:00Z\",\"2009-11-18T00:00:00Z\",\"2009-12-18T00:00:00Z\",\"2010-01-18T00:00:00Z\",\"2010-02-18T00:00:00Z\",\"2010-03-18T00:00:00Z\",\"2010-04-18T00:00:00Z\",\"2010-05-18T00:00:00Z\",\"2010-06-18T00:00:00Z\",\"2010-07-18T00:00:00Z\",\"2010-08-18T00:00:00Z\",\"2010-09-18T00:00:00Z\",\"2010-10-18T00:00:00Z\",\"2010-11-18T00:00:00Z\",\"2010-12-18T00:00:00Z\",\"2011-01-18T00:00:00Z\",\"2011-02-18T00:00:00Z\",\"2011-03-18T00:00:00Z\",\"2011-04-18T00:00:00Z\",\"2011-05-18T00:00:00Z\",\"2011-06-18T00:00:00Z\",\"2011-07-18T00:00:00Z\",\"2011-08-18T00:00:00Z\",\"2011-09-18T00:00:00Z\",\"2011-10-18T00:00:00Z\",\"2011-11-18T00:00:00Z\",\"2011-12-18T00:00:00Z\",\"2012-01-18T00:00:00Z\",\"2012-02-18T00:00:00Z\",\"2012-03-18T00:00:00Z\",\"2012-04-18T00:00:00Z\",\"2012-05-18T00:00:00Z\",\"2012-06-18T00:00:00Z\",\"2012-07-18T00:00:00Z\",\"2012-08-18T00:00:00Z\",\"2012-09-18T00:00:00Z\",\"2012-10-18T00:00:00Z\",\"2012-11-18T00:00:00Z\",\"2012-12-18T00:00:00Z\",\"2013-01-18T00:00:00Z\",\"2013-02-18T00:00:00Z\",\"2013-03-18T00:00:00Z\",\"2013-04-18T00:00:00Z\",\"2013-05-18T00:00:00Z\",\"2013-06-18T00:00:00Z\",\"2013-07-18T00:00:00Z\",\"2013-08-18T00:00:00Z\",\"2013-09-18T00:00:00Z\",\"2013-10-18T00:00:00Z\",\"2013-11-18T00:00:00Z\",\"2013-12-18T00:00:00Z\",\"2014-01-18T00:00:00Z\",\"2014-02-18T00:00:00Z\",\"2014-03-18T00:00:00Z\",\"2014-04-18T00:00:00Z\",\"2014-05-18T00:00:00Z\",\"2014-06-18T00:00:00Z\",\"2014-07-18T00:00:00Z\",\"2014-08-18T00:00:00Z\",\"2014-09-18T00:00:00Z\",\"2014-10-18T00:00:00Z\",\"2014-11-18T00:00:00Z\",\"2014-12-18T00:00:00Z\",\"2015-01-18T00:00:00Z\",\"2015-02-18T00:00:00Z\",\"2015-03-18T00:00:00Z\",\"2015-04-18T00:00:00Z\",\"2015-05-18T00:00:00Z\",\"2015-06-18T00:00:00Z\",\"2015-07-18T00:00:00Z\",\"2015-08-18T00:00:00Z\",\"2015-09-18T00:00:00Z\",\"2015-10-18T00:00:00Z\",\"2015-11-18T00:00:00Z\",\"2015-12-18T00:00:00Z\",\"2016-01-18T00:00:00Z\",\"2016-02-18T00:00:00Z\",\"2016-03-18T00:00:00Z\",\"2016-04-18T00:00:00Z\",\"2016-05-18T00:00:00Z\",\"2016-06-18T00:00:00Z\",\"2016-07-18T00:00:00Z\",\"2016-08-18T00:00:00Z\",\"2016-09-18T00:00:00Z\",\"2016-10-18T00:00:00Z\",\"2016-11-18T00:00:00Z\",\"2016-12-18T00:00:00Z\",\"2017-01-18T00:00:00Z\",\"2017-02-18T00:00:00Z\",\"2017-03-18T00:00:00Z\",\"2017-04-18T00:00:00Z\",\"2017-05-18T00:00:00Z\",\"2017-06-18T00:00:00Z\",\"2017-07-18T00:00:00Z\",\"2017-08-18T00:00:00Z\",\"2017-09-18T00:00:00Z\",\"2017-10-18T00:00:00Z\",\"2017-11-18T00:00:00Z\",\"2017-12-18T00:00:00Z\",\"2018-01-18T00:00:00Z\",\"2018-02-18T00:00:00Z\",\"2018-03-18T00:00:00Z\",\"2018-04-18T00:00:00Z\",\"2018-05-18T00:00:00Z\",\"2018-06-18T00:00:00Z\",\"2018-07-18T00:00:00Z\",\"2018-08-18T00:00:00Z\",\"2018-09-18T00:00:00Z\",\"2018-10-18T00:00:00Z\",\"2018-11-18T00:00:00Z\",\"2018-12-18T00:00:00Z\",\"2019-01-18T00:00:00Z\",\"2019-02-18T00:00:00Z\",\"2019-03-18T00:00:00Z\",\"2019-04-18T00:00:00Z\",\"2019-05-18T00:00:00Z\",\"2019-06-18T00:00:00Z\",\"2019-07-18T00:00:00Z\",\"2019-08-18T00:00:00Z\",\"2019-09-18T00:00:00Z\",\"2019-10-18T00:00:00Z\",\"2019-11-18T00:00:00Z\",\"2019-12-18T00:00:00Z\",\"2020-01-18T00:00:00Z\",\"2020-02-18T00:00:00Z\",\"2020-03-18T00:00:00Z\",\"2020-04-18T00:00:00Z\",\"2020-05-18T00:00:00Z\",\"2020-06-18T00:00:00Z\",\"2020-07-18T00:00:00Z\",\"2020-08-18T00:00:00Z\",\"2020-09-18T00:00:00Z\",\"2020-10-18T00:00:00Z\",\"2020-11-18T00:00:00Z\",\"2020-12-18T00:00:00Z\",\"2021-01-18T00:00:00Z\",\"2021-02-18T00:00:00Z\",\"2021-03-18T00:00:00Z\",\"2021-04-18T00:00:00Z\",\"2021-05-18T00:00:00Z\",\"2021-06-18T00:00:00Z\",\"2021-07-18T00:00:00Z\",\"2021-08-18T00:00:00Z\",\"2021-09-18T00:00:00Z\",\"2021-10-18T00:00:00Z\",\"2021-11-18T00:00:00Z\",\"2021-12-18T00:00:00Z\",\"2022-01-18T00:00:00Z\",\"2022-02-18T00:00:00Z\",\"2022-03-18T00:00:00Z\",\"2022-04-18T00:00:00Z\",\"2022-05-18T00:00:00Z\",\"2022-06-18T00:00:00Z\",\"2022-07-18T00:00:00Z\",\"2022-08-18T00:00:00Z\",\"2022-09-18T00:00:00Z\",\"2022-10-18T00:00:00Z\",\"2022-11-18T00:00:00Z\",\"2022-12-18T00:00:00Z\",\"2023-01-18T00:00:00Z\",\"2023-02-18T00:00:00Z\",\"2023-03-18T00:00:00Z\",\"2023-04-18T00:00:00Z\",\"2023-05-18T00:00:00Z\",\"2023-06-18T00:00:00Z\",\"2023-07-18T00:00:00Z\",\"2023-08-18T00:00:00Z\",\"2023-09-18T00:00:00Z\",\"2023-10-18T00:00:00Z\",\"2023-11-18T00:00:00Z\",\"2023-12-18T00:00:00Z\",\"2024-01-18T00:00:00Z\",\"2024-02-18T00:00:00Z\",\"2024-03-18T00:00:00Z\",\"2024-04-18T00:00:00Z\",\"2024-05-18T00:00:00Z\",\"2024-06-18T00:00:00Z\",\"2024-07-18T00:00:00Z\",\"2024-08-18T00:00:00Z\",\"2024-09-18T00:00:00Z\",\"2024-10-18T00:00:00Z\",\"2024-11-18T00:00:00Z\",\"2024-12-18T00:00:00Z\",\"2025-01-18T00:00:00Z\",\"2025-02-18T00:00:00Z\",\"2025-03-18T00:00:00Z\",\"2025-04-18T00:00:00Z\",\"2025-05-18T00:00:00Z\",\"2025-06-18T00:00:00Z\",\"2025-07-18T00:00:00Z\",\"2025-08-18T00:00:00Z\",\"2025-09-18T00:00:00Z\",\"2025-10-18T00:00:00Z\",\"2025-11-18T00:00:00Z\",\"2025-12-18T00:00:00Z\",\"2026-01-18T00:00:00Z\",\"2026-02-18T00:00:00Z\",\"2026-03-18T00:00:00Z\",\"2026-04-18T00:00:00Z\",\"2026-05-18T00:00:00Z\",\"2026-06-18T00:00:00Z\",\"2026-07-18T00:00:00Z\",\"2026-08-01T00:00:00Z\"],\"value\":[0,10,14,14,14,14,14,14,14,14,68,70,71,71,71,73,73,76,76,75,75,75,75,75,75,75,75,75,119,224,305,305,310,310,407,412,413,413,413,413,428,428,428,429,429,436,438,437,442,442,444,450,450,451,451,466,466,473,473,503,524,525,531,532,532,622,622,625,628,635,636,683,683,683,683,685,685,681,670,684,688,703,703,703,715,717,718,718,755,755,755,810,810,810,810,811,813,813,813,813,814,837,838,840,843,843,843,843,845,845,848,850,854,863,938,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,937,937,936,937,936,936,936,937,937,937,938,938,938,938,938,937,932,932,932,932,932,933,933,933,933,933,933,930,930,931,932,932,932,932,930,930,930,933,932,932,932,932,934,935,935,935,930,930,929,929,929,929,929,930,930,930,934,937,938,936,936,937,937,936,936,936,936,936,937,937,938,943,943,944,945,946,949,950,950,954,958,958,958,958]}}"
+ headers:
+ content-length:
+ - '5982'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 09:35:55 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.641543,49.411303],[8.652386,49.407391],[8.652606,49.407365],[8.653961,49.407038],[8.6543,49.406824],[8.655838,49.40599],[8.660063,49.403751],[8.661088,49.40313],[8.66298,49.402053],[8.66549,49.400802],[8.667152,49.396417],[8.670565,49.39681],[8.670855,49.396698],[8.671368,49.396856],[8.673028,49.39762],[8.675503,49.398956],[8.677606,49.400029],[8.679977,49.401302],[8.676274,49.40322],[8.670231,49.405537],[8.669404,49.405746],[8.66702,49.406341],[8.66543,49.406804],[8.662656,49.407493],[8.661319,49.407781],[8.658739,49.40786],[8.656667,49.408231],[8.654373,49.408573],[8.654423,49.40888],[8.653848,49.408895],[8.653874,49.409122],[8.651656,49.409181],[8.649858,49.409274],[8.647838,49.409498],[8.646082,49.409998],[8.64557,49.409982],[8.642225,49.411332],[8.641543,49.411303]]]},"timeSeries":{"start":"2008-08-18","end":"2026-08-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '960'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-08-18T00:00:00Z\",\"2008-09-18T00:00:00Z\",\"2008-10-18T00:00:00Z\",\"2008-11-18T00:00:00Z\",\"2008-12-18T00:00:00Z\",\"2009-01-18T00:00:00Z\",\"2009-02-18T00:00:00Z\",\"2009-03-18T00:00:00Z\",\"2009-04-18T00:00:00Z\",\"2009-05-18T00:00:00Z\",\"2009-06-18T00:00:00Z\",\"2009-07-18T00:00:00Z\",\"2009-08-18T00:00:00Z\",\"2009-09-18T00:00:00Z\",\"2009-10-18T00:00:00Z\",\"2009-11-18T00:00:00Z\",\"2009-12-18T00:00:00Z\",\"2010-01-18T00:00:00Z\",\"2010-02-18T00:00:00Z\",\"2010-03-18T00:00:00Z\",\"2010-04-18T00:00:00Z\",\"2010-05-18T00:00:00Z\",\"2010-06-18T00:00:00Z\",\"2010-07-18T00:00:00Z\",\"2010-08-18T00:00:00Z\",\"2010-09-18T00:00:00Z\",\"2010-10-18T00:00:00Z\",\"2010-11-18T00:00:00Z\",\"2010-12-18T00:00:00Z\",\"2011-01-18T00:00:00Z\",\"2011-02-18T00:00:00Z\",\"2011-03-18T00:00:00Z\",\"2011-04-18T00:00:00Z\",\"2011-05-18T00:00:00Z\",\"2011-06-18T00:00:00Z\",\"2011-07-18T00:00:00Z\",\"2011-08-18T00:00:00Z\",\"2011-09-18T00:00:00Z\",\"2011-10-18T00:00:00Z\",\"2011-11-18T00:00:00Z\",\"2011-12-18T00:00:00Z\",\"2012-01-18T00:00:00Z\",\"2012-02-18T00:00:00Z\",\"2012-03-18T00:00:00Z\",\"2012-04-18T00:00:00Z\",\"2012-05-18T00:00:00Z\",\"2012-06-18T00:00:00Z\",\"2012-07-18T00:00:00Z\",\"2012-08-18T00:00:00Z\",\"2012-09-18T00:00:00Z\",\"2012-10-18T00:00:00Z\",\"2012-11-18T00:00:00Z\",\"2012-12-18T00:00:00Z\",\"2013-01-18T00:00:00Z\",\"2013-02-18T00:00:00Z\",\"2013-03-18T00:00:00Z\",\"2013-04-18T00:00:00Z\",\"2013-05-18T00:00:00Z\",\"2013-06-18T00:00:00Z\",\"2013-07-18T00:00:00Z\",\"2013-08-18T00:00:00Z\",\"2013-09-18T00:00:00Z\",\"2013-10-18T00:00:00Z\",\"2013-11-18T00:00:00Z\",\"2013-12-18T00:00:00Z\",\"2014-01-18T00:00:00Z\",\"2014-02-18T00:00:00Z\",\"2014-03-18T00:00:00Z\",\"2014-04-18T00:00:00Z\",\"2014-05-18T00:00:00Z\",\"2014-06-18T00:00:00Z\",\"2014-07-18T00:00:00Z\",\"2014-08-18T00:00:00Z\",\"2014-09-18T00:00:00Z\",\"2014-10-18T00:00:00Z\",\"2014-11-18T00:00:00Z\",\"2014-12-18T00:00:00Z\",\"2015-01-18T00:00:00Z\",\"2015-02-18T00:00:00Z\",\"2015-03-18T00:00:00Z\",\"2015-04-18T00:00:00Z\",\"2015-05-18T00:00:00Z\",\"2015-06-18T00:00:00Z\",\"2015-07-18T00:00:00Z\",\"2015-08-18T00:00:00Z\",\"2015-09-18T00:00:00Z\",\"2015-10-18T00:00:00Z\",\"2015-11-18T00:00:00Z\",\"2015-12-18T00:00:00Z\",\"2016-01-18T00:00:00Z\",\"2016-02-18T00:00:00Z\",\"2016-03-18T00:00:00Z\",\"2016-04-18T00:00:00Z\",\"2016-05-18T00:00:00Z\",\"2016-06-18T00:00:00Z\",\"2016-07-18T00:00:00Z\",\"2016-08-18T00:00:00Z\",\"2016-09-18T00:00:00Z\",\"2016-10-18T00:00:00Z\",\"2016-11-18T00:00:00Z\",\"2016-12-18T00:00:00Z\",\"2017-01-18T00:00:00Z\",\"2017-02-18T00:00:00Z\",\"2017-03-18T00:00:00Z\",\"2017-04-18T00:00:00Z\",\"2017-05-18T00:00:00Z\",\"2017-06-18T00:00:00Z\",\"2017-07-18T00:00:00Z\",\"2017-08-18T00:00:00Z\",\"2017-09-18T00:00:00Z\",\"2017-10-18T00:00:00Z\",\"2017-11-18T00:00:00Z\",\"2017-12-18T00:00:00Z\",\"2018-01-18T00:00:00Z\",\"2018-02-18T00:00:00Z\",\"2018-03-18T00:00:00Z\",\"2018-04-18T00:00:00Z\",\"2018-05-18T00:00:00Z\",\"2018-06-18T00:00:00Z\",\"2018-07-18T00:00:00Z\",\"2018-08-18T00:00:00Z\",\"2018-09-18T00:00:00Z\",\"2018-10-18T00:00:00Z\",\"2018-11-18T00:00:00Z\",\"2018-12-18T00:00:00Z\",\"2019-01-18T00:00:00Z\",\"2019-02-18T00:00:00Z\",\"2019-03-18T00:00:00Z\",\"2019-04-18T00:00:00Z\",\"2019-05-18T00:00:00Z\",\"2019-06-18T00:00:00Z\",\"2019-07-18T00:00:00Z\",\"2019-08-18T00:00:00Z\",\"2019-09-18T00:00:00Z\",\"2019-10-18T00:00:00Z\",\"2019-11-18T00:00:00Z\",\"2019-12-18T00:00:00Z\",\"2020-01-18T00:00:00Z\",\"2020-02-18T00:00:00Z\",\"2020-03-18T00:00:00Z\",\"2020-04-18T00:00:00Z\",\"2020-05-18T00:00:00Z\",\"2020-06-18T00:00:00Z\",\"2020-07-18T00:00:00Z\",\"2020-08-18T00:00:00Z\",\"2020-09-18T00:00:00Z\",\"2020-10-18T00:00:00Z\",\"2020-11-18T00:00:00Z\",\"2020-12-18T00:00:00Z\",\"2021-01-18T00:00:00Z\",\"2021-02-18T00:00:00Z\",\"2021-03-18T00:00:00Z\",\"2021-04-18T00:00:00Z\",\"2021-05-18T00:00:00Z\",\"2021-06-18T00:00:00Z\",\"2021-07-18T00:00:00Z\",\"2021-08-18T00:00:00Z\",\"2021-09-18T00:00:00Z\",\"2021-10-18T00:00:00Z\",\"2021-11-18T00:00:00Z\",\"2021-12-18T00:00:00Z\",\"2022-01-18T00:00:00Z\",\"2022-02-18T00:00:00Z\",\"2022-03-18T00:00:00Z\",\"2022-04-18T00:00:00Z\",\"2022-05-18T00:00:00Z\",\"2022-06-18T00:00:00Z\",\"2022-07-18T00:00:00Z\",\"2022-08-18T00:00:00Z\",\"2022-09-18T00:00:00Z\",\"2022-10-18T00:00:00Z\",\"2022-11-18T00:00:00Z\",\"2022-12-18T00:00:00Z\",\"2023-01-18T00:00:00Z\",\"2023-02-18T00:00:00Z\",\"2023-03-18T00:00:00Z\",\"2023-04-18T00:00:00Z\",\"2023-05-18T00:00:00Z\",\"2023-06-18T00:00:00Z\",\"2023-07-18T00:00:00Z\",\"2023-08-18T00:00:00Z\",\"2023-09-18T00:00:00Z\",\"2023-10-18T00:00:00Z\",\"2023-11-18T00:00:00Z\",\"2023-12-18T00:00:00Z\",\"2024-01-18T00:00:00Z\",\"2024-02-18T00:00:00Z\",\"2024-03-18T00:00:00Z\",\"2024-04-18T00:00:00Z\",\"2024-05-18T00:00:00Z\",\"2024-06-18T00:00:00Z\",\"2024-07-18T00:00:00Z\",\"2024-08-18T00:00:00Z\",\"2024-09-18T00:00:00Z\",\"2024-10-18T00:00:00Z\",\"2024-11-18T00:00:00Z\",\"2024-12-18T00:00:00Z\",\"2025-01-18T00:00:00Z\",\"2025-02-18T00:00:00Z\",\"2025-03-18T00:00:00Z\",\"2025-04-18T00:00:00Z\",\"2025-05-18T00:00:00Z\",\"2025-06-18T00:00:00Z\",\"2025-07-18T00:00:00Z\",\"2025-08-18T00:00:00Z\",\"2025-09-18T00:00:00Z\",\"2025-10-18T00:00:00Z\",\"2025-11-18T00:00:00Z\",\"2025-12-18T00:00:00Z\",\"2026-01-18T00:00:00Z\",\"2026-02-18T00:00:00Z\",\"2026-03-18T00:00:00Z\",\"2026-04-18T00:00:00Z\",\"2026-05-18T00:00:00Z\",\"2026-06-18T00:00:00Z\",\"2026-07-18T00:00:00Z\",\"2026-08-01T00:00:00Z\"],\"value\":[0,1,2,2,2,2,2,2,2,2,2,3,3,3,5,5,6,6,6,6,6,6,6,6,6,36,36,36,36,42,42,43,43,43,43,46,56,64,53,50,50,50,51,51,51,51,51,52,52,56,59,59,90,97,99,99,118,119,129,129,129,152,152,156,156,157,157,157,157,160,161,161,161,161,162,164,170,172,173,175,175,175,176,176,176,194,194,204,202,202,203,203,218,220,219,219,203,200,209,208,216,214,211,211,209,210,209,216,216,222,223,224,224,220,221,221,222,224,224,224,224,224,224,225,223,222,230,228,228,228,232,231,230,223,223,223,222,222,223,221,223,224,224,224,224,224,224,224,224,225,228,229,229,229,229,230,230,230,230,232,234,234,234,234,234,234,235,235,236,236,236,236,236,235,235,234,234,235,235,235,233,234,234,234,235,235,235,239,242,242,241,241,241,242,242,242,241,241,241,241,242,244,244,242,249,363,358,358,361,363,364,365,365,365,364,366,366]}}"
+ headers:
+ content-length:
+ - '5930'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 09:35:55 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
version: 1
diff --git a/tests/integrationtests/fixtures/vcr_cassettes/api/test_response_models.yaml b/tests/integrationtests/fixtures/vcr_cassettes/api/test_response_models.yaml
index 27b3baafd..62ec3eb0e 100644
--- a/tests/integrationtests/fixtures/vcr_cassettes/api/test_response_models.yaml
+++ b/tests/integrationtests/fixtures/vcr_cassettes/api/test_response_models.yaml
@@ -26,37 +26,107 @@ interactions:
bYal3aDjAZ7SOGn1BdD9F3kucim2sYwjON/Fstt6hXQPjlRvI1zIYreRRdA5Lyopg67rj6fqPMxU
KctyL+Q8yO7J9AMAAP//AwDDJg8K6AAAAA==
headers:
- Access-Control-Allow-Credentials:
+ access-control-allow-credentials:
- 'true'
- Access-Control-Allow-Headers:
+ access-control-allow-headers:
- Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization
- Access-Control-Allow-Methods:
+ access-control-allow-methods:
- POST, GET
- Access-Control-Allow-Origin:
+ access-control-allow-origin:
- '*'
- Access-Control-Max-Age:
+ access-control-max-age:
- '3600'
- Cache-Control:
+ cache-control:
- no-cache, no-store, must-revalidate
- Connection:
+ connection:
- Keep-Alive
- Content-Encoding:
+ content-encoding:
- gzip
- Content-Type:
+ content-type:
- application/json
- Date:
+ date:
- Wed, 26 Mar 2025 15:24:08 GMT
- Keep-Alive:
+ keep-alive:
- timeout=5, max=100
- Server:
+ server:
- Apache/2.4.58 (Ubuntu)
- Strict-Transport-Security:
+ strict-transport-security:
- max-age=63072000; includeSubdomains;
- Transfer-Encoding:
+ transfer-encoding:
- chunked
vary:
- accept-encoding
status:
code: 200
message: ''
+- request:
+ body: ''
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: GET
+ uri: https://ohsome-api.heigitk8s.de/metadata
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"temporalExtent\":{\"start\":\"2007-10-08T00:00:00Z\",\"end\":\"2026-08-18T10:17:36Z\"}}"
+ headers:
+ content-length:
+ - '196'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:18:49 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.573179,49.4236],[8.573244,49.423266],[8.573517,49.421746],[8.573602,49.421029],[8.57363,49.420766],[8.573618,49.420478],[8.573575,49.420208],[8.573487,49.419852],[8.573253,49.419103],[8.57328,49.418634],[8.573262,49.41846],[8.573244,49.418239],[8.573233,49.418026],[8.573211,49.417562],[8.573206,49.417217],[8.573223,49.416902],[8.573288,49.416518],[8.57343,49.415763],[8.573622,49.415734],[8.57398,49.414723],[8.574098,49.414422],[8.574905,49.412659],[8.575126,49.41262],[8.575952,49.412479],[8.576355,49.412403],[8.576806,49.412309],[8.577418,49.412162],[8.578871,49.411816],[8.580327,49.411477],[8.580548,49.411425],[8.581021,49.411314],[8.581467,49.411198],[8.582126,49.411021],[8.58281,49.410831],[8.583621,49.410604],[8.584256,49.41041],[8.584461,49.410598],[8.584601,49.41074],[8.58466,49.410809],[8.584729,49.410896],[8.584841,49.411043],[8.584893,49.411041],[8.590664,49.410551],[8.592504,49.410392],[8.59249,49.410325],[8.592557,49.410316],[8.592992,49.410285],[8.594295,49.410194],[8.595027,49.410131],[8.595718,49.41008],[8.596457,49.410013],[8.597109,49.409948],[8.597817,49.409869],[8.598479,49.409799],[8.59864,49.409784],[8.600522,49.409526],[8.603393,49.409127],[8.60354,49.409104],[8.603638,49.409079],[8.6052,49.408456],[8.608794,49.407045],[8.610673,49.405949],[8.611461,49.405467],[8.612437,49.406203],[8.616606,49.407383],[8.622553,49.409046],[8.622627,49.40901],[8.622648,49.408953],[8.62272,49.408975],[8.622722,49.408976],[8.622791,49.409015],[8.622851,49.409049],[8.623189,49.409236],[8.624498,49.409957],[8.62459,49.410009],[8.625101,49.410294],[8.625378,49.410448],[8.625911,49.410745],[8.626324,49.410975],[8.626979,49.411341],[8.628263,49.412032],[8.62859,49.412213],[8.629072,49.412486],[8.630034,49.413176],[8.630959,49.413833],[8.632078,49.414583],[8.632707,49.415007],[8.632748,49.415035],[8.632938,49.414961],[8.633025,49.414928],[8.633075,49.414807],[8.63406,49.412449],[8.634446,49.411487],[8.634737,49.410763],[8.635407,49.409092],[8.635873,49.407932],[8.636033,49.40753],[8.636136,49.407242],[8.636215,49.406957],[8.636379,49.406391],[8.636465,49.406041],[8.636591,49.405566],[8.636667,49.405073],[8.636706,49.404806],[8.636743,49.404552],[8.636827,49.403969],[8.6369,49.403462],[8.636926,49.403268],[8.637017,49.402596],[8.637222,49.401141],[8.63755,49.3988],[8.638008,49.395648],[8.638186,49.393813],[8.638295,49.39272],[8.638521,49.392746],[8.640722,49.393021],[8.64343,49.393381],[8.643512,49.393194],[8.643527,49.39316],[8.645535,49.390884],[8.64636,49.389866],[8.6475,49.388537],[8.645357,49.388044],[8.643807,49.387609],[8.642091,49.387149],[8.641038,49.386841],[8.639916,49.386498],[8.639667,49.386434],[8.639387,49.386413],[8.638662,49.386411],[8.638086,49.386573],[8.636604,49.38704],[8.634926,49.387313],[8.633683,49.387185],[8.633598,49.387174],[8.633542,49.386897],[8.633434,49.386227],[8.633401,49.385899],[8.633366,49.385891],[8.630199,49.385201],[8.629858,49.385107],[8.629436,49.384945],[8.628851,49.384706],[8.628366,49.384445],[8.627801,49.38413],[8.627122,49.383729],[8.62646,49.38335],[8.625986,49.383068],[8.625383,49.382699],[8.624878,49.382387],[8.624241,49.38199],[8.623785,49.381668],[8.624382,49.38067],[8.621112,49.380011],[8.620378,49.379843],[8.617932,49.379283],[8.616155,49.379158],[8.615294,49.378918],[8.614545,49.378758],[8.613751,49.378528],[8.612581,49.378202],[8.610866,49.378017],[8.610186,49.377919],[8.609757,49.37785],[8.609403,49.377756],[8.609066,49.377649],[8.608678,49.377505],[8.607916,49.37721],[8.607342,49.376972],[8.606882,49.376751],[8.60681,49.376163],[8.607222,49.374986],[8.607484,49.37429],[8.607333,49.373851],[8.606536,49.371886],[8.605798,49.370097],[8.605168,49.370272],[8.60321,49.368377],[8.601004,49.366203],[8.604393,49.365577],[8.604307,49.365419],[8.605479,49.365214],[8.605885,49.365159],[8.607155,49.365004],[8.607562,49.364962],[8.607787,49.364932],[8.608004,49.364857],[8.60823,49.364779],[8.608521,49.364676],[8.608763,49.364589],[8.608975,49.364526],[8.60924,49.364461],[8.609518,49.364418],[8.609797,49.364361],[8.610128,49.3643],[8.610354,49.364251],[8.610605,49.364179],[8.610995,49.364053],[8.611555,49.363849],[8.612129,49.363662],[8.613637,49.363103],[8.615444,49.362414],[8.61635,49.362058],[8.617043,49.361767],[8.617591,49.361529],[8.618237,49.361201],[8.618957,49.360849],[8.619443,49.360653],[8.619975,49.360461],[8.620625,49.360206],[8.621086,49.360044],[8.621364,49.359916],[8.621823,49.359713],[8.622089,49.35959],[8.622436,49.35947],[8.623627,49.359191],[8.624466,49.359063],[8.623282,49.35746],[8.623019,49.357581],[8.621335,49.355497],[8.620215,49.354073],[8.620484,49.354038],[8.620686,49.354007],[8.621085,49.353877],[8.623323,49.35288],[8.625019,49.352119],[8.62524,49.35203],[8.625625,49.352003],[8.627988,49.352082],[8.628566,49.352102],[8.629102,49.352103],[8.629641,49.352094],[8.630762,49.352065],[8.630787,49.352734],[8.631513,49.352774],[8.631909,49.352796],[8.632002,49.352809],[8.632227,49.352816],[8.632605,49.35284],[8.632903,49.352846],[8.633112,49.352836],[8.633234,49.352838],[8.633289,49.353939],[8.633355,49.355012],[8.633367,49.355489],[8.63355,49.355781],[8.633757,49.3561],[8.633974,49.356482],[8.634167,49.356808],[8.634287,49.357126],[8.634421,49.357445],[8.634503,49.357686],[8.634859,49.358095],[8.635396,49.358765],[8.636103,49.359671],[8.636657,49.360357],[8.636737,49.360538],[8.636888,49.361037],[8.637136,49.36199],[8.637264,49.362635],[8.637304,49.362804],[8.637443,49.363191],[8.637664,49.36361],[8.637986,49.364357],[8.638362,49.365323],[8.638797,49.36638],[8.639105,49.3671],[8.639672,49.368535],[8.640274,49.369977],[8.64095,49.36962],[8.642835,49.368655],[8.644035,49.369071],[8.644716,49.369324],[8.644987,49.369459],[8.645246,49.369621],[8.645609,49.369857],[8.645945,49.370086],[8.646206,49.370303],[8.646365,49.370464],[8.647363,49.369711],[8.647775,49.369395],[8.64813,49.369156],[8.648616,49.368856],[8.649147,49.368515],[8.649775,49.368118],[8.650491,49.367685],[8.650841,49.367478],[8.650529,49.366984],[8.650281,49.366573],[8.650115,49.36627],[8.649942,49.365978],[8.651691,49.364976],[8.651847,49.365094],[8.652197,49.364902],[8.652915,49.364549],[8.653519,49.364273],[8.654112,49.36402],[8.654768,49.363737],[8.655407,49.363473],[8.656377,49.363115],[8.657142,49.362813],[8.657764,49.363277],[8.658185,49.363054],[8.658651,49.362837],[8.659164,49.362571],[8.658051,49.361776],[8.657009,49.360179],[8.656454,49.35929],[8.655814,49.358138],[8.655354,49.357298],[8.654879,49.356558],[8.654787,49.35643],[8.654561,49.356112],[8.653362,49.356263],[8.652987,49.35577],[8.652544,49.355287],[8.652104,49.35458],[8.651277,49.353254],[8.651454,49.353204],[8.651636,49.353188],[8.65183,49.353191],[8.652046,49.353203],[8.652348,49.353246],[8.652615,49.353273],[8.652844,49.353279],[8.653124,49.353277],[8.653474,49.353258],[8.653742,49.353245],[8.654053,49.353215],[8.654541,49.353146],[8.655319,49.353021],[8.656788,49.352777],[8.657594,49.352635],[8.657702,49.352622],[8.657803,49.352609],[8.658004,49.352578],[8.658147,49.352565],[8.657938,49.35276],[8.657306,49.353303],[8.657404,49.353355],[8.656818,49.353732],[8.656362,49.354017],[8.656689,49.35436],[8.657243,49.355195],[8.658874,49.354938],[8.660099,49.354864],[8.660662,49.354831],[8.660554,49.35385],[8.661186,49.353988],[8.661529,49.354066],[8.662499,49.354314],[8.663203,49.354396],[8.663578,49.353585],[8.664184,49.353663],[8.665018,49.353769],[8.664862,49.354592],[8.664516,49.356424],[8.664343,49.35714],[8.664257,49.357496],[8.664523,49.357548],[8.664876,49.357593],[8.667029,49.35798],[8.66801,49.358065],[8.668543,49.358111],[8.668764,49.358127],[8.669807,49.358003],[8.671465,49.357805],[8.67168,49.357818],[8.671905,49.359187],[8.672189,49.360595],[8.672443,49.361521],[8.6742,49.361218],[8.675834,49.360668],[8.675955,49.360221],[8.677248,49.360356],[8.678227,49.360428],[8.67875,49.360442],[8.679817,49.360427],[8.679921,49.360425],[8.682084,49.360389],[8.682014,49.359907],[8.684247,49.359817],[8.684378,49.359781],[8.68706,49.359824],[8.687067,49.35976],[8.687186,49.359138],[8.687237,49.35886],[8.689029,49.3589],[8.689213,49.358942],[8.690288,49.358929],[8.690684,49.358899],[8.691469,49.358787],[8.691399,49.358492],[8.692384,49.358415],[8.692438,49.358513],[8.692875,49.358386],[8.692904,49.358507],[8.693627,49.358371],[8.693654,49.35848],[8.694136,49.358357],[8.694369,49.358679],[8.69466,49.358603],[8.694621,49.358537],[8.694444,49.358239],[8.6964,49.357749],[8.696686,49.357789],[8.696953,49.358039],[8.698234,49.357421],[8.699042,49.357005],[8.699133,49.357005],[8.699224,49.357003],[8.699468,49.356867],[8.70005,49.356571],[8.700092,49.35655],[8.700541,49.356327],[8.701206,49.356063],[8.701769,49.355846],[8.701847,49.355815],[8.70249,49.355716],[8.703321,49.355722],[8.703979,49.355745],[8.704667,49.355786],[8.705234,49.355848],[8.705404,49.355871],[8.705776,49.35592],[8.706353,49.356042],[8.706882,49.356123],[8.708303,49.356341],[8.70964,49.35658],[8.71027,49.355542],[8.710889,49.35511],[8.711249,49.35521],[8.7114,49.35534],[8.711683,49.355525],[8.711946,49.355618],[8.712513,49.355659],[8.71339,49.355695],[8.71423,49.355746],[8.715084,49.355951],[8.715987,49.35624],[8.716396,49.356342],[8.718652,49.356379],[8.71896,49.356351],[8.719342,49.356762],[8.719472,49.357065],[8.71971,49.357302],[8.720122,49.357284],[8.721267,49.357192],[8.721461,49.357173],[8.722389,49.357253],[8.723668,49.357439],[8.724196,49.357602],[8.724937,49.357921],[8.72524,49.358308],[8.725498,49.358663],[8.725599,49.358803],[8.726016,49.359476],[8.726055,49.360045],[8.726094,49.360374],[8.727113,49.361989],[8.727202,49.362889],[8.727423,49.364132],[8.727717,49.365509],[8.728446,49.366441],[8.728671,49.366705],[8.728942,49.366897],[8.730404,49.367933],[8.729929,49.368208],[8.728541,49.368817],[8.72836,49.368682],[8.726259,49.369455],[8.725357,49.370066],[8.725576,49.37022],[8.725009,49.371211],[8.724729,49.37225],[8.724401,49.373496],[8.724479,49.373747],[8.724841,49.373956],[8.727404,49.375554],[8.72822,49.374821],[8.729138,49.374009],[8.730155,49.373179],[8.730385,49.373252],[8.730507,49.373311],[8.731437,49.372716],[8.732328,49.372224],[8.733929,49.372675],[8.735724,49.372956],[8.736319,49.373324],[8.737564,49.374161],[8.738416,49.374491],[8.740049,49.374553],[8.740729,49.374442],[8.741468,49.373924],[8.742963,49.373108],[8.744141,49.372795],[8.745571,49.37295],[8.746882,49.373148],[8.747531,49.373299],[8.747803,49.373403],[8.74801,49.373481],[8.749031,49.373788],[8.749349,49.373809],[8.749506,49.373874],[8.749682,49.374157],[8.749784,49.374269],[8.749979,49.37486],[8.750254,49.375234],[8.750486,49.375439],[8.751287,49.375853],[8.751986,49.376167],[8.752481,49.376371],[8.75318,49.376893],[8.753542,49.377091],[8.754226,49.377357],[8.754767,49.377572],[8.754718,49.377723],[8.754876,49.377766],[8.75543,49.377841],[8.756198,49.37791],[8.756906,49.377922],[8.75795,49.377906],[8.758486,49.377899],[8.758903,49.377943],[8.759138,49.377807],[8.759187,49.377808],[8.759786,49.377905],[8.760544,49.378024],[8.762615,49.378444],[8.763084,49.378532],[8.763661,49.378542],[8.76537,49.378518],[8.766125,49.378539],[8.766754,49.378608],[8.76849,49.379027],[8.76883,49.379193],[8.768381,49.379612],[8.767516,49.380685],[8.766845,49.381341],[8.766279,49.382016],[8.765944,49.3827],[8.76528,49.383389],[8.764256,49.384184],[8.763735,49.384783],[8.76338,49.385218],[8.763158,49.385451],[8.762978,49.385762],[8.762909,49.385993],[8.762887,49.386438],[8.762991,49.386902],[8.762978,49.387249],[8.762899,49.387516],[8.763192,49.387952],[8.764231,49.387498],[8.766654,49.387178],[8.767235,49.387062],[8.767759,49.386865],[8.768178,49.386789],[8.768518,49.386845],[8.768945,49.386974],[8.76931,49.387141],[8.769787,49.387254],[8.770146,49.387651],[8.771331,49.388121],[8.771843,49.388408],[8.772677,49.388667],[8.772941,49.388877],[8.773016,49.389213],[8.773661,49.389392],[8.773463,49.389673],[8.773409,49.390055],[8.77366,49.390523],[8.773878,49.390825],[8.774229,49.390979],[8.774594,49.391209],[8.775114,49.391654],[8.775375,49.392035],[8.775841,49.392457],[8.775179,49.393053],[8.776011,49.393547],[8.776472,49.394054],[8.776103,49.394241],[8.775839,49.394462],[8.775613,49.394778],[8.775432,49.39513],[8.775357,49.395498],[8.775351,49.39589],[8.775405,49.396353],[8.77561,49.396942],[8.775853,49.397499],[8.77627,49.398226],[8.776723,49.39895],[8.777297,49.399896],[8.777925,49.401157],[8.778345,49.40224],[8.779285,49.402018],[8.78048,49.4018],[8.781842,49.401604],[8.783078,49.401452],[8.783982,49.401369],[8.784682,49.401329],[8.785426,49.40138],[8.78645,49.401532],[8.787479,49.40178],[8.789244,49.402355],[8.790122,49.40271],[8.7907,49.403068],[8.791436,49.403734],[8.792046,49.404237],[8.792756,49.404675],[8.793315,49.405004],[8.793591,49.405187],[8.793708,49.405634],[8.793657,49.406063],[8.793701,49.40635],[8.793964,49.406931],[8.79405,49.40719],[8.793454,49.408909],[8.79312,49.409948],[8.793072,49.410423],[8.792942,49.411043],[8.792821,49.411647],[8.792762,49.411853],[8.792359,49.412349],[8.790377,49.414782],[8.790199,49.414964],[8.790132,49.415286],[8.789943,49.416379],[8.78948,49.417608],[8.789429,49.418818],[8.789394,49.419256],[8.789554,49.419831],[8.789819,49.420577],[8.789964,49.421041],[8.790162,49.421213],[8.791171,49.42288],[8.791273,49.423259],[8.790903,49.424051],[8.789978,49.425944],[8.789643,49.42708],[8.78907,49.430067],[8.78834,49.431146],[8.786537,49.432578],[8.779296,49.432764],[8.777773,49.432907],[8.777268,49.433012],[8.776973,49.433155],[8.776765,49.433357],[8.775986,49.434071],[8.774992,49.43454],[8.774022,49.434993],[8.773641,49.435318],[8.773252,49.435419],[8.772923,49.435463],[8.77217,49.435536],[8.77045,49.435737],[8.769482,49.436046],[8.766398,49.437365],[8.766515,49.440274],[8.766223,49.440275],[8.76637,49.441863],[8.766334,49.443584],[8.764728,49.446047],[8.761766,49.448135],[8.761703,49.450618],[8.761818,49.450806],[8.762051,49.450947],[8.763169,49.451433],[8.764276,49.451893],[8.765277,49.452469],[8.766319,49.453103],[8.767107,49.453699],[8.767706,49.454192],[8.765332,49.455547],[8.763575,49.456368],[8.76329,49.456467],[8.762939,49.456488],[8.76055,49.456573],[8.758634,49.456662],[8.757555,49.456702],[8.757041,49.457473],[8.756618,49.457934],[8.756062,49.458405],[8.755408,49.458854],[8.754686,49.459468],[8.754705,49.459642],[8.753986,49.459693],[8.753099,49.459548],[8.75158,49.459204],[8.750438,49.458958],[8.750091,49.459072],[8.748992,49.459252],[8.747833,49.459441],[8.746352,49.459567],[8.74547,49.459614],[8.745235,49.459571],[8.744884,49.459434],[8.744315,49.459159],[8.743336,49.458648],[8.74322,49.458497],[8.74324,49.458378],[8.743121,49.458305],[8.742643,49.45808],[8.741969,49.45777],[8.741674,49.457558],[8.741746,49.457041],[8.741807,49.456563],[8.741842,49.456478],[8.742048,49.4564],[8.74257,49.456328],[8.74305,49.456335],[8.743558,49.456352],[8.744051,49.456283],[8.744436,49.456168],[8.744628,49.456101],[8.744776,49.456069],[8.744954,49.456089],[8.745101,49.456082],[8.745388,49.455974],[8.745895,49.455754],[8.746052,49.455642],[8.746083,49.455363],[8.746078,49.455054],[8.746063,49.454896],[8.745975,49.454771],[8.745912,49.454691],[8.745943,49.454522],[8.746025,49.45416],[8.746118,49.453701],[8.746201,49.453499],[8.746235,49.453234],[8.745966,49.452626],[8.745586,49.451991],[8.744871,49.451023],[8.744719,49.450685],[8.744556,49.450429],[8.744724,49.450278],[8.74472,49.450033],[8.744778,49.449761],[8.745026,49.449477],[8.745437,49.449085],[8.745681,49.448824],[8.745748,49.448674],[8.745808,49.448379],[8.745854,49.448142],[8.745742,49.447418],[8.7457,49.446891],[8.739206,49.446386],[8.739212,49.44694],[8.738431,49.448017],[8.738008,49.448423],[8.737318,49.44906],[8.737083,49.449171],[8.736852,49.449237],[8.736541,49.449242],[8.735799,49.449127],[8.735152,49.448956],[8.734623,49.44883],[8.732748,49.448569],[8.730015,49.448373],[8.726439,49.448213],[8.725438,49.448206],[8.724195,49.448452],[8.723635,49.448579],[8.722897,49.448821],[8.722459,49.449016],[8.722077,49.449185],[8.721853,49.449345],[8.721696,49.449503],[8.721441,49.449815],[8.721023,49.450238],[8.720491,49.450545],[8.720086,49.450745],[8.719614,49.451065],[8.718989,49.451482],[8.718324,49.451829],[8.717828,49.452039],[8.717415,49.452118],[8.716995,49.452187],[8.716368,49.452291],[8.715647,49.452383],[8.715174,49.45242],[8.714813,49.452338],[8.714396,49.452172],[8.714027,49.451964],[8.713729,49.451763],[8.713448,49.451547],[8.71308,49.451414],[8.712981,49.451337],[8.712907,49.451188],[8.712618,49.450635],[8.712221,49.450263],[8.712063,49.450181],[8.711923,49.450062],[8.711712,49.449848],[8.711383,49.449483],[8.710697,49.449013],[8.709519,49.447725],[8.709467,49.447501],[8.709412,49.446647],[8.709325,49.446198],[8.708958,49.446156],[8.708062,49.445948],[8.707527,49.44589],[8.706733,49.445857],[8.706043,49.445872],[8.705379,49.445924],[8.704486,49.446022],[8.703989,49.446],[8.703226,49.44592],[8.702235,49.445819],[8.700441,49.445474],[8.698009,49.445025],[8.696864,49.444866],[8.696436,49.444666],[8.695967,49.444555],[8.695515,49.444586],[8.693686,49.444206],[8.692734,49.444117],[8.692166,49.444018],[8.691707,49.443845],[8.691244,49.44365],[8.690496,49.443236],[8.68937,49.443263],[8.687857,49.443212],[8.687569,49.443035],[8.687363,49.443008],[8.686799,49.443048],[8.686065,49.443213],[8.685572,49.443319],[8.685446,49.443329],[8.68496,49.443355],[8.684607,49.44354],[8.6843,49.443671],[8.683887,49.443768],[8.683496,49.443878],[8.682964,49.444],[8.682677,49.443971],[8.682335,49.443862],[8.682116,49.443773],[8.681657,49.443692],[8.681244,49.443675],[8.680796,49.443534],[8.680393,49.443483],[8.67967,49.443133],[8.679113,49.44302],[8.679192,49.442698],[8.678359,49.442592],[8.678334,49.442624],[8.677207,49.442494],[8.677012,49.442391],[8.676933,49.442349],[8.676097,49.442199],[8.675185,49.442035],[8.674777,49.441968],[8.673293,49.441504],[8.672861,49.441253],[8.67274,49.441326],[8.672341,49.441125],[8.671575,49.440834],[8.670761,49.441343],[8.67033,49.441494],[8.669915,49.441467],[8.668932,49.441262],[8.667104,49.440835],[8.666264,49.440772],[8.665848,49.44064],[8.665677,49.440536],[8.665516,49.440349],[8.665451,49.4403],[8.665403,49.440276],[8.665344,49.440267],[8.665214,49.440227],[8.663494,49.439941],[8.663245,49.439948],[8.663238,49.439857],[8.663046,49.43963],[8.662637,49.439686],[8.662439,49.439689],[8.662374,49.439664],[8.661735,49.439538],[8.66046,49.439285],[8.658385,49.438873],[8.658267,49.439039],[8.657003,49.438758],[8.656308,49.438606],[8.65531,49.439943],[8.653394,49.439318],[8.649054,49.437866],[8.648862,49.437785],[8.648968,49.437693],[8.648204,49.437252],[8.647218,49.436878],[8.646552,49.436626],[8.646193,49.436973],[8.646016,49.437132],[8.645786,49.437345],[8.645488,49.437604],[8.645159,49.437851],[8.644754,49.438187],[8.644168,49.438623],[8.643741,49.438944],[8.643149,49.439309],[8.64261,49.43961],[8.642565,49.439635],[8.642246,49.439785],[8.641292,49.440204],[8.64031,49.440607],[8.639305,49.44098],[8.638212,49.441336],[8.637172,49.441631],[8.636078,49.441893],[8.634983,49.442126],[8.633858,49.442342],[8.632702,49.442524],[8.631601,49.44272],[8.630453,49.442879],[8.629367,49.443018],[8.628703,49.443115],[8.628211,49.441976],[8.628012,49.44157],[8.627351,49.440827],[8.626819,49.440265],[8.626616,49.440059],[8.626743,49.439998],[8.626134,49.439394],[8.62331,49.436631],[8.623037,49.436356],[8.622925,49.436225],[8.622831,49.436102],[8.62272,49.435915],[8.622619,49.43575],[8.622521,49.435595],[8.622406,49.435412],[8.622309,49.435279],[8.622204,49.435144],[8.621395,49.434225],[8.621165,49.433964],[8.621049,49.433843],[8.620927,49.433893],[8.619493,49.432264],[8.61626,49.428621],[8.615974,49.428303],[8.61531,49.427884],[8.609952,49.424382],[8.609733,49.424242],[8.605472,49.425826],[8.599884,49.427972],[8.598382,49.428508],[8.59849,49.428044],[8.59823,49.428143],[8.593259,49.430025],[8.592963,49.430133],[8.590778,49.427735],[8.59045,49.427367],[8.590054,49.427347],[8.589757,49.427329],[8.589435,49.427296],[8.588442,49.427151],[8.587764,49.427038],[8.58724,49.426958],[8.587079,49.426934],[8.586232,49.426846],[8.584079,49.4266],[8.583508,49.426541],[8.582919,49.426506],[8.582023,49.426473],[8.581379,49.42645],[8.579833,49.426199],[8.577791,49.425274],[8.577288,49.425085],[8.575385,49.424356],[8.57529,49.424422],[8.574243,49.424021],[8.573179,49.4236]]]},"timeSeries":{"start":"2008-08-18","end":"2026-08-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '20424'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-08-18T00:00:00Z\",\"2008-09-18T00:00:00Z\",\"2008-10-18T00:00:00Z\",\"2008-11-18T00:00:00Z\",\"2008-12-18T00:00:00Z\",\"2009-01-18T00:00:00Z\",\"2009-02-18T00:00:00Z\",\"2009-03-18T00:00:00Z\",\"2009-04-18T00:00:00Z\",\"2009-05-18T00:00:00Z\",\"2009-06-18T00:00:00Z\",\"2009-07-18T00:00:00Z\",\"2009-08-18T00:00:00Z\",\"2009-09-18T00:00:00Z\",\"2009-10-18T00:00:00Z\",\"2009-11-18T00:00:00Z\",\"2009-12-18T00:00:00Z\",\"2010-01-18T00:00:00Z\",\"2010-02-18T00:00:00Z\",\"2010-03-18T00:00:00Z\",\"2010-04-18T00:00:00Z\",\"2010-05-18T00:00:00Z\",\"2010-06-18T00:00:00Z\",\"2010-07-18T00:00:00Z\",\"2010-08-18T00:00:00Z\",\"2010-09-18T00:00:00Z\",\"2010-10-18T00:00:00Z\",\"2010-11-18T00:00:00Z\",\"2010-12-18T00:00:00Z\",\"2011-01-18T00:00:00Z\",\"2011-02-18T00:00:00Z\",\"2011-03-18T00:00:00Z\",\"2011-04-18T00:00:00Z\",\"2011-05-18T00:00:00Z\",\"2011-06-18T00:00:00Z\",\"2011-07-18T00:00:00Z\",\"2011-08-18T00:00:00Z\",\"2011-09-18T00:00:00Z\",\"2011-10-18T00:00:00Z\",\"2011-11-18T00:00:00Z\",\"2011-12-18T00:00:00Z\",\"2012-01-18T00:00:00Z\",\"2012-02-18T00:00:00Z\",\"2012-03-18T00:00:00Z\",\"2012-04-18T00:00:00Z\",\"2012-05-18T00:00:00Z\",\"2012-06-18T00:00:00Z\",\"2012-07-18T00:00:00Z\",\"2012-08-18T00:00:00Z\",\"2012-09-18T00:00:00Z\",\"2012-10-18T00:00:00Z\",\"2012-11-18T00:00:00Z\",\"2012-12-18T00:00:00Z\",\"2013-01-18T00:00:00Z\",\"2013-02-18T00:00:00Z\",\"2013-03-18T00:00:00Z\",\"2013-04-18T00:00:00Z\",\"2013-05-18T00:00:00Z\",\"2013-06-18T00:00:00Z\",\"2013-07-18T00:00:00Z\",\"2013-08-18T00:00:00Z\",\"2013-09-18T00:00:00Z\",\"2013-10-18T00:00:00Z\",\"2013-11-18T00:00:00Z\",\"2013-12-18T00:00:00Z\",\"2014-01-18T00:00:00Z\",\"2014-02-18T00:00:00Z\",\"2014-03-18T00:00:00Z\",\"2014-04-18T00:00:00Z\",\"2014-05-18T00:00:00Z\",\"2014-06-18T00:00:00Z\",\"2014-07-18T00:00:00Z\",\"2014-08-18T00:00:00Z\",\"2014-09-18T00:00:00Z\",\"2014-10-18T00:00:00Z\",\"2014-11-18T00:00:00Z\",\"2014-12-18T00:00:00Z\",\"2015-01-18T00:00:00Z\",\"2015-02-18T00:00:00Z\",\"2015-03-18T00:00:00Z\",\"2015-04-18T00:00:00Z\",\"2015-05-18T00:00:00Z\",\"2015-06-18T00:00:00Z\",\"2015-07-18T00:00:00Z\",\"2015-08-18T00:00:00Z\",\"2015-09-18T00:00:00Z\",\"2015-10-18T00:00:00Z\",\"2015-11-18T00:00:00Z\",\"2015-12-18T00:00:00Z\",\"2016-01-18T00:00:00Z\",\"2016-02-18T00:00:00Z\",\"2016-03-18T00:00:00Z\",\"2016-04-18T00:00:00Z\",\"2016-05-18T00:00:00Z\",\"2016-06-18T00:00:00Z\",\"2016-07-18T00:00:00Z\",\"2016-08-18T00:00:00Z\",\"2016-09-18T00:00:00Z\",\"2016-10-18T00:00:00Z\",\"2016-11-18T00:00:00Z\",\"2016-12-18T00:00:00Z\",\"2017-01-18T00:00:00Z\",\"2017-02-18T00:00:00Z\",\"2017-03-18T00:00:00Z\",\"2017-04-18T00:00:00Z\",\"2017-05-18T00:00:00Z\",\"2017-06-18T00:00:00Z\",\"2017-07-18T00:00:00Z\",\"2017-08-18T00:00:00Z\",\"2017-09-18T00:00:00Z\",\"2017-10-18T00:00:00Z\",\"2017-11-18T00:00:00Z\",\"2017-12-18T00:00:00Z\",\"2018-01-18T00:00:00Z\",\"2018-02-18T00:00:00Z\",\"2018-03-18T00:00:00Z\",\"2018-04-18T00:00:00Z\",\"2018-05-18T00:00:00Z\",\"2018-06-18T00:00:00Z\",\"2018-07-18T00:00:00Z\",\"2018-08-18T00:00:00Z\",\"2018-09-18T00:00:00Z\",\"2018-10-18T00:00:00Z\",\"2018-11-18T00:00:00Z\",\"2018-12-18T00:00:00Z\",\"2019-01-18T00:00:00Z\",\"2019-02-18T00:00:00Z\",\"2019-03-18T00:00:00Z\",\"2019-04-18T00:00:00Z\",\"2019-05-18T00:00:00Z\",\"2019-06-18T00:00:00Z\",\"2019-07-18T00:00:00Z\",\"2019-08-18T00:00:00Z\",\"2019-09-18T00:00:00Z\",\"2019-10-18T00:00:00Z\",\"2019-11-18T00:00:00Z\",\"2019-12-18T00:00:00Z\",\"2020-01-18T00:00:00Z\",\"2020-02-18T00:00:00Z\",\"2020-03-18T00:00:00Z\",\"2020-04-18T00:00:00Z\",\"2020-05-18T00:00:00Z\",\"2020-06-18T00:00:00Z\",\"2020-07-18T00:00:00Z\",\"2020-08-18T00:00:00Z\",\"2020-09-18T00:00:00Z\",\"2020-10-18T00:00:00Z\",\"2020-11-18T00:00:00Z\",\"2020-12-18T00:00:00Z\",\"2021-01-18T00:00:00Z\",\"2021-02-18T00:00:00Z\",\"2021-03-18T00:00:00Z\",\"2021-04-18T00:00:00Z\",\"2021-05-18T00:00:00Z\",\"2021-06-18T00:00:00Z\",\"2021-07-18T00:00:00Z\",\"2021-08-18T00:00:00Z\",\"2021-09-18T00:00:00Z\",\"2021-10-18T00:00:00Z\",\"2021-11-18T00:00:00Z\",\"2021-12-18T00:00:00Z\",\"2022-01-18T00:00:00Z\",\"2022-02-18T00:00:00Z\",\"2022-03-18T00:00:00Z\",\"2022-04-18T00:00:00Z\",\"2022-05-18T00:00:00Z\",\"2022-06-18T00:00:00Z\",\"2022-07-18T00:00:00Z\",\"2022-08-18T00:00:00Z\",\"2022-09-18T00:00:00Z\",\"2022-10-18T00:00:00Z\",\"2022-11-18T00:00:00Z\",\"2022-12-18T00:00:00Z\",\"2023-01-18T00:00:00Z\",\"2023-02-18T00:00:00Z\",\"2023-03-18T00:00:00Z\",\"2023-04-18T00:00:00Z\",\"2023-05-18T00:00:00Z\",\"2023-06-18T00:00:00Z\",\"2023-07-18T00:00:00Z\",\"2023-08-18T00:00:00Z\",\"2023-09-18T00:00:00Z\",\"2023-10-18T00:00:00Z\",\"2023-11-18T00:00:00Z\",\"2023-12-18T00:00:00Z\",\"2024-01-18T00:00:00Z\",\"2024-02-18T00:00:00Z\",\"2024-03-18T00:00:00Z\",\"2024-04-18T00:00:00Z\",\"2024-05-18T00:00:00Z\",\"2024-06-18T00:00:00Z\",\"2024-07-18T00:00:00Z\",\"2024-08-18T00:00:00Z\",\"2024-09-18T00:00:00Z\",\"2024-10-18T00:00:00Z\",\"2024-11-18T00:00:00Z\",\"2024-12-18T00:00:00Z\",\"2025-01-18T00:00:00Z\",\"2025-02-18T00:00:00Z\",\"2025-03-18T00:00:00Z\",\"2025-04-18T00:00:00Z\",\"2025-05-18T00:00:00Z\",\"2025-06-18T00:00:00Z\",\"2025-07-18T00:00:00Z\",\"2025-08-18T00:00:00Z\",\"2025-09-18T00:00:00Z\",\"2025-10-18T00:00:00Z\",\"2025-11-18T00:00:00Z\",\"2025-12-18T00:00:00Z\",\"2026-01-18T00:00:00Z\",\"2026-02-18T00:00:00Z\",\"2026-03-18T00:00:00Z\",\"2026-04-18T00:00:00Z\",\"2026-05-18T00:00:00Z\",\"2026-06-18T00:00:00Z\",\"2026-07-18T00:00:00Z\",\"2026-08-01T00:00:00Z\"],\"value\":[218,231,243,262,269,270,272,276,283,288,398,412,454,454,468,472,514,525,531,546,580,585,592,592,594,631,631,631,2432,6644,7900,8557,8740,8845,8996,9131,9302,9485,9527,9572,9854,10075,10310,10351,10499,10656,10785,11258,11405,11536,11632,11695,11877,11990,12299,12844,13452,14715,14795,14890,15071,15277,15623,16572,17847,18761,19811,20597,20896,21048,21107,21796,22240,22301,22517,22619,22722,22933,22984,23012,23055,23107,23122,23194,23228,23363,23398,23448,23574,24153,24178,24237,24432,24618,25062,25231,25353,25634,25657,25690,25700,25912,25920,25924,25972,26098,26147,26295,26299,26360,26385,26464,26620,27100,27980,28107,28148,28165,28165,28167,28168,28169,28217,28254,28298,28314,28331,28346,28398,28412,28467,28472,28477,28480,28495,28501,28526,28528,28541,28545,28580,28670,28694,28740,28746,28793,28814,28831,28824,28821,28875,28891,28884,28898,28958,28963,28968,28996,28985,28992,29122,29203,29271,29440,29495,29508,29552,29552,29591,29590,29593,29594,29603,29629,29636,29759,29697,29768,29776,29926,29928,29931,29930,29931,29936,29947,29950,29965,30020,30055,30083,30075,30067,30086,30236,30255,30242,30262,30334,30367,30708,30723,30723,30742,30778,30934,30952,30987,31206,31264,31327,31338,31378,31335,31334,31352,31354]}}"
+ headers:
+ content-length:
+ - '6376'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:18:49 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
version: 1
diff --git a/tests/integrationtests/fixtures/vcr_cassettes/indicators/test_attribute_completeness.yaml b/tests/integrationtests/fixtures/vcr_cassettes/indicators/test_attribute_completeness.yaml
index db57d2a79..eef455f9e 100644
--- a/tests/integrationtests/fixtures/vcr_cassettes/indicators/test_attribute_completeness.yaml
+++ b/tests/integrationtests/fixtures/vcr_cassettes/indicators/test_attribute_completeness.yaml
@@ -299,4 +299,152 @@ interactions:
status:
code: 200
message: OK
+- request:
+ body: '{"filter":"landuse=forest and geometry:polygon","aoi":{"type":"MultiPolygon","coordinates":[[[[7.818124,13.859122],[7.835312,13.859122],[7.835312,13.872538],[7.818124,13.872538],[7.818124,13.859122]]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '258'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[0,0]}}"
+ headers:
+ content-length:
+ - '202'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:46:16 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"(landuse=forest and geometry:polygon) and ((leaf_type=*))","aoi":{"type":"MultiPolygon","coordinates":[[[[7.818124,13.859122],[7.835312,13.859122],[7.835312,13.872538],[7.818124,13.872538],[7.818124,13.859122]]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '280'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[0,0]}}"
+ headers:
+ content-length:
+ - '202'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:46:17 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"landuse=forest and geometry:polygon","aoi":{"type":"MultiPolygon","coordinates":[[[[7.818124,13.859122],[7.835312,13.859122],[7.835312,13.872538],[7.818124,13.872538],[7.818124,13.859122]]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '258'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/area.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[0,0]}}"
+ headers:
+ content-length:
+ - '202'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 12:34:13 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"(landuse=forest and geometry:polygon) and ((leaf_type=*))","aoi":{"type":"MultiPolygon","coordinates":[[[[7.818124,13.859122],[7.835312,13.859122],[7.835312,13.872538],[7.818124,13.872538],[7.818124,13.859122]]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '280'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/area.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[0,0]}}"
+ headers:
+ content-length:
+ - '202'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 12:34:15 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
version: 1
diff --git a/tests/integrationtests/fixtures/vcr_cassettes/test_main.yaml b/tests/integrationtests/fixtures/vcr_cassettes/test_main.yaml
index 9d5ac4b6b..80aaa028d 100644
--- a/tests/integrationtests/fixtures/vcr_cassettes/test_main.yaml
+++ b/tests/integrationtests/fixtures/vcr_cassettes/test_main.yaml
@@ -2033,4 +2033,181 @@ interactions:
status:
code: 200
message: OK
+- request:
+ body: ''
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: GET
+ uri: https://ohsome-api.heigitk8s.de/metadata
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"temporalExtent\":{\"start\":\"2007-10-08T00:00:00Z\",\"end\":\"2026-08-18T10:09:32Z\"}}"
+ headers:
+ content-length:
+ - '196'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:11:23 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: ''
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: GET
+ uri: https://ohsome-api.heigitk8s.de/metadata
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"temporalExtent\":{\"start\":\"2007-10-08T00:00:00Z\",\"end\":\"2026-08-18T10:09:32Z\"}}"
+ headers:
+ content-length:
+ - '196'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:11:23 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.656512,49.411047],[8.658857,49.410217],[8.662864,49.408734],[8.662656,49.407493],[8.66543,49.406804],[8.66702,49.406341],[8.669404,49.405746],[8.670231,49.405537],[8.670667,49.405696],[8.6771,49.40437],[8.67815,49.404317],[8.679435,49.404443],[8.681117,49.404832],[8.682522,49.405074],[8.683802,49.405287],[8.68525,49.405729],[8.686198,49.405954],[8.690952,49.406788],[8.694012,49.407422],[8.69333,49.409643],[8.692388,49.411912],[8.690156,49.411761],[8.686451,49.411243],[8.68244,49.410751],[8.679021,49.410418],[8.676393,49.410229],[8.672043,49.410311],[8.667241,49.410724],[8.664269,49.411243],[8.661813,49.411766],[8.659763,49.411702],[8.658441,49.411733],[8.656567,49.412318],[8.656542,49.411595],[8.656512,49.411047]]]},"timeSeries":{"start":"2008-08-18","end":"2026-08-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '902'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-08-18T00:00:00Z\",\"2008-09-18T00:00:00Z\",\"2008-10-18T00:00:00Z\",\"2008-11-18T00:00:00Z\",\"2008-12-18T00:00:00Z\",\"2009-01-18T00:00:00Z\",\"2009-02-18T00:00:00Z\",\"2009-03-18T00:00:00Z\",\"2009-04-18T00:00:00Z\",\"2009-05-18T00:00:00Z\",\"2009-06-18T00:00:00Z\",\"2009-07-18T00:00:00Z\",\"2009-08-18T00:00:00Z\",\"2009-09-18T00:00:00Z\",\"2009-10-18T00:00:00Z\",\"2009-11-18T00:00:00Z\",\"2009-12-18T00:00:00Z\",\"2010-01-18T00:00:00Z\",\"2010-02-18T00:00:00Z\",\"2010-03-18T00:00:00Z\",\"2010-04-18T00:00:00Z\",\"2010-05-18T00:00:00Z\",\"2010-06-18T00:00:00Z\",\"2010-07-18T00:00:00Z\",\"2010-08-18T00:00:00Z\",\"2010-09-18T00:00:00Z\",\"2010-10-18T00:00:00Z\",\"2010-11-18T00:00:00Z\",\"2010-12-18T00:00:00Z\",\"2011-01-18T00:00:00Z\",\"2011-02-18T00:00:00Z\",\"2011-03-18T00:00:00Z\",\"2011-04-18T00:00:00Z\",\"2011-05-18T00:00:00Z\",\"2011-06-18T00:00:00Z\",\"2011-07-18T00:00:00Z\",\"2011-08-18T00:00:00Z\",\"2011-09-18T00:00:00Z\",\"2011-10-18T00:00:00Z\",\"2011-11-18T00:00:00Z\",\"2011-12-18T00:00:00Z\",\"2012-01-18T00:00:00Z\",\"2012-02-18T00:00:00Z\",\"2012-03-18T00:00:00Z\",\"2012-04-18T00:00:00Z\",\"2012-05-18T00:00:00Z\",\"2012-06-18T00:00:00Z\",\"2012-07-18T00:00:00Z\",\"2012-08-18T00:00:00Z\",\"2012-09-18T00:00:00Z\",\"2012-10-18T00:00:00Z\",\"2012-11-18T00:00:00Z\",\"2012-12-18T00:00:00Z\",\"2013-01-18T00:00:00Z\",\"2013-02-18T00:00:00Z\",\"2013-03-18T00:00:00Z\",\"2013-04-18T00:00:00Z\",\"2013-05-18T00:00:00Z\",\"2013-06-18T00:00:00Z\",\"2013-07-18T00:00:00Z\",\"2013-08-18T00:00:00Z\",\"2013-09-18T00:00:00Z\",\"2013-10-18T00:00:00Z\",\"2013-11-18T00:00:00Z\",\"2013-12-18T00:00:00Z\",\"2014-01-18T00:00:00Z\",\"2014-02-18T00:00:00Z\",\"2014-03-18T00:00:00Z\",\"2014-04-18T00:00:00Z\",\"2014-05-18T00:00:00Z\",\"2014-06-18T00:00:00Z\",\"2014-07-18T00:00:00Z\",\"2014-08-18T00:00:00Z\",\"2014-09-18T00:00:00Z\",\"2014-10-18T00:00:00Z\",\"2014-11-18T00:00:00Z\",\"2014-12-18T00:00:00Z\",\"2015-01-18T00:00:00Z\",\"2015-02-18T00:00:00Z\",\"2015-03-18T00:00:00Z\",\"2015-04-18T00:00:00Z\",\"2015-05-18T00:00:00Z\",\"2015-06-18T00:00:00Z\",\"2015-07-18T00:00:00Z\",\"2015-08-18T00:00:00Z\",\"2015-09-18T00:00:00Z\",\"2015-10-18T00:00:00Z\",\"2015-11-18T00:00:00Z\",\"2015-12-18T00:00:00Z\",\"2016-01-18T00:00:00Z\",\"2016-02-18T00:00:00Z\",\"2016-03-18T00:00:00Z\",\"2016-04-18T00:00:00Z\",\"2016-05-18T00:00:00Z\",\"2016-06-18T00:00:00Z\",\"2016-07-18T00:00:00Z\",\"2016-08-18T00:00:00Z\",\"2016-09-18T00:00:00Z\",\"2016-10-18T00:00:00Z\",\"2016-11-18T00:00:00Z\",\"2016-12-18T00:00:00Z\",\"2017-01-18T00:00:00Z\",\"2017-02-18T00:00:00Z\",\"2017-03-18T00:00:00Z\",\"2017-04-18T00:00:00Z\",\"2017-05-18T00:00:00Z\",\"2017-06-18T00:00:00Z\",\"2017-07-18T00:00:00Z\",\"2017-08-18T00:00:00Z\",\"2017-09-18T00:00:00Z\",\"2017-10-18T00:00:00Z\",\"2017-11-18T00:00:00Z\",\"2017-12-18T00:00:00Z\",\"2018-01-18T00:00:00Z\",\"2018-02-18T00:00:00Z\",\"2018-03-18T00:00:00Z\",\"2018-04-18T00:00:00Z\",\"2018-05-18T00:00:00Z\",\"2018-06-18T00:00:00Z\",\"2018-07-18T00:00:00Z\",\"2018-08-18T00:00:00Z\",\"2018-09-18T00:00:00Z\",\"2018-10-18T00:00:00Z\",\"2018-11-18T00:00:00Z\",\"2018-12-18T00:00:00Z\",\"2019-01-18T00:00:00Z\",\"2019-02-18T00:00:00Z\",\"2019-03-18T00:00:00Z\",\"2019-04-18T00:00:00Z\",\"2019-05-18T00:00:00Z\",\"2019-06-18T00:00:00Z\",\"2019-07-18T00:00:00Z\",\"2019-08-18T00:00:00Z\",\"2019-09-18T00:00:00Z\",\"2019-10-18T00:00:00Z\",\"2019-11-18T00:00:00Z\",\"2019-12-18T00:00:00Z\",\"2020-01-18T00:00:00Z\",\"2020-02-18T00:00:00Z\",\"2020-03-18T00:00:00Z\",\"2020-04-18T00:00:00Z\",\"2020-05-18T00:00:00Z\",\"2020-06-18T00:00:00Z\",\"2020-07-18T00:00:00Z\",\"2020-08-18T00:00:00Z\",\"2020-09-18T00:00:00Z\",\"2020-10-18T00:00:00Z\",\"2020-11-18T00:00:00Z\",\"2020-12-18T00:00:00Z\",\"2021-01-18T00:00:00Z\",\"2021-02-18T00:00:00Z\",\"2021-03-18T00:00:00Z\",\"2021-04-18T00:00:00Z\",\"2021-05-18T00:00:00Z\",\"2021-06-18T00:00:00Z\",\"2021-07-18T00:00:00Z\",\"2021-08-18T00:00:00Z\",\"2021-09-18T00:00:00Z\",\"2021-10-18T00:00:00Z\",\"2021-11-18T00:00:00Z\",\"2021-12-18T00:00:00Z\",\"2022-01-18T00:00:00Z\",\"2022-02-18T00:00:00Z\",\"2022-03-18T00:00:00Z\",\"2022-04-18T00:00:00Z\",\"2022-05-18T00:00:00Z\",\"2022-06-18T00:00:00Z\",\"2022-07-18T00:00:00Z\",\"2022-08-18T00:00:00Z\",\"2022-09-18T00:00:00Z\",\"2022-10-18T00:00:00Z\",\"2022-11-18T00:00:00Z\",\"2022-12-18T00:00:00Z\",\"2023-01-18T00:00:00Z\",\"2023-02-18T00:00:00Z\",\"2023-03-18T00:00:00Z\",\"2023-04-18T00:00:00Z\",\"2023-05-18T00:00:00Z\",\"2023-06-18T00:00:00Z\",\"2023-07-18T00:00:00Z\",\"2023-08-18T00:00:00Z\",\"2023-09-18T00:00:00Z\",\"2023-10-18T00:00:00Z\",\"2023-11-18T00:00:00Z\",\"2023-12-18T00:00:00Z\",\"2024-01-18T00:00:00Z\",\"2024-02-18T00:00:00Z\",\"2024-03-18T00:00:00Z\",\"2024-04-18T00:00:00Z\",\"2024-05-18T00:00:00Z\",\"2024-06-18T00:00:00Z\",\"2024-07-18T00:00:00Z\",\"2024-08-18T00:00:00Z\",\"2024-09-18T00:00:00Z\",\"2024-10-18T00:00:00Z\",\"2024-11-18T00:00:00Z\",\"2024-12-18T00:00:00Z\",\"2025-01-18T00:00:00Z\",\"2025-02-18T00:00:00Z\",\"2025-03-18T00:00:00Z\",\"2025-04-18T00:00:00Z\",\"2025-05-18T00:00:00Z\",\"2025-06-18T00:00:00Z\",\"2025-07-18T00:00:00Z\",\"2025-08-18T00:00:00Z\",\"2025-09-18T00:00:00Z\",\"2025-10-18T00:00:00Z\",\"2025-11-18T00:00:00Z\",\"2025-12-18T00:00:00Z\",\"2026-01-18T00:00:00Z\",\"2026-02-18T00:00:00Z\",\"2026-03-18T00:00:00Z\",\"2026-04-18T00:00:00Z\",\"2026-05-18T00:00:00Z\",\"2026-06-18T00:00:00Z\",\"2026-07-18T00:00:00Z\",\"2026-08-01T00:00:00Z\"],\"value\":[0,10,14,14,14,14,14,14,14,14,68,70,71,71,71,73,73,76,76,75,75,75,75,75,75,75,75,75,119,224,305,305,310,310,407,412,413,413,413,413,428,428,428,429,429,436,438,437,442,442,444,450,450,451,451,466,466,473,473,503,524,525,531,532,532,622,622,625,628,635,636,683,683,683,683,685,685,681,670,684,688,703,703,703,715,717,718,718,755,755,755,810,810,810,810,811,813,813,813,813,814,837,838,840,843,843,843,843,845,845,848,850,854,863,938,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,939,937,937,936,937,936,936,936,937,937,937,938,938,938,938,938,937,932,932,932,932,932,933,933,933,933,933,933,930,930,931,932,932,932,932,930,930,930,933,932,932,932,932,934,935,935,935,930,930,929,929,929,929,929,930,930,930,934,937,938,936,936,937,937,936,936,936,936,936,937,937,938,943,943,944,945,946,949,950,950,954,958,958,958,958]}}"
+ headers:
+ content-length:
+ - '5982'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:11:24 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.641543,49.411303],[8.652386,49.407391],[8.652606,49.407365],[8.653961,49.407038],[8.6543,49.406824],[8.655838,49.40599],[8.660063,49.403751],[8.661088,49.40313],[8.66298,49.402053],[8.66549,49.400802],[8.667152,49.396417],[8.670565,49.39681],[8.670855,49.396698],[8.671368,49.396856],[8.673028,49.39762],[8.675503,49.398956],[8.677606,49.400029],[8.679977,49.401302],[8.676274,49.40322],[8.670231,49.405537],[8.669404,49.405746],[8.66702,49.406341],[8.66543,49.406804],[8.662656,49.407493],[8.661319,49.407781],[8.658739,49.40786],[8.656667,49.408231],[8.654373,49.408573],[8.654423,49.40888],[8.653848,49.408895],[8.653874,49.409122],[8.651656,49.409181],[8.649858,49.409274],[8.647838,49.409498],[8.646082,49.409998],[8.64557,49.409982],[8.642225,49.411332],[8.641543,49.411303]]]},"timeSeries":{"start":"2008-08-18","end":"2026-08-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '960'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-08-18T00:00:00Z\",\"2008-09-18T00:00:00Z\",\"2008-10-18T00:00:00Z\",\"2008-11-18T00:00:00Z\",\"2008-12-18T00:00:00Z\",\"2009-01-18T00:00:00Z\",\"2009-02-18T00:00:00Z\",\"2009-03-18T00:00:00Z\",\"2009-04-18T00:00:00Z\",\"2009-05-18T00:00:00Z\",\"2009-06-18T00:00:00Z\",\"2009-07-18T00:00:00Z\",\"2009-08-18T00:00:00Z\",\"2009-09-18T00:00:00Z\",\"2009-10-18T00:00:00Z\",\"2009-11-18T00:00:00Z\",\"2009-12-18T00:00:00Z\",\"2010-01-18T00:00:00Z\",\"2010-02-18T00:00:00Z\",\"2010-03-18T00:00:00Z\",\"2010-04-18T00:00:00Z\",\"2010-05-18T00:00:00Z\",\"2010-06-18T00:00:00Z\",\"2010-07-18T00:00:00Z\",\"2010-08-18T00:00:00Z\",\"2010-09-18T00:00:00Z\",\"2010-10-18T00:00:00Z\",\"2010-11-18T00:00:00Z\",\"2010-12-18T00:00:00Z\",\"2011-01-18T00:00:00Z\",\"2011-02-18T00:00:00Z\",\"2011-03-18T00:00:00Z\",\"2011-04-18T00:00:00Z\",\"2011-05-18T00:00:00Z\",\"2011-06-18T00:00:00Z\",\"2011-07-18T00:00:00Z\",\"2011-08-18T00:00:00Z\",\"2011-09-18T00:00:00Z\",\"2011-10-18T00:00:00Z\",\"2011-11-18T00:00:00Z\",\"2011-12-18T00:00:00Z\",\"2012-01-18T00:00:00Z\",\"2012-02-18T00:00:00Z\",\"2012-03-18T00:00:00Z\",\"2012-04-18T00:00:00Z\",\"2012-05-18T00:00:00Z\",\"2012-06-18T00:00:00Z\",\"2012-07-18T00:00:00Z\",\"2012-08-18T00:00:00Z\",\"2012-09-18T00:00:00Z\",\"2012-10-18T00:00:00Z\",\"2012-11-18T00:00:00Z\",\"2012-12-18T00:00:00Z\",\"2013-01-18T00:00:00Z\",\"2013-02-18T00:00:00Z\",\"2013-03-18T00:00:00Z\",\"2013-04-18T00:00:00Z\",\"2013-05-18T00:00:00Z\",\"2013-06-18T00:00:00Z\",\"2013-07-18T00:00:00Z\",\"2013-08-18T00:00:00Z\",\"2013-09-18T00:00:00Z\",\"2013-10-18T00:00:00Z\",\"2013-11-18T00:00:00Z\",\"2013-12-18T00:00:00Z\",\"2014-01-18T00:00:00Z\",\"2014-02-18T00:00:00Z\",\"2014-03-18T00:00:00Z\",\"2014-04-18T00:00:00Z\",\"2014-05-18T00:00:00Z\",\"2014-06-18T00:00:00Z\",\"2014-07-18T00:00:00Z\",\"2014-08-18T00:00:00Z\",\"2014-09-18T00:00:00Z\",\"2014-10-18T00:00:00Z\",\"2014-11-18T00:00:00Z\",\"2014-12-18T00:00:00Z\",\"2015-01-18T00:00:00Z\",\"2015-02-18T00:00:00Z\",\"2015-03-18T00:00:00Z\",\"2015-04-18T00:00:00Z\",\"2015-05-18T00:00:00Z\",\"2015-06-18T00:00:00Z\",\"2015-07-18T00:00:00Z\",\"2015-08-18T00:00:00Z\",\"2015-09-18T00:00:00Z\",\"2015-10-18T00:00:00Z\",\"2015-11-18T00:00:00Z\",\"2015-12-18T00:00:00Z\",\"2016-01-18T00:00:00Z\",\"2016-02-18T00:00:00Z\",\"2016-03-18T00:00:00Z\",\"2016-04-18T00:00:00Z\",\"2016-05-18T00:00:00Z\",\"2016-06-18T00:00:00Z\",\"2016-07-18T00:00:00Z\",\"2016-08-18T00:00:00Z\",\"2016-09-18T00:00:00Z\",\"2016-10-18T00:00:00Z\",\"2016-11-18T00:00:00Z\",\"2016-12-18T00:00:00Z\",\"2017-01-18T00:00:00Z\",\"2017-02-18T00:00:00Z\",\"2017-03-18T00:00:00Z\",\"2017-04-18T00:00:00Z\",\"2017-05-18T00:00:00Z\",\"2017-06-18T00:00:00Z\",\"2017-07-18T00:00:00Z\",\"2017-08-18T00:00:00Z\",\"2017-09-18T00:00:00Z\",\"2017-10-18T00:00:00Z\",\"2017-11-18T00:00:00Z\",\"2017-12-18T00:00:00Z\",\"2018-01-18T00:00:00Z\",\"2018-02-18T00:00:00Z\",\"2018-03-18T00:00:00Z\",\"2018-04-18T00:00:00Z\",\"2018-05-18T00:00:00Z\",\"2018-06-18T00:00:00Z\",\"2018-07-18T00:00:00Z\",\"2018-08-18T00:00:00Z\",\"2018-09-18T00:00:00Z\",\"2018-10-18T00:00:00Z\",\"2018-11-18T00:00:00Z\",\"2018-12-18T00:00:00Z\",\"2019-01-18T00:00:00Z\",\"2019-02-18T00:00:00Z\",\"2019-03-18T00:00:00Z\",\"2019-04-18T00:00:00Z\",\"2019-05-18T00:00:00Z\",\"2019-06-18T00:00:00Z\",\"2019-07-18T00:00:00Z\",\"2019-08-18T00:00:00Z\",\"2019-09-18T00:00:00Z\",\"2019-10-18T00:00:00Z\",\"2019-11-18T00:00:00Z\",\"2019-12-18T00:00:00Z\",\"2020-01-18T00:00:00Z\",\"2020-02-18T00:00:00Z\",\"2020-03-18T00:00:00Z\",\"2020-04-18T00:00:00Z\",\"2020-05-18T00:00:00Z\",\"2020-06-18T00:00:00Z\",\"2020-07-18T00:00:00Z\",\"2020-08-18T00:00:00Z\",\"2020-09-18T00:00:00Z\",\"2020-10-18T00:00:00Z\",\"2020-11-18T00:00:00Z\",\"2020-12-18T00:00:00Z\",\"2021-01-18T00:00:00Z\",\"2021-02-18T00:00:00Z\",\"2021-03-18T00:00:00Z\",\"2021-04-18T00:00:00Z\",\"2021-05-18T00:00:00Z\",\"2021-06-18T00:00:00Z\",\"2021-07-18T00:00:00Z\",\"2021-08-18T00:00:00Z\",\"2021-09-18T00:00:00Z\",\"2021-10-18T00:00:00Z\",\"2021-11-18T00:00:00Z\",\"2021-12-18T00:00:00Z\",\"2022-01-18T00:00:00Z\",\"2022-02-18T00:00:00Z\",\"2022-03-18T00:00:00Z\",\"2022-04-18T00:00:00Z\",\"2022-05-18T00:00:00Z\",\"2022-06-18T00:00:00Z\",\"2022-07-18T00:00:00Z\",\"2022-08-18T00:00:00Z\",\"2022-09-18T00:00:00Z\",\"2022-10-18T00:00:00Z\",\"2022-11-18T00:00:00Z\",\"2022-12-18T00:00:00Z\",\"2023-01-18T00:00:00Z\",\"2023-02-18T00:00:00Z\",\"2023-03-18T00:00:00Z\",\"2023-04-18T00:00:00Z\",\"2023-05-18T00:00:00Z\",\"2023-06-18T00:00:00Z\",\"2023-07-18T00:00:00Z\",\"2023-08-18T00:00:00Z\",\"2023-09-18T00:00:00Z\",\"2023-10-18T00:00:00Z\",\"2023-11-18T00:00:00Z\",\"2023-12-18T00:00:00Z\",\"2024-01-18T00:00:00Z\",\"2024-02-18T00:00:00Z\",\"2024-03-18T00:00:00Z\",\"2024-04-18T00:00:00Z\",\"2024-05-18T00:00:00Z\",\"2024-06-18T00:00:00Z\",\"2024-07-18T00:00:00Z\",\"2024-08-18T00:00:00Z\",\"2024-09-18T00:00:00Z\",\"2024-10-18T00:00:00Z\",\"2024-11-18T00:00:00Z\",\"2024-12-18T00:00:00Z\",\"2025-01-18T00:00:00Z\",\"2025-02-18T00:00:00Z\",\"2025-03-18T00:00:00Z\",\"2025-04-18T00:00:00Z\",\"2025-05-18T00:00:00Z\",\"2025-06-18T00:00:00Z\",\"2025-07-18T00:00:00Z\",\"2025-08-18T00:00:00Z\",\"2025-09-18T00:00:00Z\",\"2025-10-18T00:00:00Z\",\"2025-11-18T00:00:00Z\",\"2025-12-18T00:00:00Z\",\"2026-01-18T00:00:00Z\",\"2026-02-18T00:00:00Z\",\"2026-03-18T00:00:00Z\",\"2026-04-18T00:00:00Z\",\"2026-05-18T00:00:00Z\",\"2026-06-18T00:00:00Z\",\"2026-07-18T00:00:00Z\",\"2026-08-01T00:00:00Z\"],\"value\":[0,1,2,2,2,2,2,2,2,2,2,3,3,3,5,5,6,6,6,6,6,6,6,6,6,36,36,36,36,42,42,43,43,43,43,46,56,64,53,50,50,50,51,51,51,51,51,52,52,56,59,59,90,97,99,99,118,119,129,129,129,152,152,156,156,157,157,157,157,160,161,161,161,161,162,164,170,172,173,175,175,175,176,176,176,194,194,204,202,202,203,203,218,220,219,219,203,200,209,208,216,214,211,211,209,210,209,216,216,222,223,224,224,220,221,221,222,224,224,224,224,224,224,225,223,222,230,228,228,228,232,231,230,223,223,223,222,222,223,221,223,224,224,224,224,224,224,224,224,225,228,229,229,229,229,230,230,230,230,232,234,234,234,234,234,234,235,235,236,236,236,236,236,235,235,234,234,235,235,235,233,234,234,234,235,235,235,239,242,242,241,241,241,242,242,242,241,241,241,241,242,244,244,242,249,363,358,358,361,363,364,365,365,365,364,366,366]}}"
+ headers:
+ content-length:
+ - '5930'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:11:24 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
+- request:
+ body: '{"filter":"building=* and building!=no and geometry:polygon","aoi":{"type":"Polygon","coordinates":[[[8.670231,49.405537],[8.676274,49.40322],[8.679977,49.401302],[8.677606,49.400029],[8.675503,49.398956],[8.673028,49.39762],[8.673993,49.397162],[8.67519,49.396593],[8.677237,49.395547],[8.678009,49.395158],[8.679476,49.394736],[8.680709,49.394507],[8.681877,49.394459],[8.683035,49.394452],[8.684498,49.394724],[8.685867,49.395161],[8.6868,49.395618],[8.687121,49.395813],[8.688811,49.397352],[8.688818,49.398172],[8.688821,49.398557],[8.69078,49.398786],[8.691904,49.397883],[8.693082,49.397612],[8.694151,49.397277],[8.694371,49.396897],[8.69535,49.396645],[8.697794,49.396595],[8.698,49.397244],[8.697383,49.397369],[8.69755,49.397912],[8.697462,49.398931],[8.69804,49.399857],[8.697702,49.40023],[8.697911,49.400589],[8.697249,49.40193],[8.697251,49.402692],[8.698847,49.404381],[8.698289,49.404777],[8.696815,49.404328],[8.696045,49.404998],[8.69498,49.405405],[8.694901,49.405606],[8.695544,49.406012],[8.695469,49.406699],[8.694151,49.406813],[8.694012,49.407422],[8.690952,49.406788],[8.686198,49.405954],[8.68525,49.405729],[8.683802,49.405287],[8.682522,49.405074],[8.681117,49.404832],[8.679435,49.404443],[8.67815,49.404317],[8.6771,49.40437],[8.670667,49.405696],[8.670231,49.405537]]]},"timeSeries":{"start":"2008-07-21","end":"2026-07-01","interval":"P1M"}}'
+ headers:
+ accept:
+ - '*/*'
+ accept-encoding:
+ - gzip, deflate
+ authorization:
+ - foo
+ connection:
+ - keep-alive
+ content-length:
+ - '1374'
+ content-type:
+ - application/json
+ host:
+ - ohsome-api.heigitk8s.de
+ user-agent:
+ - ohsome-quality-api
+ method: POST
+ uri: https://ohsome-api.heigitk8s.de/stats/features/count.json
+ response:
+ body:
+ string: "{\"apiVersion\":\"2.0.0a6\",\"attribution\":{\"url\":\"https://ohsome.org/copyrights\",\"text\":\"\xA9
+ OpenStreetMap contributors\"},\"result\":{\"timestamp\":[\"2008-07-21T00:00:00Z\",\"2008-08-21T00:00:00Z\",\"2008-09-21T00:00:00Z\",\"2008-10-21T00:00:00Z\",\"2008-11-21T00:00:00Z\",\"2008-12-21T00:00:00Z\",\"2009-01-21T00:00:00Z\",\"2009-02-21T00:00:00Z\",\"2009-03-21T00:00:00Z\",\"2009-04-21T00:00:00Z\",\"2009-05-21T00:00:00Z\",\"2009-06-21T00:00:00Z\",\"2009-07-21T00:00:00Z\",\"2009-08-21T00:00:00Z\",\"2009-09-21T00:00:00Z\",\"2009-10-21T00:00:00Z\",\"2009-11-21T00:00:00Z\",\"2009-12-21T00:00:00Z\",\"2010-01-21T00:00:00Z\",\"2010-02-21T00:00:00Z\",\"2010-03-21T00:00:00Z\",\"2010-04-21T00:00:00Z\",\"2010-05-21T00:00:00Z\",\"2010-06-21T00:00:00Z\",\"2010-07-21T00:00:00Z\",\"2010-08-21T00:00:00Z\",\"2010-09-21T00:00:00Z\",\"2010-10-21T00:00:00Z\",\"2010-11-21T00:00:00Z\",\"2010-12-21T00:00:00Z\",\"2011-01-21T00:00:00Z\",\"2011-02-21T00:00:00Z\",\"2011-03-21T00:00:00Z\",\"2011-04-21T00:00:00Z\",\"2011-05-21T00:00:00Z\",\"2011-06-21T00:00:00Z\",\"2011-07-21T00:00:00Z\",\"2011-08-21T00:00:00Z\",\"2011-09-21T00:00:00Z\",\"2011-10-21T00:00:00Z\",\"2011-11-21T00:00:00Z\",\"2011-12-21T00:00:00Z\",\"2012-01-21T00:00:00Z\",\"2012-02-21T00:00:00Z\",\"2012-03-21T00:00:00Z\",\"2012-04-21T00:00:00Z\",\"2012-05-21T00:00:00Z\",\"2012-06-21T00:00:00Z\",\"2012-07-21T00:00:00Z\",\"2012-08-21T00:00:00Z\",\"2012-09-21T00:00:00Z\",\"2012-10-21T00:00:00Z\",\"2012-11-21T00:00:00Z\",\"2012-12-21T00:00:00Z\",\"2013-01-21T00:00:00Z\",\"2013-02-21T00:00:00Z\",\"2013-03-21T00:00:00Z\",\"2013-04-21T00:00:00Z\",\"2013-05-21T00:00:00Z\",\"2013-06-21T00:00:00Z\",\"2013-07-21T00:00:00Z\",\"2013-08-21T00:00:00Z\",\"2013-09-21T00:00:00Z\",\"2013-10-21T00:00:00Z\",\"2013-11-21T00:00:00Z\",\"2013-12-21T00:00:00Z\",\"2014-01-21T00:00:00Z\",\"2014-02-21T00:00:00Z\",\"2014-03-21T00:00:00Z\",\"2014-04-21T00:00:00Z\",\"2014-05-21T00:00:00Z\",\"2014-06-21T00:00:00Z\",\"2014-07-21T00:00:00Z\",\"2014-08-21T00:00:00Z\",\"2014-09-21T00:00:00Z\",\"2014-10-21T00:00:00Z\",\"2014-11-21T00:00:00Z\",\"2014-12-21T00:00:00Z\",\"2015-01-21T00:00:00Z\",\"2015-02-21T00:00:00Z\",\"2015-03-21T00:00:00Z\",\"2015-04-21T00:00:00Z\",\"2015-05-21T00:00:00Z\",\"2015-06-21T00:00:00Z\",\"2015-07-21T00:00:00Z\",\"2015-08-21T00:00:00Z\",\"2015-09-21T00:00:00Z\",\"2015-10-21T00:00:00Z\",\"2015-11-21T00:00:00Z\",\"2015-12-21T00:00:00Z\",\"2016-01-21T00:00:00Z\",\"2016-02-21T00:00:00Z\",\"2016-03-21T00:00:00Z\",\"2016-04-21T00:00:00Z\",\"2016-05-21T00:00:00Z\",\"2016-06-21T00:00:00Z\",\"2016-07-21T00:00:00Z\",\"2016-08-21T00:00:00Z\",\"2016-09-21T00:00:00Z\",\"2016-10-21T00:00:00Z\",\"2016-11-21T00:00:00Z\",\"2016-12-21T00:00:00Z\",\"2017-01-21T00:00:00Z\",\"2017-02-21T00:00:00Z\",\"2017-03-21T00:00:00Z\",\"2017-04-21T00:00:00Z\",\"2017-05-21T00:00:00Z\",\"2017-06-21T00:00:00Z\",\"2017-07-21T00:00:00Z\",\"2017-08-21T00:00:00Z\",\"2017-09-21T00:00:00Z\",\"2017-10-21T00:00:00Z\",\"2017-11-21T00:00:00Z\",\"2017-12-21T00:00:00Z\",\"2018-01-21T00:00:00Z\",\"2018-02-21T00:00:00Z\",\"2018-03-21T00:00:00Z\",\"2018-04-21T00:00:00Z\",\"2018-05-21T00:00:00Z\",\"2018-06-21T00:00:00Z\",\"2018-07-21T00:00:00Z\",\"2018-08-21T00:00:00Z\",\"2018-09-21T00:00:00Z\",\"2018-10-21T00:00:00Z\",\"2018-11-21T00:00:00Z\",\"2018-12-21T00:00:00Z\",\"2019-01-21T00:00:00Z\",\"2019-02-21T00:00:00Z\",\"2019-03-21T00:00:00Z\",\"2019-04-21T00:00:00Z\",\"2019-05-21T00:00:00Z\",\"2019-06-21T00:00:00Z\",\"2019-07-21T00:00:00Z\",\"2019-08-21T00:00:00Z\",\"2019-09-21T00:00:00Z\",\"2019-10-21T00:00:00Z\",\"2019-11-21T00:00:00Z\",\"2019-12-21T00:00:00Z\",\"2020-01-21T00:00:00Z\",\"2020-02-21T00:00:00Z\",\"2020-03-21T00:00:00Z\",\"2020-04-21T00:00:00Z\",\"2020-05-21T00:00:00Z\",\"2020-06-21T00:00:00Z\",\"2020-07-21T00:00:00Z\",\"2020-08-21T00:00:00Z\",\"2020-09-21T00:00:00Z\",\"2020-10-21T00:00:00Z\",\"2020-11-21T00:00:00Z\",\"2020-12-21T00:00:00Z\",\"2021-01-21T00:00:00Z\",\"2021-02-21T00:00:00Z\",\"2021-03-21T00:00:00Z\",\"2021-04-21T00:00:00Z\",\"2021-05-21T00:00:00Z\",\"2021-06-21T00:00:00Z\",\"2021-07-21T00:00:00Z\",\"2021-08-21T00:00:00Z\",\"2021-09-21T00:00:00Z\",\"2021-10-21T00:00:00Z\",\"2021-11-21T00:00:00Z\",\"2021-12-21T00:00:00Z\",\"2022-01-21T00:00:00Z\",\"2022-02-21T00:00:00Z\",\"2022-03-21T00:00:00Z\",\"2022-04-21T00:00:00Z\",\"2022-05-21T00:00:00Z\",\"2022-06-21T00:00:00Z\",\"2022-07-21T00:00:00Z\",\"2022-08-21T00:00:00Z\",\"2022-09-21T00:00:00Z\",\"2022-10-21T00:00:00Z\",\"2022-11-21T00:00:00Z\",\"2022-12-21T00:00:00Z\",\"2023-01-21T00:00:00Z\",\"2023-02-21T00:00:00Z\",\"2023-03-21T00:00:00Z\",\"2023-04-21T00:00:00Z\",\"2023-05-21T00:00:00Z\",\"2023-06-21T00:00:00Z\",\"2023-07-21T00:00:00Z\",\"2023-08-21T00:00:00Z\",\"2023-09-21T00:00:00Z\",\"2023-10-21T00:00:00Z\",\"2023-11-21T00:00:00Z\",\"2023-12-21T00:00:00Z\",\"2024-01-21T00:00:00Z\",\"2024-02-21T00:00:00Z\",\"2024-03-21T00:00:00Z\",\"2024-04-21T00:00:00Z\",\"2024-05-21T00:00:00Z\",\"2024-06-21T00:00:00Z\",\"2024-07-21T00:00:00Z\",\"2024-08-21T00:00:00Z\",\"2024-09-21T00:00:00Z\",\"2024-10-21T00:00:00Z\",\"2024-11-21T00:00:00Z\",\"2024-12-21T00:00:00Z\",\"2025-01-21T00:00:00Z\",\"2025-02-21T00:00:00Z\",\"2025-03-21T00:00:00Z\",\"2025-04-21T00:00:00Z\",\"2025-05-21T00:00:00Z\",\"2025-06-21T00:00:00Z\",\"2025-07-21T00:00:00Z\",\"2025-08-21T00:00:00Z\",\"2025-09-21T00:00:00Z\",\"2025-10-21T00:00:00Z\",\"2025-11-21T00:00:00Z\",\"2025-12-21T00:00:00Z\",\"2026-01-21T00:00:00Z\",\"2026-02-21T00:00:00Z\",\"2026-03-21T00:00:00Z\",\"2026-04-21T00:00:00Z\",\"2026-05-21T00:00:00Z\",\"2026-06-21T00:00:00Z\",\"2026-07-01T00:00:00Z\"],\"value\":[2,2,3,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,9,9,9,85,518,518,519,584,592,594,624,627,630,637,637,658,661,686,686,682,682,687,744,745,749,749,757,757,757,758,758,762,791,795,842,847,852,876,921,955,955,955,955,963,999,1000,1002,1041,1042,1082,1128,1130,1151,1149,1149,1149,1151,1153,1153,1168,1170,1174,1168,1190,1194,1206,1206,1337,1343,1343,1343,1349,1358,1358,1358,1359,1358,1358,1359,1358,1367,1397,1397,1398,1400,1400,1404,1405,1405,1543,1543,1543,1547,1547,1547,1547,1547,1548,1550,1553,1553,1553,1557,1558,1558,1558,1558,1558,1560,1562,1563,1561,1561,1564,1564,1564,1564,1566,1566,1566,1566,1566,1567,1566,1566,1573,1576,1575,1576,1576,1576,1576,1576,1575,1575,1575,1575,1575,1576,1578,1576,1569,1567,1567,1567,1567,1567,1567,1567,1567,1571,1571,1571,1571,1571,1569,1569,1570,1568,1569,1570,1570,1570,1570,1570,1570,1574,1572,1574,1714,1713,1706,1707,1707,1710,1711,1711,1707,1707,1712,1712,1710,1711,1710,1713,1705,1705,1706,1614,1614,1614]}}"
+ headers:
+ content-length:
+ - '6098'
+ content-type:
+ - application/json
+ date:
+ - Tue, 18 Aug 2026 10:11:23 GMT
+ server:
+ - uvicorn
+ status:
+ code: 200
+ message: OK
version: 1
diff --git a/tests/integrationtests/indicators/test_attribute_completeness.py b/tests/integrationtests/indicators/test_attribute_completeness.py
index e6799908a..d8349bd63 100644
--- a/tests/integrationtests/indicators/test_attribute_completeness.py
+++ b/tests/integrationtests/indicators/test_attribute_completeness.py
@@ -186,7 +186,7 @@ async def test_no_features(self):
feature = geojson.load(f)
indicator = AttributeCompleteness(
- topic=get_topic_fixture("clc-leaf-type"),
+ topic=get_topic_fixture("forests"),
feature=feature,
attribute_keys=["leaf-type"],
)
@@ -286,7 +286,7 @@ def test_create_description_attribute_filter(
"result_value, absolute_value_1, absolute_value_2",
[
("building-count", "height", "elements", 0.2, 10, 2),
- ("clc-leaf-type", "leaf-type", "m²", 0.2, 10.012, 2.012),
+ ("forests", "leaf-type", "m²", 0.2, 10.012, 2.012),
("roads", "name", "m", 0.2, 10.012, 2.012),
],
)
diff --git a/tests/integrationtests/indicators/test_minimal.py b/tests/integrationtests/indicators/test_minimal.py
deleted file mode 100644
index 781bf4b30..000000000
--- a/tests/integrationtests/indicators/test_minimal.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import asyncio
-
-import plotly.graph_objects as pgo
-import plotly.io as pio
-import pytest
-
-from ohsome_quality_api.indicators.minimal.indicator import Minimal
-from tests.integrationtests.utils import oqapi_vcr
-
-
-class TestAttribution:
- @oqapi_vcr.use_cassette
- def test_attribution(self, topic_minimal, feature_germany_heidelberg):
- indicator = Minimal(topic_minimal, feature_germany_heidelberg)
- asyncio.run(indicator.preprocess())
- assert indicator.attribution() is not None
-
-
-class TestPreprocess:
- @oqapi_vcr.use_cassette
- def test_preprocess(self, topic_minimal, feature_germany_heidelberg):
- indicator = Minimal(topic_minimal, feature_germany_heidelberg)
- asyncio.run(indicator.preprocess())
- assert indicator.count is not None
-
-
-class TestCalculate:
- @pytest.fixture(scope="class")
- @oqapi_vcr.use_cassette
- def indicator(self, topic_minimal, feature_germany_heidelberg):
- i = Minimal(topic_minimal, feature_germany_heidelberg)
- asyncio.run(i.preprocess())
- i.calculate()
- return i
-
- def test_calculate(self, indicator):
- assert indicator.result.value is not None
- assert indicator.result.label is not None
- assert indicator.result.description is not None
- assert indicator.result.timestamp is not None
- assert indicator.result.timestamp_osm is not None
-
-
-class TestFigure:
- @pytest.fixture(scope="class")
- @oqapi_vcr.use_cassette
- def indicator(self, topic_minimal, feature_germany_heidelberg):
- i = Minimal(topic_minimal, feature_germany_heidelberg)
- asyncio.run(i.preprocess())
- i.calculate()
- return i
-
- @pytest.mark.skip(reason="Only for manual testing.") # comment for manual test
- def test_create_figure_manual(self, indicator):
- indicator.create_figure()
- pio.show(indicator.result.figure)
-
- def test_create_figure(self, indicator):
- indicator.create_figure()
- assert isinstance(indicator.result.figure, dict)
- pgo.Figure(indicator.result.figure) # test for valid Plotly figure
diff --git a/tests/integrationtests/test_base_indicator.py b/tests/integrationtests/test_base_indicator.py
index 412f80c87..58730cc87 100644
--- a/tests/integrationtests/test_base_indicator.py
+++ b/tests/integrationtests/test_base_indicator.py
@@ -5,7 +5,7 @@
from geojson import Feature
from pytest_approval.main import verify
-from ohsome_quality_api.indicators.minimal.indicator import Minimal
+from ohsome_quality_api.indicators.mapping_saturation.indicator import MappingSaturation
from ohsome_quality_api.indicators.models import (
IndicatorTemplates,
Result,
@@ -21,22 +21,21 @@ def feature(self):
@pytest.fixture
def topic(self):
- return get_topic_fixture("minimal")
+ return get_topic_fixture("building-count")
def test_as_dict(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
d = indicator.as_dict()
assert set(("result", "metadata", "topic")) <= set(d.keys()) # subset
assert "data" not in d
def test_as_dict_include_data(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
d = indicator.as_dict(include_data=True)
assert set(("result", "metadata", "topic", "data")) <= set(d.keys()) # subset
- assert "count" in d["data"]
def test_as_feature(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
feature_indicator = indicator.as_feature()
assert feature_indicator.is_valid
assert feature_indicator.geometry == feature.geometry
@@ -45,35 +44,34 @@ def test_as_feature(self, feature, topic):
assert "data" not in feature_indicator["properties"]
def test_as_feature_include_data(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
feature = indicator.as_feature(include_data=True)
assert feature.is_valid
for key in ("result", "metadata", "topic", "data"):
assert key in feature["properties"]
- assert "count" in feature["properties"]["data"]
def test_data_property(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
assert indicator.data is not None
for key in ("result", "metadata", "topic", "feature"):
assert key not in feature["properties"]
def test_attribution_class_property(self):
- assert isinstance(Minimal.attribution(), str)
+ assert isinstance(MappingSaturation.attribution(), str)
def test_coverage(self):
- coverage = asyncio.run(Minimal.coverage(inverse=False))
+ coverage = asyncio.run(MappingSaturation.coverage(inverse=False))
for feature in coverage:
assert isinstance(feature, Feature)
assert feature.is_valid
assert feature["geometry"] is not None
- coverage_default = asyncio.run(Minimal.coverage())
+ coverage_default = asyncio.run(MappingSaturation.coverage())
for feature in coverage_default:
assert isinstance(feature, Feature)
assert feature.is_valid
assert feature["geometry"] is not None
assert coverage_default == coverage
- coverage_inversed = asyncio.run(Minimal.coverage(inverse=True))
+ coverage_inversed = asyncio.run(MappingSaturation.coverage(inverse=True))
for feature in coverage_inversed:
assert isinstance(feature, Feature)
assert feature.is_valid
@@ -82,20 +80,20 @@ def test_coverage(self):
assert coverage_default != coverage_inversed
def test_figure(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
assert isinstance(indicator.result.figure, dict)
pgo.Figure(indicator.result.figure) # test for valid Plotly figure
# comment out for manual test
# pio.show(indicator.result.figure)
def test_get_template(self, feature, topic):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
indicator.get_template()
assert isinstance(indicator.templates, IndicatorTemplates)
assert isinstance(indicator.result, Result)
def test_get_template_translated(self, feature, topic, locale_de):
- indicator = Minimal(feature=feature, topic=topic)
+ indicator = MappingSaturation(feature=feature, topic=topic)
indicator.get_template()
assert isinstance(indicator.templates, IndicatorTemplates)
assert isinstance(indicator.result, Result)
diff --git a/tests/integrationtests/test_main.py b/tests/integrationtests/test_main.py
index 077f3aa7c..0ae3740f7 100644
--- a/tests/integrationtests/test_main.py
+++ b/tests/integrationtests/test_main.py
@@ -1,17 +1,13 @@
import asyncio
-from unittest import mock
import asyncpg_recorder
import pytest
from ohsome_quality_api import main
-from ohsome_quality_api.topics.models import TopicData
from tests.integrationtests.utils import oqapi_vcr
# TODO: add user-activity and land-cover-... indicators (ohsomedb)
PARAMETERS = [
- ("minimal", "topic_minimal", {}),
- ("minimal", "topic_custom", {}),
("mapping-saturation", "topic_building_count", {}),
("mapping-saturation", "topic_custom", {}),
("currentness", "topic_building_count", {}),
@@ -74,14 +70,14 @@ async def test_create_indicator_public_feature_collection_single(
@oqapi_vcr.use_cassette
def test_create_indicator_public_feature_collection_multi(
feature_collection_heidelberg_bahnstadt_bergheim_weststadt,
- topic_minimal,
+ topic_building_count,
):
"""Test create indicators for a feature collection with multiple features."""
indicators = asyncio.run(
main.create_indicator(
- "minimal",
+ "mapping-saturation",
feature_collection_heidelberg_bahnstadt_bergheim_weststadt,
- topic_minimal,
+ topic_building_count,
)
)
assert len(indicators) == 3
@@ -113,49 +109,14 @@ async def test_create_indicator_private_feature(
@oqapi_vcr.use_cassette
-def test_create_indicator_private_include_figure(bpolys, topic_minimal):
+def test_create_indicator_private_include_figure(bpolys, topic_building_count):
+ feature = bpolys["features"][0]
indicator = asyncio.run(
main._create_indicator(
- "minimal",
- bpolys,
- topic_minimal,
+ "mapping-saturation",
+ feature,
+ topic_building_count,
include_figure=False,
)
)
assert indicator.result.figure is None
-
-
-@mock.patch.dict("os.environ", {"OQAPI_GEOM_SIZE_LIMIT": "1"}, clear=True)
-@oqapi_vcr.use_cassette
-def test_create_indicator_size_limit_bpolys(bpolys, topic_minimal):
- with pytest.raises(ValueError):
- asyncio.run(main.create_indicator("minimal", bpolys, topic_minimal))
-
-
-@mock.patch.dict("os.environ", {"OQAPI_GEOM_SIZE_LIMIT": "1"}, clear=True)
-@oqapi_vcr.use_cassette
-def test_create_indicator_size_limit_bpolys_ms(bpolys, topic_building_count):
- # Size limit is disabled for the Mapping Saturation indicator.
- asyncio.run(
- main.create_indicator("mapping-saturation", bpolys, topic_building_count)
- )
-
-
-@mock.patch.dict("os.environ", {"OQAPI_GEOM_SIZE_LIMIT": "1"}, clear=True)
-@oqapi_vcr.use_cassette
-def test_create_indicator_size_limit_bpolys_data(bpolys):
- # Size limit is disabled for request with custom data.
- topic = TopicData(
- key="key",
- name="name",
- description="description",
- data={
- "result": [
- {
- "value": 1.0,
- "timestamp": "2020-03-20T01:30:08.180856",
- }
- ]
- },
- )
- asyncio.run(main.create_indicator("mapping-saturation", bpolys, topic))
diff --git a/tests/unittests/api/test_request_models.py b/tests/unittests/api/test_request_models.py
index a7def3259..b2fd9245b 100644
--- a/tests/unittests/api/test_request_models.py
+++ b/tests/unittests/api/test_request_models.py
@@ -15,10 +15,10 @@
@pytest.fixture
-def mock_request_context_minimal(monkeypatch):
- """Mock request context for /indicators/minimal."""
+def mock_request_context_mapping_saturation(monkeypatch):
+ """Mock request context for /indicators/mapping-saturation."""
request_context: ContextVar[RequestContext] = ContextVar("request_context")
- request_context.set(RequestContext(path_parameters={"key": "minimal"}))
+ request_context.set(RequestContext(path_parameters={"key": "mapping-saturation"}))
monkeypatch.setattr(
"ohsome_quality_api.api.request_models.request_context", request_context
)
@@ -54,22 +54,24 @@ def test_bpolys_unsupported_geometry_type(feature_collection_unsupported_geometr
BaseBpolys(bpolys=feature_collection_unsupported_geometry_type)
-@pytest.mark.usefixtures("mock_request_context_minimal")
-def test_indicator_request_minimal(bpolys, topic_key_minimal):
- IndicatorRequest(bpolys=bpolys, topic=topic_key_minimal)
+@pytest.mark.usefixtures("mock_request_context_mapping_saturation")
+def test_indicator_request_mapping_saturation(bpolys, topic_key_building_count):
+ IndicatorRequest(bpolys=bpolys, topic=topic_key_building_count)
-@pytest.mark.usefixtures("mock_request_context_minimal")
+@pytest.mark.usefixtures("mock_request_context_mapping_saturation")
def test_indicator_request_invalid_indicator_topic_combination(
bpolys, topic_key_building_count
):
with pytest.raises(ValidationError):
- IndicatorRequest(bpolys=bpolys, topic=topic_key_building_count)
+ IndicatorRequest(bpolys=bpolys, topic="foo")
-@pytest.mark.usefixtures("mock_request_context_minimal")
-def test_indicator_request_include_figure(bpolys, topic_key_minimal):
- IndicatorRequest(bpolys=bpolys, topic=topic_key_minimal, include_figure=False)
+@pytest.mark.usefixtures("mock_request_context_mapping_saturation")
+def test_indicator_request_include_figure(bpolys, topic_key_building_count):
+ IndicatorRequest(
+ bpolys=bpolys, topic=topic_key_building_count, include_figure=False
+ )
def test_indicator_request_invalid_topic(bpolys):
@@ -93,13 +95,12 @@ def test_attribute_completeness_invalid_attribute(bpolys, topic_key_building_cou
def test_attribute_completeness_indicator_request_invalid_indicator_topic_combination(
bpolys,
- topic_key_minimal,
attribute_key_height,
):
with pytest.raises(ValidationError):
AttributeCompletenessKeyRequest(
bpolys=bpolys,
- topic=topic_key_minimal,
+ topic="foo",
attributes=attribute_key_height,
)
diff --git a/tests/unittests/api/test_request_models_custom_topic.py b/tests/unittests/api/test_request_models_custom_topic.py
index 1bf99783c..b680e4db4 100644
--- a/tests/unittests/api/test_request_models_custom_topic.py
+++ b/tests/unittests/api/test_request_models_custom_topic.py
@@ -58,7 +58,7 @@ def test_indicator_request_invalid_topic_key_with_filter(bpolys):
with pytest.raises(ValidationError):
IndicatorRequest(
bpolys=bpolys,
- topic="minimal", # valid
+ topic="building-comparison", # valid
# not valid in combination w/ existing topic key
topic_title="custom-topic",
topic_filter="building=yes and geometry:point",
diff --git a/tests/unittests/api/test_response_models.py b/tests/unittests/api/test_response_models.py
index 361e6babb..73e2541b3 100644
--- a/tests/unittests/api/test_response_models.py
+++ b/tests/unittests/api/test_response_models.py
@@ -7,7 +7,6 @@
IndicatorMetadata,
IndicatorMetadataCoverageResponse,
IndicatorMetadataResponse,
- ProjectMetadataResponse,
QualityDimensionMetadataResponse,
TopicMetadata,
TopicMetadataResponse,
@@ -25,11 +24,9 @@ def test_topic_metadata():
TopicMetadata(
name="foo",
description="foo",
- endpoint="elements",
aggregation_type="area",
filter="foo",
indicators=["mapping-saturation"],
- projects=["core"],
source=None,
)
@@ -40,11 +37,9 @@ def test_topic_metadata_response():
"building-count": TopicMetadata(
name="foo",
description="foo",
- endpoint="elements",
aggregation_type="area",
filter="foo",
indicators=["mapping-saturation"],
- projects=["core"],
source=None,
)
}
@@ -89,34 +84,10 @@ def test_metadata_quality_dimensions_list(quality_dimensions):
assert response.result == quality_dimensions
-def test_metadata_projects(metadata_project_core):
- response = ProjectMetadataResponse(result=metadata_project_core)
- assert response.result == metadata_project_core
-
-
-def test_metadata_projects_fail(project_core):
- with pytest.raises(ValidationError):
- ProjectMetadataResponse(result="")
- with pytest.raises(ValidationError):
- ProjectMetadataResponse(result="bar")
- with pytest.raises(ValidationError):
- ProjectMetadataResponse(result={})
- with pytest.raises(ValidationError):
- ProjectMetadataResponse(result={"foo": "bar"})
- with pytest.raises(ValidationError):
- ProjectMetadataResponse(result={"foo": project_core})
-
-
-def test_metadata_projects_list(projects):
- response = ProjectMetadataResponse(result=projects)
- assert response.result == projects
-
-
def test_indicator_metadata():
IndicatorMetadata(
name="foo",
description="foo",
- projects=["core"],
quality_dimension="completeness",
)
@@ -127,14 +98,13 @@ def test_indicator_metadata_response():
"mapping-saturation": IndicatorMetadata(
name="foo",
description="foo",
- projects=["core"],
quality_dimension="completeness",
)
}
)
-def test_indicator_metadata_response_fail(metadata_indicator_minimal):
+def test_indicator_metadata_response_fail(metadata_indicator_mapping_saturation):
with pytest.raises(ValidationError):
IndicatorMetadataResponse(result="")
with pytest.raises(ValidationError):
@@ -144,7 +114,7 @@ def test_indicator_metadata_response_fail(metadata_indicator_minimal):
with pytest.raises(ValidationError):
IndicatorMetadataResponse(result={"foo": "bar"})
with pytest.raises(ValidationError):
- IndicatorMetadataResponse(result={"foo": metadata_indicator_minimal})
+ IndicatorMetadataResponse(result={"foo": metadata_indicator_mapping_saturation})
def test_indicator_metadata_coverage(bpolys):
diff --git a/tests/unittests/test_helper.py b/tests/unittests/test_helper.py
index af0b2ebff..c9de2d251 100644
--- a/tests/unittests/test_helper.py
+++ b/tests/unittests/test_helper.py
@@ -7,7 +7,7 @@
from ohsome_quality_api.indicators.base import BaseIndicator
from ohsome_quality_api.indicators.definitions import get_indicator_metadata
from ohsome_quality_api.indicators.mapping_saturation import models
-from ohsome_quality_api.indicators.minimal.indicator import Minimal
+from ohsome_quality_api.indicators.mapping_saturation.indicator import MappingSaturation
from ohsome_quality_api.utils.helper import (
camel_to_hyphen,
get_class_from_key,
@@ -26,7 +26,10 @@
def test_name_to_class():
- assert get_class_from_key(class_type="indicator", key="minimal") == Minimal
+ assert (
+ get_class_from_key(class_type="indicator", key="mapping-saturation")
+ == MappingSaturation
+ )
indicators = get_indicator_metadata()
for indicator_name in indicators:
diff --git a/tests/unittests/test_indicators_definitions.py b/tests/unittests/test_indicators_definitions.py
index 4a6bce026..b5394326c 100644
--- a/tests/unittests/test_indicators_definitions.py
+++ b/tests/unittests/test_indicators_definitions.py
@@ -54,17 +54,9 @@ def test_get_indicator_metadata():
assert isinstance(indicator, models.IndicatorMetadata)
-def test_get_indicator_metadata_filtered_by_project():
- indicators = definitions.get_indicator_metadata("core")
- assert isinstance(indicators, dict)
- for indicator in indicators.values():
- assert isinstance(indicator, models.IndicatorMetadata)
- assert indicator.projects == ["core"]
-
-
-def test_get_indicator(metadata_indicator_minimal):
- indicator = definitions.get_indicator("minimal")
- assert indicator == metadata_indicator_minimal["minimal"]
+def test_get_indicator(metadata_indicator_mapping_saturation):
+ indicator = definitions.get_indicator("mapping-saturation")
+ assert indicator == metadata_indicator_mapping_saturation["mapping-saturation"]
@pytest.mark.usefixtures("locale_de")
diff --git a/tests/unittests/test_project.py b/tests/unittests/test_project.py
deleted file mode 100644
index 904cf3577..000000000
--- a/tests/unittests/test_project.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import pytest
-from pydantic import ValidationError
-
-from ohsome_quality_api.projects.models import Project
-
-
-def test_project():
- Project(name="My fancy Project", description="some description")
-
-
-def test_parameter_missing():
- with pytest.raises(ValidationError):
- Project(name="some name")
- with pytest.raises(ValidationError):
- Project(description="description")
-
-
-def test_extra_parameter():
- with pytest.raises(ValidationError):
- Project(
- name="My fancy Project",
- description="some description",
- foo="bar",
- )
diff --git a/tests/unittests/test_project_definitions.py b/tests/unittests/test_project_definitions.py
deleted file mode 100644
index d1831678f..000000000
--- a/tests/unittests/test_project_definitions.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import pytest
-from pytest_approval.main import verify
-
-from ohsome_quality_api.projects import definitions
-from ohsome_quality_api.projects.models import Project
-
-
-@pytest.fixture(params=["misc", "core", "experimental"])
-def valid_project_keys(request):
- return request.param
-
-
-def test_get_projects():
- qds = definitions.get_project_metadata()
- assert isinstance(qds, dict)
- for key, qd in qds.items():
- assert isinstance(key, str)
- assert isinstance(qd, Project)
-
-
-def test_get_project(valid_project_keys):
- qd = definitions.get_project(valid_project_keys)
- assert isinstance(qd, Project)
-
-
-def test_get_project_wrong_key():
- with pytest.raises(KeyError):
- definitions.get_project("foo")
-
-
-def test_get_project_keys_type():
- keys = definitions.get_project_keys()
- assert isinstance(keys, list)
- for key in keys:
- assert isinstance(key, str)
-
-
-def test_get_project_keys_valid(valid_project_keys):
- keys = definitions.get_project_keys()
- assert valid_project_keys in keys
-
-
-def test_get_project_translated(locale_de):
- project = definitions.get_project("core")
- assert verify(project.model_dump_json(indent=2))
diff --git a/tests/unittests/test_quality_dimension_definitions.py b/tests/unittests/test_quality_dimension_definitions.py
index 48715bbff..cc6484002 100644
--- a/tests/unittests/test_quality_dimension_definitions.py
+++ b/tests/unittests/test_quality_dimension_definitions.py
@@ -5,7 +5,7 @@
from ohsome_quality_api.quality_dimensions.models import QualityDimension
-@pytest.fixture(params=["minimal", "completeness", "currentness"])
+@pytest.fixture(params=["completeness", "currentness"])
def valid_quality_dimension_keys(request):
return request.param
@@ -41,5 +41,5 @@ def test_get_quality_dimension_keys_valid(valid_quality_dimension_keys):
def test_get_quality_dimension_translated(locale_de):
- qd = definitions.get_quality_dimension("minimal")
+ qd = definitions.get_quality_dimension("completeness")
assert verify(qd.model_dump_json(indent=2))
diff --git a/tests/unittests/test_topic.py b/tests/unittests/test_topic.py
index ab8ff2912..cbe63144b 100644
--- a/tests/unittests/test_topic.py
+++ b/tests/unittests/test_topic.py
@@ -23,11 +23,9 @@ def test_base_topic_extra():
def test_topic_filter_validation():
with pytest.raises(ValidationError):
Topic(
- endpoint="elements",
aggregation_type=["area", "count", "length", "perimeter", "area/density"],
filter="filter",
indicators=["indicators"],
- projects=["projects"],
source="source",
ratio_filter="ratio_filter",
)
@@ -36,11 +34,9 @@ def test_topic_filter_validation():
def test_topic_filter_validation_geom_type():
with pytest.raises(ValidationError):
Topic(
- endpoint="elements",
aggregation_type=["area", "count", "length", "perimeter", "area/density"],
filter="building=yes",
indicators=["indicators"],
- projects=["projects"],
source="source",
ratio_filter="ratio_filter",
)
@@ -52,8 +48,6 @@ def test_topic_definition():
name="name",
description="description",
indicators=["mapping-saturation"],
- projects=["core"],
- endpoint="elements",
aggregation_type="count",
filter="building=yes and geometry:polygon",
)
@@ -62,8 +56,6 @@ def test_topic_definition():
name="name",
description="description",
indicators=["mapping-saturation"],
- projects=["core"],
- endpoint="elements",
aggregation_type="count",
filter="building=yes and geometry:polygon",
source="source",
@@ -72,9 +64,7 @@ def test_topic_definition():
key="key",
name="name",
description="description",
- indicators=["mapping-saturation", "minimal"],
- projects=["core"],
- endpoint="elements",
+ indicators=["mapping-saturation"],
aggregation_type="count",
filter="type:way and highway=residential",
source="source",
@@ -83,9 +73,7 @@ def test_topic_definition():
key="key",
name="name",
description="description",
- indicators=["mapping-saturation", "minimal"],
- projects=["core", "experimental"],
- endpoint="elements",
+ indicators=["mapping-saturation"],
aggregation_type="count",
filter="geometry:polygon and building=*",
source="source",
@@ -95,8 +83,6 @@ def test_topic_definition():
name="name",
description="description",
indicators=[],
- projects=["core"],
- endpoint="elements",
aggregation_type="count",
filter="geometry:polygon and building=*",
source="source",
@@ -106,8 +92,6 @@ def test_topic_definition():
name="name",
description="description",
indicators=["mapping-saturation"],
- projects=["core"],
- endpoint="elements",
aggregation_type="count",
filter="type:way and highway=residential",
source="source",
@@ -126,8 +110,6 @@ def test_topic_definition_extra():
key="key",
name="name",
description="description",
- projects=["core"],
- endpoint="elements",
filter="filter",
foo="bar",
)
diff --git a/tests/unittests/test_topics_definitions.py b/tests/unittests/test_topics_definitions.py
index b78ac5fda..62581926e 100644
--- a/tests/unittests/test_topics_definitions.py
+++ b/tests/unittests/test_topics_definitions.py
@@ -10,8 +10,8 @@ def test_get_topic_keys():
def test_get_valid_topics():
- topics = definitions.get_valid_topics("minimal")
- assert topics == ("custom-topic", "minimal")
+ topics = definitions.get_valid_topics("building-comparison")
+ assert topics == ("building-area",)
def test_load_topic_definition():
@@ -21,7 +21,7 @@ def test_load_topic_definition():
def test_get_topic_definition():
- topic = definitions.get_topic_preset("minimal")
+ topic = definitions.get_topic_preset("building-count")
assert isinstance(topic, models.Topic)
@@ -39,14 +39,6 @@ def test_get_topic_definitions():
assert isinstance(topic, models.Topic)
-def test_get_topic_definitions_with_project():
- topics = definitions.get_topic_presets("core")
- assert isinstance(topics, dict)
- for topic in topics.values():
- assert isinstance(topic, models.Topic)
- assert topic.project == "core"
-
-
def test_get_topic_preset_translated(locale_de):
- topic = definitions.get_topic_preset("minimal")
+ topic = definitions.get_topic_preset("building-count")
assert verify(topic.model_dump_json(indent=2))