当前位置: 首页 > news >正文

【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)

案例

// 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 / toLongee.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 / toShortee.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 / toByteee.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 / toDoubleee.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 / toFloatee.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);

相关文章:

  • Linux_进程概念
  • 【PAT乙】2022秋季赛后总结
  • nginx + tomcat 搭建负载均衡、动静分离(tomcat多实例)
  • CSRF(跨站请求伪造)攻击和预防
  • 【都 Java17 了,还不了解 Java 8 ? 】一文带你深入了解 Java 8 新特性
  • 解决国产机SVN连接失败的问题
  • MySQL 存储过程创建指定表结构
  • 我们这样的人
  • < Linux > 进程概念(2)
  • Qt5开发从入门到精通——第四篇十二节(不规则窗体)
  • MySQL 5.7.x--命令行自带帮助文档的使用,超级棒!!!
  • 手撕前端面试题【javascript】
  • Qt5开发从入门到精通——第四篇十三节(程序启动画面 )
  • postman+Newman+jenkins实现接口自动化测试持续集成
  • 阿里达摩院(研究型实习生)
  • 网络传输文件的问题
  • [nginx文档翻译系列] 控制nginx
  • [译]前端离线指南(上)
  • bootstrap创建登录注册页面
  • C++类中的特殊成员函数
  • ES10 特性的完整指南
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Kibana配置logstash,报表一体化
  • Laravel核心解读--Facades
  • LeetCode算法系列_0891_子序列宽度之和
  • miaov-React 最佳入门
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 半理解系列--Promise的进化史
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从重复到重用
  • 大型网站性能监测、分析与优化常见问题QA
  • 后端_MYSQL
  • 利用DataURL技术在网页上显示图片
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 三分钟教你同步 Visual Studio Code 设置
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 阿里云API、SDK和CLI应用实践方案
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​什么是bug?bug的源头在哪里?
  • #pragma once与条件编译
  • $().each和$.each的区别
  • (7)STL算法之交换赋值
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)构建dubbo分布式平台-平台功能导图
  • (分类)KNN算法- 参数调优
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .apk 成为历史!
  • .libPaths()设置包加载目录
  • .naturalWidth 和naturalHeight属性,
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET 设计模式初探