Google Earth Engine 可以在浏览器运行,使用JavaScipt;也可以部署到本地,使用python。这里是在网页端。
写了一个分区的程序,想单独加载每个分区,
for(var j=1;j<subroi.size()+1;++j)
{
var roi1=subroi.filterMetadata('block_id','equlas',j.toString());
Map.addLayer(roi1,{},'subroi'+j);
}
但是程序运行出来的没结果,有没有它结果都一样。
for(var j=1;j<subroi.size().getInfo()+1;++j)
{
var roi1=subroi.filterMetadata('block_id','equlas',j.toString());
Map.addLayer(roi1,{},'subroi'+j);
}
之后加了一个getInfo(),好了。
getInfo() = 把 GEE 云端的数据 → 拿到本地 Python 里变成普通变量
GEE 的所有变量(ee.Image, ee.List, ee.Number, ee.String...)都在Google 服务器上,本地 Python 不能直接读。
必须用 .getInfo() 主动把数据取回来。
getInfo() 很慢!
它会立即向 GEE 服务器发送请求,如果用在循环里、大图像上,会:
- 卡死
- 运行极慢
- 甚至直接报错超时
所以不能乱用!
- 不要在
map()里用 - 不要在循环里频繁用
- 只用来调试、查看结果、获取少量信息