I am currently analyzing the monthly and 8day average products of chlorophylla 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
]
Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean
Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean
 Attachments

 shortcut.jpg (196.41 KiB) Not viewed yet
Filters:

 User Services
 Posts: 1474
 Joined: Wed Sep 18, 2019 6:15 pm America/New_York
 Been thanked: 5 times
Re: Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean
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
Sean
Re: Observation of Symmetrical Stripes in Tropical Regions Using MODIS Aqua Satellite Data Mean
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
> 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