# Agent-Based Model for Steel Industry Decarbonization

## 📝 Overview

This repository contains the source code and data for an Agent-Based Model (ABM) that simulates the decarbonization pathways of the steel industry. The model represents individual steel production facilities as agents that make autonomous decisions about technology adoption, retrofitting, and decommissioning based on economic factors and environmental policies.

The primary goal of this simulation is to explore how different policy scenarios (like carbon pricing and emission caps) and technological advancements (such as green hydrogen and carbon capture) influence the industry's transition towards a low-carbon future.

## 📁 File Structure

The repository is organized as follows:

-   **`Agent-Based Model for Steel Decarbonization.py`**: The main Python script containing the complete model logic, including the DataManager, SteelFacilityAgent, and SteelIndustryModel classes.
-   **`steel_industry_data_int_en.xlsx`**: The master data file containing all input parameters for the simulation, organized into the following sheets:
    -   `Micro_Data`: Initial attributes for each steel facility agent.
    -   `Equipment_Lifespan`: Lifespan data for different types of equipment.
    -   `Scrap_Constraint` & `Hydrogen_Constraint`: Provincial resource availability forecasts.
    -   `Future_Production`: National steel production targets over time.
    -   `Climate_Target` & `Air_Quality_Target`: Environmental policy constraints.
    -   `Tech_Info_1`, `Tech_Info_2`, `Tech_Forecast`: Technical and economic parameters for various technologies.
    -   `H2_Cost`, `Carbon_Air_Pollutant_Prices`, `Scrap_Cost`, `Long_Process_Material_Cost`: Cost and price forecast data.
-   **`requirements.txt`**: A list of the required Python libraries to run the simulation.
-   **`LICENSE`**: The open-source license for this project.
-   **`CITATION.cff`**: A citation file to make citing this work easier.

## 🚀 How to Run the Simulation

To run the simulation, follow these steps:

1.  **Set up the Environment**:
    Make sure you have Python installed. Then, install the necessary libraries listed in `requirements.txt` by running:
    ```bash
    pip install -r requirements.txt
    ```

2.  **Verify Data Path**:
    Open the `Agent-Based Model for Steel Decarbonization.py` script and locate the `main_simulation` function. Update the `EXCEL_FILE_PATH` variable to the correct local path of your `steel_industry_data_int_en.xlsx` file.
    ```python
    # Inside the main_simulation function in the Python script
    EXCEL_FILE_PATH = r'YOUR_FULL_PATH_TO\steel_industry_data_int_en.xlsx'
    ```

3.  **Run the Script**:
    Execute the script from your terminal:
    ```bash
    python "Agent-Based Model for Steel Decarbonization.py"
    ```

4.  **Simulation Outputs**:
    The simulation will generate the following files in the same directory:
    -   `abm_steel_agent_results_int_en.csv`: A detailed, step-by-step log of each agent's state and decisions.
    -   `abm_steel_model_results_int_en.csv`: Aggregated national and provincial results for each year of the simulation.
    -   `simulation_log_en.txt`: A human-readable log of the simulation's progress and key events.
    -   `model_performance.prof`: A performance profile file for debugging and optimization.