Analyzing Spatial Patterns of January Rainfall in Ireland (1850–2014)

Author

Kabuto Sylvie Shema

Published

January 15, 2025

Introduction

Rainfall plays an important role in shaping Ireland’s climate, impacting its weather conditions, farming practices, and water systems. Understanding the spatial variability of rainfall provides important insights into how geographical factors such as proximity to the Atlantic Ocean, landscape features, and topography shape these patterns.

This analysis explores the median rainfall levels during January across 25 weather stations in Ireland, using historical data from 1850 to 2014. Geospatial analysis and interactive visualizations are used to investigate how rainfall is distributed across Ireland, identify significant spatial patterns, and illustrate the influence of coastal proximity on Ireland’s January median rainfall.

Data and Methodology

This analysis utilizes historical rainfall data for 25 weather stations across Ireland, spanning from 1850–2014. This dataset, which includes monthly rainfall measurements and station metadata was provided by Dr. Simon Noone and Dr. Conor Murphy.

All analyses are conducted using R, utilizing packages such as dplyr for data manipulation, leaflet for interactive mapping, sf for spatial data handling, and htmlwidgets for embedding interactive visualizations. This combination of tools provides a comprehensive framework for visualizing and analyzing Ireland’s January median rainfall patterns.

Load the required libraries

library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(leaflet)
library(htmlwidgets)
library(sf)
Linking to GEOS 3.12.2, GDAL 3.9.3, PROJ 9.4.1; sf_use_s2() is TRUE

Set a working directory and load the data

setwd("C:/Users/shema/OneDrive/Dokumentai/COURSEWORK/GY672- ANALYZING SPATIAL DATA AND TEMPORAL DATA USING R/ASSIGNMENTS/ASSIGNMENT 2/Class Materials-20240924")

# The rainfall dataset is loaded and its structure is checked:
load("rainfall.RData")

# Check the loaded objects
ls()
[1] "rain"     "stations"
# Display the structure and the first six rows of the loaded objects
str(rain)
tibble [49,500 × 4] (S3: tbl_df/tbl/data.frame)
 $ Year    : num [1:49500] 1850 1851 1852 1853 1854 ...
 $ Month   : Factor w/ 12 levels "Jan","Feb","Mar",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Rainfall: num [1:49500] 169 236 250 209 188 ...
 $ Station : Named chr [1:49500] "Ardara" "Ardara" "Ardara" "Ardara" ...
  ..- attr(*, "names")= chr [1:49500] "Ardara" "Ardara" "Ardara" "Ardara" ...
head(rain)
# A tibble: 6 × 4
   Year Month Rainfall Station
  <dbl> <fct>    <dbl> <chr>  
1  1850 Jan      169   Ardara 
2  1851 Jan      236.  Ardara 
3  1852 Jan      250.  Ardara 
4  1853 Jan      209.  Ardara 
5  1854 Jan      188.  Ardara 
6  1855 Jan       32.3 Ardara 
str(stations)
tibble [25 × 9] (S3: tbl_df/tbl/data.frame)
 $ Station     : chr [1:25] "Athboy" "Foulksmills" "Mullingar" "Portlaw" ...
 $ Elevation   : int [1:25] 87 71 112 8 131 49 14 45 15 62 ...
 $ Easting     : num [1:25] 270400 284100 241780 246600 319700 ...
 $ Northing    : num [1:25] 261700 118400 247765 115200 186000 ...
 $ Lat         : num [1:25] 53.6 52.3 53.5 52.3 52.9 ...
 $ Long        : num [1:25] -6.93 -6.77 -7.37 -7.31 -6.22 -8.1 -9.06 -8 -8.29 -6.64 ...
 $ County      : chr [1:25] "Meath" "Wexford" "Westmeath" "Waterford" ...
 $ Abbreviation: chr [1:25] "AB" "F" "M" "P" ...
 $ Source      : chr [1:25] "Met Eireann" "Met Eireann" "Met Eireann" "Met Eireann" ...
head(stations)
# A tibble: 6 × 9
  Station     Elevation Easting Northing   Lat  Long County  Abbreviation Source
  <chr>           <int>   <dbl>    <dbl> <dbl> <dbl> <chr>   <chr>        <chr> 
