For loop Type Error: 'Dictionary' object is not callable
For loop Type Error: 'Dictionary' object is not callable
我正在尝试在 Python 中构建一个 for 循环,它将图像从 Google Earth Engine 导出到我的 Google 驱动器中。每个图像的边界框坐标取自名为 DHS 的数据框。
我已经使用以下代码成功导出了单个图像:
landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
geometry = [[DHS.loc[1,'lon.min'], DHS.loc[1,'lat.min']],
[DHS.loc[1,'lon.min'], DHS.loc[1,'lat.max']],
[DHS.loc[1,'lon.max'], DHS.loc[1,'lat.max']],
[DHS.loc[1,'lon.max'], DHS.loc[1,'lat.min']]]
File_Name = str(DHS.loc[1,'Survey Year']) + "_" + str(DHS.loc[1,'Cluster Number'])
task_config = {
'folder': 'Earth Engine Data',
'region': geometry
}
task = ee.batch.Export.image(landsat, File_Name, task_config)
task.start()
但是,当我尝试将此代码放入 for 循环时,出现以下错误:
landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
for row in range(0,1):
geometry = [[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.min']],
[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.max']],
[DHS.loc[row,'lon.max'], DHS.loc[row,'lat.max']],
[DHS.loc[row,'lon.max'], DHS.loc[row,'lat.min']]]
File_Name = str(DHS.loc[row,'Survey Year']) + "_" + str(DHS.loc[row,'Cluster Number'])
task_config = {
'folder': 'Earth Engine Data',
'region': geometry
}
task = ee.batch.Export.image(landsat, File_Name, task_config)
task.start()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-144-164162d7da6c> in <module>
1 landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
2
----> 3 for row in range(0,1):
4
5 geometry = [[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.min']],
TypeError: 'Dictionary' object is not callable
有人知道这是为什么吗?
您已将内置 range
替换为字典。
它必须发生在您没有发生的部分代码中post。
您可以轻松重现:
print(range) # <class 'range'>
range = {}
print(type(range)) # <class 'dict'>
for i in range(5): # TypeError: 'dict' object is not callable
pass
下次,请post一个独立的最小、完整且可验证的示例,其中包括重现问题所需的所有代码。
我正在尝试在 Python 中构建一个 for 循环,它将图像从 Google Earth Engine 导出到我的 Google 驱动器中。每个图像的边界框坐标取自名为 DHS 的数据框。
我已经使用以下代码成功导出了单个图像:
landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
geometry = [[DHS.loc[1,'lon.min'], DHS.loc[1,'lat.min']],
[DHS.loc[1,'lon.min'], DHS.loc[1,'lat.max']],
[DHS.loc[1,'lon.max'], DHS.loc[1,'lat.max']],
[DHS.loc[1,'lon.max'], DHS.loc[1,'lat.min']]]
File_Name = str(DHS.loc[1,'Survey Year']) + "_" + str(DHS.loc[1,'Cluster Number'])
task_config = {
'folder': 'Earth Engine Data',
'region': geometry
}
task = ee.batch.Export.image(landsat, File_Name, task_config)
task.start()
但是,当我尝试将此代码放入 for 循环时,出现以下错误:
landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
for row in range(0,1):
geometry = [[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.min']],
[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.max']],
[DHS.loc[row,'lon.max'], DHS.loc[row,'lat.max']],
[DHS.loc[row,'lon.max'], DHS.loc[row,'lat.min']]]
File_Name = str(DHS.loc[row,'Survey Year']) + "_" + str(DHS.loc[row,'Cluster Number'])
task_config = {
'folder': 'Earth Engine Data',
'region': geometry
}
task = ee.batch.Export.image(landsat, File_Name, task_config)
task.start()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-144-164162d7da6c> in <module>
1 landsat = ee.Image('ESA/GLOBCOVER_L4_200901_200912_V2_3')
2
----> 3 for row in range(0,1):
4
5 geometry = [[DHS.loc[row,'lon.min'], DHS.loc[row,'lat.min']],
TypeError: 'Dictionary' object is not callable
有人知道这是为什么吗?
您已将内置 range
替换为字典。
它必须发生在您没有发生的部分代码中post。
您可以轻松重现:
print(range) # <class 'range'>
range = {}
print(type(range)) # <class 'dict'>
for i in range(5): # TypeError: 'dict' object is not callable
pass
下次,请post一个独立的最小、完整且可验证的示例,其中包括重现问题所需的所有代码。