@@ -2,6 +2,8 @@ function ncsave(filename, varname, A, ncdims, dtype)
22
33narginchk(3 , 5 )
44
5+ filename = expanduser(filename );
6+
57if nargin >= 4 && ~isempty(ncdims )
68 for i = 2 : 2 : length(ncdims )
79 sizeA(i / 2 ) = ncdims{i };
@@ -37,24 +39,13 @@ function ncsave(filename, varname, A, ncdims, dtype)
3739
3840if any(strcmp(vars , varname ))
3941 exist_file(filename , varname , A , sizeA )
40- % catch excp
41- % if any(strcmp(excp.identifier, {'MATLAB:imagesci:netcdf:unableToOpenFileforRead', 'MATLAB:imagesci:netcdf:unknownLocation'}))
42- % % pass Matlab
43- % elseif any(strcmp(excp.message, {'No such file or directory', 'NetCDF: Variable not found'}))
44- % % pass Octave
45- % else
46- % disp(['failed create ', varname])
47- % rethrow(excp)
48- % end
4942else
5043 new_file(filename , varname , A , sizeA , ncdims )
5144end
5245
5346end % function
5447
5548
56-
57-
5849function exist_file(filename , varname , A , sizeA )
5950narginchk(4 ,4 )
6051
@@ -76,20 +67,15 @@ function new_file(filename, varname, A, sizeA, ncdims)
7667
7768if isscalar(A )
7869 nccreate(filename , varname , ' Datatype' , class(A ), ' Format' , ' netcdf4' )
79- elseif isvector(A ) || ismatrix( A )
70+ elseif isvector(A )
8071 nccreate(filename , varname , ' Dimensions' , ncdims , ' Datatype' , class(A ), ' Format' , ' netcdf4' )
8172else
8273 % enable Gzip compression--remember Matlab's dim order is flipped from
8374 % C / Python
84- switch length(sizeA )
85- case 4 , chunksize = [sizeA(1 ), sizeA(2 ), 1 , sizeA(4 )];
86- case 3 , chunksize = [sizeA(1 ), sizeA(2 ), 1 ];
87- otherwise , error(' ncsave:fixme' , ' %s is bigger than 4 dims' , varname )
88- end
8975 % "Datatype" to be Octave case-sensitive keyword compatible
9076 nccreate(filename , varname , ' Dimensions' , ncdims , ...
9177 ' Datatype' , class(A ), ...
92- ' DeflateLevel' , 1 , ' Shuffle' , true , ' ChunkSize' , chunksize , ' Format' , ' netcdf4' )
78+ ' DeflateLevel' , 1 , ' Shuffle' , true , ' ChunkSize' , auto_chunk_size( sizeA ) , ' Format' , ' netcdf4' )
9379end
9480
9581ncwrite(filename , varname , A )
0 commit comments