Metadata-Version: 2.4
Name: ptfkit
Version: 0.2.0
Summary: Pedotransfer functions for estimating soil hydraulic properties
Author-Email: Dmitry Fomin <fomin_ds@esoil.ru>, Petr Shumilin <shumpet03@yandex.ru>, Kirill Tolstygin <tolstygin_kd@esoil.ru>, Petr Tsymbarovich <tpr@esoil.ru>
Maintainer-Email: Petr Tsymbarovich <tpr@esoil.ru>, Kirill Tolstygin <tolstygin_kd@esoil.ru>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: Hydrology
Classifier: Topic :: Scientific/Engineering
Project-URL: Repository, https://github.com/AgroDT/ptfkit
Project-URL: Issues, https://github.com/AgroDT/ptfkit/issues
Project-URL: Documentation, https://agrodt.github.io/ptfkit/
Requires-Python: >=3.11
Requires-Dist: numpy<3,>=2.0
Description-Content-Type: text/markdown

# ptfkit for Python

Python bindings for the pedotransfer functions implemented by ptfkit. Public
functions accept scalar values or NumPy-compatible arrays and delegate the
calculation to native NumPy ufuncs.

## Installation

Python 3.11 or newer is required.

```shell
pip install ptfkit
```

## Usage

```python
import numpy as np

from ptfkit.jabro1992 import calc_ptf_jabro1992

k_sat = calc_ptf_jabro1992(
    silt=np.array([20.0, 35.0]),
    clay=np.array([30.0, 18.0]),
    bulk_density=np.array([1.3, 1.45]),
)
```

Inputs are keyword-only. Array inputs follow NumPy broadcasting rules, and an
optional `out` array can be supplied for in-place calculation.

## Documentation

- [PTF source catalogue](https://agrodt.github.io/ptfkit/ptf-catalog/)
- [Python API](https://agrodt.github.io/ptfkit/reference/python.)
- [Repository](https://github.com/AgroDT/ptfkit)

The applicability of each PTF depends on the dataset, territory, measurement
methods, and variable ranges reported by its source publication. Review the
corresponding source page before using a function outside its calibration
conditions.
