I was wondering if anyone knows of a plugin, extension, process, etc. for mapping shadow locations based on date/time using raster data? I have searched and what I have been able to find all seems to require vectors or multipatch data. I have DSM rasters produced from LiDAR and would ultimately like to use those as the source for identifying locations of shadows, as I would like to the surrounding features in the raster to be used as sources of impact (i.e. trees). I am open to all options, but QGIS, Grass, and ArcGIS are preferred.

closed as too broad by PolyGeo Feb 21 '17 at 22:38

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


In the QGIS/FOSS world, you can use the GRASS algorithm called r.sunmask.datetime from the Processing toolbox. You provide the date and time, and it creates a shadow mask.

Here's one, derived from Lidar data:-

enter image description here

  • Thank you Steven, that looks exactly like what I am looking for, I will give it a try. Thanks for sharing! – Ryan Garnett Jan 9 '17 at 21:13
  • I am having issues with the command, it is throwing an error. I am choosing to use the date/time, but is seems to be asking for the sun position, etc. Thoughts? (Wed Jan 11 16:35:52 2017) r.sunmask --overwrite elevation=FDD4_ffl@solarLiDAR output=FDD4_ffl_shadow year=2017 month=1 day=11 hour=10 timezone=-5 Using map center coordinates: 314000.000000 4841500.000000 ERROR: Neither sun position nor east/north, date/time/timezone definition are complete (Wed Jan 11 16:35:52 2017) Command finished (0 sec) – Ryan Garnett Jan 11 '17 at 21:36
  • did you use r.sunmask.datetime, or r.sunmask? Also, for r.sunmask.datetime I think you need to provide coordinates for a 'point of interest', e.g. a coordinate somewhere in your raster. You can use the 'copy coordinates' plugin for this (apologies, I think I forgot to mention this step) – Steven Kay Jan 11 '17 at 21:51
  • I used r.sunmask, as I did not see r.sunmask.datetime as an option. I tried it by adding a position, but I am still getting an error: ERROR: Neither sun position nor east/north, date/time/timezone definition are complete – Ryan Garnett Jan 11 '17 at 21:59
  • it's quite possible that r.sunmask.datetime was only added recently to the processing toolkit (i'm on qgis 2.18.1, and grass 7). – Steven Kay Jan 12 '17 at 21:21

In ArcGIS the tool would be:

Area Solar Radiation (Spatial Analyst > Solar Radiation)

You could also do it in QGIS with the GRASS tool r.sun

I used this tools to create several images along the day from which later I made a video. But now that I reread your question this may not be exactly what you want.

I think what you need is: r.sunmask.datetime or r.sunmask.position

Not the answer you're looking for? Browse other questions tagged or ask your own question.