def bathymetry(sent_dir, out_composite): bands = get_bands(sent_dir) red = gdal.Open(bands[3]) red_band = norm( red.GetRasterBand(1).ReadAsArray().astype(np.float32), 255, 0) green = gdal.Open(bands[2]) green_band = norm( green.GetRasterBand(1).ReadAsArray().astype(np.float32), 255, 0) coastal = gdal.Open(bands[0]) coastal_band = norm( coastal.GetRasterBand(1).ReadAsArray().astype(np.float32), 255, 0) snap = red driver = gdal.GetDriverByName('GTiff') metadata = driver.GetMetadata() shape = red_band.shape dst_ds = driver.Create(out_composite, xsize=shape[1], ysize=shape[0], bands=3, eType=gdal.GDT_Byte) proj = snap.GetProjection() geo = snap.GetGeoTransform() dst_ds.SetGeoTransform(geo) dst_ds.SetProjection(proj) dst_ds.GetRasterBand(1).WriteArray(red_band) dst_ds.GetRasterBand(2).WriteArray(green_band) dst_ds.GetRasterBand(3).WriteArray(coastal_band) dst_ds.FlushCache() dst_ds = None
def AWEIsh(sent_dir, out_raster): bands = get_bands(sent_dir) nir = gdal.Open(bands[7]) nir_band = nir.GetRasterBand(1).ReadAsArray().astype(np.float32) red = gdal.Open(bands[3]) red_band = red.GetRasterBand(1).ReadAsArray().astype(np.float32) green = gdal.Open(bands[2]) green_band = green.GetRasterBand(1).ReadAsArray().astype(np.float32) blue = gdal.Open(bands[1]) blue_band = blue.GetRasterBand(1).ReadAsArray().astype(np.float32) swir1 = gdal.Open(bands[11]) swir1_band = swir1.GetRasterBand(1).ReadAsArray().astype(np.float32) swir2 = gdal.Open(bands[12]) swir2_band = swir2.GetRasterBand(1).ReadAsArray().astype(np.float32) snap = nir a = (blue_band + 2.5 * green_band - 1.5 * (nir_band + swir1) - 0.25 * swir2_band) b = (blue_band + green_band + nir_band + swir1_band + swir2_band) equation = a / b save_raster(equation, out_raster, snap, gdal.GDT_Float32) return equation, print('Finished')
def SIPI(sent_dir, out_raster): bands = get_bands(sent_dir) nir = gdal.Open(bands[7]) nir_band = nir.GetRasterBand(1).ReadAsArray().astype(np.float32) blue = gdal.Open(bands[1]) blue_band = blue.GetRasterBand(1).ReadAsArray().astype(np.float32) snap = nir equation = (nir_band - blue_band) / (nir_band + blue_band) save_raster(equation, out_raster, snap, gdal.GDT_Float32) return equation, print('Finished')
def NDVI(sent_dir, out_raster): bands = get_bands(sent_dir) nir = gdal.Open(bands[7]) nir_band = nir.GetRasterBand(1).ReadAsArray().astype(np.float32) red = gdal.Open(bands[3]) red_band = red.GetRasterBand(1).ReadAsArray().astype(np.float32) snap = gdal.Open(bands[7]) equation = (nir_band - red_band) / (nir_band + red_band) save_raster(equation, out_raster, snap, gdal.GDT_Float32) return equation, print('Finished')