def _init_time_series(
        self,
        loc: Union[pd.DataFrame, Point, list, str],  # Station(s) or geo point
        start: datetime = None,
        end: datetime = None,
        model=True,  # Include model data?
        flags=False,  # Load source flags?
    ) -> None:
        """
        Common initialization for all time series, regardless
        of its granularity
        """

        # Set list of weather stations based on user
        # input or retrieve list of stations programatically
        # if location is a geographical point
        if isinstance(loc, pd.DataFrame):
            self._stations = loc.index
        elif isinstance(loc, Point):
            stations = loc.get_stations("daily", start, end, model)
            self._stations = stations.index
        else:
            if not isinstance(loc, list):
                loc = [loc]
            self._stations = pd.Index(loc)

        # Preserve settings
        self._start = start if self._start is None else self._start
        self._end = end if self._end is None else self._end
        self._model = model
        self._flags = flags

        # Get data for all weather stations
        self._data = self._get_data()

        # Fill columns if they don't exist
        for col in self._processed_columns:
            if col not in self._data.columns:
                self._data[col] = pd.NA
                self._data[col] = self._data[col].astype("Float64")
                self._data[f"{col}_flag"] = pd.NA
                self._data[f"{col}_flag"] = self._data[f"{col}_flag"].astype("string")

        # Reorder the DataFrame
        self._data = self._data[
            self._processed_columns + with_suffix(self._processed_columns, "_flag")
        ]

        # Remove model data from DataFrame
        if not model:
            self._filter_model()

        # Conditionally, remove flags from DataFrame
        if not self._flags:
            self._data.drop(
                with_suffix(self._processed_columns, "_flag"),
                axis=1,
                errors="ignore",
                inplace=True,
            )

        # Interpolate data spatially if requested
        # location is a geographical point
        if isinstance(loc, Point):
            self._resolve_point(loc.method, stations, loc.alt, loc.adapt_temp)

        # Clear cache if auto cleaning is enabled
        if self.max_age > 0 and self.autoclean:
            self.clear_cache()

        Common initialization for all time series, regardless
        of its granularity
        
meteostat/interface/timeseries.py