Follow these steps (formerly in README) for updating the PSRCAT version for the web interface:

Updating PSRCAT

1. Go to ADS: http://adsabs.harvard.edu/abstract_service.html

2. Make query with 'pulsar' and later 'magnetar' in the Title words and Abstract Words.

3. Select publication date (eg. 2014 to 2014). You could enter months based on your last search but the list is updated when publications move from Astro-ph to the proper journal. So some papers could be missed if you did not include the Astro-ph in the previous list.

4. The list of publications is displayed (may asked in Return 'number' items for the maximum you expect so you do not need jumping between pages).

5. If you saved the previous list as a text file with the Link format (in the query page scroll down to the list of formats and select 'link'), you can save a current version in your directory and diff to files to make sure that you are searching the new publications (it is easy to forget which you have looked at last time, because the updates are done every few months).

6. Ultimately you need to produce two files psrcat.upd and psrcat.bib in the psrcat/updates directory. Draft versions of these can be in a personal working directory.

7. psrcat.upd file. The first file contains lists of all data for each source in the format accepted by psrcat (refer to Manchester et al. ApJ 129, 1993, or do: psrcat -P). The data is copied from the publications (try to use electronic version (E link) in the result of the query if available). To avoid mistakes copy and paste it to your file rather than retype. A few hints:

  • name of the pulsar should start with B if this is a known B.... pulsar, and as such exists in a PSRCAT
  • new pulsars are named J......
  • the discovery paper (listed with the name) refers to detection of the pulsations. Do *not* list the discovery paper if the entries are updates to an existing pulsar
  • only enter observed parameters, not derived ones
  • errors are integer uncertainties in the last quoted digit
  • do not forget that P1 and F1 are typically very small and need say to be in the format nE-m, say 3.4E-16
  • a PEPOCH should normally be given; essential if P1 or F1 given
  • if the pulsar is binary, a BINARY line is required (ELL1 if TASC given)
  • if epoch of longitude 90d is given, TASC = Epoch_90 - Pb/4 (for circular orbits)
  • to check if the pulsar exists in the PSRCAT use command: psrcat -c "jname bname" J.......or copy /psr/cvshome/pulsar/soft_atnf/psrcat/database/psrcat.db to your directory and examine this copy
  • NEVER ALTER OR DELETE ACUTAL psrcat.db from the database
  • some pulsars may have been known under different names, so examine associations with e.g.:
    psrcat -c "jname name assoc" -l "assoc(crab)"

and you can also use web-based query of the psrcat

  • if modifying a TYPE or ASSOC for an existing pulsar, copy the existing entries to the new entry

8. psrcat.bib file. This file contains bibliograpy for all the updated data. The publication entry is copied and pasted from ADS in the format Bibtex. You can get it by selecting A-link in list the publication. This will display information and the abstract. Select the link 'Bibtex entry for this abstract' on this page (below the abstract). Copy and paste the text starting from @ARTICLE{ until the last }. The first line has to be changed and the journal line needs editing, for example, in:


   author = {{Mitra}, D. and {Gil}, J. and {Melikidze}, G.~I.},
    title = "{Unraveling the Nature of Coherent Pulsar Radio Emission}",
  journal = {\apjl},

