utilities

Download and management utilities for syncing time and auxiliary files

  • Can list a directory on a ftp host

  • Can download a file from a ftp or http host

  • Checks MD5 or sha1 hashes between local and remote files

Source code

General Methods

gravity_toolkit.utilities.get_data_path(relpath: list | str | Path)[source]

Get the absolute path within a package from a relative path

Parameters:
relpath: list, str or pathlib.Path

relative path

class gravity_toolkit.utilities.reify(wrapped)[source]

Class decorator that puts the result of the method it decorates into the instance

gravity_toolkit.utilities.get_hash(local: str | IOBase | Path, algorithm: str = 'md5')[source]

Get the hash value from a local file or BytesIO object

Parameters:
local: obj, str or pathlib.Path

BytesIO object or path to file

algorithm: str, default ‘md5’

hashing algorithm for checksum validation

gravity_toolkit.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

gravity_toolkit.utilities.get_git_status()[source]

Get the status of a git repository as a boolean value

gravity_toolkit.utilities.url_split(s: str)[source]

Recursively split a url path into a list

Parameters:
s: str

url string

gravity_toolkit.utilities.convert_arg_line_to_args(arg_line)[source]

Convert file lines to arguments

Parameters:
arg_line: str

line string containing a single argument and/or comments

gravity_toolkit.utilities.get_unix_time(time_string: str, format: str = '%Y-%m-%d %H:%M:%S')[source]

Get the Unix timestamp value for a formatted date string

Parameters:
time_string: str

formatted time string to parse

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

format for input time string

gravity_toolkit.utilities.isoformat(time_string: str)[source]

Reformat a date string to ISO formatting

Parameters:
time_string: str

formatted time string to parse

gravity_toolkit.utilities.even(value: float)[source]

Rounds a number to an even number less than or equal to original

Parameters:
value: float

number to be rounded

gravity_toolkit.utilities.ceil(value: float)[source]

Rounds a number upward to its nearest integer

Parameters:
value: float

number to be rounded upward

gravity_toolkit.utilities.copy(source: str | Path, destination: str | Path, move: bool = False, **kwargs)[source]

Copy or move a file with all system information

Parameters:
source: str or pathlib.Path

source file

destination: str or pathlib.Path

copied destination file

move: bool, default False

remove the source file

gravity_toolkit.utilities.create_unique_file(filename: str | Path)[source]

Open a unique file adding a numerical instance if existing

Parameters:
filename: str or pathlib.Path

full path to output file

gravity_toolkit.utilities.check_ftp_connection(HOST: str, username: str | None = None, password: str | None = None)[source]

Check internet connection with ftp host

Parameters:
HOST: str

remote ftp host

username: str or NoneType

ftp username

password: str or NoneType

ftp password

gravity_toolkit.utilities.ftp_list(HOST: str | list, username: str | None = None, password: str | None = None, timeout: int | None = None, basename: bool = False, pattern: str | None = None, sort: bool = False)[source]

List a directory on a ftp host

Parameters:
HOST: str or list

remote ftp host path split as list

username: str or NoneType

ftp username

password: str or NoneType

ftp password

timeout: int or NoneType, default None

timeout in seconds for blocking operations

basename: bool, default False

return the file or directory basename instead of the full path

pattern: str or NoneType, default None

regular expression pattern for reducing list

sort: bool, default False

sort output list

Returns:
output: list

items in a directory

mtimes: list

last modification times for items in the directory

gravity_toolkit.utilities.from_ftp(HOST: str | list, username: str | None = None, password: str | None = None, timeout: int | None = None, local: str | ~pathlib.Path | None = None, hash: str = '', chunk: int = 8192, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, mode: oct = 509)[source]

Download a file from a ftp host

Parameters:
HOST: str or list

remote ftp host path

username: str or NoneType

ftp username

password: str or NoneType

ftp password

timeout: int or NoneType, default None

timeout in seconds for blocking operations

local: str, pathlib.Path or NoneType, default None

path to local file

hash: str, default ‘’

MD5 hash of local file

chunk: int, default 8192

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default sys.stdout

