Esempio n. 1
0
    def _parse_sky_direction(self, sky_direction_definition):

        # Instance the SkyDirection class using the coordinates provided

        coordinates = {}

        if 'ra' in sky_direction_definition and 'dec' in sky_direction_definition:

            par_parser = ParameterParser('ra', sky_direction_definition['ra'])

            ra = par_parser.get_variable()

            ra.bounds = (0, 360)

            par_parser = ParameterParser('dec', sky_direction_definition['dec'])

            dec = par_parser.get_variable()
            dec.bounds = (-90, 90)

            coordinates['ra'] = ra
            coordinates['dec'] = dec

        elif 'l' in sky_direction_definition and 'b' in sky_direction_definition:

            par_parser = ParameterParser('l', sky_direction_definition['l'])

            l = par_parser.get_variable()
            l.bounds = (0, 360)

            par_parser = ParameterParser('b', sky_direction_definition['b'])

            b = par_parser.get_variable()
            b.bounds = (-90, 90)

            coordinates['l'] = l
            coordinates['b'] = b

        else: # pragma: no cover

            raise ModelSyntaxError("Position specification for source %s has an invalid coordinate pair. "
                                   " You need to specify either 'ra' and 'dec', or 'l' and 'b'."
                                   % self._source_name)

        # Check if there is a equinox specification

        if 'equinox' in sky_direction_definition:
            coordinates['equinox'] = sky_direction_definition['equinox']

        try:

            this_sky_direction = sky_direction.SkyDirection(**coordinates)

        except sky_direction.WrongCoordinatePair: # pragma: no cover

            raise ModelSyntaxError("Position specification for source %s has an invalid coordinate pair"
                                   % self._source_name)

        return this_sky_direction
Esempio n. 2
0
    def _parse_sky_direction(self, sky_direction_definition):

        # Instance the SkyDirection class using the coordinates provided

        coordinates = {}

        if "ra" in sky_direction_definition and "dec" in sky_direction_definition:

            par_parser = ParameterParser("ra", sky_direction_definition["ra"])

            ra = par_parser.get_variable()

            if ra.bounds == (None, None):
                ra.bounds = (0, 360)

            par_parser = ParameterParser("dec",
                                         sky_direction_definition["dec"])

            dec = par_parser.get_variable()

            if dec.bounds == (None, None):
                dec.bounds = (-90, 90)

            coordinates["ra"] = ra
            coordinates["dec"] = dec

        elif "l" in sky_direction_definition and "b" in sky_direction_definition:

            par_parser = ParameterParser("l", sky_direction_definition["l"])

            l = par_parser.get_variable()

            if l.bounds == (None, None):
                l.bounds = (0, 360)

            par_parser = ParameterParser("b", sky_direction_definition["b"])

            b = par_parser.get_variable()

            if b.bounds == (None, None):
                b.bounds = (-90, 90)

            coordinates["l"] = l
            coordinates["b"] = b

        else:  # pragma: no cover

            raise ModelSyntaxError(
                "Position specification for source %s has an invalid coordinate pair. "
                " You need to specify either 'ra' and 'dec', or 'l' and 'b'." %
                self._source_name)

        # Check if there is a equinox specification

        if "equinox" in sky_direction_definition:
            coordinates["equinox"] = sky_direction_definition["equinox"]

        try:

            this_sky_direction = sky_direction.SkyDirection(**coordinates)

        except sky_direction.WrongCoordinatePair:  # pragma: no cover

            raise ModelSyntaxError(
                "Position specification for source %s has an invalid coordinate pair"
                % self._source_name)

        return this_sky_direction