code: def from_string(psd_name, length, delta_f, low_freq_cutoff):
      
  
      # check if valid PSD model
      if psd_name not in get_psd_model_list():
          raise ValueError(psd_name + ' not found among analytical '
                           'PSD functions.')
  
      # if PSD model is in LALSimulation
      if psd_name in get_lalsim_psd_list():
          lalseries = lal.CreateREAL8FrequencySeries(
              '', lal.LIGOTimeGPS(0), 0, delta_f, lal.DimensionlessUnit, length)
          try:
              func = lalsimulation.__dict__[
                                          _name_prefix + psd_name + _name_suffix]
          except KeyError:
              func = lalsimulation.__dict__[_name_prefix + psd_name]
              func(lalseries, low_freq_cutoff)
          else:
              lalsimulation.SimNoisePSD(lalseries, 0, func)
          psd = FrequencySeries(lalseries.data.data, delta_f=delta_f)
  
      # if PSD model is coded in PyCBC
      else:
          func = pycbc_analytical_psds[psd_name]
          psd = func(length, delta_f, low_freq_cutoff)
  
      # zero-out content below low-frequency cutoff
      kmin = int(low_freq_cutoff / delta_f)
      psd.data[:kmin] = 0
  
      return psd
docs: Generate a frequency series containing a LALSimulation PSD specified
      by name.
  
      Parameters
      ----------
      psd_name : string
          PSD name as found in LALSimulation, minus the SimNoisePSD prefix.
      length : int
          Length of the frequency series in samples.
      delta_f : float
          Frequency resolution of the frequency series.
      low_freq_cutoff : float
          Frequencies below this value are set to zero.
  
      Returns
      -------
      psd : FrequencySeries
          The generated frequency series.