“cdfread”不阅读.cdf文件Matlab

pieyvz9o  于 7个月前  发布在  Matlab
关注(0)|答案(1)|浏览(100)

我无法使用Matlab cdfread函数读取“.cdf”文件。我也尝试了netcdf文件“mvn_lpnt_20180814_v03_r02.cdf”在这里可用:
CDF file
我使用Matlab R2015a(release 8.5)。
任何帮助请。

zengzsys

zengzsys1#

要从NASA空间物理数据设施(SPDF)读取数据,建议您使用SPDF的CDF处理库。该版本的库是免费提供的,可以下载directly from SPDF。安装说明相当简单,几乎没有什么可以添加的。
MATLAB附带的cdflib版本不支持MAVEN文件中使用的某些功能。使用MATLAB提供的CDFLIB在MATLAB 2017a(9.2.0)上运行,您可以获得

>> cdfinfo('mvn_lpw_l2_lpnt_20180814_v03_r02.cdf')
Error using cdflibmex
33 is not a recognized DATATYPE mode.
[... stack trace ...]    

>> data = cdfread('mvn_lpw_l2_lpnt_20180814_v03_r02.cdf')
Error using cdflibmex
33 is not a recognized DATATYPE mode.
[... stack trace ...]

字符串
使用CDF例程的SPDF版本,您将获得正确的输出:

>> mvninfo = spdfcdfinfo('mvn_lpw_l2_lpnt_20180814_v03_r02.cdf')

mvninfo = 

  struct with fields:

              Filename: 'mvn_lpw_l2_lpnt_20180814_v03_r02.cdf'
           FileModDate: '01-Jan-2019 03:18:45'
              FileSize: 2579209
                Format: 'CDF'
         FormatVersion: '3.6.3'
          FileSettings: [1×1 struct]
              Subfiles: {}
             Variables: {7×12 cell}
      GlobalAttributes: [1×1 struct]
    VariableAttributes: [1×1 struct]
            LibVersion: '3.7.0'
          PatchVersion: '3.7.0.0'


spdfcdfread将数据作为MATLAB数组返回

>> mvndata = spdfcdfread('mvn_lpw_l2_lpnt_20180814_v03_r02.cdf')

mvndata =

  1×7 cell array

  Columns 1 through 3

    [17532×10 single]    [17532×1 double]    [17532×1 double]

  Columns 4 through 6

    [17532×10 single]    [17532×10 single]    [17532×1 single]

  Column 7

    [17532×1 single]


MATLAB CDFLIB函数中出现错误的可能原因来自MAVEN文件中epoch变量使用的TT2000数据类型。

data       epoch      time_unix    ddata_lo    ddata_up      flag        info  
________    ________    _________    ________    ________    ________    ________

'single'    'tt2000'    'double'     'single'    'single'    'single'    'single'

相关问题