docs: def from_source_reference(expnum, ccd, x, y):
          """
          Given the location of a source in the image, create an Observation.
          """
  
          image_uri = storage.dbimages_uri(expnum=expnum,
                                           ccd=None,
                                           version='p',
                                           ext='.fits',
                                           subdir=None)
          logger.debug('Trying to access {}'.format(image_uri))
  
          if not storage.exists(image_uri, force=False):
              logger.warning('Image not in dbimages? Trying subdir.')
              image_uri = storage.dbimages_uri(expnum=expnum,
                                               ccd=ccd,
                                               version='p')
  
          if not storage.exists(image_uri, force=False):
              logger.warning("Image doesn't exist in ccd subdir. %s" % image_uri)
              return None
  
          if x == -9999 or y == -9999:
              logger.warning("Skipping {} as x/y not resolved.".format(image_uri))
              return None
  
          mopheader_uri = storage.dbimages_uri(expnum=expnum,
                                               ccd=ccd,
                                               version='p',
                                               ext='.mopheader')
          if not storage.exists(mopheader_uri, force=False):
              # ELEVATE! we need to know to go off and reprocess/include this image.
              logger.critical('Image exists but processing incomplete. Mopheader missing. {}'.format(image_uri))
              return None
  
          # Build astrom.Observation
          observation = Observation(expnum=str(expnum),
                                    ftype='p',
                                    ccdnum=str(ccd),
                                    fk="")
  
          # JJK commented this out, I think the following line is not true?
          # observation.rawname = os.path.splitext(os.path.basename(image_uri))[0]+str(ccd).zfill(2)
  
          return observation