'cdfread' 未读取 .cdf 文件 Matlab
'cdfread' not reading .cdf file Matlab
我无法使用 Matlab cdfread
函数读取“.cdf”文件。我也试过 netcdf
文件 'mvn_lpw_l2_lpnt_20180814_v03_r02.cdf' 可以在这里找到:
我正在使用 Matlab R2015a(8.5 版)。
请帮忙。
要从 NASA Space 物理数据设施 (SPDF) 读取数据,我们鼓励您使用 SPDF 的 CDF 处理库。这个版本的库是免费提供的,可以下载directly from SPDF。安装说明相当简单,可以添加的内容很少。
MATLAB 附带的 cdflib 版本不支持 MAVEN 文件中使用的某些功能。使用 MATLAB 在 MATLAB 2017a (9.2.0) 上提供的 CDFLIB 运行,您会得到
>> 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 ...]
使用 SPDF 版本的 CDF 例程,您将获得正确的输出:
>> 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
returns 数据作为 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 函数错误的一个可能原因是 TT2000 数据类型,该数据类型用于 MAVEN 文件中的 epoch
变量。
data epoch time_unix ddata_lo ddata_up flag info
________ ________ _________ ________ ________ ________ ________
'single' 'tt2000' 'double' 'single' 'single' 'single' 'single'
我无法使用 Matlab cdfread
函数读取“.cdf”文件。我也试过 netcdf
文件 'mvn_lpw_l2_lpnt_20180814_v03_r02.cdf' 可以在这里找到:
我正在使用 Matlab R2015a(8.5 版)。
请帮忙。
要从 NASA Space 物理数据设施 (SPDF) 读取数据,我们鼓励您使用 SPDF 的 CDF 处理库。这个版本的库是免费提供的,可以下载directly from SPDF。安装说明相当简单,可以添加的内容很少。
MATLAB 附带的 cdflib 版本不支持 MAVEN 文件中使用的某些功能。使用 MATLAB 在 MATLAB 2017a (9.2.0) 上提供的 CDFLIB 运行,您会得到
>> 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 ...]
使用 SPDF 版本的 CDF 例程,您将获得正确的输出:
>> 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
returns 数据作为 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 函数错误的一个可能原因是 TT2000 数据类型,该数据类型用于 MAVEN 文件中的 epoch
变量。
data epoch time_unix ddata_lo ddata_up flag info
________ ________ _________ ________ ________ ________ ________
'single' 'tt2000' 'double' 'single' 'single' 'single' 'single'