/usr/share/octave/packages/octcdf-1.1.7/example_netcdf.m is in octave-octcdf 1.1.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | %% Copyright (C) 2005 Alexander Barth
%%
%% This program is free software; you can redistribute it and/or modify
%% it under the terms of the GNU General Public License as published by
%% the Free Software Foundation; either version 2 of the License, or
%% (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%% GNU General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; If not, see <http://www.gnu.org/licenses/>.
% Example for creating and reading a netcdf file
% create some variables to store them in a netcdf file
latitude = -90:1:90;
longitude = -179:1:180;
[y,x] = meshgrid(pi/180 * latitude,pi/180 * longitude);
temp = cos(2*x) .* cos(y);
%---------------------------------------%
% %
% write data to a netcdf file %
% %
%---------------------------------------%
% create netcdf file called example.nc
nc = netcdf('example.nc','c');
% define the dimension longitude and latitude of size
% 360 and 181 respectively.
nc('longitude') = 360;
nc('latitude') = 181;
% coordinate variable longitude
nc{'longitude'} = ncdouble('longitude'); % create a variable longitude of type double with
% 360 elements (dimension longitude).
nc{'longitude'}(:) = longitude; % store the octave variable longitude in the netcdf file
nc{'longitude'}.units = 'degrees_east'; % define a string attribute of the variable longitude
% coordinate variable latitude
nc{'latitude'} = ncdouble('latitude');; % create a variable latitude of type double with
% 181 elements (dimension latitude).
nc{'latitude'}(:) = latitude; % store the octave variable latitude in the netcdf file
nc{'latitude'}.units = 'degrees_north'; % define a string attribute of the variable latitude
% variable temp
nc{'temp'} = ncdouble('latitude','longitude'); % create a variable temp of type double of the size 360x181
% (dimension longitude and latitude).
nc{'temp'}(:) = temp; % store the octave variable temp in the netcdf file
nc{'temp'}.long_name = 'Temperature';
nc{'temp'}.units = 'degree Celsius'; % define a string attribute of the variable
nc{'temp'}.valid_range = [-10 40]; % define a vector of doubles attribute of the variable
% define a global string attribute
nc.history = 'netcdf file created by example_netcdf.m in octave';
nc.title = 'sample file';
close(nc) % close netcdf file and all changes are written to disk
disp(['example.nc file created. You might now inspect this file with the shell command "ncdump -h example.nc"']);
%---------------------------------------%
% %
% read data from a netcdf file %
% %
%---------------------------------------%
nc = netcdf('example.nc','r'); % open netcdf file example.nc in read-only
n = nc('longitude'); % get the length of the dimension longitude
temp = nc{'temp'}(:); % retrieve the netcdf variable temp
temp_units = nc{'temp'}.units; % retrieve the attribute units of variable temp
temp_valid_range = nc{'temp'}.valid_range; % retrieve the attribute valid_range of variable temp
global_history = nc.history; % retrieve the global attribute history
|