utilities

Download and management utilities for syncing time and auxiliary files

Source code

General Methods

model_harmonics.utilities.get_git_revision_hash(refname: str = 'HEAD', short: bool = False)[source]

Get the git hash value for a particular reference

Parameters:
refname: str, default HEAD

Symbolic reference name

short: bool, default False

Return the shorted hash value

model_harmonics.utilities.get_git_status()[source]

Get the status of a git repository as a boolean value

model_harmonics.utilities._create_default_ssl_context() SSLContext[source]

Creates the default SSL context

model_harmonics.utilities._create_ssl_context_no_verify() SSLContext[source]

Creates an SSL context for unverified connections

model_harmonics.utilities._set_ssl_context_options(context: SSLContext) None[source]

Sets the default options for the SSL context

model_harmonics.utilities.gesdisc_list(HOST: str | list, username: str | None = None, password: str | None = None, build: bool = False, timeout: int | None = None, urs: str = 'urs.earthdata.nasa.gov', parser=<lxml.etree.HTMLParser object>, format: str = '%Y-%m-%d %H:%M', pattern: str = '', sort: bool = False)[source]

List a directory on NASA GES DISC servers

Parameters:
HOST: str or list

remote https host

username: str or NoneType, default None

NASA Earthdata username

password: str or NoneType, default None

NASA Earthdata password

build: bool, default True

Build opener with NASA Earthdata credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

urs: str, default ‘urs.earthdata.nasa.gov’

Earthdata login URS 3 host

parser: obj, default lxml.etree.HTMLParser()

HTML parser for lxml

format: str, default ‘%Y-%m-%d %H:%M’

format for input time string

pattern: str, default ‘’

regular expression pattern for reducing list

sort: bool, default False

sort output list

Returns:
colnames: list

column names in a directory

collastmod: list

last modification times for items in the directory

model_harmonics.utilities.cmr_filter_json(search_results: dict, endpoint: str = 'data', request_type: str = 'application/x-netcdf')[source]

Filter the CMR json response for desired data files

Parameters:
search_results: dict

json response from CMR query

endpoint: str, default ‘data’

url endpoint type

  • 'data': NASA Earthdata https archive

  • 'opendap': NASA Earthdata OPeNDAP archive

  • 's3': NASA Earthdata Cumulus AWS S3 bucket

request_type: str, default ‘application/x-netcdf’

data type for reducing CMR query

Returns:
granule_names: list

Model granule names

granule_urls: list

Model granule urls

granule_mtimes: list

Model granule modification times

model_harmonics.utilities.cmr(short_name: str, version: str | int | None = None, start_date: str | None = None, end_date: str | None = None, provider: str | None = 'GES_DISC', endpoint: str | None = 'data', request_type: str | None = 'application/x-netcdf', verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)[source]

Query the NASA Common Metadata Repository (CMR) for model data

Parameters:
short_name: str

Model shortname in the CMR system

version: str or NoneType, default None

Model version

start_date: str or NoneType, default None

starting date for CMR product query

end_date: str or NoneType, default None

ending date for CMR product query

provider: str, default ‘GES_DISC’

CMR data provider

  • 'GES_DISC': GESDISC

  • 'GESDISCCLD': GESDISC Cumulus

  • 'PODAAC': PO.DAAC Drive

  • 'POCLOUD': PO.DAAC Cumulus

endpoint: str, default ‘data’

url endpoint type

  • 'data': NASA Earthdata https archive

  • 'opendap': NASA Earthdata OPeNDAP archive

  • 's3': NASA Earthdata Cumulus AWS S3 bucket

request_type: str, default ‘application/x-netcdf’

data type for reducing CMR query

verbose: bool, default False

print CMR query information

fid: obj, default sys.stdout

open file object to print if verbose

Returns:
granule_names: list

Model granule names

granule_urls: list

Model granule urls

granule_mtimes: list

Model granule modification times

model_harmonics.utilities.build_request(short_name: str, dataset_version: str | int, url: str | None, host: str | None = None, variables: list | None = [], format: str | None = 'bmM0Lw', service: str | None = 'L34RS_MERRA2', version: str | None = '1.02', bbox: list | None = [-90, -180, 90, 180], **kwargs)[source]

Build requests for the GES DISC subsetting API

Parameters:
short_name: str

Model shortname in the CMR system

dataset_version: str

Model version

url: str

url for granule returned by the CMR system

host: str or NoneType, default None

Override host provider for GES DISC subsetting

Default is host provider given by CMR request

variables: list, default []

Variables for product to subset

format: str, default ‘bmM0Lw’

Coded output format for GES DISC subsetting API

service: str, default ‘L34RS_MERRA2’

GES DISC subsetting API service

version: str, default ‘1.02’

GES DISC subsetting API service version

bbox: list, default [-90,-180,90,180]

Bounding box to spatially subset

**kwargs: dict, default {}

Additional parameters for GES DISC subsetting API

Returns:
request_url: str

Formatted url for GES DISC subsetting API