首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R ncdf4不能从netcdf读取字符变量。

R ncdf4不能从netcdf读取字符变量。
EN

Stack Overflow用户
提问于 2018-12-07 15:59:31
回答 1查看 315关注 0票数 0

我试图从包含字符的netcdf文件中读取变量。

代码语言:javascript
复制
library(ncdf4)

NCFile <- nc_open('MD02_2575.age')
ncvar_get(NCFile, 'Label')

我希望

代码语言:javascript
复制
'KIA33119' 'KIA24904' 'KIA33120' 'KIA24905' 'KIA33121' 'KIA24906' 'KIA25875' 'KIA24907' 'KIA24903' 'User    ' 'User    ' 'User    ' 'User    ' 'User    '

根据我用Matlab读取文件时得到的结果,而用R得到

代码语言:javascript
复制
[1] "KKKKKKKKKUUUUU" "IIIIIIIIIsssss" "AAAAAAAAAeeeee" "323232222rrrrr" "343434544     " "191919899     " "102020700     " "940516573     "

我想使用R,这看起来像是编码问题,有人建议如何读取变量吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-08 08:42:56

Label是一个带有字符的二维数组;

代码语言:javascript
复制
char Label(Label_Characters, Length);

此外,ncdump在将其转换为字符串列表时遇到了困难,例如:ncdump -v Label MD02_2575.age也给出了“不正确”的结果:

代码语言:javascript
复制
 Label =
  "KKKKKKKKKUUUUU",
  "IIIIIIIIIsssss",
  "AAAAAAAAAeeeee",
  "323232222rrrrr",
  "343434544     ",
  "191919899     ",
  "102020700     ",
  "940516573     " ;

我写了“不正确”,因为从NetCDF文件本身来看,不清楚(1)单个字符是否需要连接到字符串,(2)如果是这样的话,那么应该沿着哪个维度执行连接。老实说,我很惊讶ncdump,R和Matlab会这样做吗?

为了说明这个问题(使用Python):

代码语言:javascript
复制
import netCDF4 as nc4

f = nc4.Dataset('MD02_2575.age')
v = f.variables['Label'][:,:]

label1 = v[:,0].tostring()  # Correct
label2 = v[0,:].tostring()  # Same as `ncdump`, `R`, ..

print(label1, label2)

结果:'KIA33119' 'KKKKKKKKKUUUUU'

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

https://stackoverflow.com/questions/53672968

复制
相关文章

相似问题

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