Skip to main content

netCDF4 and CAS compatibility layer for pydap

Project description

Build Status

This code provides enhancements to the pydap client package:

  1. An updated pydap client that uses the requests package to handle Central Authentication Services (such as ESGF).

  2. A (partial) compatibility layer with netcdf4-python.

Frederic Laliberte University of Toronto, 2016

Documentation

ESGF

  1. Register at https://pcmdi.llnl.gov/user/add/?next=https://pcmdi.llnl.gov/projects/esgf-llnl/. When registering, you will create a password and receive an openid.

  2. Go to https://pcmdi.llnl.gov/esg-orp/home.htm and login with your openid using your password.

  3. Go to https://pcmdi.llnl.gov/esg-orp/registration-request.htm?resource=http%3A%2F%2Fpcmdi.llnl.gov%2Fthredds%2FfileServer%2Fesg_testroot%2Fregister%2Fcmip5_research.nc. Your browser will likely ask you to trust some certificates. CLICK ALWAYS ALLOW. If you don’t do this, it won’t work.

  4. Register for CMIP5 Research. You do not need to download data.

  5. Connect to OPeNDAP links as follows:

    import matplotlib.pyplot as plt
    import numpy as np
    
    import netcdf4_pydap
    import netcdf4_pydap.cas.esgf as esgf
    openid = YOUROPENID
    password = YOURPASSWORD
    
    credentials={
                  'password' : password,
                  'authentication_url' : esgf._uri(openid)}
    
    url = ('http://cordexesg.dmi.dk/thredds/dodsC/cordex_general/cordex/'
           'output/EUR-11/DMI/ICHEC-EC-EARTH/historical/r3i1p1/DMI-HIRHAM5/'
           'v1/day/pr/v20131119/'
           'pr_EUR-11_ICHEC-EC-EARTH_historical_r3i1p1_DMI-HIRHAM5_v1_day_19960101-20001231.nc')
    
    with netcdf4_pydap.Dataset(url,**credentials) as dataset:
        data = dataset.variables['pr'][0,:,:]
        plt.contourf(np.squeeze(data))
        plt.show()
  6. If using https://ceda.ac.uk instead of https://pcmdi.llnl.gov, your username must be passed along with your credentials use:

    credentials={
                  'username' : YOURCEDAUSERNAME,
                  'password' : password,
                  'authentication_url' : esgf._uri(openid)}

URS NASA Earthdata

There are a few steps required to connect to NASA Earthdata:

  1. Create an account at https://urs.earthdata.nasa.gov

  2. Authorize the data to see your profile (NASA calls this adding an app, a la Facebook). Follow http://disc.sci.gsfc.nasa.gov/registration/authorizing-desidsc-data-access-in-earthdata_login

  3. Load OPeNDAP data:

    import matplotlib.pyplot as plt
    import numpy as np
    import netcdf4_pydap
    
    credentials={'username': YOURUSERNAME,
                 'password': YOURPASSWORD,
                 'authentication_url':'https://urs.earthdata.nasa.gov/'}
    url = ('http://goldsmr3.gesdisc.eosdis.nasa.gov:80/opendap/'
           'MERRA_MONTHLY/MAIMCPASM.5.2.0/1979/MERRA100.prod.assim.instM_3d_asm_Cp.197901.hdf')
    
    with netcdf4_pydap.Dataset(url, **credentials) as dataset:
        data = dataset.variables['SLP'][0,:,:]
        plt.contourf(np.squeeze(data))
        plt.show()

Version History

0.2.6: Another bug fix when getting cookies.

0.2.5: Bug fix when getting cookies.

0.2.4: Bug fix for ESGF.

0.2.3: New authentication method. Support URS NASA Earthdata

0.2.2: Pydap 3.1.1 is now a requirement.

0.2.1: Removed support for NASA Earthdata.

0.2: Travis-CI integration. Limited test suite. Code reorganization.

0.1.4: Bug fix and more robust error handling.

0.1.1: Added special Dataset class to mimic wget.

0.1 : Initial commit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

netcdf4_pydap-0.2.6.tar.gz (15.4 kB view details)

Uploaded Source

File details

Details for the file netcdf4_pydap-0.2.6.tar.gz.

File metadata

File hashes

Hashes for netcdf4_pydap-0.2.6.tar.gz
Algorithm Hash digest
SHA256 c293dd659c72bad6411d6edc8fb58da4972474a7e9bc109581102388b6833953
MD5 49302cc1307da54e96f3d4cb0cb1f971
BLAKE2b-256 18f00861cc482afdedb7428b1a7ae3e1f646f7ac054d4b1d4382a45c3df60e6b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page