GEE学习笔记

注意:声明一个变量(引入一个变量),必须以var开头

例如:var string=ee.string(‘this is me’)

string的函数

string的函数
1、创建一个字符串ee.string
2、连接两个字符串string.cat()var string3=string1.cat(string2)
3、替换字符串内的元素string.replace(old,new) string.replaceall(old,new)
4、分割字符串string.split(‘_’) ,里面的参数是以什么符号作为分割的条件var string1=ee.string(A_B_C)<br /
var string2=string1.split(‘_’)
print(string2) ,结果为【“A”,“B”,“C”】
5、匹配字符串,输出为字符串string1.match(‘He’) ,里面的参数是根据string1进行匹配的结果,假如string1是’Hello’ ,则结果是字符串"He"
6、截取部分字符串string1.slice(5 10) ,里面的参数是字符串的顺序位置,按照第5个和第10个截取中间的字符串,结果是efgh; sting1.slice(5),按照第5个字符,即起始位置为参数(空格键)进行截取后半部分的字符,结果是efgh lmnee.string(abcd efgh lmn)
7、得到字符串的长度var string1=ee.string(‘this is me’)
var number1=sting1.length()
print(number1)

number的函数

number的函数
1、创建numberee.number(12345678)
2、转变数字的格式var number1=number1.int8()
var number1=number.toInt8()
其中的to后面的Int使用大写I
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6VFXBy2H-1652195507535)(C:\Users\PAN FEI\AppData\Roaming\Typora\typora-user-images\image-20220415154803687.png)]
3、数字的比较number.eq、number.neq、number.gt、number.gte、number.lt、number.lte、number.and()、number.or()、number not其中的var result=number1.eq(number2),输出的结果是0或1,代表假或真
4、数字的运算number1.floor().abs(),先向下取整,再取绝对值
number.round 四舍五入
number.sqrt 向上取整
number.exp 开方
number.log 对数
number.log10 10底对数
number.abs 取整
1、向下取整,就是var number1=ee.number(-3.14159)
var number2=number1.floor(),结果为-4

2、var result1=ee.algorithms.Isequal(number1 number2),number1和number2之间有空格号,得到的结果是true或者flase
5、位运算1、从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算。
2、不同长度的数据进行位运算:如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。
3、用8个位置的二进制表示数字(数据)
比如:1=00000001;2=00000010;3=00000011<
第一种位运算:bitwise.and/or/Xor/Not=bitwise_and/or/xor/not
上面两个表达式意思一样
也等于bitwiseAnd/or/Xor/Not

用8个位置的二进制表示数字(数据)
比如:1=00000001;2=00000010;3=00000011

第二种位运算:
number.leftshift(二进制整体左移的位数),例如var number=ee.number(3),即3用二进制表示就是00000010,即2的(2-1)次方加2的(1-1)次方=3;
number.leftshift=number.left_shift,例如var result=number.leftshif(2),结果为00001100,结果为2的(4-1)次方加2的(3-1)次方=12

位运算的运算规则

符号描述运算规则
&两个位都为1时,结果才为1
|两个位都为0时,结果才为0
^异或两个位相同为0,相异为1
~取反0变1,1变0
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
左移运算符(<<)右移运算符(>>)
定义:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
设 a=1010 1110,a = a<< 2 将a的二进制位左移2位、右补0,即得a=1011 1000。
定义:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
例如:a=a>>2 将a的二进制位右移2位,左补0 或者 左补1得看被移数是正还是负。

java编程的思维和人类的思维过程是相似的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h1f0NPxa-1652195507294)(GEE学习笔记.assets/image-20220424205414980.png)]

dictionary的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCyJqwf4-1652195507295)(GEE学习笔记.assets/image-20220425101001719.png)]

字典的函数
1、创建:ee.dictionary({大括号里面是作为dictionary的参数})里面的参数若是字符串则用单引号
2、合并字典的参数:result1.combine(result2,true)如果字典result1和字典result2之间的参数内容有冲突,则以result2的参数内容为主
3、修改字典的参数:dictionary.set(‘Age’,‘<30’)可以改变打括号里面的参数内容
4、查询字典里面的参数(关键字)的名称:result.keys
5、result.get(‘某一个参数的名称’),例如:dictionary.get(‘Name’)

result.values([‘Name’,‘Age’,‘Location’]),拿到多个变量的内容
返回参数Name的变量内容:jinzhu wang
6、result.contains(‘某变量名称’),想设置一个新的变量,询问dictionary是否包含这个变量
7、result.size(),询问字典有多少个关键字(变量)

list的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2pTLBe3T-1652195507295)(GEE学习笔记.assets/image-20220430113556611.png)]

List的函数
1、ee.list():创建的表格里面也可以包含一个表格,list相当于一个容器数字可以直接写,字符串用单引号,不同数据用逗号隔开
2、list.repeat(重复内容,重复次数)
3、ee.list.sequence(0,9,1,null),创建一些有规律的数据,特别是数字[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHcDT7o6-1652195507536)(GEE学习笔记.assets/image-20220430211811411.png)]
4、list.set(参数一,参数二),参数一为需要修改的变量的索引(顺序号);参数二为修改后的内容参数一的顺序号如果是正的,则是从左开始数;如果是负的,则是从右开始数
例如:list.set(05,‘H’)
5、list.replace(参数一,参数二),参数一为需要替换的内容,可以是数字、字符串等;参数二是替换成什么内容;
list.replaceall(参数一,参数二)
两者区别是前者是只替换第一个出现的参数内容,后者是替换所有的参数一的内容
6、list.add(增加的参数内容)-在list的参数的最后加上一个内容
list.insert(参数一,参数二)-在list的指定位置新加上一个内容
var result=list.add(‘male’),输出结果为竖排的表:[1,2,3,‘A’,‘B’,‘C’,[‘Hello’,‘Good’,‘Bye’],‘male’]
var result=list.insert(3,‘重庆’),输出结果为在第三个关键字位置增加‘重庆’的变量内容
7、list.zip():将两个list对应位置的内容打包成为新的小分量list1=[1999,12,24,‘Good’]
list2=[‘year’,‘month’,‘age’]
var result=list1.zip(list2),结果为[1999,'“year”],[12,“month”],[24,“age”]
8、list.reverse()—倒着顺序数,list.rotate(里面是数值,从那个数值开始数)
9、list.sort()—排序,如果是字符串,以首字母来排序
10、list.swap(0,5),将数值0和5的顺序对调
11、list.flatter()—将一个list拍平,将二维或者三维的变量变为一维var list=ee.list([[123,456],[789,101]],[[987,654],[321,909]])
var list1=list1.flatter(),print的结果就是
12、list.get(4)—括号里的参数为list中要取得的关键字、变量的索引、顺序
13、list.remove(3)—括号里的参数是要移走的内容的索引
list.removeall([3,4])—把list里的3和4全都移除
list的索引是从0出发
14、list.equals(),判断两个list是否相同(不仅要求在内容上相同,还要求内容的顺序相同)var result=list1.equals(list2),输出结果为true or false.
15、list.contains(‘chongqi’),判断是否包含某项内容,print结果为true or false
list.containsall(‘’,‘’),判断是否包含括号里面的所有内容,顺序上没有要求,print结果为true or false
16、list.indexOf(5)—求数值5出现的索引号为多少list.indexOfSublist([4,5,6])—出现的第一个数值组[4,5,6]中的第一个数值的索引号;
list.lastIndexOfSublist([4,5,6])—出现的最后一个数值组[4,5,6]的第一个数值的索引号
17、list.frequence(5)—求数值5出现的频率,也就是出现次数
18、list.map(Do)—对list的所有参量做并行运算,每个量分别同时进行某一项操作,其中的Do是一个做某项操作的函数var list1=ee.list([‘zhao’,‘Qian’,‘sun’,‘Li’])
function Do(Name){
return ee.list.repeat(Name,3);
}
var list2=list1.map(Do)
显示结果为[‘zhao’,‘zhao’,‘zhao’]
[‘Qian’,‘Qian’,‘Qian’]
[‘sun’,‘sun’,‘sun’]
[‘Li’,‘Li’,‘Li’]
19、list.iterate()—卫星图像,后面的函数的计算需要用到前面的函数值var list=ee.list.sequence(1,100,1);
function Do(Number1,Number2){
return ee.Number(Number1).add.(Number2)
}
var list2=ee.list1.iterate(Do,0)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBYLuVyG-1652195507536)(GEE学习笔记.assets/image-20220510143431019.png)]
20、list1.length()—求list1的关键字(变量)的个数
list.size()同理
var list1=ee.list([1,2,3],[4,5,6])
var result=list1.length()
结果为2