1 Athboy             87  270400   261700  53.6 -6.93 Meath   AB           Met E…
2 Foulksmills        71  284100   118400  52.3 -6.77 Wexford F            Met E…
3 Mullingar         112  241780   247765  53.5 -7.37 Westme… M            Met E…
4 Portlaw             8  246600   115200  52.3 -7.31 Waterf… P            Met E…
5 Rathdrum          131  319700   186000  52.9 -6.22 Wicklow RD           Met E…
6 Strokestown        49  194500   279100  53.8 -8.1  Roscom… S            Met E…

Filter Data for January

The rainfall dataset is filtered to focus solely on January and for each station, the median rainfall for this month is calculated.

# Filter rainfall data for January and calculate median rainfall
rain_median <- rain %>%
  filter(Month == "Jan") %>%
  group_by(Station) %>%
  summarise(MedianRainfall = median(Rainfall, na.rm = TRUE))

# Preview the calculated median rainfall
head(rain_median)
# A tibble: 6 × 2
  Station    MedianRainfall
  <chr>               <dbl>
1 Ardara              172. 
2 Armagh               75  
3 Athboy               87.1
4 Belfast             102. 
5 Birr                 77.5
6 Cappoquinn          147. 

Merge Median Rainfall with Metadata

The calculated median rainfall values are then combined with the station metadata, creating a merged dataset suitable for analysis.

# Merge rainfall data with station metadata
combined_data <- merge(rain_median, stations, by = "Station")

# Preview the combined dataset
head(combined_data)
     Station MedianRainfall Elevation  Easting Northing   Lat  Long    County
1     Ardara          171.6        15 180787.7 394679.0 54.79 -8.29   Donegal
2     Armagh           75.0        62 287831.3 345772.0 54.35 -6.64    Armagh
3     Athboy           87.1        87 270400.0 261700.0 53.60 -6.93     Meath
4    Belfast          102.1       115 329623.4 363141.3 54.50 -5.99    Antrim
5       Birr           77.5        73 208016.8 203400.5 53.08 -7.88    Offaly
6 Cappoquinn          147.4        76 213268.9 104799.9 52.19 -7.80 Waterford
  Abbreviation             Source
1           AR             Briffa
2            A Armagh Observatory
3           AB        Met Eireann
4           BF             Tabony
5            B             Tabony
6            C             Briffa

Represent stations with color-coded markers to differentiate between the rainfall categories.

Stations are color-coded into three categories: Blue: Low rainfall (<100 mm), Green: Moderate rainfall (100–150 mm) and Red: High rainfall (>150 mm).

In addition to that, the station with the highest median rainfall is highlighted in gold, while the station with the lowest rainfall is highlighted in cyan.

# Add a Color column based on rainfall levels
combined_data$Color <- cut(
  combined_data$MedianRainfall,
  breaks = c(-Inf, 100, 150, Inf),
  labels = c("blue", "green", "red")
)
# Convert data to sf object
stations_sf <- st_as_sf(combined_data, coords = c("Long", "Lat"), crs = 4326)

# Preview combined data
head(stations_sf)
Simple feature collection with 6 features and 9 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: -8.29 ymin: 52.19 xmax: -5.99 ymax: 54.79
Geodetic CRS:  WGS 84
     Station MedianRainfall Elevation  Easting Northing    County Abbreviation
1     Ardara          171.6        15 180787.7 394679.0   Donegal           AR
2     Armagh           75.0        62 287831.3 345772.0    Armagh            A
3     Athboy           87.1        87 270400.0 261700.0     Meath           AB
4    Belfast          102.1       115 329623.4 363141.3    Antrim           BF
5       Birr           77.5        73 208016.8 203400.5    Offaly            B
6 Cappoquinn          147.4        76 213268.9 104799.9 Waterford            C
              Source Color            geometry
1             Briffa   red POINT (-8.29 54.79)
2 Armagh Observatory  blue POINT (-6.64 54.35)
3        Met Eireann  blue  POINT (-6.93 53.6)
4             Tabony green  POINT (-5.99 54.5)
5             Tabony  blue POINT (-7.88 53.08)
6             Briffa green  POINT (-7.8 52.19)
# Identify the highest and lowest rainfall stations
highest_rainfall <- stations_sf %>%
  filter(MedianRainfall == max(MedianRainfall, na.rm = TRUE))

lowest_rainfall <- stations_sf %>%
  filter(MedianRainfall == min(MedianRainfall, na.rm = TRUE))

