Passa al contenuto principale

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

ProprietaDescrizione
Eseguito suModeledActivityNode con genitore FoodProductFlowNode contenente termini ortaggi abbinati
DipendenzeOriginGapFillingWorker, AttachFoodTagsGapFillingWorker, ConservationGapFillingWorker
Input ChiaveData di produzione, paese di origine, tipo ortaggio abbinato
OutputEmissioni riscaldamento, emissioni infrastruttura, emissioni elettricita
TriggerProdotto abbinato a uno dei 7 ortaggi da serra

Quando Viene Eseguito

Il modulo si attiva quando:

  1. Un prodotto e abbinato a un termine ortaggio coperto
  2. Il prodotto ha un paese di origine valido con dati climatici Meteonorm
  3. Il prodotto NON ha un tag di esclusione (congelato, in scatola, essiccato)
  4. 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 FoodEx2OrtaggioTipo ModelloDescrizione
B1458melanzanamelanzanaMelanzana
A00JDmelanzanamelanzanaMelanzane
A00JMcetriolocetrioloCetrioli
A00JRcetriolocetrioloZucchine
A00KYlattugalattugaLattuga cappuccio
A00MJlattugalattugaSpinaci
B4946lattugalattugaLattuga batavia
A00KXlattugalattugaLattughe generiche
A1563lattugalattugaLattuga iceberg
A0DLBlattugalattugaLattughe e simili
A1612lattugalattugaLattuga quercia
A00LBlattugalattugaLollo rosso
A00JApeperonepeperonePeperoni dolci
A00QVravanelloravanelloRavanelli
A00LMravanelloravanelloRucola romana e simili
B2474ravanelloravanelloRucola
A0DMXpomodoropomodoroPomodori
A00HYpomodoro grappolopomodoro grappoloPomodorini ciliegia

Parametri degli Ortaggi

Ogni tipo di ortaggio ha parametri di coltivazione specifici:

OrtaggioGiorni CrescitaTemp. Interna (K)Resa (kg/m2/mese)Elettricita (kWh/kg)
melanzana50291,15 (18C)3,150,5492
cetriolo32291,15 (18C)4,360,1982
lattuga60281,15 (8C)1,740,4636
peperone41293,15 (20C)1,970,5746
ravanello51279,15 (6C)1,360,33798
pomodoro127291,15 (18C)4,660,2207
pomodoro grappolo127291,15 (18C)4,720,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:

CodicePaeseCodicePaese
ATAustriaITItalia
BEBelgioLTLituania
BGBulgariaLULussemburgo
CHSvizzeraLVLettonia
CZRepubblica CecaNLPaesi Bassi
DEGermaniaPLPolonia
DKDanimarcaPTPortogallo
EEEstoniaRORomania
ESSpagnaSESvezia
FIFinlandiaSISlovenia
FRFranciaSKSlovacchia
GBGran BretagnaTRTurchia
GRGreciaHRCroazia
HUUngheriaIEIrlanda

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 TermineDescrizione
J0001Conservato Generico
J0136Congelato
J0111In Scatola
J0116Essiccato

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:

  1. Se activity_date e specificato sul prodotto o qualsiasi nodo genitore, viene utilizzato
  2. La data di raccolta e calcolata come data_produzione - 3 giorni
  3. I giorni di crescita vengono contati a ritroso dalla data di raccolta in base al tipo di ortaggio
  4. 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 mensili
  • meteonorm_average_solar_radiation_{country_code}: Array di 12 valori mensili

Mix di Riscaldamento

Mix di riscaldamento specifici per paese per il riscaldamento delle serre:

PaeseBrightway XIDComposizione
CH (Svizzera)EDB_4220cbaabca343c09b19415d5ab4079f_copy141,3% gas naturale, 35,2% gasolio, 23,5% rinnovabili
DE (Germania)EDB_4220cbaabca343c09b19415d5ab4079f_copy228% carbone, 21% gas naturale, 15% olio combustibile, 20% rinnovabili, 16% altro
NL (Paesi Bassi)EDB_4220cbaabca343c09b19415d5ab4079f86,2% gas naturale, 0,1% gasolio, 13,7% rinnovabili
UE altroEDB_4220cbaabca343c09b19415d5ab4079f_copy354% gas naturale, 46% gasolio

Materiali dell'Infrastruttura

Processi Ecoinvent per i materiali da costruzione delle serre:

MaterialeID EcoinventUnita
Serra in vetroecoinvent 3.6 cutoff_0ce659c3cfd443a38761058ee62e3f10m2*anno
Tunnel in plasticaecoinvent 3.6 cutoff_fddfe51c6959f41ac044089c3a892af7m2*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

MeseGiorni
Novembre25
Dicembre31
Gennaio31
Febbraio28
Marzo12
Totale127

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:

  1. Flusso riscaldamento (32,3 MJ) collegato al processo mix riscaldamento svedese
  2. Flusso infrastruttura vetro (0,0108 m2*anno) collegato al processo vetro Ecoinvent
  3. Flusso infrastruttura plastica (0,0071 m2*anno) collegato al processo plastica Ecoinvent
  4. 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

  1. 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.

  2. Eymann, L., et al. (2014). Gewächshausmodell v1.0. Rapporto ZHAW per Eaternity.

  3. Scharfy, D., et al. (2017). OFP Report - New Data ZHAW v1.3. Rapporto progetto Organic Food Print.

  4. Chollet, D., et al. (2012). ProfiCost-Tool. Associazione Svizzera Produttori di Ortaggi.

  5. Meteonorm Software. https://meteonorm.com/