.. _usage: ************** Detailed Usage ************** C/C++ executable binary: cali ----------------------------- .. code-block:: bash ./cali param.txt Here **param.txt** is the parameter file passed to **cali**. The parameter file looks like:: # parameter file # lines beginning with '#' are regarded as comments and are neglected FileCont data/ngc5548_cont.txt #FileLine data/ngc5548_line.txt #NMcmc 10000 #PTol 0.1 #FixedScale 0 #FixedShift 0 #ScaleRangeLow 0.5 #ScaleRangeUp 1.5 #ShiftRangeLow -1.0 #ShiftRangeUp 1.0 #FixedSyserr 1 #FixedErrorScale 1 #SyserrRangeLow 0.0 #SyserrRangeUp 0.1 #ErrscaleRangeLow 0.1 #ErrscaleRangeUp 2.0 #FlagNorm 0 #SigmaRangeLow 1.0e-4 #SigmaRangeUp 1.0 #TauRangeLow 1.0 #TauRangeUp 1.0e4 #FixedCodes 1,3 #FixedScaleCodes 1,3 In the parameter file, except for the option **FileCont**, all the rest options are optional. If they are not specified, **cali** will use the default values as shown above. The meaning of the above options are +------------------+-----------------------+---------+--------------------------------------+ | Option | Example | Type | Meaning | +==================+=======================+=========+======================================+ | FileCont | data/ngc5548_cont.txt | |file name of continuum light curve | +------------------+-----------------------+---------+--------------------------------------+ | FileLine | data/ngc5548_line.txt |optional |file name of line light curves, | | | | | | | | | |can be multiple lines, use comma (,) | | | | |to separate, e.g., | | | | | | | | | |**data/ngc5548_line1.txt,** | | | | |**data/ngc5548_line2.txt** | +------------------+-----------------------+---------+--------------------------------------+ | NMcmc | 10000 |optional |number of mcmc steps | +------------------+-----------------------+---------+--------------------------------------+ | PTol | 0.1 |optional |tolerance of log likelihood in | | | | |MCMC samling | +------------------+-----------------------+---------+--------------------------------------+ | FixedScale | 0 |optional |1: fix scale factor (=1); 0: not | +------------------+-----------------------+---------+--------------------------------------+ | FixedShift | 0 |optional |1: fix shift factor (=0); 0: not | +------------------+-----------------------+---------+--------------------------------------+ | ScaleRangeLow | 0.5 |optional |lower limit of scale factor | +------------------+-----------------------+---------+--------------------------------------+ | ScaleRangeUp | 1.5 |optional |upper limit of scale factor | +------------------+-----------------------+---------+--------------------------------------+ | ShiftRangeLow | -1.0 |optional |lower limit of shift factor | +------------------+-----------------------+---------+--------------------------------------+ | ShiftRangeUp | 1.0 |optional |upper limit of shift factor | +------------------+-----------------------+---------+--------------------------------------+ | FixedSyserr | 1 |optional |1: fix systematic error (=0); 0: not | +------------------+-----------------------+---------+--------------------------------------+ | FixedErrorScale | 1 |optional |1: fix error scale (=1); 0: not | +------------------+-----------------------+---------+--------------------------------------+ | SyserrRangeLow | 0.0 |optional |lower limit of systematic error | +------------------+-----------------------+---------+--------------------------------------+ | SyserrRangeUp | 0.1 |optional |upper limit of systematic error | +------------------+-----------------------+---------+--------------------------------------+ | ErrscaleRangeLow | 0.1 |optional |lower limit of error scale | +------------------+-----------------------+---------+--------------------------------------+ | ErrscaleRangeUp | 2.0 |optional |upper limit of error scale | +------------------+-----------------------+---------+--------------------------------------+ | SigmaRangeLow | 1.0e-4 |optional |lower limit of DRW sigma | +------------------+-----------------------+---------+--------------------------------------+ | SigmaRangeUp | 1.0 |optional |upper limit of DRW sigma | +------------------+-----------------------+---------+--------------------------------------+ | TauRangeLow | 1.0 |optional |lower limit of DRW tau | +------------------+-----------------------+---------+--------------------------------------+ | TauRangeUp | 1.0e4 |optional |upper limit of DRW tau | +------------------+-----------------------+---------+--------------------------------------+ | FixedCodes | 1,3 |optional |codes to be fixed | | | | | | | | | |can be multiple codes, use comma (,) | | | | |to separate, e.g., 1,3 | | | | | | | | | |this will fix 1st and 3rd code | | | | |(counting from 0) | +------------------+-----------------------+---------+--------------------------------------+ | FixedScaleCodes | 1,3 |optional |codes need to fix the scale | | | | | | | | | |can be multiple codes, use comma (,) | | | | |to separate, e.g., 1,3 | | | | | | | | | |this will fix 1st and 3rd code (=1) | | | | |(counting from 0) | +------------------+-----------------------+---------+--------------------------------------+ | FlagNorm | 1 |optional |whether do normalization before | | | | |intercalibrating | | | | | | | | | |1: yes; 0: no | +------------------+-----------------------+---------+--------------------------------------+ Here ``FlagNorm`` specifies whether ``mica2`` does normalization to the light curves of each data codes by their means before intercalibrating. This is necessary when there are large offsets between data codes. However, when the data has large variability and the time span of data code(s) is short, the means might be seriously biased. In this case, doing normalization is not helpful to intercalibration. One may first mannually align the data and turn off ``FlagNorm`` option. After running cali, there is a Python script **plot_for_cali.py** that can used to generate plots, which generates a PDF file named **PyCALI_results.pdf** and draw a matplotlib figure window to show intercalibrated light curves. Please also refer to :ref:`faq` for more details not covered here. Python module: pycali --------------------- An example for using pycali in a Python script is .. code-block:: Python import pycali import matplotlib.pyplot as plt import numpy as np ####################################################### # setup configurations, there are two ways: # 1) load from a param file # cfg = pycali.Config("param.txt") # 2) direct call setup() # cfg = pycali.Config() # except for the argument "fcont", the rest arguments are optional. # e.g., cfg.setup(fcont="data/ngc5548_cont.txt") # cfg.setup( fcont="data/ngc5548_cont.txt", # fcont is a string fline=["data/ngc5548_line.txt"], # fline is a list, include multiple lines nmcmc=10000, ptol=0.1, scale_range_low=0.5, scale_range_up=2.0, shift_range_low=-1.0, shift_range_up=1.0, syserr_range_low=0.0, syserr_range_up=0.2, errscale_range_low=0.5, errscale_range_up=2.0, sigma_range_low=1.0e-4, sigma_range_up=1.0, tau_range_low=1.0, tau_range_up=1.0e4, fixed_scale=False, fixed_shift=False, fixed_syserr=True, fixed_error_scale=True, fixed_codes=[], fixed_scalecodes=[], flag_norm=True, ) cfg.print_cfg() ###################################################### # do intercalibration # cali = pycali.Cali(cfg) # create an instance cali.mcmc() # do mcmc cali.get_best_params() # calculate the best parameters cali.output() # print output cali.recon() # do reconstruction # plot results to PyCALI_results.pdf pycali.plot_results(cfg) # a simple plot pycali.simple_plot(cfg) Please also refer to :ref:`faq` for more details not covered here.