Data HubContributeData Hub on GitHub

SoilGrids 2.0 global soil property maps

ISRIC - World Soil Information

Part of: SoilGrids

Version2.0
licenseCC-BY-4.0created2026-10-13updated2026-10-14

Overview

SoilGrids 2.0 predicts eleven soil properties for the globe on a 250 m grid at six standard depth intervals from 0 to 200 cm: bulk density, cation exchange capacity, coarse fragments, clay, sand, silt, total nitrogen, pH in water, organic carbon content, organic carbon density, and organic carbon stock (0 to 30 cm only). Quantile regression forests are fitted on about 240,000 soil profiles from the WoSIS database and some 400 environmental covariates. Each property, depth and statistic is one map, with the mean, the median, the 5th and 95th percentiles of the prediction distribution, and a relative uncertainty layer. ISRIC serves every map as a GDAL virtual raster (VRT) that mosaics a folder of GeoTIFF tiles in place, so the maps open remotely with GDAL-based tools without downloading them.

Important note

The maps are in the Interrupted Goode Homolosine projection, not latitude and longitude, so reproject points or windows before sampling. Values are stored as int16 in scaled units with no scale factor in the files; divide by the factor given in each variable's note to get conventional units. The VRTs reference their tiles by relative path, so open them over HTTPS with GDAL's /vsicurl rather than downloading the .vrt alone, and read windows: a full global read touches thousands of tiles. Known gaps include New Zealand and parts of Siberia. The "latest" folder is a rolling release and ISRIC may replace maps in place. The WRB soil class maps in the same folder are aggregated from the 2017 predictions and in EPSG:4326, so they have their own record, soilgrids-wrb.

Quick start

Python
import rioxarray

url = "https://files.isric.org/soilgrids/latest/data/landmask/landmask_SG_052020_COG512.tif"
da = rioxarray.open_rasterio(url, masked=True)

Full access details and endpoints

Intended uses

  • soil inputs to crop, hydrological, and carbon models at national to global scale
  • soil constraint and land suitability mapping
  • baseline soil organic carbon stocks for sequestration and emissions accounting

Not recommended for

field-scale soil management or fertilizer recommendations

Why: values are 250 m model predictions with wide prediction intervals, not measurements.

Use instead: local soil surveys or soil tests.

change detection or time series of soil properties

Why: the maps are a single static prediction with no reference date.

Access & use

Files, endpoints, and worked examples for each distribution.

Data

predictions

GeoTIFF tiles, one folder per property, depth and statistic at {variable}/{variable}_{depth}_{stat}/ (about 5 GB per map, 128x128 blocks). Each property folder has a list_vrts.txt naming its maps and a checksum.sha256.txt.

Format: image/tiff

Variables: bdod, cec, cfvo, clay, nitrogen, ocd +4 more

Dimensions: cell × depth × stat

Data dictionary →

File indexes

GDAL VRThttps://files.isric.org/soilgrids/latest/data/{variable}/{variable}_{depth}_{stat}.vrt240 files

One VRT per map beside its tile folder, with a .vrt.ovr overview file

List of files 240 filesDownload CSV

Individual file

https://files.isric.org/soilgrids/latest/data/bdod/bdod_0-5cm_mean.vrt

Usage examples

Python
import rioxarray

# The VRT opens as one raster; its tiles are read on demand
da = rioxarray.open_rasterio("https://files.isric.org/soilgrids/latest/data/bdod/bdod_0-5cm_mean.vrt", masked=True)
Other access methods
HTTPS (WebDAV) directory:https://files.isric.org/soilgrids/latest/data/
ocs-predictions

The tiles of the four ocs maps for 0-30cm, laid out like the other prediction maps.

Format: image/tiff

Variables: ocs

Dimensions: cell × depth × stat

Data dictionary →

File indexes

GDAL VRThttps://files.isric.org/soilgrids/latest/data/{variable}/{variable}_{depth}_{stat}.vrt4 files

List of files 4 filesDownload CSV

Individual file

https://files.isric.org/soilgrids/latest/data/ocs/ocs_0-30cm_mean.vrt

Usage examples

Python
import rioxarray

