library(xrayr)
library(tidyverse)
#> ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
#> ✔ dplyr 1.1.2 ✔ readr 2.1.4
#> ✔ forcats 1.0.0 ✔ stringr 1.5.0
#> ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
#> ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
#> ✔ purrr 1.0.1
#> ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag() masks stats::lag()
#> ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Use built-in dataset xspec_output
or try to read xspec
output file using readr::read_lines
xspec_output
#> [1] "========================================================================"
#> [2] "Model phabs<1>*constant<2>*powerlaw<3> Source No.: 1 Active/On"
#> [3] "Model Model Component Parameter Unit Value"
#> [4] " par comp"
#> [5] " Data group: 1"
#> [6] " 1 1 phabs nH 10^22 0.491000 frozen"
#> [7] " 2 2 constant factor 1.00000 frozen"
#> [8] " 3 3 powerlaw PhoIndex 1.94000 frozen"
#> [9] " 4 3 powerlaw norm 1.22743E-02 +/- 1.56172E-04 "
#> [10] " Data group: 2"
#> [11] " 5 1 phabs nH 10^22 0.491000 = p1"
#> [12] " 6 2 constant factor 0.858327 +/- 4.43129E-02 "
#> [13] " 7 3 powerlaw PhoIndex 1.94000 = p3"
#> [14] " 8 3 powerlaw norm 1.22743E-02 = p4"
#> [15] " Data group: 3"
#> [16] " 9 1 phabs nH 10^22 0.491000 = p1"
#> [17] " 10 2 constant factor 1.03250 +/- 6.42836E-02 "
#> [18] " 11 3 powerlaw PhoIndex 1.94000 = p3"
#> [19] " 12 3 powerlaw norm 1.22743E-02 = p4"
#> [20] " Data group: 4"
#> [21] " 13 1 phabs nH 10^22 0.491000 = p1"
#> [22] " 14 2 constant factor 0.877461 +/- 4.71135E-02 "
#> [23] " 15 3 powerlaw PhoIndex 1.94000 = p3"
#> [24] " 16 3 powerlaw norm 1.22743E-02 = p4"
#> [25] " Data group: 5"
#> [26] " 17 1 phabs nH 10^22 0.491000 = p1"
#> [27] " 18 2 constant factor 0.981950 +/- 4.79727E-02 "
#> [28] " 19 3 powerlaw PhoIndex 1.94000 = p3"
#> [29] " 20 3 powerlaw norm 1.22743E-02 = p4"
#> [30] " Data group: 6"
#> [31] " 21 1 phabs nH 10^22 0.491000 = p1"
#> [32] " 22 2 constant factor 1.04055 +/- 4.94828E-02 "
#> [33] " 23 3 powerlaw PhoIndex 1.94000 = p3"
#> [34] " 24 3 powerlaw norm 1.22743E-02 = p4"
#> [35] " Data group: 7"
#> [36] " 25 1 phabs nH 10^22 0.491000 = p1"
#> [37] " 26 2 constant factor 0.988650 +/- 4.92517E-02 "
#> [38] " 27 3 powerlaw PhoIndex 1.94000 = p3"
#> [39] " 28 3 powerlaw norm 1.22743E-02 = p4"
#> [40] " Data group: 8"
#> [41] " 29 1 phabs nH 10^22 0.491000 = p1"
#> [42] " 30 2 constant factor 0.843237 +/- 4.83731E-02 "
#> [43] " 31 3 powerlaw PhoIndex 1.94000 = p3"
#> [44] " 32 3 powerlaw norm 1.22743E-02 = p4"
#> [45] " Data group: 9"
#> [46] " 33 1 phabs nH 10^22 0.491000 = p1"
#> [47] " 34 2 constant factor 1.01853 +/- 1.42428E-02 "
#> [48] " 35 3 powerlaw PhoIndex 1.94000 = p3"
#> [49] " 36 3 powerlaw norm 1.22743E-02 = p4"
#> [50] " Data group: 10"
#> [51] " 37 1 phabs nH 10^22 0.491000 = p1"
#> [52] " 38 2 constant factor 1.02379 +/- 1.43999E-02 "
#> [53] " 39 3 powerlaw PhoIndex 1.94000 = p3"
#> [54] " 40 3 powerlaw norm 1.22743E-02 = p4"
#> [55] "________________________________________________________________________"
#> [56] ""
#> [57] ""
#> [58] "Fit statistic : C-Statistic 304.86 using 333 bins."
#> [59] " C-Statistic 37.72 using 40 bins."
#> [60] " C-Statistic 40.74 using 40 bins."
#> [61] " C-Statistic 33.40 using 40 bins."
#> [62] " C-Statistic 35.95 using 40 bins."
#> [63] " C-Statistic 34.48 using 40 bins."
#> [64] " C-Statistic 37.60 using 40 bins."
#> [65] " C-Statistic 43.21 using 40 bins."
#> [66] " C-Statistic 136.87 using 149 bins."
#> [67] " C-Statistic 134.33 using 149 bins."
#> [68] "Total fit statistic 839.16 with 901 d.o.f."
#> [69] ""
#> [70] "Test statistic : Chi-Squared 890.43 using 911 bins."
#> [71] " Null hypothesis probability of 5.93e-01 with 901 degrees of freedom"
#> [72] ""
#> [73] "!XSPEC12>pl ld"
#> [74] ""
#> [75] "!XSPEC12>plot ld"
#> [76] ""
#> [77] "!XSPEC12>err 6 10 14 18 22 26 30 34 38"
#> [78] ""
#> [79] "!XSPEC12>error 6 10 14 18 22 26 30 34 38"
#> [80] " Parameter Confidence Range (2.706)"
#> [81] " 6 0.787334 0.933086 (-0.0709923,0.0747598)"
#> [82] " 10 0.929766 1.14119 (-0.102735,0.108692)"
#> [83] " 14 0.802051 0.957009 (-0.0754104,0.0795481)"
#> [84] " 18 0.905033 1.06282 (-0.0769173,0.0808715)"
#> [85] " 22 0.961193 1.12395 (-0.0793531,0.0834028)"
#> [86] " 26 0.90973 1.07172 (-0.0789209,0.0830731)"
#> [87] " 30 0.765848 0.924946 (-0.077389,0.0817098)"
#> [88] " 34 0.995438 1.0423 (-0.0230939,0.0237635)"
#> [89] " 38 1.00044 1.04781 (-0.0233489,0.0240258)"
Now lets try to parse this file
xrayr::xspec_parse_output(xspec_output)
#> $model
#> [1] "phabs<1>*constant<2>*powerlaw<3>"
#>
#> $fit_params
#> # A tibble: 40 × 10
#> data_group par n_comp comp par_comp units value error is_frozen tie
#> <fct> <int> <int> <chr> <chr> <chr> <dbl> <dbl> <chr> <chr>
#> 1 1 1 1 phabs nH 10^22 0.491 NA + NA
#> 2 1 2 2 const… factor NA 1 NA + NA
#> 3 1 3 3 power… PhoIndex NA 1.94 NA + NA
#> 4 1 4 3 power… norm NA 0.0123 1.56e-4 NA NA
#> 5 2 5 1 phabs nH 10^22 0.491 NA NA =p1
#> 6 2 6 2 const… factor NA 0.858 4.43e-2 NA NA
#> 7 2 7 3 power… PhoIndex NA 1.94 NA NA =p3
#> 8 2 8 3 power… norm NA 0.0123 NA NA =p4
#> 9 3 9 1 phabs nH 10^22 0.491 NA NA =p1
#> 10 3 10 2 const… factor NA 1.03 6.43e-2 NA NA
#> # ℹ 30 more rows
#>
#> $conf_errors
#> # A tibble: 9 × 4
#> par error_lo error_hi diff_err
#> <dbl> <dbl> <dbl> <chr>
#> 1 6 0.787 0.933 (-0.0709923,0.0747598)
#> 2 10 0.930 1.14 (-0.102735,0.108692)
#> 3 14 0.802 0.957 (-0.0754104,0.0795481)
#> 4 18 0.905 1.06 (-0.0769173,0.0808715)
#> 5 22 0.961 1.12 (-0.0793531,0.0834028)
#> 6 26 0.910 1.07 (-0.0789209,0.0830731)
#> 7 30 0.766 0.925 (-0.077389,0.0817098)
#> 8 34 0.995 1.04 (-0.0230939,0.0237635)
#> 9 38 1.00 1.05 (-0.0233489,0.0240258)
print(xrayr::xspec_parse_model(xspec_output))
#> [1] "phabs<1>*constant<2>*powerlaw<3>"
print(xrayr::xspec_parse_params(xspec_output))
#> # A tibble: 40 × 10
#> data_group par n_comp comp par_comp units value error is_frozen tie
#> <fct> <int> <int> <chr> <chr> <chr> <dbl> <dbl> <chr> <chr>
#> 1 1 1 1 phabs nH 10^22 0.491 NA + NA
#> 2 1 2 2 const… factor NA 1 NA + NA
#> 3 1 3 3 power… PhoIndex NA 1.94 NA + NA
#> 4 1 4 3 power… norm NA 0.0123 1.56e-4 NA NA
#> 5 2 5 1 phabs nH 10^22 0.491 NA NA =p1
#> 6 2 6 2 const… factor NA 0.858 4.43e-2 NA NA
#> 7 2 7 3 power… PhoIndex NA 1.94 NA NA =p3
#> 8 2 8 3 power… norm NA 0.0123 NA NA =p4
#> 9 3 9 1 phabs nH 10^22 0.491 NA NA =p1
#> 10 3 10 2 const… factor NA 1.03 6.43e-2 NA NA
#> # ℹ 30 more rows
print(xrayr::xspec_parse_conf_errors(xspec_output))
#> # A tibble: 9 × 4
#> par error_lo error_hi diff_err
#> <dbl> <dbl> <dbl> <chr>
#> 1 6 0.787 0.933 (-0.0709923,0.0747598)
#> 2 10 0.930 1.14 (-0.102735,0.108692)
#> 3 14 0.802 0.957 (-0.0754104,0.0795481)
#> 4 18 0.905 1.06 (-0.0769173,0.0808715)
#> 5 22 0.961 1.12 (-0.0793531,0.0834028)
#> 6 26 0.910 1.07 (-0.0789209,0.0830731)
#> 7 30 0.766 0.925 (-0.077389,0.0817098)
#> 8 34 0.995 1.04 (-0.0230939,0.0237635)
#> 9 38 1.00 1.05 (-0.0233489,0.0240258)