# Extract coordinates
highest_coords <- st_coordinates(highest_rainfall)
lowest_coords <- st_coordinates(lowest_rainfall)

Results: The Interactive map

Popups are added to the map, allowing users to view details such as station names and median rainfall values.

# Create the interactive map
map <- leaflet(data = stations_sf) %>%
  addTiles() %>%
  addCircleMarkers(
    radius = 6,
    color = ~Color,
    fillColor = ~Color,
    fillOpacity = 0.8,
    popup = ~paste(
      "<b>Station:</b> ", Station,
      "<br><b>Median Rainfall:</b> ", MedianRainfall, " mm"
    )
  ) %>%
  # Add highest rainfall station
  addCircleMarkers(
    lng = highest_coords[1, 1],  # Longitude
    lat = highest_coords[1, 2],  # Latitude
    color = "gold",
    fillColor = "gold",
    fillOpacity = 1,
    radius = 10,
    popup = ~paste(
      "<b>Station:</b> ", highest_rainfall$Station,
      "<br><b>Median Rainfall:</b> ", highest_rainfall$MedianRainfall, " mm (Highest)"
    )
  ) %>%
  # Add lowest rainfall station
  addCircleMarkers(
    lng = lowest_coords[1, 1],  # Longitude
    lat = lowest_coords[1, 2],  # Latitude
    color = "cyan",
    fillColor = "cyan",
    fillOpacity = 1,
    radius = 10,
    popup = ~paste(
      "<b>Station:</b> ", lowest_rainfall$Station,
      "<br><b>Median Rainfall:</b> ", lowest_rainfall$MedianRainfall, " mm (Lowest)"
    )
  ) %>%
  addLegend(
    "bottomright",
    colors = c("blue", "green", "red", "gold", "cyan"),
    labels = c(
      "Low (<100 mm)",
      "Moderate (100–150 mm)",
      "High (>150 mm)",
      "Station with Highest Median Rainfall",
      "Station with Lowest Median Rainfall"
    ),
    title = "Median Rainfall Levels",
    opacity = 1
  ) %>%
  addScaleBar(position = "bottomleft")

# Save and display the map
saveWidget(map, "interactive_rainfall_map_ireland.html", selfcontained = TRUE)
map

Discussion

The interactive map reveals distinct spatial patterns in January median rainfall across Ireland. Stations found in the west of Ireland, especially those near the Atlantic coast, show the highest median rainfall levels (>150 mm) as indicated by red markers. This is mainly caused by exposure to moist air masses brought by prevailing westerly winds and the orographic effect, where moist air rises over coastal mountains and uplands, causing heavy rainfall (Met Éireann, n.d.).

Central Ireland stations show moderate rainfall levels (100–150 mm) as represented by green markers. These regions are located further from the Atlantic’s direct influence yet still receive significant rainfall from systems passing across the country. In contrast, eastern and southeastern Ireland stations generally display the lowest rainfall levels (<100 mm) as shown with blue markers. This is primarily due to the rain shadow effect, where the western mountains deplete moisture from incoming air masses before they reach the east, leaving the eastern and southeastern regions comparatively drier (Kiely, 1999)

Notably, the station with the highest median rainfall is Killarney (177.7 mm), situated in the west of the country and the station with the lowest median rainfall is while Dublin Airport (63 mm) found in the East of the country.

These findings highlight the significant impact of geographic location, particularly proximity to the Atlantic Ocean and the rain shadow effect, on Ireland’s rainfall patterns.

Conclusion

This analysis demonstrates the influence of geographic factors in shaping Ireland’s rainfall patterns particularly for the month of January. The interactive map reveals clear spatial variability, with western regions experiencing highest median rainfall levels due to their proximity to the Atlantic Ocean and the orographic effect, while the eastern and southeastern regions, shielded by mountain ranges, receive the lowest rainfall levels and Central areas display moderate rainfall levels, reflecting their intermediate position between these extremes.

References

  • Kiely, G. (1999). Climate change in Ireland from precipitation and streamflow observations. Journal of Environmental Management, 66(2), pp. 117–136. Available at: https://www.ucc.ie/en/media/research/hydromet/1-s2.0-S0309170899000184-main.pdf (Accessed: 10 January 2025).

  • Met Éireann (n.d.). Climate of Ireland. [online] Available at: https://www.met.ie/climate/climate-of-ireland (Accessed: 10 January 2025).