일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- osmnx
- 지하철역좌표
- python최단거리
- 파이썬
- docker
- 3d데이터
- 좌표거리
- 그리드분할
- geopandas
- MESH
- STL
- geojson
- 컨테이너
- Python
- GIS
- 3d
- 폴더조사
- 이미지빌드
- 동명이인찾기
- GCN
- 데이터입수
- 도커 레이어
- 도커
- GNN
- 귀여운고래
- 패치분할
- graph
- 알고리즘
- pyvista
- Set
- Today
- Total
이것저것 기록
[python] STL to VTK / VTK to STL 본문
3D 데이터 타입 중 STL과 VTK 타입간 파일 포맷 변경에 대해 포스팅 해보겠습니다.
간단하게 두 포맷의 차이를 설명하자면,
- STL: 3D 데이터의 기하 정보를 담고 있음
- VTK: 기하 정보 뿐만 아니라, 사용자가 원한다면 속성 정보 또한 추가할 수 있음
어쨌든 이 두 포맷간 변환은 pyvista라는 모듈을 사용하여 진행할 수 있다.
0. pyvista 모듈 다운로드
- 다운로드 링크: https://docs.pyvista.org/
PyVista — PyVista 0.32.0 documentation
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK) PyVista is… “VTK for humans”: a high-level API to the Visualization Toolkit (VTK) mesh data structures and filtering methods for spatial datasets 3D plo
docs.pyvista.org
pyvista는 3D 데이터를 다루다보면 저어어엉말 자주 마주치게 되고, 매우 유용하게 사용할 수 있는 라이브러리다.
데이터 다룰 때 유용한 것 뿐만 아니라, 시각화에도 아주 특화되어 있는 라이브러리이다.
1. 코드 설명
import os
import pyvista as pv
def vtk2stl(path, fname):
vtk_f = pv.read(os.path.join(path, fname))
pv.save_meshio(fname[:-4] + '.stl', vtk_f)
print(fname + ' is changed to STL !')
def stl2vtk(path, fname):
stl_f = pv.read(os.path.join(path, fname))
pv.save_meshio(fname[:-4] + '.vtk', stl_f)
print(fname + ' is changed to VTK !')
# stl to vtk
path = os.getcwd()
fname = 'bunny.stl'
stl2vtk(path, fname)
코드는 별 거 없다.
pv.read( )로 vtk, stl 파일 둘 다 불러올 수 있고,
불러온 파일을 기존 suffix를 제거하고, 고대로 pv.save_meshio( )를 사용하여 원하는 포맷으로 저장해주면 된다.
이렇게 두가지 파일 변환 함수를 생성하여 (stl2vtk, vtk2stl) 그때 그때 호출하여 사용하면 편하다.
2. 깃헙 링크
코드와 샘플 데이터를 사용하여 바로 실험할 수 있게 깃헙에 업로드 해두었으니 참고 바람!
https://github.com/henewsuh/convert_stl_vtk
GitHub - henewsuh/convert_stl_vtk: convert between stl and vtk
convert between stl and vtk. Contribute to henewsuh/convert_stl_vtk development by creating an account on GitHub.
github.com
'코린이 > 실무를 위한 코딩 기록' 카테고리의 다른 글
[python/GIS] 세종시 생활권 별 최근린녹지공원까지의 평균거리 구하기 (geopandas, geojson, haversine) (2) | 2021.12.28 |
---|---|
[python] libpng warning: iCCP: known incorrect sRGB profile 문제 해결 (0) | 2021.12.13 |
[python] 3D Mesh (.stl) 데이터 그리드(패치) 분할하기 (2) | 2021.07.01 |
[python] 폴더/하위 폴더의 파일 목록 출력 (0) | 2021.06.04 |
[python, GIS] 서울시 지하철역 노선정보+좌표 데이터 구축하기 (3) | 2021.04.17 |