Autenticacion#

Muchas de las instituciones que utilizan servidores de OPenDAP para dar acceso abierto a sus productos cientificos, requieren alguna forma de autenticacion. PyDAP utiliza la libreria de Python llamada requests para transmitir datos a traves del internet, y esta libreria facilita la autenticacion por medio de los metodos:

  1. Nombre Usuario / Contraseña.

  2. tokens

Requisito: .netrc#

Un metodo estatico y seguro para almacenar el nombre de usuario y contraseña en la computadora personal, es el archivo .netrc en sistemas operativos de Linux o Mac (en Windows es llamado _netrc)

Note

En este tutorial, demostratemos el uso del .netrc en sistema Linux.

Al crear el documento .netrc y almacenar dentro de el nombre de usuario y contrasena creado para tener accesso a los datos de la Institucion Cientifica, Pydap puede “descubrir” de manera automatica las credenciales de autenticacion , siempre y cuando esten propiamente definidas

El uso de tokens como forma de autenticacion depende de la institucion que proporciona las credenciales de autenticacion. En terminos de los servidores de OPeNDAP en la NASA, es posible usar token. El token es creado por medio del EarthDataLogin.

Comencemos accesando datos en la Nube de la NASA!#

Como demonstracion, accederemos a archivos remotos en la Nube, del proyecto ECCO

from pydap.client import open_url
from pydap.net import create_session
dataset_url = "https://opendap.earthdata.nasa.gov/providers/POCLOUD/collections/ECCO%20Ocean%20Temperature%20and%20Salinity%20-%20Monthly%20Mean%200.5%20Degree%20(Version%204%20Release%204)/granules/OCEAN_TEMPERATURE_SALINITY_mon_mean_2017-12_ECCO_V4r4_latlon_0p50deg"

Metodo Nombre de Usuario / Contraseña#

Si ya cuenta aon las credenciales guardadas en el archivo ~/.netrc, no es necesario tomar algun paso extra. Si todavia no ha creado el archivo ~/.netrc, puede ver este tutorial de como crear y guardar credenciales de autenticacion.

Teniengo ya su archivo ~/.netrc, lo unico que tiene que hacer para poder acceder a archivos en servidores de OPeNDAP, es iniciar la session.

my_session = create_session() # default requests.session() object. 
print(my_session)
<requests.sessions.Session object at 0x105115010>

Crea el objeto de Pydap#

Ahora, solo execute:

ds = open_url(dataset_url, session=my_session, protocol="dap4")

y esto creara el pydap dataset, que le dara accesso a todas las variables del archivo remoto.

Metodo de Token#

Este es otro metodo que muchas instituciones soportan, y sera el metodo que se utilizara a lo largo de esta documentacion. Para poder utilizar tokens de autenticacion, debera contar con un token valido, o crear uno nuevo. Si desea crear un token nuevo para acceder a datos cientificos de la NASA a traves del EarthData Portal, puede acudir a este recurso de autenticacion de EDL.

Para uso especifico de pydap. existe la funcion pydap.net.create_session que facilita el uso de tokens de la siguiente manera

from pydap.net import create_session

session_extra = {"token": "YourToken"}

my_session = create_session(session_kwargs=session_extra)
ds = open_url(dataset_url, session=my_session, protocol='dap4')