← Back to list

다차원 공간데이터의 3D 시각화

Grib2 포맷의 정보를 Cesium에 표현해봤었습니다.

DHL · 2023-06-29 13:27 · 4 claps · 2.2 min read
#grib2 #netcdf #3d-chart #3d #plotly
Open on Medium ↗

다차원 공간데이터의 3D 시각화

Grib2 포맷의 정보를 Cesium에 표현해봤었습니다.

[embed]netcdf 다차원 정보를 Cesium에서 3차원 시각화하기 개요thlee33.medium.com

그런데, 사실은 json으로 변환했을 때 한 Level당 40MB 정도되니 Cesium에서 매우 힘들어 해서, sampling으로 양을 줄여서 띄웠습니다.

원 데이터를 일반적인 차트 시각화 패키지로는 가능할지, 3D로 표현이 될지 테스트해봤습니다.

우선, Grib2에서 읽은 데이터를 Matplotlib에서 시각화해봤습니다. 확실히 새수면에 가까운 곳과 높은 곳의 차이가 확실하게 보이네요.

Level별 온도

Level별 온도

이 데이터를 Cesium과 동일한 포맷의 Json으로 저장했습니다. (이번에는 샘플링을 하지 않고)

먼저, Matplotlib의 3D scatter plot을 이용해서 저층부 한 층만 시각화해봅니다. 데이터가 커지니 오래 걸리네요…제 장비에서 대략 6~7초 정도 걸립니다.

Matplotlib의 3D scatter plot 시각화 결과

Matplotlib의 3D scatter plot 시각화 결과

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

Plotly를 이용한 3D 시각화

Plotly를 이용한 3D 시각화

Matplotlib과 동일하게 scatter plot으로 표현하고, 투명도를 주어서 아래 층을 투과해서 볼 수 있습니다.

Plotly 3D Scatter Map을 확대해서 볼 때의 모습

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