# The VRT opens as one raster; its tiles are read on demand
da = rioxarray.open_rasterio("https://files.isric.org/soilgrids/latest/data/ocs/ocs_0-30cm_mean.vrt", masked=True)
Other access methods
HTTPS (WebDAV) directory:https://files.isric.org/soilgrids/latest/data/
uncertainty

The tiles of one uncertainty map per property and depth, laid out like the prediction maps.

Format: image/tiff

Variables: bdod, cec, cfvo, clay, nitrogen, ocd +4 more

Dimensions: cell × depth

Data dictionary →

File indexes

GDAL VRThttps://files.isric.org/soilgrids/latest/data/{variable}/{variable}_{depth}_uncertainty.vrt60 files

List of files 60 filesDownload CSV

Individual file

https://files.isric.org/soilgrids/latest/data/bdod/bdod_0-5cm_uncertainty.vrt

Usage examples

Python
import rioxarray

# The VRT opens as one raster; its tiles are read on demand
da = rioxarray.open_rasterio("https://files.isric.org/soilgrids/latest/data/bdod/bdod_0-5cm_uncertainty.vrt", masked=True)
Other access methods
HTTPS (WebDAV) directory:https://files.isric.org/soilgrids/latest/data/
ocs-uncertainty

The tiles of the single ocs uncertainty map for 0-30cm.

Format: image/tiff

Variables: ocs

Dimensions: cell × depth

Data dictionary →

File indexes

GDAL VRThttps://files.isric.org/soilgrids/latest/data/{variable}/{variable}_{depth}_uncertainty.vrt1 files

List of files 1 filesDownload CSV

Individual file

https://files.isric.org/soilgrids/latest/data/ocs/ocs_0-30cm_uncertainty.vrt

Usage examples

Python
import rioxarray

# The VRT opens as one raster; its tiles are read on demand
da = rioxarray.open_rasterio("https://files.isric.org/soilgrids/latest/data/ocs/ocs_0-30cm_uncertainty.vrt", masked=True)
Other access methods
HTTPS (WebDAV) directory:https://files.isric.org/soilgrids/latest/data/
gee-mean

Google Earth Engine images projects/soilgrids-isric/{property}_mean, curated by ISRIC. Mean maps only; one image per property with one band per depth, named like the files (soc_0-5cm_mean). Same scaled integer units as the VRTs, with nodata masked.

gee

Variables: bdod, cec, cfvo, clay, nitrogen, ocd +4 more

Dimensions: cell × depth

Data dictionary →

gee-ocs

Variables: ocs

Dimensions: cell × depth

Data dictionary →

List of files 11 filesDownload CSV

Individual file

Download

https://earthengine.googleapis.com/v1/projects/soilgrids-isric/assets/bdod_mean

Other access methods

File pattern: {variable}_mean

Earth Engine directory:ee://projects/soilgrids-isric/
Earth Engine REST API directory:https://earthengine.googleapis.com/v1/projects/soilgrids-isric/assets/
landmask684 MB

Single cloud-optimized GeoTIFF on a slightly larger grid than the property maps.

Format: Cloud-Optimized GeoTIFF — best for single-file downloads, visualisation, and traditional GIS tools

Variables: landmask

Dimensions: cell

Data dictionary →

Access the dataOpen

https://files.isric.org/soilgrids/latest/data/landmask/landmask_SG_052020_COG512.tif

Usage examples

Python
import rioxarray

url = "https://files.isric.org/soilgrids/latest/data/landmask/landmask_SG_052020_COG512.tif"
da = rioxarray.open_rasterio(url, masked=True)

# Clip a window (East Africa)
window = da.rio.clip_box(
    minx=28, miny=-12, maxx=52, maxy=18
)

# ...or sample a single point
point = da.sel(x=36.8, y=-1.3, method="nearest")

Data dictionary

What each file holds. A layout describes how the data is stored in a file: its variables, the dimensions they vary over, and any keys.

File layouts

FilesFormatVariablesDimensionsNo data
predictionsimage/tiffbdod, cec, cfvo, clay +6 morecell × depth × stat-32768
ocs-predictionsimage/tiffocscell × depth × stat-32768
uncertaintyimage/tiffbdod, cec, cfvo, clay +6 morecell × depth-32768
ocs-uncertaintyimage/tiffocscell × depth-32768
gee-meanbdod, cec, cfvo, clay +6 morecell × depth-32768
gee-meanocscell × depth-32768
landmaskCloud-Optimized GeoTIFFlandmaskcell-32768

In every file

Dimensions

cellxy

250 m cells in the Interrupted Goode Homolosine projection.

Grid spacing: 250 m

Only in predictions

Variables

VariableTypeUnitDescription
bdodint16cg cm-3Bulk density of the fine earth fraction.
Divide by 100 for kg/dm3.
cecint16mmol kg-1Cation exchange capacity of the soil at pH 7.
Charge-equivalent mmol(c)/kg; divide by 10 for cmol(c)/kg.
cfvoint16cm3 dm-3Volumetric fraction of coarse fragments larger than 2 mm.
Divide by 10 for volume percent.
clayint16g kg-1Proportion of clay particles smaller than 0.002 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
nitrogenint16cg kg-1Total nitrogen.
Divide by 100 for g/kg.
ocdint16hg m-3Organic carbon density.
Divide by 10 for kg/m3.
phh2oint161Soil pH in water, stored as pH times 10.
Divide by 10 for pH units.
sandint16g kg-1Proportion of sand particles larger than 0.05 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
siltint16g kg-1Proportion of silt particles between 0.002 and 0.05 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
socint16dg kg-1Soil organic carbon content in the fine earth fraction.
Divide by 10 for g/kg.

Dimensions

depthz

Standard depth interval below the surface, top to bottom, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-5cm
  • 5-15cm
  • 15-30cm
  • 30-60cm
  • 60-100cm
  • 100-200cm
statstatistic

Statistic of the per-cell prediction distribution, the {stat} token of the file names.

Type: string

  • mean Mean (expected value; above the median for right-skewed properties)
  • Q0.05 5th percentile (lower bound of the 90% prediction interval)
  • Q0.5 Median
  • Q0.95 95th percentile (upper bound of the 90% prediction interval)

Only in ocs-predictions

Variables

VariableTypeUnitDescription
ocsint16t ha-1Organic carbon stock in the 0-30 cm topsoil.
Divide by 10 for kg/m2. Computed from point observations, not from the ocd maps, so the two do not match exactly.

Dimensions

depthz

Topsoil interval, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-30cm
statstatistic

Statistic of the per-cell prediction distribution, the {stat} token of the file names.

Type: string

  • mean Mean (expected value; above the median for right-skewed properties)
  • Q0.05 5th percentile (lower bound of the 90% prediction interval)
  • Q0.5 Median
  • Q0.95 95th percentile (upper bound of the 90% prediction interval)

Only in uncertainty

Variables

VariableTypeUnitDescription
bdodint161Relative prediction uncertainty of bdod.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
cecint161Relative prediction uncertainty of cec.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
cfvoint161Relative prediction uncertainty of cfvo.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
clayint161Relative prediction uncertainty of clay.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
nitrogenint161Relative prediction uncertainty of nitrogen.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
ocdint161Relative prediction uncertainty of ocd.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
phh2oint161Relative prediction uncertainty of phh2o.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
sandint161Relative prediction uncertainty of sand.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
siltint161Relative prediction uncertainty of silt.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.
socint161Relative prediction uncertainty of soc.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.

Dimensions

depthz

Standard depth interval below the surface, top to bottom, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-5cm
  • 5-15cm
  • 15-30cm
  • 30-60cm
  • 60-100cm
  • 100-200cm

Only in ocs-uncertainty

Variables

VariableTypeUnitDescription
ocsint161Relative prediction uncertainty of ocs.
Width of the 90% prediction interval relative to the median, (Q0.95 - Q0.05) / Q0.5, times 10. Divide by 10 for the ratio.

Dimensions

depthz

Topsoil interval, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-30cm

Only in gee-mean

Variables

VariableTypeUnitDescription
bdodint16cg cm-3Bulk density of the fine earth fraction.
Divide by 100 for kg/dm3.
cecint16mmol kg-1Cation exchange capacity of the soil at pH 7.
Charge-equivalent mmol(c)/kg; divide by 10 for cmol(c)/kg.
cfvoint16cm3 dm-3Volumetric fraction of coarse fragments larger than 2 mm.
Divide by 10 for volume percent.
clayint16g kg-1Proportion of clay particles smaller than 0.002 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
nitrogenint16cg kg-1Total nitrogen.
Divide by 100 for g/kg.
ocdint16hg m-3Organic carbon density.
Divide by 10 for kg/m3.
phh2oint161Soil pH in water, stored as pH times 10.
Divide by 10 for pH units.
sandint16g kg-1Proportion of sand particles larger than 0.05 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
siltint16g kg-1Proportion of silt particles between 0.002 and 0.05 mm in the fine earth fraction.
Divide by 10 for mass percent. Clay, silt and sand are compositional and sum to 100%.
socint16dg kg-1Soil organic carbon content in the fine earth fraction.
Divide by 10 for g/kg.

Dimensions

depthz

Standard depth interval below the surface, top to bottom, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-5cm
  • 5-15cm
  • 15-30cm
  • 30-60cm
  • 60-100cm
  • 100-200cm

Only in gee-mean

Variables

VariableTypeUnitDescription
ocsint16t ha-1Organic carbon stock in the 0-30 cm topsoil.
Divide by 10 for kg/m2. Computed from point observations, not from the ocd maps, so the two do not match exactly.

Dimensions

depthz

Topsoil interval, the {depth} token of the file names.

Type: string

Unit: cm

  • 0-30cm

Only in landmask

Variables

VariableTypeDescription
landmaskint16Soil mask of the prediction domain, derived from the ESA CCI land cover map. Cells inside the domain hold their ESA CCI land cover class code; cells outside it are nodata.
ISRIC does not document this file; class codes follow the ESA CCI Land Cover legend.

Technical metadata

The full spatial, temporal, and modeling detail behind the summaries elsewhere on this page.

Spatial

CRS
ESRI:54052
Extent (W S E N)
[-180, -56, 180, 83]
Coverage
World
Grid spacing
250 m

Temporal

Reference date
2020

Provenance

Ordered processing steps, from source to publication.

  1. source2020-05-11

    Quantile regression forests (ranger, 200 trees) fitted per property on WoSIS soil profile observations and global environmental covariates (climate, terrain, vegetation, land cover), predicted at the six standard depths and tiled by ISRIC (Poggio et al. 2021; outputs version RUN18, code v2.0.0). Aggregated 1 km and 5 km mean maps are also published but not listed here.

    Derived from: WoSIS soil profile database, data stream 7 (March 2020 snapshot) ↗, ESA CCI Land Cover, used for the soil mask ↗

How to cite

Please cite the dataset and any associated peer-reviewed publications.

L. Poggio, L. M. de Sousa, N. H. Batjes, G. B. M. Heuvelink, B. Kempen, E. Ribeiro, D. Rossiter (2021) SoilGrids 2.0: producing soil information for the globe with quantified spatial uncertainty. Version 2.0. SOIL. https://doi.org/10.5194/soil-7-217-2021. Accessed through the CGIAR Climate Action Data Hub, https://cgiar-climate-data-hub.github.io/catalog/soilgrids_2.0/.
BibTeX
BibTeX
@misc{soilgrids_2021,
  title     = {SoilGrids 2.0: producing soil information for the globe with quantified spatial uncertainty},
  author    = {Poggio, L. and de Sousa, L. M. and Batjes, N. H. and Heuvelink, G. B. M. and Kempen, B. and Ribeiro, E. and Rossiter, D.},
  year      = {2021},
  version   = {2.0},
  publisher = {SOIL},
  url       = {https://doi.org/10.5194/soil-7-217-2021},
  note      = {Accessed through the CGIAR Climate Action Data Hub, https://cgiar-climate-data-hub.github.io/catalog/soilgrids_2.0/}
}

Contacts

Who produced this dataset, and who to reach about it.

Brayden YoungbergMaintainer
Alliance of Bioversity International and CIAT
ISRIC - World Soil InformationLicensor
ProducerPoint of contact