RvSpectML/EchelleCCFs.jl

`fits_hdr` optional argument is overwritten anyway in function

hematthi opened this issue · 0 comments

function write_each_ccf_fits(metadata::AbstractArray{Dict{Symbol,Any},1}, v_grid::AbstractArray{T1,1}, ccf_total::AbstractArray{T2,2}, ccf_total_var::AbstractArray{T3,2};
orders::AbstractArray{T4,1}=zeros(Int64,0), ccf_orders::AbstractArray{T5,3}=zeros(T2,0,0,size(ccf_total,2)), ccf_orders_var::AbstractArray{T6,3}=zeros(T3,0,0,size(ccf_total,2)),
fits_hdr::FITSHeader, line_list_filename::Union{Nothing,String} = "unknown", # )
total_vel::Union{Nothing,AbstractArray{T7,1}} = nothing, sigma_total_vel::Union{Nothing,AbstractArray{T7,1}} = nothing,
order_vels::Union{Nothing,AbstractArray{T8,2}} = nothing, sigma_order_vels::Union{Nothing,AbstractArray{T8,2}} = nothing ) where {
T1<:Real, T2<:Real, T3<:Real, T4<:Real, T5<:Real, T6<:Real, T7<:Real, T8<:Real }
@assert length(metadata) == size(ccf_total,2) == size(ccf_total_var,2)
num_files = length(metadata)
for i in 1:num_files
fits_fn = last(splitpath(metadata[i][:Filename]))
ccf_fn = replace(fits_fn, ".fits" => "_ccf.fits")
if isnothing(total_vel) || isnothing(sigma_total_vel)
fits_hdr = make_ccf_fits_header(metadata[i], line_list_filename=line_list_filename)
else
fits_hdr = make_ccf_fits_header(metadata[i],v=total_vel[i],e_v=sigma_total_vel[i], line_list_filename=line_list_filename)
end
if isnothing(order_vels) || isnothing(sigma_order_vels)
write_ccf_fits(ccf_fn, v_grid, ccf_total[:,i], ccf_total_var[:,i],
orders=orders, ccf_orders=ccf_orders[:,:,i], ccf_orders_var=ccf_orders_var[:,:,i],
fits_hdr=fits_hdr)
else
@assert size(order_vels) == size(sigma_order_vels)
@assert size(order_vels,1) == num_files
@assert size(order_vels,2) == length(orders)
write_ccf_fits(ccf_fn, v_grid, ccf_total[:,i], ccf_total_var[:,i],
orders=orders, ccf_orders=ccf_orders[:,:,i], ccf_orders_var=ccf_orders_var[:,:,i],
fits_hdr=fits_hdr,
order_vels=order_vels[i,:], sigma_order_vels=sigma_order_vels[i,:] )
end
# break # WARNING: Aborts after one file for testing purposes
end
end

The first if-else condition will re-define fits_hdr