跟着知乎大佬 无形的风 学GEE Day·4
大纲:UI组件总述、模块导入、资源导出、UI组件、使用矢量资源
一、UI组件总述
GEE 的UI组件主要包括:按钮、复选框、文本、面板容器、滑块(进度条)、文本输入框、下拉列表、图表、缩略图、地图、根节点等
详见:https://zhuanlan.zhihu.com/p/29763414
二、模块导入(公共库的构建与应用)
对于一些会反复使用的公共代码,编写入公共库,可以简化代码编写。
//公共库要加入exports
exports.ndvi = function(img){
var ndvi = img.normalizedDifference(["B5","B4"]);
return ndvi
}
将上述代码文件存入script文件夹下,在调用时用require引用。
var module_f = require('path');
var result = module_f.ndvi(img);
三、资源导出
1、导出单张影像到Drive:
使用Export.image.toDrive({
image: imageName,
description:‘imageToDrive’,
scale:30,
region: regiongeometry
});
2、对于多张影像写循环导出到Drive中,主要用colList = collection.size().getInfo()获取符合条件的影像数量,用for循环批量导出,文件名使用Img.id()获取,边界几何大小通过img.geometry().bounds()获取
详见:https://zhuanlan.zhihu.com/p/30004153
四、UI组件
1、ui.Label
参数:value、style
方法:getValue()、setValue(value)、style()
定义一个label
var label1 = ui.Label({
value:"this is label1",
style:{
color:"#ff0000",
backgroundColor:"#00ff00",
border:"3px solid black"
}
//红色字体、绿色背景、边界3px实心黑色
print(label1.getValue());
label1.setValue("change value");
//常用style包括:backgroundColor、border、color、margin、shown、height、width、padding、fontsize、textAlign等
2、ui.Button
参数:label、onClick、disabled、style
方法:getDisabled()、getLabel()、onClick(callback)、setDisabled(disabled)、setLabel(label)、style()、unlisten(idOrType)
var btn = ui.Button("button1");
btn.onClick(function(){
print("click button1");
});
print(btn);
btn.setDisabled(true)
3、ui.Checkbox
参数:label,value,onChange,disabled,style
方法:getDisabled()、getValue()、onChange(callback)、setDisabled(disabled)、setValue(value,trigger)、style()、unlisten(idOrType)
var checkbox = ui.Checkbox("checkbox1",true);
checkbox1.onChange(function(checked){
print("1 select box:"+checked);
})
4、ui.Thumbnail
参数:image,params,onClick,style
方法:getImage(),getParams,onClick(callback),setImage(image),setParams(params),style(),unlisten(idOrType)
5、ui.Textbox
参数:placeholder,value,onChange,disabled,style
方法:getDisabled(), getPlaceholder(), getValue(), onChange(callback), setDisabled(disabled), setPlaceholder(placeholder), setValue(value, trigger), style(), unlisten(idOrType)
6、ui.Slider
参数:min, max, value, step, onChange, direction,disabled, style
方法: getDisabled(), getMax(), getMin(), getStep(), onChange(callback), onSlide(callback), setDisabled(disabled), setMax(value), setMin(value),setStep(value), setValue(value,trigger), style(), unlisten(idOrType)
7、ui.Select
参数:items(数据为字典类型), placeholder, value, onChange, disabled, style
方法:getDisabled(), getPlaceholder(), getValue(), items(), onChange(callback), setDisabled(disabled), setPlaceholder(placeholder), setValue(value, trigger), style(), unlisten(idOrType)
所有组件在使用时都需要先定义,再print,才能显示在console中。
详见官方文档
五、使用矢量资源
以行政区划边界对图像进行裁剪,首先需要上传矢量数据,若上传的数据为包含多个地区的数据,则需要选择目标地区,用ee.Filter.eq()函数筛选目标地区。
创建一个待裁剪的图层,使用.clip(city)方法裁剪对应区域并addLayer显示,需要显示边界时创建空白Image(var empty = ee.Image().toByte()),然后绘制轮廓empty.paint({featureCollection:city,color:0,width:3});
Map.addLayer(outline, {palette: “ff0000”},“outline”)