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))