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