diff --git a/include/GModelSpectralTable.hpp b/include/GModelSpectralTable.hpp
index 8659b3e..c9b0df7 100644
--- a/include/GModelSpectralTable.hpp
+++ b/include/GModelSpectralTable.hpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTable.hpp - Spectral table model class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/include/GModelSpectralTablePar.hpp b/include/GModelSpectralTablePar.hpp
index dfe1795..e158983 100644
--- a/include/GModelSpectralTablePar.hpp
+++ b/include/GModelSpectralTablePar.hpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePar.hpp - Spectral table model parameter class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/include/GModelSpectralTablePars.hpp b/include/GModelSpectralTablePars.hpp
index 5fd4866..457e879 100644
--- a/include/GModelSpectralTablePars.hpp
+++ b/include/GModelSpectralTablePars.hpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePars.hpp - Spectral table model par container class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/pyext/GModelSpectralTable.i b/pyext/GModelSpectralTable.i
index 705e2e9..ab8800f 100644
--- a/pyext/GModelSpectralTable.i
+++ b/pyext/GModelSpectralTable.i
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTable.i - Spectral table model class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/pyext/GModelSpectralTablePar.i b/pyext/GModelSpectralTablePar.i
index 08b0df2..2cb90d0 100644
--- a/pyext/GModelSpectralTablePar.i
+++ b/pyext/GModelSpectralTablePar.i
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePar.i - Spectral table model parameter class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/pyext/GModelSpectralTablePars.i b/pyext/GModelSpectralTablePars.i
index 5befc85..414a00c 100644
--- a/pyext/GModelSpectralTablePars.i
+++ b/pyext/GModelSpectralTablePars.i
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePars.i - Spectral table model par container class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/pyext/Makefile.am b/pyext/Makefile.am
index 42f35dd..0015294 100755
--- a/pyext/Makefile.am
+++ b/pyext/Makefile.am
@@ -129,6 +129,7 @@ testdata = $(top_srcdir)/test/data/initial_coords.txt \
$(top_srcdir)/test/data/model_point_plaw.xml \
$(top_srcdir)/test/data/test_cube.fits \
$(top_srcdir)/test/data/filefunction.txt \
+ $(top_srcdir)/test/data/model_point_table.fits \
$(top_srcdir)/test/data/model_temporal_lightcurve.fits \
$(top_srcdir)/test/data/model_temporal_phasecurve.fits
diff --git a/src/model/GModelSpectralTable.cpp b/src/model/GModelSpectralTable.cpp
index 23545ce..30e669f 100644
--- a/src/model/GModelSpectralTable.cpp
+++ b/src/model/GModelSpectralTable.cpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTable.cpp - Spectral table model class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
@@ -494,6 +494,9 @@ void GModelSpectralTable::read(const GXmlElement& xml)
"Spectral function requires exactly 1 parameter.");
}
+ // Load table model from file (do this first since method calls clear())
+ load(gammalib::xml_file_expand(xml, xml.attribute("file")));
+
// Get parameter element
const GXmlElement* par = xml.element("parameter", 0);
@@ -506,9 +509,6 @@ void GModelSpectralTable::read(const GXmlElement& xml)
"Require \"Normalization\" parameter.");
}
- // Load table model from file
- load(gammalib::xml_file_expand(xml, xml.attribute("file")));
-
// Return
return;
}
diff --git a/src/model/GModelSpectralTablePar.cpp b/src/model/GModelSpectralTablePar.cpp
index 4625d09..4156982 100644
--- a/src/model/GModelSpectralTablePar.cpp
+++ b/src/model/GModelSpectralTablePar.cpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePar.cpp - Spectral table model parameter class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/src/model/GModelSpectralTablePars.cpp b/src/model/GModelSpectralTablePars.cpp
index bce92a5..d52050e 100644
--- a/src/model/GModelSpectralTablePars.cpp
+++ b/src/model/GModelSpectralTablePars.cpp
@@ -1,7 +1,7 @@
/***************************************************************************
* GModelSpectralTablePars.cpp - Spectral table model par container class *
* ----------------------------------------------------------------------- *
- * copyright (C) 2019 by Juergen Knoedlseder *
+ * copyright (C) 2019-2020 by Juergen Knoedlseder *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
diff --git a/test/data/model_point_filefct.xml b/test/data/model_point_filefct.xml
index dfd69ce..fdb5d09 100644
--- a/test/data/model_point_filefct.xml
+++ b/test/data/model_point_filefct.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/test/data/model_point_table.fits b/test/data/model_point_table.fits
new file mode 100644
index 0000000..62782e4
--- /dev/null
+++ b/test/data/model_point_table.fits
@@ -0,0 +1,201 @@
+SIMPLE = T / file does conform to FITS standard BITPIX = 8 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H CONTENT = 'MODEL ' / Spectrum file FILENAME= 'test.fits' / FITS file name ORIGIN = 'gammalib' / Origin of FITS file MODLNAME= 'model ' / Model name MODLUNIT= 'photons/cm^2/s/MeV' / Model units REDSHIFT= F / If true then redshift will be included as a parADDMODEL= T / If true then this is an additive table model HDUCLASS= 'OGIP ' / Format conforms to OGIP standard HDUCLAS1= 'XSPEC TABLE MODEL' / Model spectra for XSPEC HDUVERS = '1.0.0 ' / Version of format END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 124 / width of table in bytes NAXIS2 = 2 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 10 / number of table fields TTYPE1 = 'NAME ' / label for field 1 TFORM1 = '12A ' / data format of field 1 TTYPE2 = 'METHOD ' / label for field 2 TFORM2 = '1J ' / data format of field 2 TTYPE3 = 'INITIAL ' / label for field 3 TFORM3 = '1E ' / data format of field 3 TTYPE4 = 'DELTA ' / label for field 4 TFORM4 = '1E ' / data format of field 4 TTYPE5 = 'MINIMUM ' / label for field 5 TFORM5 = '1E ' / data format of field 5 TTYPE6 = 'BOTTOM ' / label for field 6 TFORM6 = '1E ' / data format of field 6 TTYPE7 = 'TOP ' / label for field 7 TFORM7 = '1E ' / data format of field 7 TTYPE8 = 'MAXIMUM ' / label for field 8 TFORM8 = '1E ' / data format of field 8 TTYPE9 = 'NUMBVALS' / label for field 9 TFORM9 = '1J ' / data format of field 9 TTYPE10 = 'VALUE ' / label for field 10 TFORM10 = '20E ' / data format of field 10 TUNIT1 = ' ' / physical unit of field1 TUNIT2 = ' ' / physical unit of field2 TUNIT3 = ' ' / physical unit of field3 TUNIT4 = ' ' / physical unit of field4 TUNIT5 = ' ' / physical unit of field5 TUNIT6 = ' ' / physical unit of field6 TUNIT7 = ' ' / physical unit of field7 TUNIT8 = ' ' / physical unit of field8 TUNIT9 = ' ' / physical unit of field9 TUNIT10 = ' ' / physical unit of field10 EXTNAME = 'PARAMETERS' / name of this extension HDUCLASS= 'OGIP ' / Format conforms to OGIP standard HDUCLAS1= 'XSPEC TABLE MODEL' / Model spectra for XSPEC HDUCLAS2= 'PARAMETERS' / Extension containing parameter info HDUVERS = '1.0.0 ' / Version of format NINTPARM= 2 / Number of interpolation parameters NADDPARM= 0 / Number of additional parameters END Index À ?€ À9™šÀ9™š¿€ ¿€ À9™šÀ333À,ÌÍÀ&ffÀ À™šÀ33ÀÌÍÀffÀ ¿ó33¿æff¿Ù™š¿ÌÌÍ¿À ¿³33¿¦ff¿™™š¿ŒÌÍ¿€ Cutoff ?€ ?€ =ÌÌÍ=ÌÌÍD½ED½E =ÌÌÍ>"K>€›Ì>ËÔ´?!†l?€ ?ÊÝÈ@ ¿@~Éá@ÉèA A}•:AÈóoB>-B|bBÈ C}DC{0KCÇ
¸D½E XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 8 / width of table in bytes NAXIS2 = 40 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of table fields TTYPE1 = 'ENERG_LO' / label for field 1 TFORM1 = '1E ' / data format of field 1 TUNIT1 = 'keV ' / physical unit of field1 TTYPE2 = 'ENERG_HI' / label for field 2 TFORM2 = '1E ' / data format of field 2 TUNIT2 = 'keV ' / physical unit of field2 EXTNAME = 'ENERGIES' / name of this extension HDUCLASS= 'OGIP ' / Format conforms to OGIP standard HDUCLAS1= 'XSPEC TABLE MODEL' / Model spectra for XSPEC HDUCLAS2= 'ENERGIES' / Extension containing energy bin info HDUVERS = '1.0.0 ' / Version of format END K–€KEr&KEr&K}ÆK}ÆK¥LîK¥LîKÕåQKÕåQL
+czL
+czL3~L3~Lg·ULg·UL•ëL•ëLÁýÉLÁýÉLûmLûmM"hŒM"hŒMR'GMR'GM‡÷¡M‡÷¡M¯ðmM¯ðmMã©yMã©yNK’NK’N>˜åN>˜åNv¡Nv¡NŸ‘NŸ‘NÎyÿNÎyÿO–¢O–¢O,ÜeO,ÜeO_ÆO_ÆO�·ÖO�·ÖO»C5O»C5OòPrOòPrPÆjPÆjPJÝ/PJÝ/Pƒ@JPƒ@JP©Ö&P©Ö&PÛÃêPÛÃêQ/¤Q/¤Q7üuQ7üuQnQnQš7Qš7QÇPŽQÇPŽR ôiR ôiR&ÝrR&ÝrRWë•RWë•R‹²É XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 168 / width of table in bytes NAXIS2 = 400 / number of rows in table PCOUNT = 0 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 2 / number of table fields TTYPE1 = 'PARAMVAL' / label for field 1 TFORM1 = '2E ' / data format of field 1 TTYPE2 = 'INTPSPEC' / label for field 2 TFORM2 = '40E ' / data format of field 2 TUNIT1 = ' ' / physical unit of field1 TUNIT2 = ' ' / physical unit of field2 EXTNAME = 'SPECTRA ' / name of this extension HDUCLASS= 'OGIP ' / Format conforms to OGIP standard HDUCLAS1= 'XSPEC TABLE MODEL' / Model spectra for XSPEC HDUCLAS2= 'MODEL SPECTRA' / Extension containing model spectra HDUVERS = '1.0.0 ' / Version of format END À9™š=ÌÌÍBœê(Bj�¹B-–«Aý°íA¶ZA€O³A/©¢@èò@’_'@-ñ-?¿Uœ?>pq>¦‹8=öco=Á�<:¥mÂ9’Ó6Ý(½4,W0Á‘X,i±Ý&Í—¬ŸÈ¯e™?
+ƒè | À333=ÌÌÍBõ‚DB²Ò¤B€ùßB7²BB ®7A°{ÓAkwA“I@ºX`@WÏ�?çY{?`h�>¿Aì> à(= <f~:«^59Ïv6Ù–ì4$ï=0´à7,TÐÔ&¶uëŠ2¹A‡_
+Xµâ f À,ÌÍ=ÌÌÍC@ËCUxB¿¨vB…sB5œ¿Aò½×A�Ð$AF@íÛ£t>N€=.•Œ<<ö:±…>96ÖÜ4$Ê0©,AÍW&¡îpo’# "
+2�
! À&ff=ÌÌÍC–?ýCOá€CfÔBÀ îB€(—B&ïüAÓ‰äA�UAÿ@¦™@)4?›Íw>ü;!>,²=>k%<¡Ø:·äÔ9QÔ6ÒŸN4¡ë0�ï,0|¹&�¶ENÃ
+ ¤
+;É
+‚ À =ÌÌÍCëËCž|ÔCS›ÅC{7B´à(Beœ€B
ÆùA¨ómA@@�@Îû@L|¡?·—ô?Ôw>AFÅ=O°e<(ž:¾~ý9—ž6Ï94c0“”, ¸"&Â2ÔeçË— ð?– j À™š=ÌÌÍD7çwCñ©&C�9�CIþÊBÿGB�èUB>*AÜ´ÇAtÁz@ÿ±@w@¬?ØWy?&RL>XOK=b†¤<3;F:ÅUÔ9à…6ËàÌ4g<0‰æì,\/&bbt«ÂÃa_ ÅZf ¼ À33=ÌÌÍD�ÞJD8=ÄC颸C’C~C4$TBÙ0ûB~½àB(lA›Ì~Ažp@•{.?þîc?? Ž>r†=w@<>ƒ|:Ìkˆ9 ,�6È–b4©ä0€Ü+,H¨&HéÐÆ ¤¯« ¢Ú d ÀÌÍ=ÌÌÍDáµDŒwD-—HCÓÑ@C~=îC]ºBª»•B‡x=†½s