천문팀에게서 dataset을 전달받았다.
이 dataset을 hugging face에 올려 사용할 예정이다.
TNG50에서 py-sphviewer로 생성해낸 이미지

- SubHaloID: 은하 ID
- Snapshot: 시점
- Filename: 이미지 경로
- Phase: 라벨
SubHaloID
Snapshot
Filename
Phase
각각의 snapshot 기준으로 이전 snapshot 10번 이내에 merger가 있었으면 post merger, 이후 10번 이내에 merger가 있을 예정이면 pre merger, 전후 10번 내에 없으면 non merger로 라벨링함


# 1. 필요한 라이브러리 설치 및 로그인
!pip install datasets huggingface_hub pandas --quiet
from huggingface_hub import notebook_login
notebook_login()
# 2. Google Drive 마운트
from google.colab import drive
drive.mount('/content/drive')
# 3. 경로 설정 및 압축 해제
import os
import zipfile
import pandas as pd
# 경로 설정
drive_path = "/content/drive/MyDrive/subhalo_catalogue_data"
zip_path = os.path.join(drive_path, "rawImages.zip")
csv_path = os.path.join(drive_path, "subhalo_catalogue.csv")
extract_dir = "raw_images"
# 압축 해제
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_dir) # 이미지들이 raw_images/ 하위에 저장됨
# CSV 불러오기
df = pd.read_csv(csv_path, sep=",")
# 이미지 경로 붙이기
df["image"] = df["Filename"].apply(lambda x: os.path.join("raw_images", "images", x))
# 필요한 열만 선택
df = df[["SubHaloID", "Snapshot", "Phase", "image"]]
# 4. Hugging Face Dataset 객체 생성
from datasets import Dataset, Features, Value, Image
features = Features({
"SubHaloID": Value("int32"),
"Snapshot": Value("int32"),
"Phase": Value("int32"),
"image": Image()
})
dataset = Dataset.from_pandas(df, features=features)
# 5. Hugging Face에 업로드
dataset_name = "GalaxyMergerRawImage"
dataset.push_to_hub(dataset_name)