## Experimental Design

Field experiments were carried out at the Texas AgriLife Experiment Stationed in Burleson County, Texas in the summer 2020 and 2021 growing seasons. Planting dates were 17 March 2020 and 29 March 2021. 104 maize hybrids were grown in trial 1, 303 hybrids in trial 2, and 102 hybrids in trial 3 were grown in 2020. 112 maize hybrids were grown in trial 4, 100 maize hybrids in trial 5, and 100 maize hybrids in trial 6 were grown in 2021 (Supplementary Data 1). The genetic origins of these hybrids were diverse, but elite, and selected from the Texas A&M maize breeding and genetics program. A randomized complete block design was employed with a range and row grid layout in which two replications (reps) were used for with 1,040 plots in 2020 and 600 plots in 2021.

Ranges corresponded to horizontal gridlines (lines perpendicular to the tractor rows) and rows corresponded to vertical gridlines (lines parallel to the tractor rows). Each plot had two adjacent rows of the same variety. Ranges were 8 meters in length and rows were separated by 0.8 meters. In 2020, three populations of interest were grown in dryland (without irrigation) conditions, while three 2021 populations of interest were grown in furrow-irrigated conditions.

## Field-based High Throughput Phenotyping and Image Processing

Images were captured using a quadcopter UAS (DJI Phantom 4 Pro v2.0) with a 1-inch 20-megapixel CMOS RGB sensor. Field images (orthomosaics) were created using Agisoft PhotoScan (Agisoft LLC, St. Petersburg, Russia). To create the best quality orthomosaics, 90 percent image overlap was used when meshing. UAS mosaics of sufficient quality were obtained 13 and 17 times for the 2020 and 2021 trials respectively. Flight dates in both calendar format and days after planting (DAP) are in Table 1.

Table 1

flight times in 2020 and 2021. Flight times were given as calendar dates and corresponding days after planting (DAP) in parentheses.

2020 flight times |

April | May | June | July |

3rd (17) | 8th (22) | 16th (30) | 20th (34) | 28th (42) | 15th (59) | 18th (62) | 5th (80) | 11th (86) | 16th (91) | 20th (95) | 7th (112) | 12th (117) |

2021 flight times |

April | May | June | July |

27th (29) | 6th (38) | 12th (44) | 18th (50) | 27th (59) | 30th (62) | 2nd (65) | 6th (69) | 13th (76) | 15th (78) | 21st (84) | 1st (94) | 10th (103) | 16th (109) | 23rd (116) | 27th (120) | 29th (122) |

## Data Extraction from Remotely Sensed Images

Populations of interest were assessed using QGIS geospatial data software (QGIS Development Team, 2021). Data extraction was carried out in RStudio (RStudio Team, 2021). After orthomosaic cropping, a plot-labeled grid file (shapefile) was created and overlaid in QGIS using *UAStools* such that all plots were labeled according to range, row, and pedigree based on field maps for the 2020 and 2021 growing seasons25. Vegetation indices (VIs) were extracted using the *FIELDimageR* package26. An overview of the VI extraction protocol used is listed here: 1) to remove noise before extraction, soil was cropped out of the orthomosaic using the *FIELDimageR::fieldmask()* function, 2) VIs were defined in *FIELDimageR::fieldindex()* function, 3) extraction of VIs was performed within boundaries defined by the shapefile using the *FIELDimageR::fieldInfo()* function. All 36 VIs in this study have been provided in Supplementary Table 1 alongside respective references.

## Temporal Phenotypic Data

A fully random fit model was constructed in *lme4* in R with the restricted maximum likelihood approach used for predicting variance component estimation and temporal best linear unbiased predictors (TBLUPs) for each maize hybrid as explained in Adak et al., 20214. Range, row, and replicate were also treated as nested model terms to account for temporal field spatial variation.

A nested model design was used to predict TBLUPs of VIs for both 2020 and 2021, denoted by equation 1 below:

$${Y}*{ijklm}=\mu +{T}*{i}+{H}*{i\left(j\right)}+{Range}*{i\left(k\right)}+{Row}*{i\left(l\right)}+{Rep}*{i\left(m\right)}+{\varepsilon }_{ijklm} \left(Equation 1;Eq.1\right)$$

*Y* signifies each VI observation of each maize hybrid at each time point *i*, given as DAP; *µ* signifies the grand mean; *T* signifies the effect of each flight date *i* in DAP (*i* in 2020: 17, 22…117; *i* in 2021: 29, 38…122); *H* signifies the effect of each maize hybrid *j* within each flight date *i*; *Range* signifies the effect of each range *k* within each flight date *i*; *Row* signifies the effect of each row *l* within each flight date *i*; *Rep* signifies the effect of each replication *m* within each flight date *i*; and *ε* (σ2*error*) signifies the combined error accounting for residuals of all aforementioned variance components.

Temporal repeatability was calculated according to Equation 2:$$\text{T}\text{e}\text{m}\text{p}\text{o}\text{r}\text{a}\text{l} \text{r}\text{e}\text{p}\text{e}\text{a}\text{t}\text{a}\text{b}\text{i}\text{l}\text{i}\text{t}\text{y}=\frac{{H}*{i\left(j\right)}}{{H}*{i\left(j\right)}+\frac{{\varepsilon }_{ijklm}}{no. of reps}}Equation 2;Eq. 2$$

A phenomic data matrix was created by merging TBLUPs of all vegetation indices belonging to each maize hybrid for 2020 and 2021. Phenomic data is attached as **Supplementary Data 1** in this study. In the phenomic data of both years, each column header included VI and days after planting (VI_DAP).

Predicted Variables This study was conducted to predict southern rust severity and senescence progression. Rust was scored in the field on 26 and 27 July 2021 using the three trials (4, 5 and 6) in 2021. Rust was scored using a 0 to 100 scale, with 0 representing 0% leaf coverage and 100 representing complete leaf coverage of rust pustules. An approximate visual guide to percentages is detailed in Figure 1.

Senescence scores were annotated twice for 2020 using two orthomosaics corresponding to the last two flight dates in 2020 (7 and 12 July: 112 and 117 DAP) and for 2021 using the last four orthomosaics generated in 2021 (16, 23, 27, and 29 July: 109, 116, 120 and 122 DAP), made possible by high-resolution afforded by low flight elevation (25 m). After shapefile overlay in QGIS, senescence scores were annotated visually using a 0 to 5 scale based on percentage of tissue death, with 0 representing no signs of senescence and 5 representing complete senescence (Figure 2).

For pedigree values of senescence predicted as variables in phenomic prediction models, *Eq. 1* was used by replacing the flight component with the time component containing two and four dates of scoring senescence for each trial in 2020 and 2021 respectively. Similarly, to predict the pedigree values of Southern rust to use as predicted variables in phenomic prediction models in 2021, *Eq. 1* was run without the flight component, for rust, flowering times (days to anthesis and silking; DTA and DTS), three types of terminal height measurements (from ground level to tip of tassel, flag leaf collar, and shank of first ear; PHT, FHT, EHT respectively) and yield (t/ha) to predict the pedigree values for each hybrid in each trial in each year.

Grain filling time was calculated as days between DTA and days to senescence, as estimated by a linear model. In order to calculate the days to senescence, (i) a linear model of senescence scores (Y axis) over dates (X axis: in unit of DAP) used for senescence scoring for each pedigree in each trial in each year was fit; (ii) linear models of each pedigree were then constructed and used to predict the three different senescence times where senescence scores for each line were set equal to 3, 4 or 5 were used as response; (iii) lastly, DTA of each pedigree was subtracted from the three different senescence times of each pedigree to calculate three different grain fill times indicating by grain_fill(3), grain_fill(4) and grain_fill(5). These predicted days to senescence scores were given in Supplementary Data 1.

Temporal repeatability was calculated for senescence and repeatability was calculated for rust, flowering times, heights, and yield using *Eq. 2.* Correlation coefficients were calculated among flowering times, plant heights, senescence scores, rust, yield, and grain filling times in both years using *ggcorrplot* package in R.

Phenomic Prediction Models

In the phenomic prediction, rust and two senescence scores belonging to 2020 and four senescence sores in 2021 were predicted using the phenomic data of 2020 and 2021. Phenomic prediction, where a machine learning model uses patterns assembled from training data where pedigree is provided alongside predictors to estimate performance of untested pedigrees, was conducted using phenomic data from 2020 and 2021 with eight machine learning algorithms in the *Caret* package in R. Beginning with an iterative procedure, data split was partitioned as 70 and 30 percent training and test, respectively in each of 500 bootstraps. Second, phenomic prediction accuracies were obtained between true breeding values (TBVs) and phenotypically estimated breeding values (PEBVs) in each bootstrap. As a result, 500 prediction accuracies were obtained for each phenomic prediction model, and prediction accuracies were evaluated in contrasts using student’s *t*-tests.

Within the *caret::train()* function, eight machine learning regression models used for phenomic predictions were defined as follows: method in *caret::train()* function was set “*lm*” for linear regression, “*glmnet*” for ridge, lasso, and elastic net, “*rf*” was set for random forest regression, “*svmLinear*” was set for support vector machine regression with linear kernel, “*svmR*” was set for support vector machine regression with radial kernel, “*pls*” was set for partial least squares regression, and “*knn*” was set for k-nearest neighbors regression. Alpha was set at 0 for ridge regression, 1 for lasso, searched between 0-1 for elastic net using the *expand.grid()* function. The code used in this analysis is viewable at [

https://github.com/alperadak/phenomic-prediction-/blob/main/Phenomic%20prediction

].

*Ntree* was set at 1000, while

*mtry* was searched using the

*expand.grid()* function to find optimal

*mtry* number in the random forest regression. To find the optimal

*cost* value (with the lowest root mean squared error),

*expand.grid()* was used in in support vector machine regressions.

*Tunelength* was set at 100 in both partial least square regression and k-nearest neighbors algorithm to find the optimal number of principal components and number of

*k*, respectively. Variable importance scores were obtained using the

*Lasso* algorithm for each predicted variable in both years.