GEE的基本数据类型和语法介绍
这里罗列一些和JavaScript对应的GEE常见的数据类型,不包括Image、Feature、Geometry等类型。GEE的这些基本数据类型可以理解为Google对于JavaScript数据类型的二次封装,加入了一些自定义的方法,方便各种调用。相关代码如下:
字符串
//basice gee data type
//ee.String 字符串
var base_str = "this is string.";
var ee_str1 = ee.String(base_str);
print("ee string is", ee_str1);
//字符串的长度
print("ee string length ", ee_str1.length());
//拼接字符串
var ee_str2 = ee.String(" second string");
var ee_str3 = ee_str1.cat(ee_str2);
print(ee_str3);
//替换字符串
var ee_str4 = ee.String("my name is AA, so i am a boy.")
var ee_str5 = ee_str4.replace("AA", "BB")
print(ee_str5)
//字符变大写、变小写
var ee_str6 = ee.String("China");
print(ee_str6.toUpperCase())
print(ee_str6.toLowerCase())
var ee_str7 = ee.String("This is landsat8 image”);
//获取子字符串,字符串的起始索引0
print(ee_str7.slice(1, 6));
//分割字符串
print(ee_str7.split(" "));
输出结果:
数值
//basice gee data type
//ee.Number 数值
var num = 100.01;
var ee_num1 = ee.Number(num);
print("ee number is", ee_num1);
// 绝对值
print("ee abs is", ee.Number(-100).abs());
// 浮点型转换为整型
print("float to int", ee_num1.toInt());
输出结果:
数组(矩阵?是否更合适)
//basice gee data type
//ee.Array 直译是数组,但是我个人觉得它更像是矩阵
var ee_arr1 = ee.Array([[1,2], [2,2]]);
print("ee_arr1 is", ee_arr1);
var ee_arr2 = ee.Array(ee.List([[1,1], [3,3]]));
//加、减、除、乘计算
print("add result ", ee_arr1.add(ee_arr2));
print("subtract result", ee_arr1.subtract(ee_arr2));
print("divide result", ee_arr1.divide(ee_arr2));
print("multiply result", ee_arr1.multiply(ee_arr2));
输出结果:
日期
//basice gee data type
//ee.Date 日期
var ee_date1 = ee.Date("2017-01-01”);
print("ee_date1 is", ee_date1);
print("ee date is", ee.Date.fromYMD({
year:2010,
month:1,
day:1
}));
//获得当前时间
var now = Date.now();
print("js now is " + now);
print("ee date now is", ee.Date(now));
输出结果:
字典
//basice gee data type
//ee.Dictionary 字典
var ee_dict1 = ee.Dictionary({
name: "AA",
age: 10,
desc: "this is a boy"
});
print("keys is", ee_dict1.keys());
print("age is ", ee_dict1.get("age"));
print("name is ", ee_dict1.get("name"));
输出结果:
列表
//basice gee data type
//ee.List 列表
var ee_list1 = ee.List([1,2,3,4,5]);
print("ee list create first method", ee_list1);
//列表初始化除了可以直接使用Js数组,还可以使用内部方法
var ee_list2 = ee.List.sequence(1, 5);
print("ee list create second method", ee_list2);
print("ee_list2[1] = ", ee_list2.get(1));
print("step is 2", ee.List.sequence(1, 5, 2));
print("count is 2", ee.List.sequence({
start:1,
end:5,
count:2
}));
// 创建一个4长度,所有值都是10的列表
print("repeat ", ee.List.repeat(10, 4));
输出结果:
上述所有的操作都只是介绍了各个类型一小部分的操作,在更详细的操作可以参考GEE的Doc文档。