Find Travel Points in ArcGIS Pro (+Python)



ArcGIS์—์„œ ์ด๋™ ๊ฐ€๋Šฅ ์ง€์  ์กฐํšŒํ•˜๊ธฐ

"์–ด๋–ค ์ถœ๋ฐœ์ ์œผ๋กœ๋ถ€ํ„ฐ ์ผ์ • ๊ฑฐ๋ฆฌ ๋˜๋Š” ์ผ์ • ์‹œ๊ฐ„ ์ด๋‚ด์— ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ์ง€์ ์„ ์ฐพ๊ธฐ"๋Š” ๊ธฐ๋ณธ์ ์ธ GIS ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” ArcGIS์—์„œ ์ด ๊ณผ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ๊ณผ์ œ ํ•ด๊ฒฐ์˜ ๊ธฐ๋ณธ์ ์ธ ์ˆœ์„œ๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค:
ย ย  (1) data setting
ย ย  (2) network dataset ์ƒ์„ฑ
ย ย  (3) service area analysis
ย ย  (4) spatial join analysis

Fig2. Sequence of Solution

๊ฐ ์ˆœ์„œ๋ฅผ ๊ฐ„๋žตํžˆ ์งš์–ด๋ณด๊ณ  ๊ฐ‘์‹œ๋‹ค. ๋จผ์ € (1) ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ฃ . ์ผ๋‹จ ์ถœ๋ฐœ์ ๊ณผ ๋„๋‹ฌ์  ํ›„๋ณด๋“ค์˜ ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GIS ๋ฐ์ดํ„ฐ๊ฐ€ ํฌ๊ฒŒ Point, Line, Polygon์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, Point ํ˜•ํƒœ์˜ ์žฅ์†Œ ๋ชฉ๋ก์ด ์žˆ์–ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์žฅ์†Œ๋“ค ์‚ฌ์ด์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” Line ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰ Point ํ˜•ํƒœ์˜ ์žฅ์†Œ ๋ฐ์ดํ„ฐ์™€ Line๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐ์ดํ„ฐ๋“ค์€ ๋ณธ๊ฒฉ์ ์ธ ๋ถ„์„์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์ผ์ •ํ•œ ๊ฐ€๊ณต์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ Line ๋ฐ์ดํ„ฐ๋ฅผ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๊ฐ€๊ณตํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ArcGIS์—์„œ๋Š” ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ (2)"network dataset"์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. network dataset์„ ๋งŒ๋“ค๋ฉด ArcGIS๊ฐ€ ์ œ๊ณตํ•˜๋Š” network analysis ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ์ดํ›„ ๋ถ„์„ ๊ณผ์ •์—๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต ๋‹ˆ๋‹ค.

network dataset๊นŒ์ง€ ์ƒ์„ฑํ•˜๋ฉด (3) Service Area ๋ถ„์„์˜ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. Service Area Analysis๋Š” ArcGIS๊ฐ€ ์ง€์›ํ•˜๋Š” Network Analysis ํˆด์˜ ํ•˜๋‚˜๋กœ, ๊ฐ ์ง€์ ์œผ๋กœ๋ถ€ํ„ฐ ์ผ์ • ๊ฑฐ๋ฆฌ ๋ฐ ์‹œ๊ฐ„ ๋™์•ˆ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "service area"๋ผ๋Š” ์ด๋ฆ„์ด ์ง๊ด€์ ์ด์ฃ ? ์˜ˆ์ปจ๋Œ€ ์•ˆํ…Œ๋‚˜ ๊ธฐ์ง€๊ตญ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์‹ ํ˜ธ๊ฐ€ ์„œ๋น„์Šค ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ์ฐพ๊ฑฐ๋‚˜, ํ”ผ์ž์ง‘์œผ๋กœํ„ฐ ์ผ์ • ์‹œ๊ฐ„ ์ด๋‚ด์— ๋ฐฐ๋‹ฌ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ์ฐพ๋Š” ๋ฐ ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ผ์ •ํ•œ ๊ฑฐ๋ฆฌ ๋ฐ ์‹œ๊ฐ„ ๋™์•ˆ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ "์ง€์ "์„ ์ฐพ๋Š” ๊ฒƒ์ธ๋ฐ์š”, "์ง€์ "์„ ์ฐพ๊ธฐ ์ „์— ๋จผ์ € ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ "์˜์—ญ"์„ ๋ฝ‘์•„๋‚ด๊ธฐ ์œ„ํ•ด Service Area ๋ถ„์„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ (4) Spatial Join Analysis์ž…๋‹ˆ๋‹ค. ์ด ์—ญ์‹œ ArcGIS๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ถ„์„ ํˆด์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๋‘ GIS ๋ฐ์ดํ„ฐ์˜ ๊ณต๊ฐ„์  ์ค‘์ฒฉ ์˜์—ญ์„ ๋ฝ‘์•„์ฃผ๋Š”๋ฐ์š”, ๋งŒ์ผ ๋‘ Polygon ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค๋ฉด ๋‘ Polygon ์‚ฌ์ด์˜ ์ค‘์ฒฉ๋œ ์ƒˆ๋กœ์šด Polygon์ด ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋˜๊ณ , Point ๋ฐ์ดํ„ฐ์™€ Polygon ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค๋ฉด Polygon ์˜์—ญ์— ์†ํ•˜๋Š” Point๋งŒ ์ถ”๋ ค์„œ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” (3)์—์„œ ๊ตฌํ•œ Service Area์˜ Polygon ๋ฐ์ดํ„ฐ์™€, ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ์ง€์ ๋“ค์˜ Point ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ Sptial Join Analysis๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋กœ ์ผ์ • ๊ฑฐ๋ฆฌ ๋ฐ ์‹œ๊ฐ„ ๋™์•ˆ ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ์ง€์ ๋“ค์ด ๋˜๊ฒ ์ง€์š”!

