All Projects → furrysalamander → mini-map-maker

furrysalamander / mini-map-maker

Licence: MIT license
A tool for automatically generating 3D printable STLs from freely available lidar scan data.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to mini-map-maker

ilong
轻量级跨平台瓦片地图库,大部分算法来自QMapControl,就想练手的。。。因为需要轻量级跨平台的,所以只能先用SQLite数据库。。。
Stars: ✭ 24 (-52.94%)
Mutual labels:  maps, gis, qgis
DEMto3D-QGIS-Plugin
Extensión GIS para impresión 3D de MDE
Stars: ✭ 33 (-35.29%)
Mutual labels:  gis, qgis, 3d-printing
Go Staticmaps
A go (golang) library and command line tool to render static map images using OpenStreetMap tiles.
Stars: ✭ 246 (+382.35%)
Mutual labels:  maps, gis
Mapstore2
Modern webmapping with OpenLayers, Leaflet and React
Stars: ✭ 251 (+392.16%)
Mutual labels:  maps, gis
QWAT
TEKSI Water module (project QWAT) - QGIS project
Stars: ✭ 52 (+1.96%)
Mutual labels:  gis, qgis
Azuremapscodesamples
A set of code samples for the Azure Maps web control.
Stars: ✭ 167 (+227.45%)
Mutual labels:  maps, gis
R Gis Tutorial
Spatial data in R: using R as a GIS
Stars: ✭ 191 (+274.51%)
Mutual labels:  maps, gis
QGIS-visualization-workshop
QGIS visualization workshop materials.
Stars: ✭ 46 (-9.8%)
Mutual labels:  gis, qgis
Gwt Ol
GWT wrapper for OpenLayers 3+ using JSInterop
Stars: ✭ 57 (+11.76%)
Mutual labels:  maps, gis
rlayers
React Component Library for OpenLayers
Stars: ✭ 98 (+92.16%)
Mutual labels:  maps, gis
gis-for-geoscientists
Repository for "GIS for Geoscientists" workshop series. This repo contains data, protocols, outputs, lectures, and resources used the workshop. Course taught by Nicholas Barber. Available for future booking upon request! Contact me ([email protected]) for a quote.
Stars: ✭ 19 (-62.75%)
Mutual labels:  gis, qgis
deck.gl-time-series-widget
A React Time Slider implementation for DECK.GL - (non)temporal data - by CPU filtering ⌛
Stars: ✭ 19 (-62.75%)
Mutual labels:  maps, gis
Mapfish Print
A component of MapFish for printing templated cartographic maps. This module is the Java serverside module. For support post to the mailing list: https://groups.google.com/forum/#!forum/mapfish-print-users
Stars: ✭ 159 (+211.76%)
Mutual labels:  maps, gis
Aerialbot
A simple yet highly configurable bot that tweets geotagged aerial imagery of a random location in the world.
Stars: ✭ 157 (+207.84%)
Mutual labels:  maps, gis
Openglobus
JavaScript 3d maps and geospatial data visualization engine library.
Stars: ✭ 199 (+290.2%)
Mutual labels:  maps, gis
Storymap
A JavaScript library for digital storytelling with web maps.
Stars: ✭ 107 (+109.8%)
Mutual labels:  maps, gis
Tinfour
Delaunay and Constrained Delaunay Triangulations in Java, providing high-performance utilities for modeling surfaces with support for Lidar LAS files, Digital Elevation Models (DEM), finite element analysis, path planning, natural neighbor interpolation, and other applications of Triangulated Irregular Networks (TIN)
Stars: ✭ 119 (+133.33%)
Mutual labels:  gis, lidar
lopocs
Migrated to: https://gitlab.com/Oslandia/lopocs
Stars: ✭ 78 (+52.94%)
Mutual labels:  gis, lidar
Mapboard
A framework for data-rich web mapping 🌎📊✨
Stars: ✭ 29 (-43.14%)
Mutual labels:  maps, gis
Geotiff.io
Static website for viewing and analyzing GeoTIFF's in the browser
Stars: ✭ 53 (+3.92%)
Mutual labels:  maps, gis

mini-map-maker

A tool for automatically generating 3D printable STLs from freely available lidar scan data.

