Bandcamp 下载器终极指南:如何轻松备份你的数字音乐收藏 [特殊字符]
2026/6/9 17:42:49
目录
一、研究区加载与地图初始化
二、土壤影像数据加载
三、研究区裁剪处理
四、影像信息打印(调试与验证)
五、可视化参数配置
六、地图图层添加
七、数据导出到 Google Drive
八、关键注意事项
九、运行结果
若觉得代码对您的研究 / 项目有帮助,欢迎点击打赏支持!需要完整代码的朋友,打赏后可在后台私信(复制文章标题发给我),我会尽快发您完整可运行代码,感谢支持!
本代码基于 Google Earth Engine(GEE)平台开发,核心目标是获取指定研究区的土壤颗粒组成数据(粘土、沙、粉砂三类),通过加载全球土壤数据库 SoilGrids 的影像数据,经过裁剪、可视化配置后,在地图上展示,并最终导出为 GeoTIFF 格式文件到 Google Drive,用于后续土壤相关的空间分析工作。
var roi = table; // 你的研究区 Map.addLayer(roi, {color: 'grey'}, '研究区边界'); Map.centerObject(roi, 6);var roi = table中,table是 GEE 平台中已导入的矢量数据(通常为 Shapefile 格式转换后的资产),代表用户设定的研究区域(如某城市、流域、行政单元等),代码通过该变量调用研究区边界信息。Map.addLayer()是 GEE 中添加图层到地图画布的核心函数,参数说明:roi:指定要添加的图层数据(此处为研究区矢量边界);{color: 'grey'}:设置图层样式,此处将边界颜色设为灰色;'研究区边界':图层名称,将显示在地图右侧的图层列表中,方便用户识别。Map.centerObject(roi, 6)用于设置地图初始视图,参数说明:roi:指定地图居中的对象(即研究区);6:地图缩放级别(GEE 缩放级别范围通常为 1-20,数值越小视野越广,数值越大视野越聚焦,此处 6 级为中等视野,可完整显示较大范围的研究区)。var clay = ee.Image("projects/soilgrids-isric/clay_mean"); var sand = ee.Image("projects/soilgrids-isric/sand_mean"); var silt = ee.Image("projects/soilgrids-isric/silt_mean");clay_mean:粘土含量均值数据,粘土颗粒直径小于 0.002mm,影响土壤保水保肥能力;sand_mean:沙含量均值数据,沙颗粒直径在 0.05-2mm 之间,影响土壤透气性;silt_mean:粉砂含量均值数据,粉砂颗粒直径在 0.002-0.05mm 之间,是土壤肥力的重要影响因子。var clay_clip = clay.clip(roi); var sand_clip = sand.clip(roi); var silt_clip = silt.clip(roi);roi)内的影像数据,剔除无关区域数据,减少后续处理的计算量,同时确保导出数据的针对性。ee.Image.clip()是 GEE 中影像裁剪的内置方法,参数为裁剪的边界对象(此处为研究区roi),函数返回裁剪后的新影像(命名为xxx_clip,便于区分原始影像)。roi)为矢量数据(FeatureCollection 或 Feature),且与影像的投影坐标系一致(GEE 会自动处理投影匹配,无需手动设置)。print("Clay image:", clay_clip); print("Sand image:", sand_clip); print("Silt image:", silt_clip);print()函数用于在 GEE 代码编辑器的控制台(Console)输出信息,核心作用是调试和验证,帮助用户确认:clay_0-5cm_mean、sand_15-30cm_mean等),确保后续可视化和导出时波段名称正确;min、max)提供参考;// 粘土可视化参数 var visClay = { opacity: 1, bands: ["clay_0-5cm_mean"], min: 10, max: 800, palette: ["ffef29", "0000ff"] }; // 沙可视化参数(示例) var visSand = { opacity: 1, bands: ["sand_0-5cm_mean"], min: 10, max: 800, palette: ["ff7f00", "8b0000"] };visXXX是自定义的字典(Dictionary)类型变量,用于定义影像在地图上的显示样式,确保三类土壤数据的可视化效果相互区分,便于直观观察空间分布差异。opacity:图层透明度,取值范围 0-1,1 表示完全不透明,0 表示完全透明;bands:指定要可视化的波段,此处统一选择0-5cm深度层(对应波段名称如clay_0-5cm_mean),用户可根据需求更换为其他深度波段(需与控制台打印的波段名称一致);min/max:数值显示范围,即影像中小于min的值显示为最浅颜色,大于max的值显示为最深颜色,中间值按调色板渐变分布,此处设置为 10-800(单位为 g/kg,需根据实际数据统计调整,避免颜色失真);palette:调色板,指定颜色渐变范围,三类土壤采用不同调色板以区分:ffef29为黄色,0000ff为蓝色);ff7f00为橙红,8b0000为深红);90ee90为浅绿,006400为深绿)。Map.addLayer(clay_clip, visClay, "粘土含量(0-5cm)"); Map.addLayer(sand_clip, visSand, "沙含量(0-5cm)"); Map.addLayer(silt_clip, visSilt, "粉砂含量(0-5cm)");Map.addLayer()函数,将裁剪后的影像(xxx_clip)按配置的可视化参数(visXXX)添加到地图,参数说明:// 导出粘土示例 Export.image.toDrive({ image: clay_clip, description: 'clay_export', fileNamePrefix: 'clay', scale: 250, folder: 'Soil_SP', region: roi.geometry(), maxPixels: 1e13 });Export.image.toDrive()是 GEE 中导出影像到 Google Drive 的核心函数,支持将影像导出为 GeoTIFF(默认格式,可用于 ArcGIS、QGIS 等 GIS 软件后续分析)。image:待导出的影像数据(此处为裁剪后的粘土 / 沙 / 粉砂影像);description:导出任务的描述名称(显示在 GEE 的 Tasks 面板中,便于识别);fileNamePrefix:导出文件的前缀名称,最终导出文件名为前缀_日期.tif(如clay_20240520.tif);scale:导出数据的分辨率(单位为米),此处设置为 250m,与 SoilGrids 原始数据分辨率一致(分辨率越高,数据量越大,导出时间越长);folder:Google Drive 中存储导出文件的文件夹名称(需提前在 Google Drive 中创建,或由导出任务自动创建);region:导出的区域范围,通过roi.geometry()获取研究区的几何对象,确保导出范围与研究区一致;maxPixels:最大像素数量限制,GEE 默认导出影像的最大像素数为 1e8,此处设置为 1e13(10 万亿像素),用于支持大范围研究区的导出(避免因像素数超限导致导出失败)。clay_export),点击「Run」按钮,设置导出参数(如文件格式、投影等,默认即可),等待导出完成(导出时间取决于研究区大小和网络状况),最终可在 Google Drive 的指定文件夹中找到导出的 GeoTIFF 文件。table需提前导入 GEE(支持 Shapefile、KML 等格式),且需确保研究区边界完整、无拓扑错误,否则可能导致裁剪失败。clay_0-5cm_mean)必须与控制台打印的影像波段名称完全一致,否则会出现图层无法显示或导出数据异常的问题。min和max需根据控制台打印的影像统计信息调整(如某研究区粘土含量最大值为 600,则max可设为 600),否则会出现颜色渐变不明显、细节丢失的问题。若觉得代码对您的研究 / 项目有帮助,欢迎点击打赏支持!需要完整代码的朋友,打赏后可在后台私信(复制文章标题发给我),我会尽快发您完整可运行代码,感谢支持!