我试图从包含字符的netcdf文件中读取变量。
library(ncdf4)
NCFile <- nc_open('MD02_2575.age')
ncvar_get(NCFile, 'Label')我希望
'KIA33119' 'KIA24904' 'KIA33120' 'KIA24905' 'KIA33121' 'KIA24906' 'KIA25875' 'KIA24907' 'KIA24903' 'User ' 'User ' 'User ' 'User ' 'User '根据我用Matlab读取文件时得到的结果,而用R得到
[1] "KKKKKKKKKUUUUU" "IIIIIIIIIsssss" "AAAAAAAAAeeeee" "323232222rrrrr" "343434544 " "191919899 " "102020700 " "940516573 "我想使用R,这看起来像是编码问题,有人建议如何读取变量吗?
发布于 2018-12-08 08:42:56
Label是一个带有字符的二维数组;
char Label(Label_Characters, Length);此外,ncdump在将其转换为字符串列表时遇到了困难,例如:ncdump -v Label MD02_2575.age也给出了“不正确”的结果:
Label =
"KKKKKKKKKUUUUU",
"IIIIIIIIIsssss",
"AAAAAAAAAeeeee",
"323232222rrrrr",
"343434544 ",
"191919899 ",
"102020700 ",
"940516573 " ;我写了“不正确”,因为从NetCDF文件本身来看,不清楚(1)单个字符是否需要连接到字符串,(2)如果是这样的话,那么应该沿着哪个维度执行连接。老实说,我很惊讶ncdump,R和Matlab会这样做吗?
为了说明这个问题(使用Python):
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'
https://stackoverflow.com/questions/53672968
复制相似问题