Static
Badge Last
Update Repo
Size

This repository is an archive of weekly US Drought Monitor (USDM) data aggregated to the county level as reported by the USDM.

📂 View the US Drought Monitor county aggregation archive listing here.

The county data archived in this repository were acquired via API request by R. Kyle Bocinsky (Montana Climate Office) and are updated weekly. API documentation is available at https://droughtmonitor.unl.edu/DmData/DataDownload/WebServiceInfo.aspx.

Here is a template of the call used to retrieve these data:

https://usdmdataservices.unl.edu/api/CountyStatistics/GetDroughtSeverityStatisticsByAreaPercent?aoi=AK,AL,AR,AZ,CA,CO,CT,DC,DE,FL,GA,HI,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,PR,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY&startdate=01/04/2000&enddate=01/04/2000&statisticsType=2


📈 About the US Drought Monitor (USDM)

The US Drought Monitor is a weekly map-based product that synthesizes multiple drought indicators into a single national assessment. It is produced by:

  • National Drought Mitigation Center (NDMC)
  • US Department of Agriculture (USDA)
  • National Oceanic and Atmospheric Administration (NOAA)

Each weekly map represents a combination of data analysis and expert interpretation.

The USDM weekly maps depicting drought conditions are categorized into six levels:

  • None: Normal or wet conditions
  • D0: Abnormally Dry
  • D1: Moderate Drought
  • D2: Severe Drought
  • D3: Extreme Drought
  • D4: Exceptional Drought

While USDM drought class boundaries are developed without regard to political boundaries, it is often aggregated by political boundaries to assist in decision-making and for regulatory purposes.

Note: This archive is maintained by the Montana Climate Office, but all analytical authorship of the USDM drought maps belongs to the named USDM authors.


🗂 Directory Structure

  • <usdm-counties-reported.R>: R script that downloads weekly USDM data aggregated to county boundaries.
  • <usdm-counties-reported.parquet>: Processed county-level USDM data in a single parquet file.
  • <usdm-counties-reported.json>: The worst drought class in each county each week, restructured for browsers (see Output Data below).
  • <data/>: Directory containing processed county-level USDM data.
  • <README.Rmd>: This README file, providing an overview and usage instructions.

The data/ directory and the consolidated Parquet are mirrored to S3 and served via CloudFront at https://data.sustainable-fsa.com/usdm-counties-reported/ — that mirror is the archive of record, and the data are not kept in git. usdm-counties-reported.json is a deliberate exception to that policy: it is mirrored to S3 and committed to git, so the web maps that read it have a small, versioned copy that moves with the repository.


📤 Output Data

Every weekly table returned by the API is concatenated into usdm-counties-reported.parquet, the archive of record. The same records, reduced to the worst drought class per county and week, are written to usdm-counties-reported.json for web maps.

usdm-counties-reported.json

The same weekly records as the Parquet — reduced from the identical table in the same run — restructured for direct use in a browser. It carries the worst drought class in each county each week and nothing else; the per-class area percents stay in the Parquet. It is what the web maps load, not an archive-of-record format: for analysis, use the Parquet.

  • One string per county: a county’s entire history is a single fixed-width string of class codes (0 = None through 5 = D4), one character per weekly USDM Tuesday on an implicit axis beginning 2000-01-04. No dates are stored, and a . marks a week in which the county is absent from the archive. The file is roughly 4.6 MB raw and about 400 KB gzipped over the wire.
  • Worst class, no threshold: the class for a county-week is the maximum over every record present, with no area-percent cutoff — any nonzero-area sliver of a class counts. This matches how fsa-lfp-eligibility-derived reads the archive.
  • Dictionary-coded names: the county keys are the five-character GEOID FIPS codes exactly as NDMC reports them, and the county and state names each appear once, in arrays running parallel to the per-county strings. Because the keys are NDMC’s own, they include the nine Connecticut planning regions (0911009190), which NDMC reports across the full record in place of Connecticut’s former counties. Those nine are absent from the 2020 Census county table this archive joins for names, so they carry an empty county name; their state is recovered from the GEOID prefix.

The payload is self-describing via its schema field (usdm-max-class/1), a frozen contract with the web map: fields may be added, but existing ones are never renamed or reordered without bumping the schema. The same schema serves the usdm-counties and usdm-counties-fsa-lfp archives; the dataset field says which of the three a given payload is.


📍 Quick Start: Visualize a Weekly County USDM Map in R

