It can
import numpy as np
import arcpy
lat = np.arange(50, 40, -1., 'float')
lon = np.arange(-80, -70, 1., 'float')
lon, lat = np.meshgrid(lon, lat)
tbl = r"C:\GIS\testing_project\testing_project.gdb\equations"
arr = arcpy.da.TableToNumPyArray(tbl, "*")
eqs = arr['EQ']
fns = ["{}{}{}{}".format(*i) for i in arr[['PROB', 'DEC', 'TMIN', 'FORMAT']]]
a = arr['a']
b = arr['b']
c = arr['c']
arrs = [a[i] + b[i]*lat + c[i]*lon for i in range(len(a))]
I have replaced your lon and lat rasters with numpy arrays to demonstrate. They are formed from a 'meshgrid' using the sample ranges. They are shown below
The file names are simply put together from your spreadsheet using the ExcelToTable tool in Pro (map has one).
The table was converted to a numpy array (line 7).
You can slice out an equation to check if you want (line 😎
I pieced the bits together to form the file names (line 9)
The constants `a`, `b` `c` are similarly pulled from the array like the other columns
The final results are put together as individual rasters just using a list comprehension (line 13)
Here are some samples
lon
array([[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.],
[-80., -79., -78., -77., -76., -75., -74., -73., -72., -71.]])
lat
array([[50., 50., 50., 50., 50., 50., 50., 50., 50., 50.],
[49., 49., 49., 49., 49., 49., 49., 49., 49., 49.],
[48., 48., 48., 48., 48., 48., 48., 48., 48., 48.],
[47., 47., 47., 47., 47., 47., 47., 47., 47., 47.],
[46., 46., 46., 46., 46., 46., 46., 46., 46., 46.],
[45., 45., 45., 45., 45., 45., 45., 45., 45., 45.],
[44., 44., 44., 44., 44., 44., 44., 44., 44., 44.],
[43., 43., 43., 43., 43., 43., 43., 43., 43., 43.],
[42., 42., 42., 42., 42., 42., 42., 42., 42., 42.],
[41., 41., 41., 41., 41., 41., 41., 41., 41., 41.]])
a[20], b[20], c[20]
(151.33584980670224, 0.7443302423314689, 2.698509149397158)
arrs[20]
array([[-27.3, -24.6, -21.9, -19.2, -16.5, -13.8, -11.1, -8.4, -5.7, -3. ],
[-28.1, -25.4, -22.7, -20. , -17.3, -14.6, -11.9, -9.2, -6.5, -3.8],
[-28.8, -26.1, -23.4, -20.7, -18. , -15.3, -12.6, -9.9, -7.2, -4.5],
[-29.6, -26.9, -24.2, -21.5, -18.8, -16.1, -13.4, -10.7, -8. , -5.3],
[-30.3, -27.6, -24.9, -22.2, -19.5, -16.8, -14.1, -11.4, -8.7, -6. ],
[-31.1, -28.4, -25.7, -23. , -20.3, -17.6, -14.9, -12.2, -9.5, -6.8],
[-31.8, -29.1, -26.4, -23.7, -21. , -18.3, -15.6, -12.9, -10.2, -7.5],
[-32.5, -29.8, -27.1, -24.4, -21.7, -19. , -16.3, -13.6, -11. , -8.3],
[-33.3, -30.6, -27.9, -25.2, -22.5, -19.8, -17.1, -14.4, -11.7, -9. ],
[-34. , -31.3, -28.6, -25.9, -23.2, -20.5, -17.8, -15.1, -12.4, -9.7]])
LL = arcpy.Point(lon[0,0], lat[-1,0])
outname = "C:\\Temp\\{}".format(fns[20])
outname
'C:\\Temp\\pgead21n3.tif'
outraster = arcpy.NumPyArrayToRaster(arrs[20], LL, 1., 1.)
outraster.save(outname)
I missed some of the remaining terms, but you get the drift I am sure I have attached the raster as a *.tif