code: def data_from_cli(opts):
      gates = gates_from_cli(opts)
      psd_gates = psd_gates_from_cli(opts)
      instruments = opts.instruments if opts.instruments is not None else []
      strain_dict = strain_from_cli_multi_ifos(opts, instruments,
                                               precision="double")
      if not opts.gate_overwhitened:
          strain_dict = apply_gates_to_td(strain_dict, gates)
      if opts.psd_start_time and opts.psd_end_time:
          logging.info("Will generate a different time series for PSD "
                       "estimation")
          psd_opts = opts
          psd_opts.gps_start_time = psd_opts.psd_start_time
          psd_opts.gps_end_time = psd_opts.psd_end_time
          psd_strain_dict = strain_from_cli_multi_ifos(psd_opts,
                                                       instruments,
                                                       precision="double")
          logging.info("Applying gates to PSD data")
          psd_strain_dict = apply_gates_to_td(psd_strain_dict, psd_gates)
      elif opts.psd_start_time or opts.psd_end_time:
          raise ValueError("Must give --psd-start-time and --psd-end-time")
      else:
          psd_strain_dict = strain_dict
      stilde_dict = {}
      length_dict = {}
      delta_f_dict = {}
      low_frequency_cutoff_dict = low_frequency_cutoff_from_cli(opts)
      for ifo in instruments:
          stilde_dict[ifo] = strain_dict[ifo].to_frequencyseries()
          length_dict[ifo] = len(stilde_dict[ifo])
          delta_f_dict[ifo] = stilde_dict[ifo].delta_f
      psd_dict = psd_from_cli_multi_ifos(
          opts, length_dict, delta_f_dict, low_frequency_cutoff_dict,
          instruments, strain_dict=psd_strain_dict, precision="double")
      if opts.gate_overwhitened and opts.gate is not None:
          logging.info("Applying gates to overwhitened data")
          for ifo in gates:
              stilde_dict[ifo] /= psd_dict[ifo]
          stilde_dict = apply_gates_to_fd(stilde_dict, gates)
          for ifo in gates:
              stilde_dict[ifo] *= psd_dict[ifo]
      return strain_dict, stilde_dict, psd_dict