Electricitymap-contrib: Add Feature / Iceland

Created on 19 Nov 2016  ·  31Comments  ·  Source: tmrowco/electricitymap-contrib

data needed research library 📚

Most helpful comment

Hey @alixunderplatz and @corradio, really cool project.

You've clearly made some effort trying to get data for Iceland over the last few years, particularly with the amper API and trying to 'reverse engineer' some kind of real-time data. It is a shame to not have Iceland on the map!

The reason that there isn't any Landsnet data on the ENTSO-E transparency portal is primarily due to Landsnet not being a part of the pan-European electricity market (despite being an ENTSO-E member).

Let me see if I can make some of the data available.

Kind regards,

Samuel

All 31 comments

Realtime energy transmission [1], something like this should do the trick (sorry, am more comfortable with js):

async getTotalPowerFlow() {
  const req = await fetch('http://amper.landsnet.is/MapData/api/measurements');
  const data = await req.json();
  return data.find(item => item.key === 'TOTAL_POWER_FLOW').MW;
}

We don't share power with other countries.

(2015) [2]

  • Hydro: 13.781 GW (73,3%)
  • Thermal: 5.003 GW (26,6%)
  • Wind: 11 GW (0,05%)
  • Gas: 3.9 GW (0,02%)

(2014) [3]

  • Hydro: 12.872 GW (71,03%)
  • Thermal: 5.238 GW (28,91%)
  • Wind: 8.127 MW (0,04%)
  • Gas: 2,4 GW (0,01%)

[1] http://landsnet.is/english/transmissionandmarket/systemoperations/currentpower/
[2] http://www.orkustofnun.is/media/upprunaabyrgdir/Sto%CC%88dlud-yfirly%CC%81sing-fyrir-2015.pdf
[3] http://www.orkustofnun.is/orkustofnun/frettir/nr/1645

Hello @birkir

Sorry for the late reply. It seems like the data source you have given does not discriminate between production types. Am I right or did I misunderstand something?

Thanks,

Olivier

You are right, I thought using constant ratios of production types times the total power flow would give an estimate, but after some thinking, that's not a good idea.

On the other hand, Iceland is really small and there are only 17 power stations [1] in total, which we have all the data on flow, so if I map each power station to production type we have it real, realtime.

On the realtime map the gear/cog icons represent a power station feeding electricity into the grid.

[1] http://www.landsvirkjun.com/company/powerstations/

Sounds good. Would you be able to write such a parser? I can provide the necessary help but the script itself, in python, should be fairly simple. See for example the parser for EE: https://github.com/corradio/electricitymap/blob/master/feeder/parsers/EE.py
That's the only thing needed!

Allright, I'll convert my js code to python over the weekend, posting this as a reference for that work.

edit: Updated the code, you can now paste it in the javascript console on http://landsnet.is to get a result and review it.

var stations = [
  { key: 'KRAFLA_F', type: 'geo' },
  { key: 'FLJOTSDA', type: 'hydro' },
  { key: 'LAXA_F', type: 'hydro' },
  { key: 'LAGARF', type: 'hydro' },
  { key: 'BLANDA_F', type: 'hydro' },
  { key: 'MJOLKA', type: 'hydro' },
  { key: 'SULTAR_F', type: 'hydro' },
  { key: 'HRAUN_F', type: 'hydro' },
  { key: 'SIG_F', type: 'hydro' },
  { key: 'VAF', type: 'hydro' },
  { key: 'BURF_F', type: 'hydro' },
  { key: 'KOLVID', type: 'geo' },
  { key: 'IRAFOS_F', type: 'hydro' },
  { key: 'LJOSIF_F', type: 'hydro' },
  { key: 'X_NESJAV', type: 'geo' },
  { key: 'REY', type: 'geo' },
  { key: 'SVA', type: 'geo' },
  { key: 'BUDAR_O', type: 'hydro' }
];

fetch('http://amper.landsnet.is/MapData/api/measurements')
.then(res => res.json())
.then(data => {
  const powerflow = data.find(item => item.key === 'TOTAL_POWER_FLOW');
  const datetime = new Date(powerflow.time);
  const production = {};
  const consumption = {
    unknown: powerflow.MW,
  };
  stations.forEach(({ key, type }) => {
    const items = data.filter(item => item.substation === key && item.MW >= 0);
    const mw = Number(items.map(st => st.MW).reduce((a, b) => a + b, 0)) || 0;
    production[type] = (production[type] || 0) + mw;
  });

  const result = {
    countryCode: 'IS',
    source: 'landsnet.is',
    datetime,
    production,
    consumption,
  };

  console.log(result);
});

See update above, but is it correct to assume that the consuming is about ~85% of the production?

I'd rather not return any consumption data because that 85% can vary. So I'd suggest only return production mix for now.

Ok, I actually calculated 85% from total power flow (through the power grid) divided by the sum of production (hydro, geothermal), just asking if that's normal or not, I thought it should be as close to 100% as possible.

But only production is allright with me 👍

@birkir how is it going? Need help? I'm quite excited about getting Iceland on the map!!

Hello @birkir thanks a lot for your help!

