GEE学习笔记【1】GEE的数据类型之String,Number

GEE学习笔记【1】GEE的数据类型

  • 数据类型
    • String的用法
      • String实战
    • Number数据类型
      • Number实战

对应的课程为
https://www.bilibili.com/video/BV1Sb411p7TQ?p=4

数据类型

GEE的数据类型可以分为参数型数据空间型数据,还有卫星矩阵数据
其中,参数型数据有:String、Number、Array、List、Dictionary;空间型数据有:Geometry、Feature、Feature Collection、Image、Image Collection

String的用法

操作
显示 print(string)
创建 ee.String()
修改 string.cat()(拼接) string.replace()(替换)
段落 string.split()(分割) string.match(匹配)
查询 string.slice() string.length

String实战

1.显示一个String

print("this is a string")

GEE学习笔记【1】GEE的数据类型之String,Number_第1张图片
2.创建一个String

var string = ee.String('this is a string')

print(string)

GEE学习笔记【1】GEE的数据类型之String,Number_第2张图片
在GEE中,任何变量的引入都需要以var开头

3.合并两个String

var string1 = ee.String('this is a string1')
var string2 = ee.String('this is a string2')

var cat_str = string1.cat(string2)
print(cat_str)

GEE学习笔记【1】GEE的数据类型之String,Number_第3张图片
把string2拼接在string1后面

4.替换

var string1 = ee.String('ABC ADE AFG AHI')
var string2 = string1.replace('A','-')

print(string1,string2)

GEE学习笔记【1】GEE的数据类型之String,Number_第4张图片
只替换了第一个A

var string1 = ee.String('ABC ADE AFG AHI')
var string2 = string1.replace('A','-','g')

print(string1,string2)

通过在replace中添加参数’g‘,可以做到全部替换
GEE学习笔记【1】GEE的数据类型之String,Number_第5张图片
5.切割

var string1 = ee.String('A_B_C_D')
var string2 = string1.split("_")

print(string1,string2)

GEE学习笔记【1】GEE的数据类型之String,Number_第6张图片
将String转化成了List

6.匹配

var string1 = ee.String('A B C D C')
var string2 = string1.match('c','i')

print(string1,string2)

GEE学习笔记【1】GEE的数据类型之String,Number_第7张图片
'i’指忽略大小写
7.切片

var string1 = ee.String('1234 5678 90AB')
var string2 = string1.slice(5, 10)

print(string1,string2)

GEE学习笔记【1】GEE的数据类型之String,Number_第8张图片
从第5位到第10位

var string1 = ee.String('1234 5678 90AB')
var string2 = string1.slice(5)

print(string1,string2)

GEE学习笔记【1】GEE的数据类型之String,Number_第9张图片
从第5位到最后

长度

var string1 = ee.String('1234 5678 90AB')
var num = string1.length()

print(string1,num)

GEE学习笔记【1】GEE的数据类型之String,Number_第10张图片

Number数据类型

功能 操作
创建 ee.Number()
修改 number.uint8(); number.Uint8(); number.int8(); number.toInt8()
比较 number.eq(); number.neq(); number.and(); number.or(); ee.Algorithms.IsEqua()
运算 number.abs(); number.round(); number.pow()
字位 number.bitwiseAnd(); number.bitwiseOr(); number.bitwise_and(); number.bitwise_or(); number.leftShift(); number.right_shift()

Number实战

1.创建

var number = ee.Number(123456789)

print(number)

在这里插入图片描述
转变数据格式

var num1 = ee.Number(-3.14159)
var num2 = num1.int8()
var num3 = num1.toInt8()

print(num1, num2, num3)

GEE学习笔记【1】GEE的数据类型之String,Number_第11张图片
注意: int8() 和 toInt8()的大小写不同

  • uint8/16/32/64 = toUint8/16/32/64 (无符号整型)
  • float = toFloat
  • double = toDouble

2.比较

number.eq number.neq number.gt number.gte number.lt number.lte
= > <
  • number.and()
  • number.or()
  • number.not()
var num1 = ee.Number(10)
var num2 = ee.Number(-10)
var bool = num1.eq(num2)

print(num1, num2, bool)

GEE学习笔记【1】GEE的数据类型之String,Number_第12张图片
3.数字运算

number.round number.ceil number.floor number.sqrt number.exp number.log number.log10
四舍五入 向上取整 向下取整 开方 对数 10底对数
var num1 = ee.Number(-3.1415)
var num2 = num1.floor().abs()

print(num1, num2)

GEE学习笔记【1】GEE的数据类型之String,Number_第13张图片
4.数字运算2

var num1 = ee.Number(3.14)
var num2 = ee.Number(3.14)
var num3 = ee.Number(3.141)
var bool1 = ee.Algorithms.IsEqual(num1, num2)
var bool2 = ee.Algorithms.IsEqual(num2, num3)

print(num1, num2, num3)
print(bool1, bool2)

GEE学习笔记【1】GEE的数据类型之String,Number_第14张图片
返回的不是1和0,而是ture 和 false

5.位运算

var num1 = ee.Number(1)
var num2 = ee.Number(2)
var num_And = num1.bitwiseAnd(num2)
var num_Or = num1.bitwiseOr(num2)

print('000000001(=1)and 00000010(=2)', num_And)
print('000000001(=1)or 00000010(=2)', num_Or)

GEE学习笔记【1】GEE的数据类型之String,Number_第15张图片
bitwiseAnd/Or/Xor/Not = bitwise_and/_or/_xor/_not (与/或/异或/非)

6.位运算(左移或右移)

var num = ee.Number(3)
var num_left = num.leftShift(2)
var num_right = num.rightShift(1)

print("00000011 to 00001100",num_left)
print("00000011 to 00000001",num_right)

GEE学习笔记【1】GEE的数据类型之String,Number_第16张图片
number.leftShift = number.left_shift
用途:在Landsat卫星图像中,前8?前12位是用二进制存储的,可以使用位运算对每个像素的云量进行筛选

你可能感兴趣的:(GEE学习笔记,javascript)