首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法来计算和保存一个新变量,它是多个netCDF或tif文件的函数?

是否有一种方法来计算和保存一个新变量,它是多个netCDF或tif文件的函数?
EN

Stack Overflow用户
提问于 2021-04-06 15:41:02
回答 1查看 171关注 0票数 1

我有多个.nc,它们也在.tif文件中,我想使用这些文件根据统计模型计算概率。我有5个文件(V1.ncV2.ncV3.ncV4.ncV5.nc),统计模型是:y = 1 / (1 + exp(-(Intercept + V1 * 1.87 + V2 * 1.53 + V3 * (-4.18) + V4 * 3.58 + V5 * 9.13)))

我通常使用QgisRStudioUbuntu,我不在乎使用哪一个程序。

有没有办法让我用这些文件来计算整个y

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-06 16:50:16

您可以尝试使用

代码语言:javascript
运行
复制
cdo cat V?.nc combined.nc 

然后使用表达式命令创建一个新变量。

代码语言:javascript
运行
复制
intercept=2.3123 # or whatever the value is 
cdo expr,'y=1 / (1 + exp(-(${intercept} + V1 * 1.87 + V2 * 1.53 - 4.18*V3 + V4 * 3.58 + V5 * 9.13)))' combined.nc newvar.nc

我假设V1.nc中的变量名为"V1“等,如果没有相应地替换名称的话。

编辑:根据注释,每个文件使用相同的变量名。因此,在进行上述操作之前,变量应该在每个文件中使用NCO重命名,或者可以使用单独的cdo函数组合原始文件,如下所示:

代码语言:javascript
运行
复制
cdo -pow,-1 -addc,1 -exp -mulc,-1 -addc,$intercept -add -mulc,1.87 V1.nc -add -mulc,1.53 V2.nc -add -mulc,-4.18 V4.nc -add -mulc,3.58 V4.nc -mulc,9.13 V5.nc mynewvariable.nc 

我用管道把它放在一行上,避免中间文件,仔细检查我的公式,但我希望它不包含错误。有了管道,从右到左阅读是有帮助的。

文件mynewvariable.nc中的变量也将被称为Band1;您可能希望使用nco适当地更改元数据,即使这些文件仅供您自己使用,也始终是一个很好的习惯。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66971901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档