Google Earth Engine 官方已经在 Code Editor 中原生集成了“Ask”功能(Gemini 辅助编程),而不再完全依赖第三方扩展。今天我们来配置和使用一下。
安装和配置
这里其实并没有安装环节,新版本的在线版本的编译器已经包含了ask这个环节:
这里如果你不配置api是不能使用的。所以这里我们一定要配置。
配置GEE Gemini API key

当我们点击这个创建key的时候,就会自动跳转到google AI studio的界面,如果这里之前设置过就api,那么直接copy即可,如果没有那么就创建一个新的:


这个过程中需要等待几秒钟,然后会出现下面的信息,复制API密钥即可:
这个就算完成了,这里我们要设置结算信息,我们直接设定免费层级的就可以了:
如果你想体验更好的模型,这里就绑定国外的信用卡即可: 
测试
这里直接提示我们用户高峰期,稍后使用,我这里切换了2.5版本还是不行,大家出现这个状况的时候多试试即可: 
案例
提问
约市河流提取的代码吗?简介一些,要求有可视化结果展示
结果
当然,这是一个简短的Earth Engine JavaScript代码示例,用于在纽约市提取并可视化河流。
这个脚本通过加载高程数据(SRTM DEM),计算地形坡度,并根据坡度阈值来识别潜在的河流区域。较低的坡度值通常与河流或平坦的河谷相关。
// 1. 定义纽约市的兴趣区域 (ROI)。
// 这里使用一个点作为中心,然后创建一个缓冲区来代表纽约市的大致区域。
var nycPoint = ee.Geometry.Point(–74.0060, 40.7128); // 纽约市中心坐标
var roi = nycPoint.buffer(30000); // 30公里缓冲区
// 2. 加载数字高程模型 (DEM) 数据集。
// 使用SRTM GL1 高程数据,分辨率为30米。
var srtm = ee.Image('USGS/SRTMGL1_003');
// 3. 计算地形坡度。
// 使用ee.Terrain.slope函数从DEM中计算坡度。
var slope = ee.Terrain.slope(srtm);
// 4. 提取潜在的河流区域。
// 我们假设坡度非常小的区域(例如小于2度)可能是河流或河谷。
var riverMask = slope.lt(2); // 坡度小于2度的区域
// 5. 应用掩膜到SRTM高程数据,以便更好地可视化河流。
var rivers = srtm.updateMask(riverMask);
// 6. 定义可视化参数。
// DEM的可视化参数。
var demVis = {
min: 0,
max: 500,
palette: ['006633', 'E5FFCC', '662A00', 'EECC88', 'CC9966', '996633']
};
// 河流(低坡度区域)的可视化参数。
var riverVis = {
min: 0,
max: 500, // 与DEM相同的范围,但颜色不同以突出河流
palette: ['blue']
};
// 7. 将结果添加到地图上。
Map.centerObject(roi, 10); // 将地图中心设置到ROI并放大
Map.addLayer(srtm, demVis, 'SRTM DEM');
Map.addLayer(rivers, riverVis, 'Potential Rivers (low slope)');
// 打印一些信息到控制台
print('纽约市兴趣区域:', roi);
print('SRTM DEM图像:', srtm);
print('坡度图像:', slope);
print('潜在河流掩膜:', riverMask);
代码解释:
定义兴趣区域 (ROI): 首先,我们使用纽约市中心的经纬度创建一个 ee.Geometry.Point,然后用 buffer(30000) 创建一个30公里的圆形缓冲区,作为我们分析的区域。 加载DEM数据: 我们加载了 ‘USGS/SRTMGL1_003’ 数据集,这是一个30米分辨率的数字高程模型。 计算坡度: 使用 ee.Terrain.slope(srtm) 函数计算了高程数据的坡度。 提取潜在河流: 通过 slope.lt(2) 创建一个二进制掩膜,筛选出坡度小于2度的区域。这些平坦的区域很可能是河流或其冲积平原。 应用掩膜: 将 riverMask 应用到原始的 srtm 图像上,这样只有被识别为河流的像素才会被显示。 可视化参数: 定义了两个可视化参数对象:demVis 用于显示整个DEM的颜色分级,riverVis 则用蓝色来突出潜在的河流区域。 添加图层到地图: Map.centerObject(roi, 10); 将地图视图调整到纽约市的ROI。 Map.addLayer(srtm, demVis, ‘SRTM DEM’); 添加原始DEM图层。 Map.addLayer(rivers, riverVis, ‘Potential Rivers (low slope)’); 添加潜在河流图层,它将覆盖在DEM之上,用蓝色显示河流。 这个简化的方法可以快速展示潜在的河流区域。请注意,这是一个基于坡度的代理,对于更精确的河流网络提取,您可能需要使用更复杂的地球引擎水文工具,例如 ee.Image.flowAccumulation。

总结
相较于其他大模型,就相当于接入了一个接口,可以讲大模型生成的代码直接导入到编译器中间,极大方便了我们copy的过程。至于代码执行力或者代码是不是丰富,这里建议大家给更加丰富的提示词来实现这个过程:


