Welcome. I'm Rachel Tipton and this is my colleague, Zach Watts. Can everybody hear
me in the back? I'm not used to talking in a microphone. Yes, it's good, okay. So today
we're going to be presenting Open Quartz, building an open source AI solar forecast
for everyone. I'm a full stack developer. I work for Open Climate Fix. I'm going to
introduce myself and then Zach will introduce himself. I'm a career change developer. So
before working in climate tech, I was teaching English in France. I got a little bit tired
of teaching 18 year old French students the present perfect. So I decided to, the French
people, huh? Because it isn't. Yeah, because it isn't. It's not perfect. And I'm not a
perfectionist. So I decided that I was going to channel my love for languages into learning
code languages. I completed boot camp about a year and a half ago and that's why I landed.
This is why I'm here. I landed in climate tech and I'm quite happy. Zach.
Thank you, Rachel. Yeah, I'm Zach Watts. If anyone's noticed, my last name is Watts.
So I think I was destined to work in power of an energy of some sort. I recently finished
my masters in physics two years ago where I was trying to make cells dance using acoustic
sound waves. And then I kind of fell in love a bit with AI and then joined open climate
fix about a year ago where I do some of our machine learning implementation and data science.
All right. So what to expect from our talk? I'll introduce open climate fix. We'll talk
a little bit about why solar forecasting is important to balancing a power grid and some
of the use cases that we use it for. We have a live solar forecasting service called court
solar and derived from that is the open source court solar model that we'll be talking about
and Zach's going to present that today because he's worked on that model. And then hopefully
we'll have time for questions at the end. And this is a sneak preview of the code that
we'll have you guys run at the end of the presentation. And we're hoping that the demo
works, but we'll see. Open climate fix was founded in 2019. We're a London based company.
I'm based in the north of France, so getting to be in Brussels is kind of more my home territory.
This photo is from the sustainable work ventures office in London where we work. We're a
nonprofit product lab developing open source solutions to decarbonize the power grid and
generating solar forecast is part of that work. All right. So we see ourselves as like a, I'd
say like a middle man or like the traverse between ML researchers and the energy industry. So we
want to make our data available to researchers and we want to make the research ML researchers are
doing available to the energy industry. And how do we do that? So all of our code is available on
GitHub. We also have models and data sets that are available on hugging face. Does everybody know
what hugging face is? I'm assuming this crowd does know. Yes. Okay. We know what this is. So a lot of
the data sets are from NWP data or numerical weather predictions. And up to date, we have 500
people who have signed up to download those data sets. So we like to say that we're making an
impact in that way. We also make available the EU met set data that we collect from where connected
to a live service of like we get data from the satellite itself while we're generating our
forecasts. And then we're actually putting that data into the ZAR file format and making that
available to ML researchers. And that data has been downloaded 16,000 times so far from the
Google public data sets site. So that's a way in which we're having an impact. The data has also
been used to forecast rain, like to do rain predictions in Sweden, storm evolution in Taiwan.
So it's been used for a lot of different purposes. And most recently, there was like a graduate
paper that was published on, I think it was like day ahead PD forecasting. All right. So moving on
to why solar forecasting important. The weather is unpredictable. The sun doesn't always shine. The
wind doesn't always blow. If any of you have listened to a podcast on decarbonization, you've
probably heard that phrase before. So moving into the future, our basically our power generation is
going to be dependent on weather dependent energy sources like solar and wind. So in this chart,
you can see by 2050, about 75% of the world's primary energy source is going to be based off
of renewable resources. And then the resources at the bottom are gas and coal. These are what are
called dispatchable resources. So you can you can burn X amount of coal and get X amount of
electricity, you'll burn X amount of gas and get X amount of electricity. This is a basic concept
that I'm presenting. But it's important to think about, because you don't have that predictability
with solar or with wind. And that's where our predictions come in. So does anybody know what
this is, this image that is on the screen? I'm sure there's somebody who knows more about it than I
do. Peter, would you? No. Huh? Somebody else? Anybody? Yeah, it's a gas powered turbine. Thank you.
So it's again. This is a gas powered turbine. I'm using it to introduce the idea of spinning
reserves. So a power grid is, as we've seen, there's a lot of calculations, as well as a lot of,
it's complex to balance a power grid. And so what we're doing with our work is, we're helping
power grid operators balance the power grid by providing them with a PV solar forecast that
indicates how much solar energy is going to be on the grid. If they don't have that energy, what ends
up happening is they have something called spinning reserves that they keep running. And that spinning
reserve is running at 50% capacity. And so it's running at 50% efficiency. And so you're actually
burning fossil fuels just to ensure that there is electricity that could be generated to be on
the grid. If you don't know how much solar energy is going to be on the grid, it makes it more likely
that you're going to have a greater amount of spinning reserves that are functioning or running at
a given time. So I'm just introducing this to explain how our solar forecasts are actually
decreasing carbon emissions currently with our work with national grid. So our main solar forecast
is a national forecast that's run for national grid ESO, which is the electricity system operator
in the UK. This is a picture of the control room. If you've never seen the picture of a control
room, this is what the national grid control room looks like. And our national forecast is in
operation in the national grid control room. So this is what a solar forecast looks like. You have
the dotted line here. So the dotted line, that's your forecast. And then the solid line behind
where it says 1130 is basically the history of the forecast itself. And I'm just using this to show
you the information that national grid is given. And then they're able to make balancing decisions
based off of this information. So if they see that there's 3.5 gigawatts of energy that is guaranteed
to be on the grid, then they can reduce the spinning reserves that are running at that time. And
therefore, decreased balancing costs for themselves. And then they also are diminishing carbon
emissions at the same time. The other model that we have in production is a sites model. And this
is what the open courts model is based off of. And so this is a model that's not necessarily
generating a solar forecast for the power grid itself or for an entire country, but it could be
like for a solar farm or like a smart home operator. And Zach is going to tell us how it all works.
Great. Thank you very much, Rachel. So as said, we've taken a lot of the information that we've
learned from building these kind of larger, more complex models and distilled this down into a site
model. But essentially what we're doing when we're trying to do a forecasting problem in general,
we want to start by providing as much information as we can about the problem we're trying to solve.
So we start that by providing a diverse set of solar historic generation data. That just means
we can capture all sorts of different types of conditions that might occur across a different
location. We then provide multiple numerical weather predictions. These are forecasts made by
large supercomputers of different countries, forecasting things such as cloud cover, temperature,
rain, irradiance. And not all of these numerical weather predictions are equal. Some of them have
slightly different biases. So we try to incorporate as many as possible to try and capture that
information. We also utilize satellite imagery. As Rachel said earlier, we've made that data set
public on Google data sets. That's really useful for helping with kind of near term cloud formation,
not only that the satellite imagery, because it's a satellite up in space, it can take a picture every
five, 10, 15 minutes. So you have a higher resolution of data going into the model, whereas the numerical
weather predictions, they're run on quite resource intensive, quite slow to run supercomputers with
much lower resolutions. We also then provide some topographic data about the terrain in which we're
forecasting. And we feed all of this data into machine learning model. And if you've dealt with any
data on this kind of order of magnitude of 60 terabytes of satellite imagery, you would know
some of the pains in creating batches and the slow processing times involved there. And out of this,
we're able to create a national, a regional, and an individual sites level forecast, which I'll be
talking about today. So as we said earlier, we've been doing some work with the National Grid ESO,
which we started a couple years ago. They were our first pilot project with our forecasts. And we
managed to generate a forecast, which was three times better than their existing in-house forecast.
So that gives you a key to kind of the bar that was set when we kind of started this, trying to
getting an error, which is three times better. And this chart we can see to the right here,
this is from one of our latest models, which we call PVNet2. And you're looking at mean absolute
error as a percentage per forecast horizon. Now I've used this to demonstrate the value of using
satellite imagery combined with these numerical weather predictions. The light blue line that
you can see here is if we train the model just using the satellite imagery, you can see it's
quite good early on, but the error relative increases quite a bit. Whereas just using the NWPs,
which is this dark green line here, very kind of horizontal consistent error. And then by combining
the two data sources, we get this, what I find a quite satisfying convergence where the models
learn to take the information it needs from both data sources. So moving on to our site level
forecast, just curious here, if you have solar panels, could you just raise your hands now?
All right, now keep your hand raised if you also have a battery pack in your house.
Now, are any of you using solar forecasts in any way at all at the moment? You are, nice. So this
is where we see the kind of site level forecast that we've generated to be open source being really
useful. There's a bit of a shift going on in the past couple years as consumers and kind of home
households are realizing that there's these technologies available that can help them
optimize their energy consumption. And it's not just the consumers as well, it's the smart home
operators who are looking to participate in these energy flexibility markets. Now, as we've heard,
there's been lots of really great presentations today about how to manage a grid. The grid,
the electricity grids really need a lot of more infrastructure that needs to be built on to the
grids to meet electricity demands going forward. And one way they're trying to tackle this is by
increasing flexibility through things like smart home management. So one way this could possibly
be used is when a smart home operator has access to many, many households, they can incentivize
households to turn up electricity or turn down during different times. And this provides a
flexibility to the grid. Now, from a consumer perspective, you might have an electric vehicle
and you might want to charge your EV at times when you know you've got the lowest cost to you,
which is when you'd have solar generation. So you can look at a forecast and say,
I want to drive my EV tomorrow. I can look at my solar forecast and be like, well,
it's really sunny today and really cloudy tomorrow. So I'm going to charge my car up
fully today and then I can drive it tomorrow and it'll be lowest cost to me.
So we see this being used by smart home operators. We're already speaking to a few startups in this
space who are trying to integrate this into this smart home optimization sort of systems.
Experts in battery optimization, research and academics, and just general hobbyists who might
want to incorporate solar forecasts into their current situations.
So to create this model, we've used a data set of over a thousand household UK sites,
which can see on the right here. And we've trained quite a simple model, just a gradient
boosted tree, which essentially tries to separate out the data into different buckets. This is quite
a crude example, but say the clouds are less than 25%, you might predict 100% PV. If not,
then try and create another branch that will then split the data up further.
And what we're able to do by using kind of a wide range of different sites spread out all across the
UK is forecast anywhere in the UK. So we can now plug in our specific latitude and longitude
information about the site we want to forecast for and forecast for anywhere and
hypothetically globally as well, depending on what data we have available. So this brings us
to open courts, which is the open source solar forecast we're presenting here today. This uses
open NWPs. Now there's two primary open ones. There's a few, but the GFS, which is the American
global forecasting system, and the ICON, which is created by the German weather service DWD,
and is widely regarded as the most accurate free to use weather service. So we take things such as
cloud cover, temperature, visibility, and we pull this data from open Meteo, and we're using our
pre-trained model that we previously showed. And by doing this, we're able to create a forecast
up to 48 hours ahead at a 15-minute resolution and do all this in four lines of code.
And we're able to get a pretty good error doing this. In comparison to some of our other models,
which use slightly more up-to-date information, the error is not too much worse. Now you might
notice that there isn't satellite imagery involved here, and that's because this model itself is
something that you can run on your computer using our pre-trained model and by pulling the data yourself
in just a couple of lines of code. Now when you involve satellite imagery, you need licenses and
stuff to have that data live. The repository, the data storage that we keep has a two-day lag,
I think, on live real-time data. So we were going to do a demo, but we've had to do a last-minute
swap of computers. So instead, I'm just going to talk through this with everyone. But if you do
want to do the demo, you can follow along. So if you head over to our GitHub repository, which is
GitHub-OpenClimateFix, I've pinned the repo, open-source-court-solar-forecast, so you won't have
to type in that mouthful of the name of a repo. And if you head to the example folder, there is an
example notebook you can follow through, which will lead you to creating a solar forecast. But
essentially, all you need to do is pip install-court-solar-forecast that we have here. And then
once you have that installed, these are the four lines of code we tempted you with at the beginning,
but essentially, you want to first import the function, which we'll be using to run the forecast.
Next, we import this PVSight class that we use. We then want to create the class. So in this case,
we're going to specify the latitude and the longitude of the specific house or site that we
want to forecast for, and then the capacity of our solar panels. Next, we just run that, we use
that run forecast function, passing in our site as an object, and then specifying a time in which
we want the forecast to start from. So using this time here, it would create a forecast starting
at midnight on that night, going out 48 hours from that point onwards. And what does the results look
like? Well, we get a nice, so this is where I click demo done, and it would nice graph and smooth,
but we get the best results out of this anyway. So we get our solar forecast, which looks, as we
might expect, kind of peaking around midday. There's some bumps in the road here. This could be due
to some clouds that are coming over or storm. And we've got our forecast from midnight out to 48
hours ahead. So hypothetically speaking, with the demo running, I could have shown you what it looked
like exactly at this location here today, looking out for the next two days, and we could have seen
today. But running it on my computer, it didn't look too great. And that's kind of reflective on
if you look outside the window today, it's a bit cloudy, and not the nicest. So I'm going to pass
back to Rachel now to talk about the robot. All right. So moving forward, the idea for the open,
the Quartz open source forecast is that other people can use it. You could potentially input
different types of data, so different NWP data could be input or PV data. And also just anybody
who wants to do a bit of ML experimentation, this would be a place to start with that. As a company,
we're looking to build our community as an open source company. It's something that we're kind of
trying to put in place. So if people use the model, hook it up to an API or a database, and actually
start generating a regular forecast for themselves, we'd love to know about it. So I don't know if we
have any time left for questions, but yeah.
Too many questions. The prediction, does it assume like you can specify the capacity, but can you
specify things like south facing versus east west facing, that kind of stuff? And how does this
contrast with forecast.solar, which provides for home users a similar API?
Sure. Thank you very much for the question. So in providing features like tilt and orientation,
that's something that we have built into the model and needs a little bit of a tweak to get it working.
So originally, with this model, it was based off a model that we have in production, which we run for
a thousand household sites in the UK. And we found that the tilt and orientation data that is generally
provided is not always that good and that accurate, because oftentimes with a solar installation,
the builder might have noted it down, but it's not that accurate. And when we ran experiments,
hard coding the tilt and orientation, versus letting a user kind of specify exactly,
we got slightly better results if we assumed it was a perfectly south facing and at 30 degrees.
But that is something that is a little tweak and is I think one of our kind of issues to work on.
And your next question about using kind of another provider, what was it again, the name of the
forecast.solar. So I think what differentiates what we're doing compared to other people,
this is something that you can run like locally on your computer and do it yourself. And we're
also forecasting generation. I think a lot of these other APIs, they're forecasting things like
solar irradiance, and then it's down to the user to basically interpret that irradiance value
into a generation value. Maybe forecast or solar is different, but I think that's what we do,
maybe slightly different if that makes sense. How do you handle so this issue of the solar,
long term solar weather and recent critical events quite like volcanoes or dust balls,
which can affect the yield for the solar partners? Yeah, so things like volcanic eruptions, they
definitely do affect the solar. And a lot of time, I think that information generally
is helped out. So the numerical weather predictions that we use, sometimes they tried to capture in
that information. I did see some research papers on how they actually don't capture in things like
volcanic eruptions. And the researcher, I suppose, who was saying, we need to improve these models
to capture things like that. One other data set that we're looking to incorporate is aerosol
data sets. So that does include information like that. And is something which I think we're doing
with some of our other models. And at some point, I guess, we'd like to do with this model as well,
which should help to capture extra information like that.
Hi, thanks for the talk. So I wanted to ask, what is the geographic extent of this? You're using
models which might cover more than, say, Eukaryurop. Or if it's confined to Eukaryurop, do you have
plans to expand it to a wider region in the future? Thanks.
Hi, thanks for the question. So this model in particular, because it's sort of dependent on
the weather data that you have available. So we're using IKON's global weather forecast.
That essentially means that this model can be used anywhere in the world, because that forecast
is a global forecast. The only issue you might encounter is because the training set that we've
used is just for the UK, there might be some sort of bias towards the UK household sites that we've
not really looked into yet. So I think one of the things that we do want to do is to create maybe
a more robust global model is to have a PV data set, which does cover the whole world.
But I think so this is very recently, we've pushed this out. And since we've done that,
there was someone reaching out to us from Indonesia who was testing it out there. I think
they got it working. So it does have global coverage. Some of our other models, which we provide
as a product and service, they are quite specific to the UK, but we're expanding out to India at
the moment and some other European regions. And that's mainly down to the satellite imagery
data that we have access to, because we're using the European geostationary one. So
it's easier for us to build on that, how it is at the moment.
Thank you, everyone.