GEE有很多类型的数据
- String
- Number
- Array
- List
- Dictionary
- Geometry
- Feature
- FeatureCollection
- Image
- ImageCollection
- 各种卫星数据
本文主要介绍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
- 绝对值
- 底数e的幂
ee.Number.exp
- 链式调用
ee.Number.aside
- 函数运算
- 开方
ee.Number.sqrt
- 三次根
ee.Number.cbrt
- 幂
ee.Number.pow
- log
ee.Number.log
- log10(lg)
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
- 加
- 三角函数(正、反、双曲)
- sin
ee.Number.sin
- cos
ee.Number.cos
- tan
ee.Number.tan
- asin
ee.Number.asin
- acos
ee.Number.acos
- atan
ee.Number.atan
- sinh
ee.Number.sinh
- cosh
ee.Number.cosh
- tanh
ee.Number.tanh
- sin
- sign函数
ee.Number.signum
- 按位运算
- 按位与
ee.Number.bitwiseAnd
- 按位非
ee.Number.bitwiseNot
- 按位或
ee.Number.bitwiseOr
- 按位异或
ee.Number.bitwiseXor
- 按位与
- 移位运算
- 左移
ee.Number.leftShift
- 右移
ee.Number.rightShift
- 左移
- Gamma函数
ee.Number.trigamma
ee.Number.gamma
ee.Number.gammainc
ee.Number.digamma
- 计算二维向量角度
ee.Number.atan2
- 限制数值范围
ee.Number.clamp
- 字符转数值
ee.Number.parse
- 数值转字符
ee.Number.format
- 格式转换
- int(toInt)
ee.Number.int / ee.Number.toInt
- int8/16/32/64(toInt8/16/32/64)
- long / toLong
ee.Number.long / ee.Number.toLong
- short / toShort
ee.Number.short / ee.Number.toShort
- byte / toByte
ee.Number.byte / ee.Number.toByte
- double / toDouble
ee.Number.double / ee.Number.toDouble
- float / toFloat
ee.Number.float / ee.Number.toFloat
- uint8/16/32(toUint8/16/32)
- int(toInt)
前置章节请阅读
【GEE笔记8】数值Number(常见指令方法1)
【GEE笔记9】数值Number(常见指令方法2)
【GEE笔记10】数值Number(常见指令方法3)
16. 计算二维向量角度ee.Number.atan2
输入一个点的二维坐标,计算这个点和坐标轴连线形成的角度(弧度制)
用法
Number.atan2(right)
案例
// 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)
17. 限制数值范围ee.Number.clamp
用法
Number.clamp(min, max)
案例
// 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
18. 字符转数值ee.Number.parse
用法
ee.Number.parse(input, radix)
案例
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
19. 数值转字符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
20. 格式转换
int
:singed integer(有符号整数)
uint
:unsigned integer(无符号整数)
- int(toInt)
ee.Number.int / ee.Number.toInt
将输入值转换为带符号的 32 位整数。
代码区域只展示int
的用法,如果用toInt
,就是把int
改成toInt
。
用法
Number.int()
案例
// 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);
- int8/16/32/64(toInt8/16/32/64)
用法
Number.int8()
案例
// 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);
- long / toLong
ee.Number.long / ee.Number.toLong
将输入值转换为有符号的 64 位整数。
用法
Number.long()
案例
// 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);
- short / toShort
ee.Number.short / ee.Number.toShort
将输入值转换为有符号的 16 位整数
用法
Number.short()
案例
// 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);
- byte / toByte
ee.Number.byte / ee.Number.toByte
将输入值转换为无符号 8 位整数。
用法
Number.byte()
案例
// 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);
- double / toDouble
ee.Number.double / ee.Number.toDouble
将输入值转换为 64 位浮点数。
用法
Number.double()
案例
// 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);
- float / toFloat
ee.Number.float / ee.Number.toFloat
将输入值转换为 32 位浮点数。
用法
Number.float()
案例
// 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);
- uint8/16/32(toUint8/16/32)
将输入值转换为无符号 8 位整数。
用法
Number.uint8()
案例
// 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);