์ด์ œ ArcGIS๋ฅผ ๋ณด๋ฉด์„œ ๊ฐ ์ˆœ์„œ๋ฅผ ์ง์ ‘ ๋ฐŸ์•„๋ด…์‹œ๋‹ค! ๋งˆ์ง€๋ง‰์—๋Š” ArcGIS native Python ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. data setting

๋จผ์ € Point ํ˜•ํƒœ์˜ ์žฅ์†Œ ๋ฐ์ดํ„ฐ์™€ Line ํ˜•ํƒœ์˜ ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๋Š” ์„œ์šธ์‹œ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๊ณ , ์žฅ์†Œ ๋ฐ์ดํ„ฐ๋Š” ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „์—, ์ €๋Š” ArcGIS ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— travel์ด๋ผ๋Š” dataset์„ ๋จผ์ € ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ฐ ๋ฐ์ดํ„ฐ๋Š” ์ด travel dataset ๋ฐ‘์— importํ•ด์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (Fig8. ์ฐธ์กฐ)

์„œ์šธ์‹œ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋Š” ์ •๋ถ€์—์„œ ๋งŒ๋“  "Z_KAIS_TL_SPRD_MANAGE" ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. (์™œ์ธ์ง€ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋Š” ๊ตญํ† ๊ตํ†ต๋ถ€ ์‚ฌ์ดํŠธ(๋“ค)์— ์˜ฌ๋ผ์™”๋‹ค๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค๊ฐ€๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค... ๋งํฌ๊ฐ€ ๊ณ„์† ๋ฐ”๋€Œ์–ด์„œ, ์ธํ„ฐ๋„ท์—์„œ "Z_KAIS_TL_SPRD_MANAGE"๋กœ ๊ฒ€์ƒ‰ํ•ด์„œ ์ฐพ์•„๋ณด๋Š” ํŽธ์ด ๋‚ซ์Šต๋‹ˆ๋‹ค.) ์ด ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋Š” seoul_raods๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋Ÿฌ์™”์Šต๋‹ˆ๋‹ค.

์ด์ œ seoul_raods๋ฅผ ๋ฐ”๋กœ network dataset์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ๋ ๊นŒ์š”? ๋ณ€ํ™˜ ์ž์ฒด๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ถ”๊ฐ€์  ๊ฐ€๊ณต ์—†์ด ๋ฐ”๋กœ network dataset์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฒŒ ๋˜๋ฉด ์‹ค์งˆ์ ์ธ ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ๋Š” 'edge'์™€ 'node'๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ 'node'๋“ค์„ ์—ฌ๋Ÿฌ 'edge'๋“ค์ด ์—ฐ๊ฒฐํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋„คํŠธ์›Œํฌ ์ž…๋‹ˆ๋‹ค. ๋„๋กœ๋ง๊ณผ ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ๋„คํŠธ์›Œํฌ๋กœ ํŒŒ์•…ํ•œ๋‹ค๋Š” ๊ฒƒ์€, ๋„๋กœ๋“ค์˜ ๊ต์ฐจ์ (junction)์„ node๋กœ, ๊ทธ๋ฆฌ๊ณ  ๋„๋กœ๋“ค์„ edge๋กœ ํŒŒ์•…ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ต์ฐจ์ ์˜ ์ •๋ณด๊ฐ€ ์ œ๋Œ€๋กœ ์ฃผ์–ด์ ธ์•ผ ์ œ๋Œ€๋กœ ๋œ ๊ฒฝ๋กœ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ Line๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๋ฐ์ดํ„ฐ ์†์˜ ๊ฐ Line์ด ์‹ค์ œ ๋„๋กœ์˜ ๊ต์ฐจ์ ๋งˆ๋‹ค ๋ถ„์ ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ตณ์ด ์ถ”๊ฐ€ ๊ฐ€๊ณต์„ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ArcGIS์™€ ๊ฐ™์€ GIS ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์•Œ์•„์„œ ๊ฐ Line์˜ ๋์ ์„ ๊ต์ฐจ์ ์œผ๋กœ ํŒŒ์•…ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์† Line๋“ค์ด ์‹ค์ œ ๊ต์ฐจ์ ๋งˆ๋‹ค ๋ถ„์ ˆ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, ์ง์ ‘ ๋ถ„์ ˆ์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ์šธ์‹œ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ๊ทธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์„œ์šธ์‹œ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ ์† Line๋“ค์€ ์‹ค์ œ ๊ต์ฐจ์ ๋งˆ๋‹ค ๋ถ„์ ˆ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ๊ทธ๋Œ€๋กœ network dataset์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‹ค์ œ ๊ต์ฐจ์ ์„ ํ†ตํ•œ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


Fig3. Lines are not segmented

์œ„ ๊ทธ๋ฆผ์€ seoul_roads๋ฅผ ํ”„๋กœ์ ํŠธ์˜ map ์œ„์— ํ‘œ์‹œํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ๋ž€์ƒ‰ ์„ ์ด ๊ฐ ๋„๋กœ์ธ๋ฐ, ํŠน๋ณ„ํžˆ ๊ฐ€์šด๋ฐ ์‹ญ์ž๋กœ ๊ต์ฐจํ•˜๋Š” ๋‘ ๋„๋กœ๋งŒ ๋ˆˆ์— ๋„๊ฒŒ ์ƒ‰์ƒ์„ ๋‹ฌ๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋กœ ๋ฐฉํ–ฅ์˜ ์ดˆ๋ก์ƒ‰ ๋„๋กœ์™€ ์„ธ๋กœ๋กœ ๋ป—์€ ์ฃผํ™ฉ์ƒ‰ ๋„๋กœ๊ฐ€ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ Line Object๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒํƒœ๋กœ๋Š” ๋‘˜์˜ ๊ต์ฐจ์ ์ด ์žกํžˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๊ต์ฐจ์ ์—์„œ์˜ ์‹ค์ œ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๊ฐ€ ๋ˆ„๋ฝ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Fig4. Edit>Planarize

Fig5. Planarize Settings

ArcGIS์˜ Planarize๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด Line๋“ค ์‚ฌ์ด์˜ ๊ต์ฐจ์ ์„ ๋”ฐ๋ผ ๊ฐ Line์„ ๋” ์ž‘์€ Line๋“ค๋กœ ๋ถ„์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Edit ๋ฉ”๋‰ด์—์„œ Planarize๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋œจ๋Š” Pane์—์„œ, seoul_roads์˜ line object๋“ค์„ ์„ ํƒํ•œ ํ›„, Cluster Tolerance๋ฅผ ๋Œ€๊ฐ• 0.0001m ์ •๋„ ์ฃผ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ชจ๋“  line์„ ์„ ํƒํ•  ๊ฒฝ์šฐ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฝค ๊ธธ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๊ณ ์ž ํ•˜๋Š” ์ง€์—ญ์˜ line๋งŒ ์„ ํƒํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

Planarize ์‹คํ–‰ ํ›„ ๋‹ค์‹œ ๋งต์—์„œ ์œ„ ๊ต์ฐจ๋กœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‹ค์ œ ๊ต์ฐจ์ ์„ ๋”ฐ๋ผ Line์ด ์ž˜ ๋ถ„์ ˆ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ƒ‰์ƒ์€ ์ง์ ‘ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.) ์ด ์ƒํƒœ์—์„œ network dataset์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ๊ต์ฐจ์ ์—์„œ์˜ ์ขŒํšŒ์ „ ์šฐํšŒ์ „๋„ ๋ชจ๋‘ ์ด๋™ ๊ฒฝ๋กœ๋กœ ์ œ๋Œ€๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.


Fig6. Lines are segmented

์ด์–ด์„œ Point ํ˜•ํƒœ์˜ ์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ์คฌ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ์—๋Š” hot_places๋ผ๋Š” ์ด๋ฆ„์„ ๋ถ™์ด๊ฒ ์Šต๋‹ˆ๋‹ค. hot_places์˜ field๋กœ NAME๋„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Fig7.

์—ฌ๊ธฐ๊นŒ์ง€ ์ž‘์—…ํ•˜๊ณ  ๋‚˜๋ฉด Catalog Pane์—์„œ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค:


Fig8. Catalog Pane

2. network dataset

๋‹ค์Œ์œผ๋กœ seoul_roads๋กœ๋ถ€ํ„ฐ network dataset์„ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค. ๋จผ์ € network dataset์„ ์ƒ์„ฑํ•  dataset์„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กญ๊ฒŒ dataset์„ ๋งŒ๋“ค์–ด ์•ž์„œ ์ž‘์—…ํ•œ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค๋“ค์„ ์˜ฎ๊ฒจ์ค˜๋„ ๋˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ์ž‘์—…ํ•œ travel dataset์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Fig9. Analysis>Tools>Create Network Dataset

๋ฆฌ๋ณธ ํŒจ๋„์˜ Analysis ๋ฉ”๋‰ด์—์„œ Tools๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ์— Geoprocessing Pane์ด ๋œน๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Create Network Dataset์„ ๊ฒ€์ƒ‰ํ•ด ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ Create Network Dataset Pane์˜ ์„ค์ •๊ฐ’์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • Target Feature Dataset: travel dataset (์–ด๋–ค dataset์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ์ง€ ์„ค์ •ํ•˜๋Š” ํ•ญ๋ชฉ)
  • Network Dataset Name: travel_nd (๋งŒ๋“ค์–ด์งˆ network dataset์˜ ์ด๋ฆ„. ์›ํ•˜๋Š” ์ด๋ฆ„ ์‚ฌ์šฉ)
  • Source Feature Classes: seoul_roads (๋งŒ์ผ ๋‹ค๋ฅธ ๊ฒฝ๋กœ ๋ฐ์ดํ„ฐ๋„ ๊ฐ™์ด ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋จ)
  • Elavation Model: (๊ณ ๋„(z์ถ•) ์ขŒํ‘œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ์—ฌ๊ธฐ์„  ์‚ฌ์šฉ ์•ˆ ํ•จ)

์ด์ œ Run์„ ๋ˆŒ๋Ÿฌ ์‹คํ–‰์‹œํ‚ค๋ฉด travel_nd๋ผ๋Š” ์ด๋ฆ„์˜ ์ƒˆ๋กœ์šด network dataset์ด travel dataset ๋ฐ‘์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.


Fig10. Create Network Dataset Settings

๊ทธ๋Ÿฐ๋ฐ travel_nd๋Š” Catalog Pane์—์„œ๋„ ์ƒ์„ฑ๋˜๊ณ , Contents Pane(์™ผ์ชฝ ํŒจ๋„)์—๋„ ์ƒ์„ฑ๋˜๋Š”๋ฐ์š”, ์ถ”๊ฐ€ ๊ฐ€๊ณต์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Contents Pane์—์„œ๋Š” ์ผ๋‹จ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

์ด์ œ Catalog Pane์—์„œ trave_nd๋ฅผ ์šฐํด๋ฆญ ํ•˜๊ณ  property๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ์—ด๋ฆฌ๋Š”๋ฐ์š”, ์—ฌ๊ธฐ์„œ network dataset์˜ ์†์„ฑ์„ ์„ค์ •ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Fig11. Network Dataset Properties

