ForHosting KIT · Science

UNEP aridity index calculator

Find how dry a place really is: 350 mm of rain against 1400 mm of potential evapotranspiration gives an aridity index of 0.25, a semi-arid climate. Stations sitting exactly on a threshold always get the same class. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Precipitation
350
Potential evapotranspiration
1,400
You get
Aridity index
0.25
Climate class
semi_arid
Climate class label
Semi-arid
Equation
AI = 350 / 1400 = 0.25

The UNEP aridity index is the ratio of mean annual precipitation to mean annual potential evapotranspiration, written AI = P / PET, and it is the official climate dryness scale used in the World Atlas of Desertification and by the United Nations Convention to Combat Desertification. Land managers, hydrologists, and climate courses need that ratio turned into a dryland class without spreading spreadsheet off-by-one errors at the 0.05, 0.20, 0.50, and 0.65 thresholds. This UNEP aridity index calculator accepts precipitation and potential evapotranspiration in the same length units, usually millimetres per year, returns the dimensionless index, and classifies the climate as hyper-arid, arid, semi-arid, dry sub-humid, or humid.

What the UNEP aridity index measures and how drylands are classified

The United Nations Environment Programme defined the aridity index as annual precipitation divided by annual potential evapotranspiration so that dryness could be compared across stations, basins, and climate grids without mixing incompatible drought metrics. Precipitation is the water that actually arrives at the surface; potential evapotranspiration is the water the atmosphere would remove from a well-watered vegetated surface. Their ratio is dimensionless: an index of 0.25 means the site receives one quarter of the evaporative demand, a classic semi-arid water budget.

UNEP World Atlas of Desertification thresholds split that continuum into five climate classes. Hyper-arid climates sit strictly below 0.05 and include the core subtropical deserts. Arid climates occupy 0.05 inclusive to 0.20 exclusive.

Semi-arid climates occupy 0.20 inclusive to 0.50 exclusive and cover much of the world's rangeland and dryland farming. Dry sub-humid climates occupy 0.50 inclusive to 0.65 exclusive and form the moist edge of the drylands. Humid climates have an index of 0.65 or greater and fall outside the UNEP dryland envelope.

Both answers are useful in reports. The capability implements only that ratio and those published thresholds. It does not estimate PET from temperature, wind, or radiation, so you must supply potential evapotranspiration already computed, for example as an annual Hargreaves-Samani or Penman-Monteith total in the same units as precipitation.

Where the UNEP aridity index is most useful

Dryland programmes, basin agencies, and UNCCD reporting desks need a deterministic oracle that turns a precipitation column and a PET column into the same five UNEP classes every time, including the inclusive lower edges at 0.05, 0.20, and 0.50 and the dryland cut at 0.65, so a station sitting exactly on a threshold is not labelled differently in two spreadsheets.

Climate and hydrology courses want a homework check that rejects zero or negative PET instead of silently printing a divide-by-zero, and that distinguishes the UNEP dryland envelope from the UNCCD band that excludes hyper-arid deserts. Irrigation and rangeland notebooks often already have annual P and an ET0 total from Hargreaves-Samani or Penman-Monteith; feeding those two numbers here classifies the site without standing up a GIS stack. Research pipelines that batch thousands of grid cells need fixed twelve-decimal rounding and a hard PET floor they can assert in tests.

UNCCD and dryland programme reporting

Turn station or grid P and PET into UNEP classes and the UNCCD dryland flag so reports use the published 0.05–0.65 band instead of ad-hoc cut-offs.

Basin and rangeland water-budget notes

Classify a catchment as hyper-arid through humid from annual rainfall and an existing PET or ET0 total before sizing stock water or dryland crops.

What UNEP thresholds define each dryland class?

Hyper-arid is AI below 0.05; arid is 0.05 to 0.20; semi-arid is 0.20 to 0.50; dry sub-humid is 0.50 to 0.65; humid is 0.65 and above. Lower edges are inclusive except the open hyper-arid floor.

What does an aridity index of 0.25 mean?

