def get_stations(
        self,
        freq: str = None,
        start: datetime = None,
        end: datetime = None,
        model: bool = True,
    ) -> pd.DataFrame:
        """
        Get list of nearby weather stations
        """

        # Get nearby weather stations
        stations = Stations()
        stations = stations.nearby(self._lat, self._lon, self.radius)

        # Guess altitude if not set
        if self._alt is None:
            self._alt = stations.fetch().head(self.max_count)["elevation"].mean()

        # Captue unfiltered weather stations
        unfiltered = stations.fetch()
        if self.alt_range:
            unfiltered = unfiltered[
                abs(self._alt - unfiltered["elevation"]) <= self.alt_range
            ]

        # Apply inventory filter
        if freq and start and end:
            age = (datetime.now() - end).days
            if model is False or age > 180:
                stations = stations.inventory(freq, (start, end))

        # Apply altitude filter
        stations = stations.fetch()
        if self.alt_range:
            stations = stations[
                abs(self._alt - stations["elevation"]) <= self.alt_range
            ]

        # Fill up stations
        selected: int = len(stations.index)
        if selected < self.max_count:
            # Remove already included stations from unfiltered
            unfiltered = unfiltered.loc[~unfiltered.index.isin(stations.index)]
            # Append to existing DataFrame
            stations = pd.concat((stations, unfiltered.head(self.max_count - selected)))

        # Score values
        if self.radius:
            # Calculate score values
            stations["score"] = (
                (1 - (stations["distance"] / self.radius)) * self.weight_dist
            ) + (
                (1 - (abs(self._alt - stations["elevation"]) / self.alt_range))
                * self.weight_alt
            )

            # Sort by score (descending)
            stations = stations.sort_values("score", ascending=False)

        # Capture result
        self._stations = stations.index[: self.max_count]

        return stations.head(self.max_count)

        Get list of nearby weather stations
        
meteostat/interface/point.py