🌍 Create 3d-printable STLs from satellite elevation data 🌏
Project description
mapa 🌍
mapa
let's you create 3d-printable STL files from satellite
elevation data (using DEM data).
Under the hood mapa
uses:
- numpy and numba to crunch large amounts of data in little time
- ALOS DEM satellite data (max resolution of 30m) provided by Planetary Computer
Installation
pip install mapa
Usage
mapa
provides the following approaches for creating STL files:
1. Using the mapa
interactive map
The easiest way is using the mapa
cli. Simply type
mapa
A jupyter notebook will be started with an interactive map. Follow the described steps by executing the cells to create a 3d model of whatever place you like.
Choose bounding box | Create STL file |
---|---|
Slice STL file | 3D print |
---|---|
2. Using the dem2stl cli
The dem2stl
cli lets you create a 3d-printable STL file based on your tiff file. You can run a demo computation to get
a feeling of how the output STL will look like:
dem2stl --demo
If you have your tiff file ready, you may run something like
dem2stl --input your_file.tiff --output output.stl --model-size 200 --z-offset 3.0 --z-scale 1.5
The full list of options and their intention can be found with dem2stl --help
:
Usage: dem2stl [OPTIONS]
🌍 Convert DEM data into STL files 🌏
Options:
--input TEXT Path to input TIFF file.
--output TEXT Path to output STL file.
--as-ascii Save output STL as ascii file. If not provided,
output file will be binary.
--model-size INTEGER Desired size of the generated 3d model in
millimeter.
--max-res Whether maximum resolution should be used. Note,
that this flag potentially increases compute
time dramatically. The default behavior (i.e.
max_res=False) should return 3d models with
sufficient resolution, while the output stl file
should be < ~400 MB.
--z-offset FLOAT Offset distance in millimeter to be put below
the 3d model. Defaults to 4.0. Is not influenced
by z-scale.
--z-scale FLOAT Value to be multiplied to the z-axis elevation
data to scale up the height of the model.
Defaults to 1.0.
--demo Converts a demo tiff of Hawaii into a STL file.
--cut-to-format-ratio TEXT Cut the input tiff file to a specified format.
Set to `1` if you want the output model to be
squared. Set to `0.5` if you want one side to be
half the length of the other side. Omit this
flag to keep the input format. This option is
particularly useful when an exact output format
ratio is required for example when planning to
put the 3d printed model into a picture frame.
Using this option will always try to cut the
shorter side of the input tiff.
--version Show the version and exit.
--help Show this message and exit.
3. Using mapa
as python library
In case you are building your own application you can simply use mapa
's functionality within your application by importing the functions of the module.
from mapa import convert_tiff_to_stl
path_to_stl = convert_tiff_to_stl(
input_file: "path/to/your/input_file.tiff",
as_ascii: False,
model_size: 200,
output_file: "path/to/your/output_file.stl",
max_res: False,
z_offset: 3.0,
z_scale: 1.5,
cut_to_format_ratio: None,
)
Algorithm Deep Dive
In case you are curios about the algorithm which turns a GeoTIFF into a STL file, I'd recommend reading the header of
algorithm.py
.
Changelog
See Releases.
Contributing
Contributions, feedback or issues are welcome.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mapa-0.6.0.tar.gz
.
File metadata
- Download URL: mapa-0.6.0.tar.gz
- Upload date:
- Size: 18.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb7d794b95bdfd6671d8e0c8e3672d6d5d3a76d0cc96b89b8503fab8f9f2c8cb |
|
MD5 | 824f34a2dcffd2097ffd544cbb0edfff |
|
BLAKE2b-256 | ef4126976a1d6a570d01e161369b8dddf091904fab44ddefe4eb840fd0c43719 |
File details
Details for the file mapa-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: mapa-0.6.0-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b4d24feec159be9366f6a9dc0cce7721ed128ebaa3e3654478ad3d1aab40adb |
|
MD5 | 1ab95cae05cb81a439b2449bfae7c3c4 |
|
BLAKE2b-256 | 2349ec0fd1392e747a36c03a862afb3f393f653828443f5c20b988d610ac0733 |