"Error: using netcdflib 'dimids' should be double precision" when trying to create variable in NetCDF file
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I'm trying to create a NetCDF file of some timeseries data. I've successfully defined the dimensions and global attributes for my data, but when I try to write my first variable, I get: Error using netcdflib 'dimids' should be double precision.
This is the code I have written to create the variable, and it's the third line that produces the error:
netcdf.reDef(ncid);
nccreate('TVC_Jan2018.nc','Shortwave');
varid = netcdf.defVar(ncid,'Shortwave','double',['lon',1,'lat',1,'time',744]);
nccreate(ncid,varid,'Dimensions',{'lon',1,'lat',1,'time',sz},'Format','classic','Datatype','double');
netcdf.putAtt(ncid,varid,'long_name','Incoming Shortwave Raditation');
netcdf.putAtt(ncid,varid,'units','W m^–2');
netcdf.putAtt(ncid,varid,'mode','time varient');
for t = 1:sz
ncwrite('TVC_Jan2018.nc','Shortwave',MetData_Jan(t,5));
end
netcdf.endDef(ncid);
I've googled and the default precision for numbers in Matlab should be double, so I have no idea where this error is coming from.
2 commentaires
Nitish Nalan
le 28 Août 2020
Hi Victoria,
Could you please try the script mentioned below, and let me know if this helps you.
clc
clear
lon = 1;
lat = 1;
time = 744
mcid = netcdf.create('Example_test.nc','NC_WRITE');
dimLon = netcdf.defDim(mcid,'lon',lon);
dimLat = netcdf.defDim(mcid,'lat',lat);
dimTime = netcdf.defDim(mcid,'time',time);
varid = netcdf.defVar(mcid,'Shortwave','NC_DOUBLE',[dimLon dimLat dimTime]);
netcdf.endDef(mcid);
ncdisp('Example_test.nc');
Réponses (0)
Voir également
Catégories
En savoir plus sur NetCDF dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!