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