General ํ•ญ๋ชฉ์€ ๋„˜๊ธฐ๊ณ , Source Settings์— ๋“ค์–ด๊ฐ€๋ด…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ๋ฒˆ์งธ Sources ํŒจ๋„์„ ๋ณด๋ฉด "Edges"์™€ "Junctions" ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ "Edges"๋กœ๋Š” seoul_roads๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๊ณ , Juntions๋Š” ArcGIS๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์ค€ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Sources Settings์—๋Š” Vertical Connectivity ํŒจ๋„๋„ ์žˆ๋Š”๋ฐ์š”, ์ด๊ฑด 3์ฐจ์› z์ถ• ์ขŒํ‘œ ์ •๋ณด๋„ ์žˆ์„ ๋•Œ์˜ ์—ฐ๊ฒฐ ๋ฐฉ์‹์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์—ฌ๊ธฐ์„œ๋Š” ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์–ด์„œ Travel Attributes ํ•ญ๋ชฉ์œผ๋กœ ๋“ค์–ด๊ฐ€ ๋ด…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Costs ํŒจ๋„์— ๊ฐ€๋ฉด ๋‹ค์–‘ํ•œ ์ด๋™ ๋น„์šฉ ์‚ฐ์ • ๋ฐฉ์‹์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Restrictions์™€ Descriptors ํŒจ๋„์—์„œ๋Š” ์ฐจ๋Ÿ‰ ์ถœ์ž… ๋ถˆ๊ฐ€๋‚˜ ๋†’์ด ์ œํ•œ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ๋กœ์ƒ์˜ ์ œํ•œ๊ณผ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋ชจ๋‘ ๋„˜์–ด๊ฐ€๊ณ  ์ฒซ๋ฒˆ์งธ Travel Modes ํŒจ๋„๋กœ ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

Fig12. Travel Modes

Travel Modes์—์„œ๋Š” ๊ฑท๊ธฐ, ๋‹ฌ๋ฆฌ๊ธฐ, ์ฐจ๋Ÿ‰ ๋“ฑ ๋‹ค์–‘ํ•œ Travel Modes๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. travel mode๊ฐ€ ์žˆ์–ด์•ผ ์ดํ›„ Service Area ๋ถ„์„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์•„๋ฌด๋Ÿฐ ๋ชจ๋“œ๋„ ๋งŒ๋“ค์–ด์ ธ ์žˆ์ง€ ์•Š์€๋ฐ์š”, ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ walking ๋ชจ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (Fig12. ์ฐธ์กฐ)

์†์„ฑ ์„ค์ •์„ ๋งˆ์ณค์œผ๋ฉด ์ด์ œ network dataset์„ buildํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ Catalog Pane์—์„œ travel_nd๋ฅผ ์šฐํด๋ฆญ ํ›„ build (network)๋ฅผ ์„ ํƒํ•ด Run์„ ์‹คํ–‰ํ•˜๋ฉด network dataset์ด build๋˜๊ณ  Contents panel์—๋„ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

3. service area analysis

์ด์ œ network dataset์„ ์ด์šฉํ•ด Service area ๋ถ„์„์„ ์‹คํ–‰ํ•ด ๋ด…์‹œ๋‹ค. ๋จผ์ € ๋ฆฌ๋ณธ์˜ Anaylsis>Network analysis๋ฅผ ํด๋ฆญํ•˜๊ณ  "Network Data Source"๋กœ ๋ฐฉ๊ธˆ ๋งŒ๋“  network dataset์ธ travel_nd๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

Fig13.

๋‹ค์‹œ ์•„๊นŒ์˜ Network analysis๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋œจ๋Š” ์—ฌ๋Ÿฌ ํˆด ์ค‘ Service Area๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. Service Area๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ travel_nd๋ฅผ source๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜์–ด Contents Pane์—๋„ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง ์‹ค์ œ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฑด ์—†์Šต๋‹ˆ๋‹ค. ์•„์ง Service Area ๋ถ„์„์ด ์‹คํ–‰๋œ ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค.

์ด์ œ ๋ฆฌ๋ณธ ์˜์—ญ์„ ๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ Service Area Layer ํŒจ๋„์ด ์ถ”๊ฐ€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์–ด์„œ Service Area Layer ํŒจ๋„์—์„œ Import Facilities๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋œจ๋Š” ์ฐฝ์—์„œ, Input Locations์— hot_places๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  Apply ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค. hot_places๋ฅผ service area์˜ ๊ธฐ์ค€ ์ง€์ ๋“ค๋กœ ์‚ผ๊ฒ ๋‹ค๋Š” ์„ค์ •์„ ํ•ด์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Fig14. Service area settings