I'm noticing a mismatch between power capacities and power production from the API, would you happen to know what it could be?

For instance, the BURF_F hydro power plant has a capacity of 6*45=270MW http://www.landsvirkjun.com/Company/PowerStations/BurfellPowerStation

But on http://amper.landsnet.is/MapData/api/measurements we have 6 values for each turbine, summing up to 394MW right now (04/02/17 19h28 GMT+1)

(excel comparison here https://docs.google.com/spreadsheets/d/1k7KZFy8ZQrtfFNSNRGTgTr5nA6Anzl5T_HKnjn2ZKkw/edit?usp=sharing)

Given that the capacity figures have been double checked in various websites, i'm rather confident that the issue comes from the amper.landsnet.is API, but don't know why

Realtime transmission map seen here:
http://landsnet.is/english/transmissionandmarket/systemoperations/
Potential contact:

Íris Baldursdóttir
System Operations
Gylfaflöt 9, 112 Reykjavík
[email protected]
Tel: (+354) 563 9446

Sent an email to Iris

Hey @brunolajoie

The issue isn't with the API being incorrect, but the interpretation is incorrect. These numbers do not represent power from plants, but rather these numbers almost all (others data points being total and intersects) represent transmission lines connecting adjacent substations.

You can see how the data is used here: http://landsnet.is/raforkukerfid/kerfisstjornun/aflflutningurnuna/ (note that the english version doesn't show correct data at all and has been broken for a while).

For example Burfell is the almost octopus with 7 transmission lines near the center. As you see summing the lines is rather meaningless since much of the power is just flowing through the substation. This data has few more annoying flaws like even though it's all edges (transmission lines) it only list one of the node (power stations) seemingly at random. Hence the 7th feeding line for Burfell isn't account for.

I'm afraid that this API just isn't very good for getting separate numbers for geothermal / hydro power.

I see two workarounds. One method I speculate works by getting a fairly good approximation for the much fewer geothermal stations and subtract it from the total to get the hydro power.

Another workaround is to fix up the data more. Make sure that all lines are accounted for with correct direction for every node. For example if the 7th line to Burfell had been account for and feeding line "Sigoldulina 3" (SIG_F key SI3) had been subtracted you probably get correct number for Burfell.

Finally check that the sum of geo + hydro adds up to the given total.

Thanks @kristjanbb for the clarification.
Do you know if / how we can get a real-time API in order to show Iceland on our map? Is there an equivalent API representing production instead of exchanges between stations?

Ahhhh that why! Thanks for the clarification! As for your two workaround options:

  • Your suggested option 1 is unfortunately not a viable option for us, we prefer a lack of data than estimated data, in order to keep pushing TSO to disclose their their data.
  • Unfortunately, we lack a bit of time to go deeper into option 2 by ourselve right now. If you are willing to help build a valid parser and contribute to extend the map, do not hesitate! We can help with the coding part.
    Thanks,

Bruno

Hi guys, I have not found the time to convert it to python, and make adjustments based on peoples great answers in this thread!

If we can decide on going for option two (which is pretty much the same as I did in JS, with small adjustments), we should go forward with it.

edit I now see thats you have made the parser already, hats off to you. We can also press LANDSNET to give us better data.

No sorry @corradio I don't know of any other API public, but I did send an inquiry to Landsnet about this. They might not have all the information reliably broken down since they run the high voltage transmission grid, not production.

@kristjanbb did you get any reply?

@corradio nothing useful, just that they would forward it to the right people.

OK. Any chance we will get a reply? Can we nudge them somehow?

On 21 May 2017, 00:11 +0200, kristjanbb notifications@github.com, wrote:
>

@corradio (https://github.com/corradio) nothing useful, just that they would forward it to the right people.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub (https://github.com/tmrowco/electricitymap/issues/140#issuecomment-302901892), or mute the thread (https://github.com/notifications/unsubscribe-auth/ABlEKH3Zp3Sw05n2tTl2D-lsZuhDBtueks5r72UXgaJpZM4K3W8g).

@corradio Chance of reply? I doubt it, probably buried in pile of dead suggestions now.

Nudge them? Absolutely. There is [email protected], that probably ends in worlds slowest support desk, but doesn't hurt. On Landsnet contact page one can pretty much reach anyone directly via email, but who do you want to contact? You can reach the technical people directly, but they probably don't have the authority to add this functionality. Then your best bet is to sell this idea to management directly, but I'm not confortable with acting as a spoke person of this site to sell this idea.

Finally you can try and ping the producers (Landsvirkjun, 76% of production, Orkuveita Reykjavíkur, RARIK, and Hitaveita Suðurnesja). In fact I'm not even sure if Landsnet (a distributor and not a producer) has the exact breakdown to start with?

I'll try to nudge them.

Hey everyone,

please tell me what you think about these two approaches/options to feature Iceland:

We know that generation consists of hydro, geothermal, a tiny amount of wind, and an even more negligible amount of oil.
According to IEA, these were the figures in GWh for 2015:

hydro: 13781 (1.57 GW on average)
geothermal: 5003 (0.57 GW on average)
wind: 11 (1.25 Megawatt on average)
oil: 4 (0.45 Megawatt on average)

Some more recent figures on energy generation and installed capacity for the last year 2017 (in GWh):
hydro: 14059 (1.60 GW on average)
geothermal: 5170 (0.59 GW on average)
wind: 8.13 (0.93 Megawatt on average)
oil: 2.1 (0.24 Megawatt on average)

Installed capacity as per 2017
hydro: 1984 MW
geothermal: 708 MW
wind: 3 MW
oil: 72 MW

19.240 GWh were generated in 2017, which leads to a yearly average generation (or load) of 2200 MW, just as a reference.


To summarize everything from all the work above that is applicable:

  • we know the grid load
  • there is no interconnector with another zone, so electricity is of domestic origin
  • We know a website for wind generation (we could use it but would be nearly invisible) - I hadn't yet checked whether the data is for all turbines or just two)

It's just that the shares between geothermal and hydro are unknown.

Option 1

From what we've seen on the electricitymap, all countries using geothermal power have these plants running as "baseload supply" with a very high capacity factor over the entire year.
Hydro is mostly used to cover peaks and to react to changes in demand due to its flexibility and storage capability. Geothermal may change its output during the day too, but this is probably performed in a very, very limited range only.

This made me think of a solution where we'd use a "fixed average generation" for geothermal and use hydro to fill the gap to match the load. This would allow for changes in generation shares to be considered in the carbon intensity of the mix. Just like for the NL, where only wind and solar are given.

Option 2

Setting a fixed carbon intensity for the electicity mix based on the shares of 73% vs. 27% of hydro vs. geothermal.
This results in an intensity of about 28 g/kWh using the IPCC median values, but wouldn't show any changes to the carbon intensity (= the bit of wind energy as only possible influence on it).


I'm collecting some data over the next days to get a visual idea of the load profile, which is updated every 5 minutes.

Before others go doing the math: the "MW on the lines" data currently available in the API is only a placeholder.

For instance, in southwest peninsula, the line from Reykjanes, Rauðamelslína (RM1) currently reports 100 MW, and the line from Svartsengi, Svartsengislína (SM1) also reports 100 MW. They feed into Fitjalína (MF1) which also reports 100 MW, and then send power to Reykjavík area via Suðurnesjalína (SN1) which also reports 100 MW. These are improbable values: to begin with, Svartsengi's capacity is 75 MW according to Wikipedia, and there is nothing before Fitjalína to eat up 100 MW - majority of that power is sent at least to the Alcan plant via the Suðurnesjalína.

As another example, currently 230 MW is entering Rangárvellir and only 104 MW is leaving (on the RA2/BECROMAL and DA1 lines).

So I am guessing that the values are only placeholders to indicate direction and speed of the flow for the map - or at least the values that are exactly 100 MW and -100 MW, 200 and -200 MW are.

(I had hoped that we can just solve the flow equations, especially as there are only 5 geothermal plants and 3 of them are very easy to isolate, but unfortunately the data is just not there :/ )

Essentially only the values actually indicated on the HTML map are likely to be correct, which leaves us with the entire southwest unsolved.


Without reliable data or a substantial known non-dispatchable portion (more than the 0.1% wind...) I would suggest just leaving it as unknown. We won't help anyone in Iceland use electricity when it's substantially greener (it's always basically the same), and if they want to be green on the map all the time, they should publish actual data.

@jarek good that you mentioned this here! 👍
I also assume these are placeholders for direction and speed.

Many of the 95 values will also show "30 MW" all the time and then all of a sudden they change to something like 4.xx, always starting with a 4.


On my way to get some general data on grid load, I found an interesting study which you can download here:
http://energy.mit.edu/publication/electricity-security-supply-iceland/

Looks like they used grid data for 2014 and applied some of the cuts of the "SNIÐ" option of the map (see page 40 of 75 of the document (page 9 of second part)) to perform some grid calculations.

Consider this as just some "secondary info" as well, nothing that could be used.

Closing due to no usable data currently available. Please comment or reopen if more data becomes available.

@jarek Here's the load profile from the beginning of May when I collected some data:

image

As assumed above, the average load/generation is around 2200 MW through the year and should not show any significant "ups and downs" in the load curve. Same can be observed in the graph.

A constant ratio of hydro vs. geothermal or a fixed geothermal (600 MW) and "gap filling" hydro could be applied to this. Second option would consider the better flexibility of hydro to cover these demand drops and increases that you can observe (due to industry demand, I guess).

... a final comment from me on this issue^^

image

Hey @alixunderplatz and @corradio, really cool project.

You've clearly made some effort trying to get data for Iceland over the last few years, particularly with the amper API and trying to 'reverse engineer' some kind of real-time data. It is a shame to not have Iceland on the map!

The reason that there isn't any Landsnet data on the ENTSO-E transparency portal is primarily due to Landsnet not being a part of the pan-European electricity market (despite being an ENTSO-E member).

Let me see if I can make some of the data available.

Kind regards,

Samuel

Was this page helpful?
0 / 5 - 0 ratings