Skip to main content

Soil data providers for Dutch soils for PCSE


Allard de Wit
Wageningen Environmental Research
September 2026

This package provides a set of data providers that can provide the soil parameters for the Netherlands as input for running crop/soil models in PCSE. It takes the input from the Dutch soil map but the soil data itself is hosted in a duckdb file on github.

Getting soil information has always been a bit of a hassle for models in PCSE. While crop parameters are well managed through YAML files on github, soil parameters are more difficult as they are spatially variable and thus location dependent. Moreover, soil maps and definitions are variable between countries making it hard to develop dataproviders for soils.

This soil data provider derives soil parameters from the Dutch soil map and derives soil hydraulic properties as well as soil mineralogic properties (bulk density, organic matter content) depending on the type of PCSE soil component used. Several data providers are available from this package:

  • SoilDataProviderNL_CWB
  • SoilDataProviderNL_MLWB under development
  • SoilDataProviderNL_MLWB_SNOMIN under development

These dataproviders map to the different soil modules in pcse: the classic soil water balance (CWB), the multi-layered soil water balance (MLWB) and the multi-layered water balance plus the SNOMIN carbon/nitrogen model (MLWB_SNOMIN). The correct soil dataprovider will be selected automatically based on the pcse model that you pass in to the call to soil_dataprovider_nl.SoilDataProviderNL, however they can also be imported manually from the package.

Setting up the package

Dependencies

This package has been developed using python 3.10 and has dependencies on several other packages:

  • pandas
  • numpy
  • duckdb == 1.5
  • matplotlib
  • pyproj == 3.7

Installing

The package can be pip-installed from PyPI: pip install soil_dataprovider_nl should be sufficient.

Dependencies should be automatically downloaded and installed during installing the package, although the pyproj dependency can be problematic sometimes. In that case, install pyproj manually in a conda environment with the conda package manager.

Usage

Using the soil dataprovider is easy:

>> from soil_dataprovider_nl import SoilDataProviderNL
>> from pcse.models import Wofost72_WLP_CWB
>> soild = SoilDataProviderNL(Wofost72_WLP_CWB, xcoord=170342, ycoord=438503)
>> print(soild)
Soil properties for location at X/Y: 170342/438503 - lon/lat: 5.611/51.936
Soil rootable depth estimated at 120 cm (from maximum soil profile depth)
Soil profile characteristics:
 thickness  pclay  psilt  psand      SMW    SMFCF      SM0
        25   0.23   0.40   0.37 0.122168 0.387381 0.429530
        35   0.23   0.40   0.37 0.142978 0.413028 0.472326
        30   0.20   0.25   0.55 0.142978 0.413028 0.472326
        30   0.04   0.07   0.89 0.040080 0.269736 0.387057
Actual CWB parameter values:
- SMW: 0.113 [-]
- SMFCF: 0.372 [-]
- SM0: 0.442 [-]
- CRAIRC: 0.035 [-]
- RDMSOL: 120.000 [cm]
- SOPE: 8.436 [cm day-1]
- KSUB: 8.436 [cm day-1]

The derived soildata can then be used in the usual procedure for running a model (in pseudo code):

>> params = ParameterProvider(cropdata=cropd, soildata=soild, sitedata=sited)
>> agro = get_agromanagement(...)
>> wdp = get_weatherdata(...)
>> wofost = Wofost72_WLP_CWB(params, wdp, agro)
>> wofost.run_till_terminate()
...

See for more elaborate examples the notebook on the repository.

Metadata

Release files for soil_dataprovider_nl 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for soil_dataprovider_nl 1.0.0
File Size Uploaded
soil_dataprovider_nl-1.0.0.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for soil_dataprovider_nl 1.0.0
File Interpreter ABI Platform
soil_dataprovider_nl-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.6 kB

Release files / soil_dataprovider_nl-1.0.0.tar.gz

Download URL soil_dataprovider_nl-1.0.0.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
96a92171ed923f0bc735286940661f735ca570b5ad776314af25f32a0bd6e77e
BLAKE2b-256 checksum
How to use checksums
af1d7247189de9b5786aaa25c520d9a64286e58874f7a0d09d4c399e0f2a69df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / soil_dataprovider_nl-1.0.0-py3-none-any.whl

Download URL soil_dataprovider_nl-1.0.0-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc8f99428d88adf18047ca50532ebcba6d94aa9d06d282012d7fb2f1dfbec222
BLAKE2b-256 checksum
How to use checksums
4f0d1a3d12e33cc29b3905b2f919188b531275a87d6406861a38c2213e74fae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page