imdR is an R package for downloading, processing, and visualizing India Meteorological Department (IMD) gridded daily meteorological data. It provides a complete pipeline from raw binary data to climate indices, trend analysis, and publication-quality maps — all within R.
| Variable | Resolution | Period |
|---|---|---|
| Rainfall | 0.25 degree | 1901 to present |
| Maximum temperature | 1.0 degree | 1951 to present |
| Minimum temperature | 1.0 degree | 1951 to present |
# Install from CRAN
install.packages("imdR")
# Or install the development version from GitHub
install.packages("remotes")
remotes::install_github("Subhradip25/imdR")library(imdR)
file_dir <- tempdir()
# Download 2020 rainfall data
rain2020 <- get_data("rain", 2020, 2020, file_dir)
# Plot a single day — full India map with SOI boundaries
plot_imd(rain2020, "2020-06-28", "rain")
# Zoom to Kerala
plot_imd(rain2020, "2020-06-28", "rain",
level = "state", name = "Kerala")
# Extract daily time series at Panaji, Goa
goa_ts <- get_point(lat = 15.5, lon = 73.8,
variable = "rain",
start_yr = 2020, end_yr = 2020,
file_dir = file_dir)
# Plot time series with 30-day rolling mean
plot_timeseries(goa_ts, variable = "rain",
title = "Goa Daily Rainfall 2020")
# Compute rainfall indices for Goa
goa_idx <- compute_rainfall_indices(rain2020,
level = "state",
name = "Goa",
file_dir = file_dir)
print(goa_idx)| Function | Description |
|---|---|
get_data() |
Download and read IMD binary data |
open_data() |
Read cached IMD data from disk |
get_point() |
Extract daily time series at a point |
get_point_all() |
Extract all variables at a point |
get_bbox() |
Extract data within a bounding box |
extract_by_boundary() |
Mask data to a state or district |
list_states() |
List all 36 states and UTs |
list_districts() |
List districts, optionally by state |
get_boundary() |
Get sf boundary for a state or district |
plot_imd() |
Publication-quality daily map |
plot_timeseries() |
Daily time series with rolling mean |
compute_rainfall_indices() |
11 rainfall climate indices |
compute_temp_indices() |
13 temperature climate indices |
trend_analysis() |
Mann-Kendall test and Sen’s slope |
Rainfall (11): dr, d64, d115, rx1day, rx5day, rtwd, sdii, total, cwd, cdd, pci
Temperature (13): mean_tmax, mean_tmin, mean_dtr, txx, txn, tnx, tnn, su35, su40, tr10, tr25, wsdi, csdi
imdR includes Survey of India (SOI) approved administrative boundaries for all 36 Indian states and union territories and 808 districts, ready to use with no additional downloads.
# List all states
list_states()
# List districts in any state
list_districts("Kerala")
# Get sf boundary object
goa <- get_boundary("state", "Goa")IMD gridded data: India Meteorological Department, Pune. https://imdpune.gov.in (accessed periodically; server may be temporarily unavailable)
Boundaries: Survey of India (SOI)
citation("imdR")