GFM Serre
Le Gap Filling Module Serre calcule les emissions de gaz a effet de serre de la culture de legumes sous serre chauffee. La production sous serre peut augmenter l'incidence climatique jusqu'a 10 fois par rapport aux equivalents cultives en plein champ, rendant ce module essentiel pour des evaluations environnementales precises des produits frais.
Reference rapide
| Propriete | Description |
|---|---|
| S'execute sur | ModeledActivityNode avec parent FoodProductFlowNode contenant des termes de legumes correspondants |
| Dependances | OriginGapFillingWorker, AttachFoodTagsGapFillingWorker, ConservationGapFillingWorker |
| Entree cle | Date de production, pays d'origine, type de legume correspondant |
| Sortie | Emissions de chauffage, emissions d'infrastructure, emissions d'electricite |
| Declencheur | Produit correspondant a l'un des 7 legumes de serre |
Quand il s'execute
Le module se declenche lorsque :
- Un produit correspond a un terme de legume couvert
- Le produit a un pays d'origine valide avec donnees climatiques Meteonorm
- Le produit N'a PAS d'etiquette d'exclusion (congele, en conserve, seche)
- Le chauffage est necessaire (base sur les calculs climatiques)
Sortie cle
Le module ajoute trois types d'emissions au graphe de calcul :
- Chauffage : Base sur le climat du pays, les exigences du legume et la date de production
- Infrastructure : Materiaux de serre en verre et plastique
- Electricite : Consommation d'energie specifique au legume
Methodologie scientifique
Le modele de serre calcule les emissions selon la formule :
Emissions totales = Chauffage + Infrastructure + Electricite
Chaque composant est calcule par kilogramme de legume produit.
Modele de demande de chauffage
Le modele de demande de chauffage est base sur Stössel et al. (2012) et utilise une approche de bilan thermique :
Q_chauffage = (Q_trans + Q_air) * (T_int - T_ext) - Q_solaire * G
Ou :
- Q_trans : Transmission de chaleur a travers l'enveloppe de la serre
- Q_air : Perte de chaleur par echange d'air
- T_int : Temperature interieure requise pour le legume (Kelvin)
- T_ext : Temperature exterieure mensuelle moyenne (depuis Meteonorm)
- Q_solaire : Facteur de gain de chaleur solaire
- G : Rayonnement solaire mensuel moyen (depuis Meteonorm)
Facteur de transmission thermique (Q_trans)
VALEUR_U = 3.4 # W/m2/K - valeur d'isolation thermique
SURFACE_ENVELOPPE = 54_978.2 # m2 - surface d'enveloppe de la serre
FACTEUR_Q_TRANS = VALEUR_U * SURFACE_ENVELOPPE # = 186 925,88 W/K
La valeur U de 3,4 W/m2/K represente une moyenne ponderee pour les serres conventionnelles selon Scharfy et al. (2017).
Facteur d'echange d'air (Q_air)
TAUX_RENOUVELLEMENT_AIR = 0.24 # changements d'air par heure
VOLUME_BATIMENT = 259_506.0 # m3
CONSTANTE_ENERGIE_VOLUMETRIQUE_AIR = 0.32 # Wh/m3/K
FACTEUR_Q_AIR = TAUX_RENOUVELLEMENT_AIR * VOLUME_BATIMENT * CONSTANTE_ENERGIE_VOLUMETRIQUE_AIR
# = 19 924,46 W/K
Facteur de gain de chaleur solaire (Q_solaire)
FACTEUR_Q_SOLAIRE = 0.609 * 46_800.0 * 0.99 * 0.9 * 0.7
# = 17 849,82 W/(W/m2)
Composants :
- 0,609 : Transmittance solaire de la couverture de serre
- 46 800 m2 : Surface au sol exposee au soleil
- 0,99 : Fraction du rayonnement solaire atteignant les plantes
- 0,9 : Facteur d'utilisation
- 0,7 : Efficacite de conversion
Calcul des emissions de chauffage
Chauffage [kg CO2eq/kg] = Demande de chauffage [MJ/kg] * Mix de chauffage [kg CO2eq/MJ]
Le mix de chauffage depend du pays et represente le melange moyen de gaz naturel, fioul de chauffage et energies renouvelables utilise pour le chauffage des serres.
Calcul de l'infrastructure
Les emissions d'infrastructure prennent en compte les materiaux de construction de la serre sur leur duree de vie de 30 ans :
FRACTION_VERRE_MATERIAUX = 0.604 # 60,4%
FRACTION_PLASTIQUE_MATERIAUX = 0.396 # 39,6%
SURFACE_FENETRES_EXPOSEES_SOLEIL = 46_800 # m2
Le mix d'infrastructure (60,4% verre, 39,6% tunnel plastique) est base sur les statistiques des serres suisses de Scharfy et al. (2017).
Calcul :
# m2*annee de serre necessaire par kg de legume
materiau_construction_par_kg = surface_serre / rendement_total_par_an * quantite_production
# Repartition entre verre et plastique
materiau_verre = materiau_construction_par_kg * 0.604
materiau_plastique = materiau_construction_par_kg * 0.396
Calcul de l'electricite
La consommation d'electricite est specifique au legume et multipliee par le mix electrique du pays :
Electricite [kg CO2eq/kg] = Apport energetique [kWh/kg] * Mix electrique [kg CO2eq/kWh]
Le mix electrique utilise le "marche de l'electricite, basse tension" d'Ecoinvent pour chaque pays.
Details d'implementation
Produits couverts
Le module s'execute lorsqu'un produit correspond a l'un de ces termes FoodEx2 :
| Code FoodEx2 | Legume | Type de modele | Description |
|---|---|---|---|
B1458 | aubergine | aubergine | Aubergine |
A00JD | aubergine | aubergine | Aubergines |
A00JM | concombre | concombre | Concombres |
A00JR | concombre | concombre | Courgettes |
A00KY | laitue | laitue | Laitue pommee |
A00MJ | laitue | laitue | Epinards |
B4946 | laitue | laitue | Laitue batavia |
A00KX | laitue | laitue | Laitues generique |
A1563 | laitue | laitue | Laitue iceberg |
A0DLB | laitue | laitue | Laitues et similaires |
A1612 | laitue | laitue | Laitue feuille de chene |
A00LB | laitue | laitue | Lollo rosso |
A00JA | poivron | poivron | Poivrons doux |
A00QV | radis | radis | Radis |
A00LM | radis | radis | Roquette romaine et similaires |
B2474 | radis | radis | Roquette |
A0DMX | tomate | tomate | Tomates |
A00HY | tomate grappe | tomate grappe | Tomates cerises |
Parametres des legumes
Chaque type de legume a des parametres de culture specifiques :
| Legume | Jours de culture | Temp. interieure (K) | Rendement (kg/m2/mois) | Electricite (kWh/kg) |
|---|---|---|---|---|
| aubergine | 50 | 291,15 (18°C) | 3,15 | 0,5492 |
| concombre | 32 | 291,15 (18°C) | 4,36 | 0,1982 |
| laitue | 60 | 281,15 (8°C) | 1,74 | 0,4636 |
| poivron | 41 | 293,15 (20°C) | 1,97 | 0,5746 |
| radis | 51 | 279,15 (6°C) | 1,36 | 0,33798 |
| tomate | 127 | 291,15 (18°C) | 4,66 | 0,2207 |
| tomate grappe | 127 | 291,15 (18°C) | 4,72 | 0,2099 |
Sources de donnees : ProfiCost-Tool (Chollet et al., 2012), manuel technique de l'Association suisse des producteurs de legumes.
Pays couverts
Le module dispose de donnees climatiques Meteonorm pour 28 pays europeens :
| Code | Pays | Code | Pays |
|---|---|---|---|
| AT | Autriche | IT | Italie |
| BE | Belgique | LT | Lituanie |
| BG | Bulgarie | LU | Luxembourg |
| CH | Suisse | LV | Lettonie |
| CZ | Republique tcheque | NL | Pays-Bas |
| DE | Allemagne | PL | Pologne |
| DK | Danemark | PT | Portugal |
| EE | Estonie | RO | Roumanie |
| ES | Espagne | SE | Suede |
| FI | Finlande | SI | Slovenie |
| FR | France | SK | Slovaquie |
| GB | Grande-Bretagne | TR | Turquie |
| GR | Grece | HR | Croatie |
| HU | Hongrie | IE | Irlande |
Pays de l'UE manquants : Chypre, Malte
Regles d'exclusion
Le modele de serre NE s'execute PAS si le produit a l'une de ces etiquettes de conservation :
| XID du terme | Description |
|---|---|
J0001 | Conserve generique |
J0136 | Congele |
J0111 | En conserve |
J0116 | Seche |
Ces produits sont exclus car les produits conserves ne necessitent pas de production sous serre au moment de la consommation - ils ont probablement ete produits pendant la saison de culture normale.
Note : J0003 (Non conserve) et J0131 (Refrigere) N'excluent PAS les produits du modele de serre.
Gestion de la date de production
La date de production determine quelles donnees climatiques mensuelles sont utilisees pour les calculs de chauffage :
- Si
activity_dateest specifiee sur le produit ou tout noeud parent, elle est utilisee - La date de recolte est calculee comme
date_production - 3 jours - Les jours de culture sont retrocedes depuis la date de recolte en fonction du type de legume
- Les besoins de chauffage mensuels sont calcules pour chaque mois de la periode de culture
Exemple : Tomates avec date de production 15 mars :
- Date de recolte : 12 mars
- Periode de culture : 127 jours (6 octobre au 12 mars)
- Mois avec jours de culture : Octobre (partiel), Novembre, Decembre, Janvier, Fevrier, Mars (partiel)
Reference de code complete
Calcul du chauffage
La methode compute_required_heating calcule la demande de chauffage en MJ par kg de legume :
def compute_required_heating(
self,
flow_country_code: str,
flow_processing_date: datetime,
vegetable_name: str,
) -> float:
"""Calcule la quantite de chauffage necessaire."""
days_between_harvest_and_production_date = 3
harvest_date = flow_processing_date - timedelta(days=days_between_harvest_and_production_date)
# Obtenir les jours de culture par mois bases sur la date de recolte et la duree de croissance du legume
monthly_growing_days = np.array(days_in_each_month(NUMBER_OF_GROWING_DAYS[vegetable_name], harvest_date))
# Charger les donnees climatiques specifiques au pays
monthly_avg_outside_temp = np.array(
self.gfm_factory.aggregated_meteonorm_data[flow_country_code]["average_temperature"]
)
monthly_avg_solar_radiation = np.array(
self.gfm_factory.aggregated_meteonorm_data[flow_country_code]["average_solar_radiation"]
)
# Calculer le bilan thermique
monthly_temp_difference = REQUIRED_INSIDE_TEMPERATURE[vegetable_name] - monthly_avg_outside_temp
monthly_required_heating_power_watts = (
Q_TRANS_FACTOR + Q_AIR_FACTOR
) * monthly_temp_difference - Q_SOLAR_FACTOR * monthly_avg_solar_radiation
# Pas de chauffage negatif (pas de refroidissement modelise)
monthly_required_heating_power_watts = np.array(
[val if val >= 0.0 else 0.0 for val in monthly_required_heating_power_watts]
)
# Convertir la puissance en energie
monthly_required_heating_energy_wh = monthly_required_heating_power_watts * monthly_growing_days * 24
monthly_required_heating_energy_kwh = monthly_required_heating_energy_wh / 1000
# Calculer le rendement pendant la periode de culture
average_yield_kg_per_day = (
AVG_YIELD_PER_M2_PER_MONTH[vegetable_name] * AREA_OF_THE_WINDOWS_EXPOSED_TO_THE_SUN * 12 / 365
)
yield_in_growing_days_kg = average_yield_kg_per_day * sum(monthly_growing_days)
# Convertir en MJ par kg
mj_in_kwh = 3.6
monthly_required_heating_energy_mj = monthly_required_heating_energy_kwh * mj_in_kwh
required_heating_energy_mj_for_kg_of_vegetable = (
np.sum(monthly_required_heating_energy_mj) / yield_in_growing_days_kg
)
return required_heating_energy_mj_for_kg_of_vegetable
Comptabilisation de l'infrastructure
async def account_for_infrastructure(
self, calc_graph: CalcGraph, greenhouse_activity: FoodProcessingActivityNode, vegetable_name: str
) -> None:
"""Comptabilise l'infrastructure de la serre."""
size_of_greenhouse_in_m2 = AREA_OF_THE_WINDOWS_EXPOSED_TO_THE_SUN
average_yield_in_kg_per_m2_and_month = AVG_YIELD_PER_M2_PER_MONTH[vegetable_name]
total_yield_per_year = average_yield_in_kg_per_m2_and_month * 12 * size_of_greenhouse_in_m2
# Calculer m2*annee de materiau de construction par kg de culture
area_and_time_of_greenhouse_building_material = (
size_of_greenhouse_in_m2 / total_yield_per_year * self.node.production_amount.value
)
# Repartir entre verre (60,4%) et plastique (39,6%)
glass_building_material = (
area_and_time_of_greenhouse_building_material * FRACTION_OF_GLASS_IN_BUILDING_MATERIAL
)
plastic_building_material = (
area_and_time_of_greenhouse_building_material * FRACTION_OF_PLASTIC_IN_BUILDING_MATERIAL
)
# Ajouter les noeuds de flux de verre et plastique au graphe
# Connectes aux processus Ecoinvent pour l'infrastructure de serre
Comptabilisation de l'electricite
async def account_for_electrical_energy(
self,
calc_graph: CalcGraph,
greenhouse_activity: FoodProcessingActivityNode,
country_code: str,
vegetable_name: str,
) -> None:
"""Comptabilise la consommation d'energie electrique de la serre."""
energy_needed_per_kg = REQUIRED_ELECTRICITY_KWH_PER_KG[vegetable_name]
# Creer le flux de consommation d'electricite
electricity_consumption_flow = FlowNode(
uid=UuidStr(uuid4()),
amount=QuantityProp(
value=energy_needed_per_kg * self.node.production_amount.value,
unit_term_uid=self.gfm_factory.kWh_term.uid,
),
)
# Connecter au marche electrique specifique au pays depuis le cache
electrical_energy_node = self.gfm_factory.electricity_markets_cache.get(country_code)
Sources de donnees
Donnees climatiques Meteonorm
Les donnees climatiques proviennent du logiciel Meteonorm (donnees 2016) :
- Temperature : Temperature exterieure mensuelle moyenne en Kelvin
- Rayonnement solaire : Irradiation solaire globale mensuelle moyenne en W/m2
Les donnees sont stockees dans le cache du GFM et chargees au demarrage du service :
meteonorm_average_temperature_{country_code}: Tableau de 12 valeurs mensuellesmeteonorm_average_solar_radiation_{country_code}: Tableau de 12 valeurs mensuelles
Mix de chauffage
Mix de chauffage specifiques par pays pour le chauffage des serres :
| Pays | XID Brightway | Composition |
|---|---|---|
| CH (Suisse) | EDB_4220cbaabca343c09b19415d5ab4079f_copy1 | 41,3% gaz naturel, 35,2% fioul, 23,5% renouvelables |
| DE (Allemagne) | EDB_4220cbaabca343c09b19415d5ab4079f_copy2 | 28% charbon, 21% gaz naturel, 15% fioul, 20% renouvelables, 16% autre |
| NL (Pays-Bas) | EDB_4220cbaabca343c09b19415d5ab4079f | 86,2% gaz naturel, 0,1% fioul, 13,7% renouvelables |
| UE autre | EDB_4220cbaabca343c09b19415d5ab4079f_copy3 | 54% gaz naturel, 46% fioul |
Materiaux d'infrastructure
Processus Ecoinvent pour les materiaux de construction de serre :
| Materiau | ID Ecoinvent | Unite |
|---|---|---|
| Serre en verre | ecoinvent 3.6 cutoff_0ce659c3cfd443a38761058ee62e3f10 | m2*annee |
| Tunnel plastique | ecoinvent 3.6 cutoff_fddfe51c6959f41ac044089c3a892af7 | m2*annee |
Exemple de calcul
Scenario : 1 kg de tomates, produites en Suede le 15 mars
Etape 1 : Determiner la periode de culture
- Date de production : 15 mars
- Date de recolte : 12 mars (3 jours avant la production)
- Duree de culture : 127 jours
- Date de debut : 5 novembre (annee precedente)
Etape 2 : Calculer les jours de culture mensuels
| Mois | Jours |
|---|---|
| Novembre | 25 |
| Decembre | 31 |
| Janvier | 31 |
| Fevrier | 28 |
| Mars | 12 |
| Total | 127 |
Etape 3 : Calculer la demande de chauffage
En utilisant les donnees climatiques suedoises et les exigences des tomates (18°C temperature interieure) :
- Differences de temperature mensuelles calculees
- Compensation du rayonnement solaire appliquee
- Valeurs negatives ramenees a zero
Resultat : ~32,3 MJ/kg de demande de chauffage
Etape 4 : Calculer l'infrastructure
Rendement total/an = 4,66 kg/m2/mois * 12 * 46 800 m2 = 2 616 576 kg/an
Materiau de construction par kg = 46 800 / 2 616 576 = 0,0179 m2*annee/kg
Verre : 0,0179 * 0,604 = 0,0108 m2*annee
Plastique : 0,0179 * 0,396 = 0,0071 m2*annee
Etape 5 : Calculer l'electricite
Electricite = 0,2207 kWh/kg * emissions du mix electrique suedois
Sortie finale
Le module ajoute trois noeuds de flux au graphe de calcul :
- Flux de chauffage (32,3 MJ) connecte au processus de mix de chauffage suedois
- Flux d'infrastructure en verre (0,0108 m2*annee) connecte au processus de verre Ecoinvent
- Flux d'infrastructure en plastique (0,0071 m2*annee) connecte au processus de plastique Ecoinvent
- Flux d'electricite (0,2207 kWh) connecte au marche electrique suedois
Limitations connues
Couverture geographique
- Seuls 28 pays europeens ont des donnees Meteonorm
- Pas de couverture pour les Etats-Unis, le Canada ou d'autres grandes regions productrices
- Pas de differenciation regionale sous-nationale (importante pour les grands pays)
Couverture des cultures
- Seuls 7 types de legumes sont modelises (tomate, concombre, laitue, poivron, aubergine, radis, tomate grappe)
- Les herbes aromatiques, piments, fraises et autres cultures de serre ne sont pas couverts
- Certaines cultures comme la mache ont des donnees disponibles mais ne sont pas implementees
Hypotheses du modele
- Pas de chauffage necessaire = pas de serre supposee (peut sous-estimer les emissions pour les serres non chauffees)
- Meme mix d'infrastructure utilise pour tous les pays (base sur les donnees suisses)
- Production biologique non differenciee (difference d'incidence minimale trouvee)
- Pas de saisons de culture en serre specifiques par pays appliquees
Anciennete des donnees
- Les donnees climatiques Meteonorm datent de 2016
- Les mix de chauffage peuvent ne pas refleter les transitions energetiques actuelles
References
-
Stössel, F., Juraske, R., Pfister, S., & Hellweg, S. (2012). Life cycle inventory and carbon and water footprint of fruits and vegetables: application to a Swiss retailer. The International Journal of Life Cycle Assessment, 17(9), 1191-1202.
-
Eymann, L., et al. (2014). Gewächshausmodell v1.0. Rapport ZHAW pour Eaternity.
-
Scharfy, D., et al. (2017). OFP Report - New Data ZHAW v1.3. Rapport du projet Organic Food Print.
-
Chollet, D., et al. (2012). ProfiCost-Tool. Association suisse des producteurs de legumes.
-
Logiciel Meteonorm. https://meteonorm.com/