def test_perform_ndvi_mask_old_version(mock_api): # Test perform ndvi + mask - old version for backwards compatibility a = AnalyticsEngine(api=mock_api) e = ExecutionEngine(api=mock_api) # Lake Burley Griffin dimensions = { 'longitude': { 'range': (149.07, 149.18) }, 'latitude': { 'range': (-35.32, -35.28) }, 'time': { 'range': (datetime(1990, 1, 1), datetime(1990, 12, 31)) } } arrays = a.create_array(('LANDSAT_5', 'NBAR'), ['band_40', 'band_30'], dimensions, 'get_data') ndvi = a.apply_bandmath(arrays, '((array1 - array2) / (array1 + array2))', 'ndvi') pq = a.create_array(('LANDSAT_5', 'PQ'), ['band_pixelquality'], dimensions, 'pq') mask = a.apply_cloud_mask(ndvi, pq, 'mask') e.execute_plan(a.plan)
def main(): a = AnalyticsEngine() e = ExecutionEngine() # Lake Burley Griffin dimensions = { 'x': { 'range': (149.07, 149.18) }, 'y': { 'range': (-35.32, -35.28) }, 'time': { 'range': (datetime(1990, 1, 1), datetime(1990, 12, 31)) } } arrays = a.create_array(('LANDSAT_5', 'nbar'), ['nir', 'red'], dimensions, 'get_data') ndvi = a.apply_bandmath(arrays, '((array1 - array2) / (array1 + array2))', 'ndvi') pq = a.create_array(('LANDSAT_5', 'pqa'), ['pixelquality'], dimensions, 'pq') mask = a.apply_cloud_mask(ndvi, pq, 'mask') e.execute_plan(a.plan) plot(e.cache['mask']) b30_result = e.cache['get_data']['array_result']['red'] b40_result = e.cache['get_data']['array_result']['nir'] ndvi_result = e.cache['ndvi']['array_result']['ndvi'] pq_result = e.cache['pq']['array_result']['pixelquality'] mask_result = e.cache['mask']['array_result']['mask'] b30_data = Data(x=b30_result[:, ::-1, :], label='B30') b40_data = Data(x=b40_result[:, ::-1, :], label='B40') ndvi_data = Data(x=ndvi_result[:, ::-1, :], label='ndvi') pq_data = Data(x=pq_result[:, ::-1, :], label='pq') mask_data = Data(x=mask_result[:, ::-1, :], label='mask') long_data = Data(x=b40_result.coords['x'], label='long') lat_data = Data(x=b40_result.coords['y'], label='lat') time_data = Data(x=b40_result.coords['time'], label='time') collection = DataCollection([ mask_data, pq_data, ndvi_data, b30_data, b40_data, long_data, lat_data, time_data, ]) app = GlueApplication(collection) app.start()
def test_perform_ndvi_mask_old_version(mock_api): # Test perform ndvi + mask - old version for backwards compatibility a = AnalyticsEngine(api=mock_api) e = ExecutionEngine(api=mock_api) # Lake Burley Griffin dimensions = {'longitude': {'range': (149.07, 149.18)}, 'latitude': {'range': (-35.32, -35.28)}, 'time': {'range': (datetime(1990, 1, 1), datetime(1990, 12, 31))}} arrays = a.create_array(('LANDSAT_5', 'NBAR'), ['band_40', 'band_30'], dimensions, 'get_data') ndvi = a.apply_bandmath(arrays, '((array1 - array2) / (array1 + array2))', 'ndvi') pq = a.create_array(('LANDSAT_5', 'PQ'), ['band_pixelquality'], dimensions, 'pq') mask = a.apply_cloud_mask(ndvi, pq, 'mask') e.execute_plan(a.plan)
def main(): a = AnalyticsEngine() e = ExecutionEngine() # Lake Burley Griffin dimensions = {'x': {'range': (149.07, 149.18)}, 'y': {'range': (-35.32, -35.28)}, 'time': {'range': (datetime(1990, 1, 1), datetime(1990, 12, 31))}} arrays = a.create_array(('LANDSAT_5', 'nbar'), ['nir', 'red'], dimensions, 'get_data') ndvi = a.apply_bandmath(arrays, '((array1 - array2) / (array1 + array2))', 'ndvi') pq = a.create_array(('LANDSAT_5', 'pqa'), ['pixelquality'], dimensions, 'pq') mask = a.apply_cloud_mask(ndvi, pq, 'mask') e.execute_plan(a.plan) plot(e.cache['mask']) b30_result = e.cache['get_data']['array_result']['red'] b40_result = e.cache['get_data']['array_result']['nir'] ndvi_result = e.cache['ndvi']['array_result']['ndvi'] pq_result = e.cache['pq']['array_result']['pixelquality'] mask_result = e.cache['mask']['array_result']['mask'] b30_data = Data(x=b30_result[:, ::-1, :], label='B30') b40_data = Data(x=b40_result[:, ::-1, :], label='B40') ndvi_data = Data(x=ndvi_result[:, ::-1, :], label='ndvi') pq_data = Data(x=pq_result[:, ::-1, :], label='pq') mask_data = Data(x=mask_result[:, ::-1, :], label='mask') long_data = Data(x=b40_result.coords['x'], label='long') lat_data = Data(x=b40_result.coords['y'], label='lat') time_data = Data(x=b40_result.coords['time'], label='time') collection = DataCollection([mask_data, pq_data, ndvi_data, b30_data, b40_data, long_data, lat_data, time_data, ]) app = GlueApplication(collection) app.start()