I'm using ArcGIS Pro to try to identify permanently shadowed craters on the North Pole of the Moon. Pictured below is a screenshot of the DEM I'm using which was collected from the laser altimeter on the Lunar Reconnaissance Orbiter. It is available for download from USGS here: Screenshot of DEM layer (projected in North Pole Stereographic with GCS_Moon_2000)

I can use the Hillshade tool with a low altitude angle and model_shadows turned on to create a raster like the one below that shows the shadowed regions of the craters for those particular illumination conditions. The picture below shows the results of a Hillshade with Azimuth 315 deg and Altitude 5 deg. Screenshot of hillshade processing on DEM with Azimuth 315 deg and Altitude 5 deg

In a simplified world, I could just run this hillshade for a variety of Azimuth inputs and sum the resulting rasters. The pixels that still had a value of 0 would be permanently shadowed regions. There is one problem with this plan though. The moon is not flat, especially over such a large region. This DEM covers the whole surface of the Moon north of 75 deg latitude and even lower at the corners. Because of this, the elevation of the sun would vary quite a lot for various pixels in the image.

To summarize: Is there a way to calculate shadows caused by terrain on a large, spherical surface?

The Hillshade tool operates only on planar maps.

EDIT: Esri has a help page where they basically give you the hillshade formula and explain all the terms. I was able to modify this formula by calculating the unique azimuth and zenith angle for each pixel. The result below is almost what I'm looking for. In this image, the sun is off the top of the page and it is easy to see how the curvature of the moon makes the other side darker due to the higher zenith angles. The only thing this image is missing is shadows, which is why some of the crater walls on the bottom image are still illuminated despite being on the far side from the light. Unfortunately, I can't find any documentation on how shadows are calculated. enter image description here

  • You already have calculated the solar angles etc for all locations on the moon to use as input to a hillshade formula? – BERA Apr 17 '19 at 5:49
  • Can you generate a raster of apparent sun angle, then divide that into classes based on sun angle, run the shading within classes? The more classes, the more accurate the output, but the less detail the algorithm has to work with and the longer it will take. Maybe overlapping classes, then blend the outputs somehow? – Spacedman Apr 17 '19 at 7:24
  • For every cell and every day of lunar year you have to compute solar angles similar to this itacanet.org/the-sun-as-a-source-of-energy/… and compare it with angles to a ridge line. – FelixIP Apr 17 '19 at 8:25
  • There is a solar radiation toolset included with the spatial analyst extension. Have a look here. pro.arcgis.com/en/pro-app/tool-reference/spatial-analyst/… – GBG Apr 17 '19 at 15:26

Sorry to leave you all hanging in suspense while I finish this project! I eventually found a slightly clever workaround to generating shadows for curved surfaces. I constructed a raster of latitude values, then used Raster Calculator to take the sine of it, and multiplied it by the sum of the DEM raster and the Moon's radius (1737400 m). This created a surface model with the curvature of the Moon built into it.

At this point, I was able to use the standard Hillshade tool with Model Shadows turned on. I ran this as a batch process varying the azimuth of the light source by 30 degrees each time and using an elevation of 1.54 degrees (the Moon's axial tilt). I then summed all of these rasters together, reclassified the regions with zero-valued pixels, and converted them to polygon features. Here are some images of my results. They look quite nice!

Stereographic projection of the results of Hillshade on the curved DEM of the north pole with Azimuth of 0 deg

Orthographic projection of the shadowed regions feature class over the north pole DEM


There is a projection file for the Moon in ArcGIS. Also see this blog post: https://community.esri.com/groups/coordinate-reference-systems/blog/2017/10/16/planetary-coordinate-reference-systems-the-moon

Maybe you can align your data to that projection and run it as a scene, using the tools there?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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