Coder Social home page Coder Social logo

nasa-tutorials's Introduction

Jupyter Notebook Tutorials Demonstrating Access to NASA Data

These notebooks demonstrate how to read data from OPeNDAP servers hosted by NASA. There are twelve DAACs (Distributed Active Archive Centers) run by NASA and ten of those provide at least one OPeNDAP access point. In addition, NASA's Earthdata Cloud system also provides an OPeNDAP access point. The primary focus of these tutorials in on the latter, but the notebooks here will work with any OPeNDAP-enabled service, both in the cloud and running on an on-premises server.

Setup

Step 0: Get a NASA Earthdata Login

Go to urs.earthdata.nasa.gov and get a free Earthdata Login (EDL) account.

Of course, if you already have an EDL account, use that.

Either way, Keep your username and password handy, since we'll need to login to the Earthdata Cloud environment to access data in the notebooks.

Step 1: Use Binder

NB: If you want to run the tutorial notebooks locally, skip to the next section (Running the notebooks locally).

Click on the Binder badge and a browser window with the tutorials running in Jupyter Lab (a fancier version of Jupyter notebook) should open. That's it for the setup.

Binder

Should the Binder environment fail for some reason, open the colab directory and run the tutorials using the environments based on Colab. For the colab versions of the notebooks, you may have to perform the authentication steps in each of the notebooks. This is because each notebook runs in a brand new environment. Thanks to Chris Battisto for providing these!

The notebooks

  • NASA_EDL_Login.ipynb All about Earthdata Login Run this to learn how to enable the opendap server to access data NASA serves that requires a username and password. Once you have run this notebook, the remain three listed here should work with and you should not have to authenticate again.

  • netcdf_tutorial.ipynb Using the NetCDF4 library to read data Read and plot data from the NASA Hyrax in the cloud server.

  • xarray_netcdf_tutorial.ipynb Use Xarray with NetCDF4 Read the same dataset as before, but use Xarray's interface. The package has many plotting options and also supports parallel access to data, although those features are beyond the scope of this tutorial. Under the hood, Xarray uses the NetCDF library by default.

  • pydap_dap4_basic.ipynb Using PyDAP to read data The PyDAP package provides an alternative to the NetCDF library for access to data from OPeNDAP servers.

  • daac-tutorials Notebooks from DAACs These are notebooks developed by people at the NASA DAACs and highlight some more interesting features of the NASA data systems.


Optional: Running the notebooks locally

Either Conda or Pip may be used to create a virtual environment that can run these notebooks. Using a virtual environment is a good idea - it's only tiny bit more work than not and it can save much time by not changing the native collection of packages bundled with you computer (or that you use for other work).

Compatibility note: For OSX, the conda environment.yml file works for the older (intel) computers, but not for the Macs that use the M1/M2 chips. For the M1/M2 Macs, use the Python venv and Pip based install.

The remainder of these instructions assume you are working in a shell and have python 3.9 or greater on your path.

Get the tutorial GitHub repository

Clone the repository https://github.com/OPENDAP/NASA-tutorials

git clone https://github.com/OPENDAP/NASA-tutorials

Next chose to use Conda or Pip.

Using Conda

If you already use conda, this is a simple way forward.

Perform these steps in a terminal window

Change to this directory in the terminal

cd NASA-tutorials

Start conda so the '(base)' environment is active. That may be the case by default, so this step might not be needed.

conda activate

Build the virtual environment for the tutorials

conda env create -f environment.yml

After a few minutes, activate the new environment

conda activate nasa-local

Using Pip

Perform these steps in a terminal window

Change to this directory in the terminal

cd NASA-tutorials

Set up a python virtual environment

python3 -m venv myenv # make the virtual env source myenv/bin/activate # use it in the current shell

Then install packages.

pip3 install -r requirements.txt

Starting the local copy of the notebooks

Run jupyter and the notebooks will appear in your running/default web browser. If you are using Binder, the notebooks will open in jupyter lab in your browser. For local virtual environments, in the terminal, start jupyter:

jupyter notebook

Or

jupyter lab

Now go back to The notebooks.

Extra

This is an attempt to separate the content of the tutorial notebooks from the binder environment. Not really working due to some odd authentication (jupyter, not EDL) problem.

Binder from separate environment repo: Binder


Copyright (C) 2023 OPeNDAP, Inc. This Jupyter Notebook is made available under the Creative Commons Attribution license 4.0.

nasa-tutorials's People

Contributors

jgallagher59701 avatar ndp-opendap avatar battistowx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.