Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
440
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
350
Django Through The Years
andrewgodwin
0
260
Writing Maintainable Software At Scale
andrewgodwin
0
470
A Newcomer's Guide To Airflow's Architecture
andrewgodwin
0
380
Async, Python, and the Future
andrewgodwin
2
700
How To Break Django: With Async
andrewgodwin
1
760
Taking Django's ORM Async
andrewgodwin
0
750
The Long Road To Asynchrony
andrewgodwin
0
710
The Scientist & The Engineer
andrewgodwin
1
800
Other Decks in Programming
See All in Programming
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
720
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.3k
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
470
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
190
開発に寄りそう自動テストの実現
goyoki
2
1k
認証・認可の基本を学ぼう後編
kouyuume
0
240
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
740
マスタデータ問題、マイクロサービスでどう解くか
kts
0
100
WebRTC と Rust と8K 60fps
tnoho
2
2k
AIコーディングエージェント(Manus)
kondai24
0
190
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
180
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Context Engineering - Making Every Token Count
addyosmani
9
520
Facilitating Awesome Meetings
lara
57
6.7k
Agile that works and the tools we love
rasmusluckow
331
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Optimizing for Happiness
mojombo
379
70k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
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