AT1_TOA_1P version 0

AT1_TOA_1P

This definition is based on version 3/K of the ENVISAT AATSR product specification PO-RS-MDA-GS-2009 Vol7

root type

binary record
idfield namedefinition
0mph
ascii record "MPH"size: 1247
1sph
ascii record "AATSR_SPH_long"size: 2190
2dsd
ascii array[dim_0]
dim_0: $num_dsd
ascii record "DSD"size: 280
3summary_quality_ads
binary array[dim_0]
Summary Quality ADS

dim_0: $num_dsr[0]
binary record "ATS_TOA_1P_ADSR_sq_aatsr_rec_data"size: 86

available: $ds_available[0] != 0
4geolocation_ads
binary array[dim_0]
Grid pixel latitude and longtitude topographic corrections ADS

dim_0: $num_dsr[1]
binary record "ATS_TOA_1P_ADSR_loc_aatsr_rec_data"size: 626

available: $ds_available[1] != 0
5scan_pixel_x_and_y_ads
binary array[dim_0]
Scan pixel x and y ADS

dim_0: $num_dsr[2]
binary record "ATS_TOA_1P_ADSR_scan_aatsr_rec_data"size: 830

available: $ds_available[2] != 0
6nadir_view_solar_angles_ads
binary array[dim_0]
Nadir view solar angles ADS

dim_0: $num_dsr[3]
binary record "ATS_TOA_1P_ADSR_sa_aatsr_rec_data"size: 216

available: $ds_available[3] != 0
7fward_view_solar_angles_ads
binary array[dim_0]
Forward view solar angles ADS

dim_0: $num_dsr[4]
binary record "ATS_TOA_1P_ADSR_sa_aatsr_rec_data"size: 216

available: $ds_available[4] != 0
8visible_calib_coefs_gads
binary array[dim_0]
Visible calibration coefficients GADS

dim_0: $num_dsr[5]
binary record "ATS_VC1_AX_GADS_aatsr_rec_data"size: 154

available: $ds_available[5] != 0
9nadir_view_scan_pix_num_ads
binary array[dim_0]
Scan and pixel number nadir view ADS

dim_0: $num_dsr[6]
binary record "ATS_TOA_1P_ADSR_pix_aatsr_rec_data"size: 2068

available: $ds_available[6] != 0
10fward_view_scan_pix_num_ads
binary array[dim_0]
Scan and pixel number forward view ADS

dim_0: $num_dsr[7]
binary record "ATS_TOA_1P_ADSR_pix_aatsr_rec_data"size: 2068

available: $ds_available[7] != 0
11nadir_toa_mds_11500_12500_nm
binary array[dim_0]
12 micron nadir view MDS

dim_0: $num_dsr[8]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[8] != 0
12nadir_toa_mds_10400_11300_nm
binary array[dim_0]
11 micron nadir view MDS

dim_0: $num_dsr[9]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[9] != 0
13nadir_toa_mds_03505_03895_nm
binary array[dim_0]
3.7 micron nadir view MDS

dim_0: $num_dsr[10]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[10] != 0
14nadir_toa_mds_01580_01640_nm
binary array[dim_0]
1.6 micron nadir view MDS

dim_0: $num_dsr[11]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[11] != 0
15nadir_toa_mds_00855_00875_nm
binary array[dim_0]
0.87 micron nadir view MDS

dim_0: $num_dsr[12]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[12] != 0
16nadir_toa_mds_00649_00669_nm
binary array[dim_0]
0.67 micron nadir view MDS

dim_0: $num_dsr[13]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[13] != 0
17nadir_toa_mds_00545_00565_nm
binary array[dim_0]
0.55 micron nadir view MDS

dim_0: $num_dsr[14]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[14] != 0
18fward_toa_mds_11500_12500_nm
binary array[dim_0]
12 micron forward view MDS

dim_0: $num_dsr[15]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[15] != 0
19fward_toa_mds_10400_11300_nm
binary array[dim_0]
11 micron forward view MDS

dim_0: $num_dsr[16]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[16] != 0
20fward_toa_mds_03505_03895_nm
binary array[dim_0]
3.7 micron forward view MDS

dim_0: $num_dsr[17]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[17] != 0
21fward_toa_mds_01580_01640_nm
binary array[dim_0]
1.6 micron forward view MDS

dim_0: $num_dsr[18]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[18] != 0
22fward_toa_mds_00855_00875_nm
binary array[dim_0]
0.87 micron forward view MDS

dim_0: $num_dsr[19]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[19] != 0
23fward_toa_mds_00649_00669_nm
binary array[dim_0]
0.67 micron forward view MDS

dim_0: $num_dsr[20]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[20] != 0
24fward_toa_mds_00545_00565_nm
binary array[dim_0]
0.55 micron forward view MDS

dim_0: $num_dsr[21]
binary record "ATS_TOA_1P_MDSR_brgt_aatsr_rec_data"size: 1044

