diff --git a/mvcm/__init__.py b/mvcm/__init__.py index 5363726ee1280fe131c8532eef32ad3b76fef6ea..77bb305ee11182429bbf51f421b4b183b2e15775 100644 --- a/mvcm/__init__.py +++ b/mvcm/__init__.py @@ -1,3 +1,3 @@ """Set up version.""" -__version__ = "0.3.0" +__version__ = "0.3.1" diff --git a/mvcm/read_data.py b/mvcm/read_data.py index 3a5cf48e64c943c34005ebe580c53e6569a43aa1..f37377d4b1d8a2620c6724688ab50009e9ce645f 100644 --- a/mvcm/read_data.py +++ b/mvcm/read_data.py @@ -126,7 +126,9 @@ class ReadData(CollectInputs): high resolution data flag """ - satellite: str = field(validator=[validators.instance_of(str), validators.in_(["snpp"])]) + satellite: str = field( + validator=[validators.instance_of(str), validators.in_(["snpp", "noaa20", "noaa21"])] + ) sensor: str = field(validator=[validators.instance_of(str), validators.in_(["viirs"])]) hires: bool = field(default=False, validator=[validators.instance_of(bool)]) # type: ignore diff --git a/mvcm/utility_functions.py b/mvcm/utility_functions.py index e90fe9af38f4a550f8755638f71465ac1e2e028b..013c087f20620e19cba0748f2e6ab52cc6a8eca8 100644 --- a/mvcm/utility_functions.py +++ b/mvcm/utility_functions.py @@ -13,14 +13,14 @@ def cloud_mask_spi(data: xr.Dataset): xdim = int(m05.shape[0] / 2) ydim = int(m05.shape[1] / 2) spi = xr.DataArray( - np.empty((2, xdim, ydim), dtype=np.float32), + np.empty((xdim, ydim, 2), dtype=np.float32), dims=("SPI_nbands", "number_of_lines", "number_of_pixels"), ) - spi[0, :, :] = 100 * ( + spi[:, :, 0] = 100 * ( m05.coarsen(number_of_lines=2, number_of_pixels=2).std() / m05.coarsen(number_of_lines=2, number_of_pixels=2).mean() ) - spi[1, :, :] = 100 * ( + spi[:, :, 1] = 100 * ( m07.coarsen(number_of_lines=2, number_of_pixels=2).std() / m07.coarsen(number_of_lines=2, number_of_pixels=2).mean() ) diff --git a/mvcm/write_output.py b/mvcm/write_output.py index 902936a04dfb2d814aa8ce8684a6882723fe5c7c..c916ff46b61a3699b52633b88a3f0e3571422eb1 100644 --- a/mvcm/write_output.py +++ b/mvcm/write_output.py @@ -183,12 +183,12 @@ def save_output( }, } spi_data = { - "SPI_Cloud_Mask": { - "dims": ("SPI_nbands", "number_of_lines", "number_of_pixels"), + "Cloud_Mask_SPI": { + "dims": ("number_of_lines", "number_of_pixels", "SPI_nbands"), "data": data.spi.values, "attrs": { "units": "none", - "long_name": "VIIRS SPI", + "long_name": "Cloud Mask SPI", "_FillValue": -999.9, "valid_min": 0.0, "valid_max": 100.0, diff --git a/thresholds/thresholds.mvcm.noaa20.v0.0.1.yaml b/thresholds/thresholds.mvcm.noaa20.v0.0.1.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fd0a7d09994c2cfbc02c430ae66404b4dc28cb2b --- /dev/null +++ b/thresholds/thresholds.mvcm.noaa20.v0.0.1.yaml @@ -0,0 +1,919 @@ +# MODIS-VIIRS Continuity Cloud Mask (MVCCM) Thresholds + +# Version string +thresholds_file_ver: v3.3.1_NOAA20 + +Land_Day: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.25 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: [-16.0, -14.0, -12.0, 1.0, 1.0] + perform: True + Visible_Reflectance_Test: + thr: [0.207, 0.169, 0.132, 1.0, 1.0] # used to be dlref1 + adj: 0.94 # used to be dl_b1bias_adj + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True + dlvrat: [1.80, 1.85, 1.90, 1.0, 1.0] + # dl11_12lcmult : 0.3 + # dl11_12hcadj : 1.25 + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + +Land_Night: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.0 + adj: 0 + bt1: 270.0 # WILL FIND A BETTER NAME AT SOME POINT, MAYBE + lat: 30.0 + perform: True + 4-12um_BTD_Thin_Cirrus_Test: + thr: [15.0, 10.0, 5.00, 1.0, 1.0] + perform: True + 7.3-11um_BTD_Mid_Level_Cloud_Test: + thr: [-8.0, -10.0, -11.0, 1.0, 1.0] # nl7_11s + 11-4um_BT_Difference_Test_Land: + thr_low: [0.0, -0.5, -1.0, 1.0] + thr_mid: [-0.5, 6.0, 0.5, 1.0] + thr_hi: [6.5, 6.0, 5.5, 1.0] + coeffs: [-0.3476, 0.5307, -0.1930] + int_adj: 0 + ndvi: 0.25 + ndvi_australia: 0.4 + bt_diff_bounds: [1.0, -1.0] + perform: True + Surface_Temperature_Test: + desert_thr: 20.0 + regular_thr: 12.0 + channel_diff_11-12um_thr: [-0.2, 1.0] + channel_diff_11-4um_thr: [-0.5, 1.0] + perform: + True + # Surface_Temperature_Test_df1: [-0.2, 1.0] + # Surface_Temperature_Test_df2: [-0.5, 1.0] + # Surface_Temperature_Test_difference: [-0.2, 1.0, -0.5, 1.0] # <- this merges the previous two arrays + # Surface_Temperature_Test_1: 20.0 # | might be worth figuring out if we can + # Surface_Temperature_Test_2: 12.0 # | merge these three coefficients + # Surface_Temperature_Test_pfm: 1.0 # __| + # Surface_Temperature_Test: [20.0, 12.0, 1.0] # <- First attempt to merge the three values above + nlbt1: 270.0 + nl_lat: + 30.0 + # nl_ndvi : 0.25 + # nl_ndvi_Aust : 0.40 + # nl_intadj : 0.0 + nl_btd1: + -2.0 + # nl11_4coef : [-0.3476, 0.5307, -0.1930] + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + +Land_Day_Coast: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.25 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: [-16.0, -14.0, -12.0, 1.0, 1.0] + perform: True + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.207, 0.169, 0.132, 1.0, 1.0] + adj: 0.94 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True +# dl11_12lcmult_t2 : 0.3 +# dl11_12hcadj_t2 : 1.25 + +Land_Day_Desert: + # lds11_12hi : [3.5, 1.0] + 11-12um_Cirrus_Test: + coeffs: [3.5, 1.0] + cmult: 0.3 + adj: 1.25 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: + [2.0, 0.0, -2.0, -24.0, -26.0, -28.0, 1.0, 1.0] # I need to double check, but this seems to be + # the correct set of thresholds, not the ones below!! + # thr: [-28.0, -26.0, -24.0, -2.0, 0.0, 2.0, 1.0, 1.0] # this replaces lds11_4hi and lds11_4lo. The values + perform: + True # are sorted left to right so that they follow the + # scheme: Lo-Mid-Hi--Hi-Mid-Lo This is the opposite + # of Ocean_Day + bt_cutoff: 320 + # lds11_4hi : [2.0, 0.0, -2.0, 1.00, 1.0] + # lds11_4lo : [-28.0, -26.0, -24.0, 1.00] + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.326, 0.288, 0.250, 1.00, 1.0] + adj: 0.94 + ndvi_thr: 0.25 # this used to be lds_ndvi + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True + GEMI_Test: + gemi0: [0.085, 0.095, 0.115, 1.00, 1.0] + gemi1: [0.145, 0.170, 0.220, 1.00] + gemi2: [0.310, 0.335, 0.360, 1.00] + perform: True + ldsbt1: 320.0 +# lds11_12lcmult : 0.3 +# lds11_12hcadj : 1.25 + +Land_Day_Desert_Coast: + # lds11_12hi_c : [3.5, 1.0] + 11-12um_Cirrus_Test: + coeffs: [3.5, 1.0] + cmult: 0.3 + adj: 1.25 + perform: True + 11-4um_Oceanic_Stratus_Test: + # thr: [-23.0, -21.0, -19.0, -2.0, 0.0, 2.0, 1.0, 1.0] + thr: [2.0, 0.0, -2.0, -19.0, -21.0, -23.0, 1.0, 1.0] + perform: True + bt_cutoff: 320 + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.326, 0.288, 0.250, 1.0, 1.0] + adj: 0.94 + ndvi_thr: 0.25 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True + ldsbt1_c: 320.0 +# lds11_12lcmult_c : 0.3 +# lds11_12hcadj_c : 1.25 + +Ocean_Day: + 11um_Test: + thr: [267.0, 270.0, 273.0, 1.0, 1.0] + perform: True + SST_Test: + thr: [3.000, 2.500, 2.000, 1.0, 1.0] + coeffs: [1.8860, 0.9380, 0.1280, 1.094] + perform: True + 8.6-11um_Test: + thr: [-0.50, -1.00, -1.50, 1.0, 1.0] + perform: True + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.25 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: [-11.0, -9.0, -7.0, 1.0, 1.0] + perform: True + NIR_Reflectance_Test: + thr: [0.062, 0.043, 0.029, 1.0, 1.0] + coeffs: [1.7291, 0.0715, -0.0026, 0.000025889] + adj: 0.0050 + bias: 0.96 + perform: True + midpt_coeff: 0.0200 + locut_coeff: 0.0100 + Vis/NIR_Ratio_Test: + thr: [0.837, 0.889, 0.934, 1.001, 1.154, 1.205, 1.0, 1.0] # This replace dovrathi and dovratlo + perform: + True # The values are sorted left to right + # so that they follow the scheme: + # Hi-Mid-Lo--Lo-Mid-Hi + # Last two values are power and switch + # to turn the test on/off + 1.6_2.1um_NIR_Reflectance_Test: + thr: + [0.0, 0.0, 0.0, 1.0, 1.0] # This is a placeholder to force consistency with NIR_Reflectance_Test. + # In both cases the only value used is thr[3] AFAIK + coeffs: + [ + 1.01339303876915, + -0.00277128813739, + 0.00027804834484, + -0.00001549681141, + 0.00000016623006, + 0.00000000000000, + ] + bias: 0.98 # this corresponds to do_b6bias_adj + adj: 0.0125 + locut_coeff: 0.0100 + midpt_coeff: 0.0070 + perform: True + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + # vnir_ratio_hi : [1.001, 1.154, 1.205, 1.0, 1.0] + # vnir_ratio_lo : [0.934, 0.889, 0.837, 1.0] + 1.38um_High_Cloud_Test: + coeffs: + [-0.2419, 0.0455, -0.0024, 0.000059029, -0.00000069964, 0.000000003204] + adj: 0.0010 + szafac: 4.0 + perform: True + do_b6bias_adj: 0.98 + do_b7bias_adj: 0.97 + +Ocean_Night: + 11um_Test: + thr: [267.0, 270.0, 273.0, 2.0, 1.0] + perform: True + SST_Test: + thr: [3.000, 2.500, 2.000, 1.0, 1.0] + coeffs: [1.8860, 0.9380, 0.1280, 1.094] + perform: True + 8.6-11um_Test: + thr: [-0.5, -1.0, -1.5, 1.0, 1.0] + perform: True + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.0 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: [1.25, 1.0, 0.25, 1.0, 1.0] + perform: True + Water_Vapor_Cloud_Test: + thr: [14.0, 15.0, 16.0, 1.0, 1.0] + perform: True + 11um_Variability_Test: + thr: [3.0, 6.0, 7.0, 1.0, 1.0] + variability: 0.40 + perform: True + 11-4um_BT_Difference_Test_Ocean: + coeffs: [-0.7093, 0.1128, -0.1567] + corr: 0.0 # no_intadj + locut_coeff: [-4.0, 4.0] # no11_4load + midpt_coeff: [-2.5, 2.5] # no11_4mdad + hicut_coeff: [-1.5, 1.5] # no11_4hiad + perform: True # no11_4_pfm + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + +Polar_Day_Land: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 0.3 + perform: False + 11-4um_Oceanic_Stratus_Test: + thr: [-16.0, -14.0, -12.0, 1.0, 1.0] + perform: False + pdlh20: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.207, 0.169, 0.132, 1.0, 1.0] + adj: 0.94 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True + +Polar_Night_Land: + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0 + adj: 0 # I NEED TO WORK ON THIS + bt1: 270.0 + perform: True + pnlbt2: 270.0 + Surface_Temperature_Test: + desert_thr: 20.0 + regular_thr: 12.0 + channel_diff_11-12um_thr: [0, 1.0] + channel_diff_11-4um_thr: [-0.5, 1.0] + perform: + True + # Surface_Temperature_Test_df1: [0.0, 1.0] + # Surface_Temperature_Test_df2: [-0.5, 1.0] + # Surface_Temperature_Test_difference: [-0.2, 1.0, -0.5, 1.0] # <- this merges the previous two arrays + # Surface_Temperature_Test_1: 20.0 # | might be worth figuring out if we can + # Surface_Temperature_Test_2: 12.0 # | merge these three coefficients + # Surface_Temperature_Test_pfm: 1.0 # __| + # Surface_Temperature_Test: [20.0, 12.0, 1.0] # <- First attempt to merge the three values above + 11-4um_BT_Difference_Test_Land: + low: [2.00, 1.70, 1.40, 1.0] + mid1: [1.70, 0.70, 0.3, 1.0] + mid2: [0.00, 0.00, 0.00, 0.0] + mid3: [0.00, 0.00, 0.00, 0.0] + high: [1.00, 0.70, 0.40, 1.0] + bt11_bounds: [235, 0.0, 0.0, 265] + perform: True + 7.3-11um_BTD_Mid_Level_Cloud_Test: + low: [-1.00, 0.00, 1.00, 1.0, 1.0] # pn_7_11l + mid1: [0.00, -4.50, -1.00, 1.0] # pn_7_11m1 + mid2: [-4.50, -10.50, -1.00, 1.0] # pn_7_11m2 + mid3: [-10.50, -20.0, -1.00, 1.0] # pn_7_11m3 + high: [-21.0, -20.0, -19.0, 1.0] # pn_7_11h + bt11_bounds: [220.0, 245.0, 255.0, 265.0] # bt11_bnds2 + 4-12um_BTD_Thin_Cirrus_Test: + low: [2.00, 1.70, 1.40, 1.0] + mid1: [1.70, 0.70, 0.300, 1.0] + mid2: [0.00, 0.00, 0.00, 0.0] + mid3: [0.00, 0.00, 0.00, 0.0] + high: [1.00, 0.70, 0.40, 1.0] + bt11_bounds: [235.0, 0.0, 0.0, 265.0] + perform: True +# pnl_11_4_pfm : 1.0 +# pnl_7_11_pfm : 1.0 +# pnl_4_12_pfm : 1.0 + +Polar_Day_Coast: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0 # I NEED TO WORK ON THIS + adj: 0 # I NEED TO WORK ON THIS + perform: False + 11-4um_Oceanic_Stratus_Test: + thr: [-16.0, -14.0, -12.0, 1.0, 1.0] + perform: False + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.207, 0.169, 0.132, 1.0, 1.0] + adj: 0.94 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.0, 1.0] + tpw: -10.00 + perform: True + +Polar_Day_Desert: + 11-12um_Cirrus_Test: + coeffs: [3.5, 1.0] + cmult: 0 # I NEED TO WORK ON THIS + adj: 0 # I NEED TO WORK ON THIS + perform: False + 11-4um_Oceanic_Stratus_Test: + # thr: [-22.0, -20.0, -18.0, -2.0, 0.0, 2.0, 1.0, 1.0] + thr: [2.0, 0.0, -2.0, -18.0, -20.0, -22.0, 1.0, 1.0] + perform: False # I disable this test while I figure out if I need + bt_cutoff: 320.0 # the bt_cutoff parameter + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.326, 0.288, 0.250, 1.00, 1.0] + adj: 0.94 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.00, 1.0] + tpw: -10.00 + perform: True + GEMI_Test: + gemi0: [0.085, 0.110, 0.135, 1.00, 1.0] + gemi1: [0.170, 0.220, 0.270, 1.00] + gemi2: [0.310, 0.335, 0.360, 1.00] + perform: True + +Polar_Day_Desert_Coast: + 11-12um_Cirrus_Test: + coeffs: [3.5, 1.0] + cmult: 0 # I NEED TO WORK ON THIS + adj: 0 # I NEED TO WORK ON THIS + perform: False + 11-4um_Oceanic_Stratus_Test: + # thr: [-23.0, -21.0, -19.0, -2.0, 0.0, 2.0, 1.0, 1.0] + thr: [2.0, 0.0, -2.0, -19.0, -21.0, -23.0, 1.0, 1.0] + perform: False # see Polar_Day_Desert + bt_cutoff: 320.0 + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + Visible_Reflectance_Test: + thr: [0.326, 0.288, 0.250, 1.00, 1.0] + adj: 0.94 + perform: True + 1.38um_High_Cloud_Test: + thr: [0.0375, 0.0250, 0.0125, 1.00, 1.0] + tpw: -10.00 + perform: True + +Polar_Day_Snow: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0 # I NEED TO WORK ON THIS + adj: 0 # I NEED TO WORK ON THIS + perform: False + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + 1.38um_High_Cloud_Test: + thr: [0.060, 0.0525, 0.045, 1.0, 1.0] + tpw: 0.75 + perform: True + # 11-4um_BT_Difference_Test_Land: + 11-4um_Oceanic_Stratus_Test: + low: [20.0, 18.0, 16.0, 1.0] + mid1: [18.0, 16.0, 2.0, 1.0] + mid2: [0.0, 0.0, 0.0, 0.0] + mid3: [0.0, 0.0, 0.0, 0.0] + high: [18.0, 16.0, 14.0, 1.0] + bt11_bounds: [230.0, 0.0, 0.0, 245.0] + bt_cutoff: 230.0 + perform: False + dps11_12adj: 0.8 + +Polar_Night_Snow: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0 + adj: 0 # I NEED TO WORK ON THIS + bt1: 270.0 + perform: True + 4-12um_BTD_Thin_Cirrus_Test: + low: [4.50, 4.00, 3.50, 1.0] # pn_4_12l + mid1: [4.00, 2.00, 0.500, 1.0] # pn_4_12m1 + mid2: [0.00, 0.00, 0.00, 0.0] # pn_4_12m2 + mid3: [0.00, 0.00, 0.00, 0.0] # pn_4_12m3 + high: [2.50, 2.00, 1.50, 1.0] # pn_4_12h + bt11_bounds: [235.0, 0.0, 0.0, 265.0] # bt11_bounds + perform: True + 7.3-11um_BTD_Mid_Level_Cloud_Test: + low: [-1.00, 0.00, 1.00, 1.0, 1.0] # pn_7_11l + mid1: [0.00, -4.50, -1.00, 1.0] # pn_7_11m1 + mid2: [-4.50, -10.50, -1.00, 1.0] # pn_7_11m2 + mid3: [-10.50, -20.0, -1.00, 1.0] # pn_7_11m3 + high: [-21.0, -20.0, -19.0, 1.0] # pn_7_11h + low_ice: [0.00, 1.00, 2.00, 1.0] # pn_7_11lw + mid1_ice: [1.00, -7.00, -1.00, 1.0] # pn_7_11m1w + mid2_ice: [-7.00, -16.50, -1.00, 1.0] # pn_7_11m2w + mid3_ice: [-16.50, -20.0, -1.00, 1.0] # pn_7_11m3w + high_ice: [-21.0 -20.0, -19.0, 1.0] # pn_7_11hw + bt11_bounds: [220.0, 245.0, 255.0, 265.0] # bt11_bnds2 + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + 11-4um_BT_Difference_Test_Land: + top: + low: [2.00, 1.70, 1.40, 1.0] + mid1: [1.70, 0.30, 0.300, 1.0] + mid2: [0.00, 0.00, 0.00, 0.0] + mid3: [0.00, 0.00, 0.00, 0.0] + high: [0.60, 0.30, 0.00, 1.0] + bottom: + low: [-3.00, -2.50, -2.00, 1.0] + mid1: [-2.50, -2.50, -0.50, 1.0] + mid2: [0.00, 0.00, 0.00, 0.0] + mid3: [0.00, 0.00, 0.00, 0.0] + high: [-3.00, -2.50, -2.00, 1.0] + bt_thr: 230.0 # pnbt3 + tpw_thr: 0.2 # pntpw + perform: True + pn11_12adj: 0.8 + pnbt2: 270.0 + +Polar_Day_Ocean: + 11um_Test: + thr: [267.0, 270.0, 273.0, 1.0, 1.0] + perform: True + SST_Test: + thr: [3.000, 2.500, 2.000, 1.0, 1.0] + coeffs: [1.886, 0.938, 0.128, 1.094] + perform: True + 8.6-11um_Test: + thr: [-0.50, -1.00, -1.50, 1.0, 1.0] + perform: False + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.25 + perform: False + NIR_Reflectance_Test: + thr: [0.062, 0.043, 0.029, 1.0, 1.0] + coeffs: [1.7291, 0.0715, -0.0026, 0.000025889] + adj: 0.0050 + bias: 0.96 + midpt_coeff: 0.0200 + locut_coeff: 0.0100 + perform: True + Vis/NIR_Ratio_Test: + thr: [0.837, 0.889, 0.934, 1.001, 1.154, 1.205, 1.0, 1.0] + perform: True + 1.6_2.1um_NIR_Reflectance_Test: + thr: [0.0, 0.0, 0.0, 1.0, 1.0] + coeffs: + [ + 1.01339303876915, + -0.00277128813739, + 0.00027804834484, + -0.00001549681141, + 0.00000016623006, + 0.00000000000000, + ] + bias: 0.98 + adj: 0.0125 + locut_coeff: 0.0100 + midpt_coeff: 0.0070 + perform: True + 11-4um_Oceanic_Stratus_Test: + thr: [-11.0, -9.0, -7.0, 1.0, 1.0] + perform: False + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + pdo_b26pfm: 1.0 + pdo_b2bias_adj: 0.96 + pdo_b7bias_adj: 0.97 + 1.38um_High_Cloud_Test: + coeffs: + [-0.2419, 0.0455, -0.0024, 0.000059029, -0.00000069964, 0.000000003204] + adj: 0.0010 + szafac: 4.0 + perform: True + +Polar_Night_Ocean: + 11um_Test: + thr: [267.0, 270.0, 273.0, 1.0, 1.0] + perform: True + SST_Test: + thr: [3.000, 2.500, 2.000, 1.0, 1.0] + coeffs: [1.8860, 0.9380, 0.1280, 1.094] + perform: True + 8.6-11um_Test: + thr: [-0.5, -1.0, -1.5, 1.0, 1.0] + perform: True + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 1.0 + perform: True + pnobt1: 280.0 + 11-4um_Oceanic_Stratus_Test: + thr: [1.25, 1.0, 0.25, 1.0, 1.0] + perform: True + Water_Vapor_Cloud_Test: + thr: [14.0, 15.0, 16.0, 1.0, 1.0] + perform: True + 11um_Variability_Test: + thr: [3.0, 6.0, 7.0, 1.0, 1.0] + variability: 040 + perform: True + 11-4um_BT_Difference_Test_Ocean: + coeffs: [-0.7093, 0.1128, -0.1567] + corr: 0.0 # pno_intadj + locut_coeff: [-4.0, 4.0] # pno11_4load + midpt_coeff: [-2.5, 2.5] # pno11_4mdad + hicut_coeff: [-1.5, 1.5] # pno11_4hiad + perform: True # pno11_4_pfm + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + +Day_Snow: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0.3 + adj: 0.8 + perform: True + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + 1.38um_High_Cloud_Test: + thr: [0.060, 0.0525, 0.045, 1.0, 1.0] + tpw: 0.75 + perform: True + # 11-4um_BT_Difference_Test_Land: + # low: [20.0, 18.0, 16.0, 1.0] + # mid1: [18.0, 16.0, 2.0, 1.0] + # mid2: [0.0, 0.0, 0.0, 0.0] + # mid3: [0.0, 0.0, 0.0, 0.0] + # high: [18.0, 16.0, 14.0, 1.0] + # bt11_bounds: [230.0, 0.0, 0.0, 245.0] + # perform: True + 11-4um_Oceanic_Stratus_Test: + low: [20.0, 18.0, 16.0, 1.0] + mid1: [18.0, 16.0, 2.0, 1.0] + mid2: [0.0, 0.0, 0.0, 0.0] + mid3: [0.0, 0.0, 0.0, 0.0] + high: [18.0, 16.0, 14.0, 1.0] + bt11_bounds: [230.0, 0.0, 0.0, 245.0] + bt_cutoff: 230.0 + perform: True + ds11_12adj: 0.8 + ds11_12lcmult: 0.3 + ds11_12hcmult: 0.3 + +Night_Snow: + 11-12um_Cirrus_Test: + coeffs: [3.0, 1.0] + cmult: 0 + adj: 0 # I NEED TO WORK ON THIS + bt1: 270.0 + perform: True + nsbt2: 270.0 + 4-12um_BTD_Thin_Cirrus_Test: + thr: [4.50, 4.00, 3.50, 1.0, 1.0] + perform: True + 11-4um_BT_Difference_Test_Land: + thr: [0.70, 0.60, 0.50, 1.0, 1.0] + bottom: + low: [20.0, 18.0, 16.0, 1.0] + mid1: [18.0, 16.0, 2.0, 1.0] + mid2: [0.0, 0.0, 0.0, 0.0] + mid3: [0.0, 0.0, 0.0, 0.0] + high: [18.0, 16.0, 14.0, 1.0] + bt11_bounds: [230.0, 0.0, 0.0, 245.0] + bt_thr: 230.0 + tpw_thr: 0.2 + perform: True + 7.3-11um_BTD_Mid_Level_Cloud_Test: + low: [-1.00, 0.00, 1.00, 1.0, 1.0] # pn_7_11l + mid1: [0.00, -4.50, -1.00, 1.0] # pn_7_11m1 + mid2: [-4.50, -10.50, -1.00, 1.0] # pn_7_11m2 + mid3: [-10.50, -20.0, -1.00, 1.0] # pn_7_11m3 + high: [-21.0, -20.0, -19.0, 1.0] # pn_7_11h + low_ice: [0.00, 1.00, 2.00, 1.0] # pn_7_11lw + mid1_ice: [1.00, -7.00, -1.00, 1.0] # pn_7_11m1w + mid2_ice: [-7.00, -16.50, -1.00, 1.0] # pn_7_11m2w + mid3_ice: [-16.50, -20.0, -1.00, 1.0] # pn_7_11m3w + high_ice: [-21.0 -20.0, -19.0, 1.0] # pn_7_11hw + bt11_bounds: [220.0, 245.0, 255.0, 265.0] # bt11_bnds2 + perform: False + CO2_High_Clouds_Test: [222.0, 224.0, 226.0, 1.0, 1.0] + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + ns11_12adj: 0.8 + +Antarctic_Day: + Water_Vapor_High_Clouds_Test: [215.0, 220.0, 225.0, 1.0, 1.0] + 11-4um_Oceanic_Stratus_Test: + low: [26.0, 23.0, 20.0, 1.0] + mid1: [23.0, 15.0, 3.0, 1.0] + mid2: [0.0, 0.0, 0.0, 0.0] + mid3: [0.0, 0.0, 0.0, 0.0] + high: [18.0, 15.0, 12.0, 1.0] + bt11_bounds: [240.0, 0.0, 0.0, 255.0] + bt_cutoff: 0.0 + perform: True + +Daytime_Ocean_Spatial_Variability: + var_11um: 0.40 + var_0_86um: 0.0020 + +Sun_Glint: + btdiff_37_11um: 13.0 + m09: 0.568 + m02: 0.001 + band2_0deg: [.1296, .1152, .1008, 1.0] # snglnt0_b2 + band2_10deg: [.1152, .0624, .0144, 1.0] # snglnt10_b2 + band2_20deg: [.0624, .0432, .0144, 1.0] # snglnt20_b2 + band7_0deg: [.1176, .1078, .0980, 1.0] # snglnt0_b7 + band7_10deg: [.1078, .0686, .0098, 1.0] # snglnt10_b7 + band7_20deg: [.0686, .0196, .0098, 1.0] # snglnt20_b7 + bounds: [0.0, 10.0, 25.0, 40.0] # snglnt_bounds + snglnt: + [0.97, 1.02, 1.07, 1.12, 1.17, 1.28, 1.0, 1.0] # This replaces snglntv, snglntvch snglntvcl + # The values are sorted left to right such that + # Hi-Mid-Lo--Lo-Mid-Hi + # I also added the two 1.0 at the end to + # maintain consistency with the other + # thresholds for conf_test_dble + # snglntv : [1.02, 1.17] + # snglntvch : [0.97, 1.28] + # snglntvcl : [1.07, 1.12] + +Land_Restoral: + m05m04_ratio_desert: 1.96 # ldsr5_4_thr + m05m04_ratio: 2.94 # ldr5_4_thr + m20m22diff: 11.0 # ld20m22 + m22m31diff: 15.0 # ld22m31 + bt11: [295.0, 300.0, 305.0] # ldsbt11 + bt11_desert: [290.0, 295.0, 305.0] # ldsbt11bd + bt11_land_night: [287.5, 292.5, 297.5] # lnbt11 + +Night_Snow_Inversion: + pn65_11: [10.0, 1.0] + pn13_11: [3.0, 1.0] + pn7_11: [5.0, 1.0] + n65_11: [10.0, 1.0] + +Snow_Mask: + bt11: 280.0 + ndsi: 0.31 + greenland_ndsi: 0.66 + ref2: 0.1056 + diff85_11: 0.0 + diff85_11hel: 1.5 + diff37_11: 11.0 + diff37_11hel: 16.0 + mnir: 0.196 + lsfcdif: 20.0 + wsfcdif: 20.0 + bt1: 273.0 + prd_ndvi_const: -0.2015 + +Coastal_NDVI_Thresholds: + coast_ndvi: [-0.18, 0.40] + +# Ocean NDVI and shallow (turbid) water test thresholds. +Ocean_NDVI_and_Shallow_Water: + ndvi_boundaries: [-0.35, 0.40] + std_124: 0.0023 + +Thin_Cirrus_Tests: + tci_ref3_tpw: 0.75 + dltci: [0.0250, 0.0125] + dstci: [0.0350, 0.0300] + +# Power cosine(VZA) is raised to in VZA-correction codes +VZA_correction: + vzcpow: [0.75, 0.75, 0.25] + +# Thresholds used in calculating 0.66 and 0.413 um cloud test thresholds +Misc: + des_ndvi: 0.25 + fill_ndvi: [32.000, 0.00] # replaces fill_ndvi1 and fill_ndvi2 + ndvi_bnd1: 0.05 + ndvi_bnd2: 0.95 + adj_fac_desert: 0.10 + adj_fac_land: 0.00 + +# Coefficients for band 1 land thresholds +Coeffs_Band1_land_thresh: + - [ + 32.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + 42.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + 52.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + ] + - [ + 24.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + 28.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + 32.00000000, + 0.00000000, + 0.00000000, + 0.00000000, + ] + - [ + 99.13076923, + -2.00907925, + 0.01492075, + -0.00003531, + 122.19090909, + -2.32652292, + 0.01659848, + -0.00003681, + 142.66293706, + -2.57860528, + 0.01773252, + -0.00003685, + ] + - [ + 85.07902098, + -1.59413364, + 0.01123310, + -0.00002556, + 144.56573427, + -2.81054779, + 0.01967366, + -0.00004324, + 204.35454545, + -4.03411810, + 0.02816667, + -0.00006103, + ] + - [ + 85.03846154, + -1.50831391, + 0.01006760, + -0.00002199, + 165.15314685, + -3.24716783, + 0.02255594, + -0.00004965, + 242.06363636, + -4.90912587, + 0.03445455, + -0.00007587, + ] + - [ + 81.00979021, + -1.37731935, + 0.00881294, + -0.00001859, + 220.36783217, + -4.44111888, + 0.03087762, + -0.00006888, + 359.72587413, + -7.50491841, + 0.05294231, + -0.00011917, + ] + - [ + 76.94055944, + -1.35441725, + 0.00896096, + -0.00001952, + 172.36783217, + -3.33144911, + 0.02242308, + -0.00004810, + 267.90909091, + -5.31620047, + 0.03597727, + -0.00007698, + ] + - [ + 85.83006993, + -1.55480575, + 0.01025932, + -0.00002216, + 160.73706294, + -3.07291375, + 0.02041900, + -0.00004330, + 237.37622378, + -4.63444833, + 0.03091317, + -0.00006525, + ] + - [ + 105.02447552, + -1.98017094, + 0.01319522, + -0.00002877, + 135.50699301, + -2.59097902, + 0.01749301, + -0.00003811, + 165.33006993, + -3.18872183, + 0.02171387, + -0.00004734, + ] + - [ + 105.02447552, + -1.98017094, + 0.01319522, + -0.00002877, + 135.50699301, + -2.59097902, + 0.01749301, + -0.00003811, + 165.33006993, + -3.18872183, + 0.02171387, + -0.00004734, + ] + +# Coefficients for band 8 land thresholds +Coeffs_Band8_land_thresh: + - [ + 282.74916084, + -5.42869658, + 0.03660781, + -0.00008092, + 344.87048951, + -6.80660839, + 0.04770163, + -0.00010991, + 407.83734266, + -8.20392385, + 0.05894114, + -0.00013926, + ] + - [ + 229.50727273, + -4.31606061, + 0.02868182, + -0.00006212, + 316.38517483, + -6.41910256, + 0.04603089, + -0.00010787, + 403.78188811, + -8.52743395, + 0.06335781, + -0.00015340, + ] + - [ + 239.32391608, + -4.49928127, + 0.02977214, + -0.00006436, + 270.31741259, + -5.33625680, + 0.03757168, + -0.00008609, + 301.76013986, + -6.18557498, + 0.04546562, + -0.00010806, + ]