Screenshots

image image

Tutorial

To use this script, go to the USGS LidarExplorer

https://prd-tnm.s3.amazonaws.com/LidarExplorer/index.html#/

Select an area, and then click the "Download list" button under "Lidar within AOI" image This should give you a file called downloadlist.txt. Simply place this text file in the same directory as the script, and then run the script (convert.py, or convert.exe if you don't want to deal with Python). By default, mini-map-maker will generate an STL file for each tile in the lidar data. However, there are quite a few command line arguments that you can use to customize the output.

>convert.py -h

usage: convert [-h] [--input INPUT] [--reduce REDUCE] [--vscale VSCALE]
               [--base BASE] [--merge] [--no_stl] [--cleanup] [--filter FILTER] [--prj]

A utility for automatically generating 3D printable STLs from USGS lidar scans.

optional arguments:
  -h, --help            show this help message and exit
  
  --input INPUT, -i INPUT
                        The name of the file containing the URLs of all of the lidar scan data.
                        
  --reduce REDUCE, -r REDUCE
                        A decimal value that will decrease the output file size as it increases.
                        The default value is 1.0
                        
  --vscale VSCALE, -v VSCALE
                        A decimal value that will make artificially make things taller as it increases.
                        The default value is 1.0
                        
  --base BASE, -b BASE  A decimal value that sets the base height of the model. The default value is 0.0
  
  --merge, -m           Using this flag will merge all of the point clouds into one file before converting into a DEM.
  
  --no_stl, -s          Using this flag will disable STL generation.
  
  --cleanup, -c         Using this flag will cause the program to automatically delete the unzipped point cloud files
                        after running.
                        
  --filter FILTER, -f FILTER
                        A percent value (0-100, for the slope of the points being smoothed) that will enable the spike
                        smoothing option. This is good if you have points that are floating way up above the model and
                        causing spikes in your final model.
                        
  --prj, -p             Using this flag will cause the program to automatically download and use lastools to generate
                        projection files for the elevation models. This is important if you want to generate the STLs
                        yourself in QGIS, but it means you'll have to be mindful of lastool's license limitations.
                        More info on lastool's website (https://rapidlasso.com/lastools/).
                        
  --external_files, -e  Using this flag will grab las/laz files from the LAS directory instead of downloading them from
                        an input list.

Additional Examples:

External Files

Let's say you already have some las files you want to use. Simply place them into a directory called LAS, and then call the script from from the directory containing the LAS folder, using the --external_files flag, like so:

convert.py --external_files

This trick also works with LAZ files, or even a mix of LAZ and LAS files.

Adding a Base and Manipulating the Output

For one project, I had a LAZ file that had a section of ocean. This caused the output to be super flat, and too thin in several places to print well. Additionally, it was a pretty high resolution file, so the output STL was very large, and I wasn't happy with the vertical scale of the file either. So, after placing my LAZ file into a directory labeled LAS like mentioned above, I used the following command:

convert.py --external_files --filter 50 --base 10 --vscale 0.5 --reduce 2

Filtering got rid of some weird spikes in the output STL, and the base command increased the total height of the output. The vscale command made the model shorter, and reduce significantly decreased the size of the STL.

Support This Project

Like this project? Feel free to make a donation.

ko-fi

Licensing

With the default options, this program is completely open source, and the output is usable in a commercial environment. This code itself is MIT License, as is r-barnes' DEMto3D library that this program makes use of.

https://github.com/r-barnes/DEMto3D

If you want to use the output in QGIS or another GIS program, and enable .prj file generation, then the sript will automatically download lastools. The .prj files generated are free to use if it's not for commercial purposes. If you plan on using the .prj files for commercial purposes, you will need to purchase a lastools license in accordance with the information on lastool's website:

https://rapidlasso.com/lastools/

Additionally, this script makes use of some public domain utilities from FUSION by the US Forest Service

http://forsys.sefs.uw.edu/FUSION/fusion_overview.html

With the addition of LAZ processing, this project now utilizes LASzip, an LGPL-2.1 tool. It is included as a precompiled binary (laszip-cli.exe), and no modifications have been made.

https://github.com/LASzip/LASzip

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].