from climateqa.engine.talk_to_data.ipcc.config import IPCC_INDICATOR_TO_UNIT def indicator_evolution_informations( indicator: str, params: dict[str,str], ) -> str: if "location" not in params: raise ValueError('"location" must be provided in params') location = params["location"] unit = IPCC_INDICATOR_TO_UNIT[indicator] return f""" This plot shows how the climate indicator **{indicator}** evolves over time in **{location}**. It combines both historical (from 1950 to 2015) observations and future (from 2016 to 2100) projections for the different SSP climate scenarios (SSP126, SSP245, SSP370 and SSP585). The x-axis represents the years (from 1950 to 2100), and the y-axis shows the value of the {indicator} ({unit}). Each line corresponds to a different scenario, allowing you to compare how {indicator} might change under various future conditions. **Data source:** - The data comes from the CMIP6 IPCC ATLAS data. The data were initially extracted from [this referenced website](https://digital.csic.es/handle/10261/332744) and then preprocessed to a tabular format and uploaded as parquet in this [Hugging Face dataset](https://huggingface.co/datasets/Ekimetrics/ipcc-atlas). - The underlying data is retrieved by aggregating yearly values of {indicator} for the selected location, across all available scenarios. This means the system collects, for each year, the value of {indicator} in {location}, both for the historical period and for each scenario, to build the time series. - The coordinates used for {location} correspond to the closest available point in the IPCC database, which uses a regular grid with a spatial resolution of 1 degree. """ def choropleth_map_informations( indicator: str, params: dict[str, str], ) -> str: unit = IPCC_INDICATOR_TO_UNIT[indicator] if "location" not in params: raise ValueError('"location" must be provided in params') location = params["location"] country_name = params["country_name"] year = params["year"] if year is None: year = 2050 return f""" This plot displays a choropleth map showing the spatial distribution of **{indicator}** across all regions of **{location}** country ({country_name}) for the year **{year}** and the chosen scenario. Each grid point is colored according to the value of the indicator ({unit}), allowing you to visually compare how {indicator} varies geographically within the country for the selected year and scenario. **Data source:** - The data come from the CMIP6 IPCC ATLAS data. The data were initially extracted from [this referenced website](https://digital.csic.es/handle/10261/332744) and then preprocessed to a tabular format and uploaded as parquet in this [Hugging Face dataset](https://huggingface.co/datasets/Ekimetrics/ipcc-atlas). - For each grid point of {location} country ({country_name}), the value of {indicator} in {year} and for the selected scenario is extracted and mapped to its geographic coordinates. - The grid points correspond to 1-degree squares centered on the grid points of the IPCC dataset. Each grid point has been mapped to a country using [**reverse_geocoder**](https://github.com/thampiman/reverse-geocoder). - The coordinates used for each region are those of the closest available grid point in the IPCC database, which uses a regular grid with a spatial resolution of 1 degree. """ def indicator_specific_month_evolution_informations( indicator: str, params: dict[str, str] ) -> str: if "location" not in params: raise ValueError('"location" must be provided in params') location = params["location"] if "month_name" not in params: raise ValueError('"month_name" must be provided in params') month = params["month_name"] unit = IPCC_INDICATOR_TO_UNIT[indicator] return f""" This plot shows how the climate indicator **{indicator}** evolves over time in **{location}** for the month of **{month}**. It combines both historical (from 1950 to 2015) observations and future (from 2016 to 2100) projections for the different SSP climate scenarios (SSP126, SSP245, SSP370 and SSP585). The x-axis represents the years (from 1950 to 2100), and the y-axis shows the value of the {indicator} ({unit}) for the selected month. Each line corresponds to a different scenario, allowing you to compare how {indicator} for month {month} might change under various future conditions. **Data source:** - The data comes from the IPCC climate datasets (Parquet files) for the relevant indicator, location, and month. - For each year and scenario, the value of {indicator} for month {month} is extracted for the selected location. - The coordinates used for {location} correspond to the closest available point in the IPCC database, which uses a regular grid with a spatial resolution of 1 degree. """