Catalogue
The catalogue comprises YAML files containing pulsar flux density measurements for each paper the repository has included. You should not assume that this repository has all flux density measurements for a pulsar you are interested in. Instead, you should search through the literature to find all papers that contain flux density measurements of the pulsar and confirm all of those papers are in the catalogue. If you would like to add a new paper to the catalogue see the Adding to the catalogue section.
Using the catalogue
This section will explain how to use the catalogue. If you would like more information, you can see the module documentation in the catalogue module description.
You can use the following command to get all fluxes from the catalogue.
from pulsar_spectra.catalogue import collect_catalogue_fluxes
cat_dict = collect_catalogue_fluxes()
cat_dict will have the format
cat_dict = {"Pulsar Jname":[["List of frequencies in MHz"],
["List of flux densities in mJy"],
["List of flux density uncertainties in mJy"],
["The reference label (in the format 'Author_year')"]],
"Other pulsar":[["List of frequencies in MHz"],
["List of flux densities in mJy"],
["List of flux density uncertainties in mJy"],
["The reference label (in the format 'Author_year')"]],
}
For example, this is the data for PSR J1453-6413.
print(cat_dict['J1453-6413'])
[[950.0, 800.0, 1400, 8400, 728, 1382, 3100, 185.0, 200.0, 154.0, 200, 400, 150, 800],
[42.0, 89.0, 14.0, 1.5, 80.0, 18.0, 2.4, 1244.0, 684.0, 630.0, 684.0, 230.0, 630.0, 53.0],
[4.2, 26.7, 1.4, 0.75, 10.0, 1.0, 0.5, 20.0, 23.0, 200.0, 23.0, 115.0, 20.0, 3.0],
['van_Ommen_1997', 'van_Ommen_1997', 'Hobbs_2004', 'Johnston_2006', 'Jankowski_2018', 'Jankowski_2018', 'Jankowski_2018', 'Xue_2017', 'Xue_2017', 'Bell_2016', 'Murphy_2017', 'Taylor_1993', 'Bell_2016', 'Jankowski_2019']]
You can add your data like so before fitting the spectra
freqs, fluxs, flux_errs, refs = cat_dict[pulsar]
freqs += [150.]
fluxs += [1000.]
flux_errs += [100.]
refs += ["Your Work"]
You can exclude papers that you don’t trust the results or if you think they’re negatively affecting your fit. For example, I can create a cat_dict without Sieber et al. 1973 like so
cat_dict = collect_catalogue_fluxes(exclude=["Sieber_1973"])
Inversely if you only what the flux density measurements from a few papers, you can use the include argument. For example, you can create a cat_dict that only includes data from Murphy et al. 2017 and Xue et al. 2017 like so
cat_dict = collect_catalogue_fluxes(include=["Murphy_2017", "Xue_2017"])
Papers included in our catalogue
Paper |
# Pulsars |
Frequency range (MHz) |
Link |
---|---|---|---|
ATNF pulsar catalogue |
2863 |
40-150000 |
|
McLean et al. (1973) |
18 |
408-408 |
|
Bartel et al. (1978) |
18 |
14800-22700 |
|
Manchester et al. (1978a) |
224 |
40-408 |
|
Izvekova et al. (1981) |
86 |
39-102 |
|
Dewey et al. (1985) |
34 |
390-390 |
|
Stokes et al. (1985) |
20 |
390-390 |
|
Stokes et al. (1986) |
5 |
430-430 |
|
McConnell et al. (1991) |
4 |
610-610 |
|
Johnston et al. (1992) |
100 |
640-1520 |
|
Wolszczan et al. (1992) |
1 |
430-1400 |
|
Johnston et al. (1993) |
1 |
430-2360 |
|
Malofeev et al. (1993) |
33 |
61-102 |
|
Manchester et al. (1993) |
1 |
640-640 |
|
Camilo et al. (1995) |
29 |
430-430 |
|
Lorimer et al. (1995) |
4 |
436-1520 |
|
Lundgren et al. (1995) |
1 |
430-1400 |
|
Manchester et al. (1995) |
2 |
1400-8300 |
|
Nicastro et al. (1995) |
1 |
411-1400 |
|
Qiao et al. (1995) |
61 |
660-1440 |
|
Robinson et al. (1995) |
2 |
436-640 |
|
Seiradakis et al. (1995) |
188 |
1315-10550 |
|
Lorimer et al. (1995b) |
280 |
408-1606 |
|
Biggs et al. (1996) |
4 |
408-408 |
|
Lorimer et al. (1996) |
4 |
436-1400 |
|
Manchester et al. (1996) |
55 |
436-436 |
|
Zepka et al. (1996) |
1 |
430-1400 |
|
Bailes et al. (1997) |
4 |
400-1400 |
|
Hoensbroech et al. (1997) |
27 |
1410-10450 |
|
Kaspi et al. (1997) |
1 |
660-1650 |
|
Kramer et al. (1997) |
4 |
14600-43000 |
|
Sayer et al. (1997) |
8 |
370-800 |
|
van Ommen et al. (1997) |
82 |
800-960 |
|
Kijak et al. (1998) |
87 |
4850-4850 |
|
Kramer et al. (1998) |
34 |
1400-1400 |
|
Shrauner et al. (1998) |
20 |
81-81 |
|
Toscano et al. (1998) |
19 |
436-1660 |
|
Han et al. (1999) |
106 |
1435-1435 |
|
Kramer et al. (1999) |
16 |
2695-4850 |
|
Stairs et al. (1999) |
19 |
410-1414 |
|
Weisberg et al. (1999) |
98 |
1418-1418 |
|
Kouwenhoven et al. (2000) |
39 |
325-325 |
|
Lommen et al. (2000) |
3 |
430-1400 |
|
Malofeev et al. (2000) |
212 |
102-102 |
|
Crawford et al. (2001) |
9 |
660-2264 |
|
Giacani et al. (2001) |
2 |
1420-8460 |
|
Kuzmin et al. (2001) |
30 |
102-111 |
|
Manchester et al. (2001) |
100 |
1374-1374 |
|
McGary et al. (2001) |
3 |
1452-1452 |
|
Morris et al. (2002) |
120 |
1374-1374 |
|
Kramer et al. (2003a) |
200 |
1374-1374 |
|
Esamdin et al. (2004) |
2 |
327-327 |
|
Lewandowski et al. (2004) |
18 |
430-1400 |
|
Hobbs et al. (2004a) |
453 |
1400-1400 |
|
Karastergiou et al. (2005) |
48 |
3100-3100 |
|
Lorimer et al. (2005) |
38 |
400-430 |
|
Champion et al. (2005a) |
17 |
430-430 |
|
Champion et al. (2005b) |
1 |
327-430 |
|
Johnston et al. (2006) |
31 |
8356-8356 |
|
Lorimer et al. (2006) |
142 |
1400-1400 |
|
Crawford et al. (2007) |
2 |
1384-3100 |
|
Freire et al. (2007) |
1 |
350-1950 |
|
Kijak et al. (2007) |
11 |
325-1060 |
|
Lorimer et al. (2007) |
1 |
430-430 |
|
Stappers et al. (2008) |
13 |
147-147 |
|
Deller et al. (2009) |
9 |
1650-1650 |
|
Janssen et al. (2009) |
3 |
328-2300 |
|
Joshi et al. (2009) |
3 |
626-1400 |
|
Bates et al. (2011) |
18 |
6591-6591 |
|
Keith et al. (2011) |
9 |
17000-24000 |
|
Kijak et al. (2011) |
15 |
610-4850 |
|
Lynch et al. (2012) |
12 |
2000-2000 |
|
Mickaliger et al. (2012) |
1 |
820-820 |
|
Boyles et al. (2013) |
13 |
820-820 |
|
Demorest et al. (2013) |
17 |
327-2300 |
|
Dowell et al. (2013) |
1 |
41-81 |
|
Lynch et al. (2013) |
10 |
820-820 |
|
Manchester et al. (2013) |
20 |
700-3100 |
|
Zakharenko et al. (2013) |
40 |
20-25 |
|
Dembska et al. (2014) |
19 |
610-8350 |
|
Stovall et al. (2014) |
67 |
350-820 |
|
Dai et al. (2015) |
24 |
730-3100 |
|
Dembska et al. (2015) |
6 |
610-610 |
|
Kuniyoshi et al. (2015) |
10 |
74-1400 |
|
Lazarus et al. (2015) |
127 |
1375-1375 |
|
Ng et al. (2015) |
57 |
325-1352 |
|
Stovall et al. (2015) |
36 |
35-79 |
|
Basu et al. (2016) |
1 |
325-1280 |
|
Bell et al. (2016) |
17 |
154-154 |
|
Bhattacharyya et al. (2016) |
12 |
322-322 |
|
Bilous et al. (2016) |
158 |
149-149 |
|
Frail et al. (2016) |
200 |
147-147 |
|
Han et al. (2016) |
228 |
1274-1523 |
|
Kondratiev et al. (2016) |
48 |
149-149 |
|
Mikhailov et al. (2016) |
2 |
146-146 |
|
Kijak et al. (2017) |
12 |
325-610 |
|
Mignani et al. (2017) |
1 |
97500-343500 |
|
Murphy et al. (2017) |
60 |
76-227 |
|
Xue et al. (2017) |
48 |
185-185 |
|
Zhao et al. (2017) |
26 |
8600-8600 |
|
Basu et al. (2018) |
6 |
325-1280 |
|
Brinkman et al. (2018) |
12 |
327-1400 |
|
Gentile et al. (2018) |
28 |
430-2100 |
|
Jankowski et al. (2018) |
441 |
728-3100 |
|
Johnston et al. (2018) |
586 |
1360-1360 |
|
RoZko et al. (2018) |
2 |
325-5900 |
|
Aloisi et al. (2019) |
4 |
350-350 |
|
Jankowski et al. (2019) |
205 |
843-843 |
|
Kaur et al. (2019) |
1 |
81-219 |
|
Sanidas et al. (2019) |
288 |
135-135 |
|
Surnis et al. (2019) |
3 |
325-1170 |
|
Titus et al. (2019) |
3 |
1382-1382 |
|
Xie et al. (2019) |
32 |
1369-1369 |
|
Zhang et al. (2019) |
3 |
768-3968 |
|
Zhao et al. (2019) |
71 |
4820-5124 |
|
Bilous et al. (2020) |
43 |
53-63 |
|
Bondonneau et al. (2020) |
64 |
53-65 |
|
Crowter et al. (2020) |
1 |
350-1500 |
|
Curylo et al. (2020) |
1 |
150-150 |
|
McEwen et al. (2020) |
670 |
350-350 |
|
Michilli et al. (2020) |
19 |
129-1532 |
|
Tan et al. (2020) |
20 |
118-1532 |
|
Alam et al. (2021) |
47 |
430-2100 |
|
Bondonneau et al. (2021) |
12 |
50-50 |
|
Han et al. (2021) |
201 |
1250-1250 |
|
Johnston et al. (2021) |
44 |
1369-1369 |
|
Shapiro Albert et al. (2021) |
3 |
430-1500 |
|
Kravtsov et al. (2022) |
20 |
24-24 |
|
Lee et al. (2022) |
22 |
70-352 |
|
Spiewak et al. (2022) |
189 |
1284-1284 |
|
Bhat et al. (2023) |
120 |
154-154 |
|
Gitika et al. (2023) |
89 |
944-1625 |
Finding more papers to add to the catalogue
The pulsar_spectra catalogue is not a complete catalogue of flux density measurements, so researchers should do their own literature review to find any publications that have not yet been included in the catalogue. The following sections are suggestions of some ways to find new publications.
Look up ANTF references
If you see a reference label ending in _ATNF (see below for an example), those flux density measurements were imported from the ATNF catalogue.
The ATNF catalogue values often record flux density measurements at the nearest standard frequency, which can be inaccurate and should be replaced with the actual value.
The first author and the year in the reference label will help you find the full reference on the ATNF references page. The publication can be added to the catalogue.
Adding to the catalogue
If you would like to add a new paper to the catalogue, you should first format the data into CSV with the following format:
Pulsar Jname,Frequency (MHz),Flux Density (mJy),Flux Density Uncertainty (mJy)
J0030+0451,150,37.6,4.4
J0030+0451,180,32.4,3.2
J0034-0534,150,202.8,7.9
J0034-0721,150,367.9,10.5
If the paper does not provide a flux density, then the script will assume a 50% uncertainty if you do not have to include it in your CSV like so:
Pulsar Jname,Frequency (MHz),Flux Density (mJy)
J0030+0451,150,37.6
J0030+0451,180,32.4
J0034-0534,150,202.8
J0034-0721,150,367.9
If the paper only provides the B name then the script will convert to a J name using psrqpy as long as the PSR name starts with a B:
Pulsar Jname,Frequency (MHz),Flux Density (mJy)
B0037+56,390,3.5
B0045+33,390,4.5
B0052+51,390,3.6
B0053+47,390,5.8
Then move to the scripts subdirectory of the repository and run the command:
python csv_to_yaml.py --csv your_paper.csv --ref author_year
This will put a YAML file of the paper in pulsar_spectra/catalogue_papers/.
You should then reinstall the software (python setup.py install
) then run a spectral fit to confirm it worked.
Catalogue standards for new paper
For flux density measurements to be uploaded to the catalogue, they must meet the following criteria and standards:
- Published
The paper must be peer-reviewed and published. We are considering altering this to accept regular measurement programs with an established and reliable method.
- New results
If the paper includes flux density measurements from previous publications, do not include them.
- Include bandwidth
A bandwidth value is required for each flux density measurement. If there is no mention of the bandwidth in the paper, investigate previous publications that use the telescope to determine what bandwidth was likely used. If there is no way to determine the bandwidth used, do not use the paper.
- Flux density uncertainties
If the paper does not supply a flux density uncertainty, assume a relative uncertainty of 50 %.
- Do not include upper limits
The catalogue does not currently have a way of handling upper limits, so do not include them. If you have a suggestion for handling upper limits, please make an issue or start a discussion on the GitHub page.
Uploading the new catalogue to GitHub
So others can use this paper’s data, you should create a fork of the pulsar_spectra, and the new catalogue files and make a pull request. The following are the steps this will require and what you should include in your pull request.
- Make a fork of pulsar spectra
Go to the pulsar_spectra repository and fork it by clicking the fork button in the top right. Follow the steps until you are on the webpage with your fork (the URL should look like https://github.com/yourusername/pulsar_spectra).
- Clone your fork
From your fork webpage, click the code button and copy the clone URL. In your terminal, go to a directory where you would like to put the code and run the command
git clone <copied url here>
The
pulsar_spectra
directory it creates is where you should be working on your changes.
- Add each paper
For each paper, perform the following sub-steps
- Create the YAML paper file
Follow the steps in the added to the catalogue section, will make a YAML file in the directory
pulsar_spectra/catalogue_papers/
.
- Update ADS links
In the
pulsar_spectra/catalogue.py
, there is a dictionary calledADS_REF
(currently on line 25). Add a new line to this dictionary by making the key “Author_year” and the link to the ADS abstract page for the paper. So the format is:"Author_year": "adslink",
- Commit the changed files
First, you must add the new YAML file and the updated ADS ref like so (changing the command for your file):
git add pulsar_spectra/catalogue_papers/<AUTHOR_YEAR>.yaml pulsar_spectra/catalogue.py
Then make a commit describing your changes:
git commit -m "Added <AUTHOR_YEAR> to the catalogue.
Feel free to add a brief description of the paper if you’d like.
- Create a pull request
Once you have finished adding to the repo, you can push your changes to your GitHub fork using:
git push
Then go to your GitHub pulsar_spectra fork webpage and click on “Pull requests”, and then “Create pull request” (It may have prompted you to make a pull request already).
What we want (and what should happen by default) is the pull request will say something like this:
base respository:NickSwainston/pulsar_spectra base:main <- head respository:YOURUSERNAME/pulsar_spectra base:main
Write a description of the changes you have made and click submit.
- Wait for approval
The maintainers will review your changes, run some of the tests and either help you fix any errors or fix them on your behalf. Once the pull request is fixed and tested, it will be merged into the main branch so everyone can use it.
- Celebrate!
Pat yourself on the back for contributing to open-source software! You should now see yourself listed under the contributors to the repository.
Catalogue format
The catalogue is made up of YAML files of each paper. The format of the YAML files is:
{
"Pulsar Jname": {
"Frequency MHz": ["List of frequencies in MHz"],
"Flux Density mJy": ["List of flux densities in mJy"],
"Flux Density error mJy": ["List of flux density uncertainties in mJy"]
}
}
For example:
{
"J0030+0451": {
"Frequency MHz": [150.0, 180.0],
"Flux Density mJy": [ 37.6, 32.4],
"Flux Density error mJy": [ 4.4, 3.2]
},
"J0034-0534": {
"Frequency MHz": [150.0],
"Flux Density mJy": [202.8],
"Flux Density error mJy": [7.9]
},
}