docs: def write_headers(self, observations, sys_header):
          """
          Writes the header part of the astrom file so that only the source
          data has to be filled in.
          """
          if self._header_written:
              raise AstromFormatError("Astrom file already has headers.")
  
          self._write_observation_list(observations)
          self._write_observation_headers(observations)
          self._write_sys_header(sys_header)
          self._write_source_header()
  
          self._header_written = True