matlab: new data type (real or complex value) flag for hdf5 data
This commit is contained in:
parent
b3ca99ec56
commit
892dd67264
@ -55,17 +55,24 @@ if (do_FD_dump)
|
||||
if (~isfield(field,'FD'))
|
||||
warning('openEMS:ConvertHDF5_VTK','no FD data found skipping frequency domian vtk dump...');
|
||||
else
|
||||
ph = linspace(0,360,phase_N+1);
|
||||
ph = ph(1:end-1);
|
||||
for n = 1:numel(field.FD.frequency)
|
||||
for p = ph
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_' num2str(p,'%03d') '.vtk' ];
|
||||
Dump2VTK(filename, real(field.FD.values{n}*exp(1j*p*pi/180)), mesh, fieldname, varargin{:});
|
||||
if (field.FD.DataType==1) % dump complex value FD data
|
||||
ph = linspace(0,360,phase_N+1);
|
||||
ph = ph(1:end-1);
|
||||
for n = 1:numel(field.FD.frequency)
|
||||
for p = ph
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_' num2str(p,'%03d') '.vtk' ];
|
||||
Dump2VTK(filename, real(field.FD.values{n}*exp(1j*p*pi/180)), mesh, fieldname, varargin{:});
|
||||
end
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_abs.vtk' ];
|
||||
Dump2VTK(filename, abs(field.FD.values{n}), mesh, fieldname, varargin{:});
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_ang.vtk' ];
|
||||
Dump2VTK(filename, angle(field.FD.values{n}), mesh, fieldname, varargin{:});
|
||||
end
|
||||
else % dump real value FD data
|
||||
for n = 1:numel(field.FD.frequency)
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '.vtk' ];
|
||||
Dump2VTK(filename, real(field.FD.values{n}), mesh, fieldname, varargin{:});
|
||||
end
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_abs.vtk' ];
|
||||
Dump2VTK(filename, abs(field.FD.values{n}), mesh, fieldname, varargin{:});
|
||||
filename = [vtk_prefix '_' num2str(field.FD.frequency(n)) '_ang.vtk' ];
|
||||
Dump2VTK(filename, angle(field.FD.values{n}), mesh, fieldname, varargin{:});
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -44,3 +44,5 @@ for n=1:numTS
|
||||
end
|
||||
end
|
||||
|
||||
field.FD.DataType=1;
|
||||
|
||||
|
@ -6,10 +6,12 @@ function hdf_fielddata = ReadHDF5FieldData(file)
|
||||
% hdf_fielddata.TD.time
|
||||
% hdf_fielddata.TD.names
|
||||
% hdf_fielddata.TD.values
|
||||
% hdf_fielddata.TD.DataType (0 --> real value data)
|
||||
%
|
||||
% % frequency domain data (if exist)
|
||||
% hdf_fielddata.FD.frequency
|
||||
% hdf_fielddata.FD.values
|
||||
% hdf_fielddata.FD.DataType (0 / 1 --> real / complex value data)
|
||||
%
|
||||
% example: values of timestep 12:
|
||||
% hdf_fielddata.TD.values{12}: array (x,y,z,polarization)
|
||||
@ -54,6 +56,7 @@ end
|
||||
|
||||
if (numel(TD.names)>0)
|
||||
hdf_fielddata.TD=TD;
|
||||
hdf_fielddata.TD.DataType = 0; %real value data
|
||||
for n=1:numel(hdf_fielddata.TD.names)
|
||||
hdf_fielddata.TD.values{n} = double(hdf5read(file,hdf_fielddata.TD.names{n}));
|
||||
end
|
||||
@ -66,8 +69,19 @@ catch err
|
||||
% disp(err)
|
||||
return
|
||||
end
|
||||
|
||||
for n=1:numel(hdf_fielddata.FD.frequency)
|
||||
hdf_fielddata.FD.values{n} = double(hdf5read(file,['/FieldData/FD/f' int2str(n-1) '_real']) + 1i*hdf5read(file,['/FieldData/FD/f' int2str(n-1) '_imag']));
|
||||
try
|
||||
hdf_fielddata.FD.values{n} = double(hdf5read(file,['/FieldData/FD/f' int2str(n-1) '_real']) + 1i*hdf5read(file,['/FieldData/FD/f' int2str(n-1) '_imag']));
|
||||
hdf_fielddata.FD.DataType = 1; %complex value data
|
||||
catch
|
||||
try
|
||||
hdf_fielddata.FD.values{n} = double(hdf5read(file,['/FieldData/FD/f' int2str(n-1)]));
|
||||
hdf_fielddata.FD.DataType = 0; %real value data
|
||||
catch
|
||||
error('openEMS:ReadHDF5FieldData','FD data invalid...')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function hdf_fielddata = ReadHDF5FieldData_octave(file)
|
||||
@ -83,11 +97,24 @@ if isfield(hdf.FieldData,'TD')
|
||||
hdf_fielddata.TD.names{n} = ['/FieldData/TD/' hdf_fielddata_names{n}(2:end)];
|
||||
hdf_fielddata.TD.time(n) = ReadHDF5Attribute(file, hdf_fielddata.TD.names{n},'time');
|
||||
end
|
||||
hdf_fielddata.TD.DataType = 0; %real value data
|
||||
end
|
||||
if isfield(hdf.FieldData,'FD')
|
||||
%read FD data
|
||||
hdf_fielddata.FD.frequency = ReadHDF5Attribute(file,'/FieldData/FD/','frequency');
|
||||
for n=1:numel(hdf_fielddata.FD.frequency)
|
||||
hdf_fielddata.FD.values{n} = double(hdf.FieldData.FD.(['f' int2str(n-1) '_real']) +1i*hdf.FieldData.FD.(['f' int2str(n-1) '_imag']) );
|
||||
try %try reading complex data
|
||||
for n=1:numel(hdf_fielddata.FD.frequency)
|
||||
hdf_fielddata.FD.values{n} = double(hdf.FieldData.FD.(['f' int2str(n-1) '_real']) +1i*hdf.FieldData.FD.(['f' int2str(n-1) '_imag']) );
|
||||
end
|
||||
hdf_fielddata.FD.DataType = 1; %complex value data
|
||||
catch
|
||||
try %try reading real value data
|
||||
for n=1:numel(hdf_fielddata.FD.frequency)
|
||||
hdf_fielddata.FD.values{n} = double(hdf.FieldData.FD.(['f' int2str(n-1)]));
|
||||
end
|
||||
hdf_fielddata.FD.DataType = 0; %real value data
|
||||
catch
|
||||
error('openEMS:ReadHDF5FieldData','FD data invalid...')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user