Array的函数—Array为向量、矩阵,具有方向性

Array的函数
1、ee.Arrayvar Array([1],[2],[3])
结果为[1]
[2]
[3],为3*1矩阵

var Array([1,2,3])
结果为[1,2,3],为1 *3矩阵<br
2、ee.Array.identity(5)—创建一个5阶单位矩阵输出结果为[1,0,0,0,0]
[0,1,0,0,0]
[0,0,1,0,0]
[0,0,0,1,0]
[0,0,0,0,1]
3、ee.Array.repeat(参数一,参数二),第一个参数为重复的方向,是0或者1;
第二个参数为重复的次数[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MGuONIc4-1652195507537)(GEE学习笔记.assets/image-20220510152442347.png)]
var Array1=ee.Array([1,1,1],[2,2,2])
var Array2=ee.Array1.repeat(1,3)
Array2的结果为[1,1,1],[2,2,2],[1,1,1],[2,2,2],[1,1,1],[2,2,2]

如果是ee.Array.repeat(0,3),则Array的结果为
[1,1,1],[2,2,2]
[1,1,1],[2,2,2]
[1,1,1],[2,2,2]
4、Array.mask()—类似于掩膜Array1=[1,2],[3,4],[5,6],[7,8]
Array2=[0],[0],[1],[0]
var result=Array1.mask(Array2)
0对应的位置的数据清除,1对应位置的数据保留
结果为[5,6]
5、Array1.transpose()—矩阵的转置
6、Array.uint8()—将矩阵里面的数值转换为0-255的无符号整数
还有其他数据格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5x6pkn0D-1652195507537)(GEE学习笔记.assets/image-20220510165529219.png)]
小数转换为整数,遵循四舍五入的规则
var Array1=ee.Array([1.1,2.2,3.3],[4.4,5.5,6.6])
var Array2=Array1.uint8();
输出结果为[1,2,3],[4,5,6]
7、Array1.eq(Array2),两个矩阵对应位置数值相等的为1,数值不相等的为0;
还有其他的数组里面的数据进行比较的语法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSzEOLyg-1652195507537)(GEE学习笔记.assets/image-20220510165633083.png)]
var Array1=ee.Array([[1,1],[2,2],[3,3],[4,4]])
var Array2=ee.Array([[1,2],[3,4],[4,3],[2,1]])
var Array3=Array1.eq(Array2)
输出的Array3的结果为[[1,0],[0,0],[0,1],[0,0]
8、Array1.round()—对数组里面的数值进行四舍五入
Array1.ceil()—对数组里面的数值进行向上的取整,类似于取整函数,[x],取比x大的最近整数,如x=-3.14,则[x]=-3;x=1.12,则[x]=2。
Array1.floor()—与ceil相反,向下取整[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wkzf7ekf-1652195507538)(GEE学习笔记.assets/image-20220510170919348.png)]
9、
                                              |                                                              |
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿槐怪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值