input: Write a function to generate a series of plots and calculations based on input data from eval_spectrum.py and calibration.py. The main function should load the input data, perform calibration, calculate various values including thermal resistance, and generate plots showing absorbed power vs emitted power, absorbed power vs reflectivity, and dissipated power vs wavelength. It should also display the thermal resistance on the plot. The function should take no parameters and return no values, but it should print the maximum emission and thermal impedance during execution.
  assert main() == None
output: 
  def main():
      import eval_spectrum as es
      import calibration as cal
      import matplotlib.pyplot as plt
  
      # Load input data
      spectrum_data = es.load_spectrum_data()
      calibration_data = cal.load_calibration_data()
  
      # Perform calibration
      calibrated_data = cal.calibrate(spectrum_data, calibration_data)
  
      # Calculate thermal resistance
      thermal_resistance = cal.calculate_thermal_resistance(calibrated_data)
  
      # Calculate maximum emission
      max_emission = max(calibrated_data['emitted_power'])
      print(f"Maximum Emission: {max_emission}")
  
      # Calculate thermal impedance
      thermal_impedance = cal.calculate_thermal_impedance(calibrated_data)
      print(f"Thermal Impedance: {thermal_impedance}")
  
      # Generate plots
      plt.figure(figsize=(15, 5))
  
      # Plot 1: Absorbed Power vs Emitted Power
      plt.subplot(1, 3, 1)
      plt.plot(calibrated_data['absorbed_power'], calibrated_data['emitted_power'])
      plt.xlabel('Absorbed Power')
      plt.ylabel('Emitted Power')
      plt.title('Absorbed Power vs Emitted Power')
      plt.text(0.5, 0.5, f'Thermal Resistance: {thermal_resistance}', transform=plt.gca().transAxes, fontsize=12, verticalalignment='center', horizontalalignment='center')
  
      # Plot 2: Absorbed Power vs Reflectivity
      plt.subplot(1, 3, 2)
      plt.plot(calibrated_data['absorbed_power'], calibrated_data['reflectivity'])
      plt.xlabel('Absorbed Power')
      plt.ylabel('Reflectivity')
      plt.title('Absorbed Power vs Reflectivity')
  
      # Plot 3: Dissipated Power vs Wavelength
      plt.subplot(1, 3, 3)
      plt.plot(calibrated_data['wavelength'], calibrated_data['dissipated_power'])
      plt.xlabel('Wavelength')
      plt.ylabel('Dissipated Power')
      plt.title('Dissipated Power vs Wavelength')
  
      plt.tight_layout()
      plt.show()
  