다차원 공간데이터의 3D 시각화
Grib2 포맷의 정보를 Cesium에 표현해봤었습니다.
다차원 공간데이터의 3D 시각화
Grib2 포맷의 정보를 Cesium에 표현해봤었습니다.
[embed]netcdf 다차원 정보를 Cesium에서 3차원 시각화하기 개요thlee33.medium.com
그런데, 사실은 json으로 변환했을 때 한 Level당 40MB 정도되니 Cesium에서 매우 힘들어 해서, sampling으로 양을 줄여서 띄웠습니다.
원 데이터를 일반적인 차트 시각화 패키지로는 가능할지, 3D로 표현이 될지 테스트해봤습니다.
우선, Grib2에서 읽은 데이터를 Matplotlib에서 시각화해봤습니다. 확실히 새수면에 가까운 곳과 높은 곳의 차이가 확실하게 보이네요.

Level별 온도
이 데이터를 Cesium과 동일한 포맷의 Json으로 저장했습니다. (이번에는 샘플링을 하지 않고)
먼저, Matplotlib의 3D scatter plot을 이용해서 저층부 한 층만 시각화해봅니다. 데이터가 커지니 오래 걸리네요…제 장비에서 대략 6~7초 정도 걸립니다.

Matplotlib의 3D scatter plot 시각화 결과
Plotly에서는 어떨지 궁금해서 적용해봤습니다. 실행 시각은 큰 차이 안나는 것처럼 보이지만 실제로 뿌려지는 것은 그만큼 느립니다. 그러나, 120MB 데이터가 로딩된 후에는 동적으로 확대/축소/회전해보는 데 많이 느리지 않습니다.

Plotly를 이용한 3D 시각화
Matplotlib과 동일하게 scatter plot으로 표현하고, 투명도를 주어서 아래 층을 투과해서 볼 수 있습니다.

Plotly 3D Scatter Map을 확대해서 볼 때의 모습
저층, 중층, 상층의 기온을 상대적으로 표시했는데, 절대 범위의 컬러 스케일을 적용하면 색상 단계가 달라보일 것이기 때문에 보다 식별이 잘 될 것으로 생각됩니다.
사실 Cesium과 이번 테스트는 ChatGPT의 도움을 많이 받았습니다. 생각하지 못한 부분에서 해결책을 주기 때문에 많은 도움이 되고 있습니다.
메타데이터
- post_id
- 973aa38f613e
- slug
- 다차원-공간데이터의-3d-시각화-973aa38f613e
- url
- https://medium.com/@thlee33/%EB%8B%A4%EC%B0%A8%EC%9B%90-%EA%B3%B5%EA%B0%84%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-3d-%EC%8B%9C%EA%B0%81%ED%99%94-973aa38f613e
- canonical_url
- https://medium.com/@thlee33/%EB%8B%A4%EC%B0%A8%EC%9B%90-%EA%B3%B5%EA%B0%84%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-3d-%EC%8B%9C%EA%B0%81%ED%99%94-973aa38f613e
- author_url
- https://medium.com/@thlee33
- status
- ok
- fetched_at
- 2026-07-25 14:42:11