kshitijrajsharma/pangaea2-vhr
Mirror Notice This repository contains unofficial mirrors of the following datasets, provided solely for hash-based versioning and reproducibility of research results. This is NOT the official source. PureForest: https://huggingface.co/datasets/IGNF/PureForest mpv4ger: https://huggingface.co/datasets/recursix/geo-bench-1.0 xView2: https://xview2.org/dataset SpaceNet 3 Roads: https://spacenet.ai/spacenet-roads-dataset/ (S3: s3://spacenet-dataset/spacenet/SN3_roads/) Legal… See the full description on the dataset page: https://huggingface.co/datasets/kshitijrajsharma/pangaea2-vhr.
Mirror Notice
This repository contains unofficial mirrors of the following datasets, provided solely for hash-based versioning and reproducibility of research results. This is NOT the official source.
- PureForest: https://huggingface.co/datasets/IGNF/PureForest
- mpv4ger: https://huggingface.co/datasets/recursix/geo-bench-1.0
- xView2: https://xview2.org/dataset
- SpaceNet 3 Roads: https://spacenet.ai/spacenet-roads-dataset/ (S3:
s3://spacenet-dataset/spacenet/SN3_roads/)
Legal Notice:
- These mirrors are for research reproducibility only. Users must review and comply with the license and restrictions at the official sources.
- No redistribution or commercial use is intended or permitted via this repository.
- If you are a copyright holder and wish for this mirror to be removed, please contact the repository owner.
Dataset Overview
Each dataset is published as a separate config in one Hugging Face repo with sharded Parquet files.
Parquet schemas
PureForest (load_dataset("...", "pureforest"))
The 13 classes follow the official PureForest dictionary: four oak species map to Deciduous oak (0), two pine variants to Black pine (7), two fir species to Fir (9), etc. The species column preserves the original folder identity for users who need finer-grained labels. A name lookup table is shipped at pureforest/label_map.json.
xView2 (load_dataset("...", "xview2"))
mpv4ger (load_dataset("...", "mpv4ger"))
SN3 Roads (load_dataset("kshitijrajsharma/pangaea2-vhr", "sn3_roads"))
No normalisation is applied. Pixel values are the original SpaceNet uint16 PS-RGB. Per-AOI and global statistics (mean, std, min, max, p1, p2, p98, p99 per band) computed from the train split are published at data/sn3_roads/stats.json for use at training time.
Decode example:
import io, rasterio, numpy as np, json
from datasets import load_dataset
ds = load_dataset("kshitijrajsharma/pangaea2-vhr", "sn3_roads", split="train")
sample = ds[0]
with rasterio.open(io.BytesIO(sample["image_tif"])) as src:
array = src.read() # (3, 1300, 1300) uint16, band order R, G, B
transform = src.transform # full geotransform preserved
# Normalise with published per-AOI stats
stats = json.load(open("stats.json"))["per_aoi"][sample["aoi"]]
mean = np.array(stats["mean"]).reshape(3, 1, 1)
std = np.array(stats["std"]).reshape(3, 1, 1)
normalised = (array.astype(np.float32) - mean) / stdRoad mask is built by buffering each LineString by ~2 m (ROAD_BUFFER_DEG = 2/111000°) and rasterising, following the official SpaceNet 3 evaluation convention. Test split has no labels (standard SpaceNet challenge format).
Loading
from datasets import load_dataset
pureforest = load_dataset("kshitijrajsharma/pangaea2-vhr", "pureforest", split="train")
xview2 = load_dataset("kshitijrajsharma/pangaea2-vhr", "xview2", split="train")
mpv4ger = load_dataset("kshitijrajsharma/pangaea2-vhr", "mpv4ger", split="train")
sn3_roads = load_dataset("kshitijrajsharma/pangaea2-vhr", "sn3_roads", split="train")Conversion
Convert raw source files to Parquet shards:
just setup
just convert-pureforest
just convert-xview2
just convert-mpv4ger
just convert-sn3roads