Access to the fits file channels
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
assia assia
am 29 Jun. 2021
Kommentiert: assia assia
am 29 Jun. 2021
Hello Folks,
I have this fits file of size(300,300,3) I would like to acces to each channel alone and write it. Using this code I can access only to the first channel but not to the second and third one. Any idea please.
stokes = fitsread('stokes1.fits');
Iu = stokes(:,:,1);
Ip = stokes(:,:,2);
Theta = stokes(:,:,3);
fitswrite([Iu,Ip,Theta],'stokes.fits')
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 29 Jun. 2021
info = fitsinfo('stokes1.fits');
Size = info.PrimaryData.Size;
nchan = Size(3);
parts = cell(1,nchan);
for channel = 1 : nchan
parts{channel} = fitsread(info, 'pixelregion', {[1 Size(1)], [1 Size(2)], [channel channel]})'
end
4 Kommentare
Walter Roberson
am 29 Jun. 2021
I had misread about the option to use an info structure instead of a file name.
As usual I recommend making the filename a variable.
fitsfile = 'StokesParameters_Synthetic_Star_Gain_10.fits';
info = fitsinfo(fitsfile);
Size = info.PrimaryData.Size;
nchan = Size(3);
parts = cell(1,nchan);
for channel = 1 : nchan
parts{channel} = fitsread(fitsfile,'PixelRegion', {[1 Size(1)], [1 Size(2)], [channel channel]});
end
outdata = horzcat(parts{:});
fitswrite(outdata, 'stokes5.fits', 'Compression', 'rice');
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Hilbert and Walsh-Hadamard Transforms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!