๋‹ค์‹œ Service Area Layer ํŒจ๋„๋Ÿฌ ์™€์„œ, Cutoffs ์„ค์ •์—์„œ ๊ฑฐ๋ฆฌ ๋ฐ ์‹œ๊ฐ„ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” network dataset์˜ ์†์„ฑ์„ ์„ค์ •ํ•˜๋ฉด์„œ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ travel mode๋งŒ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ๋„ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ cutoff๋งŒ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 100, 500, 1000 meter๋กœ ๊ฐ’์„ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ 0~100, 100~500, ๊ทธ๋ฆฌ๊ณ  500~1000m ๋ฒ”์œ„์˜ service area๋ฅผ ๋ณด๊ฒ ๋‹ค๋Š” ์–˜๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด์ œ Run์„ ํด๋ฆญํ•ด์ฃผ๋ฉด, ๊ทธ๋™์•ˆ ์„ค์ •ํ•œ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ํ•œ service arear์˜ "์˜์—ญ"๋“ค์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋Š” Catalog Pane์˜ Serive area layer ๋ฐ‘์˜ Polygons ํ•ญ๋ชฉ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด ๋‚˜์ค‘์—๋„ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด๋ผ๋ฉด, feature class๋กœ exportํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Service Area/Polygons์˜ Attributes table์„ ์—ด์–ด์„œ ์ง€๋„์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Fig15. Service areas

์ด service area ํ…Œ์ด๋ธ”์˜ FacilityID ํ•„๋“œ๋Š” hot_places์˜ ๊ฐ Point์˜ OBJECTID๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  FromBreak๊ณผ ToBreak ํ•„๋“œ๋Š” ๋ฐฉ๊ธˆ ์„ค์ •ํ•œ cutoff ๋ฒ„ํผ์˜ ํ•˜ํ•œ/์ƒํ•œ์„ ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰ ์œ„ ๊ทธ๋ฆผ์—์„œ ์ฒซ๋ฒˆ์งธ ์—ด์€ OBJECTID=10 ์ด์—ˆ๋˜ hot_place์ธ ๋‚จ๋Œ€๋ฌธ์œผ๋กœ๋ถ€ํ„ฐ 500~1000m ์‚ฌ์ด์— ์ด๋™ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„, ๋‘๋ฒˆ์งธ ์—ด์€ 100~500m ์‚ฌ์ด์— ์ด๋™ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์ด๋™ ๊ฑฐ๋ฆฌ๋Š” ๋‹น์—ฐํžˆ travel_nd network dataset๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

4. spatial join analysis

๋งˆ์ง€๋ง‰์œผ๋กœ spatial join analysis๋ฅผ ์ด์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๊ตฌํ•œ Service Area/Polygons์™€ hot_places ์‚ฌ์ด์˜ Spatial Join ๋ถ„์„์„ ์‹ค์‹œํ•˜๋ฉด, ์–ด๋–ค Service area ๋‚ด๋ถ€์— ์žˆ๋Š” hot place์˜ ๋ชฉ๋ก์„ ์ถ”๋ ค๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์ด ๊ณง ํ•œ ์ง€์ ์œผ๋กœ๋ถ€ํ„ฐ ์ผ์ • ๊ฑฐ๋ฆฌ/์‹œ๊ฐ„ ๋‚ด ๋„๋‹ฌ ๊ฐ€๋Šฅํ•œ ์ง€์ ์˜ ๋ชฉ๋ก์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋ณธ์˜ Analysis ํŒจ๋„์—์„œ Spatial Join์„ ํด๋ฆญํ•œ ํ›„, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. (Fig16. ์ฐธ์กฐ)

  • Target Features -> Service Area/Polygons
  • Join Features -> hot_places
  • Output Feature Class -> JoinResult (์ƒˆ๋กœ ๋งŒ๋“ค์–ด์งˆ join ๋ฐ์ดํ„ฐ์˜ ์ด๋ฆ„. ์›ํ•˜๋Š” ์ด๋ฆ„ ์‚ฌ์šฉ)
  • Join Operation -> Join one to many (ํ•˜๋‚˜์˜ ์˜์—ญ์ด ์—ฌ๋Ÿฌ place์™€ ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ)
  • Match Option -> Contains (Intersect๊ฐ€ ์•„๋‹˜!)

Fig16. Spatial Join Settings

์•„์šธ๋Ÿฌ Fields์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋  ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Target Features์˜ ํ•„๋“œ๋Š” ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ๋กœ ๊ณ„์Šน๋˜์ง€๋งŒ, Join Features๋Š” ๊ทธ๋Ÿฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค. Add Fields๋ฅผ ํด๋ฆญํ•ด์„œ, hot_places์˜ NAME ํ•„๋“œ๋Š” JOIN_NAME์œผ๋กœ, OBJECTID ํ•„๋“œ๋Š” JOIN_OBJECTID๋กœ ์ถ”๊ฐ€๋˜๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด JoinResult๋ผ๋Š” ์ด๋ฆ„์˜ Spatial Join ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋Š” ์ถœ๋ฐœ์ ๊ณผ ์ด๋™ ๊ฑฐ๋ฆฌ์˜ ๋ฒ„ํผ ๋ฒ”์œ„ ๋ฐ ๋„์ฐฉ ๊ฐ€๋Šฅ ์ง€์ ์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

