king言成耳总

导航

【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右移

 

posted on 2020-12-27 18:20  king言成耳总  阅读(661)  评论(0编辑  收藏  举报