注意:声明一个变量(引入一个变量),必须以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 lmn | ee.string(abcd efgh lmn) |
7、得到字符串的长度 | var string1=ee.string(‘this is me’) var number1=sting1.length() print(number1) |
number的函数
number的函数 | ||
---|---|---|
1、创建number | ee.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.Array | var 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、 |
| |