Climate change is one of the most pressing issues facing our planet today. This research paper examines three key indicators of global warming: temperature change, sea level rise, and Arctic ice extent. By analyzing historical data and current trends, I aim to provide a comprehensive overview of the ongoing climate crisis and its potential impacts on our world.
The data used in this study includes global land temperatures by city, sea level measurements from 1880 to 2014, and Arctic ice extent from 1979 to 2022. Through various statistical analyses and visualizations, we will demonstrate global warming climate indicators.
library(tidyverse)
data <- read.csv("GlobalLandTemperaturesByCity.csv")
filtered_data <- data %>%
filter(!is.na(AverageTemperature)) %>%
separate(dt, into = c("year", "month", "day"), sep="-") %>%
mutate(year = as.numeric(year), month = as.numeric(month))
This plot shows the global mean temperature from 1875 to the present day. The graph displays a clear upward trend, with the mean temperature increasing over time, with 0.984 °C per century. The blue line represents a linear regression, indicating the overall warming trend. Lines around the points represents the 95% confidence interval lower and upper bounds.
plt_1 <- filtered_data %>%
filter(year > 1875) %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
ci_low = mean_temp - 1.96 * se_temp,
ci_high = mean_temp + 1.96 * se_temp
)
# For a 95% confidence interval and a sample size > 30, we typically use a z-score of 1.96. The formula for a confidence interval is (mean – (z* (std_dev/sqrt(n)), mean + (z* (std_dev/sqrt(n))
ggplot(plt_1, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Global Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
Tbilisi is capital of Georgia, post soviet union country, between Europe and Asia. As we see from the graph temperature is rising little by little every year, on average there is 1.174 °C increase per century, which is way higher than global average.
Since there were only 12 entries for each year, error bars are huge, each of the entries of the year vary very much from the average over the year, that’s mostly due to seasonal temperature changes. Since n<30, to calculate confidence interval we aren’t using assumption that those samples would follow normal distribution, instead we are using student’s t-distribution test.
plt_2 <- filtered_data %>%
filter(year > 1875 & City == "Tbilisi") %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
df = n - 1,
t_critical = qt(0.975, df),
ci_low = mean_temp - t_critical * se_temp,
ci_high = mean_temp + t_critical * se_temp
)
ggplot(plt_2, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Tbilisi Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
The reason Jakarta is interesting is that it ranks among the top cities experiencing significant temperature rise due to climate change. From observing the temperature trends, we can visually detect drastic changes in recent decades. However, while the graph may suggest that Jakarta’s temperature increase is steeper than other cities like Tbilisi, that’s not entirely accurate based on the regression line slopes. The temperature change in Jakarta is actually 0.986°C per century, which is almost identical to the global average of 0.984°C per century. Despite this, Jakarta is facing severe consequences from climate change, with rising sea levels and frequent heatwaves putting pressure on the city’s infrastructure and environment.
plt_3 <- filtered_data %>%
filter(year > 1875 & City == "Jakarta") %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
df = n - 1,
t_critical = qt(0.975, df),
ci_low = mean_temp - t_critical * se_temp,
ci_high = mean_temp + t_critical * se_temp
)
ggplot(plt_3, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Jakarta Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
Anchorage is the most populous city in the state of Alaska, and it is interesting to observe how global warming is affecting cold regions. Alaska is the fastest-warming state, and due to its northern latitude and seasonal changes in sea ice, the state is experiencing a warming rate of 1.396°C per century. This is significantly higher than the global average temperature increase of 0.984°C per century, making Alaska warm at two to three times the global average rate in recent decades (according to USDA Climate Hubs).
plt_4 <- filtered_data %>%
filter(year > 1875 & City == "Anchorage") %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
df = n - 1,
t_critical = qt(0.975, df),
ci_low = mean_temp - t_critical * se_temp,
ci_high = mean_temp + t_critical * se_temp
)
ggplot(plt_4, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Anchorage Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
convert_coordinates <- function(coord) {
ifelse(grepl("N", coord), as.numeric(sub("N", "", coord)),
ifelse(grepl("S", coord), -as.numeric(sub("S", "", coord)),
ifelse(grepl("E", coord), as.numeric(sub("E", "", coord)),
ifelse(grepl("W", coord), -as.numeric(sub("W", "", coord)), NA))))
}
regional_temp_data <- filtered_data %>%
filter(!is.na(Latitude) & !is.na(Latitude) & year > 1875) %>%
mutate(Latitude = convert_coordinates(Latitude), Longitude = convert_coordinates(Longitude))
The Equatorial region, located around the Earth’s middle, has a more stable climate, yet it is not immune to global warming. With a temperature increase of 0.9°C per century, which is less than global average, it is experiencing slower warming compared to higher latitudes. However, even modest warming here can lead to significant impacts on local ecosystems, including increased frequency of heatwaves and shifting rainfall patterns.
ecuatorial_temp <- regional_temp_data %>%
filter(Latitude >= -10 & Latitude <= 10) %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
df = n - 1,
t_critical = qt(0.975, df),
ci_low = mean_temp - t_critical * se_temp,
ci_high = mean_temp + t_critical * se_temp
)
ggplot(ecuatorial_temp, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Ecuatorial Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
The Arctic region is witnessing rapid warming, driven by its high latitude and unique climate dynamics. Areas near the North Pole, like the Arctic Ocean, are warming at more than twice the global average, due to the reduced sea ice cover, which exposes more ocean water, allowing it to absorb more heat from the sun. The 1.142°C per century rate of temperature increase in this region higher than global average and it emphasizes the severity of climate change in the Arctic.
north_pole_temp <- regional_temp_data %>%
filter(Latitude >= 50 & Latitude <= 90) %>%
group_by(year) %>%
summarise(
mean_temp = mean(AverageTemperature),
sd_temp = sd(AverageTemperature),
n = n(),
se_temp = sd_temp / sqrt(n),
df = n - 1,
t_critical = qt(0.975, df),
ci_low = mean_temp - t_critical * se_temp,
ci_high = mean_temp + t_critical * se_temp
)
ggplot(north_pole_temp, aes(as.numeric(year), mean_temp)) +
geom_point() +
geom_errorbar(aes(ymin = ci_low, ymax = ci_high)) +
geom_smooth(method = "lm", se = TRUE) +
labs(title = "Arctic Mean Temperature from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
The North Pole region shows a faster rate of temperature increase compared to the equatorial region. While both areas are experiencing warming, the North Pole is warming at a rate 10% faster than the equatorial region. This highlights the phenomenon of polar amplification, where polar regions, particularly the Arctic, are warming more rapidly than lower latitudes. This can have significant environmental impacts, such as faster ice melting and rising sea levels.
global_model <- lm(mean_temp ~ as.numeric(year), data = plt_1)
tbilisi_model <- lm(mean_temp ~ as.numeric(year), data = plt_2)
jakarta_model <- lm(mean_temp ~ as.numeric(year), data = plt_3)
anchorage_model <- lm(mean_temp ~ as.numeric(year), data = plt_4)
ecuatorial_model <- lm(mean_temp ~ as.numeric(year), data = ecuatorial_temp)
north_pole_model <- lm(mean_temp ~ as.numeric(year), data = north_pole_temp)
slope_data <- data.frame(
Location = c("Global", "Tbilisi", "Jakarta", "Anchorage", "Ecuatorial region", "Northern Region"),
Slope = c(coef(global_model)[2],
coef(tbilisi_model)[2],
coef(jakarta_model)[2],
coef(anchorage_model)[2],
coef(ecuatorial_model)[2],
coef(north_pole_model)[2]
)
)
slope_data$Slope <- round(slope_data$Slope, 5)
slope_data$Interpretation <- paste(
"Temperature increase of",
round(slope_data$Slope * 100, 3),
"°C per century"
)
library(knitr)
kable(slope_data,
col.names = c("Location", "Slope (°C/year)", "Interpretation"),
caption = "Comparison of Temperature Change Slopes",
align = c('l', 'c', 'l'))
| Location | Slope (°C/year) | Interpretation |
|---|---|---|
| Global | 0.00984 | Temperature increase of 0.984 °C per century |
| Tbilisi | 0.01174 | Temperature increase of 1.174 °C per century |
| Jakarta | 0.00986 | Temperature increase of 0.986 °C per century |
| Anchorage | 0.01396 | Temperature increase of 1.396 °C per century |
| Ecuatorial region | 0.00900 | Temperature increase of 0.9 °C per century |
| Northern Region | 0.01142 | Temperature increase of 1.142 °C per century |
These results highlight that while global warming is occurring everywhere, some regions (like Anchorage) are experiencing more rapid temperature increases than others.
This bar chart displays the global temperature changes compared to the average temperature since 1875. Each bar represents the deviation from the long-term average for a given year. The trend clearly shows an increase in positive anomalies over time.
average <- mean(filtered_data$AverageTemperature)
plt_3_1 <- filtered_data %>%
filter(year > 1875) %>%
group_by(year) %>%
summarise(
div = mean(AverageTemperature) - average
)
ggplot(plt_3_1, aes(as.numeric(year), div)) +
geom_col() +
labs(title = "Global Temperature Average Difference by Years from 1875",
y = "Mean Temperature (degrees C)",
x = "Year")
On the graph we can see a clear trend of global warming. It tells us that over the years, the Earth has become much warmer, with temperatures rising significantly since the mid-20th century.
This anomaly graph visualizes seasonal temperature deviations from the long-term average, which helps in identifying unusual temperature trends over time. Anomalies, in this context, show how much warmer or cooler the temperature is compared to the baseline average. We are just going to watch northern hemisphere, since when there is summer in one hemisphere there is winter in another.
A positive anomaly indicates that the observed temperature was warmer than the reference value, while a negative anomaly indicates that the observed temperature was cooler than the reference value.
regional_temp_data <- filtered_data %>%
mutate(season = ifelse(month %in% c(12, 1, 2), "Winter",
ifelse(month %in% c(3, 4, 5), "Spring",
ifelse(month %in% c(6, 7, 8), "Summer", "Autumn"))))
regional_temp_data <- regional_temp_data %>%
filter(Latitude > 0) %>%
mutate(anomaly = AverageTemperature - average)
seasonal_anomalies <- regional_temp_data %>%
group_by(year, season) %>%
summarise(mean_anomaly = mean(anomaly, na.rm = TRUE))
ggplot(seasonal_anomalies, aes(x = year, y = season, fill = mean_anomaly)) +
geom_tile() +
scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0) +
labs(title = "Seasonal Temperature Anomalies Over Time in Northern Hemisphere",
x = "Year", y = "Season", fill = "Anomaly (°C)")
On the graph we can see trend to positive anomalies, which is indicator that average temperature has been increasing over the years, more and more,
However this doesn’t tell use how seasonal average temperatures have changed. Lets take seasonal averages and then calculate anonalies from those.
seasonal_averages <- regional_temp_data %>%
group_by(year, season) %>%
summarise(seasonal_average = mean(AverageTemperature))
gradient_data <- regional_temp_data %>%
left_join(seasonal_averages, by = c("year", "season"))
gradient_data <- gradient_data %>%
mutate(anomaly = AverageTemperature - seasonal_average)
seasonal_anomalies <- gradient_data %>%
group_by(year, season) %>%
summarise(mean_anomaly = mean(anomaly, na.rm = TRUE), .groups = 'drop')
ggplot(seasonal_anomalies, aes(x = year, y = season, fill = mean_anomaly)) +
geom_tile() +
scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0) +
labs(title = "Average Seasonal Temperature Anomalies by Year in Northern Hemisphere",
x = "Year",
y = "Season",
fill = "Anomaly (°C)")
From the graph it’s hard to tell anything with huge certainty, but on the right side we see extreme differences, both positive and negative, that should indicate that in some cases temperature got cold too, but as we see mostly whitish color on the left, we can say that temperature changes have become higher in recent decades.
There are multiple indicators of climate change, sea level is one of those. Increasing earths surface temperature is biggest factor for rising sea level, since higher temperature means more glaciers, ice and peaks are melting, which rises sea level.
Rising sea levels causes biggest existential threat to some of the islands, Maldives are one those. By 2050, 80% of the country could become uninhabitable due to global warming. According to the World Bank, with “future sea levels projected to increase in the range of 10 to 100 centimeters by the year 2100, the entire country could be submerged.
We will look into how sea level has been changing over decades. Global Average Absolute Sea Level Change, 1880-2014 from the US Environmental Protection Agency using data from CSIRO, 2015; NOAA, 2015.(it is sourced from Kaggle.
This data contains “cumulative changes in sea level for the world’s oceans since 1880, based on a combination of long-term tide gauge measurements and recent satellite measurements. It shows average absolute sea level change, which refers to the height of the ocean surface, regardless of whether nearby land is rising or falling. Satellite data are based solely on measured sea level, while the long-term tide gauge data include a small correction factor because the size and shape of the oceans are changing slowly over time. (On average, the ocean floor has been gradually sinking since the last Ice Age peak, 20,000 years ago.)”
sel_level_data <- read.csv("sea_levels_2015.csv")
filtered_sea_level <- sel_level_data %>%
filter(!is.na(GMSL)) %>%
separate(Time, into = c("year", "month", "day"), sep="-") %>%
mutate(year = as.numeric(year))
Plot shows the yearly average sea level change in milimeter from 1880 to 2014.
plt3_1 <- filtered_sea_level %>%
group_by(year) %>%
summarise(avg_level = mean(GMSL))
ggplot(plt3_1, aes(year, avg_level))+
geom_point() +
geom_smooth(method = "lm", se=T)
On the graph we can observe a clear upward trend, especially accelerating in the latter half of the 20th century. This linear regression line depicts long-term rising trend in sea levels, which aligns with the global warming trend observed over the same period.
The bar chart of decadal averages.
yearly_avg <- filtered_sea_level %>%
group_by(year) %>%
summarise(avg_level = mean(GMSL))
decadal_avg <- yearly_avg %>%
mutate(decade = floor(year / 10) * 10) %>%
group_by(decade) %>%
summarise(avg_level = mean(avg_level))
ggplot(decadal_avg, aes(x = decade, y = avg_level)) +
geom_bar(stat = "identity") +
labs(title = "Decadal Average Sea Level Change (1880-2010)",
x = "Decade",
y = "Average Sea Level Change (mm)")
The graph provides clearer picture of how sea levels have changed over longer periods. This acceleration is particularly noticeable from the 1970s onward, coinciding with the period of rapid industrialization and increased greenhouse gas emissions. From 90s difference from average have become positive and have stayed like that till now.
Arctic ice extent is a critical indicator of global climate change. It refers to the total area of the Arctic Ocean covered by sea ice. This measurement is crucial for several reasons: Sensitivity to Temperature: Sea ice is highly sensitive to changes in global temperature. As the Earth warms, Arctic ice melts faster and forms more slowly, leading to a decrease in overall ice extent and increase in sea level.
Each year the amount of ice in the arctic sea fluctuates depending on the season. Since 1979, NASA has been tracking these fluctuations using satellite data. The amount of ice tends to reach it’s maximum in March and it’s minimum in September. This dataset consist of the minimum extent in September of each year. As defined by NASA, Sea ice extent is the integral sum of the areas of all grid cells with at least 15% ice concentration. The data can be found at NASA’s climate website: https://climate.nasa.gov/
ice_extent_data <- read.csv("arctic_ice_extent.csv")
This scatter plot shows the relationship between average sea level and Arctic ice extent. The negative correlation visible in the plot suggests that as sea levels rise, Arctic ice extent decreases, providing further evidence of the interconnected nature of these climate change indicators.
ice_extent_sea_level <- filtered_sea_level %>%
group_by(year) %>%
summarise(avg_sea_level = mean(GMSL)) %>%
inner_join(ice_extent_data, by = "year")
ggplot(ice_extent_sea_level, aes(avg_sea_level, extent)) +
geom_point() +
geom_smooth(method = "lm", se = T)
To summarize all those three global warming indicators:
The global mean temperature has shown a significant upward trend since 1875, with the rate of increase accelerating in recent decades. This warming trend is consistent across different geographic locations, from Tbilisi to Jakarta to Anchorage, although the magnitude of change varies.
Sea levels have been rising steadily since 1880, with a notable acceleration from the 1970s onward. This trend coincides with the period of rapid industrialization and increased greenhouse gas emissions. The decadal averages clearly show the escalating rate of sea level rise in recent years.
The negative correlation between sea level rise and Arctic ice extent demonstrates the interconnected nature of these climate indicators. As global temperatures increase, Arctic ice melts, contributing to rising sea levels.
Rising sea level will make multiple islands dissapear, among those are: Maldives, Tuvalu, Kiribati, and the Marshall Islands (according to live science)
Changing sea levels can affect coastal and marine ecosystems, potentially leading to loss of habitat for many species and alterations in coastal vegetation patterns.
While some regions may be more immediately affected, the global nature of sea level rise means that its impacts will be felt worldwide through various mechanisms, including changes in weather patterns and ocean currents
This data provides strong evidence of ongoing climate change. The consistent upward trend in sea level, coupled with the acceleration observed in recent decades, aligns with other climate change indicators such as global temperature rise, which we saw above. This data underscores the urgent need for global action to mitigate climate change and adapt to its already apparent effects. As we face the challenges posed by rising seas, it becomes increasingly crucial to reduce greenhouse gas emissions.
Sea Level Change. https://www.kaggle.com/datasets/somesh24/sea-level-change. Accessed 27 Sept. 2024.
published, Meg Duff. “Which Islands Will Become Uninhabitable Due to Climate Change First?” Livescience.Com, 12 Nov. 2023, https://www.livescience.com/planet-earth/climate-change/which-islands-will-become-uninhabitable-due-to-climate-change-first.
Artic Ice Extent. https://kaggle.com/code/alexandrepetit881234/artic-ice-extent. Accessed 27 Sept. 2024.
Wikipedia contributors. (2024, June 23). Polar amplification. Wikipedia. https://en.wikipedia.org/wiki/Polar_amplification#:~:text=Polar%20amplification%20is%20the%20phenomenon,polar%20warming%20to%20tropical%20warming.