From 125cd741d4c7bd00ea8a5a50209aca1aac09f200 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Sun, 15 Jun 2025 15:00:59 +0200 Subject: [PATCH 01/11] added background logo on figure of land cover completeness --- .../land_cover_completeness/indicator.py | 68 ++++++++++++++++++- .../test_land_cover_completeness.py | 20 +++--- 2 files changed, 76 insertions(+), 12 deletions(-) diff --git a/ohsome_quality_api/indicators/land_cover_completeness/indicator.py b/ohsome_quality_api/indicators/land_cover_completeness/indicator.py index 4e760f394..8be8af1c3 100644 --- a/ohsome_quality_api/indicators/land_cover_completeness/indicator.py +++ b/ohsome_quality_api/indicators/land_cover_completeness/indicator.py @@ -41,8 +41,72 @@ def calculate(self): ) def create_figure(self) -> None: - fig = pgo.Figure() - fig.add_trace(pgo.Bar(x=["name"], y=[self.osm_area_ratio * 100])) + self.threshold_yellow = 0.75 + self.threshold_red = 0.25 + + fig = pgo.Figure( + pgo.Indicator( + domain={"x": [0, 1], "y": [0, 1]}, + mode="gauge+number", + value=self.result.value * 100, + number={"suffix": "%"}, + type="indicator", + gauge={ + "axis": { + "range": [0, 100], + "tickwidth": 1, + "tickcolor": "darkblue", + "ticksuffix": "%", + "tickfont": dict(color="black", size=20), + }, + "bar": {"color": "black"}, + "steps": [ + {"range": [0, self.threshold_red * 100], "color": "tomato"}, + { + "range": [ + self.threshold_red * 100, + self.threshold_yellow * 100, + ], + "color": "gold", + }, + { + "range": [self.threshold_yellow * 100, 100], + "color": "darkseagreen", + }, + ], + }, + ) + ) + + fig.update_layout( + font={"color": "black", "family": "Arial"}, + xaxis={"showgrid": False, "range": [-1, 1], "fixedrange": True}, + yaxis={"showgrid": False, "range": [0, 1], "fixedrange": True}, + plot_bgcolor="rgba(0,0,0,0)", + autosize=True, + ) + + fig.update_xaxes(visible=False) + fig.update_yaxes(visible=False) + + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.42, + y=0.65, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + + # fig.update_layout(template='plotly_white') + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() diff --git a/tests/integrationtests/indicators/test_land_cover_completeness.py b/tests/integrationtests/indicators/test_land_cover_completeness.py index aba55ee1e..d8b1a995c 100644 --- a/tests/integrationtests/indicators/test_land_cover_completeness.py +++ b/tests/integrationtests/indicators/test_land_cover_completeness.py @@ -1,12 +1,10 @@ import pytest -from approvaltests import Options, verify, verify_as_json -from pydantic_core import to_jsonable_python +from approvaltests import verify from ohsome_quality_api.indicators.land_cover_completeness.indicator import ( LandCoverCompleteness, ) from tests.approvaltests_namers import PytestNamer -from tests.approvaltests_reporters import PlotlyDiffReporter from tests.integrationtests.utils import oqapi_vcr @@ -43,16 +41,18 @@ async def test_create_land_cover_completeness_calculate( @pytest.mark.asyncio -@oqapi_vcr.use_cassette +# @oqapi_vcr.use_cassette async def test_create_figure(topic_land_cover, feature_land_cover): indicator = LandCoverCompleteness( - topic=topic_land_cover, - feature=feature_land_cover, + topic=topic_land_cover, feature=feature_land_cover ) await indicator.preprocess() indicator.calculate() indicator.create_figure() - verify_as_json( - to_jsonable_python(indicator.result.figure), - options=Options().with_reporter(PlotlyDiffReporter()).with_namer(PytestNamer()), - ) + assert isinstance(indicator.result.figure, dict) + + +# verify_as_json( +# to_jsonable_python(indicator.result.figure), +# options=Options().with_reporter(PlotlyDiffReporter()).with_namer(PytestNamer()), +# ) From c9ffc76ffb91542bc180ccf170ffdc2261b290e9 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 11:07:10 +0200 Subject: [PATCH 02/11] add logo on attribute completeness figure --- .../attribute_completeness/indicator.py | 16 ++++++++++++++++ ...-test_create_figure[indicator0].approved.json | 14 ++++++++++++++ ...-test_create_figure[indicator1].approved.json | 14 ++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/ohsome_quality_api/indicators/attribute_completeness/indicator.py b/ohsome_quality_api/indicators/attribute_completeness/indicator.py index 2eed96464..d2de7a4a9 100644 --- a/ohsome_quality_api/indicators/attribute_completeness/indicator.py +++ b/ohsome_quality_api/indicators/attribute_completeness/indicator.py @@ -188,9 +188,25 @@ def create_figure(self) -> None: fig.update_xaxes(visible=False) fig.update_yaxes(visible=False) + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.42, + y=0.65, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def compute_units_for_all_and_matched(self): if self.topic.aggregation_type == "count": diff --git a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json index cd547db02..f352421cf 100644 --- a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json +++ b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json @@ -66,6 +66,20 @@ "color": "black", "family": "Arial" }, + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.42, + "xref": "paper", + "y": 0.65, + "yref": "paper" + } + ], "plot_bgcolor": "rgba(0,0,0,0)", "xaxis": { "fixedrange": true, diff --git a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json index cd547db02..f352421cf 100644 --- a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json +++ b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json @@ -66,6 +66,20 @@ "color": "black", "family": "Arial" }, + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.42, + "xref": "paper", + "y": 0.65, + "yref": "paper" + } + ], "plot_bgcolor": "rgba(0,0,0,0)", "xaxis": { "fixedrange": true, From 9fa1a772314c5fe19b1a6f29f12adcf832fa27e3 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 11:21:03 +0200 Subject: [PATCH 03/11] add logo on building comparison figure --- .../indicators/building_comparison/indicator.py | 16 ++++++++++++++++ ...y-TestFigure-test_create_figure.approved.json | 14 ++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/ohsome_quality_api/indicators/building_comparison/indicator.py b/ohsome_quality_api/indicators/building_comparison/indicator.py index da8b7b609..5421b1202 100644 --- a/ohsome_quality_api/indicators/building_comparison/indicator.py +++ b/ohsome_quality_api/indicators/building_comparison/indicator.py @@ -233,9 +233,25 @@ def create_figure(self) -> None: } fig.update_layout(**layout) + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.8, + y=-0.052, + sizex=0.25, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def check_major_edge_cases(self, dataset: str) -> str: """If edge case is present return description if not return empty string.""" diff --git a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json index 20b68ca64..87e49be58 100644 --- a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json @@ -47,6 +47,20 @@ ], "layout": { "barmode": "group", + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.25, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.8, + "xref": "paper", + "y": -0.052, + "yref": "paper" + } + ], "legend": { "entrywidth": 270, "orientation": "h", From 8b01deb217f6b2ccdebc0b55d4905eda2dc77929 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 11:33:56 +0200 Subject: [PATCH 04/11] add logo on currentness figure --- .../indicators/currentness/indicator.py | 16 ++++++++++++++++ ...y-TestFigure-test_create_figure.approved.json | 14 ++++++++++++++ ...-test_outdated_features_plotting.approved.txt | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/ohsome_quality_api/indicators/currentness/indicator.py b/ohsome_quality_api/indicators/currentness/indicator.py index b007e03c9..cfcce7cdb 100644 --- a/ohsome_quality_api/indicators/currentness/indicator.py +++ b/ohsome_quality_api/indicators/currentness/indicator.py @@ -269,9 +269,25 @@ def create_figure(self): bgcolor="rgba(255,255,255,0.66)", ) + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.759, + y=1, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def get_threshold_text(self, color: Color) -> str: up_to_date_str = month_to_year_month(self.up_to_date) diff --git a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json index 76f405d7f..ce4c4c020 100644 --- a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json @@ -1922,6 +1922,20 @@ } ], "layout": { + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.759, + "xref": "paper", + "y": 1, + "yref": "paper" + } + ], "legend": { "bgcolor": "rgba(255,255,255,0.66)", "title": { diff --git a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt index e183b1c41..c96965978 100644 --- a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt +++ b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt @@ -1 +1 @@ -{"data": [{"customdata": [[0, "02 Feb 2025", "02 Jan 2025"], [0, "02 Jan 2025", "02 Dec 2024"], [0, "02 Dec 2024", "02 Nov 2024"], [0, "02 Nov 2024", "02 Oct 2024"], [0, "02 Oct 2024", "02 Sep 2024"], [0, "02 Sep 2024", "02 Aug 2024"], [0, "02 Aug 2024", "02 Jul 2024"], [0, "02 Jul 2024", "02 Jun 2024"], [0, "02 Jun 2024", "02 May 2024"], [0, "02 May 2024", "02 Apr 2024"], [0, "02 Apr 2024", "02 Mar 2024"], [0, "02 Mar 2024", "02 Feb 2024"], [0, "02 Feb 2024", "02 Jan 2024"], [0, "02 Jan 2024", "02 Dec 2023"], [0, "02 Dec 2023", "02 Nov 2023"], [0, "02 Nov 2023", "02 Oct 2023"], [0, "02 Oct 2023", "02 Sep 2023"], [0, "02 Sep 2023", "02 Aug 2023"], [0, "02 Aug 2023", "02 Jul 2023"], [0, "02 Jul 2023", "02 Jun 2023"], [0, "02 Jun 2023", "02 May 2023"], [0, "02 May 2023", "02 Apr 2023"], [0, "02 Apr 2023", "02 Mar 2023"], [0, "02 Mar 2023", "02 Feb 2023"], [0, "02 Feb 2023", "02 Jan 2023"], [0, "02 Jan 2023", "02 Dec 2022"], [0, "02 Dec 2022", "02 Nov 2022"], [0, "02 Nov 2022", "02 Oct 2022"], [0, "02 Oct 2022", "02 Sep 2022"], [0, "02 Sep 2022", "02 Aug 2022"], [0, "02 Aug 2022", "02 Jul 2022"], [0, "02 Jul 2022", "02 Jun 2022"], [0, "02 Jun 2022", "02 May 2022"], [0, "02 May 2022", "02 Apr 2022"], [0, "02 Apr 2022", "02 Mar 2022"], [0, "02 Mar 2022", "02 Feb 2022"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#21BA45"}, "name": "0.0% younger than 3 years", "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#21BA45"}, "showlegend": false, "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2022", "02 Jan 2022"], [0, "02 Jan 2022", "02 Dec 2021"], [0, "02 Dec 2021", "02 Nov 2021"], [0, "02 Nov 2021", "02 Oct 2021"], [0, "02 Oct 2021", "02 Sep 2021"], [0, "02 Sep 2021", "02 Aug 2021"], [0, "02 Aug 2021", "02 Jul 2021"], [0, "02 Jul 2021", "02 Jun 2021"], [0, "02 Jun 2021", "02 May 2021"], [0, "02 May 2021", "02 Apr 2021"], [0, "02 Apr 2021", "02 Mar 2021"], [0, "02 Mar 2021", "02 Feb 2021"], [0, "02 Feb 2021", "02 Jan 2021"], [0, "02 Jan 2021", "02 Dec 2020"], [0, "02 Dec 2020", "02 Nov 2020"], [0, "02 Nov 2020", "02 Oct 2020"], [0, "02 Oct 2020", "02 Sep 2020"], [0, "02 Sep 2020", "02 Aug 2020"], [0, "02 Aug 2020", "02 Jul 2020"], [0, "02 Jul 2020", "02 Jun 2020"], [0, "02 Jun 2020", "02 May 2020"], [0, "02 May 2020", "02 Apr 2020"], [0, "02 Apr 2020", "02 Mar 2020"], [0, "02 Mar 2020", "02 Feb 2020"], [0, "02 Feb 2020", "02 Jan 2020"], [0, "02 Jan 2020", "02 Dec 2019"], [0, "02 Dec 2019", "02 Nov 2019"], [0, "02 Nov 2019", "02 Oct 2019"], [0, "02 Oct 2019", "02 Sep 2019"], [0, "02 Sep 2019", "02 Aug 2019"], [0, "02 Aug 2019", "02 Jul 2019"], [0, "02 Jul 2019", "02 Jun 2019"], [0, "02 Jun 2019", "02 May 2019"], [0, "02 May 2019", "02 Apr 2019"], [0, "02 Apr 2019", "02 Mar 2019"], [0, "02 Mar 2019", "02 Feb 2019"], [0, "02 Feb 2019", "02 Jan 2019"], [0, "02 Jan 2019", "02 Dec 2018"], [0, "02 Dec 2018", "02 Nov 2018"], [0, "02 Nov 2018", "02 Oct 2018"], [0, "02 Oct 2018", "02 Sep 2018"], [0, "02 Sep 2018", "02 Aug 2018"], [0, "02 Aug 2018", "02 Jul 2018"], [0, "02 Jul 2018", "02 Jun 2018"], [0, "02 Jun 2018", "02 May 2018"], [0, "02 May 2018", "02 Apr 2018"], [0, "02 Apr 2018", "02 Mar 2018"], [0, "02 Mar 2018", "02 Feb 2018"], [0, "02 Feb 2018", "02 Jan 2018"], [0, "02 Jan 2018", "02 Dec 2017"], [0, "02 Dec 2017", "02 Nov 2017"], [0, "02 Nov 2017", "02 Oct 2017"], [0, "02 Oct 2017", "02 Sep 2017"], [0, "02 Sep 2017", "02 Aug 2017"], [0, "02 Aug 2017", "02 Jul 2017"], [0, "02 Jul 2017", "02 Jun 2017"], [0, "02 Jun 2017", "02 May 2017"], [0, "02 May 2017", "02 Apr 2017"], [0, "02 Apr 2017", "02 Mar 2017"], [0, "02 Mar 2017", "02 Feb 2017"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#FBBD08"}, "name": "0.0% between 3 years and 8 years", "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#FBBD08"}, "showlegend": false, "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2017", "02 Jan 2017"], [0, "02 Jan 2017", "02 Dec 2016"], [0, "02 Dec 2016", "02 Nov 2016"], [0, "02 Nov 2016", "02 Oct 2016"], [0, "02 Oct 2016", "02 Sep 2016"], [0, "02 Sep 2016", "02 Aug 2016"], [0, "02 Aug 2016", "02 Jul 2016"], [0, "02 Jul 2016", "02 Jun 2016"], [0, "02 Jun 2016", "02 May 2016"], [0, "02 May 2016", "02 Apr 2016"], [0, "02 Apr 2016", "02 Mar 2016"], [0, "02 Mar 2016", "02 Feb 2016"], [0, "02 Feb 2016", "02 Jan 2016"], [0, "02 Jan 2016", "02 Dec 2015"], [0, "02 Dec 2015", "02 Nov 2015"], [0, "02 Nov 2015", "02 Oct 2015"], [0, "02 Oct 2015", "02 Sep 2015"], [0, "02 Sep 2015", "02 Aug 2015"], [0, "02 Aug 2015", "02 Jul 2015"], [0, "02 Jul 2015", "02 Jun 2015"], [0, "02 Jun 2015", "02 May 2015"], [0, "02 May 2015", "02 Apr 2015"], [0, "02 Apr 2015", "02 Mar 2015"], [0, "02 Mar 2015", "02 Feb 2015"], [169.0, "02 Feb 2015", "02 Jan 2015"], [500.0, "02 Jan 2015", "02 Dec 2014"], [66.0, "02 Dec 2014", "02 Nov 2014"], [298.0, "02 Nov 2014", "02 Oct 2014"], [656.0, "02 Oct 2014", "02 Sep 2014"], [152.0, "02 Sep 2014", "02 Aug 2014"], [150.0, "02 Aug 2014", "02 Jul 2014"], [73.0, "02 Jul 2014", "02 Jun 2014"], [93.0, "02 Jun 2014", "02 May 2014"], [175.0, "02 May 2014", "02 Apr 2014"], [480.0, "02 Apr 2014", "02 Mar 2014"], [248.0, "02 Mar 2014", "02 Feb 2014"], [445.0, "02 Feb 2014", "02 Jan 2014"], [415.0, "02 Jan 2014", "02 Dec 2013"], [100.0, "02 Dec 2013", "02 Nov 2013"], [74.0, "02 Nov 2013", "02 Oct 2013"], [117.0, "02 Oct 2013", "02 Sep 2013"], [34.0, "02 Sep 2013", "02 Aug 2013"], [54.0, "02 Aug 2013", "02 Jul 2013"], [10.0, "02 Jul 2013", "02 Jun 2013"], [191.0, "02 Jun 2013", "02 May 2013"], [115.0, "02 May 2013", "02 Apr 2013"], [90.0, "02 Apr 2013", "02 Mar 2013"], [4.0, "02 Mar 2013", "02 Feb 2013"], [46.0, "02 Feb 2013", "02 Jan 2013"], [2.0, "02 Jan 2013", "02 Dec 2012"], [14.0, "02 Dec 2012", "02 Nov 2012"], [7.0, "02 Nov 2012", "02 Oct 2012"], [56.0, "02 Oct 2012", "02 Sep 2012"], [10.0, "02 Sep 2012", "02 Aug 2012"], [181.0, "02 Aug 2012", "02 Jul 2012"], [32.0, "02 Jul 2012", "02 Jun 2012"], [14.0, "02 Jun 2012", "02 May 2012"], [18.0, "02 May 2012", "02 Apr 2012"], [2.0, "02 Apr 2012", "02 Mar 2012"], [3.0, "02 Mar 2012", "02 Feb 2012"], [11.0, "02 Feb 2012", "02 Jan 2012"], [2.0, "02 Jan 2012", "02 Dec 2011"], [0.0, "02 Dec 2011", "02 Nov 2011"], [0.0, "02 Nov 2011", "02 Oct 2011"], [12.0, "02 Oct 2011", "02 Sep 2011"], [42.0, "02 Sep 2011", "02 Aug 2011"], [13.0, "02 Aug 2011", "02 Jul 2011"], [9.0, "02 Jul 2011", "02 Jun 2011"], [0.0, "02 Jun 2011", "02 May 2011"], [7.0, "02 May 2011", "02 Apr 2011"], [4.0, "02 Apr 2011", "02 Mar 2011"], [54.0, "02 Mar 2011", "02 Feb 2011"], [47.0, "02 Feb 2011", "02 Jan 2011"], [37.0, "02 Jan 2011", "02 Dec 2010"], [5.0, "02 Dec 2010", "02 Nov 2010"], [0.0, "02 Nov 2010", "02 Oct 2010"], [3.0, "02 Oct 2010", "02 Sep 2010"], [0.0, "02 Sep 2010", "02 Aug 2010"], [0.0, "02 Aug 2010", "02 Jul 2010"], [0.0, "02 Jul 2010", "02 Jun 2010"], [0.0, "02 Jun 2010", "02 May 2010"], [0.0, "02 May 2010", "02 Apr 2010"], [1.0, "02 Apr 2010", "02 Mar 2010"], [0.0, "02 Mar 2010", "02 Feb 2010"], [0.0, "02 Feb 2010", "02 Jan 2010"], [0.0, "02 Jan 2010", "02 Dec 2009"], [0.0, "02 Dec 2009", "02 Nov 2009"], [0.0, "02 Nov 2009", "02 Oct 2009"], [0.0, "02 Oct 2009", "02 Sep 2009"], [0.0, "02 Sep 2009", "02 Aug 2009"], [0.0, "02 Aug 2009", "02 Jul 2009"], [0.0, "02 Jul 2009", "02 Jun 2009"], [0.0, "02 Jun 2009", "02 May 2009"], [0.0, "02 May 2009", "02 Apr 2009"], [0.0, "02 Apr 2009", "02 Mar 2009"], [0.0, "02 Mar 2009", "02 Feb 2009"], [0.0, "02 Feb 2009", "02 Jan 2009"], [0.0, "02 Jan 2009", "02 Dec 2008"], [0.0, "02 Dec 2008", "02 Nov 2008"], [0.0, "02 Nov 2008", "02 Oct 2008"], [0.0, "02 Oct 2008", "02 Sep 2008"], [1.0, "02 Sep 2008", "02 Aug 2008"], [0.0, "02 Aug 2008", "02 Jul 2008"], [0.0, "02 Jul 2008", "02 Jun 2008"], [0.0, "02 Jun 2008", "02 May 2008"], [0.0, "02 May 2008", "02 Apr 2008"], [0.0, "02 Apr 2008", "02 Mar 2008"], [0.0, "02 Mar 2008", "02 Feb 2008"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#DB2828"}, "name": "100.0% older than 8 years", "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03163609135155372, 0.09359790340696368, 0.012354923249719206, 0.055784350430550356, 0.12280044926993636, 0.02845376263571696, 0.028079371022089104, 0.013665293897416698, 0.017409210033695246, 0.03275926619243729, 0.08985398727068514, 0.04642456008985399, 0.08330213403219767, 0.07768625982777985, 0.018719580681392737, 0.013852489704230626, 0.021901909397229503, 0.00636465743167353, 0.010108573567952079, 0.0018719580681392737, 0.035754399101460124, 0.02152751778360165, 0.01684762261325346, 0.0007487832272557095, 0.008611007113440658, 0.00037439161362785476, 0.002620741295394983, 0.0013103706476974915, 0.010482965181579932, 0.0018719580681392737, 0.03388244103332085, 0.005990265818045676, 0.002620741295394983, 0.0033695245226506927, 0.00037439161362785476, 0.0005615874204417821, 0.0020591538749532012, 0.00037439161362785476, 0.0, 0.0, 0.0022463496817671283, 0.00786222388618495, 0.002433545488581056, 0.0016847622613253464, 0.0, 0.0013103706476974915, 0.0007487832272557095, 0.010108573567952079, 0.008798202920254586, 0.006926244852115313, 0.0009359790340696368, 0.0, 0.0005615874204417821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#DB2828"}, "showlegend": false, "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169.0, 500.0, 66.0, 298.0, 656.0, 152.0, 150.0, 73.0, 93.0, 175.0, 480.0, 248.0, 445.0, 415.0, 100.0, 74.0, 117.0, 34.0, 54.0, 10.0, 191.0, 115.0, 90.0, 4.0, 46.0, 2.0, 14.0, 7.0, 56.0, 10.0, 181.0, 32.0, 14.0, 18.0, 2.0, 3.0, 11.0, 2.0, 0.0, 0.0, 12.0, 42.0, 13.0, 9.0, 0.0, 7.0, 4.0, 54.0, 47.0, 37.0, 5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar", "xaxis": "x", "yaxis": "y2"}], "layout": {"xaxis": {"anchor": "y", "domain": [0.0, 0.94], "title": {"text": "Date of Last Edit"}, "minor": {"ticks": "inside", "dtick": "M1", "tickcolor": "rgba(128,128,128,0.66)"}, "ticklabelmode": "period", "tickformat": "%b %Y", "ticks": "outside", "tick0": "2008-03-02T00:00:00Z"}, "yaxis": {"anchor": "x", "domain": [0.0, 1.0], "title": {"text": "Features [%]"}, "tickformatstops": [{"dtickrange": [null, 0.001], "value": ".2%"}, {"dtickrange": [0.001, 0.01], "value": ".1%"}, {"dtickrange": [0.01, 0.1], "value": ".0%"}, {"dtickrange": [0.1, null], "value": ".0%"}]}, "yaxis2": {"anchor": "x", "overlaying": "y", "side": "right", "title": {"text": "Features [#]"}, "tickformat": ".", "griddash": "dash"}, "title": {"text": "Currentness"}, "legend": {"title": {"text": "Last Edit to a Feature"}, "x": 0.02, "y": 0.95, "bgcolor": "rgba(255,255,255,0.66)"}}} +{"data": [{"customdata": [[0, "02 Feb 2025", "02 Jan 2025"], [0, "02 Jan 2025", "02 Dec 2024"], [0, "02 Dec 2024", "02 Nov 2024"], [0, "02 Nov 2024", "02 Oct 2024"], [0, "02 Oct 2024", "02 Sep 2024"], [0, "02 Sep 2024", "02 Aug 2024"], [0, "02 Aug 2024", "02 Jul 2024"], [0, "02 Jul 2024", "02 Jun 2024"], [0, "02 Jun 2024", "02 May 2024"], [0, "02 May 2024", "02 Apr 2024"], [0, "02 Apr 2024", "02 Mar 2024"], [0, "02 Mar 2024", "02 Feb 2024"], [0, "02 Feb 2024", "02 Jan 2024"], [0, "02 Jan 2024", "02 Dec 2023"], [0, "02 Dec 2023", "02 Nov 2023"], [0, "02 Nov 2023", "02 Oct 2023"], [0, "02 Oct 2023", "02 Sep 2023"], [0, "02 Sep 2023", "02 Aug 2023"], [0, "02 Aug 2023", "02 Jul 2023"], [0, "02 Jul 2023", "02 Jun 2023"], [0, "02 Jun 2023", "02 May 2023"], [0, "02 May 2023", "02 Apr 2023"], [0, "02 Apr 2023", "02 Mar 2023"], [0, "02 Mar 2023", "02 Feb 2023"], [0, "02 Feb 2023", "02 Jan 2023"], [0, "02 Jan 2023", "02 Dec 2022"], [0, "02 Dec 2022", "02 Nov 2022"], [0, "02 Nov 2022", "02 Oct 2022"], [0, "02 Oct 2022", "02 Sep 2022"], [0, "02 Sep 2022", "02 Aug 2022"], [0, "02 Aug 2022", "02 Jul 2022"], [0, "02 Jul 2022", "02 Jun 2022"], [0, "02 Jun 2022", "02 May 2022"], [0, "02 May 2022", "02 Apr 2022"], [0, "02 Apr 2022", "02 Mar 2022"], [0, "02 Mar 2022", "02 Feb 2022"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#21BA45"}, "name": "0.0% younger than 3 years", "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#21BA45"}, "showlegend": false, "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2022", "02 Jan 2022"], [0, "02 Jan 2022", "02 Dec 2021"], [0, "02 Dec 2021", "02 Nov 2021"], [0, "02 Nov 2021", "02 Oct 2021"], [0, "02 Oct 2021", "02 Sep 2021"], [0, "02 Sep 2021", "02 Aug 2021"], [0, "02 Aug 2021", "02 Jul 2021"], [0, "02 Jul 2021", "02 Jun 2021"], [0, "02 Jun 2021", "02 May 2021"], [0, "02 May 2021", "02 Apr 2021"], [0, "02 Apr 2021", "02 Mar 2021"], [0, "02 Mar 2021", "02 Feb 2021"], [0, "02 Feb 2021", "02 Jan 2021"], [0, "02 Jan 2021", "02 Dec 2020"], [0, "02 Dec 2020", "02 Nov 2020"], [0, "02 Nov 2020", "02 Oct 2020"], [0, "02 Oct 2020", "02 Sep 2020"], [0, "02 Sep 2020", "02 Aug 2020"], [0, "02 Aug 2020", "02 Jul 2020"], [0, "02 Jul 2020", "02 Jun 2020"], [0, "02 Jun 2020", "02 May 2020"], [0, "02 May 2020", "02 Apr 2020"], [0, "02 Apr 2020", "02 Mar 2020"], [0, "02 Mar 2020", "02 Feb 2020"], [0, "02 Feb 2020", "02 Jan 2020"], [0, "02 Jan 2020", "02 Dec 2019"], [0, "02 Dec 2019", "02 Nov 2019"], [0, "02 Nov 2019", "02 Oct 2019"], [0, "02 Oct 2019", "02 Sep 2019"], [0, "02 Sep 2019", "02 Aug 2019"], [0, "02 Aug 2019", "02 Jul 2019"], [0, "02 Jul 2019", "02 Jun 2019"], [0, "02 Jun 2019", "02 May 2019"], [0, "02 May 2019", "02 Apr 2019"], [0, "02 Apr 2019", "02 Mar 2019"], [0, "02 Mar 2019", "02 Feb 2019"], [0, "02 Feb 2019", "02 Jan 2019"], [0, "02 Jan 2019", "02 Dec 2018"], [0, "02 Dec 2018", "02 Nov 2018"], [0, "02 Nov 2018", "02 Oct 2018"], [0, "02 Oct 2018", "02 Sep 2018"], [0, "02 Sep 2018", "02 Aug 2018"], [0, "02 Aug 2018", "02 Jul 2018"], [0, "02 Jul 2018", "02 Jun 2018"], [0, "02 Jun 2018", "02 May 2018"], [0, "02 May 2018", "02 Apr 2018"], [0, "02 Apr 2018", "02 Mar 2018"], [0, "02 Mar 2018", "02 Feb 2018"], [0, "02 Feb 2018", "02 Jan 2018"], [0, "02 Jan 2018", "02 Dec 2017"], [0, "02 Dec 2017", "02 Nov 2017"], [0, "02 Nov 2017", "02 Oct 2017"], [0, "02 Oct 2017", "02 Sep 2017"], [0, "02 Sep 2017", "02 Aug 2017"], [0, "02 Aug 2017", "02 Jul 2017"], [0, "02 Jul 2017", "02 Jun 2017"], [0, "02 Jun 2017", "02 May 2017"], [0, "02 May 2017", "02 Apr 2017"], [0, "02 Apr 2017", "02 Mar 2017"], [0, "02 Mar 2017", "02 Feb 2017"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#FBBD08"}, "name": "0.0% between 3 years and 8 years", "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#FBBD08"}, "showlegend": false, "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2017", "02 Jan 2017"], [0, "02 Jan 2017", "02 Dec 2016"], [0, "02 Dec 2016", "02 Nov 2016"], [0, "02 Nov 2016", "02 Oct 2016"], [0, "02 Oct 2016", "02 Sep 2016"], [0, "02 Sep 2016", "02 Aug 2016"], [0, "02 Aug 2016", "02 Jul 2016"], [0, "02 Jul 2016", "02 Jun 2016"], [0, "02 Jun 2016", "02 May 2016"], [0, "02 May 2016", "02 Apr 2016"], [0, "02 Apr 2016", "02 Mar 2016"], [0, "02 Mar 2016", "02 Feb 2016"], [0, "02 Feb 2016", "02 Jan 2016"], [0, "02 Jan 2016", "02 Dec 2015"], [0, "02 Dec 2015", "02 Nov 2015"], [0, "02 Nov 2015", "02 Oct 2015"], [0, "02 Oct 2015", "02 Sep 2015"], [0, "02 Sep 2015", "02 Aug 2015"], [0, "02 Aug 2015", "02 Jul 2015"], [0, "02 Jul 2015", "02 Jun 2015"], [0, "02 Jun 2015", "02 May 2015"], [0, "02 May 2015", "02 Apr 2015"], [0, "02 Apr 2015", "02 Mar 2015"], [0, "02 Mar 2015", "02 Feb 2015"], [169.0, "02 Feb 2015", "02 Jan 2015"], [500.0, "02 Jan 2015", "02 Dec 2014"], [66.0, "02 Dec 2014", "02 Nov 2014"], [298.0, "02 Nov 2014", "02 Oct 2014"], [656.0, "02 Oct 2014", "02 Sep 2014"], [152.0, "02 Sep 2014", "02 Aug 2014"], [150.0, "02 Aug 2014", "02 Jul 2014"], [73.0, "02 Jul 2014", "02 Jun 2014"], [93.0, "02 Jun 2014", "02 May 2014"], [175.0, "02 May 2014", "02 Apr 2014"], [480.0, "02 Apr 2014", "02 Mar 2014"], [248.0, "02 Mar 2014", "02 Feb 2014"], [445.0, "02 Feb 2014", "02 Jan 2014"], [415.0, "02 Jan 2014", "02 Dec 2013"], [100.0, "02 Dec 2013", "02 Nov 2013"], [74.0, "02 Nov 2013", "02 Oct 2013"], [117.0, "02 Oct 2013", "02 Sep 2013"], [34.0, "02 Sep 2013", "02 Aug 2013"], [54.0, "02 Aug 2013", "02 Jul 2013"], [10.0, "02 Jul 2013", "02 Jun 2013"], [191.0, "02 Jun 2013", "02 May 2013"], [115.0, "02 May 2013", "02 Apr 2013"], [90.0, "02 Apr 2013", "02 Mar 2013"], [4.0, "02 Mar 2013", "02 Feb 2013"], [46.0, "02 Feb 2013", "02 Jan 2013"], [2.0, "02 Jan 2013", "02 Dec 2012"], [14.0, "02 Dec 2012", "02 Nov 2012"], [7.0, "02 Nov 2012", "02 Oct 2012"], [56.0, "02 Oct 2012", "02 Sep 2012"], [10.0, "02 Sep 2012", "02 Aug 2012"], [181.0, "02 Aug 2012", "02 Jul 2012"], [32.0, "02 Jul 2012", "02 Jun 2012"], [14.0, "02 Jun 2012", "02 May 2012"], [18.0, "02 May 2012", "02 Apr 2012"], [2.0, "02 Apr 2012", "02 Mar 2012"], [3.0, "02 Mar 2012", "02 Feb 2012"], [11.0, "02 Feb 2012", "02 Jan 2012"], [2.0, "02 Jan 2012", "02 Dec 2011"], [0.0, "02 Dec 2011", "02 Nov 2011"], [0.0, "02 Nov 2011", "02 Oct 2011"], [12.0, "02 Oct 2011", "02 Sep 2011"], [42.0, "02 Sep 2011", "02 Aug 2011"], [13.0, "02 Aug 2011", "02 Jul 2011"], [9.0, "02 Jul 2011", "02 Jun 2011"], [0.0, "02 Jun 2011", "02 May 2011"], [7.0, "02 May 2011", "02 Apr 2011"], [4.0, "02 Apr 2011", "02 Mar 2011"], [54.0, "02 Mar 2011", "02 Feb 2011"], [47.0, "02 Feb 2011", "02 Jan 2011"], [37.0, "02 Jan 2011", "02 Dec 2010"], [5.0, "02 Dec 2010", "02 Nov 2010"], [0.0, "02 Nov 2010", "02 Oct 2010"], [3.0, "02 Oct 2010", "02 Sep 2010"], [0.0, "02 Sep 2010", "02 Aug 2010"], [0.0, "02 Aug 2010", "02 Jul 2010"], [0.0, "02 Jul 2010", "02 Jun 2010"], [0.0, "02 Jun 2010", "02 May 2010"], [0.0, "02 May 2010", "02 Apr 2010"], [1.0, "02 Apr 2010", "02 Mar 2010"], [0.0, "02 Mar 2010", "02 Feb 2010"], [0.0, "02 Feb 2010", "02 Jan 2010"], [0.0, "02 Jan 2010", "02 Dec 2009"], [0.0, "02 Dec 2009", "02 Nov 2009"], [0.0, "02 Nov 2009", "02 Oct 2009"], [0.0, "02 Oct 2009", "02 Sep 2009"], [0.0, "02 Sep 2009", "02 Aug 2009"], [0.0, "02 Aug 2009", "02 Jul 2009"], [0.0, "02 Jul 2009", "02 Jun 2009"], [0.0, "02 Jun 2009", "02 May 2009"], [0.0, "02 May 2009", "02 Apr 2009"], [0.0, "02 Apr 2009", "02 Mar 2009"], [0.0, "02 Mar 2009", "02 Feb 2009"], [0.0, "02 Feb 2009", "02 Jan 2009"], [0.0, "02 Jan 2009", "02 Dec 2008"], [0.0, "02 Dec 2008", "02 Nov 2008"], [0.0, "02 Nov 2008", "02 Oct 2008"], [0.0, "02 Oct 2008", "02 Sep 2008"], [1.0, "02 Sep 2008", "02 Aug 2008"], [0.0, "02 Aug 2008", "02 Jul 2008"], [0.0, "02 Jul 2008", "02 Jun 2008"], [0.0, "02 Jun 2008", "02 May 2008"], [0.0, "02 May 2008", "02 Apr 2008"], [0.0, "02 Apr 2008", "02 Mar 2008"], [0.0, "02 Mar 2008", "02 Feb 2008"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#DB2828"}, "name": "100.0% older than 8 years", "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03163609135155372, 0.09359790340696368, 0.012354923249719206, 0.055784350430550356, 0.12280044926993636, 0.02845376263571696, 0.028079371022089104, 0.013665293897416698, 0.017409210033695246, 0.03275926619243729, 0.08985398727068514, 0.04642456008985399, 0.08330213403219767, 0.07768625982777985, 0.018719580681392737, 0.013852489704230626, 0.021901909397229503, 0.00636465743167353, 0.010108573567952079, 0.0018719580681392737, 0.035754399101460124, 0.02152751778360165, 0.01684762261325346, 0.0007487832272557095, 0.008611007113440658, 0.00037439161362785476, 0.002620741295394983, 0.0013103706476974915, 0.010482965181579932, 0.0018719580681392737, 0.03388244103332085, 0.005990265818045676, 0.002620741295394983, 0.0033695245226506927, 0.00037439161362785476, 0.0005615874204417821, 0.0020591538749532012, 0.00037439161362785476, 0.0, 0.0, 0.0022463496817671283, 0.00786222388618495, 0.002433545488581056, 0.0016847622613253464, 0.0, 0.0013103706476974915, 0.0007487832272557095, 0.010108573567952079, 0.008798202920254586, 0.006926244852115313, 0.0009359790340696368, 0.0, 0.0005615874204417821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#DB2828"}, "showlegend": false, "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169.0, 500.0, 66.0, 298.0, 656.0, 152.0, 150.0, 73.0, 93.0, 175.0, 480.0, 248.0, 445.0, 415.0, 100.0, 74.0, 117.0, 34.0, 54.0, 10.0, 191.0, 115.0, 90.0, 4.0, 46.0, 2.0, 14.0, 7.0, 56.0, 10.0, 181.0, 32.0, 14.0, 18.0, 2.0, 3.0, 11.0, 2.0, 0.0, 0.0, 12.0, 42.0, 13.0, 9.0, 0.0, 7.0, 4.0, 54.0, 47.0, 37.0, 5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar", "xaxis": "x", "yaxis": "y2"}], "layout": {"xaxis": {"anchor": "y", "domain": [0.0, 0.94], "title": {"text": "Date of Last Edit"}, "minor": {"ticks": "inside", "dtick": "M1", "tickcolor": "rgba(128,128,128,0.66)"}, "ticklabelmode": "period", "tickformat": "%b %Y", "ticks": "outside", "tick0": "2008-03-02T00:00:00Z"}, "yaxis": {"anchor": "x", "domain": [0.0, 1.0], "title": {"text": "Features [%]"}, "tickformatstops": [{"dtickrange": [null, 0.001], "value": ".2%"}, {"dtickrange": [0.001, 0.01], "value": ".1%"}, {"dtickrange": [0.01, 0.1], "value": ".0%"}, {"dtickrange": [0.1, null], "value": ".0%"}]}, "yaxis2": {"anchor": "x", "overlaying": "y", "side": "right", "title": {"text": "Features [#]"}, "tickformat": ".", "griddash": "dash"}, "title": {"text": "Currentness"}, "legend": {"title": {"text": "Last Edit to a Feature"}, "x": 0.02, "y": 0.95, "bgcolor": "rgba(255,255,255,0.66)"}, "images": [{"layer": "above", "opacity": 0.3, "sizex": 0.3, "sizey": 0.3, "sizing": "contain", "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", "x": 0.759, "xref": "paper", "y": 1, "yref": "paper"}]}} From 0e26aca4e17d9e641a3a1e8b3a79c923446e4327 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 11:49:56 +0200 Subject: [PATCH 05/11] add logo to thematic accuracy figures --- .../land_cover_thematic_accuracy/indicator.py | 33 +++++++++++++++++++ ...y.py-test_figure_multi_class.approved.json | 14 ++++++++ ....py-test_figure_single_class.approved.json | 14 ++++++++ 3 files changed, 61 insertions(+) diff --git a/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py b/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py index d3c561595..94f0ee809 100644 --- a/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py +++ b/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py @@ -254,9 +254,25 @@ def _create_figure_multi_class(self): ), ) + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.92, + y=1, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def _create_figure_single_class(self): clc_class_level_1 = CorineLandCoverClassLevel1(self.clc_class.value[0]) @@ -291,6 +307,23 @@ def _create_figure_single_class(self): ticktext=class_labels, ), ) + + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.92, + y=0.02, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="below", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json index 49380ea11..7c933aa74 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json @@ -203,6 +203,20 @@ ], "layout": { "autotypenumbers": "strict", + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.92, + "xref": "paper", + "y": 1, + "yref": "paper" + } + ], "legend": { "orientation": "h", "x": 0, diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json index bfc9dff97..4ba284835 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json @@ -72,6 +72,20 @@ } ], "layout": { + "images": [ + { + "layer": "below", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.92, + "xref": "paper", + "y": 0.02, + "yref": "paper" + } + ], "xaxis": { "ticktext": [ "Other classes", From a7310fb1d8004559d6dc3b26ae00e5edd9012d05 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 12:17:58 +0200 Subject: [PATCH 06/11] add logo on mapping saturation figure --- .../indicators/mapping_saturation/indicator.py | 16 ++++++++++++++++ ...y-TestFigure-test_create_figure.approved.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ohsome_quality_api/indicators/mapping_saturation/indicator.py b/ohsome_quality_api/indicators/mapping_saturation/indicator.py index 455b378c8..8751cfcd0 100644 --- a/ohsome_quality_api/indicators/mapping_saturation/indicator.py +++ b/ohsome_quality_api/indicators/mapping_saturation/indicator.py @@ -208,9 +208,25 @@ def create_figure(self) -> None: # fixed legend, because we do not expect high contributions in 2008 fig.update_legends(x=0.02, y=0.85, bgcolor="rgba(255,255,255,0.66)") + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.815, + y=0.24, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def check_edge_cases(self) -> str: """Check edge cases. diff --git a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json index 43f61bbe1..503def0ad 100644 --- a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json @@ -1 +1 @@ -{"data": [{"line": {"color": "#2185D0"}, "name": "OSM data", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [1, 1, 1, 1, 1, 4, 44, 114, 226, 240, 250, 264, 270, 273, 277, 296, 304, 305, 424, 428, 470, 480, 496, 500, 541, 553, 555, 605, 608, 629, 635, 653, 658, 693, 693, 1009, 5662, 7188, 8545, 8721, 8918, 8971, 9216, 9335, 9593, 9644, 9657, 9696, 9991, 10337, 10441, 10457, 10674, 10760, 10876, 11396, 11448, 11636, 11685, 11847, 11933, 12159, 12438, 13211, 13883, 14785, 14874, 14991, 15171, 15479, 15886, 17034, 18142, 19207, 20021, 20698, 21002, 21114, 21305, 22057, 22262, 22424, 22602, 22655, 22893, 22943, 23010, 23054, 23104, 23124, 23195, 23217, 23358, 23385, 23440, 23527, 23595, 24197, 24201, 24352, 24530, 25042, 25084, 25261, 25641, 25651, 25699, 25716, 25842, 25935, 25939, 25978, 26076, 26146, 26317, 26306, 26350, 26389, 26415, 26642, 26729, 27613, 28067, 28128, 28173, 28176, 28181, 28182, 28182, 28185, 28231, 28273, 28317, 28335, 28346, 28388, 28411, 28480, 28479, 28476, 28495, 28505, 28509, 28529, 28538, 28542, 28556, 28585, 28614, 28709, 28731, 28756, 28759, 28814, 28828, 28838, 28835, 28845, 28905, 28900, 28900, 28965, 28973, 28979, 29004, 29007, 28999, 29074, 29150, 29234, 29312, 29480, 29513, 29537, 29563, 29574, 29601, 29602, 29607, 29615, 29628, 29650, 29658, 29775, 29721, 29786, 29870, 29934, 29942, 29936, 29947, 29948, 29957, 29964, 29969, 29981, 30034, 30070, 30093, 30077, 30093, 30100, 30259, 30263, 30258, 30337]}, {"line": {"color": "#DB2828"}, "name": "Modelled saturation curve", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [-1458, -1371, -1280, -1185, -1086, -983, -877, -765, -649, -529, -404, -274, -139, 1, 146, 297, 454, 616, 784, 958, 1138, 1324, 1516, 1715, 1921, 2133, 2351, 2577, 2809, 3048, 3294, 3547, 3807, 4073, 4347, 4627, 4914, 5208, 5509, 5816, 6129, 6449, 6775, 7106, 7443, 7786, 8134, 8486, 8843, 9205, 9570, 9939, 10311, 10687, 11064, 11444, 11826, 12209, 12592, 12977, 13361, 13745, 14128, 14510, 14891, 15269, 15645, 16018, 16388, 16755, 17117, 17476, 17830, 18179, 18523, 18862, 19195, 19523, 19844, 20159, 20468, 20771, 21067, 21356, 21639, 21914, 22183, 22445, 22700, 22948, 23189, 23423, 23651, 23871, 24085, 24293, 24494, 24688, 24876, 25058, 25234, 25403, 25567, 25725, 25878, 26025, 26167, 26303, 26434, 26561, 26683, 26800, 26913, 27021, 27125, 27225, 27321, 27413, 27501, 27586, 27668, 27746, 27821, 27893, 27962, 28028, 28091, 28152, 28210, 28265, 28319, 28370, 28418, 28465, 28510, 28553, 28594, 28633, 28670, 28706, 28740, 28773, 28804, 28834, 28863, 28890, 28917, 28942, 28966, 28988, 29010, 29031, 29051, 29070, 29088, 29106, 29122, 29138, 29153, 29168, 29182, 29195, 29208, 29220, 29231, 29242, 29253, 29263, 29272, 29281, 29290, 29298, 29306, 29314, 29321, 29328, 29335, 29341, 29347, 29353, 29358, 29364, 29369, 29373, 29378, 29382, 29386, 29390, 29394, 29398, 29401, 29405, 29408, 29411, 29414, 29416, 29419, 29421, 29424, 29426, 29428, 29430, 29432, 29434, 29436, 29438]}, {"hovertext": "Estimated total data: scrubbed", "line": {"color": "#DB2828", "dash": "dash"}, "name": "Estimated total data", "showlegend": true, "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473]}], "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": [1.0, 31854], "title": {"text": "Count"}}}} +{"data": [{"line": {"color": "#2185D0"}, "name": "OSM data", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [1, 1, 1, 1, 1, 4, 44, 114, 226, 240, 250, 264, 270, 273, 277, 296, 304, 305, 424, 428, 470, 480, 496, 500, 541, 553, 555, 605, 608, 629, 635, 653, 658, 693, 693, 1009, 5662, 7188, 8545, 8721, 8918, 8971, 9216, 9335, 9593, 9644, 9657, 9696, 9991, 10337, 10441, 10457, 10674, 10760, 10876, 11396, 11448, 11636, 11685, 11847, 11933, 12159, 12438, 13211, 13883, 14785, 14874, 14991, 15171, 15479, 15886, 17034, 18142, 19207, 20021, 20698, 21002, 21114, 21305, 22057, 22262, 22424, 22602, 22655, 22893, 22943, 23010, 23054, 23104, 23124, 23195, 23217, 23358, 23385, 23440, 23527, 23595, 24197, 24201, 24352, 24530, 25042, 25084, 25261, 25641, 25651, 25699, 25716, 25842, 25935, 25939, 25978, 26076, 26146, 26317, 26306, 26350, 26389, 26415, 26642, 26729, 27613, 28067, 28128, 28173, 28176, 28181, 28182, 28182, 28185, 28231, 28273, 28317, 28335, 28346, 28388, 28411, 28480, 28479, 28476, 28495, 28505, 28509, 28529, 28538, 28542, 28556, 28585, 28614, 28709, 28731, 28756, 28759, 28814, 28828, 28838, 28835, 28845, 28905, 28900, 28900, 28965, 28973, 28979, 29004, 29007, 28999, 29074, 29150, 29234, 29312, 29480, 29513, 29537, 29563, 29574, 29601, 29602, 29607, 29615, 29628, 29650, 29658, 29775, 29721, 29786, 29870, 29934, 29942, 29936, 29947, 29948, 29957, 29964, 29969, 29981, 30034, 30070, 30093, 30077, 30093, 30100, 30259, 30263, 30258, 30337]}, {"line": {"color": "#DB2828"}, "name": "Modelled saturation curve", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [-1458, -1371, -1280, -1185, -1086, -983, -877, -765, -649, -529, -404, -274, -139, 1, 146, 297, 454, 616, 784, 958, 1138, 1324, 1516, 1715, 1921, 2133, 2351, 2577, 2809, 3048, 3294, 3547, 3807, 4073, 4347, 4627, 4914, 5208, 5509, 5816, 6129, 6449, 6775, 7106, 7443, 7786, 8134, 8486, 8843, 9205, 9570, 9939, 10311, 10687, 11064, 11444, 11826, 12209, 12592, 12977, 13361, 13745, 14128, 14510, 14891, 15269, 15645, 16018, 16388, 16755, 17117, 17476, 17830, 18179, 18523, 18862, 19195, 19523, 19844, 20159, 20468, 20771, 21067, 21356, 21639, 21914, 22183, 22445, 22700, 22948, 23189, 23423, 23651, 23871, 24085, 24293, 24494, 24688, 24876, 25058, 25234, 25403, 25567, 25725, 25878, 26025, 26167, 26303, 26434, 26561, 26683, 26800, 26913, 27021, 27125, 27225, 27321, 27413, 27501, 27586, 27668, 27746, 27821, 27893, 27962, 28028, 28091, 28152, 28210, 28265, 28319, 28370, 28418, 28465, 28510, 28553, 28594, 28633, 28670, 28706, 28740, 28773, 28804, 28834, 28863, 28890, 28917, 28942, 28966, 28988, 29010, 29031, 29051, 29070, 29088, 29106, 29122, 29138, 29153, 29168, 29182, 29195, 29208, 29220, 29231, 29242, 29253, 29263, 29272, 29281, 29290, 29298, 29306, 29314, 29321, 29328, 29335, 29341, 29347, 29353, 29358, 29364, 29369, 29373, 29378, 29382, 29386, 29390, 29394, 29398, 29401, 29405, 29408, 29411, 29414, 29416, 29419, 29421, 29424, 29426, 29428, 29430, 29432, 29434, 29436, 29438]}, {"hovertext": "Estimated total data: scrubbed", "line": {"color": "#DB2828", "dash": "dash"}, "name": "Estimated total data", "showlegend": true, "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473]}], "layout": {"images": [{"layer": "above", "opacity": 0.3, "sizex": 0.3, "sizey": 0.3, "sizing": "contain", "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", "x": 0.815, "xref": "paper", "y": 0.24, "yref": "paper"}], "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": [1.0, 31854], "title": {"text": "Count"}}}} From 4f3847a8377ae768b28ebc7a10831a825956f338 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 12:23:24 +0200 Subject: [PATCH 07/11] add logo on road comparison figure --- .../indicators/road_comparison/indicator.py | 16 ++++++++++++++++ ...y-TestFigure-test_create_figure.approved.json | 14 ++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/ohsome_quality_api/indicators/road_comparison/indicator.py b/ohsome_quality_api/indicators/road_comparison/indicator.py index 97e803595..8e82a776b 100644 --- a/ohsome_quality_api/indicators/road_comparison/indicator.py +++ b/ohsome_quality_api/indicators/road_comparison/indicator.py @@ -226,9 +226,25 @@ def create_figure(self) -> None: ), ) + fig.add_layout_image( + dict( + source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + xref="paper", + yref="paper", + x=0.83, + y=1.05, + sizex=0.3, + sizey=0.3, + sizing="contain", + opacity=0.3, + layer="above", + ) + ) + raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw + fig.show() def check_major_edge_cases(self, dataset: str) -> str: """If edge case is present return description if not return empty string.""" diff --git a/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json index fa7fbbe1b..f772acf9e 100644 --- a/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json @@ -44,6 +44,20 @@ ], "layout": { "barmode": "stack", + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.3, + "sizey": 0.3, + "sizing": "contain", + "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "x": 0.83, + "xref": "paper", + "y": 1.05, + "yref": "paper" + } + ], "legend": { "entrywidth": 270, "orientation": "h", From a411c37e500f15857d7c936645480c202fbf7cbf Mon Sep 17 00:00:00 2001 From: Sylvia Date: Mon, 16 Jun 2025 14:58:57 +0200 Subject: [PATCH 08/11] upload heigit logo --- ohsome_quality_api/indicators/heigit_logo.png | Bin 0 -> 80469 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ohsome_quality_api/indicators/heigit_logo.png diff --git a/ohsome_quality_api/indicators/heigit_logo.png b/ohsome_quality_api/indicators/heigit_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5b1e489afc573c67f6bc12eb563ea44a202f31bc GIT binary patch literal 80469 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

