簡體   English   中英

r ncdf4無法從netcdf讀取字符變量

[英]r ncdf4 cannot read character variable from netcdf

我正在嘗試從包含字符的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讀取文件時得到的結果,但使用RI獲得

[1] "KKKKKKKKKUUUUU" "IIIIIIIIIsssss" "AAAAAAAAAeeeee" "323232222rrrrr" "343434544     " "191919899     " "102020700     " "940516573     "

我想使用R。這看起來像是一個編碼問題,有人建議如何讀取變量嗎?

Label是帶有字符的2D數組;

char Label(Label_Characters, Length);

另外, ncdump很難將其轉換為字符串列表,例如: ncdump -v Label MD02_2575.age還會給出“不正確”的結果:

 Label =
  "KKKKKKKKKUUUUU",
  "IIIIIIIIIsssss",
  "AAAAAAAAAeeeee",
  "323232222rrrrr",
  "343434544     ",
  "191919899     ",
  "102020700     ",
  "940516573     " ;

我寫了“ incorrect”,因為從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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM