libera_utils.io.netcdf#

Module containing utilities for writing Libera-conforming NetCDF4 data products

Functions

write_libera_data_product(...[, ...])

Write a Libera data product NetCDF4 file that conforms to data product definition requirements

Classes

NetcdfEngine(value)

String enum class for our allowed NetCDF engines for xarray

class libera_utils.io.netcdf.NetcdfEngine(value)#

String enum class for our allowed NetCDF engines for xarray

The netcdf4 engine does not support writing to filelike objects (e.g. S3 objects via cloudpathlib). The h5netcdf engine does support writing to filelike objects.

Methods

capitalize(/)

Return a capitalized version of the string.

casefold(/)

Return a version of the string suitable for caseless comparisons.

center(width[, fillchar])

Return a centered string of length width.

count(sub[, start[, end]])

Return the number of non-overlapping occurrences of substring sub in string S[start:end].

encode(/[, encoding, errors])

Encode the string using the codec registered for encoding.

endswith(suffix[, start[, end]])

Return True if S ends with the specified suffix, False otherwise.

expandtabs(/[, tabsize])

Return a copy where all tab characters are expanded using spaces.

find(sub[, start[, end]])

Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].

format(*args, **kwargs)

Return a formatted version of S, using substitutions from args and kwargs.

format_map(mapping)

Return a formatted version of S, using substitutions from mapping.

index(sub[, start[, end]])

Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].

isalnum(/)

Return True if the string is an alpha-numeric string, False otherwise.

isalpha(/)

Return True if the string is an alphabetic string, False otherwise.

isascii(/)

Return True if all characters in the string are ASCII, False otherwise.

isdecimal(/)

Return True if the string is a decimal string, False otherwise.

isdigit(/)

Return True if the string is a digit string, False otherwise.

isidentifier(/)

Return True if the string is a valid Python identifier, False otherwise.

islower(/)

Return True if the string is a lowercase string, False otherwise.

isnumeric(/)

Return True if the string is a numeric string, False otherwise.

isprintable(/)

Return True if the string is printable, False otherwise.

isspace(/)

Return True if the string is a whitespace string, False otherwise.

istitle(/)

Return True if the string is a title-cased string, False otherwise.

isupper(/)

Return True if the string is an uppercase string, False otherwise.

join(iterable, /)

Concatenate any number of strings.

ljust(width[, fillchar])

Return a left-justified string of length width.

lower(/)

Return a copy of the string converted to lowercase.

lstrip([chars])

Return a copy of the string with leading whitespace removed.

maketrans(x[, y, z])

Return a translation table usable for str.translate().

partition(sep, /)

Partition the string into three parts using the given separator.

removeprefix(prefix, /)

Return a str with the given prefix string removed if present.

removesuffix(suffix, /)

Return a str with the given suffix string removed if present.

replace(old, new[, count])

Return a copy with all occurrences of substring old replaced by new.

rfind(sub[, start[, end]])

Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].

rindex(sub[, start[, end]])

Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].

rjust(width[, fillchar])

Return a right-justified string of length width.

rpartition(sep, /)

Partition the string into three parts using the given separator.

rsplit(/[, sep, maxsplit])

Return a list of the substrings in the string, using sep as the separator string.

rstrip([chars])

Return a copy of the string with trailing whitespace removed.

split(/[, sep, maxsplit])

Return a list of the substrings in the string, using sep as the separator string.

splitlines(/[, keepends])

Return a list of the lines in the string, breaking at line boundaries.

startswith(prefix[, start[, end]])

Return True if S starts with the specified prefix, False otherwise.

strip([chars])

Return a copy of the string with leading and trailing whitespace removed.

swapcase(/)

Convert uppercase characters to lowercase and lowercase characters to uppercase.

title(/)

Return a version of the string where each word is titlecased.

translate(table, /)

Replace each character in the string using the given translation table.

upper(/)

Return a copy of the string converted to uppercase.

zfill(width, /)

Pad a numeric string with zeros on the left, to fill a field of the given width.

classmethod get_from_config() Literal['netcdf4', 'h5netcdf']#

Retrieve the current netcdf engine config from the package configuration

libera_utils.io.netcdf.write_libera_data_product(data_product_definition: str | CloudPath | Path | LiberaDataProductDefinition, data: dict[str, ndarray[Any, dtype[_ScalarType_co]]] | Dataset, output_path: str | CloudPath | Path, time_variable: str, dynamic_product_attributes: dict[str, Any] | None = None, strict: bool = True, add_archive_path_prefix: bool = False) LiberaDataProductFilename#

Write a Libera data product NetCDF4 file that conforms to data product definition requirements

Parameters:
  • data_product_definition (str | PathType | LiberaDataProductDefinition) – Path to the data product definition against which to verify conformance

  • data (dict[str, NDarray] | xr.Dataset) – Data mapping variable names to numpy data arrays or a fully formed L1A xarray Dataset.

  • output_path (str | PathType) – Base path (directory or S3 prefix) at which to write the product file

  • time_variable (str) – Name of variable that indicates time. This is used to generate the start and end time for the filename.

  • dynamic_product_attributes (dict[str, Any] | None) – Optional dictionary of additional global attributes to add to the data product file. Must conform to the data product definition.

  • strict (bool) – Default True. Raises an exception if the final Dataset doesn’t conform to the data product definition.

  • add_archive_path_prefix (bool) – Note: do not use this to write to a processing dropbox! L2 devs do not need this kwarg. Default False. If True, adds the archive path prefix to the output path when generating the full output path.

Returns:

Filename object containing the full path to the written NetCDF4 data product file.

Return type:

LiberaDataProductFilename