I agree with giving the first pixel index 0.... does that mean when you load in CRPIX from a FITS header, you will do:
`self.crpix = header.get('CRPIX')-1` ?