GoGPT Best VPN GoSearch

OnWorks 网站图标

r3.mapcalcgrass - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 r3.mapcalcgrass

这是 r3.mapcalcgrass 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


r3.地图计算器 - 光栅地图计算器。

关键词


光栅,代数

概要


r3.地图计算器
r3.地图计算器 - 帮帮我
r3.地图计算器 [-s[表达=绳子[文件=姓名[种子=整数] [--覆盖]
[--帮助] [--详细] [--安静] [--ui]

标志:
-s
生成随机种子(结果不确定)

--覆盖
允许输出文件覆盖现有文件

- 帮帮我
打印使用摘要

--详细
详细模块输出

- 安静的
静音模块输出

--用户界面
强制启动 GUI 对话框

参数:
表达=绳子
要评估的表达式

文件=姓名
包含要计算的表达式的文件

种子=整数
rand() 函数的种子

商品描述


r3.地图计算器 对栅格地图层执行算术运算。 可以创建新的栅格地图图层
它们是涉及现有栅格地图层的算术表达式,整数或浮点数
点常数和函数。

教学计划 使用
r3.地图计算器 表达式具有以下形式:

导致 = 表达

协调 导致 是包含计算结果的栅格地图图层的名称
表达 是任何涉及现有栅格地图层的合法算术表达式
(除了 导致 本身)、整数或浮点常量,以及已知的函数
计算器。 表达式中允许使用括号,并且可以嵌套到任何深度。
导致 将在用户的当前地图集中创建。

As 表达式= 是第一个选项,它是默认值。 这意味着通过一个
命令行上的表达式是可能的,只要表达式被引用并有一个空格
包含在第一个之前 = 标志。 示例('foo' 是结果映射):
r3.mapcalc "foo = 1"
要么:
r3.mapcalc 'foo = 1'
未加引号的表达式(即拆分为多个参数)不起作用,也不会省略
= 符号前的空格:
r3.mapcalc 'foo=1'
对不起, 不是有效参数
如果没有给出选项,它会生成“file=-”(从标准输入读取),所以你可以
继续使用例如:
r3.mapcalc < 文件
要么:
r3.mapcalc <
富 = 1
EOF
但是除非您需要与以前的版本兼容,否则请明确使用 file= ,例如:
r3.mapcalc 文件=文件
要么:
r3.mapcalc 文件=- <
富 = 1
EOF

输入的公式为 r3.地图计算器 由用户记录在 导致 地图标题
(出现在类别文件中 导致) 并在历史文件中 导致.

某些字符对命令 shell 具有特殊含义。 如果用户正在输入
r3.地图计算器 在命令行中,表达式应该用单引号括起来。
请参阅下面的注释。

运营商 秩序 of 优先权
支持以下运算符:
运算符含义类型优先级
-------------------------------------------------- ------------
- 否定算术 12
~ 按位 12 的补码
! 不符合逻辑 12
^ 取幂算术 11
% 模数算术 10
/除法运算10
* 乘法运算 10
+ 加法运算 9
- 减法运算 9
<< 左移按位 8
>> 右移按位 8
>>> 右移(无符号)按位 8
> 大于逻辑 7
>= 大于或等于逻辑 7
< 小于逻辑 7
<= 小于或等于逻辑 7
== 等于逻辑 6
!= 不等于逻辑 6
& 按位和按位 5
| 按位或按位 4
&& 逻辑和逻辑 3
&&& 逻辑与[1] 逻辑 3
|| 逻辑或逻辑 2
||| 逻辑或[1] 逻辑2
?: 条件逻辑 1
(模数是除法后的余数)

[1] &&& 和 ||| 运算符处理空值的方式与其他运算符不同。 见
题为 支持 下方以获取更多详细信息。

运算符从左到右应用,优先级高的应用
在优先级较低的那些之前。 除以 0 和模数为 0 是可以接受的,并且
给出 NULL 结果。 如果比较为真,则逻辑运算符给出 1 结果,0
除此以外。

3D 名称
表达式中不是数字、运算符或函数名称的任何内容都被视为
是一个 3D 网格名称。 例子:

体积
x3
3d.他的

大多数 GRASS 栅格地图图层和 3D 网格都符合此命名约定。 但是,如果一个 3D
grid 有一个与上述规则冲突的名称,它应该被引用。 例如,
表达

x = ab

将被解释为:x 等于 a 减 b,而

x = "ab"

将被解释为:x 等于名为的 3D 网格 AB



X = 3107

会创造 x 用数字 3107 填充,而

x = "3107"

将复制 3D 网格 3107 到 3D 网格 x.

除非 3D 网格名称看起来像数字或包含运算符,否则不需要引号,
或者除非程序以非交互方式运行。 这里给出的例子假设程序是
交互式运行。 请参阅下面的注释。

r3.地图计算器 将根据用户当前的地图集搜索路径查找 3D 网格。
可以覆盖搜索路径并指定从中选择的地图集
3D 网格。 这是通过在表单中​​指定 3D 网格名称来完成的:

名称@地图集

例如,以下是一个合法的表达式:

结果 = x@PERMANENT / y@SOILS

指定的地图集不必在地图集搜索路径中。 (这种方法
覆盖地图集搜索路径对于所有 GRASS 命令都是通用的,而不仅仅是 r3.地图计算器.)

这个 邻里 变化
3D 网格是以体素格式存储的数据库文件,即三维矩阵
浮点/双精度值。 在 r3.地图计算器, 3D 网格后面可能跟有 邻里 变化
指定与正在评估的当前单元格的相对偏移量。 格式是
地图[r,c,d],在 Moku:Pro 上 r 是行偏移量, c 是列偏移量和 d 是深度偏移。
例如, 地图[1,2,3] 指的是下面一行,右边两列和 3 的单元格
低于当前单元格的级别, 地图[-3,-2,-1] 指上面三行的单元格,两行
当前单元格左侧和下一级的列,以及 地图[0,1,0] 指的是
单元格当前单元格右侧的一列。 这种语法允许开发
单个 3D 网格内或跨多个 3D 网格的邻域类型过滤器。

功能
目前支持的功能如下表所示。 结果的类型
显示在最后一列。 F 意味着函数总是导致浮动
点值, I 意味着该函数给出一个整数结果,并且 * 表示
如果函数的任何参数是浮点值,则结果为浮点数,并且
如果所有参数都是整数,则为整数。

功能描述类型
-------------------------------------------------- -------------------------
abs(x) 返回 x 的绝对值 *
acos(x) x 的反余弦(结果以度为单位) F
asin(x) x 的反正弦(结果以度为单位) F
atan(x) x 的反正切(结果以度为单位) F
atan(x,y) y/x 的反正切(结果以度为单位) F
cos(x) x 的余弦(x 以度为单位) F
double(x) 将 x 转换为双精度浮点 F
eval([x,y,...,]z) 评估列出的 expr 的值,将结果传递给 z
exp(x) x F 的指数函数
exp(x,y) x 的 y F 次幂
float(x) 将 x 转换为单精度浮点 F
graph(x,x1,y1[x2,y2..]) 基于图 F 中的点将 x 转换为 y
graph2(x,x1[,x2,..],y1[,y2..])
graph() F 的另一种形式
如果决策选项:*
if(x) 如果 x 不为零,则为 1,否则为 0
if(x,a) a 如果 x 不为零,否则为 0
if(x,a,b) a 如果 x 不为零,则 b 否则
if(x,a,b,c) a 如果 x > 0,b 如果 x 为零,c 如果 x < 0
int(x) 将 x 转换为整数 [ truncates ] I
isnull(x) 检查是否 x = NULL
log(x) x F 的自然对数
log(x,b) x base b F 的对数
max(x,y[,z...]) 列出的最大值 *
中值(x,y[,z...]) 列出的那些的中值 *
min(x,y[,z...]) 列出的最小值 *
mode(x,y[,z...]) 列出的模式值 *
nmax(x,y[,z...]) 列出的最大值,不包括 NULL *
nmedian(x,y[,z...]) 列出的中值,不包括 NULL *
nmin(x,y[,z...]) 列出的最小值,不包括 NULL *
nmode(x,y[,z...]) 列出的众数值,不包括 NULL *
not(x) 如果 x 为零,则为 1,否则为 0
pow(x,y) x 的 y 次方 *
rand(a,b) 随机值 x : a <= x < b *
round(x) 将 x 舍入到最接近的整数 I
round(x,y) 将 x 舍入到最接近的 y 倍数
round(x,y,z) 对于某个整数 i,将 x 舍入到最接近的 y*i+z
sin(x) x 的正弦(x 以度为单位) F
sqrt(x) x F 的平方根
tan(x) x 的切线(x 以度为单位) F
xor(x,y) x 和 y 的异或 (XOR) I
内部变量:
row() 当前移动窗口行
col() 当前移动窗口的col
depth() 返回当前深度
x() 当前移动窗口的 x 坐标
y() 当前移动窗口的 y 坐标
z() 返回当前 z 值
ewres() 当前东西向分辨率
nsres() 当前南北分辨率
tbres() 当前上下分辨率
null() 空值
请注意,row()、col() 和 depth() 索引从 1 开始。

漂浮的 价值观 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 表达
表达式中允许使用浮点数。 浮点数是一个数字
其中包含小数点:
2.3 12.0 12..81
表达式中的浮点值以特殊方式处理。 用算术和
逻辑运算符,如果任一操作数为浮点数,则另一个将转换为浮点数,并且
操作的结果是浮点数。 这意味着,特别是整数的除法
导致(截断的)整数,而浮点数的除法导致准确的浮点数
点值。 使用 * 类型的函数(见上表),结果是浮点数(如果有)
参数是浮点数,否则是整数。

注意:如果您使用整数进行计算,则生成的地图将为整数。 如果你
想要获得浮点结果,请将小数点添加到整数。

如果你想要浮点除法,至少一个参数必须是浮点数
点值。 将其中之一乘以 1.0 将产生一个浮点结果,正如
使用浮动():
r3.mapcalc“比率=浮点(soil.4-soil.3)/soil.3)”

支持
· 除以零应该导致NULL。

· 模数为零应导致 NULL。

· 任何算术或逻辑运算中的 NULL 值都应导致 NULL。
(但是, &&& 和 ||| 被特殊对待,如下所述)。

· &&& 和 ||| 即使当 x 为 NULL 时,运算符也遵守以下公理:
x &&& 假 == 假
假 &&& x == 假
×||| 真==真
真||| x == 真

· 函数参数中的 NULL 值应该导致 NULL(但是,if()、eval() 和
isnull() 被特殊处理,如下所述)。

· eval() 函数总是返回它的最后一个参数

· if()的情况是:
如果(x)
如果 x 为 NULL,则为 NULL; 0 如果 x 为零; 1 否则
如果(x,a)
如果 x 为 NULL,则为 NULL; a 如果 x 非零; 0 否则
如果(x,a,b)
如果 x 为 NULL,则为 NULL; a 如果 x 非零; b 否则
如果(x,n,z,p)
如果 x 为 NULL,则为 NULL; n 如果 x 是负数;
z 如果 x 为零; p 如果 x 是正数

· (新)函数 isnull(x) 返回: 1 如果 x 为 NULL; 0 否则。 新的)
函数 null()(没有参数)返回一个整数 NULL。

· 非 NULL 但无效的函数参数应该导致 NULL。
例子:
日志(-2)
平方(-2)
pow(a,b) 其中 a 为负且 b 不是整数

NULL 支持:请注意,使用 NULL 单元格执行的任何数学运算始终会导致 NULL
这些单元格的值。 如果要即时替换 NULL 单元格,请使用 isnull()
if 语句中的测试函数。

示例:用户希望将 NULL 值的单元格视为零。 添加地图 A 和
B(其中 B 包含 NULL)来获取地图 C,用户可以使用如下结构:

C = A + if(isnull(B),0,B)

条件:

对于单参数形式:
if(x) = NULL 如果 x 为 NULL
如果 (x) = 0 如果 x = 0
if(x) = 1 否则(即 x 既不是 NULL 也不是 0)。

对于两个参数形式:
if(x,a) = NULL 如果 x 是 NULL
if(x,a) = 0 如果 x = 0
if(x,a) = a 否则(即 x 既不是 NULL 也不是 0)。

对于三参数形式:
if(x,a,b) = NULL 如果 x 是 NULL
if(x,a,b) = b 如果 x = 0
if(x,a,b) = a 否则(即 x 既不是 NULL 也不是 0)。

对于四参数形式:
if(x,a,b,c) = NULL 如果 x 是 NULL
if(x,a,b,c) = a 如果 x > 0
if(x,a,b,c) = b 如果 x = 0
if(x,a,b,c) = c 如果 x < 0
更一般地,所有运算符和大多数函数在它们的参数中有 *any* 时返回 NULL
是 NULL。
函数 if()、isnull() 和 eval() 是例外。
如果函数 isnull() 的参数为 NULL,则返回 1,否则返回 0。 如果用户
想要相反的,! 运算符,例如“!isnull(x)”必须使用。

如果第一个参数为 NULL,则所有形式的 if() 都返回 NULL。 2、3 和 4 参数形式
if() 如果“selected”参数为 NULL,则返回 NULL,例如:
if(0,a,b) = b 不管 a 是否为 NULL
if(1,a,b) = a 不管 b 是否为 NULL
eval() 总是返回它的最后一个参数,所以如果最后一个参数是
空值。

备注: 用户不能使用 == 运算符测试 NULL,因为如果有任何一个,则返回 NULL
或者两个参数都是 NULL,即如果 x 和 y 都是 NULL,那么 "x == y" 和 "x != y" 是
分别为 NULL 而不是 1 和 0。
如果用户将 NULL 视为表示未知数量,则该行为是有意义的。
例如,如果 x 和 y 都是未知的,那么 "x == y" 和 "x != y" 的值也是
未知; 如果它们都具有未知值,则用户不知道它们是否都有
具有相同的价值。

附注


用法 命令 线
如果表达式是在命令行上给出的,则必须格外小心。 一些字符
对 UNIX shell 有特殊意义。 其中包括:
* ( ) > & |

建议在表达式周围加上单引号; 例如:
'结果 = 体积 * 2'
如果没有引号,对 UNIX shell 具有特殊含义的 * 将被更改
r3.地图计算器 会看到 * 以外的东西。

计算
一般来说,最好在每个 r3.mapcalc 命令中尽可能多地使用
多行输入。

向后 兼容性
为了向后兼容 GRASS 6,如果没有给出选项,它会制造
file=-(从 stdin 读取),因此您可以继续使用,例如:
r3.mapcalc < 文件
要么:
r3.mapcalc <
富 = 1
EOF
但是除非您需要与以前的 GRASS GIS 版本兼容,否则请明确使用 file=,
如上所述。

当地图名称中包含不允许出现的大写字母或点时
模块选项名称, r3.地图计算器 命令也将在没有引号的情况下有效:
r3.mapcalcvolume_A=1
r3.mapcalc体积.1=1
但是,不建议使用此语法,因为如上所述更安全。 使用引号
既向后兼容,又在未来有效。

互动 输入 in 命令 线
对于用户从标准输入(而不是从命令行)输入的公式,
现在存在行延续功能。 如果用户在末尾添加反斜杠
输入线 r3.地图计算器 假设用户输入的公式继续
下一个输入行。 输入行的可能数量没有限制,也没有限制
公式的长度。

如果 r3.地图计算器 用户输入的公式很长,地图标题会包含
只有一部分,但大部分(如果不是全部)公式将被放入历史文件中
等加工。为 导致 地图。

当用户输入输入时 r3.地图计算器 在命令行上非交互地,
程序不会警告用户不要覆盖现有的地图层。 用户应
因此,请注意分配程序输出中尚不存在的栅格地图名称
他们当前的地图集。

3D 电网 MASK 处理
r3.地图计算器 遵循栅格 MASK 处理的常见 GRASS 行为,因此 MASK 只是
在读取现有的 GRASS 光栅图时应用。 这意味着,例如,
命令:
r3.mapcalc "volume_amplified = volume * 3"
如果 MASK 处于活动状态,则创建一个尊重被屏蔽像素的地图。

但是,当创建不基于任何地图的地图时,例如来自常量的地图:
r3.mapcalc "volume_const = 200.0"
创建的栅格地图仅受计算区域的限制,但不受
一个活跃的面具。 这是意料之中的,因为如上所述,MASK 仅在以下情况下应用
阅读,而不是在编写光栅地图时。

如果在这种情况下也应该应用 MASK,则包含 MASK 的 if() 语句
应该使用,例如:
r3.mapcalc "volume_const = if(MASK, 200.0, null())"
在测试 MASK 相关表达式时请记住,当 MASK 处于活动状态时,您看不到
屏蔽区域中的数据,即使它们不是 NULL。 看 掩码 了解详情。

随机 发电机 初始化
rand() 函数使用的伪随机数生成器可以初始化为
使用特定值 种子 选项。 这可用于复制以前的
计算。

或者,它可以使用系统时间和 PID 进行初始化 -r 旗。
这应该导致每次使用不同的种子。

在任何一种情况下,种子都将写入地图的历史记录,并且可以使用
信息.

如果您希望其他人能够验证您的结果,最好使用
种子 提供在脚本中指定或从
确定性过程,例如给定显式种子的伪随机数生成器。

注意 rand() 函数将产生一个致命错误,如果 种子 选项也不是
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -s 标志给出。

示例


计算两个 3D 网格的平均值 ab:
均值 = (a + b)/2
要形成加权平均值:
平均值 = (5*a + 3*b)/8.0
生成 3D 网格的二进制表示 a 以便类别 0 保持为 0 和所有其他
类别变为 1:
掩码 = 一个!= 0
这也可以通过以下方式实现:
掩码 = if(a)
遮罩 3D 网格 b 通过 3D 网格 a:
结果=如果(a,b)
要将所有低于 5 的值更改为 NULL:
newmap = if(map<5, null(), 5)
graph() 函数允许用户使用 x,y 对指定 xy 转换
坐标。 在某些情况下,从一个值到另一个值的转换并不容易
在数学上建立,但可以用二维图表示,然后线性表示
插值。 graph() 函数提供了实现这一点的机会。 x 轴
值与由 a 表示的关联图一起提供给图函数
x,y 对系列。 x 值必须单调递增(每个大于或
等于前一个)。 图函数在对之间线性插值。 任何 x
低于最低 x 值(即第一个)的值将返回关联的 y 值。
任何高于最后一个的 x 值都会类似地返回关联的 y 值。
考虑请求:
newmap = 图(地图,1,10, 2,25, 3,50)
提供的 X(地图)值和返回的 y(新地图)值:
0,10
1,10
1.5,17.5
2.9,47.5
4,50
100,50

问题


续行必须以 \ 结尾并具有 没有 尾随空格(空格或制表符)。 如果
用户确实在续行的末尾留下了空白,错误消息
产生 r3.地图计算器 将毫无意义,并且该等式将无法作为用户使用
故意的。 这对于 eval() 函数尤其重要。

目前没有评论机制 r3.地图计算器. 也许添加一个功能
当用户在 a 的开头插入 # 时,将导致整行被忽略
线好像它不存在一样,可以解决问题。

该功能应要求用户键入“结束”或“退出”而不是简单的空白
线。 这将使多个脚本的分隔可以由空格分隔。

r3.地图计算器 在对 NULL 单元格进行操作的情况下不打印警告。 它留给
用户使用 isnull() 函数。

使用 onworks.net 服务在线使用 r3.mapcalcgrass


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。