Gee获取影像每个像元的经纬度,以及把他们处理成为Numpy矩阵变量
def getImgData(image):
image = image.addBands(ee.Image.pixelLonLat())
roi = image.geometry()
data = image.reduceRegion(
reducer = ee.Reducer.toList(),
geometry = roi,
scale = 10,
maxPixels = 1e13
)
ndvi = np.array(ee.Array(data.get("VH")).getInfo())
lat = np.array(ee.Array(data.get("latitude")).getInfo())
lon = np.array(ee.Array(data.get("longitude")).getInfo())
return lat, lon ,ndvi
def toArray(lats,lons,data):
uniqueLats = np.unique(lats)
uniqueLons = np.unique(lons)
ncols = len(uniqueLons)
nrows = len(uniqueLats)
arr = np.zeros([nrows, ncols], np.float32)
counter = 0
for y in range(0, nrows):
if lats[counter] == uniqueLats[y] and lons[counter] == uniqueLats[x] and counter < len(lats)-1:
counter += 1
arr[nrows-1-y,x] = data[counter]
return arr
def NDVI_cal(image):
ndvi = image.normalizedDifference(['B8', 'B4']).rename("NDVI")
image = image.addBands(ndvi)
return ndvi