archivePrefix = "arXiv",

   eprint = {0903.3023},
 keywords = {pulsars: general, radiation mechanisms: non-thermal },
     year = 2009,
    month = may,
   volume = 696,
    pages = {L141-L145},
      doi = {10.1088/0004-637X/696/2/L141},
   adsurl = {http://adsabs.harvard.edu/abs/2009ApJ...696L.141M},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}


@ARTICLE{2009ApJ...696L.141M, has to be changed to @ARTICLE{mgm09, and journal = {\apjl}, to journal = apjl,

  • mgm09 comes from the first letters in surnames of the authors and the year 2009
  • The file /psr/tex/psrrefs/README has all the rules for making entries and creating codes like mgm09 or kkl+09 (when there are more than three authors).
  • If you want to check if your publication is already included in the bibliography database, you can type command:
     bib mgm09


     bib2 kkl+09   (bib2 recognizes codes with +, unlike bib) 

9. When the files psrcat.upd and psrcat.bib have been verified, copy to the psrcat/updates directory. Then copy ../database/psrcat.db to updates/ and update the version number.

10. Check that new discoveries use a unique name:

First check that PSR entries have B or J appended:

    cat psrcat.upd | grep PSR | awk '{if(length($1)!=4)print $0}'

Ensure that envar PSRCAT_FILE points at the current version of the catalogue, then

    cat psrcat.upd | grep PSRJ | awk '{if(NF==3)print "psrcat -c \"name jname\"",$2}' > name_check

    source name_check

Duplicate names will appear at the end of the output.

11. Check if any Jnames used for Bname pulsars.

    cat psrcat.upd | grep PSRJ | awk '{if(NF==2)print $2}' | sort > jname.lis

    psrcat -c "name jname" -nohead -nonumber `cat jname.lis` > psrname.lis

    cat psrname.lis | awk '{if(substr($1,1,1)=="B")print $0}' > bname.lis

Check entries in bname.lis and fix.

12. In psrcat/updates, get the distances:

    cp psrcat.upd temp.db

  • This produces the file dist.upd.
  • Note: if this crashes with a "badly formed number", most probably you have a double entry for the pulsar that causes the crash.
  • Merge with psrcat.upd:
    catmerge psrcat.upd dist.upd
  • The output file should have the same number of pulsars as the destination (first input) file and there should be 0 files in the input remainder file.
  • Examine the output file and the .log files to ensure that all is correct.
    mv psrcat.upd.out  psrcat.upd
  • Note: catmerge.c and catsort.c are under CVS control in psrcat/src, compiled by make_catdat

13. Merge with the main catalogue:

    catmerge psrcat.db psrcat.upd
  • Examine the output file and the .log files to ensure that all is correct. When satisfied, move psrcat.db.out to psrcat.db.

14. Sort the catalogue file by Jname:

    catsort psrcat.db
  • Check the output file:
    setenv PSRCAT_FILE ./psrcat.db.out

    psrcat -check
  • Most of the error messages are not for serious problems, but the list needs to be checked. If necessary, edit psrcat.upd and iterate from step 13.

15. Check for repeated entries:

    checkClose psrcat.db.out
  • and look for pulsars with similar periods or harmonically related periods.
  • Note: Checking is done by the program findClose. To compile:
    gcc -lm -o findClose findClose.c
  • When satisfied, copy psrcat.db.out to psrcat.db and
    setenv PSRCAT_FILE ./psrcat.db

16. Accretion-powered pulsars (TYPE ACC) and non-degenerate stellar pulsars (TYPE NDG) are maintained in a separate files psrcat2.upd and psrcat2.bib, treated similarly to psrcat.upd and psrcat.bib. Normally these will have no DM and so step 10 is not required. Note: If not including these pulsar classes, skip to Step 21.

17. Copy ../database/psrcat2.db to the updates directory.

18. Merge psrcat2.db and psrcat2.upd:

    catmerge psrcat2.db psrcat2.upd
  • Examine the output file and the .log files to ensure that all is correct.
  • When satisfied. copy psrcat2.db.out to psrcat2.db.

19. Sort the catalogue file by Jname:

    catsort psrcat2.db
  • Check the output file:
    setenv PSRCAT_FILE ./psrcat2.db.out

    psrcat -check
  • If necessary, edit psrcat2.upd and iterate from step 15.
  • When satisfied, copy psrcat2.db.out to psrcat2.db.

20. Merge psrcat.db and psrcat2.db:

    catmerge psrcat.db psrcat2.db
  • Examine the output file and the .log files to ensure that all is correct.
  • When satisfied. copy psrcat.db.out to psrcat.db.
    setenv PSRCAT_FILE ./psrcat.db 

21. Form the bibliography files. See Updating the reference list for the web interface (formerly README.myrefs).

22. Copy psrcat.db to the database:

    cp psrcat.db ../database/

and any updated glitch.db to ../database/

23. Update defineParams.c (if necessary) and make the psrcat_pkg.tar.gz file:

    cd ../src

    cvs update
  • Edit defineParams.c to add any new survey(s) or variables.
    source makeit
  • Check that mods to defineParams are OK, e.g.:
    cd ../database

    setenv PSRCAT_FILE ./psrcat.db

    ../src/psrcat -c "name survey"

If OK:

    cd ../src

    cvs ci -m 'message' defineParams.c

24. Login to tycho or brahe as psrmgr.

    cd /pulsar/psr/dist/src/psrcat/src

    cvs update

    make clean


    make install
  • Log into hercules as psrmgr and repeat (actually, the cvs update step can be omitted)

25. On tycho (as yourself) in psrcat/src

    source make_standalone

26. Update the web Documentation file to reflect latest survey counts, references and any other changes.

    cd ../web
    cvs update

Edit psrcat_help.html.

    cvs ci -m 'message' psrcat_help.html

27. Edit versions.txt for new version and commit

    cvs ci -m 'message' versions.txt

28. On hercules, to install all files:

    cd /var/www/vhosts/www.atnf.csiro.au/htdocs/research/pulsar/psrcat/scripts/

(or, equivalently cd /nfs/wwwresearch/pulsar/psrcat/scripts/)

    updateRundir.sh v.vv

where v.vv is the new version number.

  • Note: index.html, proc_form.php, catalogueHistory.html, versions.txt and download.html, used in /nfs/wwwresearch/pulsar/psrcat/ are under cvs control in the psrcat/web directory.

29. When satisfied that all is OK and that the file is stable:

    cd psrcat/database

    cvs ci -m 'vX.XX' psrcat.db 

    cvs ci -m 'vX.XX' glitch.db

30. Log into pisces at Parkes as pulsar

    cd /psr1/cvshome/pulsar/soft_atnf/psrcat/database/

    cvs update
  • This copies the psrcat.db version checked in at Epping to Parkes.
  • Resolve issues with any files that are locally modified (M status).