A complete re-host of the S2-100K dataset used to train SatCLIP (Klemmer et al., 2023).
0
4 commits
1 linked in READMEs
updated Apr 30, 2026
A complete re-host of the S2-100K dataset used to train SatCLIP (Klemmer et al., 2023).
100,000 globally sampled multi-spectral Sentinel-2 L2A image patches (256×256 px, 12 bands, uint16), with longitude/latitude coordinates for each patch.
The original Microsoft-hosted blob (https://satclip.blob.core.windows.net/...) is the canonical source. The only public mirror, davanstrien/satclip, is missing some patches (discussion). This repo is a verified-complete copy: 100,000 / 100,000 patches present, sourced directly from the original Microsoft container.
metadata.parquet # fn, lon, lat, patch_idx, shard (100,000 rows)
index.csv # fn, lon, lat (verbatim from upstream)
data/shard-00000.tar # patches 0..999
data/shard-00001.tar # patches 1000..1999
...
data/shard-00099.tar # patches 99000..99999
satclip.tar # all 100,000 patches in one tar (78 GB) - included as a safety copy
Each shard is a plain (uncompressed) tar containing 1000 patch_<N>.tif files. Sharding the original 78 GB tar makes resumable downloads and partial loads practical; the single satclip.tar is included as well so users can grab everything at once if they prefer.
Each patch_<N>.tif is a GeoTIFF with:
Note: Pillow /
datasets.Imagecannot decode 12-band uint16 GeoTIFFs. Userasterio(ortifffile) to read these files.
import io
import tarfile
import rasterio
from huggingface_hub import hf_hub_download
shard_path = hf_hub_download(
repo_id="kklmmr/s2-100k",
filename="data/shard-00000.tar",
repo_type="dataset",
)
with tarfile.open(shard_path) as tar:
member = tar.getmember("patch_42.tif")
buf = tar.extractfile(member).read()
with rasterio.MemoryFile(buf) as mem, mem.open() as src:
arr = src.read() # shape: (12, 256, 256), dtype uint16
bounds = src.bounds # UTM bbox
crs = src.crs # e.g. EPSG:32610
import pandas as pd
from huggingface_hub import hf_hub_download
meta_path = hf_hub_download(
repo_id="kklmmr/s2-100k",
filename="metadata.parquet",
repo_type="dataset",
)
meta = pd.read_parquet(meta_path)
# columns: fn, lon, lat, patch_idx, shard
from huggingface_hub import snapshot_download
local_dir = snapshot_download(
repo_id="kklmmr/s2-100k",
repo_type="dataset",
local_dir="./s2-100k",
)
https://satclip.blob.core.windows.net/$web/satclip/ (Microsoft Azure Blob Storage).This repository contains only the dataset. The pretrained SatCLIP model checkpoints are available from the original SatCLIP authors.
MIT, matching the upstream SatCLIP project.
@article{klemmer2023satclip,
title={SatCLIP: Global, General-Purpose Location Embeddings with Satellite Imagery},
author={Klemmer, Konstantin and Rolf, Esther and Robinson, Caleb and Mackey, Lester and Ru{\ss}wurm, Marc},
journal={arXiv preprint arXiv:2311.17179},
year={2023}
}
A complete re-host of the S2-100K dataset used to train SatCLIP (Klemmer et al., 2023).
0
4 commits
1 linked in READMEs
updated Apr 30, 2026
A complete re-host of the S2-100K dataset used to train SatCLIP (Klemmer et al., 2023).
100,000 globally sampled multi-spectral Sentinel-2 L2A image patches (256×256 px, 12 bands, uint16), with longitude/latitude coordinates for each patch.
The original Microsoft-hosted blob (https://satclip.blob.core.windows.net/...) is the canonical source. The only public mirror, davanstrien/satclip, is missing some patches (discussion). This repo is a verified-complete copy: 100,000 / 100,000 patches present, sourced directly from the original Microsoft container.
metadata.parquet # fn, lon, lat, patch_idx, shard (100,000 rows)
index.csv # fn, lon, lat (verbatim from upstream)
data/shard-00000.tar # patches 0..999
data/shard-00001.tar # patches 1000..1999
...
data/shard-00099.tar # patches 99000..99999
satclip.tar # all 100,000 patches in one tar (78 GB) - included as a safety copy
Each shard is a plain (uncompressed) tar containing 1000 patch_<N>.tif files. Sharding the original 78 GB tar makes resumable downloads and partial loads practical; the single satclip.tar is included as well so users can grab everything at once if they prefer.
Each patch_<N>.tif is a GeoTIFF with:
Note: Pillow /
datasets.Imagecannot decode 12-band uint16 GeoTIFFs. Userasterio(ortifffile) to read these files.
import io
import tarfile
import rasterio
from huggingface_hub import hf_hub_download
shard_path = hf_hub_download(
repo_id="kklmmr/s2-100k",
filename="data/shard-00000.tar",
repo_type="dataset",
)
with tarfile.open(shard_path) as tar:
member = tar.getmember("patch_42.tif")
buf = tar.extractfile(member).read()
with rasterio.MemoryFile(buf) as mem, mem.open() as src:
arr = src.read() # shape: (12, 256, 256), dtype uint16
bounds = src.bounds # UTM bbox
crs = src.crs # e.g. EPSG:32610
import pandas as pd
from huggingface_hub import hf_hub_download
meta_path = hf_hub_download(
repo_id="kklmmr/s2-100k",
filename="metadata.parquet",
repo_type="dataset",
)
meta = pd.read_parquet(meta_path)
# columns: fn, lon, lat, patch_idx, shard
from huggingface_hub import snapshot_download
local_dir = snapshot_download(
repo_id="kklmmr/s2-100k",
repo_type="dataset",
local_dir="./s2-100k",
)
https://satclip.blob.core.windows.net/$web/satclip/ (Microsoft Azure Blob Storage).This repository contains only the dataset. The pretrained SatCLIP model checkpoints are available from the original SatCLIP authors.
MIT, matching the upstream SatCLIP project.
@article{klemmer2023satclip,
title={SatCLIP: Global, General-Purpose Location Embeddings with Satellite Imagery},
author={Klemmer, Konstantin and Rolf, Esther and Robinson, Caleb and Mackey, Lester and Ru{\ss}wurm, Marc},
journal={arXiv preprint arXiv:2311.17179},
year={2023}
}