open file object to print if verbose

mode: oct, default 0o775

permissions mode of output local file

Returns:
remote_buffer: obj

BytesIO representation of file

gravity_toolkit.utilities._create_default_ssl_context() SSLContext[source]

Creates the default SSL context

gravity_toolkit.utilities._create_ssl_context_no_verify() SSLContext[source]

Creates an SSL context for unverified connections

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

Sets the default options for the SSL context

gravity_toolkit.utilities.check_connection(HOST: str, context: ~ssl.SSLContext = <ssl.SSLContext object>)[source]

Check internet connection with http host

Parameters:
HOST: str

remote http host

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

gravity_toolkit.utilities.http_list(HOST: str | list, timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, parser=<lxml.etree.HTMLParser object>, format: str = '%Y-%m-%d %H:%M', pattern: str = '', sort: bool = False)[source]

List a directory on an Apache http Server

Parameters:
HOST: str or list

remote http host path

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

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

gravity_toolkit.utilities.from_http(HOST: str | list, timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, local: str | ~pathlib.Path | None = None, hash: str = '', chunk: int = 16384, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, mode: oct = 509)[source]

Download a file from a http host

Parameters:
HOST: str or list

remote http host path split as list

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

local: str, pathlib.Path or NoneType, default None

path to local file

hash: str, default ‘’

MD5 hash of local file

chunk: int, default 16384

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default sys.stdout

open file object to print if verbose

mode: oct, default 0o775

permissions mode of output local file

Returns:
remote_buffer: obj

BytesIO representation of file

gravity_toolkit.utilities.from_json(HOST: str | list, timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>) dict[source]

Load a JSON response from a http host

Parameters:
HOST: str or list

remote http host path split as list

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

gravity_toolkit.utilities.attempt_login(urs: str, context: ~ssl.SSLContext = <ssl.SSLContext object>, password_manager: bool = True, get_ca_certs: bool = False, redirect: bool = False, authorization_header: bool = True, **kwargs)[source]

Attempt to build a urllib opener for NASA Earthdata

Parameters:
urs: str

Earthdata login URS 3 host

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

password_manager: bool, default True

Create password manager context using default realm

get_ca_certs: bool, default False

Get list of loaded “certification authority” certificates

redirect: bool, default False

Create redirect handler object

authorization_header: bool, default True

Add base64 encoded authorization header to opener

username: str, default from environmental variable

NASA Earthdata username

password: str, default from environmental variable

NASA Earthdata password

retries: int, default 5

number of retry attempts

netrc: str, default ~/.netrc

path to .netrc file for authentication

Returns:
opener: obj

OpenerDirector instance

gravity_toolkit.utilities.build_opener(username: str, password: str, context: ~ssl.SSLContext = <ssl.SSLContext object>, password_manager: bool = False, get_ca_certs: bool = False, redirect: bool = False, authorization_header: bool = True, urs: str = 'https://urs.earthdata.nasa.gov')[source]

Build urllib opener for NASA Earthdata with supplied credentials

Parameters:
username: str or NoneType, default None

NASA Earthdata username

password: str or NoneType, default None

NASA Earthdata password

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

password_manager: bool, default False

Create password manager context using default realm

get_ca_certs: bool, default False

Get list of loaded “certification authority” certificates

redirect: bool, default False

Create redirect handler object

authorization_header: bool, default True

Add base64 encoded authorization header to opener

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

Earthdata login URS 3 host

Returns:
opener: obj

OpenerDirector instance

gravity_toolkit.utilities.get_token(HOST: str = 'https://urs.earthdata.nasa.gov/api/users/token', username: str | None = None, password: str | None = None, build: bool = True, context: ~ssl.SSLContext = <ssl.SSLContext object>, urs: str = 'urs.earthdata.nasa.gov')[source]

Generate a NASA Earthdata User Token

Parameters:
HOST: str or list

NASA Earthdata token API 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 and check credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

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

NASA Earthdata URS 3 host

Returns:
token: dict

JSON response with NASA Earthdata User Token

