跟着大佬 无形的风 学GEE day·2 学习大纲:资源上传、js基本语法、GEE基本语法
一、上传资源
在asset中建立自己的folder后可以上传如下资源,包括GeoTIFF、Shape files、CSV等,上传进程可以在右侧Task中查看,上传成功为蓝色,上传不成功为红色(注意文件名不能一样,否则会失败),上传后的资源如TIFF可以点击向右侧的箭头import到script中,进而在Map上居中定位并查看。
二、JS语法学习(来自 知乎:无形的风 GEE学习笔记 七)
//变量类型:字符串、数值、布尔
var str = "Zifuchuan";
var num = 1;
var bool = true;
//if语句与print
if (bool){
print("num is "+num);
}else{
print("str is "+str);
}
//list 列表
var list1 = ["A","B","C","D"];
//for循环
for (var n in list1){
print(n);
}
//while循环
var index=0;
while( index < list1.length){
print(list1[index]);
index ++;
}
//object对象
var info={
name:"ABC",
age:1,
desc:"This is a sample"
};
print(info)
print("age is"+info["age"]);
print("name is"+info.name);
// function 函数
var add = function(a,b){
return a+b;
}
print(add(10,20)
function sub(a,b){
return a-b;
}
print(sub(20,10));
三、GEE语法(来自 知乎:无形的风 GEE学习笔记 八)
1、字符串
var base_str = "this is string";
var ee_str1 = ee.String(base_str);
//也可以直接 var ee_str2 = ee.String("this is string");
//GEE中的字符串方法(长度、拼接、替换、大小写转换、获取子串、分割)
//获取字符串长度
print(ee_str1.length());
//拼接字符串,但是只能两个两个拼接,不知道ee方法里有没有其他的多字符串合并方法
var ee_str2 = ee.String("second string");
var ee_str3 = ee.str1.cat(ee_str2);
//在JavaScript中,可以使用如下方法进行多字符串拼接,逐个添加到指定字符串的尾部
var s1 = "abc";
var s2 = s1.concat("a","b","c");
//对于更多要连接的字符串,采用数组连接法,将需要进行连接的字符串放到字符串数组中,而后使用
var str = a.join("");
//替换字符串
var ee_str4 = ee.String("my name is A");
var ee_str5 = ee_str4.replace("A","B")
//大小写转换
var ee_str6 = ee.String("China");
print(ee_str6.toUpperCase());
//CHINA
print(ee_str6.toLowerCase());
//china
//获取子串
var ee_str7 = ee.String("This is Landsat8 image");
print(ee_str7.slice(1,6));
//索引从0开始,所以返回his i
print(ee_str7.split(" "));
//返回字符串数组["This","is","Landsat8","image"]
2、数值
var num = 100.001;
var ee_num1 = ee.Number(num);
//绝对值
print(ee.Number(-100).abs());
//100
//浮点型转整型
print(ee_num1.toInt());
//100
3、矩阵
var ee_arr1 = ee.Array([[1,2],[2,2]]);
var ee_arr2 = ee.Array(ee.list([[1,1],[2,2]]));
//+
print(ee_arr1.add(ee_arr2));
//[[2,3],[4,4]]
//-
print(ee_arr1.subtract(ee_arr2));
//[[0,1],[0,0]]
//除
print(ee_arr1.divide(ee_arr2));
//*
print(ee_arr1.multiply(ee_arr2));
4、日期
var ee_date1 = ee.Date("2017-01-01");
print(ee_date1);
//Date (2017-01-01 00:00:00)
print(ee.Date.fromYMD({
year:2010,
month:1,
day:1
}));
//Date (2010-01-01 00:00:00)
//获取当前时间
var now = Date.now();
print(now);
// 返回1970-01-01 00:00:00至今毫秒数
print(ee.Date(now));
//Date (2022-07-28 15:35:00)
5、字典
var ee_dict1 = ee.Dictionary({
name:"AA",
age:10,
desc:"this is a dict"
});
print(ee_dict1.keys());
//["age","desc","name"]
print(ee_dict1.get("age"));
//10
print(ee_dict1.get("name"));
AA
6、列表
var ee_list1 = ee.List([1,2,3,4,5]);
var ee_list2 = ee.sequence(1,5);
print(ee_list2)
//[1,2,3,4,5]
print(ee_list2.get(1));
//2
print(ee.List.sequence(1,5,2));
//[1,3,5] step为2
print(ee.List.sequence({
start:1,
end:5,
count:2
}));//注意count和step的区别
print(ee.List.repeat(10,4));
//[10,10,10,10]创建重复序列