{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "be015d81-07cc-4822-a99f-6fcbc235fdba", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import plotly.graph_objects as go\n", "import pvlib" ] }, { "cell_type": "code", "execution_count": null, "id": "5a6b6fe6-0521-4b53-ae0a-5a3410f20924", "metadata": {}, "outputs": [], "source": [ "def get_yearly_irradiance(latitude, longitude): \n", " tmy = pvlib.iotools.get_pvgis_tmy(latitude, longitude)[0]\n", " ghi = tmy['ghi']\n", " annual_ghi_wh = ghi.sum() \n", " return annual_ghi_wh # Wh/m2/ano" ] }, { "cell_type": "code", "execution_count": null, "id": "20c667e2-3be4-4708-8029-d36cb1e9ab57", "metadata": {}, "outputs": [], "source": [ "def create_sankey(df, title):\n", " df = df.copy()\n", " all_nodes = pd.concat([df[\"source\"], df[\"target\"]]).unique()\n", " node_indices = {node: i for i, node in enumerate(all_nodes)}\n", " \n", " df[\"source_id\"] = df[\"source\"].map(node_indices)\n", " df[\"target_id\"] = df[\"target\"].map(node_indices)\n", " \n", " fig = go.Figure(go.Sankey(\n", " node=dict(\n", " pad=15,\n", " thickness=20,\n", " label=all_nodes,\n", " ),\n", " link=dict(\n", " source=df[\"source_id\"],\n", " target=df[\"target_id\"],\n", " value=df[\"value\"]\n", " )\n", " ))\n", " \n", " fig.update_layout(title_text=title, font_size=12, height=500)\n", " fig.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "886b650b-4a6b-4736-aa04-4372638c0fac", "metadata": {}, "outputs": [], "source": [ "def modelo_bioeletricidade(kwargs, area=1): # calcula fluxos de energia e CO2 para uma central de bioeletricidade\n", " qtd_biomassa = kwargs['producao_por_area'] * area\n", "\n", " # fluxo de carbono\n", " emissoes_uso_do_solo = kwargs['carbono_alteracao_uso_do_solo'] * area\n", " carbono_biomassa = kwargs['densidade_carbono'] * qtd_biomassa\n", " emissoes_agricultura = kwargs['emissoes_agricultura'] * area\n", " emissoes_transporte = kwargs['emissoes_transporte'] * kwargs['distancia'] * qtd_biomassa\n", " emissoes_processamento = kwargs['emissoes_processamento'] * qtd_biomassa\n", " co2_capturado = kwargs['taxa_captura'] * carbono_biomassa\n", " emissoes_combustao = carbono_biomassa - co2_capturado\n", " co2_emitido = emissoes_uso_do_solo + emissoes_agricultura + emissoes_transporte + emissoes_processamento + emissoes_combustao\n", "\n", " dados_emissoes = [\n", " ['Atmosfera', 'Biomassa', carbono_biomassa],\n", " ['Outras fontes', 'Agricultura', emissoes_agricultura],\n", " ['Outras fontes', 'Transporte', emissoes_transporte],\n", " ['Outras fontes', 'Processamento', emissoes_processamento],\n", " ['Alteração do uso do solo', 'CO2 emitido', emissoes_uso_do_solo],\n", " ['Agricultura', 'CO2 emitido', emissoes_agricultura],\n", " ['Transporte', 'CO2 emitido', emissoes_transporte],\n", " ['Processamento', 'CO2 emitido', emissoes_processamento],\n", " ['Biomassa', 'Emissões combustão', emissoes_combustao],\n", " ['Emissões combustão', 'CO2 emitido', emissoes_combustao],\n", " ['Biomassa', 'CO2 capturado', co2_capturado],\n", " ['CO2 emitido', 'Atmosfera', co2_emitido]\n", " ]\n", " df_emissoes_sankey = pd.DataFrame(dados_emissoes, columns=['source', 'target', 'value'])\n", "\n", " # fluxo de energia\n", " energia_biomassa = kwargs['densidade_energetica'] * qtd_biomassa\n", " energia_agricultura = kwargs['energia_agricultura'] * area\n", " energia_processamento = kwargs['energia_processamento'] * qtd_biomassa\n", " energia_transporte = kwargs['energia_transporte'] * kwargs['distancia'] * qtd_biomassa\n", " energia_eletrica = kwargs['eficiencia_conversao'] * energia_biomassa\n", " perdas_combustao = energia_biomassa - energia_eletrica\n", " energia_captura = kwargs['energia_captura'] * co2_capturado\n", " energia_util = energia_eletrica - energia_captura\n", "\n", " dados_energia = [\n", " ['Outras fontes', 'Agricultura', energia_agricultura],\n", " ['Outras fontes', 'Processamento', energia_processamento],\n", " ['Outras fontes', 'Transporte', energia_transporte],\n", " ['Agricultura', 'Perdas', energia_agricultura],\n", " ['Processamento', 'Perdas', energia_processamento],\n", " ['Transporte', 'Perdas', energia_transporte],\n", " ['Biomassa', 'Eletricidade', energia_eletrica],\n", " ['Biomassa', 'Perdas (combustão)', perdas_combustao],\n", " ['Perdas (combustão)', 'Perdas', perdas_combustao],\n", " ['Eletricidade', 'Captura de CO2', energia_captura],\n", " ['Captura de CO2', 'Perdas', energia_captura],\n", " ['Eletricidade', 'Eletricidade útil', energia_util]\n", " ]\n", " df_energia_sankey = pd.DataFrame(dados_energia, columns=['source', 'target', 'value'])\n", "\n", " return df_emissoes_sankey, df_energia_sankey" ] }, { "cell_type": "code", "execution_count": null, "id": "37e310f8-082d-4295-b1c8-7ff5eaabdbcf", "metadata": {}, "outputs": [], "source": [ "def modelo_biocombustíveis(kwargs, area=1):\n", " qtd_biomassa = kwargs['producao_por_area'] * area # t\n", "\n", " # fluxo carbono\n", " emissoes_uso_do_solo = kwargs['carbono_alteracao_uso_do_solo'] * area\n", " carbono_biomassa = kwargs['densidade_carbono'] * qtd_biomassa\n", " emissoes_agricultura = kwargs['emissoes_agricultura'] * area\n", " emissoes_transporte = kwargs['emissoes_transporte'] * kwargs['distancia'] * qtd_biomassa\n", " emissoes_processamento = kwargs['emissoes_processamento'] * qtd_biomassa\n", " co2_capturado = kwargs['taxa_captura'] * carbono_biomassa \n", " emissoes_conversao = 0.01 * carbono_biomassa\n", " emissoes_combustao = carbono_biomassa - co2_capturado - emissoes_conversao\n", " co2_emitido = emissoes_uso_do_solo + emissoes_agricultura + emissoes_transporte + emissoes_processamento + emissoes_conversao + emissoes_combustao\n", "\n", " dados_emissoes = [\n", " ['Atmosfera', 'Biomassa', carbono_biomassa],\n", " ['Outras fontes', 'Agricultura', emissoes_agricultura],\n", " ['Outras fontes', 'Transporte', emissoes_transporte],\n", " ['Outras fontes', 'Processamento', emissoes_processamento],\n", " ['Alteração do uso do solo', 'CO2 emitido', emissoes_uso_do_solo],\n", " ['Agricultura', 'CO2 emitido', emissoes_agricultura],\n", " ['Transporte', 'CO2 emitido', emissoes_transporte],\n", " ['Processamento', 'CO2 emitido', emissoes_processamento],\n", " ['Biomassa', 'Emissões conversão', emissoes_conversao],\n", " ['Emissões conversão', 'CO2 emitido', emissoes_conversao],\n", " ['Biomassa', 'Biocombustível', emissoes_combustao],\n", " ['Biocombustível', 'Emissões combustão', emissoes_combustao],\n", " ['Emissões combustão', 'CO2 emitido', emissoes_combustao],\n", " ['Biomassa', 'CO2 capturado', co2_capturado],\n", " ['CO2 emitido', 'Atmosfera', co2_emitido]\n", " ]\n", " df_emissoes_sankey = pd.DataFrame(dados_emissoes, columns=['source', 'target', 'value'])\n", "\n", " # fluxo energia\n", " energia_biomassa = kwargs['densidade_energetica'] * qtd_biomassa\n", " energia_agricultura = kwargs['energia_agricultura'] * area\n", " energia_processamento = kwargs['energia_processamento'] * qtd_biomassa\n", " energia_transporte = kwargs['energia_transporte'] * kwargs['distancia'] * qtd_biomassa\n", " energia_combustiveis = kwargs['eficiencia_conversao'] * energia_biomassa\n", " energia_captura = kwargs['energia_captura'] * co2_capturado\n", " energia_combustiveis_util = energia_combustiveis - energia_captura\n", " perdas_conversao = energia_biomassa - energia_combustiveis\n", " energia_util = energia_combustiveis_util * kwargs['eficiencia_combustao']\n", " perdas_combustao = energia_combustiveis_util - energia_util\n", "\n", " dados_energia = [\n", " ['Outras fontes', 'Agricultura', energia_agricultura],\n", " ['Outras fontes', 'Processamento', energia_processamento],\n", " ['Outras fontes', 'Transporte', energia_transporte],\n", " ['Agricultura', 'Perdas', energia_agricultura],\n", " ['Processamento', 'Perdas', energia_processamento],\n", " ['Transporte', 'Perdas', energia_transporte],\n", " ['Biomassa', 'Biocombustível', energia_combustiveis],\n", " ['Biomassa', 'Perdas (conversão)', perdas_conversao],\n", " ['Biocombustível', 'Captura de CO2', energia_captura],\n", " ['Biocombustível', 'Biocombustível útil', energia_combustiveis_util],\n", " ['Biocombustível útil', 'Energia útil', energia_util],\n", " ['Biocombustível útil', 'Perdas (combustão)', perdas_combustao],\n", " ['Captura de CO2', 'Perdas', energia_captura],\n", " ['Perdas (conversão)', 'Perdas', perdas_conversao],\n", " ['Perdas (combustão)', 'Perdas', perdas_combustao]\n", " ]\n", " df_energia_sankey = pd.DataFrame(dados_energia, columns=['source', 'target', 'value'])\n", " \n", " return df_emissoes_sankey, df_energia_sankey" ] }, { "cell_type": "markdown", "id": "d336595e-17e8-49fa-b3e1-1f997ee3d248", "metadata": {}, "source": [ "# Parte A - Bioeletricidade\n", "\n", "Começamos por considerar uma plantação de um hectare com árvores de crescimento rápido, para fins energéticos. A madeira é processada e transformada em pellets, que são depois usados na produção de eletricidade.\n", "\n", "As árvores demoram vários anos a crescer, mas aqui vamos considerar valores anuais - ou seja, a produção, emissões, etc médios por ano do projeto.\n", "\n", "Consideramos que este projeto substitui um terreno de pastagem pré-existente.\n", "\n", "Assumimos transporte rodoviário da biomassa por camiões a diesel, por 50 km.\n", "\n", "O projeto inclui captura e armazenamento de carbono." ] }, { "cell_type": "code", "execution_count": null, "id": "e5f6016c-4de2-4982-b137-cd2aa351a041", "metadata": {}, "outputs": [], "source": [ "# valores para 1 ano\n", "specs_bioeletricidade = { # pellets\n", "\n", " # --- Produção agrícola ---\n", " 'producao_por_area': 8, # t/ha\n", " 'densidade_carbono': 1.8, # t CO2 / t\n", " 'carbono_alteracao_uso_do_solo': 1, # t CO2 / ha / ano\n", "\n", " # --- Energia da biomassa ---\n", " 'densidade_energetica': 18, # GJ / t\n", " \n", " # --- Agricultura ---\n", " 'energia_agricultura': 5, # GJ / ha\n", " 'emissoes_agricultura': 2, # t CO2 / ha\n", "\n", " # --- Transporte ---\n", " 'distancia': 50, # km\n", " 'energia_transporte': 0.001, # GJ / t / km\n", " 'emissoes_transporte': 0.001, # t CO2 / t / km\n", "\n", " # --- Processamento ---\n", " 'energia_processamento': 2, # GJ / t \n", " 'emissoes_processamento': 0.15, # t CO2 / t\n", "\n", " # --- Conversão ---\n", " 'eficiencia_conversao': 0.4,\n", "\n", " # --- Captura e armazenamento de carbono ---\n", " 'taxa_captura': .5,\n", " 'energia_captura': 2 # GJ/t CO2\n", "}" ] }, { "cell_type": "markdown", "id": "d298f318-c201-4f18-8b38-9fbda0d05879", "metadata": {}, "source": [ "Observa os diagramas de Sankey que representam os fluxos de carbono e de energia para produção de bioeletricidade, por hectare." ] }, { "cell_type": "code", "execution_count": null, "id": "4ab52cda-30ef-4e3c-8d1b-44fa59b9c46b", "metadata": {}, "outputs": [], "source": [ "df_emissoes_sankey, df_energia_sankey = modelo_bioeletricidade(specs_bioeletricidade)" ] }, { "cell_type": "code", "execution_count": null, "id": "2b66dd18-f578-45ee-8364-14ba50d1fc1f", "metadata": {}, "outputs": [], "source": [ "df_emissoes_sankey" ] }, { "cell_type": "code", "execution_count": null, "id": "3b0b7fb4-a2fb-48c7-afc7-66972699136d", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Bioeletricidade)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "ce6635e8-dca7-45d5-842d-371ad3ad7377", "metadata": {}, "outputs": [], "source": [ "df_energia_sankey" ] }, { "cell_type": "code", "execution_count": null, "id": "b7e89b8b-c664-4eca-823a-31831752a6f8", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_energia_sankey, title=\"Fluxo de energia (Bioeletricidade)\")" ] }, { "cell_type": "markdown", "id": "e3cd8d3e-dba6-45e7-acd1-0cea21d437e9", "metadata": {}, "source": [ "### 1. Observa o diagrama de Sankey do carbono. Indica quanto CO2 foi emitido e quanto removido da atmosfera por 1 ha dedicado a bioeletricidade com captura de carbono ao longo de um ano. Qual foi a alteração líquida ao CO2 na atmosfera?" ] }, { "cell_type": "code", "execution_count": null, "id": "78cad4bd-4dcf-46a6-b2e8-7fe9f51e9337", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "888da076-63fe-47cd-a881-1202e67e5d06", "metadata": {}, "source": [ "### 2. Calcula o EROI (energy return on investment, ou retorno energético) - calculado como a razão entre a energia produzida e a energia investida. Explica o seu significado." ] }, { "cell_type": "code", "execution_count": null, "id": "2cc28ecb-e52c-4916-94d3-34ebe9145708", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "3e23ee49-5d1a-406e-bf7c-6a84c4d0f3a7", "metadata": {}, "source": [ "### 3. Calcula a eficiência da fotossíntese, considerando a quantidade de biomassa que é gerada ao longo de um ano, e irradiação anual total." ] }, { "cell_type": "code", "execution_count": null, "id": "9c1b3d25-bdd2-44d3-9f93-62fb38ec6aec", "metadata": {}, "outputs": [], "source": [ "latitude = 38\n", "longitude = -9\n", "\n", "irradiacao_wh = get_yearly_irradiance(latitude, longitude) # Wh /m2 /ano\n", "irradiacao_gj = # TODO: converte para GJ /ha /ano\n", "\n", "print(f\"Irradiação anual em GJ: {round(irradiacao_gj, 2)} GJ/ha\")" ] }, { "cell_type": "code", "execution_count": null, "id": "f4a139db-d0e3-4322-8866-635862356940", "metadata": {}, "outputs": [], "source": [ "energia_biomassa_por_ha = # TODO: energia da biomassa em GJ /ha /ano\n", "print(f\"Energia da biomassa: {energia_biomassa_por_ha} GJ/ha\")" ] }, { "cell_type": "code", "execution_count": null, "id": "6dc9a2d7-9b72-44c0-97d3-538256b90562", "metadata": {}, "outputs": [], "source": [ "eficiencia_fotossintese = # TODO: calcular a eficiência estimada da fotossíntese\n", "print(f\"Eficiência da fotossíntese: {round(eficiencia_fotossintese, 3)} %\")" ] }, { "cell_type": "markdown", "id": "6cf76929-8747-4392-a1e1-78b4bd7cc6c2", "metadata": {}, "source": [ "### 4. Compara a energia elétrica produzida por 1 ha de biomassa com a energia elétrica produzida por uma central solar com a mesma área. Considera que os painéis têm uma eficiência de 20%, e que ocupam 50% da área do terreno (deixando espaço para manutenção e para evitar perdas por sombreamento). Qual a eficiência da central solar vs da central a biomassa em transformar a radiação solar que incide nesta área de terreno em eletricidade? Comenta o resultado." ] }, { "cell_type": "code", "execution_count": null, "id": "7a0dcb1e-0698-4325-9b76-5b8c903f531e", "metadata": {}, "outputs": [], "source": [ "# TODO: calcular geração elétrica de PV e biomassa em GWh /ha /ano \n", "geracao_solar_gwh = \n", "geracao_biomassa_gwh = \n", "\n", "print(f\"Geração solar: {round(geracao_solar_gwh, 2)} GWh\")\n", "print(f\"Geração bioeletricidade: {round(geracao_biomassa_gwh, 2)} GWh\")" ] }, { "cell_type": "code", "execution_count": null, "id": "1c12d6ec-6ae8-4bd7-9cb7-51f2319b1f32", "metadata": {}, "outputs": [], "source": [ "# TODO: calcular eficiências\n", "eficiencia_pv = \n", "eficiencia_biomassa = \n", "\n", "print(f\"Eficiência solar fotovoltaico: {round(eficiencia_pv, 2)} %\")\n", "print(f\"Eficiência bioeletricidade: {round(eficiencia_biomassa, 3)} %\")" ] }, { "cell_type": "markdown", "id": "fc68e82c-f9c1-45b0-88e1-c08552cf118d", "metadata": {}, "source": [ "### 5. O que acontece se a biomassa substituir (i) terrenos agrícolas abandonados por degradação do solo, ou (ii) floresta autóctone? Indica os valores de carbono removido e emitido para cada caso, bem como as emissões líquidas. Considera que as emissões relacionadas com a alteração do uso do solo consistem em 0.5 t CO2 / ha para o primeiro caso, e 5 t CO2 / ha. Comenta as diferenças." ] }, { "cell_type": "markdown", "id": "f59ede6d-63f8-4ac0-995b-bbbc2535e5f3", "metadata": {}, "source": [ " (i) Terrenos agrícolas abandonados por degradação do solo" ] }, { "cell_type": "code", "execution_count": null, "id": "e39925a9-597d-4d41-a054-e3f72e7b4478", "metadata": {}, "outputs": [], "source": [ "specs_bioeletricidade['carbono_alteracao_uso_do_solo'] = 0.5\n", "df_emissoes_sankey, df_energia_sankey = modelo_bioeletricidade(specs_bioeletricidade)" ] }, { "cell_type": "code", "execution_count": null, "id": "7ce38f4d-d95a-4b5d-b5a3-77e5d76655d0", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Bioeletricidade)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "5078c823-a6b8-43d5-8894-13263d90222a", "metadata": {}, "outputs": [], "source": [ "# TODO: calcula as emissões líquidas" ] }, { "cell_type": "markdown", "id": "bd348681-8828-41ba-b413-4fc56d208e15", "metadata": {}, "source": [ "(ii) Floresta autóctone" ] }, { "cell_type": "code", "execution_count": null, "id": "cfa64448-8b1e-40da-a4f0-cacdedc499a0", "metadata": {}, "outputs": [], "source": [ "specs_bioeletricidade['carbono_alteracao_uso_do_solo'] = 5\n", "df_emissoes_sankey, df_energia_sankey = modelo_bioeletricidade(specs_bioeletricidade)" ] }, { "cell_type": "code", "execution_count": null, "id": "0beff1a2-55b4-4434-988c-fd8ec2ad0bd0", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Bioeletricidade)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "8718cdb2-8467-4054-a8af-4864895c596d", "metadata": {}, "outputs": [], "source": [ "# TODO: calcula as emissões líquidas" ] }, { "cell_type": "markdown", "id": "01ba2319-94b0-4e92-b487-139def54df15", "metadata": {}, "source": [ "### 6. Observa o que acontece se o terreno deixar de ser dedicado à bioenergia, e em vez disso se tratar de uma plantação de eucalipto pré-existente para produção de papel, sendo que o projeto se trata do aproveitamento de resíduos florestais dessa produção. Considera que a produção baixa para 2 toneladas de biomassa por hectare, e que as etapas de processamento são equivalentes. Reflete sobre o que acontece com os restantes parâmetros. Observa o que acontece ao EROI e à energia total produzida. Comenta." ] }, { "cell_type": "code", "execution_count": null, "id": "449da46d-fe57-4d36-a77a-170830f996d0", "metadata": {}, "outputs": [], "source": [ "specs_bioeletricidade.update({\n", " 'producao_por_area': 2, \n", " # TODO: preenche os valores em falta\n", " 'energia_agricultura': \n", " 'carbono_alteracao_uso_do_solo': \n", " 'emissoes_agricultura': \n", "})\n", "\n", "df_emissoes_sankey, df_energia_sankey = modelo_bioeletricidade(specs_bioeletricidade)" ] }, { "cell_type": "code", "execution_count": null, "id": "743861f7-3e58-4c6d-834b-c489596e6e78", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Bioeletricidade)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "055eeaaa-687c-4818-9bfa-a1a3ddb4fb34", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_energia_sankey, title=\"Fluxo de energia (Bioeletricidade)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "89df917d-f734-4aed-be14-895a0faaf785", "metadata": {}, "outputs": [], "source": [ "# TODO: calcula a energia total produzida e o EROI" ] }, { "cell_type": "markdown", "id": "acea46ec-141a-4b4b-b797-86ee51b37fb6", "metadata": {}, "source": [ "### 7. Que vantagem apresenta a bioeletricidade face à geração solar ou eólica?" ] }, { "cell_type": "markdown", "id": "f886c88f-7d40-4e18-ab40-710c4fbd0133", "metadata": {}, "source": [ "### 8. Explica porque é que a bioeletricidade com captura e armazenamento de carbono pode apresentar emissões líquidas negativas, enquanto que isso não seria possível com bioeletricidade convencional." ] }, { "cell_type": "markdown", "id": "e858fd12-86a3-4fd4-9844-be7095a5a703", "metadata": {}, "source": [ "# Parte B - Biocombustíveis\n", "\n", "Observa agora os diagramas de Sankey que representam os fluxos de carbono e de energia para produção de biocombustíveis a partir de cana de açúcar, também por hectare, e também com captura e armazenamento de carbono." ] }, { "cell_type": "code", "execution_count": null, "id": "e1d1b86b-2288-434e-8c90-440d16687b24", "metadata": {}, "outputs": [], "source": [ "specs_biocombustivel = {\n", "\n", " # --- Produção agrícola ---\n", " 'producao_por_area': 80, # t/ha\n", " 'densidade_carbono': 0.27, # t CO2 / t\n", " 'carbono_alteracao_uso_do_solo': 1.5, # t CO2 / ha / ano\n", "\n", " # --- Energia da biomassa ---\n", " 'densidade_energetica': 7.5, # GJ / t \n", " \n", " # --- Agricultura ---\n", " 'energia_agricultura': 3.5, # GJ / ha\n", " 'emissoes_agricultura': 0.4, # t CO2 / ha\n", " \n", " # --- Transporte ---\n", " 'distancia': 50, # km\n", " 'energia_transporte': 0.001, # GJ / t / km\n", " 'emissoes_transporte': 0.001, # t CO2 / t / km\n", " \n", " # --- Processamento ---\n", " 'energia_processamento': .45, # GJ / t\n", " 'emissoes_processamento': 0.02, # t CO2 / t\n", " \n", " # --- Conversão ---\n", " 'eficiencia_conversao': 0.32,\n", " 'eficiencia_combustao': 0.3, \n", " \n", " # --- Captura e armazenamento de carbono ---\n", " 'taxa_captura': .55,\n", " 'energia_captura': .8 # GJ / t CO2\n", "}" ] }, { "cell_type": "code", "execution_count": null, "id": "d565f8b3-bd02-4dce-bfa1-dfedbee0c46c", "metadata": {}, "outputs": [], "source": [ "df_emissoes_sankey, df_energia_sankey = modelo_biocombustíveis(specs_biocombustivel)" ] }, { "cell_type": "code", "execution_count": null, "id": "57f7637a-722f-4b64-ad6f-c78ac349123f", "metadata": {}, "outputs": [], "source": [ "df_emissoes_sankey" ] }, { "cell_type": "code", "execution_count": null, "id": "36a67bd4-cbf8-46c9-9919-2dd8dc2f9909", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Biocombustíveis)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "bf592b87-1713-497a-b350-089d7beb70a9", "metadata": {}, "outputs": [], "source": [ "df_energia_sankey" ] }, { "cell_type": "code", "execution_count": null, "id": "381d1c3f-6143-4084-800c-c1b3f529529b", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_energia_sankey, title=\"Fluxo de energia (Biocombustíveis)\")" ] }, { "cell_type": "markdown", "id": "0cf9392a-e5c1-4c76-9abc-29aca34cc544", "metadata": {}, "source": [ "### 1. Calcula o EROI e as emissões líquidas." ] }, { "cell_type": "code", "execution_count": null, "id": "434a4477-a0ad-4362-b93e-c44934d5ca73", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "af1b2b79-c753-43cb-8100-27e5045c7c64", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "8639de66-fb4d-4514-825e-4ac5acd24031", "metadata": {}, "source": [ "### 2. Se um veículo médio fizer 25 km/dia, quantos veículos consegue um hectare de biocombustíveis abastecer ao longo de um ano? Assume que os veículos necessitam em média de 0.6 MJ/km de energia útil." ] }, { "cell_type": "code", "execution_count": null, "id": "2aa346c3-4a37-4806-bf51-3781da793d06", "metadata": {}, "outputs": [], "source": [ "\n", "\n", "veiculos_por_hectare = \n", "print(f\"Veículos por hectare: {round(veiculos_por_hectare)}\")" ] }, { "cell_type": "markdown", "id": "2b4c4035-a868-49fd-bd98-46bc3db393b2", "metadata": {}, "source": [ "### 3. Considera que em Portugal existem 5 milhões de veículos ligeiros. Quantos hectares seriam necessários para abastecer todos eles a biocombustíveis? Que percentagem representa isso de todo o território nacional?" ] }, { "cell_type": "code", "execution_count": null, "id": "606c52a0-34ef-4546-a23e-3856efd3b1e5", "metadata": {}, "outputs": [], "source": [ "hectares_necessarios = \n", "print(f\"Hectares necessários: {round(hectares_necessarios)}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "f902ec70-8695-40a1-bd43-b6f4b8636373", "metadata": {}, "outputs": [], "source": [ "area_portugal_hectares = \n", "percentagem = \n", "print(f\"Área necessária: {round(percentagem, 1)} % da área nacional\")" ] }, { "cell_type": "markdown", "id": "fe6b29e8-fd61-45d8-8668-654c352e677a", "metadata": {}, "source": [ "### 4. Quantos hectares de centrais solares seriam necessários para alimentar os mesmos veículos se estes fossem elétricos? Assume uma eficiência de carregamento de 95% e eficiência de mobilidade de 80%." ] }, { "cell_type": "code", "execution_count": null, "id": "089d778d-fd92-4250-b27d-b89e48f15e21", "metadata": {}, "outputs": [], "source": [ "hectares_necessarios =\n", "print(f\"Hectares necessários: {round(hectares_necessarios)}\")" ] }, { "cell_type": "markdown", "id": "d046b73b-83c2-41b6-95a2-8cc076fb47cb", "metadata": {}, "source": [ "### 5. E se os biocombustíveis forem utilizados não para transporte rodoviário, mas para transporte aéreo? Repete os cálculos da questão 3 para este cenário, considerando que a energia primária necessária para a aviação em Portugal corresponde a 180 000 tep por ano." ] }, { "cell_type": "code", "execution_count": null, "id": "95d05d2e-4839-44e7-b5f0-56053d9979ff", "metadata": {}, "outputs": [], "source": [ "energia_aviacao_portugal_tep = 180000 # toneladas equivalentes de petróleo\n", "energia_aviacao_portugal_GJ = # TODO: converte em GJ\n", "print(f\"Energia necessária: {round(energia_aviacao_portugal_GJ)} GJ\")" ] }, { "cell_type": "code", "execution_count": null, "id": "2d770e0a-7133-4078-8c19-d47da3e078f7", "metadata": {}, "outputs": [], "source": [ "hectares_necessarios_aviacao = \n", "print(f\"Hectares necessários: {round(hectares_necessarios_aviacao)}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "115a13f7-1062-4709-a54b-c82e8f2c5379", "metadata": {}, "outputs": [], "source": [ "percentagem = \n", "print(f\"Área necessária: {round(percentagem, 1)} % da área nacional\")" ] }, { "cell_type": "markdown", "id": "ca9ac6b3-9c76-4e06-abd6-0190c85bea69", "metadata": {}, "source": [ "### 6. O que acontece, a nível de emissões e de energia, se a distância de transporte aumentar para 250 km? Calcula o novo EROI e emissões líquidas e interpreta esses valores. Comenta." ] }, { "cell_type": "code", "execution_count": null, "id": "3798941a-cbcd-4786-a3e2-15cf30da0856", "metadata": {}, "outputs": [], "source": [ "specs_biocombustivel.update({\n", " 'distancia': 250\n", "})" ] }, { "cell_type": "code", "execution_count": null, "id": "f69ca5bf-4237-4043-bacb-f847bbfb3350", "metadata": {}, "outputs": [], "source": [ "df_emissoes_sankey, df_energia_sankey = modelo_biocombustíveis(specs_biocombustivel)" ] }, { "cell_type": "code", "execution_count": null, "id": "010b285e-97bd-49b3-8e32-6d7d4d304358", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_emissoes_sankey, title=\"Fluxo de carbono (Biocombustíveis)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "7f73b483-acf1-43f4-aa3d-6248cbb70c3a", "metadata": {}, "outputs": [], "source": [ "create_sankey(df_energia_sankey, title=\"Fluxo de energia (Biocombustíveis)\")" ] }, { "cell_type": "code", "execution_count": null, "id": "ba4185a6-3520-4a38-b40b-60a288ea7a1f", "metadata": {}, "outputs": [], "source": [ "# TODO: calcula o EROI" ] }, { "cell_type": "code", "execution_count": null, "id": "2ad5f146-6df2-4ceb-b5d3-6389f059e6e9", "metadata": {}, "outputs": [], "source": [ "# TODO: calcula as emissões líquidas" ] }, { "cell_type": "markdown", "id": "3fd3178f-2020-4cad-896d-bc6519d45418", "metadata": {}, "source": [ "### 7. Discute os prós e os contras da utilização de bioenergia para:\n", "(i) produção de eletricidade\n", "\n", "(ii) produção de biocombustíveis para o transporte rodoviário\n", "\n", "(iii) produção de biocombustíveis para o transporte aéreo\n", "\n", "e seleciona qual das 3 te parece ser a aplicação mais nobre da bioenergia." ] }, { "cell_type": "markdown", "id": "e8b8c17b-126d-40bd-86da-d4987c35f8e0", "metadata": {}, "source": [ "# Bónus" ] }, { "cell_type": "markdown", "id": "33f77655-910a-4d1f-9bff-0eeeb7ff0a63", "metadata": {}, "source": [ "Para até dois valores extra, constrói um gráfico diferente dos anteriores que mostre algo interessante relacionado com bioenergia, e explica o que ele demonstra :)\n", "\n", "Utiliza os valores calculados nas questões anteriores, ou faz os teus próprios cálculos --- não uses valores arbitrários." ] }, { "cell_type": "code", "execution_count": null, "id": "25d5665b-fef0-42a8-90ce-df0a8421b48a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" } }, "nbformat": 4, "nbformat_minor": 5 }