OneAstronomy/galaxyzoo10_legacysurvey
Galaxy Zoo 10 × Legacy Survey DR9 Dataset Summary This dataset contains 7,864 galaxies from the Galaxy Zoo 10 morphology catalogue, cross-matched with Legacy Survey DR9 imaging. Each sample includes: A 4-channel 160×160 pixel image (Legacy Survey grz + WISE W1), stored as raw calibrated flux (nanomaggies). Normalization is left to the training pipeline. 10-class morphology label (gz10_label, gz10_class_name) Photometric scalars: flux densities (g, r, i, z, W1… See the full description on the dataset page: https://huggingface.co/datasets/OneAstronomy/galaxyzoo10_legacysurvey.
Galaxy Zoo 10 × Legacy Survey DR9
Dataset Summary
This dataset contains 7,864 galaxies from the Galaxy Zoo 10 morphology catalogue, cross-matched with Legacy Survey DR9 imaging.
Each sample includes:
- A 4-channel 160×160 pixel image (Legacy Survey grz + WISE W1), stored as raw calibrated flux (nanomaggies). Normalization is left to the training pipeline.
- 10-class morphology label (
gz10_label,gz10_class_name) - Photometric scalars: flux densities (g, r, i, z, W1, W2), Sérsic index, shape parameters
Data Source
Dataset Structure
Splits
Class Distribution (training set)
Features
Image shape and channel metadata is in image_shape.json.
Loading the Dataset
from datasets import load_dataset
import numpy as np
BASE = "/mnt/si0009256k6u/ckdata/aiready/galaxyzoo/hf_dataset"
# specify cache_dir to avoid rebuilding Arrow cache on every run
ds = load_dataset("parquet", data_dir=BASE, cache_dir="/tmp/gz10_cache")
sample = ds["train"][0]
print(sample["gz10_class_name"]) # e.g. "Round Smooth Galaxies"
print(sample["gz10_label"]) # 0–9
# Reconstruct raw image array (4, 160, 160)
img = np.array(sample["image_pixels_raw"], dtype=np.float32).reshape(4, 160, 160)
# Example: per-channel asinh stretch in the training pipeline
img_norm = np.arcsinh(img / 0.1) / np.arcsinh(1.0 / 0.1) # softscalePyTorch DataLoader
import torch
shape = (4, 160, 160)
ds["train"].set_format("torch", columns=["image_pixels_raw", "gz10_label"])
loader = torch.utils.data.DataLoader(ds["train"], batch_size=32, shuffle=True)
for batch in loader:
x = batch["image_pixels_norm"].reshape(-1, *shape) # (32, 4, 160, 160)
y = batch["gz10_label"] # (32,)
breakQuality Filtering
The ETL pipeline applied:
- Valid label — gz10_label ∈ [0, 9]
- Finite scalar features — all FLUX/SHAPE/SERSIC fields must be finite
- Non-zero image — reject all-zero image arrays
Citation
@article{leung2019galaxyzoo,
title={Predicting Multidimensional Stellar Chemical Abundances from Photometry},
author={Leung, Henry W. and Bovy, Jo},
year={2019}
}
@article{dey2019legacysurvey,
title={Overview of the DESI Legacy Imaging Surveys},
author={Dey, Arjun and others},
journal={The Astronomical Journal},
year={2019}
}