예제 #1
0
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
예제 #2
0
파일: indices.py 프로젝트: xyt556/rindcalc
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')
예제 #3
0
파일: indices.py 프로젝트: xyt556/rindcalc
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')
예제 #4
0
파일: indices.py 프로젝트: xyt556/rindcalc
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')