fH;7=)twh@m|Rw(+~v- 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

a}XJ8JIK$V$cyuS=8@;o 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 Date: Mon, 16 Jun 2025 16:19:55 +0200 Subject: [PATCH 09/11] changed background logo to invisible background --- .../attribute_completeness/indicator.py | 11 +++++----- .../building_comparison/indicator.py | 9 ++++---- .../indicators/currentness/indicator.py | 11 +++++----- .../land_cover_completeness/indicator.py | 13 +++++------ .../land_cover_thematic_accuracy/indicator.py | 22 +++++++++---------- .../mapping_saturation/indicator.py | 11 +++++----- .../indicators/road_comparison/indicator.py | 11 +++++----- ...st_create_figure[indicator0].approved.json | 10 ++++----- ...st_create_figure[indicator1].approved.json | 10 ++++----- ...estFigure-test_create_figure.approved.json | 8 +++---- ...estFigure-test_create_figure.approved.json | 10 ++++----- ...y.py-test_figure_multi_class.approved.json | 10 ++++----- ....py-test_figure_single_class.approved.json | 10 ++++----- ...estFigure-test_create_figure.approved.json | 2 +- ...estFigure-test_create_figure.approved.json | 10 ++++----- .../test_land_cover_completeness.py | 2 +- 16 files changed, 75 insertions(+), 85 deletions(-) diff --git a/ohsome_quality_api/indicators/attribute_completeness/indicator.py b/ohsome_quality_api/indicators/attribute_completeness/indicator.py index d2de7a4a9..cc55f5301 100644 --- a/ohsome_quality_api/indicators/attribute_completeness/indicator.py +++ b/ohsome_quality_api/indicators/attribute_completeness/indicator.py @@ -190,13 +190,13 @@ def create_figure(self) -> None: fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.42, - y=0.65, - sizex=0.3, - sizey=0.3, + x=0.41, + y=0.55, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", @@ -206,7 +206,6 @@ def create_figure(self) -> None: raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def compute_units_for_all_and_matched(self): if self.topic.aggregation_type == "count": diff --git a/ohsome_quality_api/indicators/building_comparison/indicator.py b/ohsome_quality_api/indicators/building_comparison/indicator.py index 5421b1202..e8904a856 100644 --- a/ohsome_quality_api/indicators/building_comparison/indicator.py +++ b/ohsome_quality_api/indicators/building_comparison/indicator.py @@ -235,13 +235,13 @@ def create_figure(self) -> None: fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", x=0.8, - y=-0.052, - sizex=0.25, - sizey=0.3, + y=-0.15, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", @@ -251,7 +251,6 @@ def create_figure(self) -> None: raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def check_major_edge_cases(self, dataset: str) -> str: """If edge case is present return description if not return empty string.""" diff --git a/ohsome_quality_api/indicators/currentness/indicator.py b/ohsome_quality_api/indicators/currentness/indicator.py index cfcce7cdb..63c4124ba 100644 --- a/ohsome_quality_api/indicators/currentness/indicator.py +++ b/ohsome_quality_api/indicators/currentness/indicator.py @@ -271,13 +271,13 @@ def create_figure(self): fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.759, - y=1, - sizex=0.3, - sizey=0.3, + x=0.02, + y=0.15, + sizex=0.15, + sizey=0.15, sizing="contain", opacity=0.3, layer="above", @@ -287,7 +287,6 @@ def create_figure(self): raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def get_threshold_text(self, color: Color) -> str: up_to_date_str = month_to_year_month(self.up_to_date) diff --git a/ohsome_quality_api/indicators/land_cover_completeness/indicator.py b/ohsome_quality_api/indicators/land_cover_completeness/indicator.py index 8be8af1c3..ef2fbbe80 100644 --- a/ohsome_quality_api/indicators/land_cover_completeness/indicator.py +++ b/ohsome_quality_api/indicators/land_cover_completeness/indicator.py @@ -91,22 +91,19 @@ def create_figure(self) -> None: fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.42, - y=0.65, - sizex=0.3, - sizey=0.3, + x=0.41, + y=0.55, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", ) ) - # fig.update_layout(template='plotly_white') - raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() diff --git a/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py b/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py index 94f0ee809..0cacda4ad 100644 --- a/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py +++ b/ohsome_quality_api/indicators/land_cover_thematic_accuracy/indicator.py @@ -256,13 +256,13 @@ def _create_figure_multi_class(self): fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.92, - y=1, - sizex=0.3, - sizey=0.3, + x=0.85, + y=0.99, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", @@ -272,7 +272,6 @@ def _create_figure_multi_class(self): raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def _create_figure_single_class(self): clc_class_level_1 = CorineLandCoverClassLevel1(self.clc_class.value[0]) @@ -310,13 +309,13 @@ def _create_figure_single_class(self): fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.92, - y=0.02, - sizex=0.3, - sizey=0.3, + x=0.9, + y=-0.06, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="below", @@ -326,4 +325,3 @@ def _create_figure_single_class(self): raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() diff --git a/ohsome_quality_api/indicators/mapping_saturation/indicator.py b/ohsome_quality_api/indicators/mapping_saturation/indicator.py index 8751cfcd0..e92b9dc4e 100644 --- a/ohsome_quality_api/indicators/mapping_saturation/indicator.py +++ b/ohsome_quality_api/indicators/mapping_saturation/indicator.py @@ -210,13 +210,13 @@ def create_figure(self) -> None: fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.815, - y=0.24, - sizex=0.3, - sizey=0.3, + x=0.75, + y=0.15, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", @@ -226,7 +226,6 @@ def create_figure(self) -> None: raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def check_edge_cases(self) -> str: """Check edge cases. diff --git a/ohsome_quality_api/indicators/road_comparison/indicator.py b/ohsome_quality_api/indicators/road_comparison/indicator.py index 8e82a776b..cde5eb336 100644 --- a/ohsome_quality_api/indicators/road_comparison/indicator.py +++ b/ohsome_quality_api/indicators/road_comparison/indicator.py @@ -228,13 +228,13 @@ def create_figure(self) -> None: fig.add_layout_image( dict( - source="https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + source="https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", xref="paper", yref="paper", - x=0.83, - y=1.05, - sizex=0.3, - sizey=0.3, + x=0.78, + y=0.98, + sizex=0.2, + sizey=0.2, sizing="contain", opacity=0.3, layer="above", @@ -244,7 +244,6 @@ def create_figure(self) -> None: raw = fig.to_dict() raw["layout"].pop("template") # remove boilerplate self.result.figure = raw - fig.show() def check_major_edge_cases(self, dataset: str) -> str: """If edge case is present return description if not return empty string.""" diff --git a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json index f352421cf..f02c76e6d 100644 --- a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json +++ b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator0].approved.json @@ -70,13 +70,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.42, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.41, "xref": "paper", - "y": 0.65, + "y": 0.55, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json index f352421cf..f02c76e6d 100644 --- a/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json +++ b/tests/approvals/integrationtests/indicators/test_attribute_completeness.py-TestFigure-test_create_figure[indicator1].approved.json @@ -70,13 +70,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.42, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.41, "xref": "paper", - "y": 0.65, + "y": 0.55, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json index 87e49be58..f63bdf226 100644 --- a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure.approved.json @@ -51,13 +51,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.25, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", "x": 0.8, "xref": "paper", - "y": -0.052, + "y": -0.15, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json index ce4c4c020..da395eac5 100644 --- a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_create_figure.approved.json @@ -1926,13 +1926,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.15, + "sizey": 0.15, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.759, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.02, "xref": "paper", - "y": 1, + "y": 0.15, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json index 7c933aa74..bcbbed0e5 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json @@ -207,13 +207,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.92, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.85, "xref": "paper", - "y": 1, + "y": 0.99, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json index 4ba284835..f5c846d98 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json @@ -76,13 +76,13 @@ { "layer": "below", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.92, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.9, "xref": "paper", - "y": 0.02, + "y": -0.06, "yref": "paper" } ], diff --git a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json index 503def0ad..88c9c1253 100644 --- a/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_mapping_saturation.py-TestFigure-test_create_figure.approved.json @@ -1 +1 @@ -{"data": [{"line": {"color": "#2185D0"}, "name": "OSM data", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [1, 1, 1, 1, 1, 4, 44, 114, 226, 240, 250, 264, 270, 273, 277, 296, 304, 305, 424, 428, 470, 480, 496, 500, 541, 553, 555, 605, 608, 629, 635, 653, 658, 693, 693, 1009, 5662, 7188, 8545, 8721, 8918, 8971, 9216, 9335, 9593, 9644, 9657, 9696, 9991, 10337, 10441, 10457, 10674, 10760, 10876, 11396, 11448, 11636, 11685, 11847, 11933, 12159, 12438, 13211, 13883, 14785, 14874, 14991, 15171, 15479, 15886, 17034, 18142, 19207, 20021, 20698, 21002, 21114, 21305, 22057, 22262, 22424, 22602, 22655, 22893, 22943, 23010, 23054, 23104, 23124, 23195, 23217, 23358, 23385, 23440, 23527, 23595, 24197, 24201, 24352, 24530, 25042, 25084, 25261, 25641, 25651, 25699, 25716, 25842, 25935, 25939, 25978, 26076, 26146, 26317, 26306, 26350, 26389, 26415, 26642, 26729, 27613, 28067, 28128, 28173, 28176, 28181, 28182, 28182, 28185, 28231, 28273, 28317, 28335, 28346, 28388, 28411, 28480, 28479, 28476, 28495, 28505, 28509, 28529, 28538, 28542, 28556, 28585, 28614, 28709, 28731, 28756, 28759, 28814, 28828, 28838, 28835, 28845, 28905, 28900, 28900, 28965, 28973, 28979, 29004, 29007, 28999, 29074, 29150, 29234, 29312, 29480, 29513, 29537, 29563, 29574, 29601, 29602, 29607, 29615, 29628, 29650, 29658, 29775, 29721, 29786, 29870, 29934, 29942, 29936, 29947, 29948, 29957, 29964, 29969, 29981, 30034, 30070, 30093, 30077, 30093, 30100, 30259, 30263, 30258, 30337]}, {"line": {"color": "#DB2828"}, "name": "Modelled saturation curve", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [-1458, -1371, -1280, -1185, -1086, -983, -877, -765, -649, -529, -404, -274, -139, 1, 146, 297, 454, 616, 784, 958, 1138, 1324, 1516, 1715, 1921, 2133, 2351, 2577, 2809, 3048, 3294, 3547, 3807, 4073, 4347, 4627, 4914, 5208, 5509, 5816, 6129, 6449, 6775, 7106, 7443, 7786, 8134, 8486, 8843, 9205, 9570, 9939, 10311, 10687, 11064, 11444, 11826, 12209, 12592, 12977, 13361, 13745, 14128, 14510, 14891, 15269, 15645, 16018, 16388, 16755, 17117, 17476, 17830, 18179, 18523, 18862, 19195, 19523, 19844, 20159, 20468, 20771, 21067, 21356, 21639, 21914, 22183, 22445, 22700, 22948, 23189, 23423, 23651, 23871, 24085, 24293, 24494, 24688, 24876, 25058, 25234, 25403, 25567, 25725, 25878, 26025, 26167, 26303, 26434, 26561, 26683, 26800, 26913, 27021, 27125, 27225, 27321, 27413, 27501, 27586, 27668, 27746, 27821, 27893, 27962, 28028, 28091, 28152, 28210, 28265, 28319, 28370, 28418, 28465, 28510, 28553, 28594, 28633, 28670, 28706, 28740, 28773, 28804, 28834, 28863, 28890, 28917, 28942, 28966, 28988, 29010, 29031, 29051, 29070, 29088, 29106, 29122, 29138, 29153, 29168, 29182, 29195, 29208, 29220, 29231, 29242, 29253, 29263, 29272, 29281, 29290, 29298, 29306, 29314, 29321, 29328, 29335, 29341, 29347, 29353, 29358, 29364, 29369, 29373, 29378, 29382, 29386, 29390, 29394, 29398, 29401, 29405, 29408, 29411, 29414, 29416, 29419, 29421, 29424, 29426, 29428, 29430, 29432, 29434, 29436, 29438]}, {"hovertext": "Estimated total data: scrubbed", "line": {"color": "#DB2828", "dash": "dash"}, "name": "Estimated total data", "showlegend": true, "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473]}], "layout": {"images": [{"layer": "above", "opacity": 0.3, "sizex": 0.3, "sizey": 0.3, "sizing": "contain", "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", "x": 0.815, "xref": "paper", "y": 0.24, "yref": "paper"}], "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": [1.0, 31854], "title": {"text": "Count"}}}} +{"data": [{"line": {"color": "#2185D0"}, "name": "OSM data", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [1, 1, 1, 1, 1, 4, 44, 114, 226, 240, 250, 264, 270, 273, 277, 296, 304, 305, 424, 428, 470, 480, 496, 500, 541, 553, 555, 605, 608, 629, 635, 653, 658, 693, 693, 1009, 5662, 7188, 8545, 8721, 8918, 8971, 9216, 9335, 9593, 9644, 9657, 9696, 9991, 10337, 10441, 10457, 10674, 10760, 10876, 11396, 11448, 11636, 11685, 11847, 11933, 12159, 12438, 13211, 13883, 14785, 14874, 14991, 15171, 15479, 15886, 17034, 18142, 19207, 20021, 20698, 21002, 21114, 21305, 22057, 22262, 22424, 22602, 22655, 22893, 22943, 23010, 23054, 23104, 23124, 23195, 23217, 23358, 23385, 23440, 23527, 23595, 24197, 24201, 24352, 24530, 25042, 25084, 25261, 25641, 25651, 25699, 25716, 25842, 25935, 25939, 25978, 26076, 26146, 26317, 26306, 26350, 26389, 26415, 26642, 26729, 27613, 28067, 28128, 28173, 28176, 28181, 28182, 28182, 28185, 28231, 28273, 28317, 28335, 28346, 28388, 28411, 28480, 28479, 28476, 28495, 28505, 28509, 28529, 28538, 28542, 28556, 28585, 28614, 28709, 28731, 28756, 28759, 28814, 28828, 28838, 28835, 28845, 28905, 28900, 28900, 28965, 28973, 28979, 29004, 29007, 28999, 29074, 29150, 29234, 29312, 29480, 29513, 29537, 29563, 29574, 29601, 29602, 29607, 29615, 29628, 29650, 29658, 29775, 29721, 29786, 29870, 29934, 29942, 29936, 29947, 29948, 29957, 29964, 29969, 29981, 30034, 30070, 30093, 30077, 30093, 30100, 30259, 30263, 30258, 30337]}, {"line": {"color": "#DB2828"}, "name": "Modelled saturation curve", "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [-1458, -1371, -1280, -1185, -1086, -983, -877, -765, -649, -529, -404, -274, -139, 1, 146, 297, 454, 616, 784, 958, 1138, 1324, 1516, 1715, 1921, 2133, 2351, 2577, 2809, 3048, 3294, 3547, 3807, 4073, 4347, 4627, 4914, 5208, 5509, 5816, 6129, 6449, 6775, 7106, 7443, 7786, 8134, 8486, 8843, 9205, 9570, 9939, 10311, 10687, 11064, 11444, 11826, 12209, 12592, 12977, 13361, 13745, 14128, 14510, 14891, 15269, 15645, 16018, 16388, 16755, 17117, 17476, 17830, 18179, 18523, 18862, 19195, 19523, 19844, 20159, 20468, 20771, 21067, 21356, 21639, 21914, 22183, 22445, 22700, 22948, 23189, 23423, 23651, 23871, 24085, 24293, 24494, 24688, 24876, 25058, 25234, 25403, 25567, 25725, 25878, 26025, 26167, 26303, 26434, 26561, 26683, 26800, 26913, 27021, 27125, 27225, 27321, 27413, 27501, 27586, 27668, 27746, 27821, 27893, 27962, 28028, 28091, 28152, 28210, 28265, 28319, 28370, 28418, 28465, 28510, 28553, 28594, 28633, 28670, 28706, 28740, 28773, 28804, 28834, 28863, 28890, 28917, 28942, 28966, 28988, 29010, 29031, 29051, 29070, 29088, 29106, 29122, 29138, 29153, 29168, 29182, 29195, 29208, 29220, 29231, 29242, 29253, 29263, 29272, 29281, 29290, 29298, 29306, 29314, 29321, 29328, 29335, 29341, 29347, 29353, 29358, 29364, 29369, 29373, 29378, 29382, 29386, 29390, 29394, 29398, 29401, 29405, 29408, 29411, 29414, 29416, 29419, 29421, 29424, 29426, 29428, 29430, 29432, 29434, 29436, 29438]}, {"hovertext": "Estimated total data: scrubbed", "line": {"color": "#DB2828", "dash": "dash"}, "name": "Estimated total data", "showlegend": true, "type": "scatter", "x": ["2008-01-01T00:00:00Z", "2008-02-01T00:00:00Z", "2008-03-01T00:00:00Z", "2008-04-01T00:00:00Z", "2008-05-01T00:00:00Z", "2008-06-01T00:00:00Z", "2008-07-01T00:00:00Z", "2008-08-01T00:00:00Z", "2008-09-01T00:00:00Z", "2008-10-01T00:00:00Z", "2008-11-01T00:00:00Z", "2008-12-01T00:00:00Z", "2009-01-01T00:00:00Z", "2009-02-01T00:00:00Z", "2009-03-01T00:00:00Z", "2009-04-01T00:00:00Z", "2009-05-01T00:00:00Z", "2009-06-01T00:00:00Z", "2009-07-01T00:00:00Z", "2009-08-01T00:00:00Z", "2009-09-01T00:00:00Z", "2009-10-01T00:00:00Z", "2009-11-01T00:00:00Z", "2009-12-01T00:00:00Z", "2010-01-01T00:00:00Z", "2010-02-01T00:00:00Z", "2010-03-01T00:00:00Z", "2010-04-01T00:00:00Z", "2010-05-01T00:00:00Z", "2010-06-01T00:00:00Z", "2010-07-01T00:00:00Z", "2010-08-01T00:00:00Z", "2010-09-01T00:00:00Z", "2010-10-01T00:00:00Z", "2010-11-01T00:00:00Z", "2010-12-01T00:00:00Z", "2011-01-01T00:00:00Z", "2011-02-01T00:00:00Z", "2011-03-01T00:00:00Z", "2011-04-01T00:00:00Z", "2011-05-01T00:00:00Z", "2011-06-01T00:00:00Z", "2011-07-01T00:00:00Z", "2011-08-01T00:00:00Z", "2011-09-01T00:00:00Z", "2011-10-01T00:00:00Z", "2011-11-01T00:00:00Z", "2011-12-01T00:00:00Z", "2012-01-01T00:00:00Z", "2012-02-01T00:00:00Z", "2012-03-01T00:00:00Z", "2012-04-01T00:00:00Z", "2012-05-01T00:00:00Z", "2012-06-01T00:00:00Z", "2012-07-01T00:00:00Z", "2012-08-01T00:00:00Z", "2012-09-01T00:00:00Z", "2012-10-01T00:00:00Z", "2012-11-01T00:00:00Z", "2012-12-01T00:00:00Z", "2013-01-01T00:00:00Z", "2013-02-01T00:00:00Z", "2013-03-01T00:00:00Z", "2013-04-01T00:00:00Z", "2013-05-01T00:00:00Z", "2013-06-01T00:00:00Z", "2013-07-01T00:00:00Z", "2013-08-01T00:00:00Z", "2013-09-01T00:00:00Z", "2013-10-01T00:00:00Z", "2013-11-01T00:00:00Z", "2013-12-01T00:00:00Z", "2014-01-01T00:00:00Z", "2014-02-01T00:00:00Z", "2014-03-01T00:00:00Z", "2014-04-01T00:00:00Z", "2014-05-01T00:00:00Z", "2014-06-01T00:00:00Z", "2014-07-01T00:00:00Z", "2014-08-01T00:00:00Z", "2014-09-01T00:00:00Z", "2014-10-01T00:00:00Z", "2014-11-01T00:00:00Z", "2014-12-01T00:00:00Z", "2015-01-01T00:00:00Z", "2015-02-01T00:00:00Z", "2015-03-01T00:00:00Z", "2015-04-01T00:00:00Z", "2015-05-01T00:00:00Z", "2015-06-01T00:00:00Z", "2015-07-01T00:00:00Z", "2015-08-01T00:00:00Z", "2015-09-01T00:00:00Z", "2015-10-01T00:00:00Z", "2015-11-01T00:00:00Z", "2015-12-01T00:00:00Z", "2016-01-01T00:00:00Z", "2016-02-01T00:00:00Z", "2016-03-01T00:00:00Z", "2016-04-01T00:00:00Z", "2016-05-01T00:00:00Z", "2016-06-01T00:00:00Z", "2016-07-01T00:00:00Z", "2016-08-01T00:00:00Z", "2016-09-01T00:00:00Z", "2016-10-01T00:00:00Z", "2016-11-01T00:00:00Z", "2016-12-01T00:00:00Z", "2017-01-01T00:00:00Z", "2017-02-01T00:00:00Z", "2017-03-01T00:00:00Z", "2017-04-01T00:00:00Z", "2017-05-01T00:00:00Z", "2017-06-01T00:00:00Z", "2017-07-01T00:00:00Z", "2017-08-01T00:00:00Z", "2017-09-01T00:00:00Z", "2017-10-01T00:00:00Z", "2017-11-01T00:00:00Z", "2017-12-01T00:00:00Z", "2018-01-01T00:00:00Z", "2018-02-01T00:00:00Z", "2018-03-01T00:00:00Z", "2018-04-01T00:00:00Z", "2018-05-01T00:00:00Z", "2018-06-01T00:00:00Z", "2018-07-01T00:00:00Z", "2018-08-01T00:00:00Z", "2018-09-01T00:00:00Z", "2018-10-01T00:00:00Z", "2018-11-01T00:00:00Z", "2018-12-01T00:00:00Z", "2019-01-01T00:00:00Z", "2019-02-01T00:00:00Z", "2019-03-01T00:00:00Z", "2019-04-01T00:00:00Z", "2019-05-01T00:00:00Z", "2019-06-01T00:00:00Z", "2019-07-01T00:00:00Z", "2019-08-01T00:00:00Z", "2019-09-01T00:00:00Z", "2019-10-01T00:00:00Z", "2019-11-01T00:00:00Z", "2019-12-01T00:00:00Z", "2020-01-01T00:00:00Z", "2020-02-01T00:00:00Z", "2020-03-01T00:00:00Z", "2020-04-01T00:00:00Z", "2020-05-01T00:00:00Z", "2020-06-01T00:00:00Z", "2020-07-01T00:00:00Z", "2020-08-01T00:00:00Z", "2020-09-01T00:00:00Z", "2020-10-01T00:00:00Z", "2020-11-01T00:00:00Z", "2020-12-01T00:00:00Z", "2021-01-01T00:00:00Z", "2021-02-01T00:00:00Z", "2021-03-01T00:00:00Z", "2021-04-01T00:00:00Z", "2021-05-01T00:00:00Z", "2021-06-01T00:00:00Z", "2021-07-01T00:00:00Z", "2021-08-01T00:00:00Z", "2021-09-01T00:00:00Z", "2021-10-01T00:00:00Z", "2021-11-01T00:00:00Z", "2021-12-01T00:00:00Z", "2022-01-01T00:00:00Z", "2022-02-01T00:00:00Z", "2022-03-01T00:00:00Z", "2022-04-01T00:00:00Z", "2022-05-01T00:00:00Z", "2022-06-01T00:00:00Z", "2022-07-01T00:00:00Z", "2022-08-01T00:00:00Z", "2022-09-01T00:00:00Z", "2022-10-01T00:00:00Z", "2022-11-01T00:00:00Z", "2022-12-01T00:00:00Z", "2023-01-01T00:00:00Z", "2023-02-01T00:00:00Z", "2023-03-01T00:00:00Z", "2023-04-01T00:00:00Z", "2023-05-01T00:00:00Z", "2023-06-01T00:00:00Z", "2023-07-01T00:00:00Z", "2023-08-01T00:00:00Z", "2023-09-01T00:00:00Z", "2023-10-01T00:00:00Z", "2023-11-01T00:00:00Z", "2023-12-01T00:00:00Z", "2024-01-01T00:00:00Z", "2024-02-01T00:00:00Z", "2024-03-01T00:00:00Z", "2024-04-01T00:00:00Z", "2024-05-01T00:00:00Z", "2024-06-01T00:00:00Z", "2024-07-01T00:00:00Z", "2024-08-01T00:00:00Z", "2024-09-01T00:00:00Z", "2024-10-01T00:00:00Z", "2024-11-01T00:00:00Z", "2024-12-01T00:00:00Z", "2025-01-01T00:00:00Z", "2025-02-01T00:00:00Z"], "y": [29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473, 29473]}], "layout": {"images": [{"layer": "above", "opacity": 0.3, "sizex": 0.2, "sizey": 0.2, "sizing": "contain", "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", "x": 0.75, "xref": "paper", "y": 0.15, "yref": "paper"}], "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": [1.0, 31854], "title": {"text": "Count"}}}} diff --git a/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json b/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json index f772acf9e..10cfadcfd 100644 --- a/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json +++ b/tests/approvals/integrationtests/indicators/test_road_comparison.py-TestFigure-test_create_figure.approved.json @@ -48,13 +48,13 @@ { "layer": "above", "opacity": 0.3, - "sizex": 0.3, - "sizey": 0.3, + "sizex": 0.2, + "sizey": 0.2, "sizing": "contain", - "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", - "x": 0.83, + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.78, "xref": "paper", - "y": 1.05, + "y": 0.98, "yref": "paper" } ], diff --git a/tests/integrationtests/indicators/test_land_cover_completeness.py b/tests/integrationtests/indicators/test_land_cover_completeness.py index d8b1a995c..388916951 100644 --- a/tests/integrationtests/indicators/test_land_cover_completeness.py +++ b/tests/integrationtests/indicators/test_land_cover_completeness.py @@ -41,7 +41,7 @@ async def test_create_land_cover_completeness_calculate( @pytest.mark.asyncio -# @oqapi_vcr.use_cassette +@oqapi_vcr.use_cassette async def test_create_figure(topic_land_cover, feature_land_cover): indicator = LandCoverCompleteness( topic=topic_land_cover, feature=feature_land_cover From c19259f4b6b7a4f9f4c7e527be04a343218fa735 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Wed, 25 Jun 2025 15:21:05 +0200 Subject: [PATCH 10/11] update approval tests --- ...e-test_create_figure_above_one_th.approved.json | 14 ++++++++++++++ ...re-test_outdated_features_plotting.approved.txt | 2 +- ...curacy.py-test_figure_multi_class.approved.json | 14 ++++++++++++++ ...uracy.py-test_figure_single_class.approved.json | 14 ++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure_above_one_th.approved.json b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure_above_one_th.approved.json index 20b68ca64..f63bdf226 100644 --- a/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure_above_one_th.approved.json +++ b/tests/approvals/integrationtests/indicators/test_building_comparison.py-TestFigure-test_create_figure_above_one_th.approved.json @@ -47,6 +47,20 @@ ], "layout": { "barmode": "group", + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.2, + "sizey": 0.2, + "sizing": "contain", + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.8, + "xref": "paper", + "y": -0.15, + "yref": "paper" + } + ], "legend": { "entrywidth": 270, "orientation": "h", diff --git a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt index c96965978..8d81298c5 100644 --- a/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt +++ b/tests/approvals/integrationtests/indicators/test_currentness.py-TestFigure-test_outdated_features_plotting.approved.txt @@ -1 +1 @@ -{"data": [{"customdata": [[0, "02 Feb 2025", "02 Jan 2025"], [0, "02 Jan 2025", "02 Dec 2024"], [0, "02 Dec 2024", "02 Nov 2024"], [0, "02 Nov 2024", "02 Oct 2024"], [0, "02 Oct 2024", "02 Sep 2024"], [0, "02 Sep 2024", "02 Aug 2024"], [0, "02 Aug 2024", "02 Jul 2024"], [0, "02 Jul 2024", "02 Jun 2024"], [0, "02 Jun 2024", "02 May 2024"], [0, "02 May 2024", "02 Apr 2024"], [0, "02 Apr 2024", "02 Mar 2024"], [0, "02 Mar 2024", "02 Feb 2024"], [0, "02 Feb 2024", "02 Jan 2024"], [0, "02 Jan 2024", "02 Dec 2023"], [0, "02 Dec 2023", "02 Nov 2023"], [0, "02 Nov 2023", "02 Oct 2023"], [0, "02 Oct 2023", "02 Sep 2023"], [0, "02 Sep 2023", "02 Aug 2023"], [0, "02 Aug 2023", "02 Jul 2023"], [0, "02 Jul 2023", "02 Jun 2023"], [0, "02 Jun 2023", "02 May 2023"], [0, "02 May 2023", "02 Apr 2023"], [0, "02 Apr 2023", "02 Mar 2023"], [0, "02 Mar 2023", "02 Feb 2023"], [0, "02 Feb 2023", "02 Jan 2023"], [0, "02 Jan 2023", "02 Dec 2022"], [0, "02 Dec 2022", "02 Nov 2022"], [0, "02 Nov 2022", "02 Oct 2022"], [0, "02 Oct 2022", "02 Sep 2022"], [0, "02 Sep 2022", "02 Aug 2022"], [0, "02 Aug 2022", "02 Jul 2022"], [0, "02 Jul 2022", "02 Jun 2022"], [0, "02 Jun 2022", "02 May 2022"], [0, "02 May 2022", "02 Apr 2022"], [0, "02 Apr 2022", "02 Mar 2022"], [0, "02 Mar 2022", "02 Feb 2022"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#21BA45"}, "name": "0.0% younger than 3 years", "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#21BA45"}, "showlegend": false, "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2022", "02 Jan 2022"], [0, "02 Jan 2022", "02 Dec 2021"], [0, "02 Dec 2021", "02 Nov 2021"], [0, "02 Nov 2021", "02 Oct 2021"], [0, "02 Oct 2021", "02 Sep 2021"], [0, "02 Sep 2021", "02 Aug 2021"], [0, "02 Aug 2021", "02 Jul 2021"], [0, "02 Jul 2021", "02 Jun 2021"], [0, "02 Jun 2021", "02 May 2021"], [0, "02 May 2021", "02 Apr 2021"], [0, "02 Apr 2021", "02 Mar 2021"], [0, "02 Mar 2021", "02 Feb 2021"], [0, "02 Feb 2021", "02 Jan 2021"], [0, "02 Jan 2021", "02 Dec 2020"], [0, "02 Dec 2020", "02 Nov 2020"], [0, "02 Nov 2020", "02 Oct 2020"], [0, "02 Oct 2020", "02 Sep 2020"], [0, "02 Sep 2020", "02 Aug 2020"], [0, "02 Aug 2020", "02 Jul 2020"], [0, "02 Jul 2020", "02 Jun 2020"], [0, "02 Jun 2020", "02 May 2020"], [0, "02 May 2020", "02 Apr 2020"], [0, "02 Apr 2020", "02 Mar 2020"], [0, "02 Mar 2020", "02 Feb 2020"], [0, "02 Feb 2020", "02 Jan 2020"], [0, "02 Jan 2020", "02 Dec 2019"], [0, "02 Dec 2019", "02 Nov 2019"], [0, "02 Nov 2019", "02 Oct 2019"], [0, "02 Oct 2019", "02 Sep 2019"], [0, "02 Sep 2019", "02 Aug 2019"], [0, "02 Aug 2019", "02 Jul 2019"], [0, "02 Jul 2019", "02 Jun 2019"], [0, "02 Jun 2019", "02 May 2019"], [0, "02 May 2019", "02 Apr 2019"], [0, "02 Apr 2019", "02 Mar 2019"], [0, "02 Mar 2019", "02 Feb 2019"], [0, "02 Feb 2019", "02 Jan 2019"], [0, "02 Jan 2019", "02 Dec 2018"], [0, "02 Dec 2018", "02 Nov 2018"], [0, "02 Nov 2018", "02 Oct 2018"], [0, "02 Oct 2018", "02 Sep 2018"], [0, "02 Sep 2018", "02 Aug 2018"], [0, "02 Aug 2018", "02 Jul 2018"], [0, "02 Jul 2018", "02 Jun 2018"], [0, "02 Jun 2018", "02 May 2018"], [0, "02 May 2018", "02 Apr 2018"], [0, "02 Apr 2018", "02 Mar 2018"], [0, "02 Mar 2018", "02 Feb 2018"], [0, "02 Feb 2018", "02 Jan 2018"], [0, "02 Jan 2018", "02 Dec 2017"], [0, "02 Dec 2017", "02 Nov 2017"], [0, "02 Nov 2017", "02 Oct 2017"], [0, "02 Oct 2017", "02 Sep 2017"], [0, "02 Sep 2017", "02 Aug 2017"], [0, "02 Aug 2017", "02 Jul 2017"], [0, "02 Jul 2017", "02 Jun 2017"], [0, "02 Jun 2017", "02 May 2017"], [0, "02 May 2017", "02 Apr 2017"], [0, "02 Apr 2017", "02 Mar 2017"], [0, "02 Mar 2017", "02 Feb 2017"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#FBBD08"}, "name": "0.0% between 3 years and 8 years", "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#FBBD08"}, "showlegend": false, "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2017", "02 Jan 2017"], [0, "02 Jan 2017", "02 Dec 2016"], [0, "02 Dec 2016", "02 Nov 2016"], [0, "02 Nov 2016", "02 Oct 2016"], [0, "02 Oct 2016", "02 Sep 2016"], [0, "02 Sep 2016", "02 Aug 2016"], [0, "02 Aug 2016", "02 Jul 2016"], [0, "02 Jul 2016", "02 Jun 2016"], [0, "02 Jun 2016", "02 May 2016"], [0, "02 May 2016", "02 Apr 2016"], [0, "02 Apr 2016", "02 Mar 2016"], [0, "02 Mar 2016", "02 Feb 2016"], [0, "02 Feb 2016", "02 Jan 2016"], [0, "02 Jan 2016", "02 Dec 2015"], [0, "02 Dec 2015", "02 Nov 2015"], [0, "02 Nov 2015", "02 Oct 2015"], [0, "02 Oct 2015", "02 Sep 2015"], [0, "02 Sep 2015", "02 Aug 2015"], [0, "02 Aug 2015", "02 Jul 2015"], [0, "02 Jul 2015", "02 Jun 2015"], [0, "02 Jun 2015", "02 May 2015"], [0, "02 May 2015", "02 Apr 2015"], [0, "02 Apr 2015", "02 Mar 2015"], [0, "02 Mar 2015", "02 Feb 2015"], [169.0, "02 Feb 2015", "02 Jan 2015"], [500.0, "02 Jan 2015", "02 Dec 2014"], [66.0, "02 Dec 2014", "02 Nov 2014"], [298.0, "02 Nov 2014", "02 Oct 2014"], [656.0, "02 Oct 2014", "02 Sep 2014"], [152.0, "02 Sep 2014", "02 Aug 2014"], [150.0, "02 Aug 2014", "02 Jul 2014"], [73.0, "02 Jul 2014", "02 Jun 2014"], [93.0, "02 Jun 2014", "02 May 2014"], [175.0, "02 May 2014", "02 Apr 2014"], [480.0, "02 Apr 2014", "02 Mar 2014"], [248.0, "02 Mar 2014", "02 Feb 2014"], [445.0, "02 Feb 2014", "02 Jan 2014"], [415.0, "02 Jan 2014", "02 Dec 2013"], [100.0, "02 Dec 2013", "02 Nov 2013"], [74.0, "02 Nov 2013", "02 Oct 2013"], [117.0, "02 Oct 2013", "02 Sep 2013"], [34.0, "02 Sep 2013", "02 Aug 2013"], [54.0, "02 Aug 2013", "02 Jul 2013"], [10.0, "02 Jul 2013", "02 Jun 2013"], [191.0, "02 Jun 2013", "02 May 2013"], [115.0, "02 May 2013", "02 Apr 2013"], [90.0, "02 Apr 2013", "02 Mar 2013"], [4.0, "02 Mar 2013", "02 Feb 2013"], [46.0, "02 Feb 2013", "02 Jan 2013"], [2.0, "02 Jan 2013", "02 Dec 2012"], [14.0, "02 Dec 2012", "02 Nov 2012"], [7.0, "02 Nov 2012", "02 Oct 2012"], [56.0, "02 Oct 2012", "02 Sep 2012"], [10.0, "02 Sep 2012", "02 Aug 2012"], [181.0, "02 Aug 2012", "02 Jul 2012"], [32.0, "02 Jul 2012", "02 Jun 2012"], [14.0, "02 Jun 2012", "02 May 2012"], [18.0, "02 May 2012", "02 Apr 2012"], [2.0, "02 Apr 2012", "02 Mar 2012"], [3.0, "02 Mar 2012", "02 Feb 2012"], [11.0, "02 Feb 2012", "02 Jan 2012"], [2.0, "02 Jan 2012", "02 Dec 2011"], [0.0, "02 Dec 2011", "02 Nov 2011"], [0.0, "02 Nov 2011", "02 Oct 2011"], [12.0, "02 Oct 2011", "02 Sep 2011"], [42.0, "02 Sep 2011", "02 Aug 2011"], [13.0, "02 Aug 2011", "02 Jul 2011"], [9.0, "02 Jul 2011", "02 Jun 2011"], [0.0, "02 Jun 2011", "02 May 2011"], [7.0, "02 May 2011", "02 Apr 2011"], [4.0, "02 Apr 2011", "02 Mar 2011"], [54.0, "02 Mar 2011", "02 Feb 2011"], [47.0, "02 Feb 2011", "02 Jan 2011"], [37.0, "02 Jan 2011", "02 Dec 2010"], [5.0, "02 Dec 2010", "02 Nov 2010"], [0.0, "02 Nov 2010", "02 Oct 2010"], [3.0, "02 Oct 2010", "02 Sep 2010"], [0.0, "02 Sep 2010", "02 Aug 2010"], [0.0, "02 Aug 2010", "02 Jul 2010"], [0.0, "02 Jul 2010", "02 Jun 2010"], [0.0, "02 Jun 2010", "02 May 2010"], [0.0, "02 May 2010", "02 Apr 2010"], [1.0, "02 Apr 2010", "02 Mar 2010"], [0.0, "02 Mar 2010", "02 Feb 2010"], [0.0, "02 Feb 2010", "02 Jan 2010"], [0.0, "02 Jan 2010", "02 Dec 2009"], [0.0, "02 Dec 2009", "02 Nov 2009"], [0.0, "02 Nov 2009", "02 Oct 2009"], [0.0, "02 Oct 2009", "02 Sep 2009"], [0.0, "02 Sep 2009", "02 Aug 2009"], [0.0, "02 Aug 2009", "02 Jul 2009"], [0.0, "02 Jul 2009", "02 Jun 2009"], [0.0, "02 Jun 2009", "02 May 2009"], [0.0, "02 May 2009", "02 Apr 2009"], [0.0, "02 Apr 2009", "02 Mar 2009"], [0.0, "02 Mar 2009", "02 Feb 2009"], [0.0, "02 Feb 2009", "02 Jan 2009"], [0.0, "02 Jan 2009", "02 Dec 2008"], [0.0, "02 Dec 2008", "02 Nov 2008"], [0.0, "02 Nov 2008", "02 Oct 2008"], [0.0, "02 Oct 2008", "02 Sep 2008"], [1.0, "02 Sep 2008", "02 Aug 2008"], [0.0, "02 Aug 2008", "02 Jul 2008"], [0.0, "02 Jul 2008", "02 Jun 2008"], [0.0, "02 Jun 2008", "02 May 2008"], [0.0, "02 May 2008", "02 Apr 2008"], [0.0, "02 Apr 2008", "02 Mar 2008"], [0.0, "02 Mar 2008", "02 Feb 2008"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#DB2828"}, "name": "100.0% older than 8 years", "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03163609135155372, 0.09359790340696368, 0.012354923249719206, 0.055784350430550356, 0.12280044926993636, 0.02845376263571696, 0.028079371022089104, 0.013665293897416698, 0.017409210033695246, 0.03275926619243729, 0.08985398727068514, 0.04642456008985399, 0.08330213403219767, 0.07768625982777985, 0.018719580681392737, 0.013852489704230626, 0.021901909397229503, 0.00636465743167353, 0.010108573567952079, 0.0018719580681392737, 0.035754399101460124, 0.02152751778360165, 0.01684762261325346, 0.0007487832272557095, 0.008611007113440658, 0.00037439161362785476, 0.002620741295394983, 0.0013103706476974915, 0.010482965181579932, 0.0018719580681392737, 0.03388244103332085, 0.005990265818045676, 0.002620741295394983, 0.0033695245226506927, 0.00037439161362785476, 0.0005615874204417821, 0.0020591538749532012, 0.00037439161362785476, 0.0, 0.0, 0.0022463496817671283, 0.00786222388618495, 0.002433545488581056, 0.0016847622613253464, 0.0, 0.0013103706476974915, 0.0007487832272557095, 0.010108573567952079, 0.008798202920254586, 0.006926244852115313, 0.0009359790340696368, 0.0, 0.0005615874204417821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#DB2828"}, "showlegend": false, "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169.0, 500.0, 66.0, 298.0, 656.0, 152.0, 150.0, 73.0, 93.0, 175.0, 480.0, 248.0, 445.0, 415.0, 100.0, 74.0, 117.0, 34.0, 54.0, 10.0, 191.0, 115.0, 90.0, 4.0, 46.0, 2.0, 14.0, 7.0, 56.0, 10.0, 181.0, 32.0, 14.0, 18.0, 2.0, 3.0, 11.0, 2.0, 0.0, 0.0, 12.0, 42.0, 13.0, 9.0, 0.0, 7.0, 4.0, 54.0, 47.0, 37.0, 5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar", "xaxis": "x", "yaxis": "y2"}], "layout": {"xaxis": {"anchor": "y", "domain": [0.0, 0.94], "title": {"text": "Date of Last Edit"}, "minor": {"ticks": "inside", "dtick": "M1", "tickcolor": "rgba(128,128,128,0.66)"}, "ticklabelmode": "period", "tickformat": "%b %Y", "ticks": "outside", "tick0": "2008-03-02T00:00:00Z"}, "yaxis": {"anchor": "x", "domain": [0.0, 1.0], "title": {"text": "Features [%]"}, "tickformatstops": [{"dtickrange": [null, 0.001], "value": ".2%"}, {"dtickrange": [0.001, 0.01], "value": ".1%"}, {"dtickrange": [0.01, 0.1], "value": ".0%"}, {"dtickrange": [0.1, null], "value": ".0%"}]}, "yaxis2": {"anchor": "x", "overlaying": "y", "side": "right", "title": {"text": "Features [#]"}, "tickformat": ".", "griddash": "dash"}, "title": {"text": "Currentness"}, "legend": {"title": {"text": "Last Edit to a Feature"}, "x": 0.02, "y": 0.95, "bgcolor": "rgba(255,255,255,0.66)"}, "images": [{"layer": "above", "opacity": 0.3, "sizex": 0.3, "sizey": 0.3, "sizing": "contain", "source": "https://media.licdn.com/dms/image/v2/D560BAQE9rkvB7vB_cg/company-logo_200_200/company-logo_200_200/0/1711546373172/heigit_logo?e=2147483647&v=beta&t=pWdgVEOkz7VBhH2WbM5_DJeTs7RsdVXbolKU3ftS1iY", "x": 0.759, "xref": "paper", "y": 1, "yref": "paper"}]}} +{"data": [{"customdata": [[0, "02 Feb 2025", "02 Jan 2025"], [0, "02 Jan 2025", "02 Dec 2024"], [0, "02 Dec 2024", "02 Nov 2024"], [0, "02 Nov 2024", "02 Oct 2024"], [0, "02 Oct 2024", "02 Sep 2024"], [0, "02 Sep 2024", "02 Aug 2024"], [0, "02 Aug 2024", "02 Jul 2024"], [0, "02 Jul 2024", "02 Jun 2024"], [0, "02 Jun 2024", "02 May 2024"], [0, "02 May 2024", "02 Apr 2024"], [0, "02 Apr 2024", "02 Mar 2024"], [0, "02 Mar 2024", "02 Feb 2024"], [0, "02 Feb 2024", "02 Jan 2024"], [0, "02 Jan 2024", "02 Dec 2023"], [0, "02 Dec 2023", "02 Nov 2023"], [0, "02 Nov 2023", "02 Oct 2023"], [0, "02 Oct 2023", "02 Sep 2023"], [0, "02 Sep 2023", "02 Aug 2023"], [0, "02 Aug 2023", "02 Jul 2023"], [0, "02 Jul 2023", "02 Jun 2023"], [0, "02 Jun 2023", "02 May 2023"], [0, "02 May 2023", "02 Apr 2023"], [0, "02 Apr 2023", "02 Mar 2023"], [0, "02 Mar 2023", "02 Feb 2023"], [0, "02 Feb 2023", "02 Jan 2023"], [0, "02 Jan 2023", "02 Dec 2022"], [0, "02 Dec 2022", "02 Nov 2022"], [0, "02 Nov 2022", "02 Oct 2022"], [0, "02 Oct 2022", "02 Sep 2022"], [0, "02 Sep 2022", "02 Aug 2022"], [0, "02 Aug 2022", "02 Jul 2022"], [0, "02 Jul 2022", "02 Jun 2022"], [0, "02 Jun 2022", "02 May 2022"], [0, "02 May 2022", "02 Apr 2022"], [0, "02 Apr 2022", "02 Mar 2022"], [0, "02 Mar 2022", "02 Feb 2022"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#21BA45"}, "name": "0.0% younger than 3 years", "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#21BA45"}, "showlegend": false, "x": ["2025-01-17T12:00:00Z", "2024-12-17T12:00:00Z", "2024-11-17T00:00:00Z", "2024-10-17T12:00:00Z", "2024-09-17T00:00:00Z", "2024-08-17T12:00:00Z", "2024-07-17T12:00:00Z", "2024-06-17T00:00:00Z", "2024-05-17T12:00:00Z", "2024-04-17T00:00:00Z", "2024-03-17T12:00:00Z", "2024-02-16T12:00:00Z", "2024-01-17T12:00:00Z", "2023-12-17T12:00:00Z", "2023-11-17T00:00:00Z", "2023-10-17T12:00:00Z", "2023-09-17T00:00:00Z", "2023-08-17T12:00:00Z", "2023-07-17T12:00:00Z", "2023-06-17T00:00:00Z", "2023-05-17T12:00:00Z", "2023-04-17T00:00:00Z", "2023-03-17T12:00:00Z", "2023-02-16T00:00:00Z", "2023-01-17T12:00:00Z", "2022-12-17T12:00:00Z", "2022-11-17T00:00:00Z", "2022-10-17T12:00:00Z", "2022-09-17T00:00:00Z", "2022-08-17T12:00:00Z", "2022-07-17T12:00:00Z", "2022-06-17T00:00:00Z", "2022-05-17T12:00:00Z", "2022-04-17T00:00:00Z", "2022-03-17T12:00:00Z", "2022-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2022", "02 Jan 2022"], [0, "02 Jan 2022", "02 Dec 2021"], [0, "02 Dec 2021", "02 Nov 2021"], [0, "02 Nov 2021", "02 Oct 2021"], [0, "02 Oct 2021", "02 Sep 2021"], [0, "02 Sep 2021", "02 Aug 2021"], [0, "02 Aug 2021", "02 Jul 2021"], [0, "02 Jul 2021", "02 Jun 2021"], [0, "02 Jun 2021", "02 May 2021"], [0, "02 May 2021", "02 Apr 2021"], [0, "02 Apr 2021", "02 Mar 2021"], [0, "02 Mar 2021", "02 Feb 2021"], [0, "02 Feb 2021", "02 Jan 2021"], [0, "02 Jan 2021", "02 Dec 2020"], [0, "02 Dec 2020", "02 Nov 2020"], [0, "02 Nov 2020", "02 Oct 2020"], [0, "02 Oct 2020", "02 Sep 2020"], [0, "02 Sep 2020", "02 Aug 2020"], [0, "02 Aug 2020", "02 Jul 2020"], [0, "02 Jul 2020", "02 Jun 2020"], [0, "02 Jun 2020", "02 May 2020"], [0, "02 May 2020", "02 Apr 2020"], [0, "02 Apr 2020", "02 Mar 2020"], [0, "02 Mar 2020", "02 Feb 2020"], [0, "02 Feb 2020", "02 Jan 2020"], [0, "02 Jan 2020", "02 Dec 2019"], [0, "02 Dec 2019", "02 Nov 2019"], [0, "02 Nov 2019", "02 Oct 2019"], [0, "02 Oct 2019", "02 Sep 2019"], [0, "02 Sep 2019", "02 Aug 2019"], [0, "02 Aug 2019", "02 Jul 2019"], [0, "02 Jul 2019", "02 Jun 2019"], [0, "02 Jun 2019", "02 May 2019"], [0, "02 May 2019", "02 Apr 2019"], [0, "02 Apr 2019", "02 Mar 2019"], [0, "02 Mar 2019", "02 Feb 2019"], [0, "02 Feb 2019", "02 Jan 2019"], [0, "02 Jan 2019", "02 Dec 2018"], [0, "02 Dec 2018", "02 Nov 2018"], [0, "02 Nov 2018", "02 Oct 2018"], [0, "02 Oct 2018", "02 Sep 2018"], [0, "02 Sep 2018", "02 Aug 2018"], [0, "02 Aug 2018", "02 Jul 2018"], [0, "02 Jul 2018", "02 Jun 2018"], [0, "02 Jun 2018", "02 May 2018"], [0, "02 May 2018", "02 Apr 2018"], [0, "02 Apr 2018", "02 Mar 2018"], [0, "02 Mar 2018", "02 Feb 2018"], [0, "02 Feb 2018", "02 Jan 2018"], [0, "02 Jan 2018", "02 Dec 2017"], [0, "02 Dec 2017", "02 Nov 2017"], [0, "02 Nov 2017", "02 Oct 2017"], [0, "02 Oct 2017", "02 Sep 2017"], [0, "02 Sep 2017", "02 Aug 2017"], [0, "02 Aug 2017", "02 Jul 2017"], [0, "02 Jul 2017", "02 Jun 2017"], [0, "02 Jun 2017", "02 May 2017"], [0, "02 May 2017", "02 Apr 2017"], [0, "02 Apr 2017", "02 Mar 2017"], [0, "02 Mar 2017", "02 Feb 2017"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#FBBD08"}, "name": "0.0% between 3 years and 8 years", "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#FBBD08"}, "showlegend": false, "x": ["2022-01-17T12:00:00Z", "2021-12-17T12:00:00Z", "2021-11-17T00:00:00Z", "2021-10-17T12:00:00Z", "2021-09-17T00:00:00Z", "2021-08-17T12:00:00Z", "2021-07-17T12:00:00Z", "2021-06-17T00:00:00Z", "2021-05-17T12:00:00Z", "2021-04-17T00:00:00Z", "2021-03-17T12:00:00Z", "2021-02-16T00:00:00Z", "2021-01-17T12:00:00Z", "2020-12-17T12:00:00Z", "2020-11-17T00:00:00Z", "2020-10-17T12:00:00Z", "2020-09-17T00:00:00Z", "2020-08-17T12:00:00Z", "2020-07-17T12:00:00Z", "2020-06-17T00:00:00Z", "2020-05-17T12:00:00Z", "2020-04-17T00:00:00Z", "2020-03-17T12:00:00Z", "2020-02-16T12:00:00Z", "2020-01-17T12:00:00Z", "2019-12-17T12:00:00Z", "2019-11-17T00:00:00Z", "2019-10-17T12:00:00Z", "2019-09-17T00:00:00Z", "2019-08-17T12:00:00Z", "2019-07-17T12:00:00Z", "2019-06-17T00:00:00Z", "2019-05-17T12:00:00Z", "2019-04-17T00:00:00Z", "2019-03-17T12:00:00Z", "2019-02-16T00:00:00Z", "2019-01-17T12:00:00Z", "2018-12-17T12:00:00Z", "2018-11-17T00:00:00Z", "2018-10-17T12:00:00Z", "2018-09-17T00:00:00Z", "2018-08-17T12:00:00Z", "2018-07-17T12:00:00Z", "2018-06-17T00:00:00Z", "2018-05-17T12:00:00Z", "2018-04-17T00:00:00Z", "2018-03-17T12:00:00Z", "2018-02-16T00:00:00Z", "2018-01-17T12:00:00Z", "2017-12-17T12:00:00Z", "2017-11-17T00:00:00Z", "2017-10-17T12:00:00Z", "2017-09-17T00:00:00Z", "2017-08-17T12:00:00Z", "2017-07-17T12:00:00Z", "2017-06-17T00:00:00Z", "2017-05-17T12:00:00Z", "2017-04-17T00:00:00Z", "2017-03-17T12:00:00Z", "2017-02-16T00:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "type": "bar", "xaxis": "x", "yaxis": "y2"}, {"customdata": [[0, "02 Feb 2017", "02 Jan 2017"], [0, "02 Jan 2017", "02 Dec 2016"], [0, "02 Dec 2016", "02 Nov 2016"], [0, "02 Nov 2016", "02 Oct 2016"], [0, "02 Oct 2016", "02 Sep 2016"], [0, "02 Sep 2016", "02 Aug 2016"], [0, "02 Aug 2016", "02 Jul 2016"], [0, "02 Jul 2016", "02 Jun 2016"], [0, "02 Jun 2016", "02 May 2016"], [0, "02 May 2016", "02 Apr 2016"], [0, "02 Apr 2016", "02 Mar 2016"], [0, "02 Mar 2016", "02 Feb 2016"], [0, "02 Feb 2016", "02 Jan 2016"], [0, "02 Jan 2016", "02 Dec 2015"], [0, "02 Dec 2015", "02 Nov 2015"], [0, "02 Nov 2015", "02 Oct 2015"], [0, "02 Oct 2015", "02 Sep 2015"], [0, "02 Sep 2015", "02 Aug 2015"], [0, "02 Aug 2015", "02 Jul 2015"], [0, "02 Jul 2015", "02 Jun 2015"], [0, "02 Jun 2015", "02 May 2015"], [0, "02 May 2015", "02 Apr 2015"], [0, "02 Apr 2015", "02 Mar 2015"], [0, "02 Mar 2015", "02 Feb 2015"], [169.0, "02 Feb 2015", "02 Jan 2015"], [500.0, "02 Jan 2015", "02 Dec 2014"], [66.0, "02 Dec 2014", "02 Nov 2014"], [298.0, "02 Nov 2014", "02 Oct 2014"], [656.0, "02 Oct 2014", "02 Sep 2014"], [152.0, "02 Sep 2014", "02 Aug 2014"], [150.0, "02 Aug 2014", "02 Jul 2014"], [73.0, "02 Jul 2014", "02 Jun 2014"], [93.0, "02 Jun 2014", "02 May 2014"], [175.0, "02 May 2014", "02 Apr 2014"], [480.0, "02 Apr 2014", "02 Mar 2014"], [248.0, "02 Mar 2014", "02 Feb 2014"], [445.0, "02 Feb 2014", "02 Jan 2014"], [415.0, "02 Jan 2014", "02 Dec 2013"], [100.0, "02 Dec 2013", "02 Nov 2013"], [74.0, "02 Nov 2013", "02 Oct 2013"], [117.0, "02 Oct 2013", "02 Sep 2013"], [34.0, "02 Sep 2013", "02 Aug 2013"], [54.0, "02 Aug 2013", "02 Jul 2013"], [10.0, "02 Jul 2013", "02 Jun 2013"], [191.0, "02 Jun 2013", "02 May 2013"], [115.0, "02 May 2013", "02 Apr 2013"], [90.0, "02 Apr 2013", "02 Mar 2013"], [4.0, "02 Mar 2013", "02 Feb 2013"], [46.0, "02 Feb 2013", "02 Jan 2013"], [2.0, "02 Jan 2013", "02 Dec 2012"], [14.0, "02 Dec 2012", "02 Nov 2012"], [7.0, "02 Nov 2012", "02 Oct 2012"], [56.0, "02 Oct 2012", "02 Sep 2012"], [10.0, "02 Sep 2012", "02 Aug 2012"], [181.0, "02 Aug 2012", "02 Jul 2012"], [32.0, "02 Jul 2012", "02 Jun 2012"], [14.0, "02 Jun 2012", "02 May 2012"], [18.0, "02 May 2012", "02 Apr 2012"], [2.0, "02 Apr 2012", "02 Mar 2012"], [3.0, "02 Mar 2012", "02 Feb 2012"], [11.0, "02 Feb 2012", "02 Jan 2012"], [2.0, "02 Jan 2012", "02 Dec 2011"], [0.0, "02 Dec 2011", "02 Nov 2011"], [0.0, "02 Nov 2011", "02 Oct 2011"], [12.0, "02 Oct 2011", "02 Sep 2011"], [42.0, "02 Sep 2011", "02 Aug 2011"], [13.0, "02 Aug 2011", "02 Jul 2011"], [9.0, "02 Jul 2011", "02 Jun 2011"], [0.0, "02 Jun 2011", "02 May 2011"], [7.0, "02 May 2011", "02 Apr 2011"], [4.0, "02 Apr 2011", "02 Mar 2011"], [54.0, "02 Mar 2011", "02 Feb 2011"], [47.0, "02 Feb 2011", "02 Jan 2011"], [37.0, "02 Jan 2011", "02 Dec 2010"], [5.0, "02 Dec 2010", "02 Nov 2010"], [0.0, "02 Nov 2010", "02 Oct 2010"], [3.0, "02 Oct 2010", "02 Sep 2010"], [0.0, "02 Sep 2010", "02 Aug 2010"], [0.0, "02 Aug 2010", "02 Jul 2010"], [0.0, "02 Jul 2010", "02 Jun 2010"], [0.0, "02 Jun 2010", "02 May 2010"], [0.0, "02 May 2010", "02 Apr 2010"], [1.0, "02 Apr 2010", "02 Mar 2010"], [0.0, "02 Mar 2010", "02 Feb 2010"], [0.0, "02 Feb 2010", "02 Jan 2010"], [0.0, "02 Jan 2010", "02 Dec 2009"], [0.0, "02 Dec 2009", "02 Nov 2009"], [0.0, "02 Nov 2009", "02 Oct 2009"], [0.0, "02 Oct 2009", "02 Sep 2009"], [0.0, "02 Sep 2009", "02 Aug 2009"], [0.0, "02 Aug 2009", "02 Jul 2009"], [0.0, "02 Jul 2009", "02 Jun 2009"], [0.0, "02 Jun 2009", "02 May 2009"], [0.0, "02 May 2009", "02 Apr 2009"], [0.0, "02 Apr 2009", "02 Mar 2009"], [0.0, "02 Mar 2009", "02 Feb 2009"], [0.0, "02 Feb 2009", "02 Jan 2009"], [0.0, "02 Jan 2009", "02 Dec 2008"], [0.0, "02 Dec 2008", "02 Nov 2008"], [0.0, "02 Nov 2008", "02 Oct 2008"], [0.0, "02 Oct 2008", "02 Sep 2008"], [1.0, "02 Sep 2008", "02 Aug 2008"], [0.0, "02 Aug 2008", "02 Jul 2008"], [0.0, "02 Jul 2008", "02 Jun 2008"], [0.0, "02 Jun 2008", "02 May 2008"], [0.0, "02 May 2008", "02 Apr 2008"], [0.0, "02 Apr 2008", "02 Mar 2008"], [0.0, "02 Mar 2008", "02 Feb 2008"]], "hovertemplate": "%{y} of features (%{customdata[0]}) were last modified in the period from %{customdata[2]} to %{customdata[1]}", "marker": {"color": "#DB2828"}, "name": "100.0% older than 8 years", "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03163609135155372, 0.09359790340696368, 0.012354923249719206, 0.055784350430550356, 0.12280044926993636, 0.02845376263571696, 0.028079371022089104, 0.013665293897416698, 0.017409210033695246, 0.03275926619243729, 0.08985398727068514, 0.04642456008985399, 0.08330213403219767, 0.07768625982777985, 0.018719580681392737, 0.013852489704230626, 0.021901909397229503, 0.00636465743167353, 0.010108573567952079, 0.0018719580681392737, 0.035754399101460124, 0.02152751778360165, 0.01684762261325346, 0.0007487832272557095, 0.008611007113440658, 0.00037439161362785476, 0.002620741295394983, 0.0013103706476974915, 0.010482965181579932, 0.0018719580681392737, 0.03388244103332085, 0.005990265818045676, 0.002620741295394983, 0.0033695245226506927, 0.00037439161362785476, 0.0005615874204417821, 0.0020591538749532012, 0.00037439161362785476, 0.0, 0.0, 0.0022463496817671283, 0.00786222388618495, 0.002433545488581056, 0.0016847622613253464, 0.0, 0.0013103706476974915, 0.0007487832272557095, 0.010108573567952079, 0.008798202920254586, 0.006926244852115313, 0.0009359790340696368, 0.0, 0.0005615874204417821, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00018719580681392738, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar"}, {"hoverinfo": "skip", "marker": {"color": "#DB2828"}, "showlegend": false, "x": ["2017-01-17T12:00:00Z", "2016-12-17T12:00:00Z", "2016-11-17T00:00:00Z", "2016-10-17T12:00:00Z", "2016-09-17T00:00:00Z", "2016-08-17T12:00:00Z", "2016-07-17T12:00:00Z", "2016-06-17T00:00:00Z", "2016-05-17T12:00:00Z", "2016-04-17T00:00:00Z", "2016-03-17T12:00:00Z", "2016-02-16T12:00:00Z", "2016-01-17T12:00:00Z", "2015-12-17T12:00:00Z", "2015-11-17T00:00:00Z", "2015-10-17T12:00:00Z", "2015-09-17T00:00:00Z", "2015-08-17T12:00:00Z", "2015-07-17T12:00:00Z", "2015-06-17T00:00:00Z", "2015-05-17T12:00:00Z", "2015-04-17T00:00:00Z", "2015-03-17T12:00:00Z", "2015-02-16T00:00:00Z", "2015-01-17T12:00:00Z", "2014-12-17T12:00:00Z", "2014-11-17T00:00:00Z", "2014-10-17T12:00:00Z", "2014-09-17T00:00:00Z", "2014-08-17T12:00:00Z", "2014-07-17T12:00:00Z", "2014-06-17T00:00:00Z", "2014-05-17T12:00:00Z", "2014-04-17T00:00:00Z", "2014-03-17T12:00:00Z", "2014-02-16T00:00:00Z", "2014-01-17T12:00:00Z", "2013-12-17T12:00:00Z", "2013-11-17T00:00:00Z", "2013-10-17T12:00:00Z", "2013-09-17T00:00:00Z", "2013-08-17T12:00:00Z", "2013-07-17T12:00:00Z", "2013-06-17T00:00:00Z", "2013-05-17T12:00:00Z", "2013-04-17T00:00:00Z", "2013-03-17T12:00:00Z", "2013-02-16T00:00:00Z", "2013-01-17T12:00:00Z", "2012-12-17T12:00:00Z", "2012-11-17T00:00:00Z", "2012-10-17T12:00:00Z", "2012-09-17T00:00:00Z", "2012-08-17T12:00:00Z", "2012-07-17T12:00:00Z", "2012-06-17T00:00:00Z", "2012-05-17T12:00:00Z", "2012-04-17T00:00:00Z", "2012-03-17T12:00:00Z", "2012-02-16T12:00:00Z", "2012-01-17T12:00:00Z", "2011-12-17T12:00:00Z", "2011-11-17T00:00:00Z", "2011-10-17T12:00:00Z", "2011-09-17T00:00:00Z", "2011-08-17T12:00:00Z", "2011-07-17T12:00:00Z", "2011-06-17T00:00:00Z", "2011-05-17T12:00:00Z", "2011-04-17T00:00:00Z", "2011-03-17T12:00:00Z", "2011-02-16T00:00:00Z", "2011-01-17T12:00:00Z", "2010-12-17T12:00:00Z", "2010-11-17T00:00:00Z", "2010-10-17T12:00:00Z", "2010-09-17T00:00:00Z", "2010-08-17T12:00:00Z", "2010-07-17T12:00:00Z", "2010-06-17T00:00:00Z", "2010-05-17T12:00:00Z", "2010-04-17T00:00:00Z", "2010-03-17T12:00:00Z", "2010-02-16T00:00:00Z", "2010-01-17T12:00:00Z", "2009-12-17T12:00:00Z", "2009-11-17T00:00:00Z", "2009-10-17T12:00:00Z", "2009-09-17T00:00:00Z", "2009-08-17T12:00:00Z", "2009-07-17T12:00:00Z", "2009-06-17T00:00:00Z", "2009-05-17T12:00:00Z", "2009-04-17T00:00:00Z", "2009-03-17T12:00:00Z", "2009-02-16T00:00:00Z", "2009-01-17T12:00:00Z", "2008-12-17T12:00:00Z", "2008-11-17T00:00:00Z", "2008-10-17T12:00:00Z", "2008-09-17T00:00:00Z", "2008-08-17T12:00:00Z", "2008-07-17T12:00:00Z", "2008-06-17T00:00:00Z", "2008-05-17T12:00:00Z", "2008-04-17T00:00:00Z", "2008-03-17T12:00:00Z", "2008-02-16T12:00:00Z"], "y": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169.0, 500.0, 66.0, 298.0, 656.0, 152.0, 150.0, 73.0, 93.0, 175.0, 480.0, 248.0, 445.0, 415.0, 100.0, 74.0, 117.0, 34.0, 54.0, 10.0, 191.0, 115.0, 90.0, 4.0, 46.0, 2.0, 14.0, 7.0, 56.0, 10.0, 181.0, 32.0, 14.0, 18.0, 2.0, 3.0, 11.0, 2.0, 0.0, 0.0, 12.0, 42.0, 13.0, 9.0, 0.0, 7.0, 4.0, 54.0, 47.0, 37.0, 5.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "type": "bar", "xaxis": "x", "yaxis": "y2"}], "layout": {"xaxis": {"anchor": "y", "domain": [0.0, 0.94], "title": {"text": "Date of Last Edit"}, "minor": {"ticks": "inside", "dtick": "M1", "tickcolor": "rgba(128,128,128,0.66)"}, "ticklabelmode": "period", "tickformat": "%b %Y", "ticks": "outside", "tick0": "2008-03-02T00:00:00Z"}, "yaxis": {"anchor": "x", "domain": [0.0, 1.0], "title": {"text": "Features [%]"}, "tickformatstops": [{"dtickrange": [null, 0.001], "value": ".2%"}, {"dtickrange": [0.001, 0.01], "value": ".1%"}, {"dtickrange": [0.01, 0.1], "value": ".0%"}, {"dtickrange": [0.1, null], "value": ".0%"}]}, "yaxis2": {"anchor": "x", "overlaying": "y", "side": "right", "title": {"text": "Features [#]"}, "tickformat": ".", "griddash": "dash"}, "title": {"text": "Currentness"}, "legend": {"title": {"text": "Last Edit to a Feature"}, "x": 0.02, "y": 0.95, "bgcolor": "rgba(255,255,255,0.66)"}, "images": [{"layer": "above", "opacity": 0.3, "sizex": 0.15, "sizey": 0.15, "sizing": "contain", "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", "x": 0.02, "xref": "paper", "y": 0.15, "yref": "paper"}]}} diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json index dc080c5de..93918b7e9 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_multi_class.approved.json @@ -193,6 +193,20 @@ ], "layout": { "autotypenumbers": "strict", + "images": [ + { + "layer": "above", + "opacity": 0.3, + "sizex": 0.2, + "sizey": 0.2, + "sizing": "contain", + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.85, + "xref": "paper", + "y": 0.99, + "yref": "paper" + } + ], "showlegend": false, "xaxis": { "range": [ diff --git a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json index 478c3002e..6bb069995 100644 --- a/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json +++ b/tests/approvals/integrationtests/indicators/test_land_cover_thematic_accuracy.py-test_figure_single_class.approved.json @@ -66,6 +66,20 @@ ], "layout": { "barmode": "stack", + "images": [ + { + "layer": "below", + "opacity": 0.3, + "sizex": 0.2, + "sizey": 0.2, + "sizing": "contain", + "source": "https://raw.githubusercontent.com/GIScience/ohsome-quality-api/refs/heads/figure_background_logo/ohsome_quality_api/indicators/heigit_logo.png", + "x": 0.9, + "xref": "paper", + "y": -0.06, + "yref": "paper" + } + ], "legend": { "orientation": "h", "x": 0, From d3c72c6ea5d18bdef951b609f8cae1c9aa2456a1 Mon Sep 17 00:00:00 2001 From: Sylvia Date: Wed, 25 Jun 2025 15:49:26 +0200 Subject: [PATCH 11/11] update changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef3aa1290..6e368cd96 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## Current Main + +### Other Changes +- add heigit logo as water sign to all figures ([#925]) + +[#925]: https://github.com/GIScience/ohsome-quality-api/pull/925 + ## Release 1.10 ### New Feature