• 【GEE笔记9】数值Number(常见指令方法2)


    GEE有很多类型的数据

    • String
    • Number
    • Array
    • List
    • Dictionary
    • Geometry
    • Feature
    • FeatureCollection
    • Image
    • ImageCollection
    • 各种卫星数据

    本文主要介绍ee.Number的常见指令方法内容,完整指令方法见GEE ee.Number

    ee.Number有以下常见指令方法内容

    1. 显示print(number)
    2. 创建ee.Number()
    3. 比较ee.Number.eq()ee.Number.neq()ee.Number.lt()ee.Number.lte()ee.Number.gt()ee.Number.gte()
    4. 缩放ee.Number.unitScale
    5. 取整
      • 绝对值ee.Number.abs
      • 四舍五入ee.Number.round
      • 向下取整ee.Number.ceil
      • 向上取整ee.Number.floor
    6. 底数e的幂ee.Number.exp
    7. 链式调用ee.Number.aside
    8. 函数运算
      • 开方ee.Number.sqrt
      • 三次根ee.Number.cbrt
      • ee.Number.pow
      • logee.Number.log
      • log10(lg)ee.Number.log10
      • 最大值ee.Number.max
      • 最小值ee.Number.min
      • 三角形斜边ee.Number.hypot
      • 第一个数值ee.Number.first
      • 第一个非零数值ee.Number.firstNonZero
    9. 逻辑运算
    • ee.Number.and
    • ee.Number.or
    • ee.Number.not
    1. 数学运算
      • ee.Number.add
      • ee.Number.subtract
      • ee.Number.multiply
      • ee.Number.divide
      • 余数ee.Number.mod
    2. 三角函数(正、反、双曲)
      • sinee.Number.sin
      • cosee.Number.cos
      • tanee.Number.tan
      • asinee.Number.asin
      • acosee.Number.acos
      • atanee.Number.atan
      • sinhee.Number.sinh
      • coshee.Number.cosh
      • tanhee.Number.tanh
    3. sign函数ee.Number.signum
    4. 按位运算
      • 按位与ee.Number.bitwiseAnd
      • 按位非ee.Number.bitwiseNot
      • 按位或ee.Number.bitwiseOr
      • 按位异或ee.Number.bitwiseXor
    5. 移位运算
      • 左移ee.Number.leftShift
      • 右移ee.Number.rightShift
    6. Gamma函数
    • ee.Number.trigamma
    • ee.Number.gamma
    • ee.Number.gammainc
    • ee.Number.digamma
    1. 计算二维向量角度ee.Number.atan2
    2. 限制数值范围ee.Number.clamp
    3. 字符转数值ee.Number.parse
    4. 数值转字符ee.Number.format
    5. 格式转换
      • int(toInt)ee.Number.int / ee.Number.toInt
      • int8/16/32/64(toInt8/16/32/64)
      • long / toLongee.Number.long / ee.Number.toLong
      • short / toShortee.Number.short / ee.Number.toShort
      • byte / toByteee.Number.byte / ee.Number.toByte
      • double / toDoubleee.Number.double / ee.Number.toDouble
      • float / toFloatee.Number.float / ee.Number.toFloat
      • uint8/16/32(toUint8/16/32)

    同系列文章请阅读
    【GEE笔记8】数值Number(常见指令方法1)
    【GEE笔记10】数值Number(常见指令方法3)
    【GEE笔记11】数值Number(常见指令方法4)

    6. 底数e的幂ee.Number.exp

    用法

    Number.exp()
    
    • 1

    案例

    print('e^-1', ee.Number(-1).exp());  // 0.367879441
    print('e^0', ee.Number(0).exp());  // 1
    print('e^1', ee.Number(1).exp());  // 2.718281828
    print('e^2', ee.Number(2).exp());  // 7.389056098
    
    • 1
    • 2
    • 3
    • 4

    7. 链式调用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)
    
    • 1

    案例

    // Print a message when constructing an ee.Number.
    var eeNum = ee.Number(10).aside(print, 'An ee.Number was defined');
    
    • 1
    • 2

    8. 函数运算

    • 开方ee.Number.sqrt

    用法

    Number.sqrt()
    
    • 1

    案例

    // Values less than 0 are invalid. 数值必须大于等于0
    print('Square root of 25', ee.Number(25).sqrt());  // 5
    
    • 1
    • 2
    • 三次根ee.Number.cbrt

    用法

    Number.cbrt()
    
    • 1

    案例

    print('Cubic root of 27', ee.Number(27).cbrt());  // 3
    
    • 1
    • ee.Number.pow

    这里需要注意的是两个ee.Number( ),左边的是底数,右边的是指数。

    用法

    Number.pow(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • logee.Number.log

    用法

    Number.log()
    
    • 1

    案例

    print(ee.Number(Math.pow(Math.E, -1)).log());  // -1
    print(ee.Number(1).log());  // 0
    print(ee.Number(Math.E).log());  // 1
    
    • 1
    • 2
    • 3
    • log10(lg)ee.Number.log10

    用法

    Number.log10()
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • 4
    • 最大值ee.Number.max
      只能比较两个数值

    用法

    Number.max(right)
    
    • 1

    案例

    print('Given 5 and 10, max is 10', ee.Number(5).max(ee.Number(10)));  // 10
    
    • 1
    • 最小值ee.Number.min
      只能比较两个数值

    用法

    Number.min(right)
    
    • 1

    案例

    print('Given 5 and 10, min is 5', ee.Number(5).min(ee.Number(10)));  // 5
    
    • 1
    • 三角形斜边ee.Number.hypot
      勾股定理

    用法

    Number.hypot(right)
    
    • 1

    案例

    // 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 第一个数值ee.Number.first

    用法

    Number.first(right)
    
    • 1

    案例

    print(ee.Number(1).first(ee.Number(2)));  // 1
    
    • 1
    • 第一个非零数值ee.Number.firstNonZero

    用法

    Number.firstNonZero(right)
    
    • 1

    案例

    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
    
    • 1
    • 2

    9. 逻辑运算

    • ee.Number.and
      如果两个值都不为零,则返回 1。

    用法

    Number.and(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • ee.Number.or
      如果任一输入值非零,则返回 1。

    用法

    Number.or(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • ee.Number.not
      如果输入非零,则返回 0,否则返回 1。

    用法

    Number.not()
    
    • 1

    案例

    print('Value is not 0', ee.Number(5).not());  // 0
    print('Value is 0', ee.Number(0).not());  // 1
    
    • 1
    • 2

    10. 数学运算

    • ee.Number.add
      两个数值相加

    用法

    Number.add(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • ee.Number.subtract
      左值减去右值

    用法

    Number.subtract(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • 4
    • ee.Number.multiply

    用法

    Number.multiply(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • ee.Number.divide
      左值除以右值

    用法

    Number.divide(right)
    
    • 1

    案例

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 余数ee.Number.mod

    用法

    Number.mod(right)
    
    • 1

    案例

    // 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    由于篇幅过长,剩下的10个小节另请阅读:

  • 相关阅读:
    OpenMLDB+Byzer,SQL 也能玩转机器学习全流程
    Mac 免费模拟器推荐适配m1芯片
    多线程编程模式-Producer-consumer
    js使用canvas实现图片鼠标滚轮放大缩小拖拽预览,显示像素坐标,显示像素值
    ESP32_esp-idf环境搭建
    AF_UNIX和127.0.0.1(AF_INET)回环地址写数据速度对比
    fdbus之事件循环及线程关系
    [数据库与软件工程]四、关系代数之关系除法的实际意义与计算方法
    AI面试必备-《家居必备的AI精选资源列表》免费分享
    【开发小记】vue项目优化
  • 原文地址:https://blog.csdn.net/qq_41159191/article/details/126700912