Greenhouse GFM
Il Gap Filling Module Serra calcola le emissioni di gas serra dalla coltivazione in serre riscaldate di ortaggi. La produzione in serra puo aumentare l'impatto climatico fino a 10 volte rispetto agli equivalenti coltivati in campo, rendendo questo modulo critico per valutazioni ambientali accurate dei prodotti freschi.
Riferimento Rapido
| Proprieta | Descrizione |
|---|---|
| Eseguito su | ModeledActivityNode con genitore FoodProductFlowNode contenente termini ortaggi abbinati |
| Dipendenze | OriginGapFillingWorker, AttachFoodTagsGapFillingWorker, ConservationGapFillingWorker |
| Input Chiave | Data di produzione, paese di origine, tipo ortaggio abbinato |
| Output | Emissioni riscaldamento, emissioni infrastruttura, emissioni elettricita |
| Trigger | Prodotto abbinato a uno dei 7 ortaggi da serra |
Quando Viene Eseguito
Il modulo si attiva quando:
- Un prodotto e abbinato a un termine ortaggio coperto
- Il prodotto ha un paese di origine valido con dati climatici Meteonorm
- Il prodotto NON ha un tag di esclusione (congelato, in scatola, essiccato)
- Il riscaldamento e necessario (basato sui calcoli climatici)
Output Chiave
Il modulo aggiunge tre tipi di emissioni al grafo di calcolo:
- Riscaldamento: Basato sul clima del paese, requisiti dell'ortaggio e data di produzione
- Infrastruttura: Materiali della serra in vetro e plastica
- Elettricita: Consumo energetico specifico per ortaggio
Metodologia Scientifica
Il modello serra calcola le emissioni utilizzando la formula:
Emissioni Totali = Riscaldamento + Infrastruttura + Elettricita
Ogni componente e calcolato per chilogrammo di ortaggio prodotto.
Modello di Domanda di Riscaldamento
Il modello di domanda di riscaldamento e basato su Stössel et al. (2012) e utilizza un approccio di bilancio termico:
Q_riscaldamento = (Q_tras + Q_aria) * (T_int - T_est) - Q_solare * G
Dove:
- Q_tras: Trasmissione termica attraverso l'involucro della serra
- Q_aria: Perdita di calore attraverso lo scambio d'aria
- T_int: Temperatura interna richiesta per l'ortaggio (Kelvin)
- T_est: Temperatura esterna media mensile (da Meteonorm)
- Q_solare: Fattore di guadagno termico solare
- G: Radiazione solare media mensile (da Meteonorm)
Fattore di Trasmissione Termica (Q_tras)
VALORE_U = 3.4 # W/m2/K - valore di isolamento termico
AREA_RIVESTIMENTO = 54_978.2 # m2 - area involucro serra
FATTORE_Q_TRAS = VALORE_U * AREA_RIVESTIMENTO # = 186.925,88 W/K
Il valore U di 3,4 W/m2/K rappresenta una media ponderata per serre convenzionali secondo Scharfy et al. (2017).
Fattore di Scambio Aria (Q_aria)
NUMERO_RICAMBI_ARIA = 0.24 # ricambi d'aria per ora
VOLUME_EDIFICIO = 259_506.0 # m3
COSTANTE_ENERGIA_VOLUMETRICA_SPECIFICA_ARIA = 0.32 # Wh/m3/K
FATTORE_Q_ARIA = NUMERO_RICAMBI_ARIA * VOLUME_EDIFICIO * COSTANTE_ENERGIA_VOLUMETRICA_SPECIFICA_ARIA
# = 19.924,46 W/K
Fattore di Guadagno Termico Solare (Q_solare)
FATTORE_Q_SOLARE = 0.609 * 46_800.0 * 0.99 * 0.9 * 0.7
# = 17.849,82 W/(W/m2)
Componenti:
- 0,609: Trasmittanza solare della copertura della serra
- 46.800 m2: Area del suolo esposta al sole
- 0,99: Frazione della radiazione solare che raggiunge le piante
- 0,9: Fattore di utilizzo
- 0,7: Efficienza di conversione
Calcolo delle Emissioni da Riscaldamento
Riscaldamento [kg CO2eq/kg] = Domanda riscaldamento [MJ/kg] * Mix riscaldamento [kg CO2eq/MJ]
Il mix di riscaldamento dipende dal paese e rappresenta la miscela media di gas naturale, gasolio e rinnovabili utilizzati per il riscaldamento delle serre.
Calcolo dell'Infrastruttura
Le emissioni dell'infrastruttura tengono conto dei materiali dell'edificio serra sulla loro durata di 30 anni:
FRAZIONE_VETRO_MATERIALE_COSTRUZIONE = 0.604 # 60,4%
FRAZIONE_PLASTICA_MATERIALE_COSTRUZIONE = 0.396 # 39,6%
AREA_FINESTRE_ESPOSTE_AL_SOLE = 46_800 # m2
Il mix infrastruttura (60,4% vetro, 39,6% tunnel plastica) e basato sulle statistiche svizzere delle serre da Scharfy et al. (2017).
Calcolo:
# m2*anno di serra necessari per kg di ortaggio
materiale_costruzione_per_kg = area_serra / resa_totale_per_anno * quantita_produzione
# Suddivisione tra vetro e plastica
materiale_vetro = materiale_costruzione_per_kg * 0.604
materiale_plastica = materiale_costruzione_per_kg * 0.396
Calcolo dell'Elettricita
Il consumo di elettricita e specifico per ortaggio e moltiplicato per il mix elettrico del paese:
Elettricita [kg CO2eq/kg] = Input energia [kWh/kg] * Mix elettrico [kg CO2eq/kWh]
Il mix elettrico utilizza "market for electricity, low voltage" di Ecoinvent per ogni paese.
Dettagli di Implementazione
Prodotti Coperti
Il modulo viene eseguito quando un prodotto e abbinato a uno di questi termini FoodEx2:
| Codice FoodEx2 | Ortaggio | Tipo Modello | Descrizione |
|---|---|---|---|
B1458 | melanzana | melanzana | Melanzana |
A00JD | melanzana | melanzana | Melanzane |
A00JM | cetriolo | cetriolo | Cetrioli |
A00JR | cetriolo | cetriolo | Zucchine |
A00KY | lattuga | lattuga | Lattuga cappuccio |
A00MJ | lattuga | lattuga | Spinaci |
B4946 | lattuga | lattuga | Lattuga batavia |
A00KX | lattuga | lattuga | Lattughe generiche |
A1563 | lattuga | lattuga | Lattuga iceberg |
A0DLB | lattuga | lattuga | Lattughe e simili |
A1612 | lattuga | lattuga | Lattuga quercia |
A00LB | lattuga | lattuga | Lollo rosso |
A00JA | peperone | peperone | Peperoni dolci |
A00QV | ravanello | ravanello | Ravanelli |
A00LM | ravanello | ravanello | Rucola romana e simili |
B2474 | ravanello | ravanello | Rucola |
A0DMX | pomodoro | pomodoro | Pomodori |
A00HY | pomodoro grappolo | pomodoro grappolo | Pomodorini ciliegia |
Parametri degli Ortaggi
Ogni tipo di ortaggio ha parametri di coltivazione specifici:
| Ortaggio | Giorni Crescita | Temp. Interna (K) | Resa (kg/m2/mese) | Elettricita (kWh/kg) |
|---|---|---|---|---|
| melanzana | 50 | 291,15 (18C) | 3,15 | 0,5492 |
| cetriolo | 32 | 291,15 (18C) | 4,36 | 0,1982 |
| lattuga | 60 | 281,15 (8C) | 1,74 | 0,4636 |
| peperone | 41 | 293,15 (20C) | 1,97 | 0,5746 |
| ravanello | 51 | 279,15 (6C) | 1,36 | 0,33798 |
| pomodoro | 127 | 291,15 (18C) | 4,66 | 0,2207 |
| pomodoro grappolo | 127 | 291,15 (18C) | 4,72 | 0,2099 |
Fonti dati: ProfiCost-Tool (Chollet et al., 2012), manuale tecnico dell'Associazione Svizzera Produttori di Ortaggi.
Paesi Coperti
Il modulo dispone di dati climatici Meteonorm per 28 paesi europei:
| Codice | Paese | Codice | Paese |
|---|---|---|---|
| AT | Austria | IT | Italia |
| BE | Belgio | LT | Lituania |
| BG | Bulgaria | LU | Lussemburgo |
| CH | Svizzera | LV | Lettonia |
| CZ | Repubblica Ceca | NL | Paesi Bassi |
| DE | Germania | PL | Polonia |
| DK | Danimarca | PT | Portogallo |
| EE | Estonia | RO | Romania |
| ES | Spagna | SE | Svezia |
| FI | Finlandia | SI | Slovenia |
| FR | Francia | SK | Slovacchia |
| GB | Gran Bretagna | TR | Turchia |
| GR | Grecia | HR | Croazia |
| HU | Ungheria | IE | Irlanda |
Paesi UE mancanti: Cipro, Malta
Regole di Esclusione
Il modello serra NON viene eseguito se il prodotto ha uno di questi tag di conservazione:
| XID Termine | Descrizione |
|---|---|
J0001 | Conservato Generico |
J0136 | Congelato |
J0111 | In Scatola |
J0116 | Essiccato |
Questi prodotti sono esclusi perche i prodotti conservati non richiedono produzione in serra al momento del consumo - sono stati probabilmente prodotti durante la normale stagione di crescita.
Nota: J0003 (Non Conservato) e J0131 (Refrigerato) NON escludono i prodotti dal modello serra.
Gestione della Data di Produzione
La data di produzione determina quali dati climatici mensili vengono utilizzati per i calcoli di riscaldamento:
- Se
activity_datee specificato sul prodotto o qualsiasi nodo genitore, viene utilizzato - La data di raccolta e calcolata come
data_produzione - 3 giorni - I giorni di crescita vengono contati a ritroso dalla data di raccolta in base al tipo di ortaggio
- I requisiti di riscaldamento mensili vengono calcolati per ogni mese nel periodo di crescita
Esempio: Pomodori con data di produzione 15 marzo:
- Data di raccolta: 12 marzo
- Periodo di crescita: 127 giorni (6 ottobre - 12 marzo)
- Mesi con giorni di crescita: ottobre (parziale), novembre, dicembre, gennaio, febbraio, marzo (parziale)
Riferimento Codice Completo
Calcolo del Riscaldamento
Il metodo compute_required_heating calcola la domanda di riscaldamento in MJ per kg di ortaggio:
def compute_required_heating(
self,
flow_country_code: str,
flow_processing_date: datetime,
vegetable_name: str,
) -> float:
"""Calcola la quantita necessaria di riscaldamento."""
days_between_harvest_and_production_date = 3
harvest_date = flow_processing_date - timedelta(days=days_between_harvest_and_production_date)
# Ottieni giorni di crescita per mese basati sulla data di raccolta e durata crescita ortaggio
monthly_growing_days = np.array(days_in_each_month(NUMBER_OF_GROWING_DAYS[vegetable_name], harvest_date))
# Carica dati climatici specifici del paese
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"]
)
# Calcola bilancio termico
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
# Nessun riscaldamento negativo (nessun raffreddamento modellato)
monthly_required_heating_power_watts = np.array(
[val if val >= 0.0 else 0.0 for val in monthly_required_heating_power_watts]
)
# Converti potenza in energia
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
# Calcola resa durante il periodo di crescita
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)
# Converti a MJ per 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
Contabilita dell'Infrastruttura
async def account_for_infrastructure(
self, calc_graph: CalcGraph, greenhouse_activity: FoodProcessingActivityNode, vegetable_name: str
) -> None:
"""Contabilizza l'infrastruttura della serra."""
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
# Calcola m2*anno di materiale da costruzione per kg di coltura
area_and_time_of_greenhouse_building_material = (
size_of_greenhouse_in_m2 / total_yield_per_year * self.node.production_amount.value
)
# Suddividi tra vetro (60,4%) e plastica (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
)
# Aggiungi nodi di flusso vetro e plastica al grafo
# Collegati ai processi Ecoinvent per l'infrastruttura serra
Contabilita dell'Energia Elettrica
async def account_for_electrical_energy(
self,
calc_graph: CalcGraph,
greenhouse_activity: FoodProcessingActivityNode,
country_code: str,
vegetable_name: str,
) -> None:
"""Contabilizza il consumo di energia elettrica della serra."""
energy_needed_per_kg = REQUIRED_ELECTRICITY_KWH_PER_KG[vegetable_name]
# Crea flusso consumo elettricita
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,
),
)
# Collega al mercato elettrico specifico del paese dalla cache
electrical_energy_node = self.gfm_factory.electricity_markets_cache.get(country_code)
Fonti Dati
Dati Climatici Meteonorm
I dati climatici provengono dal software Meteonorm (dati 2016):
- Temperatura: Temperatura esterna media mensile in Kelvin
- Radiazione solare: Irradiazione solare globale media mensile in W/m2
I dati sono memorizzati nella cache GFM e caricati all'avvio del servizio:
meteonorm_average_temperature_{country_code}: Array di 12 valori mensilimeteonorm_average_solar_radiation_{country_code}: Array di 12 valori mensili
Mix di Riscaldamento
Mix di riscaldamento specifici per paese per il riscaldamento delle serre:
| Paese | Brightway XID | Composizione |
|---|---|---|
| CH (Svizzera) | EDB_4220cbaabca343c09b19415d5ab4079f_copy1 | 41,3% gas naturale, 35,2% gasolio, 23,5% rinnovabili |
| DE (Germania) | EDB_4220cbaabca343c09b19415d5ab4079f_copy2 | 28% carbone, 21% gas naturale, 15% olio combustibile, 20% rinnovabili, 16% altro |
| NL (Paesi Bassi) | EDB_4220cbaabca343c09b19415d5ab4079f | 86,2% gas naturale, 0,1% gasolio, 13,7% rinnovabili |
| UE altro | EDB_4220cbaabca343c09b19415d5ab4079f_copy3 | 54% gas naturale, 46% gasolio |
Materiali dell'Infrastruttura
Processi Ecoinvent per i materiali da costruzione delle serre:
| Materiale | ID Ecoinvent | Unita |
|---|---|---|
| Serra in vetro | ecoinvent 3.6 cutoff_0ce659c3cfd443a38761058ee62e3f10 | m2*anno |
| Tunnel in plastica | ecoinvent 3.6 cutoff_fddfe51c6959f41ac044089c3a892af7 | m2*anno |
Esempio di Calcolo
Scenario: 1 kg di pomodori, prodotti in Svezia il 15 marzo
Passo 1: Determinare il Periodo di Crescita
- Data di produzione: 15 marzo
- Data di raccolta: 12 marzo (3 giorni prima della produzione)
- Durata crescita: 127 giorni
- Data inizio: 5 novembre (anno precedente)
Passo 2: Calcolare i Giorni di Crescita Mensili
| Mese | Giorni |
|---|---|
| Novembre | 25 |
| Dicembre | 31 |
| Gennaio | 31 |
| Febbraio | 28 |
| Marzo | 12 |
| Totale | 127 |
Passo 3: Calcolare la Domanda di Riscaldamento
Utilizzando i dati climatici svedesi e i requisiti del pomodoro (18C temperatura interna):
- Differenze di temperatura mensili calcolate
- Offset radiazione solare applicato
- Valori negativi fissati a zero
Risultato: ~32,3 MJ/kg domanda di riscaldamento
Passo 4: Calcolare l'Infrastruttura
Resa totale/anno = 4,66 kg/m2/mese * 12 * 46.800 m2 = 2.616.576 kg/anno
Materiale costruzione per kg = 46.800 / 2.616.576 = 0,0179 m2*anno/kg
Vetro: 0,0179 * 0,604 = 0,0108 m2*anno
Plastica: 0,0179 * 0,396 = 0,0071 m2*anno
Passo 5: Calcolare l'Elettricita
Elettricita = 0,2207 kWh/kg * emissioni mix elettrico svedese
Output Finale
Il modulo aggiunge tre nodi di flusso al grafo di calcolo:
- Flusso riscaldamento (32,3 MJ) collegato al processo mix riscaldamento svedese
- Flusso infrastruttura vetro (0,0108 m2*anno) collegato al processo vetro Ecoinvent
- Flusso infrastruttura plastica (0,0071 m2*anno) collegato al processo plastica Ecoinvent
- Flusso elettricita (0,2207 kWh) collegato al mercato elettrico svedese
Limitazioni Note
Copertura Geografica
- Solo 28 paesi europei hanno dati Meteonorm
- Nessuna copertura per Stati Uniti, Canada o altre regioni produttrici principali
- Nessuna differenziazione regionale sub-nazionale (importante per paesi grandi)
Copertura Colture
- Solo 7 tipi di ortaggi modellati (pomodoro, cetriolo, lattuga, peperone, melanzana, ravanello, pomodoro grappolo)
- Erbe, peperoncini, fragole e altre colture da serra non coperti
- Alcune colture come la valeriana hanno dati disponibili ma non sono implementate
Ipotesi del Modello
- Nessun riscaldamento richiesto = nessuna serra assunta (puo sottostimare le emissioni per serre non riscaldate)
- Stesso mix infrastruttura usato per tutti i paesi (basato su dati svizzeri)
- Produzione biologica non differenziata (differenza di impatto minima riscontrata)
- Nessuna stagione di crescita in serra specifica per paese applicata
Eta dei Dati
- I dati climatici Meteonorm sono del 2016
- I mix di riscaldamento potrebbero non riflettere le attuali transizioni energetiche
Riferimenti
-
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. Rapporto ZHAW per Eaternity.
-
Scharfy, D., et al. (2017). OFP Report - New Data ZHAW v1.3. Rapporto progetto Organic Food Print.
-
Chollet, D., et al. (2012). ProfiCost-Tool. Associazione Svizzera Produttori di Ortaggi.
-
Meteonorm Software. https://meteonorm.com/