| import geopandas as gpd |
| from shapely.geometry import Point |
|
|
| from data.climatic_data import get_tmy |
| from data.rendement import get_rendement |
| from data.sol_data import get_soil_types |
| import pandas as pd |
|
|
|
|
| def process_localisation(latitude, longitude): |
| dep = gpd.read_file("./data/departement.geojson") |
| point = Point(longitude, latitude) |
| inclusion = dep.contains(point) |
| dep = dep[inclusion].nom.values[0] |
|
|
| str_loc = f"La parcelle se situe dans le département de {dep}.\n" |
| return str_loc |
|
|
|
|
| def process_meteo(latitude, longitude): |
| tmy = get_tmy(latitude, longitude) |
| meteo = ( |
| tmy.resample("M") |
| .agg({"temp_min": "mean", "temp_max": "mean", "rain": "sum", 'irradiance':'sum'}) |
| .rename( |
| columns={ |
| "temp_min": "Température minimum (°C)", |
| "temp_max": "Température maximale (°C)", |
| "rain": "Précipitations (mm)", |
| 'irradiance':'Radiation cumulée (W.m-2)' |
| } |
| ) |
| ) |
| str_meteo = f"Sur une année typique, voici des indicateurs mensuels climatiques de ma parcelle:\n {meteo}\n" |
| return str_meteo |
|
|
|
|
| def process_soil(latitude, longitude): |
| soil_prompt = f"\ |
| D'après la Base de Données Géographique des Sols de France, les types de \ |
| sols présent dans un rayon de 1km sont, au format SOIL Full 1974 (modified CEC 1985) FAO-Unesco legend soil name, \ |
| {', '.join( get_soil_types(latitude, longitude))}\n\ |
| " |
| return soil_prompt |
|
|
|
|
| def process_rendement(latitude, longitude): |
| rendement = get_rendement(latitude, longitude) |
| str_rendement = f"Les données de rendement annuel par espèce dans mon département sont les suivantes : \n {rendement}\n" |
| return str_rendement |
|
|