{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Example usage of BatPy's brightway2 export\n", "`batpy` is able to export a calculated battery from BatPaC as a Life Cycle Inventory Excel file, which can be imported in brightway2. In order to use `batpy`in a project for brightway2 export, follow the example below." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Import" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# included datasets\n", "from batpy import datasets\n", "\n", "# batpac battery and tool classes\n", "from batpy.batpac_battery import BatpacBattery\n", "from batpy.batpac_tool import BatpacTool\n", "\n", "# brightway2 class\n", "from batpy.brightway import BrightwayConnector\n", "\n", "# utility function for combining multiple configuration files\n", "from batpy.utility_functions import combine_configuration\n", "\n", "# pathlib for filesystem path handling\n", "from pathlib import Path\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Paths to Excel files and to TOML configuration" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Get BatPaC: https://www.anl.gov/partnerships/batpac-battery-manufacturing-cost-estimation\n", "BATPY_BATPAC_EXCEL = Path(\"./example_data/excel_workbooks/dummy_BatPaC.xlsx\")\n", "\n", "# Brightway workbook is included\n", "BRIGHTWAY2_EXCEL = Path(\"./example_data/excel_workbooks/BatPaC-Brightway.xlsx\")\n", "\n", "# brightway2 configuration\n", "BRIGHTWAY_CONFIG = Path(\n", " \"./example_data/conf_brightway/batpy_batpac2brightway.toml\"\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Get included datasets" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Show available dataset of specified version (default latest):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Version('0.3.0'), Version('0.0.0'), Version('0.1.0')]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "datasets.get_available_batpy_dataset_versions()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'batpy_batteries_config.toml': 'Example configuration for batteries',\n", " 'batpy_batpac_config.toml': 'Example configuration for BatPaC tool',\n", " 'batpy_batpac_summary_of_results.toml': 'Configuration for worksheet Summary of Results in BatPaC Excel',\n", " 'batpy_batpac_calculation_and_validation_results.toml': 'Configuration for calculation and validation results in BatPaC Excel',\n", " 'batpy_batpac_user_input_cells.toml': 'Configuration for standard user input cells in BatPaC Excel',\n", " 'batpy_batpac_battery_design.toml': 'Configuration for worksheet battery design in BatPaC Excel',\n", " 'batpy_batpac2brightway.toml': 'Configuration for brightway2 export'}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "datasets.get_available_batpy_datasets()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Export integrated dataset" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "datasets.copy_integrated_dataset(\"batpy_batpac2brightway\", BRIGHTWAY_CONFIG)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Load multiple included datasets for BatPaC configuration and combine them:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "batpy_batpac_dataset = combine_configuration(\n", " [\n", " datasets.get_batpy_dataset(\"batpy_batpac_battery_design\"),\n", " datasets.get_batpy_dataset(\"batpy_batpac_summary_of_results\"),\n", " ]\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Save integrated brightway2 Excel file" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "datasets.copy_integrated_brightway_workbook(BRIGHTWAY2_EXCEL)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Batteries\n", "### Create batteries" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "bat1 = BatpacBattery(\"Battery 1\")\n", "bat2 = BatpacBattery(\"Battery 2\")\n", "bat3 = BatpacBattery(\"Battery 3\")\n", "bat4 = BatpacBattery(\"Battery 4\")\n", "bat5 = BatpacBattery(\"Battery 5\")\n", "bat6 = BatpacBattery(\"Battery 6\")\n", "bat7 = BatpacBattery(\"Battery 7\")\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## BatPaC tool\n", "### Create BatPaC instance" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "batpac_excel = BatpacTool(\n", " BATPY_BATPAC_EXCEL,\n", " datasets.get_batpy_dataset(\"batpy_batpac_user_input_cells\"),\n", " None,\n", " False,\n", ")\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### Add batteries to BatPaC object" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "batpac_excel.add_battery(\n", " [\n", " bat1,\n", " bat2,\n", " bat3,\n", " bat4,\n", " bat5,\n", " bat6,\n", " bat7,\n", " ]\n", ")\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Brightway2 connector\n", "### Create brightway2 instance" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "brightway_excel = BrightwayConnector(BRIGHTWAY2_EXCEL, False)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### Load brightway2 configuration and export BatPaC battery data into brightway2 Excel" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "brightway_excel.load_batpac_to_brightway_configuration(BRIGHTWAY_CONFIG)\n", "\n", "brightway_excel.export_batpac_battery_to_brightway(\n", " batpac=batpac_excel,\n", " battery=bat1,\n", " batpac_config=batpy_batpac_dataset,\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Save Excel file" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "brightway_excel.save()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Close Excel file" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "batpac_excel.close()\n", "brightway_excel.close()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.10.10" }, "nbsphinx": { "execute": "never" } }, "nbformat": 4, "nbformat_minor": 4 }