본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 그래픽·이미지 · 윈도우즈 유틸

SimSat Studio

0

SimSat Studio는 FahrenheitResearch가 개발한 물리 기반 위성 영상 시뮬레이터로, WRF(Weather Research and Forecasting) 모델 출력으로부터 가시광선 true-color, 적외선, 수증기, GeoColor, Sandwich 및 파생 필드를 생성합니다.

WRF 모델명령줄 인터페이스시각화 도구위성 시뮬레이션파이썬 바인딩

소개

SimSat Studio는 FahrenheitResearch가 개발한 물리 기반 위성 영상 시뮬레이터로, WRF(Weather Research and Forecasting) 모델 출력으로부터 가시광선 true-color, 적외선, 수증기, GeoColor, Sandwich 및 파생 필드를 생성합니다. 동일한 물리 파이프라인을 공유하는 세 가지 사용 방식 — 데스크톱 앱(simsat_studio, Rust/egui/wgpu), 헤드리스 CLI, numpy를 반환하는 Python 바인딩(import simsat) — 을 제공하여 시뮬레이션 결과의 시각화, 배치 처리, 그리고 분석 워크플로 통합을 모두 지원합니다.

상세정보

가시광선 true-color

Hillaire 맑은 하늘 대기(투과율·다중 산란·하늘 시점 LUT), Wrenninge 다중 산란 옥타브를 사용한 볼류메트릭 클라우드 레이마치, 반그림자 클라우드/지형 그림자, 계절별 Blue Marble 지면, Cox-Munk 글린트, 눈 블렌딩, ABI 스타일 디스플레이 변환을 포함하는 전체 물리 파이프라인입니다.

적외선 Band 13 (10.3 μm)

회색-체 플랑크 방출을 복셀 단위로 행진(raymarch)하고 표면 항을 더해 실제 켈빈 밝기 온도로 역변환하는 실제 복사 전달 계산입니다. v0.2.1부터 권장 디스플레이는 CIMSS Style(cimss)이며, 자연 그레이스케일(natural), BD, Rainbow, AVN, Funktop 등 분석 팔레트도 그대로 사용할 수 있습니다.

수증기 6.2 / 6.9 / 7.3 μm (Band 8/9/10)

동일한 열 행진을 수증기를 지배 방출체로 적용한 상·중·하층 수증기 표현입니다.

GeoColor Style (SimSat Day-Night Color)

주간에는 광대역 RGB 가시광선, 야간에는 적외선을 픽셀 단위로 황혼선 너머로 교차 페이드하는 합성입니다. 센서 기반 ABI GeoColor는 아직 아니며, CLI/Python에서는 geocolor 토큰이 그대로 지원됩니다.

Sandwich

한랭운정 위에 색상 강조 적외선을 입힌 가시광선 기반 합성으로, 주간 집중 호우/강한 대류 제품에 사용됩니다.

파생 필드

가강수량(mm), 운정 온도(K), 클라우드 광학 깊이를 원시 f32 지도 등록 배열로 반환합니다.

카메라 모드 및 웹 맵 레이어

우주 시점 정지궤도 뷰(GOES-East/West, Himawari 프리셋, CGMS 고정 그리드 스캔 기하), WRF 도메인 투영에 등록된 정상-다운 지도 뷰(matplotlib/cartopy 축에 바로 배치), 임의 눈/주시/FOV의 자유 원근 카메라를 제공합니다. 클라우드 필드를 투명 EPSG:3857 오버레이로 렌더링하는 웹 맵 레이어 제품도 포함됩니다.

설치 및 기본 사용

Windows에서는 winget으로 설치할 수 있습니다.

  • winget install –id FahrenheitResearch.SimSat –exact

데스크톱 앱 기본 흐름은 다음과 같습니다.

  1. SimSat Studio를 실행하고 wrfout 파일(또는 시퀀스 폴더 전체)을 엽니다.
  2. 스트리밍 수집과 양자화된 볼륨 브릭 생성을 확인합니다(예: 800×800×80 약 2 GB wrfout이 약 15초에 수집되며 재사용을 위해 캐시됩니다).
  3. 위성, 뷰, 제품을 선택하고 Render를 누릅니다.
  4. 애니메이션이 필요하면 시퀀스를 열고 Render sequence를 눌러 스튜디오 내부 타임라인에서 재생/스크럽합니다.

프레임과 루프는 sat-store 디렉터리(그리드 + 시간별 프레임 레이아웃)로도 기록되어 외부 뷰어에서 활용할 수 있습니다.

헤드리스 CLI는 두 개의 명명된 바이너리(cargo build –release –bins)를 제공하며 GPU/GUI 없이 렌더링합니다. simsat-render-frame은 가시광선, GeoColor Style, Sandwich를, simsat-render-ir은 IR, 수증기(wv=6.2|6.9|7.3), 파생 필드(derived=pw|ctt|cod)를 담당하며 모든 인자는 key=value 형식입니다.

