imap_processing.swapi.l1.swapi_l1.decompress_count#

imap_processing.swapi.l1.swapi_l1.decompress_count(count_data: ndarray, compression_flag: ndarray) ndarray[tuple[int, ...], dtype[_ScalarType_co]]#

Will decompress counts based on compression indicators.

Decompression algorithm: There are 3 compression regions:

1) 0 <= value <=65535
2) 65536 <= value <= 1,048,575
3) 1,048,576 <= value

Pseudocode:

if XXX_RNG_ST0 == 0: # Not compressed
actual_value = XXX_CNT0
elif (XXX_RNG_ST0==1 && XXX_CNT0==0xFFFF): # Overflow
actual_value = <some constant that indicates overflow>
elif (XXX_RNG_ST0==1 && XXX_CNT0!=0xFFFF):
actual_value = XXX_CNT0 * 16
Parameters:
Returns:

new_count – Array with decompressed counts.

Return type:

numpy.ndarray