code: def fetch_raw_data(sql, connection, geometry):
      
      tmp_dc = {}
      weather_df = pd.DataFrame(
          connection.execute(sql).fetchall(), columns=[
              'gid', 'geom_point', 'geom_polygon', 'data_id', 'time_series',
              'dat_id', 'type_id', 'type', 'height', 'year', 'leap_year']).drop(
          'dat_id', 1)
  
      # Get the timezone of the geometry
      tz = tools.tz_from_geom(connection, geometry)
  
      for ix in weather_df.index:
          # Convert the point of the weather location to a shapely object
          weather_df.loc[ix, 'geom_point'] = wkt_loads(
              weather_df['geom_point'][ix])
  
          # Roll the dataset forward according to the timezone, because the
          # dataset is based on utc (Berlin +1, Kiev +2, London +0)
          utc = timezone('utc')
          offset = int(utc.localize(datetime(2002, 1, 1)).astimezone(
              timezone(tz)).strftime("%z")[:-2])
  
          # Get the year and the length of the data array
          db_year = weather_df.loc[ix, 'year']
          db_len = len(weather_df['time_series'][ix])
  
          # Set absolute time index for the data sets to avoid errors.
          tmp_dc[ix] = pd.Series(
              np.roll(np.array(weather_df['time_series'][ix]), offset),
              index=pd.date_range(pd.datetime(db_year, 1, 1, 0),
                                  periods=db_len, freq='H', tz=tz))
      weather_df['time_series'] = pd.Series(tmp_dc)
      return weather_df
docs: Fetch the coastdat2 from the database, adapt it to the local time zone
      and create a time index.