def _resolve_point(
        self, method: str, stations: pd.DataFrame, alt: int, adapt_temp: bool
    ) -> None:
        """
        Project weather station data onto a single point
        """

        if self._stations.size == 0 or self._data.size == 0:
            return

        if method == "nearest":
            if adapt_temp:
                # Join elevation of involved weather stations
                data = self._data.join(stations["elevation"], on="station")

                # Adapt temperature-like data based on altitude
                data = adjust_temp(data, alt)

                # Drop elevation & round
                data = data.drop("elevation", axis=1).round(1)

            else:
                data = self._data

            if self.granularity == Granularity.NORMALS:
                self._data = data.groupby(level=["start", "end", "month"]).agg("first")

            else:
                self._data = data.groupby(
                    pd.Grouper(level="time", freq=self._freq)
                ).agg("first")

        else:
            # Join score and elevation of involved weather stations
            data = self._data.join(stations[["score", "elevation"]], on="station")

            # Adapt temperature-like data based on altitude
            if adapt_temp:
                data = adjust_temp(data, alt)

            # Exclude non-mean data & perform aggregation
            if not self.granularity == Granularity.NORMALS:
                excluded = data["wdir"]
                excluded = excluded.groupby(
                    pd.Grouper(level="time", freq=self._freq)
                ).agg("first")

            # Aggregate mean data
            if self.granularity == Granularity.NORMALS:
                data = data.groupby(level=["start", "end", "month"]).apply(
                    weighted_average
                )

                # Remove obsolete index column
                try:
                    data = data.reset_index(level=3, drop=True)
                except IndexError:
                    pass

            else:
                data = data.groupby(pd.Grouper(level="time", freq=self._freq)).apply(
                    weighted_average
                )

                # Drop RangeIndex
                data.index = data.index.droplevel(1)

                # Merge excluded fields
                data["wdir"] = excluded

            # Drop score and elevation
            self._data = data.drop(["score", "elevation"], axis=1).round(1)

        # Set placeholder station ID
        self._data["station"] = "XXXXX"

        # Set index
        if self.granularity == Granularity.NORMALS:
            self._data = self._data.set_index("station", append=True)
            self._data = self._data.reorder_levels(["station", "start", "end", "month"])
        else:
            self._data = self._data.set_index(
                ["station", self._data.index.get_level_values("time")]
            )

        # Set station index
        self._stations = pd.Index(["XXXXX"])

        Project weather station data onto a single point
        
meteostat/interface/meteodata.py