Installation#
pip install easysnowdata
conda install -c conda-forge easysnowdata
# or
mamba install -c conda-forge easysnowdata
pixi add easysnowdata
uv pip install easysnowdata
One install, no extras. Everything in the catalog is
reachable from a plain pip install easysnowdata — there is no
easysnowdata[sar] to remember, and no import that fails because an optional
dependency is missing. The cost is a larger install; the benefit is that a
snippet from these docs runs in anyone’s environment.
Python 3.12 or newer is required. The floor comes from the stack, not from us: current rasterio (1.5, GDAL ≥ 3.8), rioxarray, zarr, numpy, and earthaccess releases have all dropped 3.11.
conda-forge or PyPI?#
Both work. Prefer conda-forge when you can, for two reasons specific to this package:
GDAL drivers. Reading MODIS granules from NSIDC (all six products: MOD10A1, MYD10A1, MOD10A2, MYD10A2, MOD10A1F, and MYD10A1F) needs GDAL’s HDF4 driver, which conda-forge splits into its own
libgdal-hdf4package and which the PyPIrasteriowheels do not carry. Without it the NSIDC route raises a driver error;source="planetary-computer"and every other product are unaffected.PROJ data. The conda-forge build ships a complete PROJ grid set, which matters for accurate vertical and datum transforms.
Development install#
The repository is a pixi workspace, and pixi.lock pins
every environment down to the GDAL build, so CI and your laptop resolve to the
same stack.
git clone https://github.com/egagli/easysnowdata.git
cd easysnowdata
pixi install # the default environment
pixi run -e test-py313 test-unit # offline tests: no network, no credentials
The environments and what they are for:
environment |
contents |
used by |
|---|---|---|
|
the package and its runtime dependencies |
|
|
plus pytest (socket, recording, cov, and xdist plugins), ruff, pre-commit, ipykernel, and the release tools (build, twine, bump-my-version, git-changelog) |
the test tiers |
|
plus Sphinx, sphinx-gallery, myst-nb, pydata-sphinx-theme |
building this site |
|
ruff only |
the fast CI lint job |
|
|
the CI test matrix |
Contributing lists the tasks each environment offers.
Checking the install#
import easysnowdata as esd
print(esd.__version__)
esd.auth.status() # which providers are configured; network-free
esd.catalog.list() # every product, by theme
On an interactive session import easysnowdata prints a single line naming
the version, which credentials it found, and whether it is running somewhere
with direct S3 access. It makes no network request to do that. Set
EASYSNOWDATA_QUIET=1 to silence it.
Credentials#
Most of the catalog is open. The products that are not say so on their catalog page, and Credentials has the setup for each provider. Nothing needs to be configured before installing.