Retrieve current weather observation.

async def observations(self):
        """Retrieve current weather observation."""
        observations = []

        raw_stations = await self.retrieve(url=API_OBSERVATION_STATIONS,
                                           headers={'Referer': 'http://www.ipma.pt'})
        if not raw_stations:
            return observations 

        raw_observations = await self.retrieve(url=API_OBSERVATION_OBSERVATIONS,
                                               headers={'Referer': 'http://www.ipma.pt'})
        if not raw_observations:
            return observations 

        Station = namedtuple('ObservationStation', ['latitude', 'longitude', 'stationID',
                                                    'stationName', 'currentObs'])

        Observation = namedtuple('Observation', ['temperature', 'humidity',
                                                 'windspeed', 'winddirection',
                                                 'precipitation', 'pressure',
                                                 'description'])

        last_observation = sorted(raw_observations.keys())[-1]

        for station in raw_stations:
            _station = raw_observations[last_observation][str(station.get('properties').get('idEstacao'))]

            if _station is None:
                continue

            _observation = Observation(
                _station['temperatura'],
                _station['humidade'],
                _station['intensidadeVentoKM'] if _station['intensidadeVentoKM'] != -99.0 else None,
                WIND_DIRECTION[WIND_DIRECTION_ID[_station['idDireccVento']]],
                _station['precAcumulada'] if _station['precAcumulada'] != -99.0 else None,
                _station['pressao'] if _station['pressao'] != -99.0 else None,
                "{} @ {}".format(station.get('properties').get('localEstacao'), last_observation),
                )

            _station = Station(
                station.get('geometry').get('coordinates')[1],
                station.get('geometry').get('coordinates')[0],
                station.get('properties').get('idEstacao'),
                station.get('properties').get('localEstacao'),
                _observation)

            observations.append(_station)
        return observations