Solar Shading Modeller
User guide
The function of this tool is to calculate the impact of shading on the solar energy received at a location. It requires a 360° panorama (taken from Google StreetView) or a hemispherical fisheye image as input. It outputs a report which includes the percentage of energy lost to shading at the location analyzed, and the impact of shading for each month in the year.
- The .zip file (around 280 MB) containing the program can be downloaded from:
https://github.com/bowenfan96/solar-shading-modeller/releases
This page will be updated if there is a newer version of the program.
- Unzip the file and click “ssm_v0.5.exe - Shortcut” to launch the program.
When launched, a command window will pop up together with the program window - don’t close the command window or the program will also exit. The command window serves as a progress monitor during the calculation.
The most convenient way to analyze the solar potential at a location is with a 360° panorama from Google Maps StreetView. To do this, the location of interest has to be on a road that’s covered by StreetView.
- Download the tool that stitches together StreetView imagery to give a 360° panorama from this link: https://svd360.istreetview.com/
Credits to Thomas Orlita, who wrote this panorama downloader software. - Go to https://www.google.com/maps and enter StreetView for a location of interest. Navigate as close as possible to a planned location for the solar panel.
As an example, I have navigated to an existing panel at 415 Bedok North Ave 2. With this method, the solar analysis will actually be giving results for the point on the road from which the StreetView was taken. This may be a couple of meters away from the real panel position. As such, it’s important to get as close as possible.
- Copy the URL from the address bar. Paste this URL into the solar program and click “Get Pano ID”. Copy the Pano ID generated:
- Install and open the “Street View Download 360” tool from Step 3. Specify a save folder and the file name. Paste the Pano ID into the program as such:
A resolution of 1664×832 is sufficient. Higher resolutions are okay but the image tracing will take longer.
- Click “Download Panorama” and open the downloaded .png or .jpg in Paint 3D (standard software on Windows 10), like this:
Should be able to just right click on the image file and select “Edit with Paint 3D”
The solar analysis tool assumes that North is aligned to the leftmost pixel on the image. Hence it is necessary to edit the panorama such as the North is on the left.
- Go back to Google Maps StreetView page. Click on the compass icon in the bottom-right corner so that the center of the picture aligns North (the red arrow should be pointing up).
It helps to zoom in first (scroll up), then align the compass - it’s easier to find an object that’s aligned to the North as they are bigger (see Step 9).
- Identify an object on the image that is directly along the North direction. This is any landmark or feature in the center of the view - the centerline is roughly in the middle of the 2nd ‘o’ of the Google logo at the bottom.
Here, the centerline, which is the North, is slightly to the left of the lorry.
- Now we’ll have to edit the panorama image in Paint 3D and shift this lorry to the left.
- Click “Select” from the top left corner. Draw a box to select the portion that contains the 0° North line. Try to align it accurately.
To illustrate, this is the portion selected. Note that the lorry is on the the extreme left:
- Cut the selection (Ctrl-X):
- Select the other half:
- Move this selection to the right by dragging it after it is selected. Then, paste the previous selection and drag it so that it is aligned to the left. Try not to leave a gap between the two portions:
- This is what the image should look like now, after being pieced together. The left of the image is now aligned to the geographic North (note where the lorry is).
- Crop the image into half. This is because this is a 360°×180° panorama. The lower half is actually below the panel height.
Click “Crop” from the top left corner. Crop the height to half of its original - the original height was 1024 px, so now it’s cropped to 512 px.
- Save the image (Ctrl-S). This is what you should have now:
- Go back to the solar analysis tool. Select the edited panorama in the “Select image file” row, using the “browse” button. Fill in the rest of the fields too.
- Click “Test sensitivity” to test whether the program is able to trace the obstacles accurately:
(The higher the value, the less sensitive the program is. This may be confusing and I intend to fix this in a future release.)
The program will display the traced obstacles:
In this case, the default value of 350 works well - the trees and the HDBs are traced quite accurately.
However, the program may have trouble identifying the obstacles if the sky is cloudy or if the buildings are too similar to the colour of the sky.
In this case, it will be more accurate if you manually trace the obstacles with a red line and erase the sky before feeding it into the program:
In Paint 3D, use the red marker to draw over the trees and buildings, then use the eraser tool to erase the sky (don’t erase the red marker line):
You should have an image like this:
- You can test the sensitivity multiple times, until the program traces all the obstacles accurately. If you manually trace the sky with a red line and erase the sky like illustrated above, the default sensitivity value of 350 should be accurate.
- Select a computation interval - the default value of 5 minutes means that the position of the sun is calculated and compared to the positions of the obstacles every 5 minutes.
Recommended to leave this as the default. A lower value (e.g. 1 minute) will take more time to compute, but does not increase accuracy because the accuracy bottleneck is with the image tracing.
- Click “Compute” to begin calculations:
The program will say “Not Responding”, but it is actually making a lot of calculations in the background - see the console window. Don’t click the window repeatedly.
When it is done (about 1-2 minutes), the program will generate a report at the folder specified, and a window will pop up:
The first page of the solar report summarizes how bad the shading is, in terms of percentage energy loss:
The second page shows the path of the sun (red dots) over the course of a day, together with the position of the obstacles (blue line). Recall that this is our panorama:
Looking at the skyline and sun path chart, you can see that the bunch of trees on the right is blocking a lot of the afternoon and evening sun - a lot of the sun (red dots) is covered by the trees (blue line) from around 180° to 330°.
Obstacles without any red dots below them do not affect the sun, because they don’t overlap with the sun’s path. For example, the round tree on the extreme left is in the white region of the chart, and will not cause shading at any time of the day.
The subsequent pages show how each month will be affected by the shading. The energy received at the location is plotted for Day 15 of each month - Day 15 is selected to give an indication for the whole month.
From the quarterly chart above, you can see that January (blue line) is the weakest month in this quarter. The location will only receive sunlight from around 10 am to around 1:05 pm. The peak intensity is also lower. The panel should be sized so that there’s enough power even for the weakest month.
Referring to the report’s summary:
The overall solar potential of 1580 kWh/sqm/year is taken from the EMA website. This includes losses due to rain and cloud cover. The actual irradiance value calculated also includes losses due to rain and cloud cover, but the losses are averaged over the year. Not all months are equal because there’s more rain in some months (e.g. December). Thus, dividing this value by 12 would not be indicative of the solar potential of each month.
Referring to the monthly and quarterly analysis:
The instantaneous irradiance values in these graphs assume a completely clear sky - the actual irradiance will almost always be lower. However, it wouldn’t be possible to estimate the actual instantaneous irradiance, since that is subject to drifting clouds and rainfall.
This is an example of a hemispherical lens used for solar analysis, taken from the NUS National Solar Repository:
Here’s another image I found on the Internet (https://platypod.com/blog/tower-of-light-shooting-with-a-fisheye-lens), where there are more obstacles. There’s no sun since it’s taken at night, but it’s just for illustration purposes.
Clip-on fisheye lenses are available for smartphones. They are a low-cost method to take images like these.
If the potential panel location is not near a road (hence not covered by StreetView), it would be necessary to go to the location and take a hemispherical fisheye photo. Point the lens vertically upwards, at the height where the panel would be. Save it like a square image like the one above.
Take note of where North is when you take the image. With a compass, rotate the lens until the North on the compass aligns with the vertical of the image (the red line shown above).
Input the image into the solar analysis program like before, but select the “Hemispherical fisheye” radio button instead:
The program will unroll and trace the fisheye image for obstacles, just as it did for the 360° panorama:
If the obstacle tracing is unsatisfactory, you can manually trace the obstacles with a red marker and erase the sky in the middle portion like so:
The rest of the steps in the analysis are the same - just remember to select the right image type.
Please email me at fan_b at meng.ucl.ac.uk if there are errors in the program, or if you have a suggestion. Thanks! :)