shell - 如何重新排序/重组 netcdf 文件中的变量属性?
问题描述
我需要将“standard_name”移动为 netcdf 文件中所有变量中存在的第一个属性。
我还没有找到正确的命令,但我希望使用 NCO 会相当简单。
如果我 ncdump,这是当前输出:
short heading(time) ;
heading:data_max = 359.88f ;
heading:long_name = "Ship heading" ;
heading:data_min = 0.f ;
heading:units = "degrees" ;
heading:missing_value = 1.e+38f ;
heading:add_offset = 179.94f ;
heading:standard_name = "ship_heading" ;
heading:scale_factor = -0.005491668f ;
short depth(time, depth) ;
depth:positive = "down" ;
depth:long_name = "Depth" ;
depth:data_min = 20.48f ;
depth:units = "meter" ;
depth:missing_value = 1.e+38f ;
depth:data_max = 572.5f ;
depth:standard_name = "depth" ;
depth:add_offset = 296.49f ;
depth:scale_factor = -0.008423671f ;
我需要输出为:
short heading(time) ;
**heading:standard_name = "ship_heading" ;**
heading:data_max = 359.88f ;
heading:long_name = "Ship heading" ;
heading:data_min = 0.f ;
heading:units = "degrees" ;
heading:missing_value = 1.e+38f ;
heading:add_offset = 179.94f ;
heading:scale_factor = -0.005491668f ;
short depth(time, depth) ;
**depth:standard_name = "depth" ;**
depth:positive = "down" ;
depth:long_name = "Depth" ;
depth:data_min = 20.48f ;
depth:units = "meter" ;
depth:missing_value = 1.e+38f ;
depth:data_max = 572.5f ;
depth:add_offset = 296.49f ;
depth:scale_factor = -0.008423671f ;
解决方案
我同意理想的位置standard_name
是作为第一个或第二个属性。这样转储就更清晰了。您需要了解属性是按其创建顺序存储和转储的。NCO 没有重新安排此订单的功能。最好的解决方案是更改数据集编写器,使其standard_name
在所有其他属性之前创建。或者你可以做一些疯狂的事情,比如使用ncatted
删除所有属性,然后按照你想要的顺序重新添加它们。
推荐阅读
- excel - 如何按第一列对每个新工作表中的新数据进行排序?
- powerbi - 恒定最大日期测量
- javascript - React:组件在重新渲染时确实使用旧状态,为什么?
- c - 为什么我的 C 程序会出错:警告:函数“回文”的隐式声明 [-Wimplicit-function-declaration]
- javascript - 我的编程语言的 Lexer 不会处理 NEWLINE(用 moo js 完成)
- java - testng的gradle错误:任务':app:test'的执行失败
- javascript - 比较两个数组并返回属性值等于另一个键数组的对象数组
- php - 类属性的值被清空
- amazon-web-services - terraform 在循环中调用模块
- google-apps-script - Google Apps 脚本测试未发布的插件