Accurate Topography from a Hillshade Image

Hi Everyone,

Does anyone know how I would best replicate in Rhino the terrain in the attached grayscale hillshade image?

It’s a slope down to a beach where the pixels cut-off at the top. I don’t have any way of accessing the original LiDAR data so I thought I could maybe reverse engineer the image that I can download. Thought of using a GH python code in grasshopper to read it based on brightness at first but then these images take into account light sources with a zenith and azimuth, as well as the slope and aspect of the terrain in the original land data. Tried getting some help from chatGPT as I am not great at scriptwriting but keep running into dead ends, and unsure if this is really the way to go about it!

Not sure it’s possible but figure I’d ask the wonderful experts on here rather than the clumsy Ai bot!
Any help will be much appreciated!

Hi Alec,

If you search the internet for photoclinometry maybe there will be some relevant info available.
Its my understanding that you would need at least TWO images of the area to achieve any result.

Jesus! Avoid that at any cost.

Other than that hightmaps from Bitmaps are rather easy to do … but how accurate they are … well … that’s another question. Show some tests (prior Laplace and the likes).




BTW: Search this (or the old - dead - Forum) for that matter. If memory serves well there’s some threads around (but I have no links).

… “hillshade”?

I might be wrong but that image is the shaded view or a mesh.
To work properly you would need to have a grey-scale image where each grey level always means the same Z altitude.
That image have the same color near the sea level as the color “uphill” … rebuilding a shape from such image is really complex and will give approximate results.
(the light/shadow is a white to black gradient depending on the normals of the mesh, but it is not enough to properly define a shape. A normal map would have more information, but still tricky.
See this really unconclusive attempt from normal map Surface from planes (using planes z-axis as face normal at that point) ||| Planes still on XY-Plane and need to be moved on z-axis acrding to angle - #12 by maje90 )


Imho, find a proper image first. A heightmap image.

Thanks for the suggestions! I will have a read and see what I can come up with.
Unfortunately, this is the best image I can find of the area, not a lot of data/studies are available where I’m from!

Got it from this website where someone translated LiDAR into the following map.

https://uwi.maps.arcgis.com/apps/webappviewer/index.html?id=3cefab03e0c64532b4fa036618f914c7

Better than google maps / earth - the best contours I can find from there are at 20m intervals!

This is the satellite for area I am trying to recreate btw, in case anyone is interested.

My Bad … I assumed you had already looked for DEM.
Here’s a site that is selling the data for a modest cost, however, its also possible you may find it for free somewhere else.

This site has the DEM it as a Geotiff, which I believe can be converted to a greyscale DEM, it would be more convenient if you can find it as greyscale so you don’t need to do the conversion. Note it is not as simple as just changing it to greyscale.

You can also use Gismo’s terrain generator.
It will create your terrain for defined latitude+longitude or address and radius.
Installation instructions are here.

What about using Google Earth 3d data?
Found this video that coincidentally is for Rhino:

If I recall, the Google Earth data was fairly low resolution, at lease going back a few years. I doubt it has improved to offer 10M or better.

That video is really cool. So you are not getting just the topography, but any structures or buildings that have been added, its grabbing it from the 3d graphics display rather than a specific download.

The method shown results in a file that must be arbitrarily scaled based on some known distance, so the accuracy would only be as good as the reference.