Subroutine to save a DETX/DETY image from a given 2-dimensional array.
interface saveImage subroutine saveDetImageDouble(detImage, detImageSetName \& , detImageEdgesInfo, templateFitsSetName, wcsExtended, detWcs \& , strTelescop, strInstrum) real(double), intent(in) :: detImage(:,:) character(*), intent(in) :: detImageSetName type(aryEdgesInfoT), intent(in), optional :: detImageEdgesInfo character(*), intent(in), optional :: templateFitsSetName, strTelescop, strInstrum type(WcsAxesExtendedT), intent(in), optional :: wcsExtended type(WcsT), intent(in), optional :: detWcs end subroutine saveDetImageDouble subroutine saveDetImageSingle() real(single), intent(in) :: detImage(:,:) end subroutine saveDetImageSingle subroutine saveDetImageInt32() end subroutine saveDetImageInt32 subroutine saveDetImageInt16() end subroutine saveDetImageInt16 subroutine saveDetImageInt8() end subroutine saveDetImageInt8 end interface
As for the input array (detImage), all the Real and Integer types are allowed, and that is the only difference in the interface.
detImageSetName is the output FITS filename. clobber is taken into account.
detImageEdgesInfo (optional) is the frame information of the input array. (The type is defined in array_utils). If not given, it is calculated via getDetImageEdgesInfo().
wcsExtended can be given instead of, or in addition to,
detImageEdgesInfo in order to directly control the coordinate information
in the output header attributes. In that case, make sure
wcsExtended%withPhysical == .true.
if you want to add the PHYSICAL coordinates information in the output file.
If both wcsExtended and detWcs are given, the WCS information
is overwritten, where possible, according to detWcs at the end.
Obviously detWcs can not include any PHYSICAL coordinate information.
If templateFitsSetName is given, all the primary header attributes except for those for DSS and WCS are copied to the output file.
TELESCOP attribute can be directly specified via strTelescop; otherwise, unless templateFitsSetName is given and has the attribute, the default `XMM' is written in the output file.
INSTRUME attribute can be directly specified via strInstrum (string), such as (EMOS1|EMOS1|EPN); in default this routine does nothing about it.