29 comments

[ 5.4 ms ] story [ 73.1 ms ] thread
Author here, I wrote this to show how you can use the rayshader package to generate 3D maps in R using free and open data (in this case, Landsat 8 imagery and SRTM elevation data). You can check out rayshader's Github repo here:

Github: https://www.github.com/tylermorganwall/rayshader

And browse the documentation (with rendered examples) and README on its website: https://www.rayshader.com

On a side note - you don't know a free tile server that serves elevation tiles, do you?
Here are a couple more ways to get SRTM tiles:

- OpenTopography (also has 3DEP/LIDAR data): https://portal.opentopography.org/datasetMetadata?otCollecti...

- SRTM 30M tile tool: https://dwtkns.com/srtm30m/

Unfortunately, SRTM 30M tile tool is asking for credentials for me.
You can also query elevation tiles using the `elevatr` package and use them in a similar way.
This is the best option for free terrain tiles. There are four formats, though "Terrarium" is the most used. It maps RGB pixels in a PNG to raw elevation values using this formula [0]. If you're using Mapbox GL, you can just point your map to [1] to fetch the tiles, and then use it as a hillshade. I do that in my topographic map style [2].

[0]: https://github.com/tilezen/joerd/blob/master/docs/formats.md...

[1]: https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/...

[2]: https://nst-guide.github.io/osm-liberty-topo/

Cudos to this code and the beautiful artwork (great README file for a github repository, btw). As somebody who worked a bit in visualization in scipy and blender, I can appreciate how much hard work have been put there. I did visualization as a small side project during my astrophysics PhD, and it was a pain in the ass to get anything good looking out of the data.
Thanks! I always enjoy when a library has a solid README with examples, especially when it's a visualization library. Wanted to make sure I had one myself.
How do I 3d print it with colors?
No color support, but you can export the map to an STL file with the function `save_3dprint()`. You can declare the maximum width/depth and it will scale the model to the size you've specified.
This is super interesting - I had no idea you could do this kind of thing with R. Very cool and a great step-by-step guide.

I also second the "rite of passage to fight with GDAL" sentiment :)

I'd also recommend Robert Simmon's introduction to GDAL for stitching, etc: http://www.openvisconf.com/2017/#rsimmon-video-item

The R GIS ecosystem has seen great strides recently! I've just been working on one part of it: 3D visualization and computational hillshading/raytracing.

And that video looks like a great resource--I'll put it on my watch list.

Here I thought you'd be doing photogrammetry or something to produce 3d maps directly from 2d imagery.

Maybe title should be "making 3d maps with satellite imagery and 3d maps" ;)

Is this similar to what vricon[1] does?

I was searching around and found something noting they won a contract to build the Army's One World Terrain 3d model. This OWT appears to be some kind of classification for applying sat imagery over terrain data sets, maybe?

[1] https://www.vricon.com

It looks like they're a firm that does large-scale photogrammetry to build 3D models worldwide--this is just a tutorial on how to combine existing topographic datasets (e.g SRTM or a USGS elevation product) with satellite imagery to generate small-scale 3D maps in R. Similar in concept, vastly different in scale and execution
Has this been tried on something like a cityscape?

If so, it seems like you could fly a drone with two cameras at relatively low altitude and get insane resolution for things like cityscapes at a pretty low cost

====== EDIT: Meant to add that your webpage discussion was great & thanks for sharing!

Most "satellite view" imagery of cities is actually done with planes and drones. I just looked up a 3D model of my house in Apple Maps and can see stuff with a few centimeter resolution, which is much higher than any satellite can do.
this is super cool. i think we should do this in tiles and after that assemble a map of all of the US. The Sattelite data seems to be there, it's just time to download, build + stich, right?
Is anyone else getting a mandatory login page when trying using the SRTM tile downloader?