Group project: the Climate System¶
Instructions¶
Objectives
In this final project, you will apply the methods you learned over the past weeks to answer the questions below.
Deadline
Please submit your project via OLAT before Thursday January 09 at 00H (in the night from Wednesday to Thursday).
Formal requirements
You will work in groups of two. If we are an odd number of students, one group can have three participants. (Tip: We recommend that students who have not followed a programming class to team up with students who have).
Each group will submit one (executed) jupyter notebook containing the code, plots, and answers to the questions (text in the markdown format). Please also submit an HTML version of the notebook. Please ensure that your HTML file is smaller than 10 MB. This helps us provide you with more detailed and readable feedback.
Each group member must contribute to the notebook. The notebook should be self-contained and the answers must be well structured. The plots must be as understandable as possible (title, units, x and y axis labels, appropriate colors and levels…).
Please be concise in your answer. We expect a few sentences per answer at most - there is no need to write a new text book in this project! Use links and references to the literature or your class slides where appropriate.
Grading
We will give one grade per project, according to the following table (total 10 points):
- correctness of the code and the plots: content, legends, colors, units, etc. (3 points)
- quality of the answers: correctness, preciseness, appropriate use of links and references to literature or external resources (5 points)
- originality and quality of the open research question (2 points)
# Import the tools we are going to need today:
import matplotlib.pyplot as plt # plotting library
import numpy as np # numerical library
import xarray as xr # netCDF library
import pandas as pd # tabular library
import cartopy # Map projections libary
import cartopy.crs as ccrs # Projections list
# Some defaults:
plt.rcParams['figure.figsize'] = (12, 5) # Default plot size
Part 1 - temperature climatology¶
Open the ERA5 temperature data:
ds = xr.open_dataset(r'C:..\climate\data\ERA5_LowRes_Monthly_t2m.nc')
Plot three global maps:
- Compute and plot the temporal mean temperature ¯T for the entire period (unit °C)
- Compute and plot ¯T∗ (see lesson), the zonal anomaly map of average temperature.
- Compute and plot the monthly average temperature for each month ¯TM (annual cycle). We expect a variable of dimensions (month: 12, latitude: 241, longitude: 480). Hint: remember the
.groupby()
command we learned in the lesson. Now plot the average monthly temperature range map, i.e. max(¯TM) - min(¯TM) (maximum and minimum over the month dimension).
Questions:
- Look at the zonal temperature anomaly map.
- Explain why northern Europe and the North Atlantic region is significantly warmer than the same latitudes in North America or Russia.
- Explain why the Northern Pacific Ocean does not have a similar pattern.
- Look at the average monthly temperature range map.
- Explain why the temperature range is smaller in the tropics than at higher latitudes
- Explain why the temperature range is smaller over oceans than over land
- Where is the temperature range largest? Explain why.
Gulfstream Westerly winds Russia continental climate(no ocean to the west) North america: ocean current strached zonaly, warm water travels longer in the north??? ROcky mountains
Look at the zonal temperature anomaly map.
- Explain why northern Europe and the North Atlantic region is significantly warmer than the same latitudes in North America or Russia.
The reason for northern Europe and the North Atlantic region beeing significantlly warmer than the same latitudes in North America or Russia lies in the Gulfstream. The gulf stream is the return flow of tow important ocean circulations the North Atlantic subtropical gyre and the Atlantic Meridional Overturning Circulation. The subtroical grey is a primarlly wind driven southward flow for which the Gulfstream is acting as an northward return flow. What makes the Gulfstream diffrent from other subtropical currents is the "flow-through component that does not recirculate at subtropical latitudes but rather continues poleward as the shallow return branch of the" Atlantic Meridional Overturning Circulation. As this warm water branch reaches subpolar lattiudes it cools down, its high salinity makes it significantly heavier than the surrounding water. As a result, the Gulf Stream water returns soutward as deep see water.
sources: The Role of the Gulf Stream in European Climate https://www.annualreviews.org/docserver/fulltext/marine/7/1/annurev-marine-010814-015656.pdf?expires=1736173412&id=id&accname=guest&checksum=DF714DBF414677293D6F804EFAECCB62
Since the golfstream transports water from low lattitiudes to high ones it transports a lot of heat to the north Atlantic region. Due to the pressence of the westerlys and eourpos location east of the Atlantic, this heat gets transportet to northern Europe. As a result northern Europe is significantlly warmer than the same latitudes in North America or Russia. - Explain why the Northern Pacific Ocean does not have a similar pattern.
The Northern Pacific Gyre is an ocean current quite similar to the Gulf Stream at first glance. However, it causes a less pronounced rise in temperature for the North Pacific area. One reason for this is that the current has a longer east-west extension, meaning that the flow does not cover much change in latitude, which is important for heat exchange.
- Explain why northern Europe and the North Atlantic region is significantly warmer than the same latitudes in North America or Russia.
Look at the average monthly temperature range map. sources: Geosystems: An Introduction to Physical Geography
- Explain why the temperature range is smaller in the tropics than at higher latitudes.
The most important reason for this difference in temperature ranges is the tilt of Earth's axis. Since Earth's axis is tilted by 23.5°, the amount of solar energy received at a particular location on Earth's surface changes throughout Earth's revolution around the Sun. This variation increases from the equator toward the poles.
For locations close to the equator, there is minimal seasonal variability in the Sun's distance, angle of incidence, and day length. As a result, these areas experience relatively low average monthly temperature ranges, mostly less than 10°C.
However, for places at high latitudes, there is significant variability in the Sun's distance, angle of incidence, and the path length through Earth's atmosphere. Near the poles, the Sun can even completely disappear for days or months during certain seasons. All of this results in average monthly temperature ranges of up to 60°C or more at high latitudes.
- Explain why the temperature range is smaller over oceans than over land
The ocean can absorb and store much more heat than landmasses.
One reason for this lies in how heat is exchanged between the atmosphere and the surface. In the case of the ocean, the top 100 meters are in thermal contact with the atmosphere. In contrast, for landmasses, only the upper meter is in thermal contact with the atmosphere, limiting their ability to absorb heat.
On top of that, the heat capacity of water is roughly four times greater than that of land. This indicates how much heat must be added to an object in order to change its temperature.
For these reasons, the heat exchange between the ocean and the atmosphere during the seasonal cycle is more than a hundred times larger than the one between land and the atmosphere. This means that land cools and heats up significantly during the seasonal cycle, while the ocean acts as a "buffer."
sources: page 262 from Marshall & Plumb: Atmosphere, Ocean and Climate Dynamics
- Where is the temperature range largest? Explain why.
As shown in the plot, northeastern Siberia experiences the largest seasonal temperature variation. This can be explained by the factors mentioned in the two previous questions. Firstly, the region is located roughly at 52°N, meaning that incoming solar radiation exhibits a strong seasonal cycle. Additionally, Siberia is dominated by a continental climate, which minimizes the ocean's buffering effect on temperature. These factors make Siberia a prime region for large average monthly temperature variations.
The region with the second-highest variability is located in the polar regions of northern Canada. This is caused by similar factors, although the influence of the continental climate might be slightly less pronounced.
- Explain why the temperature range is smaller in the tropics than at higher latitudes.
ds
<xarray.Dataset> Size: 444MB Dimensions: (longitude: 480, latitude: 241, time: 480) Coordinates: * longitude (longitude) float32 2kB -179.6 -178.9 -178.1 ... 178.9 179.6 * latitude (latitude) float32 964B 90.0 89.25 88.5 ... -88.5 -89.25 -90.0 * time (time) datetime64[ns] 4kB 1979-01-01 1979-02-01 ... 2018-12-01 Data variables: t2m (time, latitude, longitude) float64 444MB ... Attributes: Conventions: CF-1.6 history: 2019-11-18 09:36:58 GMT by grib_to_netcdf-2.14.0: /opt/ecmw...
t2 = ds.t2m
t2m_avg_cel = t2.mean(dim='time') -273.15
ax = plt.axes(projection=ccrs.Robinson())
t2m_avg_cel.plot(ax=ax, transform=ccrs.PlateCarree(), cmap='inferno', center=False,
vmin=-40, vmax=20, levels=7, cbar_kwargs={'label': '°C'})
ax.set_title('Average annual 2m air temperature, ERA5 1979-2018')
ax.coastlines(); ax.gridlines();
t2_tavg = t2.mean(dim='time')
t_avg_dep = t2_tavg - t2_tavg.mean(dim='longitude')
ax = plt.axes(projection=ccrs.Robinson())
t_avg_dep.plot.imshow(ax=ax, transform=ccrs.PlateCarree(),cbar_kwargs={'label': '°C'})
ax.set_title('Zonal anomaly map of average 2m air temperature, ERA5 1979-2018')
ax.coastlines(); ax.gridlines();
tsm_t2_c = t2.groupby('time.month').mean()
t2_avg_month_dep = tsm_t2_c.max(dim='month')-tsm_t2_c.min(dim='month')
ax = plt.axes(projection=ccrs.Robinson())
t2_avg_month_dep.plot.imshow(ax=ax, transform=ccrs.PlateCarree(),cbar_kwargs={'label': '°C'})
ax.set_title('average monthly temperature range map of 2m air temperature, ERA5 1979-2018')
ax.coastlines(); ax.gridlines();
Part 2 - Precipitation climatology¶
Open the precipitation file and explore it. The units of monthly precipitation are wrongly labeled (unfortunately). They should read: m per day.
ds = xr.open_dataset(r'C:..\climate\data\ERA5_LowRes_Monthly_tp.nc')
Using .groupby()
, compute the average daily precipitation for each month of the year (We expect a variable of dimensions (month: 12, latitude: 241, longitude: 480)). Convert the units to mm per day. Plot a map of average daily precipitation in January and in August with the levels [0.5, 1, 2, 3, 4, 5, 7, 10, 15, 20, 40]
and the colormap `YlGnBu'
Questions:
- Describe the location of the ITCZ in January and August. Without going into the details, explain (in one or two sentences)
- Describe the precipitation seasonality in West Africa and in India. Name the phenomenon at play.
avg_daily_tp_mm = ds.tp.groupby('time.month').mean() * 1000
J_avg_daily_tp_mm = avg_daily_tp_mm.sel(month=1)
A_avg_daily_tp_mm = avg_daily_tp_mm.sel(month=8)
fig, (ax1, ax2) = plt.subplots(ncols=2, subplot_kw={'projection': ccrs.Robinson()})
# January
J_avg_daily_tp_mm.plot(ax=ax1, transform=ccrs.PlateCarree(), cmap='YlGnBu',
levels=[0.5, 1, 2, 3, 4, 5, 7, 10, 15, 20, 40],
cbar_kwargs={'label': 'mm per day'})
# August
A_avg_daily_tp_mm.plot(ax=ax2, transform=ccrs.PlateCarree(), cmap='YlGnBu',
levels=[0.5, 1, 2, 3, 4, 5, 7, 10, 15, 20, 40],
cbar_kwargs={'label': 'mm per day'})
ax1.set_title('Average Daily Precipitation in January, ERA5 1979-2018');ax1.coastlines();ax1.gridlines()
ax2.set_title('Average Daily Precipitation in August, ERA5 1979-2018');ax2.coastlines();ax2.gridlines()
plt.tight_layout()
plt.show()
Describe the location of the ITCZ in January and August. Without going into the details, explain (in one or two sentences)
The ITCZ shifts from a more southern location in January to a more northern one in August due to the tilt of the Earth's axis and earth's revolution around the sun. The shift is more prominent over landmasses due to the ocean's buffer effect, explained in part 1.
sources: https://www.dwd.de/DE/service/lexikon/Functions/glossar.html?lv3=101278&lv2=101224Describe the precipitation seasonality in West Africa and in India. Name the phenomenon at play.
India is characterized by low average precipitation values (mostly below 2 mm per day) in January, whereas average precipitation values in summer can reach up to 15 mm per day. The reason for this significant difference is the monsoon. As the Inter-Tropical Convergence Zone (ITCZ) moves northward in summer, it changes the northeast monsoon, which brings dry air from Siberia, into the moist southwest monsoon. The southwest, or summer, monsoon brings warm and moist air from the ocean and is thus associated with heavy rainfall.
West Africa experiences a pronounced precipitation seasonality, with dry Sahel conditions dominating in January (mostly below 2 mm per day) except for light rainfall along the southern coastal areas near the Gulf of Guinea. In August, the West African monsoon brings heavy rainfall, with the peak shifting northward into the Sahel while the Guinea coast also receives significant precipitation. This pattern is again driven by the seasonal migration of the ITCZ.
source: MISVA
from IPython.display import Image
Image(filename=r'C:..\climate\data\WhatsApp Image 2025-01-08 at 19.18.13.jpeg')
Part 3: sea-level pressure and surface winds¶
Open the file containing the surface winds (u10
and v10
) and sea-level pressure (msl
).
ds = xr.open_dataset(r'C:..\climate\data\ERA5_LowRes_Monthly_uvslp.nc')
ds
<xarray.Dataset> Size: 1GB Dimensions: (longitude: 480, latitude: 241, time: 480) Coordinates: * longitude (longitude) float32 2kB -179.6 -178.9 -178.1 ... 178.9 179.6 * latitude (latitude) float32 964B 90.0 89.25 88.5 ... -88.5 -89.25 -90.0 * time (time) datetime64[ns] 4kB 1979-01-01 1979-02-01 ... 2018-12-01 Data variables: u10 (time, latitude, longitude) float64 444MB ... v10 (time, latitude, longitude) float64 444MB ... msl (time, latitude, longitude) float64 444MB ... Attributes: Conventions: CF-1.6 history: 2019-11-24 19:42:05 GMT by grib_to_netcdf-2.14.0: /opt/ecmw...
Compute [¯SLP] (the temporal and zonal average of sea-level pressure). Convert it to hPa, and plot it (line plot). With the help of plt.axhline, add the standard atmosphere pressure line to the plot to emphasize high and low pressure regions. Repeat with [¯u10] and [¯v10] (in m s−1) and add the 0 horizontal line to the plot (to detect surface westerlies from easterlies for example).
Questions:
- Based on your knowledge about the general circulation of the atmosphere, explain the latitude location of the climatological high and low pressure systems of Earth.
- Similarly, explain the direction and strength of the zonal and meridional winds on earth (tip: the sea-level pressure plot helps)
msl_t_avg = ds.msl.mean(dim='time')/100
msl_avg = msl_t_avg.mean(dim= 'longitude').plot( label='Zonal Average Pressure')
plt.axhline(y=1013, linewidth=2, linestyle='--', color='black', label='Standard Atmosphere Pressure [1013 hPa]')
plt.legend()
plt.xlabel('Latitude')
plt.ylabel('Sea-Level Pressure (hPa)')
plt.title('Average Sea-Level Pressure (Time-Longitude Mean)')
plt.grid()
plt.show()
v10_t_avg = ds.v10.mean(dim='time')
v10_avg = v10_t_avg.mean(dim= 'longitude').plot(label = 'v10')
u10_t_avg = ds.u10.mean(dim='time')
u10_avg = u10_t_avg.mean(dim= 'longitude').plot( label = 'u10')
plt.xlabel('Latitude')
plt.ylabel('Windspeed in m/s)')
plt.title('Average windspeed in u and v-component (Time-Longitude Mean)')
plt.axhline(y=0, color = 'red')
plt.legend()
plt.grid()
plt.show()
Questions:
Based on your knowledge about the general circulation of the atmosphere, explain the latitude location of the climatological high and low pressure systems of Earth.
Since the poles are the regions where incoming solar energy is smallest and thus have cold temperatures, there is a polar high in both hemispheres. The northern polar high is characterized by a pressure of approximately 1014 hPa, whereas the southern polar high has a slightly lower pressure of about 1010 hPa. Around 60° latitude, subpolar lows are located in both hemispheres. The subpolar low is stronger in the southern hemisphere due to less land surface and stronger temperature gradients. It arises where cold air from the polar cell mixes with warm air from the Ferell cell. Next, there is a subtropical high caused by sinking air from the Hadley cell, located at approximately 30° latitude in both hemispheres. The position of the ITCZ moves seasonally with the maximum incoming solar energy around the equator. The absorbed solar energy heats the air near the surface, causing convection and a surface low.
Similarly, explain the direction and strength of the zonal and meridional winds on earth (tip: the sea-level pressure plot helps)
The polar easterlys are the predominant winds between the southpole and the subpolar low (~ 65°S). They are caused by a pressure difference of approximately 25hPA between the polar high(~1010hPa) and the subpolar low (~ 985hPa). North and westward components are relativley balanced.
The region between the subpolar low (~ 65°S) and the subtropical high (~ 32°S) is dominated by the strongest west winds, with only a slight southward component. These winds are caused by a significant pressure gradient of roughly 34 hPa and the deflection due to the Coriolis force. The Coriolis force is quite strong at these latitudes since it increases toward the poles. Additionally, there is far less landmass in these latitudes compared to their counterparts in the Northern Hemisphere, meaning there is less friction from landmasses to slow down the winds.
Southeast trade winds dominatet the area beween the subtropical high (~ 32°S) and the ITCZ on the southern hemisphere. Since we get closer to the equator the deflection due to ther coriolis is not that dominant anymore. For this reason the ratio between the zonal and meridional component of the winds are way more balanced comparred to the westerlies.
The region between the ITCZ and the subtropical high (~ 35°N) on the northern hemisphere is dominated by the Northeast trade winds.
Simiular to the southern hemisphere westerlys are again reign between the the subtropical high (~ 35°N) and the subpolar low (~ 62°N). In contrast to the ones on the southern hemisphere they got an slight nortward component now. The zonal component is way less pronounced aswell. Both because of a less pronounced pressure gradient and due to the presence of way more land surface at the northern hemisphere, wich slows down the surface winds.
Polar easterlys are the prevailing winds between the subpolar low (~ 62°N) and polar high. There is a realtively small pressure difference of about 5hPa here making both the meridional and zonal component of these winds small with magnitiudes below 1m/s.
Part 4: temperature change and CO2 concentrations¶
Download the global average CO2 concentration timeseries data in the CSV format (source: NOAA). Let us help you read them using pandas:
df = pd.read_csv(r'C:..\climate\data\co2_mm_gl.csv', skiprows=38)
# Combine the first two columns into a datetime column and set as index
df['date'] = pd.to_datetime(df.iloc[:, 0].astype(str) + '-' + df.iloc[:, 1].astype(str), format='%Y-%m')
df.set_index('date', inplace=True)
Prepare three plots:
- plot the monthly global CO2 concentration as a function of time.
- plot the annual average timeseries of global CO2 concentration as a function of time.
- plot the annual average timeseries of global CO2 concentration and of global 2m temperature from ERA5 on the same plot (using a secondary y axis for temperature).
Questions:
- Describe and explain the annual cycle of CO2 concentrations
- What was the CO2 concentration in the atmosphere in the pre-industrial era? Compute the annual increase in CO2 concentration (unit: ppm per year) between 1980 and 1985 and between 2016 and 2021.
- Describe the relationship between global temperatures and CO2 concentrations. Beside CO2, name three processes that can influence temperature variability and change at the global scale.
df.tail()
year | month | decimal | average | average_unc | trend | trend_unc | |
---|---|---|---|---|---|---|---|
date | |||||||
2024-05-01 | 2024 | 5 | 2024.375 | 423.82 | 0.1 | 422.19 | 0.06 |
2024-06-01 | 2024 | 6 | 2024.458 | 423.11 | 0.1 | 422.54 | 0.06 |
2024-07-01 | 2024 | 7 | 2024.542 | 421.42 | 0.1 | 422.74 | 0.06 |
2024-08-01 | 2024 | 8 | 2024.625 | 419.99 | 0.1 | 422.85 | 0.06 |
2024-09-01 | 2024 | 9 | 2024.708 | 420.26 | 0.1 | 423.09 | 0.06 |
df['average'].groupby(df['month']).mean().plot() #df['average'].plot()
plt.xlabel('Time')
plt.ylabel('CO2 concentration in ppm')
plt.title('Monthly global CO2 concentration')
plt.show()
fig, ax1 = plt.subplots()
ax1.plot(df['average'].groupby(df['year']).mean(), label ='CO2')
ax1.set_xlabel('Time') # x-Achse
ax1.set_ylabel('CO2 concentration in ppm')
plt.title('Annual average timeseries of global CO2 concentration')
plt.show()
# Meridional weights
weight = np.cos(np.deg2rad(ds.latitude))
weight = weight / weight.sum()
# Meridionally weighted zonal mean
zonal_mean_t2_c = t2.mean(dim='longitude') - 273.15 # convert into Celsius
weighted_zonal_mean_t2_c = zonal_mean_t2_c * weight
weighted_ts_t2_c = weighted_zonal_mean_t2_c.sum(dim='latitude')
weighted_mean = weighted_ts_t2_c.groupby('time.year').mean(dim='time')
# Resample CO2-Daten auf jährliche Basis
df_annual = df.resample('YE').mean()
# Plotte beide Daten auf derselben Zeitachse
fig, ax1 = plt.subplots(figsize=(10, 6))
ax1.plot(df_annual.index, df_annual['average'], label='Global CO2 Concentration', color='g')
ax1.set_xlabel('Time')
ax1.set_ylabel('CO2 Concentration (ppm)', color='g')
ax1.tick_params(axis='y', labelcolor='g')
ax2 = ax1.twinx()
ax2.plot(weighted_mean['year'].values, weighted_mean.values, label='Global Mean Temperature', color='b')
ax2.set_ylabel('Global Mean Temp (°C)', color='b')
ax2.tick_params(axis='y', labelcolor='b')
plt.title('Annual Average Timeseries of Global CO₂ Concentration and Global 2m Temperature')
fig.tight_layout()
plt.show()
Questions:
- Describe and explain the annual cycle of CO2 concentrations
The annual cycle of global CO₂ concentrations shows a clear up and downward movement throughout the year. The minimum concentration of 372.5 ppm is reached in August. From there, the concentration starts to increase. The increase is initially rather weak until it picks up in October and finally reaches its maximum of 376.2 ppm between April and March. From March on it starts to increase again. The driver for this cycle is the vegitation on the northern hemisphere. As plants are growing in spring and summer they remove CO2 from the atmosphere which becomes visible in CO2 concentrations with a slight delay. In fall and winter wenn plant are becoming less productive CO2 sinks the global concentratiosn are increasing agian.
Since most of the landmass and such plants are in the Northern Hemisphere, it is more important here than the Southern Hemisphere. - What was the CO2 concentration in the atmosphere in the pre-industrial era? Compute the annual increase in CO2 concentration (unit: ppm per year) between 1980 and 1985 and between 2016 and 2021.
sources: https://www.climate.gov/news-features/understanding-climate/climate-change-atmospheric-carbon-dioxide
yearly_avg = df['average'].groupby(df['year']).mean()
increas_1980_85 = (yearly_avg.loc[1985] - yearly_avg.loc[1980]) / (1985 - 1980)
increas_2016_21 = (yearly_avg.loc[2021] - yearly_avg.loc[2016]) / (2021 - 2016)
print(f'The annual average increase in CO₂ concentration between 1980 and 1985 was {increas_1980_85:.2f} ppm per year.')
print(f'The annual average increase in CO₂ concentration between 2016 and 2021 was{increas_2016_21:.2f} ppm per year.')
# what to use as pre industrial??
The annual average increase in CO₂ concentration between 1980 and 1985 was 1.33 ppm per year. The annual average increase in CO₂ concentration between 2016 and 2021 was2.33 ppm per year.
- Describe the relationship between global temperatures and CO2 concentrations. Beside CO2, name three processes that can influence temperature variability and change at the global scale.
In the "annual average time series of global CO₂ concentration and global 2m temperature" plot, we can clearly see that the global temperature increase is directly proportional to the rise in atmospheric CO₂ concentrations. An increase in CO₂ concentration of 10 ppm is approximately associated with a 0.1 °C rise in global temperature. This relationship can be explained by CO₂'s global warming potential as a greenhouse gas and its occurrence in large quantities in the earth's atmosphere. Althoug CO2 is reffered to as beeing the "largest contributor to anthropogenic changes in global warming with a share of 60 percent" we soudln forget that there are processes, wich influence temperature variability and change at the global scale.
Aside from changes in CO2 concentrations , variability in global climate can also be caused by natural processes such as changes in Earth's orbit and rotation. These changes are thought to be the primary drivers of multiple ice ages in the past.
Aerosols are another factor of greath importance when it comes to climate change. They can either cool or heat the atmosphere depending on the specific aresol. During volcanic eruptions, for example, sulfur dioxide gas is emitted, which reacts with water in the atmosphere and forms aerosols that can remain in the atmosphere for several years. In the case of Mount Pinatubo’s erruption this effact caused a cooling of nearly 1°C in the folowwing years.
Soot, on the other hand, is a dark aerosol composed of carbon particles. It is produced during fossil fuel combustion. By absorbing sunlight, it contributes to an increase in temperature.
https://science.nasa.gov/science-research/earth-science/climate-science/aerosols-small-particles-with-big-climate-effects/
Besides that, land use is another factor through which human activities influence the climate. For example, deforestation weakens the natural CO2 sink and also changes the albedo of Earth's surface. Such changes in albedo can also occur naturally or indirectly as feedback from human activity. For instance, rising temperatures cause Earth's ice caps to melt, which decreases Earth's albedo. This means that more solar energy is absorbed, further intensifying the warming.
sources: https://journals.sagepub.com/doi/epdf/10.5547/ISSN0195-6574-EJ-VolSI2006-NoSI3-9
https://science.nasa.gov/science-research/earth-science/climate-science/aerosols-small-particles-with-big-climate-effects/
Part 5: Climate Risk Dashboard (open research question)¶
We will use the Climate Risk Dashboard climate-risk-dashboard.climateanalytics.org from the Horizon 2020 PROVIDE Project to create and analyze an open research question. To learn how to use the dashboard, visit the OGGM-Edu website, which includes examples using mean temperature and glacier volume.
Select Indicators and Geography
- Choose two to three
Indicator
's from the dashboard. Ensure that you pick only oneIndicator
per Sector (e.g., one from Terrestrial Climate and one from Biodiversity). - Select a
GEOGRAPHY
for yourIndicator
's (not all geographies are available for all indicators).- Try to pick related locations. For example, if you choose a city, also consider selecting its country or region for comparison.
- Or, if it fits to your research question, you can also select an additional
GEOGRAPHY
for comparison (e.g. compare two countries), but you do not have to.
- Choose two to three
Formulate a Research Question
- Based on your selected
Indicator
's andGEOGRAPHY
, create a research question.- Please mention this research question clearly in your notebook.
- Your analysis will focus on comparing two to three scenarios available in the dashboard.
- Based on your selected
Conduct the Analysis
- Visualizations:
- Use at least one plot per
Indicator
by downloading plots directly from the dashboard. You can add them to your notebook with drag-and-drop. - Further, include at least two custom plots in your analysis. This means download the raw data from the dashboard and create your own plot. For an example see this section on OGGM-Edu. Please use the original filenames of the downloaded data in your notebook.
- Use at least one plot per
- References:
- Try to find at least one reference (reports, papers or articls) related to your research question and mention them in the notebook by providing a link. A good resource for many climate change related topics is the IPCC report.
- Visualizations:
Answer Guiding Questions to your Research Question
Answer at least three of the questions below, or come up with your own creative questions! You’re encouraged to mix and match the provided questions with your own ideas or explore different angles that interest you.
- How do the scenarios differ over time for each Indicator?
- What are the spatial differences between scenarios for each Indicator?
- If applicable: How much risk is avoided by staying below a certain threshold for your Indicator?
- Are there any correlations between your selected Indicators?
Impact of different climate scenarios on land and ocean ecosystem in the mediterranean at the example of greece¶
The aim of our analysis is to assess the impact of different climate scenarios on ocean ecosystems in the Mediterranean, using Greece as a case study.
Why did we choose greece/ the mediteranean area?
We choose the mediteranean, located between mid lattitiudes and subtropics, since it is very vulnerable when it comes to climate change.
Its atmospheric temerature increase exides global averages.(WGI AR6 Chapter 11, Seneviratne et al., 2021; Lionello and Scarascia, 2018; Cherif et al.,2020). Summer warming rates are even projected to be 50% lager than annual global averages.
Concernig the Ocean, the acidification since pre industrial levels is more pronounced compared to global oceans (Palmiéri et al., 2015).
This acidivication is thought to have a grate impact on the marien ecosystem.
To analyise changes we used the following indicators:
Mean temperature
"Temperature of the air near the Earth's surface (approximately 2 metres above the ground), and averaged over the time scale of interest (a full year, a specific month, etc.). Changes in this indicator are expressed in degrees Celsius (°C)."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
Species at risk from local extinction
"Proportion of species for which the local climate becomes unsuitable, based on the assumption that it was suitable for 100% of the species in the 1950-2000 reference period."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
Sea surface pH
"he pH scale runs from 0 to 14, with 7 being a neutral pH. Anything higher than 7 is basic (or alkaline) and anything lower than 7 is acidic. The ocean’s average pH is now around 8.1, which is basic (or alkaline), but as the ocean continues to absorb more CO2, the pH decreases and the ocean becomes more acidic."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
We decidet to use this indicator since a chane in pH values has "the potential to affect a wide range of marine biogeochemical and ecological processe"
https://pure.iiasa.ac.at/id/eprint/7972/1/avoid-dangercc.pdf#page=79
In order to understand how changes in these indicators differ between various climate scenarios we decited to use the following scenarios:
Stabilisation at 1.5°C
"Temperatures rise until the global average reaches 1.5°C, after which it is held constant. "This synthetic scenario is a simple thought experiment not driven by economic or climatic considerations to understand climate impacts at a sustained level of warming at 1.5°C."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
Delayed climate action
"This scenario assumes that decarbonisation is delayed to the 2030s, but then takes place in earnest. Fossil fuel use never ends but is instead compensated for with high amounts of carbon dioxide removal. Global warming in 2100 reaches 1.7°C (best estimate)."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
2020 climate policies
"This scenario assumes that no further climate action is taken beyond the climate policies that were in place in 2020. Global warming reaches 2.9°C in 2100 (best estimate), and would continue climbing into the new century."
https://climate-risk-dashboard.climateanalytics.org/impacts/explore#impact-geo
How do the indicators change?¶
Image(filename=r'C:..\climate\data\grc-terclim_mean_temperature-annual-present_day-area-0_1-curpol_gs_ref_1_p_5.png')
The plot above illustrates how the mean temperature in Greece is projected to change until 2100, compared to the reference period 2011–2020. All three scenarios remain quite similar until 2035, predicting a temperature increase of approximately 0.4°C by that time.
From 2035 onward, the "Stabilisation at 1.5°C" scenario begins to diverge from the others. Temperature increases only slightly beyond this point, reaching a final increase of 0.45°C by 2100.
The graph for the "Delayed Climate Action" scenario flattens out after 2050, ultimately reaching a final value of +0.66°C.
By far the most dramatic temperature change is predicted under the "2020 Climate Policies" scenario, where there is a consistent strong temperature rise throughout the period, resulting in a projected increase of 2.14°C by 2100.
Image(filename=r'C:..\climate\data\grc_eez-marclim_ph-present_day-area-annual-0_1-curpol_sap_ref_1_p_5_extended.png')
The changes in sea surface pH for the Greek economic zone of the Mediterranean Sea, compared to the reference period 2011–2020, are illustrated up until 2300.
We are looking further into the future here than for the mean temperature, as oceans usually have a longer response time than the atmosphere.
The two scenarios show very different developments in surface pH. The changes in pH might seem small, but keep in mind that the pH scale ranges only from 0 to 14 and is logarithmic.
For the "Stabilization at 1.5°C scenario", there is a decrease in pH of roughly -0.04 until 2050. From there, the value remains quite constant until it starts to increase around 2100, finally reaching a value of +0.016 by 2300.
For the "2020 climate policies" scenario, the decrease in pH is much steeper and longer-lasting. In 2175, a minimum of approximately -0.22 units is reached. From then on, there is also a positive trend, but it is less pronounced. An overall decrease of -0.16 remains by 2300.
Further analysis¶
#read in data
temp_2020_pol = pd.read_csv(r'C:..\climate\data\impact-time_GRC_curpol_terclim-mean-temperature_0.5_present-day.csv')
temp_delayed_action = pd.read_csv(r'C:..\climate\data\impact-time_GRC_gs_terclim-mean-temperature_0.5_present-day.csv')
temp_stabilisation = pd.read_csv(r'C:..\climate\data\impact-time_GRC_ref-1p5_terclim-mean-temperature_0.5_present-day.csv')
ph_2020_pol = pd.read_csv(r'C:..\climate\data\impact-time_GRC-eez_curpol-sap_marclim-ph_0.5_present-day.csv')
ph_stabilisation = pd.read_csv(r'C:..\climate\data\impact-time_GRC-eez_ref-1p5-extended_marclim-ph_0.5_present-day.csv')
# Merge the data for each scenario based on the year
data_2020 = pd.merge(temp_2020_pol[['year', 'terclim-mean-temperature_mean']],
ph_2020_pol[['year', 'marclim-ph_mean']],
on='year')
data_stabilisation = pd.merge(temp_stabilisation[['year', 'terclim-mean-temperature_mean']],
ph_stabilisation[['year', 'marclim-ph_mean']],
on='year')
# Plot the two scenarios
plt.plot(data_2020['terclim-mean-temperature_mean'],
data_2020['marclim-ph_mean'] ,
label='2020 climate policies',
marker='.',
linestyle='--')
plt.plot(data_stabilisation['terclim-mean-temperature_mean'],
data_stabilisation['marclim-ph_mean'] ,
label='Stabilisation pathway',
marker='.',
linestyle='--')
# Add labels, legend, and title
plt.xlabel('Temperature', fontsize=12)
plt.ylabel('Sea surface pH ', fontsize=12)
plt.title('Corrilation between mean 2 meter Temperature and Sea surface pH', fontsize=14)
plt.legend()
plt.grid(True)
# Save the plot as a PNG file
plt.tight_layout()
plt.savefig('glacier_volume_vs_temperature.png', dpi=300)
# Show the plot
plt.show()
The plot above is a coorilation plot between the predicteted change in mean Temperature and the sea surface pH. As we chan see there is a strong
coorilation between these to indicators for both scenarios.
As temperature increases sea surface pH reduces by rougly -0.1 per 0,6-1°C for the 2020 climate policies scenario. The pH decrease is steeper at firts and flattens sligtly with increasing temeraures. For the 2020 climate policies scenario a increased temperature of 2°C and a of -0.16 by 2100
A change of -0.16 migth not sound important, but the pH scale ranging from 0 to 14 is loaritmic, meaning a change of 0.1 in pH correspondss approximately to a 30 percent increase in acidity.
This might not sound like much, but the pH scale is logarithmic, so this change represents approximately a 30 percent increase in acidity.
For the Stabilisation pathway on the other hand the trend is similar to the 2020 climate policies one at first although somewhat less pronounced. Altough for this scenari there is no real change in Temperature from +0.45 on and thus non in pH concentrations.
The main reason for this corrrilation is CO2. Apart from it being the most important greenhouse gas in the context of climate change it of immense importance in context of ocean acidification. This accidification takes place when Carbon dioxide dissolves into seawater as carbonic acid and later brakes appart into bicarbonate
and hydrogen ions.
source: Slides from VU Atmosphärenchemie, Mag. Dr. Ulrike Nickus
Spatial plot¶
Next we wanted to do a spatial data plot but whe had a hard time with it. The netCDF-files we downloaded are either wrongly formatted or we failed with your programming skills. However we had to use the geoTIFF-format, an tutorial for the geoTIFF-files usage we found on the Geoscience Australia Website.
# THis is a failed try to plot the netCDF-filesb
#imports for my path management
import sys
import os
data_path_windows = os.path.abspath(r'C:..\climate\data\project_data\ ') #windows
data_path_linux = os.path.abspath(r'/home/luca/Seafile/Atmo/WS 24_25/Klimasysteme/project_data/')#linux
if os.name == 'nt': # Check if the operating system is Windows
project_data_path = data_path_windows +'\\'
else:
project_data_path = data_path_linux +'/'
sys.path.insert(0, project_data_path)
ds1 = xr.open_dataset(project_data_path + 'impact_geo_curpol-sap_GRC_marclim-ph_0.5_present-day_2030_1.nc')
marclim_ph1 = ds1['marclim-ph']
ax = plt.axes(projection=ccrs.Robinson())
#ax.set_extent([0, 30, 30, 50], crs=ccrs.PlateCarree())
marclim_ph1.plot(ax=ax, transform=ccrs.PlateCarree(),cbar_kwargs={'label': 'pH'})
ax.set_title('Senario 1: curpol-sap ph-Wert')
ax.coastlines(); ax.gridlines();
# import new needed package for geoTIFF-files
import rioxarray
# no packages needed (standard library) for file management
import glob
#imports for my path management
import sys
import os
data_path_windows = os.path.abspath(r'C:..\climate\data\project_data\geotiff\ ') #windows
data_path_linux = os.path.abspath(r'/home/luca/Seafile/Atmo/WS 24_25/Klimasysteme/project_data/geotiff/')#linux
if os.name == 'nt': # Check if the operating system is Windows
project_data_path_geo = data_path_windows +'\\'
else:
project_data_path_geo = data_path_linux +'/'
sys.path.insert(0, project_data_path_geo)
#### code copied an adapted from [Geoscience Australia](https://knowledge.dea.ga.gov.au/notebooks/How_to_guides/Opening_GeoTIFFs_NetCDFs/):
# to load multiple GeoTIFF files into a single xarray.Dataset, we first need to obtain a list of the files using the glob package.
geotiff_list_curpol = glob.glob(project_data_path_geo +'geotiff_curpol2300/impact_geo_curpol-sap*.tif')
# Load in and concatenate all individual GeoTIFFs (along new country dimension)
geotiffs_da = xr.concat([rioxarray.open_rasterio(i) for i in geotiff_list_curpol], dim='country')
# Covert our xarray.DataArray into a xarray.Dataset
geotiffs_ds = geotiffs_da.to_dataset(name='pH')
plotting the new xarray.Dataset with old methods
fig, ax = plt.subplots(figsize=(12, 8), subplot_kw={'projection': ccrs.Robinson()})
num_countrys = len(geotiffs_ds['country'])
plot_objects = []
# Loop through countrys and plot on map
for country_idx in range(num_countrys):
country = geotiffs_ds['pH'].isel(country=country_idx)
plot_obj = country.plot(ax=ax, cmap='Reds_r', alpha =0.7,add_colorbar=False, transform=ccrs.PlateCarree())
plot_objects.append(plot_obj)
# colorbar,tiltle and plotting
cbar = fig.colorbar(plot_objects[0], ax=ax, fraction=0.025, pad=0.04)
cbar.set_label('pH-Value difference')
ax.set_extent([-5.5, 35.5, 30, 46], crs=ccrs.PlateCarree())
ax.set_title('Changes in Sea surface pH in the Mediterranean in 2300 compared to present day')
ax.coastlines()
gridlines = ax.gridlines(draw_labels=True, crs=ccrs.PlateCarree(), linestyle="--", alpha=0.5)
gridlines.top_labels,gridlines.right_labels = False,False
plt.show()
The plot illustrates the changes in sea surface pH in the whole Mediterranean Sea projected for the year 2300 compared to present-day conditions for the 2020 policies pathway. The figure shows a widespread decrease in pH across the Mediterranean, indicating acidification. The color gradient represents the magnitude of the pH change, with darker shades of red indicating a more pronounced decrease. Again a change of -0.186 migth not sound important, but this change of -0.186 in pH corresponds to approximately a 53.46% increase in acidity. More significant decreases in pH are visible in the north-western and eastern Mediterranean regions, likely reflecting stronger influences of anthropogenic CO2 uptake, higher sea surface temperatures(see correlation above), or regional oceanographic conditions that amplify acidification. source: www.frontiersin.org
Further sources on our research topic:
Cross-Chapter Paper 4 of the IPCC report. https://www.ipcc.ch/report/ar6/wg2/downloads/report/IPCC_AR6_WGII_CCP4.pdf
Flecha, S., Pérez, F., García-Lafuente, J. et al. Trends of pH decrease in the Mediterranean Sea through high frequency observational data: indication of ocean acidification in the basin. Sci Rep 5, 16770 (2015). https://doi.org/10.1038/srep16770
Koffi Marcellin Yao, Olivier Marcou, Catherine Goyet, Véronique Guglielmi, Franck Touratier, Jean-Philippe Savy, Time variability of the north-western Mediterranean Sea pH over 1995–2011. Marine Environmental Research, Volume 116, 2016 https://www.sciencedirect.com/science/article/abs/pii/S0141113616300174