input: 
  def plot_thermal_data(logfile: str, calib_folder: str) -> None:
      """
      This function performs a series of calculations and generates plots based on input data.
      Before running this script, ensure eval_spectrum.py and calibration.py are executed with
      appropriate measurements. The main function loads the input data, performs calibration, calculates
      various values, and generates plots showing absorbed power vs emitted power, absorbed power vs
      reflectivity, and dissipated power vs wavelength. Thermal resistance is also calculated and displayed
      on the plot. The script uses instructions from a separate text file for plot generation.
  
      >>> plot_thermal_data('../24_LL_ev/20150211_sample21-1-d6/spot333um.csv', '../24_LL_ev/20150204_calib_333um_s21-1-d6')
      # The function will generate plots and print thermal resistance in the terminal.
      """
  
output:     
      import pandas as pd
      import numpy as np
      import matplotlib.pyplot as plt
      import os
  
      # Load the logfile data
      data = pd.read_csv(logfile)
  
      # Load calibration data
      calib_files = [f for f in os.listdir(calib_folder) if f.endswith('.csv')]
      calib_data = pd.concat([pd.read_csv(os.path.join(calib_folder, f)) for f in calib_files])
  
      # Perform calibration
      data['calibrated_power'] = data['power'] * calib_data['calibration_factor'].mean()
  
      # Calculate absorbed power
      data['absorbed_power'] = data['power'] - data['reflected_power']
  
      # Calculate emitted power
      data['emitted_power'] = data['calibrated_power'] - data['absorbed_power']
  
      # Calculate reflectivity
      data['reflectivity'] = data['reflected_power'] / data['power']
  
      # Calculate dissipated power
      data['dissipated_power'] = data['absorbed_power'] - data['emitted_power']
  
      # Calculate thermal resistance
      thermal_resistance = data['dissipated_power'].mean() / data['emitted_power'].mean()
      print(f"Thermal Resistance: {thermal_resistance:.2f} K/W")
  
      # Plot absorbed power vs emitted power
      plt.figure(figsize=(10, 6))
      plt.scatter(data['absorbed_power'], data['emitted_power'], alpha=0.5)
      plt.xlabel('Absorbed Power (W)')
      plt.ylabel('Emitted Power (W)')
      plt.title('Absorbed Power vs Emitted Power')
      plt.grid(True)
      plt.show()
  
      # Plot absorbed power vs reflectivity
      plt.figure(figsize=(10, 6))
      plt.scatter(data['absorbed_power'], data['reflectivity'], alpha=0.5)
      plt.xlabel('Absorbed Power (W)')
      plt.ylabel('Reflectivity')
      plt.title('Absorbed Power vs Reflectivity')
      plt.grid(True)
      plt.show()
  
      # Plot dissipated power vs wavelength
      plt.figure(figsize=(10, 6))
      plt.scatter(data['wavelength'], data['dissipated_power'], alpha=0.5)
      plt.xlabel('Wavelength (nm)')
      plt.ylabel('Dissipated Power (W)')
      plt.title('Dissipated Power vs Wavelength')
      plt.grid(True)
      plt.show()
  