Skip to content

Modern Par File Format

Anne Archibald edited this page Oct 12, 2019 · 5 revisions

PINT may want to have a new format for writing out models that is not backward-compatible with TEMPO/Tempo2 par files. The idea of this page is to brainstorm features that such a format should have. Please add your thoughts!

  • Par file parameters should be actual values, not scaled by 1E-12 (e.g. for PBDOT and EDOT). Or, at a minimum, there should be a way to tell that parameters are being scaled in this par file.
  • (@paulray) I think it should be human-readable and editable, like a par file, not a pickle file
  • (@paulray) All parameters should be able to have units specified, not just values (should this be required?)
  • (@aarchiba) Required is good
  • (@aarchiba) All absolute times should be able to have time scales specified (for example, GBT UTC or SSB or pulsar proper time)
  • (@aarchiba) All relative times need to be able to be specified whether they are in TCB or TDB (are those the only two commonly-used systems with different constant rates?), maybe also frequencies and things with time units?
  • (@paulray) Priors should be able to be specified on parameters
  • (@aarchiba) The underlying format should be based on some existing parser; ConfigParser or YAML are generally fairly human-readable and writable by design. Others are out there, possibly more science-y.
  • (@aarchiba) It should be possible to parse the format without knowing about everything that could be in it (negative example: sigproc format, which can't be parsed unless you know the size of the data associated with each key; positive example: FITS or HDF5, where you can extract pieces of information even if there are things you don't recognize)
  • (@aarchiba) Can we use a format that is human-editable and also has a formal schema system so that the structure can be checked? (See JSON schema, not that JSON is decent for editing)
  • (@aarchiba) The format should not be able to describe all fitting situations; for example priors with complicated multivariate structure. So designers should be willing to say "write code for that" to too-complicated ideas.