Select multiple frames from a single fits file
Show older comments
Hi,
I have a csv file and a fits file, I need to select multiple frames from the fits file based on the non-zero indices of a csv file. In the attached csv file, I need to select the 4th and 7th frame from the fits file, as it contains the non-zero values.Can someone help?
TIA
Answers (1)
Walter Roberson
on 17 Apr 2019
vals = csvread('Book4.csv');
frame_numbers = find(vals ~=0);
num_frame = length(frame_numbers);
frame_data = cell(num_frame,1);
for K = 1 : num_frame
frame_data{K} = fitsread('AppropriateFilenameGoesHere.fits', 'image', frame_numbers(K));
end
5 Comments
Kiruthiga Sekar
on 17 Apr 2019
Walter Roberson
on 17 Apr 2019
You do not have multiple frames in your fits file. You have a single frame that is multidimensional.
csv_filename - 'Book4.csv';
fits_filename = 'AppropriateFilenameGoesHere.fits';
vals = csvread(csv_filename);
frame_numbers = find(vals ~=0);
num_frame = length(frame_numbers);
finfo = fitsinfo(fits_filename);
imdims = finfo.Image.Size;
frame_data = zeros(imdims(1), imdims(2), num_frame);
for K = 1 : num_frame
frame_data(:,:,K) = fitsread(imdims, 'image', 'pixelregion', {[1 imdims(1)], [1 imdims(2)], frame_numbers(K)});
end
Kiruthiga Sekar
on 17 Apr 2019
Walter Roberson
on 17 Apr 2019
Please show the content of the finfo variable .
Kiruthiga Sekar
on 17 Apr 2019
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!