Model package for loading pretrained soil fertility and fertilizer recommendation models for Morocco.
turba-models is the pretrained model package of the turba ecosystem. It provides a simple way to inspect the published model artifacts, load a model for a supported crop, and generate direct NPK recommendations.
This release publishes one direct recommendation model per available crop. The models were selected from the following candidates using a fixed deterministic 80/20 split and benchmarked with the same evaluation protocol:
- Extra Trees
- LightGBM
- CatBoost
- Random Forest
- XGBoost
- Linear Regression
- Ridge
- Elastic Net
- AdaBoost
The published models use only the following input features:
longitudelatitudesoil_phorganic_matter_pctavailable_p2o5available_k2o
Outputs are:
recommended_nrecommended_p2o5recommended_k2o
pip install turba-modelsFor compatibility with the packaged artifacts, use an environment with:
scikit-learn >= 1.6, < 1.7lightgbm >= 4, < 5xgboost >= 2, < 3
import pandas as pd
import turba_models as tm
print(tm.list_models())
model = tm.load_model("Wheat (Rainfed)")
X = pd.DataFrame([
{
"longitude": -6.85,
"latitude": 33.97,
"soil_ph": 7.1,
"organic_matter_pct": 1.2,
"available_p2o5": 45.0,
"available_k2o": 180.0,
}
])
predictions = tm.predict_recommendation(model, X)
print(predictions)from turba_models import (
list_models,
load_model,
predict_recommendation,
regression_report,
)Returns the published model entries and their metadata.
Loads a packaged .joblib model. The function accepts either the crop name or the published model name.
Runs inference and returns a DataFrame with:
recommended_nrecommended_p2o5recommended_k2o
Returns a DataFrame with:
r2maemedaermsemapesmape
- Barley (Rainfed) — LightGBM
- Maize (Grain) — XGBoost
- Maize (Silage) — XGBoost
- Wheat (Irrigated) — LightGBM
- Wheat (Rainfed) — LightGBM
- packaged
.joblibmodel files undersrc/turba_models/models/ - the training notebook used to produce the current results under
notebooks/ - exported benchmark summaries under
reports/