라이노 지형 건물 - laino jihyeong geonmul

공지 목록

공지글

글 제목작성일

공지 Moss Tower Proposal

2020. 10. 29.

(3)

공지 작업 시간 단축하는 라이노 꿀팁 15가지

2020. 7. 8.

아키맹2020. 5. 2. 18:50

오늘은 라이노 6.0(한글 버전)을 이용한 건물생성을 해보도록 하겠습니다.

방법 소개에 앞서 이 방법은 높은 정확도를 갖춘 작업이 아님을 알려드립니다.

단, 학생 수준에서 설계 프로젝트를 진행하기 위한 지형 제작 프로세스로는 적합하기 때문에 소개해보고자 합니다.

본 방법은 라이노 6.0에 기본으로 첨부된 그래스호퍼를 이용합니다.

STEP 1. 준비단계

가장 먼저 필요한 세팅은 다음과 같습니다.

1. shp 파일 다운로드 (국가공간정보포털 오픈마켓)

2. 'ghshp' grassshopper plug-in설치

3. Qgis 설치

1) 건물 정보가 포함된 지적도 GIS파일 다운로드 (.shp)- 가입필수

food4rhino 사이트

Ghshp beta 다운로드 후 압축해제하면 나오는 .ghuser 파일

.ghuser 파일을 넣을 경로 : File > Special Folders > User Objects folder

!!! 플러그인 설치방법 (제일 중요) !!!

1. GhPython 설치 (필요 없음) : 라이노 6부터는 프로그램에 내장되어 있음.

2. //github.com/GeospatialPython/pyshp/archive/1.2.12.zip

에서 shapefile.py 다운로드 후에 아래 경로에 복사C:\Users\%USERNAME%\AppData\Roaming\McNeel\Rhinoceros\6.0\scripts

3. 그래스호퍼 실행 후 '.ghuser file'을 위 사진의 User Object Folder에 넣어주면 됩니다.

또는 라이노에서 명령어 grasshopperfolders 후 명령창에서 UserObjects 선택

shp파일에서 원하는 영역 선택 및 좌표계 설정을 위해 QGIS를 설치해 줍니다.

STEP 2. 좌표계 변환 및 영역 선택

지난 게시물에 연세대학교 부지를 만드는 방법에 관해 다뤘는데요.

건물을 그 위에 위치하는 것이 오늘의 목표입니다.

먼저 QGIS를 실행해서 shp 파일을 불러옵니다.

<중요!>

오픈마켓에서 제공하는 shp파일은 WGS84 좌표체계로 제작되었습니다.

그래서 기존 국가공간정보포털의 GRS80 좌표계의 수치지형도로 만든 메쉬에 드랍하면 위치가 맞지 않습니다.

그래서 WGS84 좌표계를 GRS80 좌표계로 바꾸어주겠습니다.

다음 페이지에서 한국에서 쓰는 좌표계를 참고할 수 있습니다.

//www.osgeo.kr/17

사이트의 위치에 따라 대상좌표계를 바꿔야하는데 위 사이트에서 정리해놓은 좌표계를 QGIS에서 찾으면 됩니다.

<현좌표>

*WGS84 경위도: GPS가 사용하는 좌표계

EPSG:4326 (Korean 1995)

+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

<대상 좌표>

*중부원점(GRS80)-falseY:60000

EPSG:5186

+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs

레이어 트리에서 우클릭 - 좌표계 설정 - 레이어 좌표계 설정을 해줍니다.

EPSG:5186 투영좌표계를 검색하여 좌표계를 변환합니다.

이후,

shp 포맷과 좌표계를 설정하고 대강의 파일이름을 지정한 후, '.shp' 확장명으로 저장해줍니다.

STEP 3. 건물 생성

저장한 shp 파일을 그래스호퍼 상에서 불러올 겁니다.

이때, 사전에 설치해둔 ghshp 플러그인을 활용합니다.

file path 우클릭 후 Select one existing file 을 눌러 shp 파일을 선택해줍니다.

노란 박스는 panel인데 데이터 목록을 확인하기 위해 붙였습니다.

상단 메뉴의 Extra-Hitera- Shape File Import 아이콘을 불러옵니다.

위 패널을 보면

3번 열에 GRND_FLR는 지상층 수이며,

9번 열에 HEIGHT는 건물의 높이입니다.

국가공간정보포털에는 상당 수의 지상층 수 정보와 건물 높이 정보가 누락되어 있습니다. 그래서 어떤 데이터 필드가 덜 누락되어 있는지 확인하는 게 필요합니다.

만약 GRND_FLR (지상층 수)를 이용한다면 값에 X 4m를 하고,

HEIGHT (건물 높이)를 이용한다면 그 값을 그대로 쓰면 되겠죠.

방법1) 9번 열 HEIGHT (건물 높이) 이용

방법2) 3번 열 GRND_FLR (지상층 수) 이용

위의 두 방법을 비교할 때 지상층 수를 활용하는 게 정보가 더 많이 나와있다는 것을 알 수 있습니다.

실제로 Vworld에 접속하여도 건물의 층수나 높이 정보가 상당 수 누락되어 있는 경우가 많습니다.

이런 부분은 안타깝지만 제가 찾아낸 해결방법은 아직 없습니다.

해결하신 능력자 분이 있다면 댓글로 정보 공유 부탁드립니다!

정말 필요한 건물일 경우 로드뷰 등을 활용하여 건물을 생성하는 방법 밖에 없겠네요.

위 그래스호퍼 gh 파일은 컴포넌트에 미숙하신 분들을 위해 첨부해두겠습니다.

STEP 4. 지형에 건물 드롭

완성된 수 천 개의 돌출을 지형 위에 드롭 시킬 겁니다.

지난 번에 만들어 둔 안산 부지의 delauray mesh 를 가져오겠습니다.

사실 STEP 2에서 좌표계 변환을 해주었음에도 위치에 오차가 존재합니다.

이 부분은 아직 제가 해결하지 못한 부분이기에 좀 더 공부해서 더 나은 방법을 찾아보겠습니다.

일단 기존 dxf의 가져온 건물의 위치로 move 해주었습니다.

그래스호퍼 로직을 활용해서 건물들 일부를 드롭 시킨 모습입니다.

돌출의 밑면에서 추출한 vertices를 메쉬에 project한 후 벡터값을 sort하여 그 차이(-)만큼 move하는 로직입니다.

건물이 많을수록 연산이 오래 걸려서 적당히 끊어서 작업하시는 것을 추천드립니다.

학생 신분이기 때문에 아직 부족한 점이 많습니다. 피드백은 언제든지 환영입니다.

프로젝트에 도움이 되셨다면 공감과 댓글로의 피드백을 부탁드립니다.

다음 게시물에서는 도로 생성 방법에 관해 올려보도록 하겠습니다.

Toplist

최신 우편물

태그