Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从ee.reduceRegion Google Earth引擎Python获取图像_Python 3.x_Gis_Google Colaboratory_Gdal_Google Earth Engine - Fatal编程技术网

Python 3.x 从ee.reduceRegion Google Earth引擎Python获取图像

Python 3.x 从ee.reduceRegion Google Earth引擎Python获取图像,python-3.x,gis,google-colaboratory,gdal,google-earth-engine,Python 3.x,Gis,Google Colaboratory,Gdal,Google Earth Engine,正如函数所建议的,我们知道当由于服务器限制而出现“太多像素”错误时,reduceRegion()函数会派上用场。我目前正在使用Google Colab,代码如下: image = ee.Image('LANDSAT/LE7_TOA_5YEAR/2008_2012') aoi = getPolygon((55.2708, 25.2048), 0.15) # Reduce the region. The region parameter is the Feature geometry. mean

正如函数所建议的,我们知道当由于服务器限制而出现“太多像素”错误时,reduceRegion()函数会派上用场。我目前正在使用Google Colab,代码如下:

image = ee.Image('LANDSAT/LE7_TOA_5YEAR/2008_2012')
aoi = getPolygon((55.2708, 25.2048), 0.15) 

# Reduce the region. The region parameter is the Feature geometry.
meanDictionary = image.reduceRegion(reducer=ee.Reducer.mean(), geometry=aoi, scale=90, maxPixels=262144)
打印
meansdictionary.getInfo()
后,我自然会得到一个不同波段值的字典:

{'B1': 48.80214808618162,
 'B2': 50.636738705868815,
 'B3': 53.1672805851419,
 'B4': 58.36716764069926,
 'B5': 56.440968073087255,
 'B6_VCID_2': 209.51128253916946,
 'B7': 43.215088529918695}

我的问题是,在使用reduceRegion()及其各自的参数调用reduceRegion()之后,如何将实际的简化图像作为
ee.Image.Image
对象获取,因为它只返回一个字典。我可能会偏离轨道,如果是这样,请在正确的方向上提供一些指导

没有“缩小图像”,或者更确切地说,
reduceRegion
的作用是将大量像素转换为一个数值或其他值(每个波段)。输出不是图像,因为不再有空间信息-整个缩减结果在该字典中描述


关于“太多像素”错误的文档是指如何在像素太大时进行缩小。reduceRegion是可能出现这些错误的东西,而不是解决这些错误的方法。

我得到了转换为一个数值的结果,因为我得到了作为输出的单波段值的字典,谢谢你对此的澄清。有没有什么方法可以将图像的缩放版本作为输出,以消除“像素太多”错误?@HibaJamal添加单独的步骤来缩放图像是没有必要的,并且会导致更糟糕的结果。如果使用的算法可能会产生“太多像素”错误,则该操作将具有
scale
maxPixels
参数。您可以使用
scale
来选择它的分辨率,如果您真的想做一个缓慢、高分辨率的操作,可以增加
maxPixels
(这是一个健全的检查,不是一个硬限制)。感谢您提供查找这些参数的线索,但我只使用image.samplelectangle来获取特定的频带值数组,Geometry.Polygon指定一个区域,现在已尝试image.reproject使用其比例参数。只有最后一个提供了一个比例参数,它要么给出一个黑色图像(因为带外遮罩像素的默认值为0),要么给出一个白色图像(仍在尝试解决这个问题)。@HibaJamal啊,如果您使用的是
samplelectangle()
,请注意,它说它在带的投影中采样。要更改使用相同crs和不同比例的
reproject()
。是的,使用了
band\u arrs=img.reproject(crs=img.projection().crs(),scale=sclx)。samplelectangle(region=aoi,defaultValue=0)
,您认为输出图像中会有错误吗(我在提取带值数组后使用pyplot绘制)如果
sclx
过高?