The site receives one quarter of the water the atmosphere could evaporate from it. With 350 mm of rain against 1400 mm of potential evapotranspiration, the index is 0.25, which UNEP classes as semi-arid.

What is the difference between UNEP and UNCCD drylands?

UNEP drylands cover every index below 0.65, hyper-arid deserts included. The UNCCD band runs from 0.05 up to, but not including, 0.65, so it leaves true hyper-arid deserts out. The result tells you both.

Does the calculator estimate potential evapotranspiration?

No. Enter a potential evapotranspiration total you already have, for example an annual Hargreaves-Samani or Penman-Monteith figure, in the same unit as your precipitation, usually millimetres per year.

What happens if potential evapotranspiration is zero?

The calculation is refused. Dividing rainfall by zero has no meaning, so a zero or negative evapotranspiration value is rejected instead of producing a misleading index. Precipitation may be zero, but never negative.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/earth/aridity-index-unep

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/earth/aridity-index-unep \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"precipitation":350,"potential_evapotranspiration":1400}'
{
  "precipitation": 350,
  "potential_evapotranspiration": 1400
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "earth.aridity_index_unep",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

When potential evapotranspiration is zero or negative the ratio is undefined, so the task fails with invalid_input instead of dividing by zero.

What the UNEP aridity index measures and how drylands are classified

This calculator also reports two boolean flags that people confuse: is_dryland is true whenever AI is below 0.65, which is the UNEP drylands envelope including hyper-arid deserts, while is_unccd_dryland is true only for 0.05 inclusive to 0.65 exclusive, which is the UNCCD convention band that excludes true hyper-arid deserts.

Input contract, units, response shape, and error behaviour

Precipitation must be non-negative; a negative annual total is unphysical and is rejected. Potential evapotranspiration must be strictly greater than zero. Example: three hundred fifty millimetres of rain against fourteen hundred millimetres of PET yields AI equals 0.25, class semi-arid, both dryland flags true. POST a JSON object with two required finite numbers that share a length unit. precipitation is mean annual precipitation P, typically millimetres per year; aliases p, precip, rainfall, and annual_precipitation are accepted. potential_evapotranspiration is mean annual potential evapotranspiration PET in that same unit; aliases pet, et0, etp, and potential_et are accepted. Each field may arrive as a JSON number or as a numeric string; missing, blank, or non-finite values fail with invalid_input naming the field. On success the body echoes rounded precipitation and potential_evapotranspiration, reports aridity_index as P divided by PET, and names the UNEP class in climate_class plus climate_class_label. is_dryland is the UNEP envelope AI less than 0.65; is_unccd_dryland is the narrower convention band. unit is dimensionless. formula and equation restate AI equals P over PET with the substituted numbers, method is unep_wad, and the four published thresholds are echoed as threshold_hyper_arid 0.05, threshold_arid 0.20, threshold_semi_arid 0.50, and threshold_dryland 0.65. steps walks through substitution and classification for teaching UIs. Failed validation is not billed; successful analytic calls use the published $0.002 base price with no model tokens and no outbound network.

Where a UNEP aridity index API earns its keep

Keep P and PET in the same length units, keep PET strictly positive, pin aridity_index and climate_class in tests, and you get a reproducible UNEP dryland classification for courses, reports, and edge workers without shipping a climate library of your own.

Teaching and exam oracles

Give students a deterministic AI = P/PET check against hand UNEP thresholds and reject zero or negative PET as invalid_input.

How do I calculate the UNEP aridity index?

Send precipitation P and potential_evapotranspiration PET in the same length units, typically mm/year. The API returns AI = P/PET and the UNEP class from hyper-arid through humid.

What happens if potential evapotranspiration is zero or negative?

The task fails with invalid_input. UNEP AI = P/PET is undefined when PET is zero or negative, so the handler never divides by zero and that call is not billed.

Is a hyper-arid site counted as a dryland?

is_dryland is true for every AI below 0.65, including hyper-arid deserts (UNEP envelope). is_unccd_dryland is true only for 0.05 ≤ AI < 0.65, which excludes hyper-arid areas from UNCCD drylands.

What does the UNEP aridity index calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →