Thanks to @PearsonArtPhoto's comment data with 1 cm^-1 wavenumber resolution is available in the link labeled MODTRAN data
here: https://www.nrel.gov/grid/solar-resource/spectra.html
Here's a quickie plot and script for the downloaded ASCII data.
There are six columns of spectral intensity data (Watts/m^2/nm) with labels 'MCebKur', 'MChKur', 'MNewKur', 'MthKur', 'MoldKur', 'MODWherli_WMO'. The plot shows them to be very similar in the thermal IR (not surprising) and differ substantially in the visible and UV where differences in the spectrometers will show up in the region rich with spectral emission and absorption lines. This is illustrated in the second plot, showing a randomly chosen zoom in on a few nanometers of visible light, and the Fraunhofer "A" line.


import numpy as np
import matplotlib.pyplot as plt
fname = 'AllMODEtr MODTRAN.txt' # MODTRAN data https://www.nrel.gov/grid/solar-resource/spectra.html
with open (fname, 'r') as infile:
lines = infile.readlines()
lines = [line.split() for line in lines[19:-1]] # skip a few lines with missing data
print('line lengths: ', set([len(line) for line in lines]))
data = [[float(x) for x in line] for line in lines]
data = np.array(zip(*data))
print('data.shape: ', data.shape)
# data[0]: wavenumber (cm^-1)
# data[1]: wavelength (nm)
# data[2:8] MCebKur, MChKur, MNewKur, MthKur, MoldKur, MODWherli_WMO
labels = 'MCebKur', 'MChKur', 'MNewKur', 'MthKur', 'MoldKur', 'MODWherli_WMO'
wavelength = data[1]
if True:
plt.figure()
plt.subplot(2, 1, 1)
for (thing, label) in zip(data[2:], labels):
plt.plot(wavelength, thing)
plt.xlabel('wavelength (nm)', fontsize=16)
plt.ylabel('Watts/m^2/nm', fontsize=16)
plt.yscale('log')
plt.xscale('log')
plt.xlim(190, 2E+05)
plt.subplot(2, 1, 2)
n700 = np.argmax(wavelength > 700)
for (thing, label) in zip(data[2:], labels):
plt.plot(wavelength[:n700], thing[:n700])
plt.xlabel('wavelength (nm)', fontsize=16)
plt.ylabel('Watts/m^2/nm', fontsize=16)
plt.yscale('log')
# plt.xscale('log')
plt.xlim(190, wavelength[n700])
plt.show()
if True:
plt.figure()
plt.subplot(2, 1, 1)
n1 = np.argmax(wavelength > 516.5)
n2 = np.argmax(wavelength > 519.5)
for (thing, label) in zip(data[2:], labels):
plt.plot(wavelength[n1:n2], thing[n1:n2], label=label)
plt.xlabel('wavelength (nm)', fontsize=16)
plt.ylabel('Watts/m^2/nm', fontsize=16)
# plt.yscale('log')
# plt.xscale('log')
plt.xlim(wavelength[n1], wavelength[n2])
# plt.legend()
plt.subplot(2, 1, 2)
n1 = np.argmax(wavelength > 757)
n2 = np.argmax(wavelength > 760)
for (thing, label) in zip(data[2:], labels):
plt.plot(wavelength[n1:n2], thing[n1:n2], label=label)
plt.xlabel('wavelength (nm)', fontsize=16)
plt.ylabel('Watts/m^2/nm', fontsize=16)
# plt.yscale('log')
# plt.xscale('log')
plt.xlim(wavelength[n1], wavelength[n2])
plt.title('Fraunhoffer "A" line')
# plt.legend()
plt.show()