Skip to main content
Documentation Status Testing Status Code Coverage https://codecov.io/gh/SnowEx/snowexsql/graph/badge.svg?token=B27OKGBOTR DOI

About

NASA SnowEx was a multi-year airborne and field campaign aimed at understanding the seasonal snowpack across the western United States and Alaska. Each campaign combined airborne remote sensing (lidar, radar, hyperspectral imagery) with intensive ground truth measurements across a variety of different snow climates. The goal was to improve snow water equivalent (SWE) retrieval algorithms for future spaceborne missions.

The SnowEx database consolidates measurements from all campaigns into a single queryable PostgreSQL/PostGIS database. It holds point measurements (snow depths, Federal Sampler SWE) and snow pit information (density, temperature, stratigraphy from snow pits). This software is a client for accessing the database using Python.

Installing

Install using pip:

pip install snowexsql

Full Tutorial

For a complete walkthrough of accessing and querying the SnowEx database, including spatial queries, filtering by campaign or instrument, and working with the returned data, see the Project Pythia Snow Observations Cookbook:

Accessing the Database

There are two ways to access the SnowEx database:

Public access via Lambda client (no credentials required)

The recommended approach for most users. The SnowExLambdaClient connects to a public AWS Lambda Function URL that proxies queries to the database. No AWS account or database credentials are needed.

from snowexsql.lambda_client import SnowExLambdaClient

client = SnowExLambdaClient()
classes = client.get_measurement_classes()
PointMeasurements = classes['PointMeasurements']

df = PointMeasurements.from_filter(type='depth', limit=100)
Direct database access (credentials required)

For users with database credentials, the snowexsql.api classes can be used directly without going through Lambda. This path also supports raster queries.

from snowexsql.api import PointMeasurements, LayerMeasurements

df = LayerMeasurements.from_filter(type='density', limit=100)

Configuring the database connection

For users wishing to have direct access to the database, there are two options for setting up the credentials:

  • Set database connection URL via SNOWEX_DB_CONNECTION environment variable Example:

export SNOWEX_DB_CONNECTION="user:password@127.0.0.1/db_name"
  • Point to a credentials JSON file via SNOWEX_DB_CREDENTIALS environment variable Example

export SNOWEX_DB_CREDENTIALS="/path/to/credentials.json"

Sample JSON file:

{
  "address": "localhost",
  "db_name": "snowexdb",
  "username": "user",
  "password": "password"
}

Getting help

Jump over to our discussion forum and get help from our community.

Documentation

Our read the docs pages include documentation of the API structure and provides a detailed description of the database schema.

I want to contribute

Thank you for the interest!

Our community follows the Contributor Covenant

Have a look at our contribution guide and see the many ways to get involved!

Testing

To run the test suite locally requires having a running instance of PostgreSQL. The test suite is configured to run against these credentials:

builder:db_builder@localhost/test

This requires a running database on localhost where the user builder has access to the test database with the password db_builder.

It is possible to set a custom host and database via the SNOWEX_TEST_DB environment variable. Example that would connect to a server on my.host and the database snowex_test:

export SNOWEX_TEST_DB="my_host/snowex_test"

More on connection strings to PostgreSQL can be found with the official documentation.

DOI

Metadata

Release files for snowexsql 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snowexsql 1.1.1
File Size Uploaded
snowexsql-1.1.1.tar.gz 3.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for snowexsql 1.1.1
File Interpreter ABI Platform
snowexsql-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.8 MB

Release files / snowexsql-1.1.1.tar.gz

Download URL snowexsql-1.1.1.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
12f7c2f4d73bf6b0487152bf04f0d308db9d4e369c01c6b778534dcf73fde511
BLAKE2b-256 checksum
How to use checksums
5b8461613402fe43537e67c828a800ecaf61ebc8004a1ad2c4d80ee270693517
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.

Transparency log

Release files / snowexsql-1.1.1-py3-none-any.whl

Download URL snowexsql-1.1.1-py3-none-any.whl
Size 49.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a1439fa3572934b9a71459a399c7c24760c051e971c5864e7d55f0710c2a563
BLAKE2b-256 checksum
How to use checksums
00e6aae9f00890c482eec5f516b1ac8ea7d21cfcb6f84177e2192eaa64322312
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.0.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page