【Google Earth Engine编程语言学习笔记】dictionary、list、array
一、【dictionary】
字典是存储各属性信息的集合
(1)字典创建
-
var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
print(dictionary)
(2)字典修改
1.dictionary.combine()字典结合
-
var dictionary1=ee.Dictionary({name:'www',age:'>20',hight:'165cm'})
var dictionary2=ee.Dictionary({age:'>30',weight:'70kg'})
var dictionary3=dictionary1.combine(dictionary2,true);
print(dictionary3) - var dictionary1=ee.Dictionary({name:'www',age:'>20',hight:'165cm'})
var dictionary2=ee.Dictionary({age:'>30',weight:'70kg'})
var dictionary3=dictionary1.combine(dictionary2,false);
print(dictionary3)
2.dictionary.set()字典设置
-
var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var dictionary1=dictionary.set('age','>30')
print(dictionary1)
(3)字典查询
1.dictionary.keys()字典关键词列出(name,age,gender,location)
-
var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var list=dictionary.keys()
print(list)
2.dictionary.get()字典中指定一个关键词的值(www)
- var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var value=dictionary.get(‘name’)
print(value)
3.dictionary.values()字典中指定多个关键词的值(www,>20)
- var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var value=dictionary.value([‘name’,‘age’])
print(value)
(4)字典对比
1.dictionary.contains()字典中是否包含这样一个关键词(false)
- var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var value=dictionary.contains(‘hight’)
print(value)
(5)字典尺寸
1.dictionary.size()字典中有几个关键词(4)
- var dictionary=ee.Dictionary({
name:'www',
age:'>20',
gender:'man',
location:'hb'})
var value=dictionary.size()
print(value)
二、【list】
(1)创建
1.ee.List()
-
var list=ee.List([1,2,3,'a','b','c',['hello','world']])
print(list)
2.list.repeat()重复5次
-
var list=ee.List.repeat('yes',5)
print(list)
3.list.sequence(起始,末尾,步增,个数)顺序排列
-
var list1=ee.List.sequence(0,9,null,4)
print(list1)
var list2=ee.List.sequence(0,9,1,null)
print(list2)
(2)修改
1.list.set(第几个值,设置的值)对某一值附新值
2.list.replace(被替换的值,替换值)只能替换第一个
3.list.replaceAll(被替换的值,替换值)能替换全部值
4.list.add(添加的值)在末尾添加的值
5.list.insert(插入值的次序,插入的值)在指定位置插入值
6.list.zip(值1,值2,值3)将两个list对应位置打包合并成一个新的list。
-
var list1=ee.List([1993,1,21,'no.1'])
var list2=list1.zip(['year','month','day'])
print(list2)
7.list.reverse()将list中的值倒叙排列
-
var list1=ee.List([1993,1,21,5,2,4])
var list2=list1.reverse() - 结果:[4,2,5,21,1,1993]
8.list.rotate(list中的某个值)将list中的某个值作为第一位排序
-
var list1=ee.List([1993,1,21,5,2,4])
var list2=list1.rotate(2) - 结果:[2,4,1993,1,21,5]
9.list.sort()依照首字母排序
10.list.swap(值1,值2)将值1和值2位置对调
11.list.flatten()将list二维或多维的量降维成一维量
(3)查询
1.list.get()对list中第几个位置的 值进行查询
2.list.remove(要去除的值)对list中该值第一个的去除
3.list.removeAll(要去除的值)对list中该值所有值的去除
(4)比较
1.list1.equals(list2)判断list1是否等于list2,返回true或false
2.list.contains(值)判断list中是否包含值,返回true或false
3.list1.containsAll(list2)判断list1是否全部包含list2,顺序不同也没事,返回true或false
4.list.indexOf(值)某个值的索引值 list=[1,2,3,4,5,6,4,5,6,5,5,5] list.indexOf(5) 结果4
5.list.indexOfSublist([list])小list首先出现在大list的那个位置 list=[1,2,3,4,5,6,4,5,6,5,5,5] list.indexOfSublist([4,5,6]) 结果3
6.list.lastIndexOfSublist([list])小list最后出现在大list的那个位置 list=[1,2,3,4,5,6,4,5,6,5,5,5] list.lastIndexOfSublist([4,5,6]) 结果6
7.list.frequency(值)值出现的次数 list=[1,2,3,4,5,6,4,5,6,5,5,5] list.frequency(5) 结果5
(5)其他
1.list.map()对list中每一个数据进行同样的操作,所有的值进行并行运算
-
var list1=ee.List(['z','x','c','v'])
function DO(name){
return ee.List.repeat(name,3)
}
var list2=list1.map(DO)
print(list2)
2.list.iterate()循环,但是GEE不推荐,有时候遥感影像会用到,如后面的函数值用到前面的函数值
-
//1到5累加
var list1=ee.List.sequence(1,5,1)
function DO(num1,num2){
return ee.Number(num1).add(num2)//每次引入两个变量进行相加,如1,2,3,4,5中,首先1+2=3 加上初始值返回,再3+4=7返回
}
var list2=list1.iterate(DO,2)//位置和初始量
print(list1,list2)
//如果初始值为0,结果是15;初始值为1,结果为16.。。。
3.list.length() list.size()list有多少个小list
- List([['c','d'],1,6,1])中返回结果为4
三、【array】
(1)创建
1.ee.Array()创建一个矩阵
-
var array1=ee.Array([[1],[2],[3]])//3*1
var array1=ee.Array([1,2,3])//1*3
2.ee.Array.identity(5)创建一个5*5的单位向量
3.ee.Array.repeat(重复的方向,重复的次数)
-
var array1=ee.Array([[[1,1,1],[1,1,1],[1,1,1]],[[2,2,2],[2,2,2],[2,2,2]]])
var array2=array1.repeat(0,2)
print(array1,array2)
- var array1=ee.Array([[[1,1,1],[1,1,1],[1,1,1]],[[2,2,2],[2,2,2],[2,2,2]]])
var array2=array1.repeat(1,2)
print(array1,array2)
(2)修改
1.array.mask()掩膜操作
-
var array1=ee.Array([[1,1],[2,8],[3,5],[4,6]])
var array2=ee.Array([[0],[1],[0],[1]])
var array3=array1.mask(array2)
print(array3)
2.array.transpose()矩阵转置,即2*3变为3*2
3.array.uint8()将list中的值转化为整数,四舍五入
(3)数学
1.array.eq()得到一个矩阵,矩阵1等于矩阵2的部分为1 neq不相等 gt大于 gte大于等于 lt小于 lte小于等于
2.array.and() array.or()
3.array.floor向下取整 ceil向上取整 abs绝对值 round四舍五入 sqrt开方 exp幂 log对数 log10以10为低对数 add加 multiply乘 divide除 min最小 max最大
4.array.add()矩阵1和矩阵2相加 同样还有减,乘,除,模,开方,最大,最小,sin,cos,tan。。。。
5.array.bitWiseAnd()位运算,同数据运算
6.array.leftShift()矩阵中每个值左移 leftRight右移