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
look_for_shade
Search
yrarchi
June 18, 2019
Technology
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
look_for_shade
yrarchi
June 18, 2019
More Decks by yrarchi
See All by yrarchi
Notionを活用した学習管理
yrarchi
0
96
「やりたいこと」駆動で学ぼう
yrarchi
0
200
Other Decks in Technology
See All in Technology
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
240
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
システム思考で問題に対処する
yussak
0
230
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
790
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.2k
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.1k
Digitization部 紹介資料
sansan33
PRO
2
7.7k
事業価値と Engineering 2026年度版
recruitengineers
PRO
45
23k
SmartHR Engineering Team Deck
smarthr
1
1.7k
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
13
8.5k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.8k
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
630
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Marketing to machines
jonoalderson
1
5.7k
How STYLIGHT went responsive
nonsquared
100
6.2k
Exploring anti-patterns in Rails
aemeredith
3
460
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
WENDY [Excerpt]
tessaabrams
11
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The Language of Interfaces
destraynor
162
27k
Transcript
look for shade Pythonを用いた日影の計算 PyData.Fukuoka Meetup #4 2019/06/18 yrarchi
今回のテーマ もうすぐ、暑い夏がやってくる! 少しでも、日陰を歩きたい… どの道を通ると 日陰が多いんだろう? 何時に出かけると 日陰が多いんだろう? 道路の何%が日陰になるか、Pythonで計算してみよう!
日影のできかたを決める要素は何か? - 緯度・経度:福岡市 (福岡県庁の緯度経度を 使用) - 日付:夏至(2019/6/22) -
時間:日の出〜日の入まで15分ごと に変えて計算
道路にかかる影の割合を決める要素は何か? - 建物形状・高さ:6.0m * 6.0m * 6.0m - 道路幅員:4.0m
- 道路からの離れ・隣棟間隔:1.0m - 道路の方位角:22.5°ずつ変えて計算
道路にかかる影の割合を決める要素は何か? - 建物形状・高さ:6.0m * 6.0m * 6.0m - 道路幅員:4.0m
- 道路からの離れ・隣棟間隔:1.0m - 道路の方位角:22.5°ずつ変えて計算
計算過程_1 ①モデル建物画像 読込み ②モデル画像回転 ③建物の輪郭を検出 ↓ コーナーの座標を 求める import cv2
model = cv2.imread("img/model.png") … for angle in [angle/10 for angle in range(0, 1800, 225)]: img = rotate_img(angle, model) … contours = find_contours() approx_contours = approximate_contours() … 画像処理を行うライブラリ OpenCVを利用
⑥道路のうち、影と 重なる割合を求める ⑤影の座標を求める 計算過程_2 ④諸条件より太陽の 方位角・高度を出す def calc_coordinate_of_shade(): h =
calc_solar_altitude() A = calc_azimuth() shade_longth = bldg_h_pixel / math.tan(h) shade_x = shade_longth * math.sin(A) * -1 shade_y = shade_longth * math.cos(A) * -1 return shade_x, shade_y … for time in [i / 100 for i in range(500, 2000, 25)]: … shade_x, shade_y = calc_coordinate_of_shade() shade_msk, hull_points = make_shade_mask() road_shade_per = calc_per_of_shade_on_road() …
結果 日の出 日の入り 南中時刻 0° 45° 90°
実際の道路で求めてみる_1 天神駅 福岡県庁 道路の方位角を取得して、経路上の影の割合を出してみる import osmnx as ox import networkx
as nx G = ox.graph_from_point((latitude, longitude), distance=1800, network_type="walk") … origin_node = ox.get_nearest_node(G, origin_point) destination_node = ox.get_nearest_node(G, destination_point) route = nx.shortest_path(G, origin_node, destination_node, weight="length") … G = ox.add_edge_bearings(G) bearings = pd.Series(ox.get_route_edge_attributes(G, route, "bearing")) … OpenStreetMapのデータを利用して街路網の計算を行えるOSMnxを 利用
実際の道路で求めてみる_2 例えば、16時に出かければ 道路の80%超は日陰に なっている (※ 経路上の建物が全て モデル通りならば!)
まとめ 今回できたこと: - モデル建物における道路を占める影の割合 の算出 課題: - 実際の建物の形状・高さを用いた計算 資料: https://github.com/yrarchi/look_for_shade https://yrarchi.net/look_for_shade/