How do I append new data to a new variable in a NETCDF file ?

10 ビュー (過去 30 日間)
俊 马
俊 马 2023 年 2 月 21 日
コメント済み: 俊 马 2023 年 2 月 28 日
I want to append new data to a new variable in the existing netcdf file and let other variables remain unchanged. However, when I use:
ncid=netcdf.open('E:\data\Landcover\MCD12Q1\heihe\surfdata_40x40_hh_gravtest.nc','WRITE');
gravid = netcdf.defVar(ncid,'PCT_GRAVEL','double',[40 40 10]);
error shows:
Operation not allowed in data mode (NC_ENOTINDEFINE)
do you know how to solve it ? thanks
  1 件のコメント
dpb
dpb 2023 年 2 月 21 日
I "know (almost) nuthink!" per Sgt Schultz about NetCDF files, but the MATLAB interface supplies a higher-level abstracted function <nccreate> that purports to be able to do that. I'd suggest trying it.
If that fails, you'll have to dig a whole lot deeper into the file content of the file you have and the details of the required syntax/operations to add to it.
I dunno if .defVar is the first thing you can call or if you have to do more preliminary work first; it's a pretty complex format/system...

サインインしてコメントする。

採用された回答

Raghunathraju
Raghunathraju 2023 年 2 月 27 日
Hi,
As per my understanding, you want to append new data to a new variable in a NETCDF file.
You have used the following code to get your work done.
ncid=netcdf.open('E:\data\Landcover\MCD12Q1\heihe\surfdata_40x40_hh_gravtest.nc','WRITE');
gravid = netcdf.defVar(ncid,'PCT_GRAVEL','double',[40 40 10]);
But the datatype you used in “netcdf.defVar” is double which is invalid for NETCDF .Instead you can use NC_DOUBLE”.
For further reference you can go through the link below
  1 件のコメント
俊 马
俊 马 2023 年 2 月 28 日
it didn't work... unless I use "ncid=netcdf.create...." instead of "ncid=netcdf.cpen...." but thanks

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNetCDF についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by