Beispiel #1
0
def test_initial_guess_PSPL():
    event = _create_event()

    guesses = microlguess.initial_guess_PSPL(event)

    assert len(guesses) == 2
    assert len(guesses[0]) == 3
Beispiel #2
0
def test_initial_guess_PSPL():
    event = _create_event()

    guesses = microlguess.initial_guess_PSPL(event)

    assert len(guesses) == 2
    assert len(guesses[0]) == 3
Beispiel #3
0
    def initial_guess(self):
        """Try to estimate the microlensing parameters. Only use for PSPL and FSPL
           models. More details on microlguess module.

           :return guess_parameters: a list containing parameters guess related to the model.
           :rtype: list
        """

        if len(self.model.parameters_guess) == 0:

            # Estimate  the Paczynski parameters

            if self.model.model_type == 'PSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_PSPL(self.event)

            if self.model.model_type == 'FSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_FSPL(self.event)

            if self.model.model_type == 'DSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_DSPL(self.event)

            # Estimate  the telescopes fluxes (flux_source + g_blending) parameters

            
            telescopes_fluxes = self.find_fluxes(guess_paczynski_parameters, self.model)

            # The survey fluxes are already known from microlguess
            telescopes_fluxes[0] = f_source
            telescopes_fluxes[1] = 0.0

            if  'piEN' in self.model.model_dictionnary.keys():
                guess_paczynski_parameters = guess_paczynski_parameters + [0.0, 0.0]

            if  'XiEN' in self.model.model_dictionnary.keys():
                guess_paczynski_parameters = guess_paczynski_parameters + [0, 0]

            if 'dsdt' in self.model.model_dictionnary.keys():
                guess_paczynski_parameters = guess_paczynski_parameters + [0, 0]

            if 'spot_size' in self.model.model_dictionnary.keys():
                guess_paczynski_parameters = guess_paczynski_parameters + [0]



        else:

            guess_paczynski_parameters = list(self.model.parameters_guess)

            telescopes_fluxes = self.find_fluxes(guess_paczynski_parameters, self.model)

        if len(guess_paczynski_parameters) != len(list(self.model.model_dictionnary.keys())):
            guess_paczynski_parameters += telescopes_fluxes

        
        print(sys._getframe().f_code.co_name, ' : Initial parameters guess SUCCESS')
        return guess_paczynski_parameters
Beispiel #4
0
    def initial_guess(self):
        """Try to estimate the microlensing parameters. Only use for PSPL and FSPL
           models. More details on microlguess module.

           :return guess_parameters: a list containing parameters guess related to the model.
           :rtype: list
        """

        if len(self.model.parameters_guess) == 0:

            # Estimate  the Paczynski parameters

            if self.model.model_type == 'PSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_PSPL(
                    self.event)

            if self.model.model_type == 'FSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_FSPL(
                    self.event)

            if self.model.model_type == 'DSPL':
                guess_paczynski_parameters, f_source = microlguess.initial_guess_DSPL(
                    self.event)

            # Estimate  the telescopes fluxes (flux_source + g_blending) parameters, with a PSPL model

            fake_model = microlmodels.create_model('PSPL', self.event)
            fake_model.define_model_parameters()
            telescopes_fluxes = self.find_fluxes(guess_paczynski_parameters,
                                                 fake_model)

            # The survey fluxes are already known from microlguess
            telescopes_fluxes[0] = f_source
            telescopes_fluxes[1] = 0.0

            if self.model.parallax_model[0] != 'None':
                guess_paczynski_parameters = guess_paczynski_parameters + [
                    0.0, 0.0
                ]

            if self.model.xallarap_model[0] != 'None':
                guess_paczynski_parameters = guess_paczynski_parameters + [
                    0, 0
                ]

            if self.model.orbital_motion_model[0] != 'None':
                guess_paczynski_parameters = guess_paczynski_parameters + [
                    0, 0
                ]

            if self.model.source_spots_model != 'None':
                guess_paczynski_parameters = guess_paczynski_parameters + [0]

        else:

            guess_paczynski_parameters = list(self.model.parameters_guess)

            telescopes_fluxes = self.find_fluxes(guess_paczynski_parameters,
                                                 self.model)

        guess_paczynski_parameters += telescopes_fluxes

        guess_parameters_pyLIMA_standards = collections.namedtuple(
            'parameters', self.model.pyLIMA_standards_dictionnary.keys())

        for key_parameter in self.model.pyLIMA_standards_dictionnary.keys():

            try:
                setattr(
                    guess_parameters_pyLIMA_standards, key_parameter,
                    guess_paczynski_parameters[
                        self.model.pyLIMA_standards_dictionnary[key_parameter]]
                )

            except:

                pass

        fancy_parameters_guess = self.model.pyLIMA_standard_parameters_to_fancy_parameters(
            guess_parameters_pyLIMA_standards)

        model_guess_parameters = []
        for key_parameter in list(self.model.model_dictionnary.keys()):
            model_guess_parameters.append(
                getattr(fancy_parameters_guess, key_parameter))

        print(sys._getframe().f_code.co_name,
              ' : Initial parameters guess SUCCESS')
        return model_guess_parameters