def test_Image_from_landsat_c1_sr_scaling(): """Test if Landsat SR images images are being scaled""" sr_img = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_044033_20170716') input_img = ee.Image.constant([100, 100, 100, 100, 100, 100, 3000.0, 322])\ .rename(['B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B10', 'pixel_qa'])\ .set({'SATELLITE': ee.String(sr_img.get('SATELLITE')), 'system:id': ee.String(sr_img.get('system:id')), 'system:index': ee.String(sr_img.get('system:index')), 'system:time_start': ee.Number(sr_img.get('system:time_start'))}) output = utils.constant_image_value( ssebop.Image.from_landsat_c1_sr(input_img).lst) # Won't be exact because of emissivity correction assert abs(output['lst'] - 300) <= 10
def test_Image_et_fraction_values(lst, ndvi, dt, tcorr, tmax, expected, tol=0.0001): output = utils.constant_image_value( model.et_fraction(lst=ee.Image.constant(lst), tmax=ee.Image.constant(tmax), tcorr=tcorr, dt=dt)) assert abs(output['et_fraction'] - expected) <= tol
def test_Image_et_fraction_elr_param(lst, dt, elev, tcorr, tmax, elr_flag, expected, tol=0.0001): """Test that elr_flag works and changes ETf values""" output_img = model.et_fraction(lst=ee.Image.constant(lst), tmax=ee.Image.constant(tmax), tcorr=tcorr, dt=dt, elr_flag=elr_flag, elev=elev) output = utils.constant_image_value(ee.Image(output_img)) assert abs(output['et_fraction'] - expected) <= tol
def test_Image_etf_elr_param(lst, ndvi, dt, elev, tcorr, tmax, elr_flag, expected, tol=0.0001): """Test that elr_flag works and changes ETf values""" output_img = ssebop.Image(default_image(lst=lst, ndvi=ndvi), dt_source=dt, elev_source=elev, tcorr_source=tcorr, tmax_source=tmax, elr_flag=elr_flag).etf output = utils.constant_image_value(ee.Image(output_img)) assert abs(output['etf'] - expected) <= tol
def test_Image_tcorr_image_nodata(lst, ndvi, tmax, expected): output = utils.constant_image_value( ssebop.Image(default_image(lst=lst, ndvi=ndvi), tmax_source=tmax).tcorr_image) assert output['tcorr'] is None and expected is None
def test_Image_etr_values(tol=0.0001): output = utils.constant_image_value( ssebop.Image(default_image(), etr_source=10).etr) assert abs(output['etr'] - 10) <= tol
def test_lst_calculation(red, nir, bt, expected, tol=0.000001): output = utils.constant_image_value( landsat.lst(toa_image(red=red, nir=nir, bt=bt))) assert abs(output['lst'] - expected) <= tol
def test_emissivity_calculation(red, nir, expected, tol=0.000001): output = utils.constant_image_value( landsat.emissivity(toa_image(red=red, nir=nir))) assert abs(output['emissivity'] - expected) <= tol
def test_ndvi_calculation(red, nir, expected, tol=0.000001): toa = toa_image(red=red, nir=nir) output = utils.constant_image_value(landsat.ndvi(toa)) assert abs(output['ndvi'] - expected) <= tol
def test_Image_static_lapse_adjust(tmax, elev, threshold, expected, tol=0.0001): output = utils.constant_image_value(model.lapse_adjust( ee.Image.constant(tmax), ee.Image.constant(elev), threshold)) assert abs(output['constant'] - expected) <= tol
def test_c_to_k(c=20, k=293.15, tol=0.000001): output = utils.constant_image_value(utils.c_to_k(ee.Image.constant(c))) assert abs(output['constant'] - k) <= tol
def test_constant_image_value(tol=0.000001): expected = 10.123456789 input_img = ee.Image.constant(expected) output = utils.constant_image_value(input_img) assert abs(output['constant'] - expected) <= tol
def test_Image_tcorr_image_values(lst=300, ndvi=0.8, tmax=306, expected=0.9804, tol=0.0001): output = utils.constant_image_value(model.Image( default_image(lst=lst, ndvi=ndvi), tmax_source=tmax).tcorr_image) assert abs(output['tcorr'] - expected) <= tol
def test_Image_mask_values(): output_img = model.Image( default_image(ndvi=0.5, lst=308), dt_source=10, elev_source=50, tcorr_source=0.98, tmax_source=310).mask output = utils.constant_image_value(output_img) assert output['mask'] == 1
def test_Image_et_values(tol=0.0001): output_img = model.Image( default_image(ndvi=0.5, lst=308), dt_source=10, elev_source=50, tcorr_source=0.98, tmax_source=310, etr_source=10).et output = utils.constant_image_value(output_img) assert abs(output['et'] - 5.8) <= tol
def test_Image_static_ndvi_calculation(red, nir, expected, tol=0.000001): toa = toa_image(red=red, nir=nir) output = utils.constant_image_value(model.Image._ndvi(toa)) # logging.debug('\n Target values: {}'.format(expected)) # logging.debug(' Output values: {}'.format(output)) assert abs(output['ndvi'] - expected) <= tol