Google Earth Engine:在code Editor中(javascript api)使用Gemini 告别不会代码的烦恼!
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)。// 这里使用一个点作为中心,然后创建一个缓冲区来代表纽约市的大致区域。varnycPoint=ee.Geometry.Point(-74.0060,40.7128);// 纽约市中心坐标varroi=nycPoint.buffer(30000);// 30公里缓冲区// 2. 加载数字高程模型 (DEM) 数据集。// 使用SRTM GL1 高程数据,分辨率为30米。varsrtm=ee.Image('USGS/SRTMGL1_003');// 3. 计算地形坡度。// 使用ee.Terrain.slope函数从DEM中计算坡度。varslope=ee.Terrain.slope(srtm);// 4. 提取潜在的河流区域。// 我们假设坡度非常小的区域(例如小于2度)可能是河流或河谷。varriverMask=slope.lt(2);// 坡度小于2度的区域// 5. 应用掩膜到SRTM高程数据,以便更好地可视化河流。varrivers=srtm.updateMask(riverMask);// 6. 定义可视化参数。// DEM的可视化参数。vardemVis={min:0,max:500,palette:['006633','E5FFCC','662A00','EECC88','CC9966','996633']};// 河流(低坡度区域)的可视化参数。varriverVis={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的过程。至于代码执行力或者代码是不是丰富,这里建议大家给更加丰富的提示词来实现这个过程:
