Package: psrqpy
PSRQpyThis module aims to provide a python interface for querying theATNF pulsar catalogue. It is an unofficial
package and is not endorsed by or affiliated with the ATNF.Full documentation of the module can be foundhere.Any comments or suggestions are welcome.InstallationTo install the code from source, clone the git repository and run either:python setup.py install --userto install as a user, orsudo python setup.py installto install as root.The module can also be installed usingpipwith:pip install psrqpyor in aCondaenvironment using:conda install -c conda-forge psrqpyRequirementsTherequirementsfor installing the code are:requestsbeautifulsoup4numpyscipyastropypandasadsmatplotlibExamplesA simple query of the catalogue to, e.g., just return all pulsar frequencies, would be:importpsrqpyq=psrqpy.QueryATNF(params='F0')# get frequencies as an astropy tablet=q.tableprint(t['F0'])You can query multiple parameters, e.g.:importpsrqpyq=psrqpy.QueryATNF(params=['F0','F1','RAJ','DecJ'])# get values as an astropy tablet=q.tableprint(t['F0'])You can query specific pulsars, e.g.:import psrqpy

q = psrqpy.QueryATNF(params=['F0', 'F1', 'RAJ', 'DecJ'], psrs=['J0534+2200', 'J0537-6910'])

# get values as an astropy table
t = q.table

# print the table
print(t)
  JNAME          F0       F0_ERR       F1      F1_ERR     RAJ      RAJ_ERR     DECJ     DECJ_ERR
                 Hz         Hz       1 / s2    1 / s2                                           
---------- ------------- ------- ------------- ------ ------------ ------- ------------ --------
J0534+2200     29.946923   1e-06  -3.77535e-10  2e-15 05:34:31.973   0.005 +22:00:52.06     0.06
J0537-6910 62.0261895958 1.3e-09 -1.992272e-10  4e-17 05:37:47.416    0.11 -69:10:19.88      0.6You can setconditionsfor the searches,
e.g.:importpsrqpyq=psrqpy.QueryATNF(params=['Jname','f0'],condition='f0 > 100 && f0 < 200',assoc='GC')whereassoc=GClooks for all pulsars in globular clusters.When a query is generated the entire catalogue is downloaded and stored in theQueryATNFobject as
a pandasDataFrame.
The query can therefore be re-used to access data on different parameters, different pulsars, or
using different conditions, without the need to re-download the catalogue. We may originally want
to query pulsar frequencies using only frequencies greater than 10 Hz, withimportpsrqpyq=psrqpy.QueryATNF(params=['F0'],condition='F0 > 10')freqs=q.table['F0']Using the sameQueryATNFobject we could change to get frequency derivatives for pulsars
with frequencies less than 10 Hz, withq.condition='F0 < 10'q.query_params='F1'fdot=q.table['F1']In these cases the whole catalogue (with no conditions applied and all available parameters) stored as a pandasDataFrameis accessible withcatalogue=q.catalogueYou can alsogeneratealovelyperiod vs. period derivative plot based on the latest catalogue information, using
just three lines of code, e.g.:frompsrqpyimportQueryATNFquery=QueryATNF(params=['P0','P1','ASSOC','BINARY','TYPE','P1_I'])query.ppdot(showSNRs=True,showtypes='all')givesDevelopment and SupportCode development is done via the package'sGitHib repository.
Any contributions can be made via afork and pull requestmodel
from that repository, and must adhere to theMIT license. Any problems with the code
or support requests can be submitted via the repository'sIssue tracker.Test suiteThere are tests supplied that cover many of the functions within PSRQpy. These can be run from the
base directory of the repository (after installing thepytestandpytest-socketmodules, e.g., withpip) by just calling:pytestThese tests are not included in thepipinstalled version of the code.Copyright and referencing for the catalogueRegarding the use of the catalogue and software behind it, thefollowing statementsapply:PSRCAT is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. PSRCAT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.PSRCAT makes use of "evaluateExpression: A Simple Expression Evaluator". Copyright © 1996 - 1999 Parsifal Software, All Rights Reserved.The programs and databases remain the property of the Australia Telescope National Facility, CSIRO, and are covered by theCSIRO Legal Notice and Disclaimer.If you make use of information from the ATNF Pulsar Catalogue in a publication, we would appreciate acknowledgement by reference to the publication "The ATNF Pulsar Catalogue", R. N. Manchester, G. B. Hobbs, A. Teoh & M. Hobbs, Astronomical Journal, 129, 1993-2006 (2005) and by quoting the web addresshttp://www.atnf.csiro.au/research/pulsar/psrcatfor updated versions.If making use of this code to access the catalogue, or produce plots, I would be grateful if (as well as citing the ATNF pulsar cataloguepaperandURLgiven above) you consider citing theJOSSpaperfor this software:@article{psrqpy,
  author ={{Pitkin}, M.},
   title = "{psrqpy: a python interface for querying the ATNF pulsar catalogue}",
  volume = 3,
  number = 22,
   pages = 538,
   month = feb,
    year = 2018,
 journal = "{Journal of Open Source Software}",
     doi ={10.21105/joss.00538},
     url ={https://doi.org/10.21105/joss.00538}}LicenseThis code is licensed under theMIT License.© Matt Pitkin, 2017