Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Terrain, Art, Python and LiDAR
Search
Andrew Godwin
May 03, 2019
Programming
1
410
Terrain, Art, Python and LiDAR
A talk I gave at PyCon US 2019
Andrew Godwin
May 03, 2019
Tweet
Share
More Decks by Andrew Godwin
See All by Andrew Godwin
Reconciling Everything
andrewgodwin
1
270
Django Through The Years
andrewgodwin
0
170
Writing Maintainable Software At Scale
andrewgodwin
0
400
A Newcomer's Guide To Airflow's Architecture
andrewgodwin
0
320
Async, Python, and the Future
andrewgodwin
2
620
How To Break Django: With Async
andrewgodwin
1
680
Taking Django's ORM Async
andrewgodwin
0
680
The Long Road To Asynchrony
andrewgodwin
0
600
The Scientist & The Engineer
andrewgodwin
1
710
Other Decks in Programming
See All in Programming
2025.01.17_Sansan × DMM.swift
riofujimon
3
690
ErdMap: Thinking about a map for Rails applications
makicamel
1
1.3k
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
390
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
3
1.1k
Package Traits
ikesyo
2
230
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
10
1.7k
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
110
rails newと同時に型を書く
aki19035vc
6
760
月刊 競技プログラミングをお仕事に役立てるには
terryu16
2
1.3k
技術を根付かせる / How to make technology take root
kubode
1
110
Writing documentation can be fun with plugin system
okuramasafumi
0
110
チームリードになって変わったこと
isaka1022
0
160
Featured
See All Featured
A Tale of Four Properties
chriscoyier
158
23k
Building Adaptive Systems
keathley
39
2.4k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Automating Front-end Workflow
addyosmani
1367
200k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
We Have a Design System, Now What?
morganepeng
51
7.4k
The Pragmatic Product Professional
lauravandoore
32
6.4k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
KATA
mclloyd
29
14k
Unsuck your backbone
ammeep
669
57k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Transcript
Terrain, Andrew Godwin @andrewgodwin Art, Python & LiDAR
Hi, I’m Andrew Godwin • Django contributor (Migrations/Channels) • Principle
Engineer at • I always need more lasers
None
None
None
None
None
1. Laser-cut profiles
DEM: Digital Elevation Model
None
10 9 5 3 2 9 7 4 3 2
8 7 3 2 4 6 8 5 3 5 4 9 7 4 6 3 8 8 6 5 2 5 4 3 3 10 9 5 3 2 9 7 4 3 2 8 7 3 2 4 6 8 5 3 5 4 9 7 4 6 3 8 8 6 5 2 5 4 3 3
None
None
Loads the DEM as a CSV Picks one in N
rows Draws a contour using svgwrite
None
None
2. 3D-printed cities
None
None
None
None
(1, 3, 4) (6, 5, 11) (3, 7, -2)
POINT CLOUD → DIGITAL ELEVATION MAP (DEM) python-pcl lastools
None
Top surface Fully sealed 3D model (with the tile base)
None
Loads the DEM Clips height (top and bottom) Smooths rough
features Writes out an STL file
(1, 3, 4) (6, 5, 11) (3, 7, -2)
How do you write STL? struct.pack( b"<ffffffffffffH", normal[0], normal[1], normal[2],
x1, y1, z1, x2, y2, z2, x3, y3, z3, 0, )
Should I have used NumPy? Yes. Did I use NumPy?
Err, no.
github.com/andrewgodwin/lidartile
None
None
3. CNC-milled National Parks
None
None
Take the US National DEM Get the outline of the
National Park Use QGIS to cut out a park-only DEM https://viewer.nationalmap.gov https://catalog.data.gov/dataset/national-park-boundariesf0a4c Toolbox > GDAL > Clip By Extent
Irregular shapes!
None
MAP PROJECTIONS
None
Things I Won't Work With Unicode Names Timezones Currencies Networks
Addresses Dioxygen Difluoride
Things I Won't Work With Unicode Names Timezones Currencies Networks
Addresses Dioxygen Difluoride Map Projections
None
4. The Future
More US National Parks I do each one as I
visit it. There are… 59.
Easier Milling 8 hours per piece. Really.
Better STL optimisation Millions of polygons isn't great.
Personal LiDAR Thanks, autonomous vehicles!
github.com/andrewgodwin/lidartile github.com/andrewgodwin/gis_tools
None
Thanks. Andrew Godwin @andrewgodwin aeracode.org