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:
Nombre Usuario / Contraseña
.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')