gravity_toolkit.utilities.list_tokens(HOST: str = 'https://urs.earthdata.nasa.gov/api/users/tokens', username: str | None = None, password: str | None = None, build: bool = True, context: ~ssl.SSLContext = <ssl.SSLContext object>, urs: str = 'urs.earthdata.nasa.gov')[source]

List the current associated NASA Earthdata User Tokens

Parameters:
HOST: str

NASA Earthdata list token API 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 and check credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

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

NASA Earthdata URS 3 host

Returns:
tokens: list

JSON response with NASA Earthdata User Tokens

gravity_toolkit.utilities.revoke_token(token: str, HOST: str = 'https://urs.earthdata.nasa.gov/api/users/revoke_token', username: str | None = None, password: str | None = None, build: bool = True, context: ~ssl.SSLContext = <ssl.SSLContext object>, urs: str = 'urs.earthdata.nasa.gov')[source]

Generate a NASA Earthdata User Token

Parameters:
token: str

NASA Earthdata token to be revoked

HOST: str

NASA Earthdata revoke token API 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 and check credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

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

NASA Earthdata URS 3 host

gravity_toolkit.utilities.s3_client(HOST: str = 'https://archive.podaac.earthdata.nasa.gov/s3credentials', timeout: int | None = None, region_name: str = 'us-west-2')[source]

Get AWS s3 client for PO.DAAC Cumulus

Parameters:
HOST: str

PO.DAAC or ECCO AWS S3 credential host

timeout: int or NoneType, default None

timeout in seconds for blocking operations

region_name: str, default ‘us-west-2’

AWS region name

Returns:
client: obj

AWS s3 client for PO.DAAC Cumulus

gravity_toolkit.utilities.s3_bucket(presigned_url: str) str[source]

Get a s3 bucket name from a presigned url

Parameters:
presigned_url: str

s3 presigned url

Returns:
bucket: str

s3 bucket name

gravity_toolkit.utilities.s3_key(presigned_url: str) str[source]

Get a s3 bucket key from a presigned url

Parameters:
presigned_url: str

s3 presigned url

Returns:
key: str

s3 bucket key for object

gravity_toolkit.utilities.check_credentials(HOST: str = 'https://archive.podaac.earthdata.nasa.gov/s3credentials')[source]

Check that entered NASA Earthdata credentials are valid

HOST: str

full url to protected credential website

gravity_toolkit.utilities.drive_list(HOST: str | list, username: str | None = None, password: str | None = None, build: bool = True, timeout: int | None = None, urs: str = 'podaac-tools.jpl.nasa.gov', parser=<lxml.etree.HTMLParser object>, pattern: str = '', sort: bool = False)[source]

List a directory on JPL PO.DAAC or ECCO Drive

Parameters:
HOST: str or list

remote https host

username: str or NoneType, default None

NASA Earthdata username

password: str or NoneType, default None

JPL PO.DAAC Drive WebDAV password

build: bool, default True

Build opener and check WebDAV credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

urs: str, default ‘podaac-tools.jpl.nasa.gov’

JPL PO.DAAC or ECCO login URS 3 host

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

HTML parser for lxml

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

gravity_toolkit.utilities.from_drive(HOST: str | list, username: str | None = None, password: str | None = None, build: bool = True, timeout: int | None = None, urs: str = 'podaac-tools.jpl.nasa.gov', local: str | ~pathlib.Path | None = None, hash: str = '', chunk: int = 16384, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, mode: oct = 509)[source]

Download a file from a JPL PO.DAAC or ECCO Drive https server

Parameters:
HOST: str or list

remote https host

username: str or NoneType, default None

NASA Earthdata username

password: str or NoneType, default None

JPL PO.DAAC Drive WebDAV password

build: bool, default True

Build opener and check WebDAV credentials

timeout: int or NoneType, default None

timeout in seconds for blocking operations

urs: str, default ‘podaac-tools.jpl.nasa.gov’

JPL PO.DAAC or ECCO login URS 3 host

local: str or NoneType, default None

path to local file

hash: str, default ‘’

MD5 hash of local file

chunk: int, default 16384

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default sys.stdout

open file object to print if verbose

