{"id":31189,"name":"NSIDC-Data-Tutorials","description":"Tutorials and code resources provided by the NASA National Snow and Ice Data Center Distributed Active Archive Center.","url":"https://github.com/nsidc/NSIDC-Data-Tutorials","last_synced_at":"2026-04-11T16:30:30.368Z","repository":{"id":38427502,"uuid":"228452382","full_name":"nsidc/NSIDC-Data-Tutorials","owner":"nsidc","description":"Jupyter notebook-based tutorials to learn how to access and work with select NSIDC DAAC data.","archived":false,"fork":false,"pushed_at":"2026-01-26T16:17:22.000Z","size":53878,"stargazers_count":96,"open_issues_count":16,"forks_count":43,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-03-21T19:54:04.756Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nsidc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-16T18:44:21.000Z","updated_at":"2026-02-04T18:37:06.000Z","dependencies_parsed_at":"2025-06-26T18:07:00.072Z","dependency_job_id":"5de06155-85dc-4d57-b809-dd5f8e87767b","html_url":"https://github.com/nsidc/NSIDC-Data-Tutorials","commit_stats":{"total_commits":408,"total_committers":13,"mean_commits":"31.384615384615383","dds":0.7916666666666666,"last_synced_commit":"49e476a288a60a2f5aae2264e1b90ff82c8673af"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nsidc/NSIDC-Data-Tutorials","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsidc","download_url":"https://codeload.github.com/nsidc/NSIDC-Data-Tutorials/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30917677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-25T07:55:14.202Z","status":"ssl_error","status_checked_at":"2026-03-25T07:55:10.924Z","response_time":80,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"nsidc","name":"National Snow and Ice Data Center","uuid":"1874284","kind":"organization","description":"University of Colorado Boulder","email":"nsidc@nsidc.org","website":"http://www.nsidc.org/","location":"Boulder, Colorado","twitter":"NSIDC","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1874284?v=4","repositories_count":119,"last_synced_at":"2024-04-16T01:06:28.908Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nsidc","funding_links":[],"total_stars":1298,"followers":64,"following":0,"created_at":"2022-11-04T05:55:01.599Z","updated_at":"2024-04-16T01:07:10.964Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsidc","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsidc/repositories"},"packages":[],"commits":{"id":1342625,"full_name":"nsidc/NSIDC-Data-Tutorials","default_branch":"main","total_commits":571,"total_committers":14,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":40.785714285714285,"dds":0.7775831873905429,"past_year_total_commits":94,"past_year_total_committers":6,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":15.666666666666666,"past_year_dds":0.4042553191489362,"last_synced_at":"2026-03-21T06:04:48.361Z","last_synced_commit":"1169f1f35ceff860a5b0f5ff9e9b4e7e4dd7b5c5","created_at":"2023-09-12T09:04:13.429Z","updated_at":"2026-03-21T06:04:45.608Z","committers":[{"name":"Andy Barrett","email":"apbarret@nsidc.org","login":null,"count":127},{"name":"betolink","email":"betolin@gmail.com","login":"betolink","count":93},{"name":"betolink:w","email":"luis.lopez@nsidc.org","login":null,"count":85},{"name":"jennifer","email":"jennifer.roebuck@colorado.edu","login":"jroebuck932","count":84},{"name":"Amy Steiker","email":"47193922+asteiker","login":"asteiker","count":55},{"name":"mikala-nsidc","email":"mikala.beig@colorado.edu","login":"mikala-nsidc","count":38},{"name":"asteiker","email":"amy.steiker@gmail.com","login":null,"count":23},{"name":"Trey Stafford","email":"trey.stafford@colorado.edu","login":"trey-stafford","count":19},{"name":"Andy Barrett","email":"andypbarrett@gmail.com","login":"andypbarrett","count":16},{"name":"Lisa Kaser","email":"kaser.lisa@gmail.com","login":"lisakaser","count":12},{"name":"Jessica Scheick","email":"jbscheick@gmail.com","login":"JessicaS11","count":10},{"name":"nicholas-kotlinski","email":"nkgeospatial@gmail.com","login":"nicholas-kotlinski","count":6},{"name":"Matt Fisher","email":"matt.fisher@nsidc.org","login":"MattF-NSIDC","count":2},{"name":"saberbrasher","email":"saberbrasher@gmail.com","login":"saberbrasher","count":1}],"past_year_committers":[{"name":"Andy Barrett","email":"apbarret@nsidc.org","login":null,"count":56},{"name":"Mikala Beig","email":"83375472+mikala-nsidc","login":"mikala-nsidc","count":17},{"name":"betolink","email":"betolin@gmail.com","login":"betolink","count":11},{"name":"Trey Stafford","email":"trey.stafford@colorado.edu","login":"trey-stafford","count":8},{"name":"saberbrasher","email":"saberbrasher@gmail.com","login":"saberbrasher","count":1},{"name":"Andy Barrett","email":"andypbarrett@gmail.com","login":"andypbarrett","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-25T00:00:58.194Z","repositories_count":6202926,"commits_count":928501079,"contributors_count":35976853,"owners_count":1144438,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"nsidc/NSIDC-Data-Tutorials","html_url":"https://github.com/nsidc/NSIDC-Data-Tutorials","last_synced_at":"2026-01-27T04:02:46.231Z","status":null,"issues_count":32,"pull_requests_count":88,"avg_time_to_close_issue":17021716.181818184,"avg_time_to_close_pull_request":3724903.2,"issues_closed_count":11,"pull_requests_closed_count":75,"pull_request_authors_count":13,"issue_authors_count":9,"avg_comments_per_issue":1.125,"avg_comments_per_pull_request":2.590909090909091,"merged_pull_requests_count":66,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":16,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":510888.2,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":10,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":6.3125,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":10,"created_at":"2023-09-12T09:04:34.692Z","updated_at":"2026-01-27T04:02:46.232Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsidc%2FNSIDC-Data-Tutorials/issues","issue_labels_count":{"enhancement":2},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":14,"MEMBER":8,"NONE":7,"CONTRIBUTOR":3},"pull_request_author_associations_count":{"COLLABORATOR":36,"MEMBER":29,"CONTRIBUTOR":20,"NONE":3},"issue_authors":{"andypbarrett":12,"asteiker":6,"trey-stafford":5,"mikala-nsidc":2,"betolink":2,"eeholmes":2,"JessicaS11":1,"victoriaeh":1,"zygym":1},"pull_request_authors":{"asteiker":14,"jroebuck932":13,"betolink":13,"andypbarrett":12,"mikala-nsidc":9,"lisakaser":6,"JessicaS11":6,"trey-stafford":6,"nicholas-kotlinski":3,"saberbrasher":2,"MattF-NSIDC":2,"mliukis":1,"rmarow":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-25T00:00:37.747Z","repositories_count":13913724,"issues_count":34726389,"pull_requests_count":113472887,"authors_count":11209353,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"enhancement":2},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"COLLABORATOR":3},"past_year_pull_request_author_associations_count":{"COLLABORATOR":11,"MEMBER":3},"past_year_issue_authors":{"mikala-nsidc":2,"andypbarrett":1},"past_year_pull_request_authors":{"mikala-nsidc":5,"andypbarrett":4,"betolink":3,"saberbrasher":2},"maintainers":[{"login":"andypbarrett","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andypbarrett"},{"login":"asteiker","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asteiker"},{"login":"betolink","count":15,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/betolink"},{"login":"jroebuck932","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jroebuck932"},{"login":"mikala-nsidc","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mikala-nsidc"},{"login":"MattF-NSIDC","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MattF-NSIDC"},{"login":"saberbrasher","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/saberbrasher"}],"active_maintainers":[{"login":"mikala-nsidc","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mikala-nsidc"},{"login":"andypbarrett","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/andypbarrett"},{"login":"betolink","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/betolink"},{"login":"saberbrasher","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/saberbrasher"}]},"events":{"total":{"DeleteEvent":2,"MemberEvent":1,"PullRequestEvent":16,"ForkEvent":3,"IssuesEvent":8,"WatchEvent":15,"IssueCommentEvent":74,"PushEvent":46,"PullRequestReviewCommentEvent":17,"PullRequestReviewEvent":13,"CreateEvent":6},"last_year":{"DeleteEvent":1,"MemberEvent":1,"PullRequestEvent":12,"ForkEvent":2,"IssuesEvent":6,"WatchEvent":10,"IssueCommentEvent":57,"PushEvent":36,"PullRequestReviewEvent":7,"PullRequestReviewCommentEvent":10,"CreateEvent":4}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/binder-badge.yml","sha":null,"kind":"manifest","created_at":"2023-01-21T13:02:48.291Z","updated_at":"2023-01-21T13:02:48.291Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/.github/workflows/binder-badge.yml","dependencies":[{"id":7078817831,"package_name":"manics/action-binderbadge","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yml","sha":null,"kind":"manifest","created_at":"2023-01-21T13:02:49.411Z","updated_at":"2023-01-21T13:02:49.411Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/.github/workflows/test.yml","dependencies":[{"id":7078821060,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7078821061,"package_name":"conda-incubator/setup-miniconda","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-01-21T13:02:51.331Z","updated_at":"2023-01-21T13:02:51.331Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/docker-compose.yml","dependencies":[{"id":7078823018,"package_name":"nsidc/tutorials","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"binder/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-09-29T03:36:45.721Z","updated_at":"2023-09-29T03:36:45.721Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/binder/Dockerfile","dependencies":[{"id":14010208582,"package_name":"pangeo/base-image","ecosystem":"docker","requirements":"2023.01.13","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.dev.yml","sha":null,"kind":"manifest","created_at":"2023-09-29T03:36:46.873Z","updated_at":"2023-09-29T03:36:46.873Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/docker-compose.dev.yml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/on-issue-create.yml","sha":null,"kind":"manifest","created_at":"2024-02-01T20:10:32.792Z","updated_at":"2024-02-01T20:10:32.792Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/.github/workflows/on-issue-create.yml","dependencies":[{"id":15972079856,"package_name":"atlassian/gajira-login","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15972079857,"package_name":"atlassian/gajira-create","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish.yml","sha":null,"kind":"manifest","created_at":"2024-08-02T22:55:22.521Z","updated_at":"2024-08-02T22:55:22.521Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/.github/workflows/publish.yml","dependencies":[{"id":19482037698,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":19482037699,"package_name":"docker/setup-qemu-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":19482037700,"package_name":"docker/setup-buildx-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":19482037701,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":19482037702,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"binder/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:57.804Z","updated_at":"2025-06-26T18:06:57.804Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/binder/environment.yml","dependencies":[{"id":23834558356,"package_name":"awscliv2","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"notebooks/ICESat-2_Cloud_Access/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:57.917Z","updated_at":"2025-06-26T18:06:57.917Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/ICESat-2_Cloud_Access/environment/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"notebooks/ICESat-2_MODIS_Arctic_Sea_Ice/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:57.965Z","updated_at":"2025-06-26T18:06:57.965Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/ICESat-2_MODIS_Arctic_Sea_Ice/environment/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"notebooks/SMAP/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:58.012Z","updated_at":"2025-06-26T18:06:58.012Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/SMAP/environment/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"notebooks/SnowEx_ASO_MODIS_Snow/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:58.064Z","updated_at":"2025-06-26T18:06:58.064Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/SnowEx_ASO_MODIS_Snow/environment/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"notebooks/itslive/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:58.111Z","updated_at":"2025-06-26T18:06:58.111Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/itslive/environment/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"notebooks/measures/environment/environment.yml","sha":null,"kind":"manifest","created_at":"2025-06-26T18:06:58.159Z","updated_at":"2025-06-26T18:06:58.159Z","repository_link":"https://github.com/nsidc/NSIDC-Data-Tutorials/blob/main/notebooks/measures/environment/environment.yml","dependencies":[]}],"score":7.357556200910352,"created_at":"2023-09-12T07:42:49.871Z","updated_at":"2026-04-11T16:30:30.377Z","avatar_url":"https://github.com/nsidc.png","language":"Jupyter Notebook","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\n# NSIDC-Data-Tutorials\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/nsidc/NSIDC-Data-Tutorial/main?urlpath=lab/tree/notebooks)\n\n[![Test Notebooks](https://github.com/nsidc/NSIDC-Data-Tutorials/actions/workflows/test.yml/badge.svg)](https://github.com/nsidc/NSIDC-Data-Tutorials/actions/workflows/test.yml)\n\n## Summary\n\nThis combined repository includes tutorials and code resources provided by the NASA National Snow and Ice Data Center Distributed Active Archive Center (NSIDC DAAC). Most were developed to support a workshop or other live event.  In some cases the content represents a snapshot in time, and might not demonstrate current best practice.  Some tutorials present data access patterns for retired on premises archives that will no longer work now that data have migrated to the NASA Earthdata Cloud environment. We've posted warnings in those cases.  Up to date information on data access patterns can be found in the [NSIDC Data Cookbook](https://nsidc.github.io/NSIDC-Data-Cookbook). \n\nThese tutorials are provided as Python-based Jupyter notebooks that provide guidance on working with various data products, including how to access, subset, transform, and visualize data. Each tutorial can be accessed by navigating to the /notebooks folder of this repository. Please see the README files associated with each individual tutorial folder for more information on each tutorial and their learning objectives. Please note that all branches outside of `Main` should be considered in development and are not supported.\n\n## Tutorials\n\n### [ICESat-2_Cloud_Access Notebooks](./notebooks/ICESat-2_Cloud_Access)\n\nThese notebooks demonstrate how to search and access ICESat-2 from the NASA Earthdata Cloud:\n\n**Accessing and working with ICESat-2 Data in the Cloud**\n\nOriginally presented to the UWG (User Working Group) in May 2022, this tutorial demonstrates how to search for ICESat-2 data hosted in the Earthdata Cloud and how to directly access it from an Amazon Web Services (AWS) Elastic Compute Cloud (EC2) instance using the `earthaccess` package.\n\n**Plotting ICESat-2 and CryoSat-2 Freeboards**\n\nOriginally presented at the Cryo2Ice Symposium in September 2024, this notebook demonstrates plotting ICESat-2 and CryoSat-2 data in the same map from within an AWS ec2 instance.  ICESat-2 data are accessed via \"direct S3 access\" using `earthaccess`.  CryoSat-2 data are downloaded to our cloud instance from their ftp storage lcoation and accessed locally.\n\n**Processing Large-scale Time Series of ICESat-2 Sea Ice Height in the Cloud**\n\nThis notebook utilizes several libraries to performantly search, access, read, and grid ATL10 data over the Ross Sea, Antarctica including `earthaccess`, `h5coro`, and `geopandas`. The notebook provides further guidance on how to scale this analysis to the entire continent, running the same workflow from a script that can be run from your laptop using [Coiled](https://www.coiled.io/).\n\n### [MEaSUREs](./notebooks/measures)\n\n**Download, crop, resample, and plot multiple GeoTIFFs**\n\nThis tutorial guides you through programmatically accessing and downloading GeoTIFF files from the NSIDC DAAC to your local computer. We then crop and resample one GeoTIFF based on the extent and pixel size of another GeoTIFF, then plot one on top of the other.\n\nWe will use two data sets from the NASA [MEaSUREs](https://nsidc.org/data/measures) (Making Earth System data records for Use in Research Environments) program as an example:\n\n* [MEaSUREs Greenland Ice Mapping Project (GrIMP) Digital Elevation Model from GeoEye and WorldView Imagery, Version 2 (NSIDC-0715)](https://nsidc.org/data/nsidc-0715/versions/2)\n* [MEaSUREs Greenland Ice Velocity: Selected Glacier Site Velocity Maps from InSAR, Version 4 (NSIDC-0481)](https://nsidc.org/data/nsidc-0481/versions/4)\n\n### [SnowEx_ASO_MODIS_Snow](./notebooks/SnowEx_ASO_MODIS_Snow)\n\n**Snow Depth and Snow Cover Data Exploration**\n\nOriginally demonstrated through the NASA Earthdata Webinar \"Let It Snow! Accessing and Analyzing Snow Data at the NSIDC DAAC\" on May 6, 2020, this tutorial provides guidance on how to discover, access, and couple snow data across varying geospatial scales from NASA's SnowEx, Airborne Snow Observatory, and Moderate Resolution Imaging Spectroradiometer (MODIS) missions. The tutorial highlights the ability to search and access data by a defined region, and combine and compare snow data across different data formats and scales using a Python-based Jupyter Notebook. These notebooks have been updated to access data in the NASA Earthdata Cloud environment.\n\n### [ICESat-2_MODIS_Arctic_Sea_Ice](./notebooks/ICESat-2_MODIS_Arctic_Sea_Ice)\n\n**Getting the most out of NSIDC DAAC data: Discovering, Accessing, and Harmonizing Arctic Remote Sensing Data**\n\n\u003e [!WARNING]  \n\u003e Data access is no longer possible using the method described in this tutorial, because of the migration of data to the NASA Earthdata Cloud environment.\n\nOriginally presented during the 2019 AGU Fall Meeting, this tutorial demonstrates the NSIDC DAAC's data discovery, access, and subsetting services, along with basic open source resources used to harmonize and analyze data across multiple products. The tutorial is provided as a series of Python-based Jupyter Notebooks, focusing on sea ice height and ice surface temperature data from NASA’s ICESat-2 and MODIS missions, respectively, to characterize Arctic sea ice.  \n\n### [SMAP](./notebooks/SMAP)\n\n**Accessing, reading, and plotting SMAP data**\n\nThis tutorial is based on the notebooks originally provided to NSIDC by Adam Purdy. Updates were made by Jennifer Roebuck and Andy Barrett of NSIDC to include the latest version of SMAP data and use earthaccess for authentication, searching for and downloading the data. These notebooks also demonstrate reading and plotting SMAP data, and contain useful supporting information.\n\n### [icesat-2_webinar_demo](./notebooks/icesat2_webinar_demo)\n\n**Working with ICESat-2 Sea Ice Products using earthaccess and xarray.DataTree**\n\nOriginally presented during the August 2025 NASA Earthdata Webinar [Laser Altimetry Applications for a Changing World: Working with ICESat-2 Sea Ice Data](https://www.earthdata.nasa.gov/learn/webinars/laser-altimetry-applications-changing-world-working-icesat-2-sea-ice-data), this tutorial demonstrates accessing, reading and plotting ICESat-2 Sea Ice data (ATL07) using earthaccess and xarray.DataTree.\n\n### [ITS_LIVE](./notebooks/itslive)\n\n**Global land ice velocities.**\nThe Inter-mission Time Series of Land Ice Velocity and Elevation (ITS_LIVE) project facilitates ice sheet, ice shelf and glacier research by providing a globally comprehensive and temporally dense multi-sensor record of land ice velocity and elevation with low latency. Scene-pair velocities were generated from satellite optical and radar imagery.\n\nThe notebooks on this project demonstrate how to search and access ITS_LIVE velocity pairs and provide a simple example on how to build a data cube.\n\n### IceFlow\n\n\u003e [!WARNING]\n\u003e The IceFlow tutorials have been removed. The Jupyter notebooks and associated\n\u003e code have been moved to a standalone\n\u003e [iceflow](https://github.com/nsidc/iceflow) Python library. See the [iceflow\n\u003e documentation](https://iceflow.readthedocs.io/en/latest/) for the latest\n\u003e information on how to access and work with airborne altimetry and related data\n\u003e sets from NASA’s\n\u003e [IceBridge](https://www.nasa.gov/mission_pages/icebridge/index.html) mission,\n\u003e and satellite altimetry data from\n\u003e [ICESat/GLAS](https://icesat.gsfc.nasa.gov/icesat/) and\n\u003e [ICESat-2](https://icesat-2.gsfc.nasa.gov/).\n\n## Usage with Binder\n\nThe Binder button above allows you to explore and run the notebook in a shared cloud computing environment without the need to install dependencies on your local machine. Note that this option will not directly download data to your computer; instead the data will be downloaded to the cloud environment.\n\n## Usage with Docker\n\n### On Mac OSX or Linux\n\n1. Install [Docker](https://docs.docker.com/install/). Use the left-hand navigation to select the appropriate install depending on operating system.\n\n2. Download the [NSIDC-Data-Tutorials repository from Github](https://github.com/nsidc/NSIDC-Data-Tutorials/archive/master.zip).\n\n3. Unzip the file, and open a terminal window in the `NSIDC-Data-Tutorials` folder's location.\n\n4. From the terminal window, launch the docker container using the following command, replacing [path/notebook_folder] with your path and notebook folder name:\n\n```bash\ndocker run --name tutorials -p 8888:8888 -v [path/notebook_folder]:/home/jovyan/work nsidc/tutorials\n```\n\nExample:\n\n```bash\ndocker run --name tutorials -p 8888:8888 -v /Users/name/Desktop/NSIDC-Data-Tutorials:/home/jovyan/work nsidc/tutorials\n```\n\nOr, with docker-compose:\n\n```bash\ndocker-compose up\n```\n\nIf you want to mount a directory with write permissions, you need to grant the container the same permissions as the one on the directory to be mounted and tell it that has \"root\" access (within the container). This is important if you want to persist your work or download data to a local directory and not just the docker container. Run the example command below for this option:\n\n```bash\ndocker run --name tutorials -e NB_UID=$(id -u) --user root -p 8888:8888 -v  /Users/name/Desktop/NSIDC-Data-Tutorials:/home/jovyan/work nsidc/tutorials\n```\n\nThe initialization will take some time and will require 2.6 GB of space. Once the startup is complete you will see a line of output similar to this:\n\n```\nTo access the notebook, open this file in a browser:\n        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html\n    Or copy and paste one of these URLs:\n        http://4dc97ddd7a0d:8888/?token=f002a50e25b6f623aa775312737ba8a23ffccfd4458faa6f\n     or http://127.0.0.1:8888/?token=f002a50e25b6f623aa775312737ba8a23ffccfd4458faa6f\n```\n\nIf you started your container with the `-d`/`--detach` option, check `docker logs tutorials` for this output.\n\n5. Open up a web browser and copy one of the URLs as instructed above.\n\n6. You will be brought to a Jupyter Notebook interface running through the Docker container. The left side of the interface displays your local directory structure. Navigate to the **`work`** folder of the `NSIDC-Data-Tutorials` repository folder. You can now interact with the notebooks to explore and access data.\n\n### On Windows\n\n1. Install [Docker](https://docs.docker.com/docker-for-windows/install/).\n\n2. Download the [NSIDC-Data-Tutorials repository from Github](https://github.com/nsidc/NSIDC-Data-Tutorials/archive/master.zip).\n\n3. Unzip the file, and open a terminal window (use Command Prompt or PowerShell, not PowerShell ISE) in the `NSIDC-Data-Tutorials` folder's location.\n\n5. From the terminal window, launch the docker container using the following command, replacing [path\\notebook_folder] with your path and notebook folder name:\n\n```bash\ndocker run --name tutorials -p 8888:8888 -v [path\\notebook_folder]:/home/jovyan/work nsidc/tutorials\n```\n\nExample:\n\n```bash\ndocker run --name tutorials -p 8888:8888 -v C:\\notebook_folder:/home/jovyan/work nsidc/tutorials\n```\n\nOr, with docker-compose:\n\n```bash\ndocker-compose up\n```\n\nIf you want to mount a directory with write permissions you need to grant the container the same permissions as the one on the directory to be mounted and tell it that has \"root\" access (within the container)\n\n```bash\ndocker run --name tutorials --user root -p 8888:8888 -v C:\\notebook_folder:/home/jovyan/work nsidc/tutorials\n```\n\nThe initialization will take some time and will require 2.6 GB of space. Once the startup is complete you will see a line of output similar to this:\n\n```\nTo access the notebook, open this file in a browser:\n        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html\n    Or copy and paste one of these URLs:\n        http://(6a8bfa6a8518 or 127.0.0.1):8888/?token=2d72e03269b59636d9e31937fcb324f5bdfd0c645a6eba3f\n```\n\nIf you started your container with the `-d`/`--detach` option, check `docker logs tutorials` for this output.\n\n6. Follow the instructions and copy one of the URLs into a web browser and hit return. The address should look something like this:\n\n`http://127.0.0.1:8888/?token=2d72e03269b59636d9e31937fcb324f5bdfd0c645a6eba3f`\n\n7. You will now see the NSIDC-Data-Tutorials repository within the Jupyter Notebook interface. Navigate to **/work** to open the notebooks.\n\n8. You can now interact with the notebooks to explore and access data.\n\n## Usage with Mamba/Conda\n\n\u003e Note: If we already have conda or mamba installed we can skip the first step.\n\n1. Install mambaforge (Python 3.9+) for your platform from [mamba documentation](https://mamba.readthedocs.io/en/latest/installation.html)\n\n2. Download the [NSIDC-Data-Tutorials](https://github.com/nsidc/NSIDC-Data-Tutorials) repository from Github by clicking the green 'Code' button located at the top right of the repository page and clicking 'Download Zip'. Unzip the file, and open a command line or terminal window in the NSIDC-Data-Tutorials folder's location.\n\n3. From a command line or terminal window, install the required environment with the following commands:\n\n```bash\nmamba create -n nsidc-tutorials --file binder/conda-lock.yml\n```\n\nYou should now see that the dependencies were installed and our environment is ready to be used.\n\nActivate the environment with\n\n```\nconda activate nsidc-tutorials\n```\n\nLaunch the notebook locally with the following command:\n\n```bash\njupyter lab\n```\n\nThis should open a browser window with the JupyterLab IDE, showing your current working directory on the left-hand navigation. Navigate to the tutorial folder of choice and click on their associated *.ipynb files to get started.\n\n### Tutorial Environments\n\nAlthough the nsidc-tutorial environment should run all the notebooks in this repository, we also include tutorial-specific environments that will only contain the dependencies for them. If we don't want to \"pollute\" our conda environments and we are only going to work with one of the tutorials we recommend to use them instead of the `nsidc-tutorial` environment. The steps to install them are exactly the same but the environment files are inside the environment folders in each of the tutorials. e.g. for ITS_LIVE\n\n```bash\ncd notebooks/itslive \nmamba create -n nsidc-itslive --file environment/conda-lock.yml\nconda activate nsidc-itslive\njupyter lab\n```\n\nThis should create a pinned environment that should be fully reproducible across platforms.\n\n\u003e **NOTE:** Sometimes Conda environments change (break) even with pinned down dependencies. If you run into an issue with dependencies for the tutorials please open an issue and we'll try to fix it as soon as possible.\n\n## Credit\n\nThis software is developed by the National Snow and Ice Data Center with funding from multiple sources.\n\n## License\n\nThis repository is licensed under the MIT license. [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["access","climate-data","cloud-computing","cmr","nasa-api","open-science","openscience","pangeo","icesat-2","cryosphere"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/31189","html_url":"https://ost.ecosyste.ms/projects/31189"}