Source code for easystac.planetary
"""easystac - Planetary Computer authentication"""
import json
import os
import warnings
from pathlib import Path
from ..logging_utils import obtain_and_write_token
from .image_collection import ImageCollection
warnings.simplefilter("always", UserWarning)
CREDENTIAL_FILE = "~/.config/easystac/credentials_pc.json"
[docs]def Authenticate(token=None):
"""Generates an authentication prompt to Planetary Computer.
Examples
--------
>>> import easystac.planetary as pc
>>> pc.Authenticate()
"""
if token is None:
obtain_and_write_token(stac_server="pc")
else:
obtain_and_write_token(token, stac_server="pc")
[docs]def Initialize():
"""Initializes the authentication process for Planetary Computer.
Examples
--------
>>> import easystac.planetary as pc
>>> pc.Initialize()
"""
credentials_path = Path(CREDENTIAL_FILE).expanduser()
if credentials_path.is_file():
credential = json.load(open(credentials_path))
os.environ["PC_SDK_SUBSCRIPTION_KEY"] = credential["token"]
else:
warnings.warn(
"PC_SDK_SUBSCRIPTION_KEY is not set.\n"
+ "If you are a registered user,"
+ " it is recommended to set your token for a more favorable rate limiting.\n"
+ "More info in https://planetarycomputer.microsoft.com/docs/concepts/sas/",
UserWarning,
)