mode: oct, default 0o775

permissions mode of output local file

Returns:
remote_buffer: obj

BytesIO representation of file

gravity_toolkit.utilities.cmr_product_shortname(mission: str, center: str, release: str, level: str = 'L2', version: str = '0', product: list = ['GAA', 'GAB', 'GAC', 'GAD', 'GSM'])[source]

Create a list of product shortnames for NASA Common Metadata Repository (CMR) queries

Parameters:
mission: str

GRACE (grace) or GRACE Follow-On (grace-fo)

center: str

GRACE/GRACE-FO processing center

release: str

GRACE/GRACE-FO data release

level: str, default ‘L2’

GRACE/GRACE-FO product level

  • 'L1A'

  • 'L1B'

  • 'L2'

version: str, default ‘0’

GRACE/GRACE-FO Level-2 data version

product: list, default [‘GAA’,’GAB’,’GAC’,’GAD’,’GSM’]

GRACE/GRACE-FO Level-2 data products

Returns:
cmr_shortnames: list

shortnames for CMR queries

gravity_toolkit.utilities.cmr_readable_granules(product: str, level: str = 'L2', solution: str = 'BA01', version: str = '0')[source]

Create readable granule names pattern for NASA Common Metadata Repository (CMR) queries

Parameters:
product: str

GRACE/GRACE-FO data product

level: str, default ‘L2’

GRACE/GRACE-FO product level

  • 'L1A'

  • 'L1B'

  • 'L2'

solution: str, default ‘BA01’

monthly gravity field solution for Release-06

  • 'BA01': unconstrained monthly gravity field solution to d/o 60

  • 'BB01': unconstrained monthly gravity field solution to d/o 96

  • 'BC01': computed monthly dealiasing solution to d/o 180

version: str, default ‘0’

GRACE/GRACE-FO Level-2 data version

Returns:
pattern: str

readable granule names pattern for CMR queries

gravity_toolkit.utilities.cmr_filter_json(search_results: dict, endpoint: str = 'data')[source]

Filter the NASA Common Metadata Repository (CMR) json response for desired data files

Parameters:
search_results: dict

json response from CMR query

endpoint: str, default ‘data’

url endpoint type

  • 'data': PO.DAAC https archive

  • 's3': PO.DAAC Cumulus AWS S3 bucket

Returns:
granule_names: list

GRACE/GRACE-FO granule names

granule_urls: list

GRACE/GRACE-FO granule urls

granule_mtimes: list

GRACE/GRACE-FO granule modification times

gravity_toolkit.utilities.cmr_metadata_json(search_results: dict, endpoint: str = 'data')[source]

Filter the NASA Common Metadata Repository (CMR) json response for desired metadata files

Parameters:
search_results: dict

json response from CMR query

endpoint: str, default ‘data’

url endpoint type

  • 'documentation': PO.DAAC documentation archive

  • 'data': PO.DAAC https archive

  • 's3': PO.DAAC Cumulus AWS S3 bucket

Returns:
collection_urls: list

urls from collection of endpoint type

gravity_toolkit.utilities.cmr(mission: str | None = None, center: str | None = None, release: str | None = None, level: str | None = 'L2', product: str | None = None, solution: str | None = 'BA01', version: str | None = '0', start_date: str | None = None, end_date: str | None = None, provider: str | None = 'POCLOUD', endpoint: str | None = 'data', context: ~ssl.SSLContext = <ssl.SSLContext object>, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)[source]

Query the NASA Common Metadata Repository (CMR) for GRACE/GRACE-FO data

Parameters:
mission: str or NoneType, default None

GRACE ('grace') or GRACE Follow-On ('grace-fo')

center: str or NoneType, default None

GRACE/GRACE-FO processing center

release: str or NoneType, default None

GRACE/GRACE-FO data release

level: str or NoneType, default ‘L2’

GRACE/GRACE-FO product level

product: str or NoneType, default None

GRACE/GRACE-FO data product

solution: str or NoneType, default ‘BA01’

monthly gravity field solution for Release-06

version: str or NoneType, default ‘0’

GRACE/GRACE-FO Level-2 data 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 or NoneType, default ‘POCLOUD’

CMR data provider

  • 'PODAAC': PO.DAAC Drive

  • 'POCLOUD': PO.DAAC Cumulus

endpoint: str or NoneType, default ‘data’

url endpoint type

  • 'data': PO.DAAC https archive

  • 's3': PO.DAAC Cumulus AWS S3 bucket

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

verbose: bool, default False

print CMR query information

fid: obj, default sys.stdout

open file object to print if verbose

Returns:
granule_names: list

GRACE/GRACE-FO granule names

granule_urls: list

GRACE/GRACE-FO granule urls

granule_mtimes: list

GRACE/GRACE-FO granule modification times

gravity_toolkit.utilities.cmr_metadata(mission: str | None = None, center: str | None = None, release: str | None = None, level: str | None = 'L2', version: str | None = '0', provider: str | None = 'POCLOUD', endpoint: str | None = 'data', pattern: str | None = '', context: ~ssl.SSLContext = <ssl.SSLContext object>, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)[source]

Query the NASA Common Metadata Repository (CMR) for GRACE/GRACE-FO auxiliary data and documentation

Parameters:
mission: str or NoneType, default None

GRACE ('grace') or GRACE Follow-On ('grace-fo')

center: str or NoneType, default None

GRACE/GRACE-FO processing center

release: str or NoneType, default None

GRACE/GRACE-FO data release

level: str, default ‘L2’

GRACE/GRACE-FO product level

version: str, default ‘0’

GRACE/GRACE-FO Level-2 data version

provider: str, default ‘POCLOUD’

CMR data provider

  • 'PODAAC': PO.DAAC Drive

  • 'POCLOUD': PO.DAAC Cumulus

endpoint: str, default ‘data’

url endpoint type

  • 'documentation': PO.DAAC documentation archive

  • 'data': PO.DAAC https archive

  • 's3': PO.DAAC Cumulus AWS S3 bucket

pattern: str, default ‘’

regular expression pattern for reducing list

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

verbose: bool, default False

print CMR query information

fid: obj, default sys.stdout

open file object to print if verbose

Returns:
collection_urls: list

urls from collection of endpoint type

gravity_toolkit.utilities.compile_regex_pattern(PROC: str, DREL: str, DSET: str, mission: str | None = None, solution: str | None = 'BA01', version: str | None = '\\d+')[source]

Compile regular expressor operators for finding a specified subset of GRACE/GRACE-FO Level-2 spherical harmonic files

Parameters:
PROC: str

GRACE/GRACE-FO data processing center

  • 'CNES': French Centre National D’Etudes Spatiales

  • 'CSR': University of Texas Center for Space Research

  • 'GFZ': German Research Centre for Geosciences (GeoForschungsZentrum)

  • 'JPL': Jet Propulsion Laboratory

DREL: str

GRACE/GRACE-FO data release

DSET: str

GRACE/GRACE-FO data product

  • 'GAA': non-tidal atmospheric correction

  • 'GAB': non-tidal oceanic correction

  • 'GAC': combined non-tidal atmospheric and oceanic correction

  • 'GAD': ocean bottom pressure product

  • 'GSM': corrected monthly static gravity field product

mission: str or NoneType, default None

GRACE/GRACE-FO mission shortname

  • 'GRAC': GRACE

  • 'GRFO': GRACE-FO

solution: str, default ‘BA01’

monthly gravity field solution for Release-06

  • 'BA01': unconstrained monthly gravity field solution to d/o 60

  • 'BB01': unconstrained monthly gravity field solution to d/o 96

  • 'BC01': computed monthly dealiasing solution to d/o 180

version: str, default ‘0’

GRACE/GRACE-FO Level-2 data version

gravity_toolkit.utilities.from_figshare(directory: str | ~pathlib.Path, article: str = '7388540', timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, chunk: int | None = 16384, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, pattern: str = '(CSR|GFZ|JPL)_(RL\\d+)_(.*?)_SLF_iter.txt$', mode: oct = 509)[source]

Download [60] geocenter files from figshare

Parameters:
directory: str

