Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve solid biomass cost #1377

Open
lindnemi opened this issue Oct 21, 2024 · 3 comments
Open

Improve solid biomass cost #1377

lindnemi opened this issue Oct 21, 2024 · 3 comments

Comments

@lindnemi
Copy link
Contributor

I did a bit of cross-checking on the biomass cost based on the JRC Enspresso database. It would be possible to adjust the costs based on the planning_horizon, represented countries, included commodities. Even a regional solution of biomass costs would be feasible.

In general I find that the biomass costs assumed in the costs data are a bit too low. 3% too low in 2045 and 15 % in 2020. Perhaps it would be most interesting for myopic mode, or regional simulation too have more accurate cost data.

For further use, here is the code i used

import pandas as pd

pots = pd.read_excel(
        "data/ENSPRESO_BIOMASS.xlsx",
        sheet_name="ENER - NUTS0 EnergyCom",
        usecols="A:F",
    ).query("Scenario == 'ENS_Med'")

cost = pd.read_excel(
        "data/ENSPRESO_BIOMASS.xlsx",
        sheet_name="COST - NUTS0 EnergyCom",
        usecols="A:F",
    ).query("Scenario == 'ENS_Med'")

countries = ['AL', 'AT', 'BA', 'BE', 'BG', 'CH', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'ME', 'MK', 'NL', 'NO', 'PL', 'PT', 'RO', 'RS', 'SE', 'SI', 'SK', 'XK']

commodities = ["MINBIOWOOW1", "MINBIOWOOW1a", "MINBIOFRSR1","MINBIOFRSR1a", "MINBIOAGRW1"]

year = 2040

cos = cost[
    cost["Energy Commodity"].isin(commodities) 
    & cost["NUTS0"].isin(countries) 
    & (cost["Year"] == year)]

pot = pots[
    pots["Energy Commodity"].isin(commodities) 
    & pots["NUTS0"].isin(countries) 
    & (pots["Year"] == year)]

(pot["Value"].values * cos["NUTS0 Energy Commodity Cost "].values).sum() / pot["Value"].values.sum() * 3.6 * 1.135 # last term is inflation
@fneum
Copy link
Member

fneum commented Oct 22, 2024

image

From Markus' biomass paper.

@lindnemi
Copy link
Contributor Author

Ah, good to know that Markus did all this great work already. I have a few more questions, maybe we can have brief exchange here @millingermarkus. My main problem is that we see quite a lot of biomass boilers in 2045 in the ariadne model, and i just wanted to double check all our biomass assumptions, mainly with regard to pelletizing cost:

  1. Isn't there an energy loss when converting e.g. sawdust to pellets? Is that already accounted for in the ENSPRESO data?
  2. From the resource on the pelletizing cost, i find that the 9€ cover only the processing in the pelletizing plant. Shouldn't we also include some cost for the transport to / from the pellets plant?
  3. Adding 9€ on top of the domestic biomass residues cost from the Figure, puts us in the range of 17-30€/MWh. The pellets price in germany was around 50€/MWh in 2020 and is now at ~60€. Should we do something about this discrepancy?

Some more (ariadne-specific) thoughts and sources are here: PyPSA/pypsa-ariadne#141

@millingermarkus
Copy link
Contributor

Interesting that you obtain biomass boilers, doesn't usually happen in my case, which is also why I haven't had reason to dive deeper into more exact costs of pelletizing etc. so I don't have answers unfortunately.

My questions are rather: which other biomass usage options do you include, and how much biomass is available at what cost? And which residential/commercial heat options do you include? Under the conditions in the paper @fneum pasted above, biomass boilers are not competitive, and solid biomass is focused on applications with carbon capture to make most use of the carbon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants