input: 
  def data_analysis_and_plotting(logfile: str, calib_folder: str) -> None:
      """This function performs a series of calculations and visualizations based on the input data. 
      It loads the input data, performs calibration, calculates various parameters, and generates several plots 
      including absorbed power vs emitted power, absorbed power vs reflectivity, and dissipated power vs wavelength. 
      Additionally, it calculates the thermal resistance and displays it on the plot. The instructions for the plot 
      are provided in a separate text file.
      
      >>> data_analysis_and_plotting('../24_LL_ev/20150211_sample21-1-d6/spot333um.csv', '../24_LL_ev/20150204_calib_333um_s21-1-d6')
      # output: Generates plots and prints thermal impedance values
      """
  
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 = [os.path.join(calib_folder, f) for f in os.listdir(calib_folder) if f.endswith('.csv')]
      calib_data = pd.concat([pd.read_csv(f) for f in calib_files])
  
      # Perform calibration
      data['calibrated_power'] = data['emitted_power'] * calib_data['calibration_factor'].mean()
  
      # Calculate absorbed power
      data['absorbed_power'] = data['emitted_power'] - data['reflected_power']
  
      # Calculate dissipated power
      data['dissipated_power'] = data['absorbed_power'] - data['calibrated_power']
  
      # Calculate thermal resistance
      thermal_resistance = data['dissipated_power'].mean() / data['emitted_power'].mean()
  
      # Plot absorbed power vs emitted power
      plt.figure(figsize=(10, 6))
      plt.plot(data['emitted_power'], data['absorbed_power'], 'bo-')
      plt.xlabel('Emitted Power')
      plt.ylabel('Absorbed Power')
      plt.title('Absorbed Power vs Emitted Power')
      plt.grid(True)
      plt.show()
  
      # Plot absorbed power vs reflectivity
      plt.figure(figsize=(10, 6))
      plt.plot(data['reflected_power'], data['absorbed_power'], 'ro-')
      plt.xlabel('Reflectivity')
      plt.ylabel('Absorbed Power')
      plt.title('Absorbed Power vs Reflectivity')
      plt.grid(True)
      plt.show()
  
      # Plot dissipated power vs wavelength
      plt.figure(figsize=(10, 6))
      plt.plot(data['wavelength'], data['dissipated_power'], 'go-')
      plt.xlabel('Wavelength')
      plt.ylabel('Dissipated Power')
      plt.title('Dissipated Power vs Wavelength')
      plt.grid(True)
      plt.show()
  
      # Display thermal resistance
      print(f'Thermal Resistance: {thermal_resistance:.2f}')
  