Commit cee51042ca4eb9de3dbe58475ac3c217413c5025
1 parent
1503f96a
se file function constructor in csspec (#3626)
Showing
5 changed files
with
25 additions
and
24 deletions
ChangeLog
| 1 | -2021-04-29 | 1 | +2021-04-30 |
| 2 | 2 | ||
| 3 | * Version 2.0.0 released | 3 | * Version 2.0.0 released |
| 4 | ======================== | 4 | ======================== |
| 5 | 5 | ||
| 6 | Add ASCL shields to "About" page (#3630) | 6 | Add ASCL shields to "About" page (#3630) |
| 7 | + Use file function constructor in csspec (#3626) | ||
| 7 | Add BINS method to csspec (#3606) | 8 | Add BINS method to csspec (#3606) |
| 8 | Add hidden "fix_spat" parameter to cttsmap (#3562) | 9 | Add hidden "fix_spat" parameter to cttsmap (#3562) |
| 9 | Add optimizer setter to ctlikelihood base class | 10 | Add optimizer setter to ctlikelihood base class |
NEWS
| 1 | New Features and Important Changes in ctools 2.0.0 | 1 | New Features and Important Changes in ctools 2.0.0 |
| 2 | 2 | ||
| 3 | -29 April 2021 | 3 | +30 April 2021 |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | Introduction | 6 | Introduction |
| @@ -287,6 +287,9 @@ None | @@ -287,6 +287,9 @@ None | ||
| 287 | 287 | ||
| 288 | csspec - Generates Spectral Energy Distribution | 288 | csspec - Generates Spectral Energy Distribution |
| 289 | ----------------------------------------------- | 289 | ----------------------------------------------- |
| 290 | +The GModelSpectralFunc spectral model constructor is now used to convert any | ||
| 291 | +spectral model into a file function before spectral model fitting (#3626). | ||
| 292 | + | ||
| 290 | Added BINS method that replaces the spectral model by a bin function that is | 293 | Added BINS method that replaces the spectral model by a bin function that is |
| 291 | implemented by the GammaLib class GModelSpectralBins. Using a bin function | 294 | implemented by the GammaLib class GModelSpectralBins. Using a bin function |
| 292 | assures that spectral points are statistically independent (#3606). | 295 | assures that spectral points are statistically independent (#3606). |
README.md
| 1 | ctools information | 1 | ctools information |
| 2 | ================== | 2 | ================== |
| 3 | -* Version: 2.0.0.dev (29 April 2021) | 3 | +* Version: 2.0.0.dev (30 April 2021) |
| 4 | * GammaLib dependency: 2.0.0.dev | 4 | * GammaLib dependency: 2.0.0.dev |
| 5 | 5 | ||
| 6 | [](https://cta-jenkins.irap.omp.eu/job/ctools-integrate-os/) | 6 | [](https://cta-jenkins.irap.omp.eu/job/ctools-integrate-os/) |
| @@ -127,8 +127,8 @@ the following: | @@ -127,8 +127,8 @@ the following: | ||
| 127 | $ conda install ctools | 127 | $ conda install ctools |
| 128 | 128 | ||
| 129 | 129 | ||
| 130 | -Unix Installation | ||
| 131 | -================= | 130 | +Linux Installation |
| 131 | +================== | ||
| 132 | To build and install ctools, simply type the following: | 132 | To build and install ctools, simply type the following: |
| 133 | 133 | ||
| 134 | $ ./configure | 134 | $ ./configure |
| @@ -161,14 +161,14 @@ ctools was correctly built. Make sure that all tests were successful. | @@ -161,14 +161,14 @@ ctools was correctly built. Make sure that all tests were successful. | ||
| 161 | 161 | ||
| 162 | Macintosh OS X Installation | 162 | Macintosh OS X Installation |
| 163 | ============================ | 163 | ============================ |
| 164 | -ctools is known to work on various flavors of OS X. To cope with | 164 | +ctools is known to work on various flavors of Mac OS. To cope with |
| 165 | different system versions and architectures, there are two Mac | 165 | different system versions and architectures, there are two Mac |
| 166 | specific configure options: | 166 | specific configure options: |
| 167 | 167 | ||
| 168 | $ ./configure --enable-universalsdk[=PATH] | 168 | $ ./configure --enable-universalsdk[=PATH] |
| 169 | 169 | ||
| 170 | creates a universal build of ctools. The optional argument specifies | 170 | creates a universal build of ctools. The optional argument specifies |
| 171 | -which OSX SDK should be used to perform the build. This defaults to | 171 | +which MacOS SDK should be used to perform the build. This defaults to |
| 172 | "/Developer/SDKs/MacOSX.10.4u.sdk". Specify "/" when building on a 10.5 | 172 | "/Developer/SDKs/MacOSX.10.4u.sdk". Specify "/" when building on a 10.5 |
| 173 | system or higher, especially when building 64-bit code. | 173 | system or higher, especially when building 64-bit code. |
| 174 | 174 | ||
| @@ -221,7 +221,8 @@ shared library (see "Known problems" below). | @@ -221,7 +221,8 @@ shared library (see "Known problems" below). | ||
| 221 | 221 | ||
| 222 | Windows Installation | 222 | Windows Installation |
| 223 | ==================== | 223 | ==================== |
| 224 | -There have been no efforts so far to compile ctools under Windows. | 224 | +On Windows ctools needs to be installed into a virtual machine running |
| 225 | +a Linux distribution. | ||
| 225 | 226 | ||
| 226 | 227 | ||
| 227 | Testing | 228 | Testing |
cscripts/csspec.py
| @@ -368,23 +368,17 @@ class csspec(ctools.csobservation): | @@ -368,23 +368,17 @@ class csspec(ctools.csobservation): | ||
| 368 | ' Fixing "'+par.name()+'"') | 368 | ' Fixing "'+par.name()+'"') |
| 369 | par.fix() | 369 | par.fix() |
| 370 | 370 | ||
| 371 | - # Kludge: convert spectral model into a file function | ||
| 372 | - nbins = self._ebounds.size() | ||
| 373 | - num = nbins * 20 | ||
| 374 | - energies = gammalib.GEnergies(num, self._ebounds.emin(0), | ||
| 375 | - self._ebounds.emax(nbins-1)) | ||
| 376 | - _, filename = tempfile.mkstemp() | ||
| 377 | - f = open(filename, 'w') | ||
| 378 | - spectral = model.spectral() | ||
| 379 | - for energy in energies: | ||
| 380 | - value = spectral.eval(energy) | ||
| 381 | - f.write('%20.6f %20e\n' % (energy.MeV(), value)) | ||
| 382 | - f.close() | ||
| 383 | - spectral = gammalib.GModelSpectralFunc(filename, 1.0) | 371 | + # Convert spectral model into a file function. The file |
| 372 | + # function is logarithmically sampled in energy, with with | ||
| 373 | + # 20 times the number of spectral bins | ||
| 374 | + nbins = self._ebounds.size() | ||
| 375 | + num = nbins * 50 | ||
| 376 | + energies = gammalib.GEnergies(num, self._ebounds.emin(0), | ||
| 377 | + self._ebounds.emax(nbins-1)) | ||
| 378 | + spectral = gammalib.GModelSpectralFunc(model.spectral(), energies) | ||
| 384 | model.spectral(spectral) | 379 | model.spectral(spectral) |
| 385 | self._log_string(gammalib.EXPLICIT, ' Converting spectral model ' | 380 | self._log_string(gammalib.EXPLICIT, ' Converting spectral model ' |
| 386 | - 'into file function via temporary file "%s"' % | ||
| 387 | - filename) | 381 | + 'into file function') |
| 388 | 382 | ||
| 389 | # Free the normalisation parameter which is assumed to be | 383 | # Free the normalisation parameter which is assumed to be |
| 390 | # the first spectral parameter | 384 | # the first spectral parameter |
doc/source/admin/release_history/2.0.rst
| 1 | .. _2.0: | 1 | .. _2.0: |
| 2 | 2 | ||
| 3 | -ctools 2.0 release (29 April 2021) | 3 | +ctools 2.0 release (30 April 2021) |
| 4 | ================================== | 4 | ================================== |
| 5 | 5 | ||
| 6 | Overview | 6 | Overview |
| @@ -26,6 +26,8 @@ Improvements | @@ -26,6 +26,8 @@ Improvements | ||
| 26 | 26 | ||
| 27 | * [`3630 <https://cta-redmine.irap.omp.eu/issues/3630>`_] - | 27 | * [`3630 <https://cta-redmine.irap.omp.eu/issues/3630>`_] - |
| 28 | Add ASCL shields to **About** page | 28 | Add ASCL shields to **About** page |
| 29 | +* [`3626 <https://cta-redmine.irap.omp.eu/issues/3626>`_] - | ||
| 30 | + Use file function constructor in csspec | ||
| 29 | * [`3606 <https://cta-redmine.irap.omp.eu/issues/3606>`_] - | 31 | * [`3606 <https://cta-redmine.irap.omp.eu/issues/3606>`_] - |
| 30 | Add ``BINS`` method to :ref:`csspec` | 32 | Add ``BINS`` method to :ref:`csspec` |
| 31 | * [`3562 <https://cta-redmine.irap.omp.eu/issues/3562>`_] - | 33 | * [`3562 <https://cta-redmine.irap.omp.eu/issues/3562>`_] - |