pygndc
Geographic Neural Data Cube — a Python SDK for reading and analyzing .gndc compressed geospatial time-series data.
What is GeoNDC?
GeoNDC is a continuous-time, AI-ready representation of Earth observation archives. Unlike traditional Analysis-Ready Data (cloud-corrected raster files) or geospatial foundation model embeddings (abstract feature vectors), GeoNDC preserves the original physical observables — surface reflectance, vegetation indices, biophysical variables — while enabling millisecond-level random-access queries at any (x, y, t) coordinate.
Each archive (MODIS, Sentinel-2, Landsat, HiGLASS, …) is encoded into a single self-contained .gndc file (typically 0.5–2 GB) that runs on a laptop, a server, or directly in a browser via WebGPU. Data providers train the model once and publish the file; users download it and run inference locally — the compressed form is the analysis-ready form. No hosted runtime, no API quota, no vendor lock-in.
Key Capabilities
- Continuous-time reconstruction — query data at any moment, not just original observation times
- Millisecond random access — point time series in ~7 ms, full-frame reconstruction in ~2 s on a consumer GPU
- Analytic gradients — compute spatial/temporal derivatives directly from the neural network
- Compact storage — typically ~100:1 versus Int16 raster baselines, up to ~400:1 versus raw float archives
- Portable Native encoder and decoder — the default CPU/WGPU path needs no PyTorch, Numba, CUDA toolkit, or runtime JIT; WGPU targets Vulkan, DX12, and Metal, while Torch and tiny-cuda-nn remain optional compatibility extras
- Implicit gap-filling — cloud-occluded surfaces are reconstructed from the learned spatiotemporal field
- Multi-sensor support — Sentinel-2, Landsat, MODIS, HiGLASS, and more
Online Viewer & Sample Data
- Web Viewer: Browse
.gndcfiles directly in the browser via WebGPU at geondc.org/viewer — no installation required, GPU-accelerated, runs entirely client-side. - Sample Data: Download
.gndcdatasets from Hugging Face.
Documentation
- TUTORIAL.md — Installation, quick-start, CLI commands, end-to-end usage examples.
- API_Reference.md — Full Python API for
pygndc.open(),GNDCDataset,GNDCReader, analysis functions.
Installation Extras
The default wheel includes the native CPU/WGPU runtime, encoder, GeoTIFF I/O, and core Python API. The desktop viewer is optional:
pip install pygndc[viewer]
License
GeoNDC is proprietary binary software. Decoder operations may be used without
an encoder license; creating or exporting .gndc data requires a valid encoder
license. See LICENSE for the complete terms.
The GeoNDC file-format specification is published separately to support interoperability. Previously released copies remain governed by the license that accompanied those copies.
Citation
@misc{qi2026geondcqueryableneuraldata,
title={GeoNDC: A Queryable Neural Data Cube for Planetary-Scale Earth Observation},
author={Jianbo Qi and Mengyao Li and Baogui Jiang and Yidan Chen and Qiao Wang},
year={2026},
eprint={2603.25037},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.25037},
}
Contact
- Author: Jianbo Qi
- Email: jianboqi@126.com
- Issues: GitHub Issues
Metadata
Release files for pygndc 1.0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pygndc-1.0.12-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| pygndc-1.0.12-cp313-cp313-manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.28+ x86-64 | Details |
| pygndc-1.0.12-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| pygndc-1.0.12-cp312-cp312-manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64 | Details |
| pygndc-1.0.12-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| pygndc-1.0.12-cp311-cp311-manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64 | Details |
| pygndc-1.0.12-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| pygndc-1.0.12-cp310-cp310-manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64 | Details |
Total release size: 146.5 MB
Release files / pygndc-1.0.12-cp313-cp313-win_amd64.whl
| Download URL | pygndc-1.0.12-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
404e8b689e9d9a5398eceabe15c7ac6e740cb6ff735584f9fb74f8c7b4155db5
|
|
BLAKE2b-256 checksum How to use checksums |
f7fe25db317cf1d7245483e25d60c4dc2922b03479c0e095ca00d2750aeb60f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | pygndc-1.0.12-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 30.5 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae541b6cd39063725b2ab9ab4106b193cb327cffeaa6c8719bd50989e4119685
|
|
BLAKE2b-256 checksum How to use checksums |
06a0ed8308aeda570c0f1ef928758871bbba93174827cf08dae1899729925153
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp312-cp312-win_amd64.whl
| Download URL | pygndc-1.0.12-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3a6ca2f341d7aa9f85999ae11d01a617c911c7978e0fda60755b911e82b095c7
|
|
BLAKE2b-256 checksum How to use checksums |
311b5194ad9f58c62218462bb4524fcdfdaecc857cb8d266efd4a70521976660
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | pygndc-1.0.12-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 30.8 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
983f297dbe58d887490f8b0a9f70291f054434eb8841ecb1d627f77dc4f9cfdc
|
|
BLAKE2b-256 checksum How to use checksums |
b55d74d4311087094579f73f2106176db5c9cad6ee3f8ef255b1a0241c74c3aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp311-cp311-win_amd64.whl
| Download URL | pygndc-1.0.12-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 6.2 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
73420683eb0354fb8a7cdb4e9d88a03ee077c8678e2b61e03107a69f1932fe87
|
|
BLAKE2b-256 checksum How to use checksums |
1e9472fd757b007559f833dd0847e015fd2ea8970d511f4720b801afb0710f1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | pygndc-1.0.12-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 30.9 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
82d0ba7c7dd56bf024f235ca9987005635f99314a76271103a4d65bbd420dc5e
|
|
BLAKE2b-256 checksum How to use checksums |
594a8d0523d2eedff300ca653d6e750cc2fb747f8e885813351f1cbed255d134
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp310-cp310-win_amd64.whl
| Download URL | pygndc-1.0.12-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 6.2 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ab62b975f80c76ca6d30e52f6be662e159019caccbb28279064200bf685dd58c
|
|
BLAKE2b-256 checksum How to use checksums |
778dc21812bb944bf9a5caff9f7377ad68003ea2a3aaa0fda4227271090d07a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / pygndc-1.0.12-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | pygndc-1.0.12-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 29.5 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
002c3b53b5ada7586c394fb711d21440a13b2781abd13a2dd08b25272077be95
|
|
BLAKE2b-256 checksum How to use checksums |
b7c72ef9514bca9adbb76b64d0b9c706604cefc85d030fe046b230da85f0fc74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|