Page 1 of 1

Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean

Posted: Mon Dec 04, 2023 3:08 am America/New_York
by chensy540
I am currently analyzing the monthly and 8-day average products of chlorophyll-a on a global 4km grid scale using MODIS Aqua satellite data. In the process of calculating the frequency of NaN values for each pixel, I've observed a distinct pattern of symmetrical stripes in the tropical region, between 16°S and 16°N. Outside this latitudinal range, the data transitions smoothly without similar striping. This striping pattern, parallel to latitude lines, does not seem to be caused by orbital stitching. Importantly, this phenomenon only appears when processing a large dataset; it is not observed with smaller datasets. I am using Python’s NumPy and NetCDF4 for data processing. As I am a novice in this field, there might be some lack of clarity in my description. I kindly ask for your understanding.This is my code:[

def get_occupied_cloud_matrix(path,shape):
dir_list = get_dir_list(path)
total_len = int(len(dir_list))
occupied_contain_matrix = np.zeros(shape)

for idx in trange(total_len,desc='Calculating Cloud Occupied Ratio'):
file_dir = dir_list[idx]
boolen_matrix = np.ones(shape)
with open(file_dir, 'rb') as f:
occupied_cloud_matrix = np.load(file_dir)
boolen_matrix[~np.isnan(occupied_cloud_matrix)] = 0
occupied_contain_matrix += boolen_matrix

occupied_contain_matrix = 100 * (occupied_contain_matrix / total_len)
return occupied_contain_matrix
]

Re: Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean

Posted: Fri Dec 08, 2023 1:01 pm America/New_York
by OB.DAAC - SeanBailey
I don't want you to think your message was lost...just that it's a tricky one to evaluate. We need to better understand how you are treating the data. Can you provide a more complete dscription of your workflow? (BTW, when including code, use the code wrapper so the indentation is preserved - the button looks like this "</>")

Sean

Re: Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean

Posted: Mon Dec 25, 2023 7:16 pm America/New_York
by chensy540
OB.DAAC - SeanBailey wrote:
> I don't want you to think your message was lost...just that it's a tricky one to
> evaluate. We need to better understand how you are treating the data. Can you
> provide a more complete dscription of your workflow? (BTW, when including code, use
> the code wrapper so the indentation is preserved - the button looks like this
> "</>")
>
> Sean

Thank you for your prompt response and for guiding me on how to better present my query. I apologize for the delay in my reply and for any confusion caused by my initial message.

Regarding my workflow, I have processed the MODIS Aqua's global monthly average chlorophyll A data. The first step involved converting this data into a logical matrix to identify the presence of NaN values in each pixel. Subsequently, I aggregated these logical matrices to determine the frequency of NaN occurrences in each pixel over the entire time span. Interestingly, the results revealed symmetric stripes in the tropical latitude range, which I find quite intriguing.

I also want to acknowledge and apologize for the formatting issues in my previous code submission. Sorry I'm a complete novice at this and I couldn't find such a button of code wrapper, so I took a compromise that should preserve the indentation better. Here is the revised code presentation:
----------------------------------------------------------------------------------------------------
def get_occupied_cloud_matrix(path,shape):
//dir_list = get_dir_list(path)
//total_len = int(len(dir_list))
//occupied_contain_matrix = np.zeros(shape)
//for idx in trange(total_len,desc='Calculating Cloud Occupied Ratio'):
////file_dir = dir_list[idx]
////boolen_matrix = np.ones(shape)
////with open(file_dir, 'rb') as f:
//////occupied_cloud_matrix = np.load(file_dir)
//////boolen_matrix[~np.isnan(occupied_cloud_matrix)] = 0
//////occupied_contain_matrix += boolen_matrix
//occupied_contain_matrix = 100 * (occupied_contain_matrix / total_len)
//return occupied_contain_matrix
----------------------------------------------------------------------------------------------------
Thank you once again for your assistance.

Best regards,

SiyuChen