download directory

article: str

figshare article number

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

chunk: int, default 16384

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default sys.stdout

open file object to print if verbose

pattern: str, default ‘(CSR|GFZ|JPL)_(RL\d+)_(.*?)_SLF_iter.txt$’

regular expression pattern for reducing list

mode: oct, default 0o775

permissions mode of output local file

gravity_toolkit.utilities.to_figshare(files: list, username: str | None = None, password: str | None = None, directory: str | None | ~pathlib.Path = None, timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, get_ca_certs: bool = False, verbose: bool = False, chunk: int = 8192)[source]

Send files to figshare using secure FTP uploader

Parameters:
files: list

files to upload

username: str or NoneType, default None

ftp username

password: str or NoneType, default None

ftp password

directory: str or NoneType, default None

figshare subdirectory for sending data

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

get_ca_certs: bool, default False

get list of loaded “certification authority” certificates

verbose: bool, default False

print ftp transfer information

chunk: int, default 8192

chunk size for transfer encoding

gravity_toolkit.utilities.from_csr(directory: str | ~pathlib.Path, variable: str | list | tuple | None = None, version: str = 'RL06.1LRI', timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, chunk: int | None = 16384, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, mode: oct = 509)[source]

Download files from the University of Texas Center for Space Research (UTCSR)

Parameters:
directory: str

download directory

variable: str, list, tuple or NoneType, default None

CSR variable to download

  • 'SLR': low degree SLR solutions

  • 'geocenter': SLR geocenter solutions

  • 'LRI': level-2 solutions from LRI

version: str, default ‘RL06.1LRI’

Version of the LRI dataset to download

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

chunk: int, default 16384

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default fid.stdout

open file object to print if verbose

mode: oct, default 0o775

permissions mode of output local file

gravity_toolkit.utilities.from_gsfc(directory: str | ~pathlib.Path, host: str = 'https://earth.gsfc.nasa.gov/sites/default/files/geo/slr-weekly', timeout: int | None = None, context: ~ssl.SSLContext = <ssl.SSLContext object>, chunk: int | None = 16384, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, copy: bool = False, mode: oct = 509)[source]

Download satellite laser ranging (SLR) files from NASA Goddard Space Flight Center (GSFC)

Parameters:
directory: str

download directory

host: str, default ‘https://earth.gsfc.nasa.gov/sites/default/files/geo/slr-weekly’

url for the GSFC SLR weekly fields

timeout: int or NoneType, default None

timeout in seconds for blocking operations

context: obj, default gravity_toolkit.utilities._default_ssl_context

SSL context for urllib opener object

chunk: int, default 16384

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default fid.stdout

open file object to print if verbose

copy: bool, default False

create a copy of file for archival purposes

mode: oct, default 0o775

permissions mode of output local file

gravity_toolkit.utilities.from_gfz(directory: str | ~pathlib.Path, version: str = '0004', timeout: int | None = None, chunk: int | None = 8192, verbose: bool = False, fid=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, mode: oct = 509)[source]

Download GravIS and satellite laser ranging (SLR) files from the German Research Centre for Geosciences (GeoForschungsZentrum, GFZ)

Parameters:
directory: str

download directory

version: str, default ‘0004’

version of the GravIS Level-2B data products to download

timeout: int or NoneType, default None

timeout in seconds for blocking operations

chunk: int, default 8192

chunk size for transfer encoding

verbose: bool, default False

print file transfer information

fid: obj, default sys.stdout

open file object to print if verbose

mode: oct, default 0o775

permissions mode of output local file

gravity_toolkit.utilities.icgem_list(host: str = 'http://icgem.gfz-potsdam.de/tom_longtime', timeout: int | None = None, parser=<lxml.etree.HTMLParser object>)[source]

Parse the table of static gravity field models on the GFZ International Centre for Global Earth Models (ICGEM) server

Parameters:
host: str

url for the GFZ ICGEM gravity field table

timeout: int or NoneType

timeout in seconds for blocking operations

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

HTML parser for lxml

Returns:
colfiles: dict

Static gravity field file urls mapped by field name