How to detect the solar potential of industrial sites

Benoit de Menthière
iNex Blog
Published in
4 min readSep 19, 2022

iNex develops digital solutions for the recycling and renewable energy industry. We bring valuable data through open-data and machine learning.

Thanks to various open-data sources and internal pipelines, we have been able to link industrial sites to their parcels, buildings and parking lots all around France. This interests particularly the solar industry that is looking urgently for areas in which to implement solar panels.

Create a custom data visualization and cleaning interface

Our first challenge was to visualize and correct the data from our pipelines. We needed an internal tool, and for this we used the streamlit library.

Streamlit turns data scripts into shareable web apps in minutes.

All in pure Python. No front‑end experience required.

Thanks to the Agrid component, we can easily select the industrial sites to visualize.

Agrid component allows to select a site by clicking on it

Once selected, we visualize the plots, buildings and parking lots identified by our pipelines using the plotly library.

def get_fig(company, type_color, token, geojson_object=None, opacity=0.5):
fig = px.scatter_mapbox(company, lat="latitude", lon="longitude", zoom=zoom)
mapbox = {"accesstoken": token}
if geojson_object:
mapbox["layers"] = [
dict(
sourcetype="geojson",
source=feature,
type="fill",
color=type_color[feature.get("properties", {}).get("type", "unknown")],
opacity=opacity,
)
for feature in geojson_object.get("geojson", {}).get("features", [])
]
fig.update_layout(
margin={"r": 0, "t": 0, "l": 0, "b": 0}, mapbox_style="satellite-streets", mapbox=mapbox
)
return fig

If errors are identified, we can select the features to correct:

types = ["parcelles", "buildings", "parkings"]
with st.sidebar:
with st.form("columns", clear_on_submit=False):
bools = [st.checkbox(t) for t in types]
st.form_submit_button(label="Select geojson types")

This brings up a new interface created with leafmap on which we have the possibility to delete existing results, or add new ones.

Let’s take the example of the parcels: on the interface, we can see all the parcels returned by the IGN API on the geographical area.

To add a parcel to a company, there are 2 possibilities:

  • Place a marker on a geojson returned by the API.
  • Drawing polygons by hand.

Calculate indicators of solar potential of sites

Many indicators are used together to measure the solar potential of a site: peak power, energy production, distance to the connection station, etc. Let’s take the example of energy production.

Once these previous corrections are made, we can simply calculate the surface from the geopandas library, taking care to convert the coordinate system.

import pyproj
LAMBERT93 = pyproj.CRS('EPSG:2154')
WGS84 = pyproj.CRS('EPSG:4326')
gdf["surface"] = gdf.geojson.to_crs(LAMBERT93).area

The area is only calculated on areas without environmental and urban planning constraints. iNex thus recovers about a hundred criteria and excludes certain areas (e.g. protected areas).

We then retrieve the sunshine for each of the detected areas thanks to the API https://re.jrc.ec.europa.eu/pvg_tools/fr/. With all these data, we calculate the energy potential of the different sites. It only remains to visualize the result.

FO visualization

In order for our customer to quickly identify a high potential site, the sites are represented on our platform https://www.inex-circular.com/.

Thus, in 2 clicks, we can filter and sort by peak power, energy production, distance to the substation or any other criteria.

When you select a site, all the details appear: general data, energy indicators, land details and other environmental data.

Conclusion

iNex enables its clients to detect the potential of solar panel implantation by aggregating hundreds of sources, enriched by business or statistical predictions.

Based on complementaries technologies, iNex also analyzes land to target the installation of recycling plants, energy renovation of buildings or companies subject to certain environmental regulations.

--

--

Benoit de Menthière
iNex Blog

Lead data engineer at iNex #GreenTech. Passionate about cutting-edge technology and solving real-world problems.