GEE有很多类型的数据
本文主要介绍ee.Number
的常见指令方法内容,完整指令方法见GEE ee.Number
ee.Number
有以下常见指令方法内容
print(number)
ee.Number()
ee.Number.eq()
、ee.Number.neq()
、ee.Number.lt()
、ee.Number.lte()
、ee.Number.gt()
、ee.Number.gte()
ee.Number.unitScale
ee.Number.abs
ee.Number.round
ee.Number.ceil
ee.Number.floor
ee.Number.format
ee.Number.aside
ee.Number.sqrt
ee.Number.cbrt
ee.Number.pow
ee.Number.log
ee.Number.log10
ee.Number.max
ee.Number.min
ee.Number.hypot
ee.Number.first
ee.Number.firstNonZero
ee.Number.and
ee.Number.or
ee.Number.not
ee.Number.add
ee.Number.subtract
ee.Number.multiply
ee.Number.divide
ee.Number.mod
ee.Number.sin
ee.Number.cos
ee.Number.tan
ee.Number.asin
ee.Number.acos
ee.Number.atan
ee.Number.sinh
ee.Number.cosh
ee.Number.tanh
ee.Number.signum
ee.Number.bitwiseAnd
ee.Number.bitwiseNot
ee.Number.bitwiseOr
ee.Number.bitwiseXor
ee.Number.leftShift
ee.Number.rightShift
ee.Number.trigamma
ee.Number.gamma
ee.Number.gammainc
ee.Number.digamma
ee.Number.atan2
ee.Number.clamp
ee.Number.parse
ee.Number.format
ee.Number.int / ee.Number.toInt
ee.Number.long / ee.Number.toLong
ee.Number.short / ee.Number.toShort
ee.Number.byte / ee.Number.toByte
ee.Number.double / ee.Number.toDouble
ee.Number.float / ee.Number.toFloat
ee.Number.format
用法
Number.format(pattern)
pattern
一个 printf 样式的格式字符串。
例如,“%.2f”生成格式为“3.14”的数字,“%05d”生成格式为“00042”的数字。
格式字符串必须满足以下条件: 1. 零个或多个前缀字符。 2. 正好是一个 ‘%’。 3. 集合 [#-+ 0,(.\d] 中的零个或多个修饰符。 4. 集合 [sdoxXeEfgGaA] 中的恰好一个转换字符。 5. 零个或多个后缀字符。
有关格式字符串的更多信息,请参阅https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
案例
print('Zero-fill to length of 3',
ee.Number(1).format('%03d')); // 001
print('Include 1 decimal place in 1.2347',
ee.Number(1.23476).format('%.1f')); // 1.2
print('Include 3 decimal places in 1.2347',
ee.Number(1.23476).format('%.3f')); // 1.235 (rounds up)
print('Scientific notation with 3 decimal places shown',
ee.Number(123476).format('%.3e')); // 1.235e+05 (rounds up)
print('Integer with 2 decimal places of precision',
ee.Number(123476).format('%.2f')); // 123476.00
ee.Number.aside
Calls a function passing this object as the first argument, and returning itself. Convenient e.g. when debugging:
var c = ee.ImageCollection(‘foo’).aside(print)
.filterDate(‘2001-01-01’, ‘2002-01-01’).aside(print, ‘In 2001’)
.filterBounds(geom).aside(print, ‘In region’)
.aside(Map.addLayer, {min: 0, max: 142}, ‘Filtered’)
.select(‘a’, ‘b’);
Returns the same object, for chaining.
调用一个函数,将此对象作为第一个参数传递,并返回自身。方便例如调试时: var c = ee.ImageCollection(‘foo’).aside(print) .filterDate(‘2001-01-01’, ‘2002-01-01’).aside(打印, ‘2001’) .filterBounds(geom).aside(print, ‘在区域内’) .aside(Map.addLayer, {min: 0, max: 142}, ‘Filtered’) .select(‘a’, ‘b’); 返回相同的对象,用于链接。
用法
Number.aside(func, var_args)
案例
// Print a message when constructing an ee.Number.
var eeNum = ee.Number(10).aside(print, 'An ee.Number was defined');
ee.Number.sqrt
用法
Number.sqrt()
案例
// Values less than 0 are invalid. 数值必须大于等于0
print('Square root of 25', ee.Number(25).sqrt()); // 5
ee.Number.cbrt
用法
Number.cbrt()
案例
print('Cubic root of 27', ee.Number(27).cbrt()); // 3
ee.Number.pow
这里需要注意的是两个ee.Number( )
,左边的是底数,右边的是指数。
用法
Number.pow(right)
案例
print('5 ** 2', ee.Number(5).pow(ee.Number(2))); // 25
print('-5 ** 2', ee.Number(-5).pow(ee.Number(2))); // 25
print('5 ** -2', ee.Number(5).pow(ee.Number(-2))); // 0.04
print('5 ** 2.2', ee.Number(5).pow(ee.Number(2.2))); // 34.493241536
print('5.2 ** 2', ee.Number(5.2).pow(ee.Number(2))); // 27.040000000
ee.Number.log
用法
Number.log()
案例
print(ee.Number(Math.pow(Math.E, -1)).log()); // -1
print(ee.Number(1).log()); // 0
print(ee.Number(Math.E).log()); // 1
ee.Number.log10
用法
Number.log10()
案例
print(ee.Number(0.1).log10()); // -1
print(ee.Number(1).log10()); // 0
print(ee.Number(10).log10()); // 1
print(ee.Number(100).log10()); // 2
ee.Number.max
用法
Number.max(right)
案例
print('Given 5 and 10, max is 10', ee.Number(5).max(ee.Number(10))); // 10
ee.Number.min
用法
Number.min(right)
案例
print('Given 5 and 10, min is 5', ee.Number(5).min(ee.Number(10))); // 5
ee.Number.hypot
用法
Number.hypot(right)
案例
// Left input is x and right input is y, representing point (x,y).
print('Length from origin to point (0,0)', ee.Number(0).hypot(0)); // 0
print('Length from origin to point (3,0)', ee.Number(3).hypot(0)); // 3
print('Length from origin to point (3,4)', ee.Number(3).hypot(4)); // 5
print('Length from origin to point (-3,4)', ee.Number(-3).hypot(4)); // 5
print('Length from origin to point (-3,-4)', ee.Number(-3).hypot(-4)); // 5
ee.Number.first
用法
Number.first(right)
案例
print(ee.Number(1).first(ee.Number(2))); // 1
ee.Number.firstNonZero
用法
Number.firstNonZero(right)
案例
print('First non-zero: 0, 5', ee.Number(0).firstNonZero(ee.Number(5))); // 5
print('First non-zero: 5, 0', ee.Number(5).firstNonZero(ee.Number(0))); // 5
ee.Number.and
用法
Number.and(right)
案例
print('Both 5 and 10 are not 0?', ee.Number(5).and(ee.Number(10))); // 1
print('Both 5 and 0 are not 0?', ee.Number(5).and(ee.Number(0))); // 0
ee.Number.or
用法
Number.or(right)
案例
print('Either 0 or 5 non-zero?', ee.Number(0).or(ee.Number(5))); // 1
print('Either 0 or 0 non-zero?', ee.Number(0).or(ee.Number(0))); // 0
ee.Number.not
用法
Number.not()
案例
print('Value is not 0', ee.Number(5).not()); // 0
print('Value is 0', ee.Number(0).not()); // 1
ee.Number.add
用法
Number.add(right)
案例
print('5 + 10', ee.Number(5).add(ee.Number(10))); // 15
print('5 + 10.2', ee.Number(5).add(ee.Number(10.2))); // 15.2
print('5 + -10.2', ee.Number(5).add(ee.Number(-10.2))); // -5.199999999
ee.Number.subtract
用法
Number.subtract(right)
案例
print('5 - 10', ee.Number(5).subtract(ee.Number(10))); // -5
print('10 - 5', ee.Number(10).subtract(ee.Number(5))); // 5
print('5 - 10.2', ee.Number(5).subtract(ee.Number(10.2))); // -5.199999999
print('5 - -10.2', ee.Number(5).subtract(ee.Number(-10.2))); // 15.2
ee.Number.multiply
用法
Number.multiply(right)
案例
print('5 * 10', ee.Number(5).multiply(ee.Number(10))); // 50
print('-5 * -10', ee.Number(-5).multiply(ee.Number(-10))); // 50
print('5 * 10.5', ee.Number(5).multiply(ee.Number(10.5))); // 52.5
print('5 * -10.5', ee.Number(5).multiply(ee.Number(-10.5))); // -52.5
print('0 * 10', ee.Number(0).multiply(ee.Number(10))); // 0
ee.Number.divide
用法
Number.divide(right)
案例
print('5 / 10', ee.Number(5).divide(ee.Number(10))); // 0.5
print('5 / 10.2', ee.Number(5).divide(ee.Number(10.2))); // 0.490196078
print('5 / -10.2', ee.Number(5).divide(ee.Number(-10.2))); // -0.490196078
print('-10.2 / 5', ee.Number(-10.2).divide(ee.Number(5))); // -2.04
print('-10.2 / -5', ee.Number(-10.2).divide(ee.Number(-5))); // 2.04
print('0 / 10', ee.Number(0).divide(ee.Number(10))); // 0
print('10 / 0', ee.Number(10).divide(ee.Number(0))); // 0
ee.Number.mod
用法
Number.mod(right)
案例
// Remainder with positive dividend.
print('Remainder of 12/5', ee.Number(12).mod(ee.Number(5))); // 2
print('Remainder of 1/-2', ee.Number(1).mod(ee.Number(-2))); // 1
print('Remainder of 1/2', ee.Number(1).mod(ee.Number(2))); // 1
print('Remainder of 2/3', ee.Number(2).mod(ee.Number(3))); // 2
print('Remainder of 5.5/2', ee.Number(5.5).mod(ee.Number(2))); // 1.5
// Remainder with negative dividend.
print('Remainder of -12/5', ee.Number(-12).mod(ee.Number(5))); // -2
print('Remainder of -1/2', ee.Number(-1).mod(ee.Number(2))); // -1
print('Remainder of -4/2', ee.Number(-4).mod(ee.Number(2))); // 0
由于篇幅过长,剩下的10个小节另请阅读: