[Python] 이산화된 공간 안에 속하는 좌표 찾기

2022. 5. 19. 23:04분석 Python/구현 및 자료

이전에 했던 작업을 조금 수정하여 다시 올림

 

아래와 같이 어떤 특정 영역을 표현하는 이산화 된 점이 있을 때 이 영역 안에 들어있는 점들을 찾는 방법에 대한 글이다.

coordinate = [(0,0),(2,2),(4,4),(6,2),(6,0),(0,0)]

 

아래 코드를 통하여 선이 지나가는 grid 한 좌표를 탐색한다.

total_grid = []
for idx in range(len(coordinate) - 1):
    start = coordinate[idx]
    end = coordinate[idx + 1]
    discrete_line = list(
        zip(
            *line(
                *start,
                *end,
            )
        )
    )
    for i in discrete_line:
        if i not in total_grid:
            total_grid.append(i)

 

아래 함수를 사용하면 이 영역에 포함되는 좌표들을 찾을 수 있게 된다.

r = (
    pd.DataFrame(coordinate)
    .rename(columns={0: "x coord", 1: "y coord"})
    .groupby("x coord")
    .apply(lambda x: get_coordinate(x))
)
rr = r.values.tolist()
a = []
for i_list in rr:
    for i in i_list[0]:
        if i not in a:
            a.append(i)

 

728x90