This snippet shows how to load a weekly GeoParquet file from the archive and create a simple drought classification map using sf and ggplot2.

# Load required libraries
library(arrow)
library(sf)
library(ggplot2) # For plotting
library(tigris)  # For state boundaries
library(rmapshaper) # For innerlines function

## Get latest USDM data
latest <-
  jsonlite::fromJSON(
    "https://data.sustainable-fsa.com/usdm-counties-reported/manifest.json"
  )$path |>
  stringr::str_subset("parquet") |>
  stringr::str_subset("data/usdm") |>
  max()
# e.g., [1] "data/usdm/USDM_2025-05-27.parquet"

date <-
  latest |>
  stringr::str_extract("\\d{4}-\\d{2}-\\d{2}") |>
  lubridate::as_date()

# Get the highest (worst) drought class in each county
usdm <-
  paste0("https://data.sustainable-fsa.com/usdm-counties-reported/", latest) |>
  arrow::read_parquet() |>
  dplyr::group_by(STATEFP, COUNTYFP) |>
  dplyr::filter(usdm_class == max(usdm_class))

## Load the US Census county data
counties <- 
  tigris::counties(cb = TRUE,
                   year = 2020,
                   resolution = "5m",
                   progress_bar = FALSE) |>
  dplyr::filter(!(STATEFP %in% c("60", "66", "69", "78"))) |>
  # transform to WGS 84
  sf::st_transform("EPSG:4326") |>
  sf::st_cast("POLYGON", warn = FALSE, do_split = TRUE) |>
  tigris::shift_geometry() |>
  dplyr::group_by(STATEFP, COUNTYFP) |>
  dplyr::summarise(.groups = "drop") |>
  sf::st_cast("MULTIPOLYGON")

usdm_counties <-
  usdm |>
  dplyr::left_join(counties) |>
  sf::st_as_sf()

# Plot the map
ggplot(counties) +
  geom_sf(data = sf::st_union(counties),
          fill = "grey80",
          color = NA) +
  geom_sf(data = usdm_counties,
          aes(fill = usdm_class), 
          color = NA) +
  geom_sf(data = rmapshaper::ms_innerlines(counties),
          fill = NA,
          color = "white",
          linewidth = 0.1) +
  geom_sf(data = counties |>
            dplyr::group_by(STATEFP) |>
            dplyr::summarise() |>
            rmapshaper::ms_innerlines(),
          fill = NA,
          color = "white",
          linewidth = 0.2) +
  scale_fill_manual(
    values = c("grey80",
               "#ffff00",
               "#fcd37f",
               "#ffaa00",
               "#e60000",
               "#730000"),
    drop = FALSE,
    name = "Drought\nClass") +
  labs(title = "US Drought Monitor",
       subtitle = format(date, " %B %d, %Y")) +
  theme_void()

Latest USDM map date: September 01, 2026


📝 Citation

If you use this data in published work, please cite:

National Drought Mitigation Center, USDA, and NOAA. US Drought Monitor Weekly County Aggregations as Reported by the NDMC, January 4, 2000 – present. Curated and archived by R. Kyle Bocinsky, Montana Climate Office, University of Montana. Sustainable FSA project. Accessed YYYY-MM-DD. https://sustainable-fsa.com/usdm-counties-reported/

Machine-readable metadata are in CITATION.cff; GitHub’s Cite this repository button (top right of the repo page) renders it as APA or BibTeX.

Acknowledgment: This work is part of the Enhancing Sustainable Disaster Relief in FSA Programs project, supported by the USDA Office of the Chief Economist, Office of Energy and Environmental Policy, and the USDA Climate Hubs.

📄 License

  • Raw USDM data (NDMC): Public Domain (17 USC § 105)
  • Processed data & scripts: © R. Kyle Bocinsky, released under CC0 and MIT License as applicable

⚠️ Disclaimer

This dataset is archived for research and educational use only. The National Drought Mitigation Center hosts the US Drought Monitor. Please visit https://droughtmonitor.unl.edu.


👏 Acknowledgment

This project is part of:

Enhancing Sustainable Disaster Relief in FSA Programs
Supported by USDA OCE/OEEP and USDA Climate Hubs
Prepared by the Montana Climate Office


📬 Contact

R. Kyle Bocinsky
Director of Climate Extension
Montana Climate Office
📧 kyle.bocinsky@umontana.edu
🌐 https://climate.umt.edu