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_CWBSoilDataProviderNL_MLWBunder developmentSoilDataProviderNL_MLWB_SNOMINunder 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)
| File | Size | Uploaded | |
|---|---|---|---|
| soil_dataprovider_nl-1.0.0.tar.gz | 12.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|