Python 바인딩은 numpy 배열과 지리참조(extent + PROJ 문자열 + 위경도 메쉬)를 반환하여 matplotlib/cartopy에 바로 연결됩니다. 핵심 진입점은 render_visible_rgb, render_rgb_reflectance, render_ir, render_water_vapor, render_geocolor, render_sandwich, render_precipitable_water, render_cloud_top_temp, render_cloud_optical_depth이며, render_visible_bands는 동일한 배열을 반환하는 호환 별칭으로 남아 있습니다.

활용 예시

WRF 슈퍼셀 사례를 우주 시점 정지궤도 뷰로 렌더링해 광역 가시광선 영상을 얻고, 동일 사례를 정상-다운 투영으로 렌더링하여 matplotlib/cartopy 축에 직접 배치하는 워크플로를 구성할 수 있습니다. 허리케인 마이클 사례에 대해서는 줌아웃 마진이 적용된 가시광선 영상이 README에서 예시로 공개되어 있습니다. 야간에는 적외선 또는 Day-Night Color 합성으로 시각화를 이어가며, 한랭 운정을 강조하는 Sandwich 제품으로 강한 대류 사례를 별도로 확인할 수 있습니다.

지원 환경 및 요구 사항

Windows용 포터블 실행 파일(x64)이 공식 배포 자산이며, Linux용 manylinux 휠과 Linux x86_64 CLI tarball이 함께 제공됩니다. Linux GUI 빌드에는 libxkbcommon-dev, libwayland-dev, libxcb-render0-dev, libxcb-shape0-dev, libxcb-xfixes0-dev 등 기본 데스크톱 개발 헤더가 필요합니다. 소스에서 빌드할 때는 Rust 1.85+ 안정 툴체인(에디션 2024)이 필요하며, Python 휠은 maturin으로 빌드합니다. 지표 텍스처는 NASA Blue Marble Next Generation 월별 합성(2 km)을 사용하며 런타임에 지연 다운로드되고 SHA-256으로 검증되며, 8 km 합성본이 오프라인 폴백으로 번들됩니다.

제한 및 라이선스

클라우드와 기상 현상은 WRF 도메인 내부에만 존재하며, 줌아웃 마진의 주변 지구는 맑은 하늘 아래의 실제 지구입니다. 지구는 구면(R = 6370 km, WRF 자체 기하)을 사용하므로 표준은 물리적 타당성이지 실 ABI 영상과의 픽셀 정합이 아닙니다. SimSat Day-Night Color는 GeoColor 스타일이며 야간은 IR 합성만 사용하고 도시 조명 레이어는 포함하지 않습니다. IR과 수증기 밴드는 회색 밴드 평균 흡수 계수를 사용해 코드에 문서화되어 있으며, 라인 바이 라인 복사 전달이 아닙니다. 기본 렌더 경로는 CPU(rayon 병렬, 800×800 합성 기준 데스크톱 CPU에서 약 1초)이며 명시적인 디스플레이 전용 GPU 클라우드 프리뷰가 정지궤도 및 정상-다운 가시광선 프레임에 사용할 수 있습니다. 라이선스는 사용자가 선택할 수 있는 MIT 또는 Apache License 2.0의 듀얼 라이선스입니다. 의존성 전체의 제3자 라이선스 고지는 THIRD-PARTY-NOTICES.txt에 포함되어 있습니다.

화면으로 보는 주요 기능

구름 시각화

구름 시각화

어두운 배경 위에 흰색과 회색으로 표현된 구름의 3D 시각화가 보입니다. 구름은 흐릿하고 퍼져 있는 형태이며, 왼쪽 상단에서 빛이 비치는 듯한 효과가 있습니다.

구름 시각화

구름 시각화

어두운 배경 위에 흰색과 회색으로 표현된 구름의 3D 시각화가 보입니다. 구름은 흐릿하고 퍼져 있는 형태이며, 왼쪽 상단에서 빛이 비치는 듯한 효과가 있습니다.

온도 또는 농도 시각화

온도 또는 농도 시각화

바다와 육지가 보이며, 육지 위에 노란색과 주황색으로 강한 신호가 나타나 있습니다. 바다 부분은 파란색과 보라색으로 표현되어 있으며, 신호의 강도에 따라 색상이 변화합니다.

온도 또는 농도 시각화

온도 또는 농도 시각화

노란색과 주황색으로 강한 신호가 나타나 있으며, 그 주변은 보라색과 자주색으로 변화하고 있습니다. 신호의 중심부는 파란색으로 표현되어 있습니다.

시스템 요구사항

- 운영체제: Windows 10/11(winget 배포), Linux 및 macOS 엔진 빌드 지원(README의 빌드 및 CI 기준)
- 아키텍처: x86_64
- 런타임: Windows용 포터블 실행 파일, Linux/macOS용 헤드리스 CLI 바이너리, Python 바인딩용 CPython 3.8 ABI 호환 휠
- 소스 빌드 시 Rust 1.85+ 안정 툴체인(에디션 2024), Linux GUI/다이얼로그 개발 헤더 필요
- WRF 출력 파일(wrfout) 또는 HRRR wrfnat GRIB2 데이터 등 시뮬레이션 대상 입력 데이터
- Windows 배포본은 서명되어 있지 않아 Microsoft Defender SmartScreen에서 게시자 알 수 없음 경고가 표시될 수 있음