JoinResult์˜ Attributes Table์„ ์‚ดํŽด๋ด…์‹œ๋‹ค (Fig17.). FacilityID๊ฐ€ ํ•„๋“œ๊ฐ€ ์ถœ๋ฐœ์ ์ด๊ณ , FromBreak๊ณผ ToBreak์€ service area buffer์˜ ํ•˜ํ•œ/์ƒํ•œ๊ฐ’์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. JOIN_OBJECTID๋Š” ๊ฐ ์ถœ๋ฐœ์ ์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฐ service area ์•ˆ์— ์žˆ๋Š” ์ง€์ , ์ฆ‰ ๋„๋‹ฌ ๊ฐ€๋Šฅ ์ง€์ ์˜ ID์ž…๋‹ˆ๋‹ค.

ํ•œ๋ฒˆ ํ”ผ๋งˆ๊ณจ๋กœ๋ถ€ํ„ฐ ์ผ์ • ๊ฑฐ๋ฆฌ ๋‚ด ๋„๋‹ฌ ๊ฐ€๋Šฅ ์ง€์ ๋“ค์„ ๋ด…์‹œ๋‹ค. ํ”ผ๋งˆ๊ณจ์˜ OBJECTID๋Š” 6์ด๋ฏ€๋กœ FacilityID=6์„ ๋ด…๋ฉด ๋ฉ๋‹ˆ๋‹ค. FromBreak=500, ToBreak=1000์„ ๋ณด๋ฉด, ํ”ผ๋งˆ๊ณจ์—์„œ 500~1000m ์‚ฌ์ด์— ์žˆ๋Š” JOIN ์ง€์ ๋“ค์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์„ธ์ข…๋Œ€์™•์ƒ, ๊ด‘ํ™”๋ฌธ, ์šฐ์ •์ด๊ตญ, ์„œ์šธ๊ด‘์žฅ์ด ๋œจ๋„ค์š”. ์ด ์ง€์ ๋“ค์€ ์„œ์šธ์‹œ ๋„๋กœ๋ง์„ ์ด์šฉํ•ด ํ”ผ๋งˆ๊ณจ๋กœ๋ถ€ํ„ฐ 500~1000m ๋‚ด์— ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Fig17. Result

Using Python

์š”์ฆ˜ ์›ฌ๋งŒํ•œ ๋ถ„์„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” Python API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜๋‹ค๋ฅธ GIS ์†Œํ”„ํŠธ์›จ์–ด์ธ QGIS๋„ Python API๋ฅผ ์ œ๊ณตํ•˜์ฃ .

ArcGIS Pro๋Š” ๋ฐ์Šคํฌํ†ฑ์— ์„ค์น˜๋œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ ์ž์ฒด์ ์œผ๋กœ Python ๊ตฌ๋™ ํ™˜๊ฒฝ์„ ๊ฐ€๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ArcGIS Pro๋ฅผ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ๋ณ„๋„์˜ Python ๋จธ์‹ ์ด ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ํ”„๋กœ๊ทธ๋žจ ์šฉ๋Ÿ‰๋„ ๊ฝค ๋ฌด๊ฒ์ฃ .

ArcGIS native Python์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ArcGIS Pro๋ฅผ ์—ด๊ณ  ๊ทธ ์•ˆ์—์„œ Python Notebook ๋ฐ window๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Analysis ํŒจ๋„์—์„œ Python ๋ฒ„ํŠผ์„ ์„ ํƒํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Python Notebook์€ jupyter notebook์„ ArcGIS Pro ์•ˆ์—์„œ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ณ , Python window ๋ฐฉ์‹์€ ArcGIS Pro ์•ˆ์—์„œ ํ„ฐ๋ฏธ๋„ ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. notebook์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์˜ directory์— ์ €์žฅํ•˜๋ฉด์„œ ์ž‘์—… ๋‚ด์—ญ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์€ ๋ณ„๋„์˜ Python ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ ํ›„, ์ด๋ฅผ ArcGIS์˜ Python ๋จธ์‹ ์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. window์˜ ๊ฒฝ์šฐ ๋Œ€์ฒด๋กœ c:\Progra~1\ArcGIS\Pro\bin\Python\scripts\propy.bat ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ python ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ์ •๋ฆฌํ•œ ๋‚ด์šฉ๋“ค์„ ArcGIS์˜ Python API๋ฅผ ํ†ตํ•ด์„œ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ๋กœ ์ž๋™ํ™”๋œ ์ž‘์—…์ด ํ•„์š”ํ•œ ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด, ๊ฐ์ข… Analysis tool์„ GUI ํ™˜๊ฒฝ์ด ์•„๋‹Œ ํŒŒ์ด์ฌ ๊ตฌ๋ฌธ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์˜คํžˆ๋ ค ๋ฒˆ๊ฑฐ๋Ÿฌ์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ณ ์ž ํ•˜๋Š” "์ด๋™ ๊ฑฐ๋ฆฌ"์˜ ๊ฐ’๋“ค์ด ์‚ฌ์ „์— ์ •ํ•ด์ ธ ์žˆ๋‹ค๋ฉด, spatial join analysis๊นŒ์ง€๋Š” GUI ํ™˜๊ฒฝ์—์„œ ์ˆ˜ํ–‰ํ•œ ํ›„, python์œผ๋กœ join ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์กฐํšŒํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋งŒ ์งœ๋„ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค: https://github.com/AcheuleanGraph/tech.blob/blob/main/gis/arcgis-travel/pys/travel.py

์‚ฌ์‹ค, ์ด ๊ฒฝ์šฐ ๊ตณ์ด ArcGIS์˜ Python API๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์ด, ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ table ํ˜•์‹์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•œ ํ›„, ๊ทธ ํŒŒ์ผ์„ ์ฝ์–ด์˜ค๋Š” python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์งœ๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ArcGIS์˜ Python ๋จธ์‹ ์„ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†๊ฒ ์ฃ .

ArcGIS ๋‚ด์—์„œ python notebook์„ ์ด์šฉํ•ด ์•ž์„  ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…ธํŠธ๋ถ ์˜ˆ์‹œ๋„ ์˜ฌ๋ ค๋‘์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/AcheuleanGraph/tech.blob/blob/main/gis/arcgis-travel/pys/travel.ipynb

Wrap Up

์–ผํ• ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ธ๋ฐ๋„ GIS๋Š” ์‹ ๊ฒฝ ์“ธ ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ๋ฐ์ดํ„ฐ ์„ธํŒ… ๋‹จ๊ณ„๋ถ€ํ„ฐ ๋งŒ๋งŒ์น˜ ์•Š์ฃ . ์•ž์„œ ์‚ฌ์šฉํ•œ ์„œ์šธ์‹œ ๋„๋กœ๋ง ๋ฐ์ดํ„ฐ๋งŒ ํ•ด๋„ ์› ๋ฐ์ดํ„ฐ์— ๊ต์ฐจ์ ์ด ๋ฐ˜์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๋ชจ๋ฅด๊ณ  ๋ฐ”๋กœ ๋„คํŠธ์›Œํฌ ๋ถ„์„์— ๋“ค์–ด๊ฐ€๋ฉด ์ƒ๋‹นํžˆ ๋‹นํ™ฉ์Šค๋Ÿฌ์šด ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค ์•ž์„œ ์ˆ˜ํ–‰ํ•œ ๋ฐฉ์‹์€ ๊ณ ๋„(z์ถ•) ์ •๋ณด๋ฅผ ๋ฌด์‹œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹ค์ œ ๊ต์ฐจ์ ์„ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ฐ˜์˜ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ€๋„๋กœ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ์š”. ๐Ÿ˜…

GIS ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์€ ์–ธ์ œ๋‚˜ ๊นŒ๋‹ค๋กญ๊ณ ๋„ ํฅ๋ฏธ๋กœ์šด ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. QGIS์™€ ArcGIS, ๊ทธ๋ฆฌ๊ณ  ์ด๋“ค์˜ Python API๋ฅผ ๋ณด๋ฉด ์„œ๋กœ ๋‹ฎ์•˜์œผ๋ฉด์„œ๋„ ๋‹ค๋ฅด๋‹ค๋Š” ์ธ์ƒ์ด ๋“œ๋Š”๋ฐ์š”, ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ œ๋„์  ๋™ํ˜•ํ™”์™€ ์ฐจ๋ณ„ํ™”๋ฅผ ์—ฐ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํฅ๋ฏธ๋กœ์šด ์‚ฌ๋ก€ ์•„๋‹๊นŒ์š”. ๐Ÿ”ฌ