Logo Lanfrica

open-turba/turba-models

Domain:

agriculture

Record type:

model
Creator:
ope
Host:
Model package for loading pretrained soil fertility and fertilizer recommendation models for Morocco. turba-models 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. ## Scope of this first release 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: - `longitude` - `latitude` - `soil_ph` - `organic_matter_pct` - `available_p2o5` - `available_k2o` Outputs are: - `recommended_n` - `recommended_p2o5` - `recommended_k2o` ## Installation ```bash pip install turba-models ``` For compatibility with the packaged artifacts, use an environment with: - `scikit-learn >= 1.6, = 4, = 2, < 3` ## Quick start ```python 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) ``` ## Public API ```python from turba_models import ( list_models, load_model, predict_recommendation, regression_report, ) ``` ### `list_models()` Returns the published model entries and their metadata. ### `load_model(model_name)` Loads a packaged `.joblib` model. The function accepts either the crop name or the published model name. ### `predict_recommendation(model, X)` Runs inference and returns a DataFrame with: - `recommended_n` - `recommended_p2o5` - `recommended_k2o` ### `regressi …