punchbowl.util#

Functions#

validate_image_is_square(→ None)

Check that the input array is square.

output_image_task(→ None)

Prefect task to write an image to disk.

load_image_task(→ ndcube.NDCube)

Prefect task to load data for processing.

average_datetime(→ datetime.datetime)

Compute average datetime from a list of datetimes.

_zvalue_from_index(arr, ind)

Do math.

nan_percentile(→ numpy.ndarray)

Calculate the nan percentile faster of a 3D cube.

Module Contents#

punchbowl.util.validate_image_is_square(image: numpy.ndarray) None#

Check that the input array is square.

punchbowl.util.output_image_task(data: ndcube.NDCube, output_filename: str) None#

Prefect task to write an image to disk.

Parameters:
  • data (NDCube) – data that is to be written

  • output_filename (str) – where to write the file out

Return type:

None

punchbowl.util.load_image_task(input_filename: str, include_provenance: bool = True, include_uncertainty: bool = True) ndcube.NDCube#

Prefect task to load data for processing.

Parameters:
  • input_filename (str) – path to file to load

  • include_provenance (bool) – whether to load the provenance layer

  • include_uncertainty (bool) – whether to load the uncertainty layer

Returns:

loaded version of the image

Return type:

NDCube

punchbowl.util.average_datetime(datetimes: list[datetime.datetime]) datetime.datetime#

Compute average datetime from a list of datetimes.

punchbowl.util._zvalue_from_index(arr, ind)#

Do math.

Private helper function to work around the limitation of np.choose() by employing np.take(). arr has to be a 3D array ind has to be a 2D array containing values for z-indicies to take from arr See: http://stackoverflow.com/a/32091712/4169585 This is faster and more memory efficient than using the ogrid based solution with fancy indexing.

punchbowl.util.nan_percentile(arr: numpy.ndarray, q: list[float] | float) numpy.ndarray#

Calculate the nan percentile faster of a 3D cube.