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


    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笔记9】数值Number(常见指令方法2)
    【GEE笔记10】数值Number(常见指令方法3)

    16. 计算二维向量角度ee.Number.atan2

    输入一个点的二维坐标,计算这个点和坐标轴连线形成的角度(弧度制)

    用法

    Number.atan2(right)
    
    • 1

    案例

    // Left input is x and right input is y, representing point (x,y).
    print('Atan2 of point (0,0)', ee.Number(0).atan2(0));  // 0
    print('Atan2 of point (1,0)', ee.Number(1).atan2(0));  // 0
    print('Atan2 of point (0,1)', ee.Number(0).atan2(1));  // 1.570796326 (π/2)
    print('Atan2 of point (-1,0)', ee.Number(-1).atan2(0));  // 3.141592653 (π)
    print('Atan2 of point (0,-1)', ee.Number(0).atan2(-1));  // -1.570796326 (-π/2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    17. 限制数值范围ee.Number.clamp

    用法

    Number.clamp(min, max)
    
    • 1

    案例

    // Numbers within range are unaffected.
    print('100 clamped to range [0,255]', ee.Number(100).clamp(0, 255));  // 100
    
    // Numbers greater than max in range are set to max.
    print('259 clamped to range [0,255]', ee.Number(259).clamp(0, 255));  // 255
    
    // Numbers less than min in range are set to min.
    print('-259 clamped to range [0,255]', ee.Number(-259).clamp(0, 255));  // 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    18. 字符转数值ee.Number.parse

    用法

    ee.Number.parse(input, radix)
    
    • 1

    案例

    print('Client-side string converted to ee.Number',
          ee.Number.parse('10'));  // 10
    
    print('ee.String converted to ee.Number',
          ee.Number.parse(ee.String('100')));  // 100
    
    print('Ambiguous string object converted to ee.Number',
          ee.Number.parse(ee.Feature(null, {id: '1000'}).get('id')));  // 1000
    
    print('Ambiguous number object converted to ee.Number',
          ee.Number.parse(ee.Feature(null, {id: 1000}).get('id')));  // 1000
    
    print('Leading zeros are removed',
          ee.Number.parse('0001'));  // 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    19. 数值转字符ee.Number.format

    用法

    Number.format(pattern)
    
    • 1

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

    20. 格式转换

    int:singed integer(有符号整数)
    uint:unsigned integer(无符号整数)

    • int(toInt)ee.Number.int / ee.Number.toInt
      将输入值转换为带符号的 32 位整数。
      代码区域只展示int的用法,如果用toInt,就是把int改成toInt

    用法

    Number.int()
    
    • 1

    案例

    // Cast a number to signed 32-bit integer: [-2147483648, 2147483647].
    var number = ee.Number(100);
    print('Number:', number);
    
    var intNumber = number.int();
    print('Number cast to int:', intNumber);
    
    
    /**
     * Casting numbers to int that are outside of its range and precision can
     * modify the resulting value, note the behavior of the following scenarios.
     */
    
    // A floating point number cast to int loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToInt = float.int();
    print('Floating point value cast to int:', floatToInt);
    
    // A number greater than int range max cast to int becomes int range max.
    var INT_MAX = 2147483647;
    var outOfRangeHi = ee.Number(INT_MAX + 12345);
    print('Greater than int max:', outOfRangeHi);
    
    var outOfRangeHiToInt = outOfRangeHi.int();
    print('Greater than int max cast to int becomes int max:', outOfRangeHiToInt);
    
    // A number greater than int range min cast to int becomes int range min.
    var INT_MIN = -2147483648;
    var outOfRangeLo = ee.Number(INT_MIN - 12345);
    print('Less than int min:', outOfRangeLo);
    
    var outOfRangeLoToInt = outOfRangeLo.int();
    print('Less than int min cast to int becomes int min:', outOfRangeLoToInt);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • int8/16/32/64(toInt8/16/32/64)

    用法

    Number.int8()
    
    • 1

    案例

    // Cast a number to signed 8-bit integer: [-128, 127].
    var number = ee.Number(100);
    print('Number:', number);
    
    var int8Number = number.int8();
    print('Number cast to int8:', int8Number);
    
    
    /**
     * Casting numbers to int8 that are outside of its range and precision can
     * modify the resulting value, note the behavior of the following scenarios.
     */
    
    // A floating point number cast to int8 loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToInt8 = float.int8();
    print('Floating point value cast to int8:', floatToInt8);
    
    // A number greater than int8 range max cast to int8 becomes int8 range max.
    var INT8_MAX = 127;
    var outOfRangeHi = ee.Number(INT8_MAX + 12345);
    print('Greater than int8 max:', outOfRangeHi);
    
    var outOfRangeHiToInt8 = outOfRangeHi.int8();
    print('Greater than int8 max cast to int8 becomes int8 max:', outOfRangeHiToInt8);
    
    // A number greater than int8 range min cast to int8 becomes int8 range min.
    var INT8_MIN = -128;
    var outOfRangeLo = ee.Number(INT8_MIN - 12345);
    print('Less than int8 min:', outOfRangeLo);
    
    var outOfRangeLoToInt8 = outOfRangeLo.int8();
    print('Less than int8 min cast to int8 becomes int8 min:', outOfRangeLoToInt8);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • long / toLongee.Number.long / ee.Number.toLong
      将输入值转换为有符号的 64 位整数。

    用法

    Number.long()
    
    • 1

    案例

    // Declare an ee.Number.
    var number = ee.Number(100);
    print('ee.Number:', number);
    
    // Cast a number to signed 64-bit integer.
    var longNumber = number.long();
    print('ee.Number cast to long:', longNumber);
    
    
    /**
    * Casting numbers to long that are outside of its range and precision can
    * modify the resulting value, note the behavior of the following scenarios.
    */
    
    // A floating point number cast to long loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToLong = float.long();
    print('Floating point value cast to long:', floatToLong);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • short / toShortee.Number.short / ee.Number.toShort
      将输入值转换为有符号的 16 位整数

    用法

    Number.short()
    
    • 1

    案例

    // Cast a number to signed 16-bit integer: [-32768, 32767].
    var number = ee.Number(100);
    print('Number:', number);
    
    var shortNumber = number.short();
    print('Number cast to short:', shortNumber);
    
    
    /**
     * Casting numbers to short that are outside of its range and precision can
     * modify the resulting value, note the behavior of the following scenarios.
     */
    
    // A floating point number cast to short loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToShort = float.short();
    print('Floating point value cast to short:', floatToShort);
    
    // A number greater than short range max cast to short becomes short range max.
    var SHORT_MAX = 32767;
    var outOfRangeHi = ee.Number(SHORT_MAX + 12345);
    print('Greater than short max:', outOfRangeHi);
    
    var outOfRangeHiToShort = outOfRangeHi.short();
    print('Greater than short max cast to short becomes short max:', outOfRangeHiToShort);
    
    // A number greater than short range min cast to short becomes short range min.
    var SHORT_MIN = -32768;
    var outOfRangeLo = ee.Number(SHORT_MIN - 12345);
    print('Less than short min:', outOfRangeLo);
    
    var outOfRangeLoToShort = outOfRangeLo.short();
    print('Less than short min cast to short becomes short min:', outOfRangeLoToShort);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • byte / toByteee.Number.byte / ee.Number.toByte
      将输入值转换为无符号 8 位整数。

    用法

    Number.byte()
    
    • 1

    案例

    // Cast a number to unsigned 8-bit integer: [0, 255].
    var number = ee.Number(100);
    print('Number:', number);
    
    var byteNumber = number.byte();
    print('Number cast to byte:', byteNumber);
    
    
    /**
     * Casting numbers to byte that are outside of its range and precision can
     * modify the resulting value, note the behavior of the following scenarios.
     */
    
    // A floating point number cast to byte loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToByte = float.byte();
    print('Floating point value cast to byte:', floatToByte);
    
    // A number greater than byte range max cast to byte becomes byte range max.
    var BYTE_MAX = 255;
    var outOfRangeHi = ee.Number(BYTE_MAX + 12345);
    print('Greater than byte max:', outOfRangeHi);
    
    var outOfRangeHiToByte = outOfRangeHi.byte();
    print('Greater than byte max cast to byte becomes byte max:', outOfRangeHiToByte);
    
    // A number greater than byte range min cast to byte becomes byte range min.
    var BYTE_MIN = 0;
    var outOfRangeLo = ee.Number(BYTE_MIN - 12345);
    print('Less than byte min:', outOfRangeLo);
    
    var outOfRangeLoToByte = outOfRangeLo.byte();
    print('Less than byte min cast to byte becomes byte min:', outOfRangeLoToByte);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • double / toDoubleee.Number.double / ee.Number.toDouble
      将输入值转换为 64 位浮点数。

    用法

    Number.double()
    
    • 1

    案例

    // Declare an ee.Number.
    var number = ee.Number(100);
    print('ee.Number:', number);
    
    // Cast a number to signed 64-bit floating point.
    var doubleNumber = number.double();
    print('ee.Number cast to double:', doubleNumber);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • float / toFloatee.Number.float / ee.Number.toFloat
      将输入值转换为 32 位浮点数。

    用法

    Number.float()
    
    • 1

    案例

    // Declare an ee.Number.
    var number = ee.Number(100);
    print('ee.Number:', number);
    
    // Cast a number to signed 32-bit floating point.
    var floatNumber = number.float();
    print('ee.Number cast to float:', floatNumber);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • uint8/16/32(toUint8/16/32)
      将输入值转换为无符号 8 位整数。

    用法

    Number.uint8()
    
    • 1

    案例

    // Cast a number to unsigned 8-bit integer: [0, 255].
    var number = ee.Number(100);
    print('Number:', number);
    
    var uint8Number = number.uint8();
    print('Number cast to uint8:', uint8Number);
    
    
    /**
     * Casting numbers to uint8 that are outside of its range and precision can
     * modify the resulting value, note the behavior of the following scenarios.
     */
    
    // A floating point number cast to uint8 loses decimal precision.
    var float = ee.Number(1.7);
    print('Floating point value:', float);
    
    var floatToUint8 = float.uint8();
    print('Floating point value cast to uint8:', floatToUint8);
    
    // A number greater than uint8 range max cast to uint8 becomes uint8 range max.
    var UINT8_MAX = 255;
    var outOfRangeHi = ee.Number(UINT8_MAX + 12345);
    print('Greater than uint8 max:', outOfRangeHi);
    
    var outOfRangeHiToUint8 = outOfRangeHi.uint8();
    print('Greater than uint8 max cast to uint8 becomes uint8 max:', outOfRangeHiToUint8);
    
    // A number greater than uint8 range min cast to uint8 becomes uint8 range min.
    var UINT8_MIN = 0;
    var outOfRangeLo = ee.Number(UINT8_MIN - 12345);
    print('Less than uint8 min:', outOfRangeLo);
    
    var outOfRangeLoToUint8 = outOfRangeLo.uint8();
    print('Less than uint8 min cast to uint8 becomes uint8 min:', outOfRangeLoToUint8);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
  • 相关阅读:
    前端面试宝典~Symbol、相同的Set、Getter、控制动画、js中哪些操作会造成内存泄漏?等......
    博客导流到微信公众号
    CMD常用命令大全「值得收藏」
    OS之页面置换算法
    俄罗斯卢布对美元接近60 卢布今年一直是全球表现最好的货币?
    《算法导论》学习(十六)----一文讲懂红黑树
    2022年6月电子学会Python等级考试试卷(三级)答案解析
    关于C++函数重载
    龙芯3a5000下安装部署rabbitmq
    智慧社区管理系统-知识点补充01
  • 原文地址:https://blog.csdn.net/qq_41159191/article/details/126701352