PostGRES
[PostGRES] Buffer를 이용해서 도로 Segment를 도로 객체로 할당
이언배
2025. 2. 20. 10:25
Space Syntax 중에서 angular segment analysis 를 돌리면,
도로를 자근자근 쪼개서 각 segment로 분리한 뒤,
각 segment끼리의 각도를 중심으로 네트워크 분석을 시행한다.
이거로 끝나면 다행이지만, 문제는
DepthmapX로 돌려 나온 결과물은 좌표도 딱히 없고, 도로 객체랑 매치도 안된다.
그리고 ID column도 사라져있기 때문에,
geometry 로 매칭시켜야 한다.
그리고 도로 geometry 는 linestring이기 때문에,
"딱 맞는다" 또는 "포함관계" 를 보기가 어렵기 때문에,
도로geometry 에 약간의 buffer를 주고,
그 안에 포함되는 segment 의 평균과 합으로 계산해보자는 전략을 취해보자.
CREATE TABLE seoul_ped_spacesyntax AS --새 테이블을 만들어버려야 안전하겠지
(SELECT
road.id,
SUM(asa."T1024_Choice_R1600_metric") AS c1600_sum,
AVG(asa."T1024_Choice_R1600_metric") AS c1600_mean,
SUM(asa."T1024_Integration_R1600_metric") AS i1600_sum,
AVG(asa."T1024_Integration_R1600_metric") AS i1600_mean,
road.geom
FROM
"Seoul_ped_road" road
JOIN
"Seoul_ASA_1600" asa
ON
ST_Within(asa.geom, ST_Buffer(road.geom, 0.5)) --0.5m 의 버퍼를 주고, 다른 geometry 랑 비교해본다.
GROUP BY
road.id
ORDER BY
road.id);
와아 근데 서울시 전체로 돌리니까 44시간 돌렸는데도 결과가 끝이 안난다...
서울 전체 geometry 끼리 비교를 하니 그럴 수도. (40만개 VS 20만개 매칭 수준이다).
728x90