Closed astronomerdave closed 1 month ago
@cfremling @chazshapiro I believe they are all present now, but could stand to be checked.
Example header below.
# HDU 0 in dh_0014.fits:
SIMPLE = T / file does conform to FITS standard
BITPIX = 16 / number of bits per data pixel
NAXIS = 0 / number of data axes
EXTEND = T / FITS dataset may contain extensions
COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
BZERO = 32768 / offset data range to that of unsigned short
BSCALE = 1 / default scaling factor
EXPTIME = 30000 / exposure time in msec
FITSNAME= '/data/20241022/dh_0014.fits' / this filename
GIT_HASH= ' ' / software git hash
INSTRUME= 'NGPS ' / name of instrument
OBSLAT = 33.353498586 / Observatory latitude
OBSLON = -116.8583299 / Observatory longitude
RADESYSA= 'ICRS '
SHUTTEN = T / shutter was enabled
SW_BUILD= ' ' / software build date
TELESCOP= 'P200 ' / name of telescope
AZIMUTH = 25.6 / TCS reported azimuth
CALCOVER= 'open ' / calib cover state
CALDOOR = 'close ' / calib door state
CASANGLE= 0. / TCS reported Cassegrain angle in deg
DEC = ' ' / requested Declination in J2000
DECOFFS = 0. / offset Declination
DOMEAZ = 25. / TCS reported dome azimuth
DOMESHUT= 'closed ' / dome shutters
HA = 'W00:00:00.0' / hour angle
LAMPBLUC= F / is blue Xe continuum lamp on
LAMPFEAR= F / is FeAr lamp on
LAMPREDC= F / is red continuum lamp on
LAMPTHAR= T / is ThAr lamp on
MODBLBYP= 'off 0.5 1000' / Blue bypass modulator pow dut per
MODBLCON= 'off 0.5 1000' / Blue continuum modulator pow dut per
MODFEAR = 'off 0.5 1000' / FeAr lamp modulator pow dut per
MODRDBYP= 'off 0.5 1000' / Red bypass modulator pow dut per
MODRDCON= 'off 0.5 1000' / Red continuum modulator pow dut per
MODTHAR = 'off 0.5 1000' / ThAr lamp modulator pow dut per
RA = ' ' / requested Right Ascension in J2000
RAOFFS = 0. / offset Right Ascension
SLITO = 0. / slit offset in arcsec
SLITPOSA= 2.29999828 / slit actuator A position in mm
SLITPOSB= 2.29999828 / slit actuator B position in mm
SLITW = 58.5579567 / slit width in arcsec
TARGET = ' ' / target name
TELDEC = ' +00:00:00.000' / TCS reported Declination
TELFOCUS= 36.71 / TCS reported telescope focus position in mm
TELRA = ' +00:00:00.000' / TCS reported Right Ascension
ZENANGLE= 30.1 / TCS reported Zenith angle
AIRMASS = 1. / average of AIRMASS0 and AIRMASS1
AIRMASS0= 1. / airmass at start of exposure
AIRMASS1= 1. / airmass at end of exposure
EXPSTART= '2024-10-22T06:25:30.438' / exposure start time
MJD = 60605.26753979 / average of MJD0 and MJD1
MJD0 = 60605.26736618 / exposure start time (modified Julian Date)
MJD1 = 60605.26771341 / exposure stop time (modified Julian Date)
SHUTTIME= 30000.422 / actual shutter open time in msec
DATE = '2024-10-22T06:27:20.399' / FITS file write time
CHECKSUM= 'Ua7YaR7WVX7WaX7W' / HDU checksum updated 2024-10-22T06:27:20
DATASUM = ' 0' / data unit checksum updated 2024-10-22T06:27:20
# HDU 1 in dh_0014.fits:
XTENSION= 'IMAGE ' / IMAGE extension
BITPIX = 16 / number of bits per data pixel
NAXIS = 2 / number of data axes
NAXIS1 = 4214 / length of data axis 1
NAXIS2 = 1220 / length of data axis 2
PCOUNT = 0
GCOUNT = 1
BZERO = 32768 / offset data range to that of unsigned short
BSCALE = 1 / default scaling factor
EXTNAME = 'I '
HDUVERS = 1
AMP_ID = 'U2 ' / readout amplifier
BIASSEC = '[4214:4314,1:1420]' / overscan section
BINSPAT = 1 / binning in spatial direction
BINSPEC = 1 / binning in spectral direction
CCDSEC = '[1:4214,1:1220]' / physical format of CCD
CCD_ID = 'sg2 ' / CCD identifier parse
CDELT1A = 0.69 / Dispersion in Angstrom/pixel
CRPIX1 = 0
CRPIX1A = 101
CRPIX2 = 0
CRPIX2A = 1
CRVAL1 = 0
CRVAL1A = 7560. / Reference value in Angstrom
CRVAL2 = 0
DATASEC = '[1:4214,1:1220]' / section containing the CCD data
DEV_ID = 0 / detector controller PCI device ID
FIRMWARE= '/home/developer/Software/DSP/lod/sg2_20240315.lod'
FIRM_MD5= '0e44baf48f39149ba8f1daedad15bae1' / MD5 checksum of firmware
FT = F / frame transfer used
IMG_COLS= 4214 / image cols
IMG_ROWS= 1220 / image rows
LTV1 = 100
LTV2 = 0
OS_COLS = 100 / overscan cols
OS_ROWS = 200 / overscan rows
SKIPCOLS= 0 / skipped cols
SKIPROWS= 0 / skipped rows
SPEC_ID = 'I ' / spectrograph channel
CDELT2A = 0.25 / Spatial scale in arcsec/pixel
CRVAL2A = 0. / Reference value in arcsec
CUNIT1A = 'Angstrom'
CUNIT2A = 'arcsec '
HIERARCH SPECTPART = 'WHOLE '
WCSAXES = 2
WCSNAME = 'DISPLAY '
WCSNAMEA= 'SPECTRUM'
CCDTEMP = 145.04600525 / I CCD temperature in Kelvin
FLXPIS = 99.99689484 / I flexure piston axis 1 (Z) in um
FLXSPA = 0.21923828 / I flexure spatial axis 3 (Y) in um
FLXSPE = 0.36151123 / I flexure spectral axis 2 (X) in um
FOCUS = 4.94999981 / science camera I focus position in mm
# HDU 2 in dh_0014.fits:
XTENSION= 'IMAGE ' / IMAGE extension
BITPIX = 16 / number of bits per data pixel
NAXIS = 2 / number of data axes
NAXIS1 = 4214 / length of data axis 1
NAXIS2 = 1220 / length of data axis 2
PCOUNT = 0
GCOUNT = 1
BZERO = 32768 / offset data range to that of unsigned short
BSCALE = 1 / default scaling factor
EXTNAME = 'R '
HDUVERS = 1
AMP_ID = 'U1 ' / readout amplifier
BIASSEC = '[4214:4314,1:1420]' / overscan section
BINSPAT = 1 / binning in spatial direction
BINSPEC = 1 / binning in spectral direction
CCDSEC = '[1:4214,1:1220]' / physical format of CCD
CCD_ID = 'engg ' / CCD identifier parse
CDELT1A = 0.57 / Dispersion in Angstrom/pixel
CRPIX1 = 0
CRPIX1A = 101
CRPIX2 = 0
CRPIX2A = 201
CRVAL1 = 0
CRVAL1A = 5610. / Reference value in Angstrom
CRVAL2 = 1240
DATASEC = '[1:4214,1:1220]' / section containing the CCD data
DEV_ID = 1 / detector controller PCI device ID
FIRMWARE= '/home/developer/Software/DSP/lod/engg_20240315.lod'
FIRM_MD5= '598df36a3edbef10f99b255047e98d08' / MD5 checksum of firmware
FT = F / frame transfer used
IMG_COLS= 4214 / image cols
IMG_ROWS= 1220 / image rows
LTV1 = 100
LTV2 = 200
OS_COLS = 100 / overscan cols
OS_ROWS = 200 / overscan rows
SKIPCOLS= 0 / skipped cols
SKIPROWS= 0 / skipped rows
SPEC_ID = 'R ' / spectrograph channel
CDELT2A = 0.25 / Spatial scale in arcsec/pixel
CRVAL2A = 0. / Reference value in arcsec
CUNIT1A = 'Angstrom'
CUNIT2A = 'arcsec '
HIERARCH SPECTPART = 'WHOLE '
WCSAXES = 2
WCSNAME = 'DISPLAY '
WCSNAMEA= 'SPECTRUM'
@cfremling @chazshapiro I believe they are all present now, but could stand to be checked. I think we should consider a separate keyword for image type, e.g. IMGTYPE this to give the simplest possible way to determine if an image is , flat, arc, std, science, bias. I guess we were planning to use TARGNAME for this purpose but let's say I want to immediately know if a new file is a science image, then this new keyword would allow 1 simple logic check, as opposed to checking that TARGNAME is not a part of a long list of different possibilities
Where do I get that information and/or how do I determine the IMGTYPE to set that keyword?
Calibration images will presumably have TARGET = "CAL_xxxx" so there's only 1 string to search for
That implies only two image types, those with CAL and those without, but Christoffer suggests several types.
There will be CAL_BIAS, CAL_FLAT, CAL_DARK, etc.
but let's say I want to immediately know if a new file is a science image, then this new keyword would allow 1 simple logic check, as opposed to checking that TARGNAME is not a part of a long list of different possibilities
He will only have to check for "CAL_"
In that case, I can just as easily parse those strings from the target name and set the IMGTYPE. But if we're requiring the user to remember to use a special target name (how would they even know that in the first place?) then it would probably be better to have an initial database column for IMGTYPE. At least that would signify, "oh, I can select an image type" rather than know the secret handshake.
If we’re going to have an IMGTYPE column I’m not sure why we have the CAL_ code. That’s there to tell the OTM that missing TCS info is ok. It could just look for the SCIENCE type. The code was our original solution. Also I thought the general users were not initiating their own calibration sets.
PS. Adding a column to the targets db is a PITA for the java.
-- Dr. Charles Shapiro (he/him) Advanced Detectors, Systems, & Nanoscience NASA Jet Propulsion Laboratory
From: David Hale @.> Sent: Tuesday, October 22, 2024 2:57:58 PM To: CaltechOpticalObservatories/NGPS @.> Cc: Shapiro, Charles A (US 389E) @.>; Mention @.> Subject: [EXTERNAL] Re: [CaltechOpticalObservatories/NGPS] FITS headers missing keywords (Issue #160)
In that case, I can just as easily parse those strings from the target name and set the IMGTYPE. But if we're requiring the user to remember to use a special target name (how would they even know that in the first place?) then it would probably be better to have an initial database column for IMGTYPE. At least that would signify, "oh, I can select an image type" rather than know the secret handshake.
— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/CaltechOpticalObservatories/NGPS/issues/160*issuecomment-2430390868__;Iw!!PvBDto6Hs4WbVuu7!OnmJNjyJF4w7rqQI8wRQ2q8h9OZalY1u09t4Zjzo4R0zXXZhRo3zgprzhKoMBbhduSe9l-0Z6mvqpleISqSuWLxNkTApgcKftyI$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/ACE4SRIRVGBF76OF2DJRIQLZ43C6NAVCNFSM6AAAAABQEG2SQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZQGM4TAOBWHA__;!!PvBDto6Hs4WbVuu7!OnmJNjyJF4w7rqQI8wRQ2q8h9OZalY1u09t4Zjzo4R0zXXZhRo3zgprzhKoMBbhduSe9l-0Z6mvqpleISqSuWLxNkTApoWMEzP0$. You are receiving this because you were mentioned.Message ID: @.***>
I know that was our original solution, and I'm now questioning that decision. Talking with Dekany today, he tells me it is entirely plausible to expect an astronomer will want to start up the instrument themselves and take calibrations, etc.
Sounds like the calibration design requirements need to be redone before moving ahead.
-- Dr. Charles Shapiro (he/him) Advanced Detectors, Systems, & Nanoscience NASA Jet Propulsion Laboratory
From: David Hale @.> Sent: Tuesday, October 22, 2024 3:17:37 PM To: CaltechOpticalObservatories/NGPS @.> Cc: Shapiro, Charles A (US 389E) @.>; Mention @.> Subject: [EXTERNAL] Re: [CaltechOpticalObservatories/NGPS] FITS headers missing keywords (Issue #160)
I know that was our original solution, and I'm now questioning that decision. Talking with Dekany today, he tells me it is entirely plausible to expect an astronomer will want to start up the instrument themselves and take calibrations, etc.
— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/CaltechOpticalObservatories/NGPS/issues/160*issuecomment-2430420123__;Iw!!PvBDto6Hs4WbVuu7!NRfgSDjUE3FMAzCyFG0WeUhIGlAyrc9cjlfvhl9KpeYft_A86x48-JfoeAWPRrxhrzxmW_RRlc1kVi5cnr_CVpSaJzvUKCo3G58$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/ACE4SRMEXJBBTBLJCZ7U6WTZ43FIDAVCNFSM6AAAAABQEG2SQOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZQGQZDAMJSGM__;!!PvBDto6Hs4WbVuu7!NRfgSDjUE3FMAzCyFG0WeUhIGlAyrc9cjlfvhl9KpeYft_A86x48-JfoeAWPRrxhrzxmW_RRlc1kVi5cnr_CVpSaJzvU4kppPGQ$. You are receiving this because you were mentioned.Message ID: @.***>
Closing this now because the bug aspect is resolved and the only remaining keyword seems like it won't be resolved before commissioning, and may be entitled to its own issue.
any mechanism position and status focus is broken at the moment
all actuator physical units