available: $ds_available[21] != 0
25nadir_view_confidence_mds
binary array[dim_0]
Confidence words nadir view MDS

dim_0: $num_dsr[22]
binary record "ATS_TOA_1P_MDSR_conf_aatsr_rec_data"size: 1044

available: $ds_available[22] != 0
26fward_view_confidence_mds
binary array[dim_0]
Confidence words forward view MDS

dim_0: $num_dsr[23]
binary record "ATS_TOA_1P_MDSR_conf_aatsr_rec_data"size: 1044

available: $ds_available[23] != 0
27nadir_view_cloud_mds
binary array[dim_0]
Cloud flag nadir view MDS

dim_0: $num_dsr[24]
binary record "ATS_TOA_1P_MDSR_cl_aatsr_rec_data"size: 1044

available: $ds_available[24] != 0
28fward_view_cloud_mds
binary array[dim_0]
Cloud flag forward view MDS

dim_0: $num_dsr[25]
binary record "ATS_TOA_1P_MDSR_cl_aatsr_rec_data"size: 1044

available: $ds_available[25] != 0

detection rule

This product definition is applicable if a product matches the following rule:

bytes(/,0,8) == "PRODUCT=" and
bytes(/,9,10) == "AT1_TOA_1P"

product variables

namesizeinitialisation
num_dsd$num_dsd = int(/mph/num_dsd)
num_ds$num_ds = 26
ds_to_dsd_index[$num_ds]$ds_to_dsd_index[0] = index(/dsd, str(./ds_name) == "SUMMARY_QUALITY_ADS         ");
$ds_to_dsd_index[1] = index(/dsd, str(./ds_name) == "GEOLOCATION_ADS             ");
$ds_to_dsd_index[2] = index(/dsd, str(./ds_name) == "SCAN_PIXEL_X_AND_Y_ADS      ");
$ds_to_dsd_index[3] = index(/dsd, str(./ds_name) == "NADIR_VIEW_SOLAR_ANGLES_ADS ");
$ds_to_dsd_index[4] = index(/dsd, str(./ds_name) == "FWARD_VIEW_SOLAR_ANGLES_ADS ");
$ds_to_dsd_index[5] = index(/dsd, str(./ds_name) == "VISIBLE_CALIB_COEFS_GADS    ");
$ds_to_dsd_index[6] = index(/dsd, str(./ds_name) == "NADIR_VIEW_SCAN_PIX_NUM_ADS ");
$ds_to_dsd_index[7] = index(/dsd, str(./ds_name) == "FWARD_VIEW_SCAN_PIX_NUM_ADS ");
$ds_to_dsd_index[8] = index(/dsd, str(./ds_name) == "11500_12500_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[9] = index(/dsd, str(./ds_name) == "10400_11300_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[10] = index(/dsd, str(./ds_name) == "03505_03895_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[11] = index(/dsd, str(./ds_name) == "01580_01640_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[12] = index(/dsd, str(./ds_name) == "00855_00875_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[13] = index(/dsd, str(./ds_name) == "00649_00669_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[14] = index(/dsd, str(./ds_name) == "00545_00565_NM_NADIR_TOA_MDS");
$ds_to_dsd_index[15] = index(/dsd, str(./ds_name) == "11500_12500_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[16] = index(/dsd, str(./ds_name) == "10400_11300_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[17] = index(/dsd, str(./ds_name) == "03505_03895_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[18] = index(/dsd, str(./ds_name) == "01580_01640_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[19] = index(/dsd, str(./ds_name) == "00855_00875_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[20] = index(/dsd, str(./ds_name) == "00649_00669_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[21] = index(/dsd, str(./ds_name) == "00545_00565_NM_FWARD_TOA_MDS");
$ds_to_dsd_index[22] = index(/dsd, str(./ds_name) == "NADIR_VIEW_CONFIDENCE_MDS   ");
$ds_to_dsd_index[23] = index(/dsd, str(./ds_name) == "FWARD_VIEW_CONFIDENCE_MDS   ");
$ds_to_dsd_index[24] = index(/dsd, str(./ds_name) == "NADIR_VIEW_CLOUD_MDS        ");
$ds_to_dsd_index[25] = index(/dsd, str(./ds_name) == "FWARD_VIEW_CLOUD_MDS        ")
ds_available[$num_ds]for i = 0 to $num_ds - 1 do
$ds_available[i] = if($ds_to_dsd_index[i] != -1 and !(bytes(/dsd[$ds_to_dsd_index[i]]/filename,8) == "NOT USED") and !(bytes(/dsd[$ds_to_dsd_index[i]]/filename,7) == "MISSING"), 1, 0)
ds_offset[$num_ds]for i = 0 to $num_ds - 1 do
$ds_offset[i] = 8 * int(/dsd[$ds_to_dsd_index[i]]/ds_offset)
num_dsr[$num_ds]for i = 0 to $num_ds - 1 do
$num_dsr[i] = int(/dsd[$ds_to_dsd_index[i]]/num_dsr)