Use r.sun as suggested in Command r.sunmask in GRASS.
As the input to
r.sun build a DSM raster from data (i.e., the trees must be part of the elevation raster, if they are not already).
r.sun dsm day=355 time=9 incidout=shadowed_dsm
Pixels with NULL are shadowed.
r.sun -s dsm day=355 time=9 incidout=shadowed_dsm
Pixels with zero values are shadowed.
Pick a day which correspond to winter solstice. Set a specific time of day (run
r.sun varying the time of the day, and merge output rasters later).
Be aware of the Coordinate Reference System from the DSM. If coordinates are latitude-longitude (degrees), elevation units need to be in meters. Otherwise, x, y and z must have the same unit. Also, from
r.sun documentation, the DSM must be a floating point (FCELL) raster.
After finding clear areas of shadows, consider studying if face orientation (aspect) will make a difference for the solar power plant location. If in the North hemisphere, perhaps choosing a south oriented surface will help.