Skip to content

Consider the saturation flag for cloud free profile segmentation? #82

Description

@martin-rdz

When processing the arielle at Neumayer data, @ulysses78 and me realized that the cloud screening has some issues in the case of saturation.

Example for 24 Jan 2023:
Image

However, the 532 and 1064 total signals are saturated as correctly indicated by data_cube.flagSaturation (slightly decreased data_cube.polly_config_dict['saturate_thresh'] = 80)

Image

In fact the saturation flag is not considered in profilesegment.segment at all

flagValPrf = data_cube.flagCloudFree & (~data_cube.retrievals_highres['depCalMask']) \
    & (~data_cube.retrievals_highres['shutterOnMask']) & (~data_cube.retrievals_highres['fogMask'])

A quick monkey patch to the fog mask for testing resasons gave promising results (not saying that we should go for that flag in the operational setup):

original_fog_mask = data_cube.retrievals_highres['fogMask'].copy()
mask_saturation = np.sum(
    np.squeeze(data_cube.flagSaturation[:, :, data_cube.gf(1064, 'total', 'FR')]),
    axis=1)

data_cube.retrievals_highres['fogMask'] = original_fog_mask | (mask_saturation > 5)
data_cube.cloudScreen()
data_cube.cloudFreeSeg()
....
Image

Before we consider changes, the proposed changes for #76 and branch 76-cloudy_aggregation, especially the newly introduced genFlagValPrf might be a good option.
Maybe it's good to have a flexible approach where the saturation flag depending on campaign and system (or usecase)? Any opinions? @HavardStridBuholdt @HolgerPollyNet

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions