code: def add_vix(self, data):
      vix_df = self.download_data(
          ["vix"], self.start, self.end_date, self.time_interval
      )
      cleaned_vix = self.clean_data(vix_df)
      vix = cleaned_vix[["date", "close"]]
  
      df = data.copy()
      df = df.merge(vix, on="date")
      df = df.sort_values(["date", "tic"]).reset_index(drop=True)
  
      return df
  
file_path: FinRL/finrl/meta/data_processors/processor_wrds.py
imports: from __future__ import annotations
  import datetime
  import exchange_calendars
  import numpy
  import pandas
  import pytz
  import wrds
  from stockstats import StockDataFrame
label_desc: Use image node_id 8 for calling the WrdsProcessor obj's underlying member method code with example usage: obj.add_vix(data) and returns: df