作者:CSDN @ _养乐多_
本文将介绍在 Google Earth Engine(GEE)上生成随机数的 API,可以指定随机数的生成范围、类型(整型、浮点型)、分布方式(均匀分布、正态分布)。
一、随机数函数
1.1 生成指定范围整型随机数
函数 | 返回 | 说明 |
---|
getRandomInt(min, max) | ee.Number对象 | 生成指定范围整型随机数 |
参数名 | 类型 | 说明 |
---|
min | 整型 | 指定范围的最小值,比如0 |
max | 整型 | 指定范围的最大值,比如10 |
1.2 生成指定范围浮点型随机数
函数 | 返回 | 说明 |
---|
getRandomFloat(min, max, decimalPlaces) | ee.Number对象 | 生成指定范围浮点型随机数 |
参数名 | 类型 | 说明 |
---|
min | 整型 | 指定范围的最小值,比如0 |
max | 整型 | 指定范围的最大值,比如10 |
decimalPlaces | 整型 | 返回值需要保留的小数位数,比如2,可以是0 |
1.3 默认随机数函数
函数 | 返回 | 说明 |
---|
random() | ee.Number对象 | 生成 [0,1) 范围浮点型随机数 |
1.4 正态分布随机整数
函数 | 返回 | 说明 |
---|
generateNormalInt(mean, standardDeviation, min, max) | ee.Number对象 | 生成指定范围正态分布整型随机数 |
参数名 | 类型 | 说明 |
---|
mean | 整型或者浮点型 | 正态分布的均值,比如50 |
standardDeviation | 整型或者浮点型 | 正态分布的标准差,比如10 |
min | 整型 | 指定范围的最小值,比如0 |
max | 整型 | 指定范围的最大值,比如100 |
1.5 正态分布随机浮点数
generateNormalFloat = function(mean, standardDeviation, min, max, decimalPlaces)
函数 | 返回 | 说明 |
---|
generateNormalFloat (mean, standardDeviation, min, max, decimalPlaces) | ee.Number对象 | 生成指定范围正态分布整型随机数 |
参数名 | 类型 | 说明 |
---|
mean | 整型或者浮点型 | 正态分布的均值,比如5.5 |
standardDeviation | 整型或者浮点型 | 正态分布的标准差,比如1.5 |
min | 整型 | 指定范围的最小值,比如0 |
max | 整型 | 指定范围的最大值,比如10 |
decimalPlaces | 整型 | 返回值需要保留的小数位数,比如4,可以是0 |
二、示例代码
2.1 示例代码链接
点击链接进入示例代码:https://code.earthengine.google.com/48f703b733f8df5f1cdf6f27f?noload=true
2.2 示例代码
var eemc = require('users/949384116/lib:Tools/MathCalculator');
eemc.authorHomePage();
var randomInt1 = eemc.getRandomInt(0, 9);
print("随机整数1:", randomInt1);
var randomInt2 = eemc.getRandomInt(5, 20);
print("随机整数2:", randomInt2);
var randomInt3 = eemc.getRandomInt(-10, 10);
print("随机整数3:", randomInt3);
var randomFloat1 = eemc.getRandomFloat(0, 9, 1);
print("随机浮点数1:", randomFloat1);
var randomFloat2 = eemc.getRandomFloat(5, 20, 2);
print("随机浮点数2:", randomFloat2);
var randomFloat3 = eemc.getRandomFloat(-10, 10, 3);
print("随机浮点数3:", randomFloat3);
try {
var randomNormal = eemc.generateNormalInt(50, 10, 0, 100);
print("整数随机数:", randomNormal);
} catch (error) {
print("Error:", error.message);
}
try {
var randomFloat = eemc.generateNormalFloat(5.5, 1.5, 0, 10, 4);
print("浮点型随机数:", randomFloat);
} catch (error) {
print("Error:", error.message);
}