5 ms·
Guide to Making 3D Maps with Satellite Imagery in R
- tylermw 6y agoAuthor 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 https://www.github.com/tylermorganwall/rayshader And browse the documentation (with rendered examples) and README on its website: https://www.rayshader.com https://www.rayshader.com
- andybak 6y agoOn a side note - you don't know a free tile server that serves elevation tiles, do you?
- tylermw 6y agoMapbox has an API you can query from--I believe they have a free tier. The `ceramic` package makes this easy to pull from, but you need to get a Mapbox key first: https://github.com/hypertidy/ceramic https://github.com/hypertidy/ceramic
- tylermw 6y agoAdditionally, the `elevatr` package (https://github.com/jhollist/elevatr https://github.com/jhollist/elevatr) serves tiles directly from AWS Open Data Terrain Tiles. I don't believe it requires a key.
- jointpdf 6y agoHere are a couple more ways to get SRTM tiles: - OpenTopography (also has 3DEP/LIDAR data): https://portal.opentopography.org/datasetMetadata?otCollectionID=OT.042013.4326.1 https://portal.opentopography.org/datasetMetadata?otCollecti... - SRTM 30M tile tool: https://dwtkns.com/srtm30m/ https://dwtkns.com/srtm30m/
- tylermw 6y agoRelated: in my masterclass (free and open source, materials here: https://github.com/tylermorganwall/MusaMasterclass https://github.com/tylermorganwall/MusaMasterclass) I also walk through how you can convert LIDAR data into hi-res DEMs to generate 2D and 3D maps
- pks016 6y agoUnfortunately, SRTM 30M tile tool is asking for credentials for me.
- tylermw 6y agoYou can also query elevation tiles using the `elevatr` package and use them in a similar way.
- dtf 6y agoThe Mapzen elevation tilesets are on S3: https://www.mapzen.com/blog/terrain-tile-service/ https://www.mapzen.com/blog/terrain-tile-service/ https://registry.opendata.aws/terrain-tiles/ https://registry.opendata.aws/terrain-tiles/
- kylebarron 6y agoThis 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#terrarium https://github.com/tilezen/joerd/blob/master/docs/formats.md... [1]: https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/... [2]: https://nst-guide.github.io/osm-liberty-topo/ https://nst-guide.github.io/osm-liberty-topo/
- ktpsns 6y agoCudos 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.
- tylermw 6y agoThanks! 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.
- thdrdt 6y agoToday there is a nice GIS plugin for blender which makes life much easier: https://github.com/domlysz/BlenderGIS/blob/master/README.md https://github.com/domlysz/BlenderGIS/blob/master/README.md
- aryx 6y agoHow do I 3d print it with colors?
- tylermw 6y agoNo 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.
- sailfast 6y agoThis 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 http://www.openvisconf.com/2017/#rsimmon-video-item
- tylermw 6y agoThe 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.
- kylebarron 6y agoYou should check out Mapdeck [0]. It's R bindings to deck.gl, a JS 2D/3D geo-visualization package that I've been contributing to. As of version 8.1, there's a TerrainLayer [1] to render an interactive map with a 3D terrain mesh. [0]: https://github.com/SymbolixAU/mapdeck https://github.com/SymbolixAU/mapdeck [1]: https://deck.gl/#/documentation/deckgl-api-reference/layers/terrain-layer https://deck.gl/#/documentation/deckgl-api-reference/layers/...
- amrrs 6y agoA self plug. I'd once put together a ppt that's cherry picked 'can R do this kind of examples' https://speakerdeck.com/amrrs/r-in-the-real-world https://speakerdeck.com/amrrs/r-in-the-real-world
- hughes 6y agoHere 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" ;)
- burger_moon 6y agoIs 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 https://www.vricon.com
- tylermw 6y agoIt 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
- burger_moon 6y agoOk thanks for the explanation! I read through the tutorial and it looks like a fun project to get started in. One thing also for readers is that https://dwtkns.com/srtm30m https://dwtkns.com/srtm30m requires an account with https://urs.earthdata.nasa.gov https://urs.earthdata.nasa.gov to download tiles.
- tylermw 6y agoGood to know, thanks! I'll add a note mentioning the need for an account.
- MR4D 6y agoHas 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!
- tylermw 6y agoThanks! For your question, check out Open Drone Map, which is an open source toolkit for doing just that: https://www.opendronemap.org https://www.opendronemap.org I also provide instructions in my (free and open source!) masterclass on how to take LIDAR data from cities and build 3D surface models that includes buildings: Github Course Materials: https://github.com/tylermorganwall/MusaMasterclass https://github.com/tylermorganwall/MusaMasterclass
- ladberg 6y agoMost "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.
- rantwasp 6y agothis 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?
- watertrash 6y agoIs anyone else getting a mandatory login page when trying using the SRTM tile downloader?