quintel / etsource

Data source for the Energy Transition Model
https://energytransitionmodel.com/
MIT License
12 stars 8 forks source link

Attribute CCS capture rate is missing from ATR #2993

Closed mabijkerk closed 1 month ago

mabijkerk commented 5 months ago

There are three hydrogen production technologies for which CCS is available: the SMR, the ATR and biomass gasification. The ATR only has the attribute free_co2_factor, while SMR and biomass gasification both also have ccs_capture_rate.

SMR:

- free_co2_factor = 0.669
- ccs_capture_rate = 0.669

Biomass gasification

- free_co2_factor = 0.9
- ccs_capture_rate = 0.9

ATR

- free_co2_factor = 0.96

The free_co2_factor is used to determine which part of emissions of a node should not be counted i.e., they are 'free', because they are captured. The question is where the ccs_capture_rate is used for and whether it should be added for the ATR as well.

kaskranenburgQ commented 5 months ago

I have reviewed this issue, here are my findings:

The attribute ccs_capture_rate is only embedded in nodes that have a 'counterpart' in the molecule graph ( Except for the node: energy_power_supercritical_waste_mix, here it is set to 0.0. I think this is legacy and should be removed) For nodes that have ccs capture, in the node summary a dedicated row is given in the website of the engine (see screenshot, example is energy_hydrogen_biomass_gasification_ccs) Screenshot 2024-01-15 at 16 23 22 When I add this attribute to a node that does not have a counterpart in the molecule graph, no dedicated row is given.

When I remove both the ccs_capture_rate and the free_co2_factor, no change in the calculation of the model occurs. This is due to the fact that the shares are hardcoded in the molecule graph (see screenshot) Screenshot 2024-01-15 at 16 48 34

There are multiple ways we can bring more clarity, here are 2 options that I have in mind:

  1. Remove the ccs_capture_rate from the model. It does not contribute to anything as we have seen plus it does not show in the node summary at the moment.
  2. Leave the ccs_capture_rate from the model, since it can make it clear that the node is active in ccs. I would propose to replace the free_co2_rate with the ccs_capture_rate in the node summary so you can see in etsource and on the engine website.

Depending on the route we take, the shares in the molecule graph should be changed to the value we show in the node summary in the engine website. This way one value is consistently used throughout the model. Next to this, the ccs_capture_rate of energy_power_supercritical_waste_mix should be deleted. I have removed this attribute in the branch ATR-CCS-rate

@mabijkerk What do you think?

mabijkerk commented 4 months ago

Thanks for looking into this @kaskranenburgQ. I still have to investigate your comments further, but one thing I stumbled upon is that the ccs_capture_rate is used in the ETEngine method inherited_captured_bio_emission. I'm therefore not sure if we can simply remove it.

      # Public: Calculates all captured CO2 emissions which result from energy used by this node.
      #
      # Note that this does not mean that the node captures the CO2 itself; for that, use
      # `captured_bio_emissions`). Rather, CO2 is captured on the node OR somewhere to the right
      # (supply-side) of the node.
      #
      # For example:
      #   [A] <- [B] <- [C] <- [D]
      #
      # If `[C]` has a `ccs_capture_rate` value, carbon capture occurs on node `[C]`. Calling
      # `inherited_captured_bio_emissions` on `[A]` will continually recurse to the right until it
      # finds the `ccs_capture_rate` on `[C]`, and then propages the value (accounting for shares
      # and conversions) to the left.
      #
      # Returns a numeric in kg.
      def inherited_captured_bio_emissions
        fetch(:captured_bio_emissions) do
          case ccs_capture_rate
          when nil
            inputs.sum do |input|
              input.edges.sum { |edge| captured_bio_emissions_from_supplier(edge) }
            end
          when 0.0
            0.0
          else
            captured_bio_emissions
          end
        end
      end
kaskranenburgQ commented 3 months ago

In that case, it seems the ccs_capture_rate is an important factor in the co2 calculations.
inherited_captured_bio_emissions is directly used in the calculation of the variable primary_co2_emission. As of now, ATR can only be produced using natural gas, so adding the ccs_capture_rate to this node will not change any calculations as of yet. This is because the attribute inherited_captured_bio_emissions only accounts emissions emitted by bio carriers. If we were to add in a production route from green gas to ATR production in the future, we would need this attribute on the ATR node however. Therefore, adding it to the ATR is the best way to proceed in my opinion. @mabijkerk Do you agree?

mabijkerk commented 3 months ago

Therefore, adding it to the ATR is the best way to proceed in my opinion.

I agree! Can you pick this up on the hydrogen branch?

kaskranenburgQ commented 3 months ago

I agree! Can you pick this up on the hydrogen branch? I see that this is already done on this branch. I think we can close this issue.

github-actions[bot] commented 1 month ago

This issue has had no activity for 60 days and will be closed in 7 days. Removing the "Stale" label or posting a comment will prevent it from being closed automatically. You can also add the "Pinned" label to ensure it isn't marked as stale in the future.