Supporting data for the effects of drying and milling treatments on estimates of foliar functional traits with VSWIR spectroscopy: leaf scans, processed spectra and replicate-pair differences
收藏资源简介:
Mill Test 2024 -- foliar spectroscopy, milling/drying comparison, and chemistry data release=============================================================================================Prepared: 2026-09-17; updated through 2026-11-03 (quality-control pass and review, taxonomicharmonization, assay mill-treatment basis, and corrections listed under "Data quality notes"below). This is the complete data record for the study: spectra, per-spectrum metadata, chemistry,the original instrument files, photographs, intermediate products and raw workbooks. A reducedcopy (spectra and per-spectrum metadata only) is also listed on EcoSIS for discoverability; thisrecord is the primary, citable source and the EcoSIS copy points back to it.Prepared by: Henry Frye, EnSpec Lab (Philip A. Townsend, PI), University ofWisconsin-MadisonData collection by: Annabelle Majerus (field, chlorophyll/LMA), Zach Breuer (field, ANKOM, particle size), Gabriela Donnangelo (phenolics), Henry Frye (field), Ethan Kanski (phenolics; fat/oil assay), Erin A. Pierce (phenolics supervision), Cecilia Vanden Heuvel (LMA/chlorophyll), Cole Willems (phenolics)Companion manuscript: "Effects of drying and milling treatments on estimatesof foliar functional traits with VSWIR spectroscopy" (full citation TBD)Companion code repository: https://github.com/EnSpec/MillTest What this is------------This dataset compares how two drying methods and three milling/grindingmethods affect VSWIR (visible/shortwave-infrared) reflectance spectra,spectrally-predicted foliar traits, and directly-measured leaf chemistry, for66 individual trees/shrubs/forbs/graminoids sampled from the Lakeshore NaturePreserve, Madison, WI, in 2024. Every individual was split, dried two ways,and each dried subsample was ground three ways, then scanned in reflectance;a subset of the material from each individual was also sent for wetchemistry, isotope, fiber, phenolic, and fat-content assays, and particle-size analysis. Sample design-------------66 samples total: 61 trees/shrubs across 11 species (used in the companionmanuscript's own analyses -- 6 broadleaf species x 5 individuals, plus 5conifer species at 6 individuals each and one (white pine, PIST) at 7), plus5 samples outside the manuscript's scope but included here as real data onreal individuals: 1 misidentified specimen (labeled honey locust/GLTR, asubstitute collection for an intended black locust replicate) and 4 samplesfrom an early, since-dropped attempt to add herbaceous growth forms to thestudy (2 forb, 2 graminoid). Treatments, applied to every individual: Drying: FF = freeze-dried (flash-frozen prior to lyophilization) OD = oven-dried Milling: BALL = ball mill SIXT = 60-mesh rotary mill (finer grind) TWEN = 20-mesh rotary mill (coarser grind) Each of the 6 drying x milling combinations was scanned in 6 spectral replicates per sample (a few samples have documented duplicate-scan sessions -- see "Data quality notes" below). Files in this release----------------------1. Mill24_spectra_jumpcorrected.csv ASD reflectance spectra: 2376 unique scans (one row per spectrum; the `spectra` column is the key used by the sidecar, item 2), with one column per wavelength, 350-2500 nm in 1 nm steps, reflectance on a 0-1 scale. The spectra have already been jump-corrected across the detector-overlap regions (additive correction at 1000 and 1800 nm, SpectralPredictR; see "How the spectral data was generated" below). Confirmed programmatically: every spectrum shows an exact match between the reflectance values on either side of both detector splices, which a boundary-matching jump correction produces and real (uncorrected) sensor noise essentially never does. For the uncorrected instrument output, use the original binary .asd files in DrySpec/ (item 13). Where a replicate set was scanned in two sessions, only the later-dated scan is included (see "Data quality notes"). Values are rounded to 7 decimal places. 2. spectral_metadata_sidecar.csv (and spectral_metadata_sidecar_with_qc_flags.csv -- see "Data quality checks" below for how these two relate) The primary per-spectrum metadata table (2376 rows, one per spectrum). Every other measurement in this release that has any per-sample or per-treatment resolution is already joined into this table, so most users will want to start here rather than the individual raw files below. Columns: - Identity/location: spectra, sample_name, species, species_code, growth_form, site, state, latitude, longitude, sample_year, sample_type, project, pi, affiliation - Treatment/provenance: mill_treatment, dry_treatment, replicate, measurement_datetime, measurement_person, grind_date, grind_person, instrumentation, instrument_serial, calibration, wavelengths, column_units, measurement_type, measurement - Taxonomic authority (per species; see "Taxonomic harmonization" below): scientific_name_wfo, scientific_name_authorship, family_wfo, taxonomic_status_wfo, wfo_taxon_id, wfo_backbone_version - Particle size (per sample x mill treatment; see item 5): particle_size_mean_um, _variance, _skew, _kurtosis - Isotope (per sample x drying treatment; ball-mill powder only, so populated on mill_treatment = BALL rows, NA on SIXT/TWEN; see item 6): d13C, d15N, carbon_mg_g, nitrogen_IRMS_mg_g ("IRMS" distinguishes this elemental-analyzer-derived %N, converted to mg/g, from the separate Brookside nitrogen_mg_g in the elemental panel below) - Total phenolic content (per sample x drying treatment; ball-mill powder, BALL rows only; item 7): phenolics_mg_g, phenolics_sd - Fiber assay / ANKOM (per sample x drying treatment; 20-mesh powder, TWEN rows only; item 8): nd_solubles_mg_g, hemicellulose_mg_g, cellulose_mg_g, lignin_recal_mg_g - Fat/oil content (per sample x drying treatment; ball-mill powder, BALL rows only; item 9): oil_content_mg_g, oil_mass_mg - Full elemental panel (per sample; item 10): nitrogen_mg_g, phosphorus_mg_g, magnesium_mg_g, potassium_mg_g, calcium_mg_g, sulfur_mg_g, boron_mg_g, iron_mg_g, manganese_mg_g, copper_mg_g, zinc_mg_g, aluminum_mg_g, sodium_mg_g - Fresh/dry mass and chlorophyll (per sample, tree-level, not treatment-specific; item 11): fresh_mass_g, dry_mass_g, water_content, chlorophyll_1 through chlorophyll_5 -- chlorophyll is reported as mg/m^2 leaf area (Opti-Sciences CCM-300 chlorophyll content meter, 5 replicate readings per individual), NOT on a dry- mass basis like the other chemistry fields in this table - Leaf area and leaf mass per area (per sample, tree-level; item 12): leaf_area_cm2, lma_g_m2 (= dry_mass_g / leaf_area_cm2 x 10000) All mg/g values are on a dry-mass basis, converted from whatever unit each lab originally reported (percent or ppm) for consistency across the whole table -- chlorophyll is the one exception, noted above. All chemistry/particle-size fields are blank (NA) for samples/treatments that assay wasn't run on -- see "Sample coverage" below for exactly how many samples each field covers. A blank is a real gap, not a zero. 3. predicted_traits/DimensionsDryTraitPredictions.csv Spectrally-predicted foliar traits (nitrogen, calcium, and 17 others) from a PLSR model (Wang et al. 2020 coefficients -- see full citation and DOI under "How the spectral data was generated" below), one row per spectrum. 4. field_data/ sample_info.csv: canonical per-individual metadata (species, coordinates, sampling date, fresh/dry mass, water content, chlorophyll readings) -- already joined into item 2, included separately for reference. sample_coordinates.csv: per-sample coordinates with their provenance. cross_project_sample_links.csv: nine of these trees are also sampled in a separate lab project (LSNP24); this table records which ones. raw_coordinates/: the field collection-point list and LSNP24 crown-center records the coordinates were checked against. 5. particle_size/ per_sample / summary CSVs, plus the raw Beckman Coulter LS 13320 laser-diffraction exports (raw_exports/), one file per sample x mill treatment (22 individuals; drying treatment isn't a factor here -- the assay was only run once per sample x mill treatment). The exports report the full volume-weighted particle-size distribution; mean/variance/skew/kurtosis are summarized in particle_size_per_sample.csv and joined into item 2. raw_exports_pilot_Jun13/ holds two early single-treatment protocol tests: real data, but not part of the main 22-individual campaign. 6. chemistry/isotope_mill_test.csv (cleaned Mill Test rows only; run on ball-milled powder) Stable isotope ratios (delta13C, delta15N vs. VPDB/Air) and %C/%N by dry combustion, via EA-IRMS (Thermo Scientific FlashSmart Elemental Analyzer coupled to a Thermo Fisher Delta Q IRMS), for 11 samples x 2 drying treatments. This was a small side-check on isotope stability across drying methods, not a manuscript-scope analysis. 7. chemistry/tpc_mill_test.csv (cleaned; run on ball-milled powder) Total phenolic content by the Folin-Ciocalteu assay, reported as gallic acid equivalents (GAE, mg/g), for 60 samples x 2 drying treatments. Method: Ainsworth & Gillespie (2007), https://doi.org/10.1038/nprot.2007.102. Our lab's specific implementation (the phenolics protocol) is published on protocols.io: https://doi.org/10.17504/protocols.io.e6nvwxeq7gmk/v1 8. chemistry/ankom_mill_test.csv (cleaned; run on 20-mesh powder, an assay requirement), plus ankom_blanks_mill_test.csv (batch blank-bag QC), ankom_sample_weights_mill_test.csv (the raw weights every fraction derives from) and ankom_reported_vs_recomputed.csv (the workbook's own reported values beside the recomputed ones) Sequential detergent fiber analysis (ANKOM fiber analyzer: NDF/ADF/ADL) giving neutral detergent solubles (cell contents, washed off in NDF), hemicellulose, cellulose, and recalcitrant lignin content, for 23 samples x 2 drying treatments. The four fractions in the cleaned file are RECOMPUTED directly from the raw bag weights and the batch's blank- bag correction, not read from the raw workbook's own formula columns -- see "Data quality notes" below for why. Interpretation of the fractions: the assay was run without the sodium sulfite and heat-stable alpha-amylase additives of the original Van Soest method. The NDF residue therefore still contains protein bound to the cell wall and residual starch, and hemicellulose (NDF - ADF) is a "hemicellulose plus residual protein and starch" estimate, not pure hemicellulose; it will read higher than a sulfite/amylase-treated determination, most of all in starch- or protein-rich tissue. Cellulose (ADF - ADL) and recalcitrant lignin (ADL residue) are unaffected by this choice. The column name hemicellulose_mg_g is kept for continuity. nd_solubles_mg_g = 100 - % NDF residue (x 10 for mg/g), i.e. the sample mass washed off in the neutral detergent step, and includes the blank-bag correction. (The lab's original protocol and workbook template omitted that correction from this one quantity; it is applied here.) Method: approach based on Van Soest, Robertson & Lewis (1991), https://doi.org/10.3168/jds.S0022-0302(91)78551-2; our specific protocol and reagents came from the lab behind Hobbie et al. (2012, Ecological Monographs), https://doi.org/10.1890/11-1600.1, which we also cite for this method. A protocols.io write-up of our lab's specific implementation is published on protocols.io: https://doi.org/10.17504/protocols.io.rm7vzwom5vx1/v1 9. chemistry/fat_assay_mill_test.csv (cleaned Mill Test rows only; run on ball-milled powder) Fat/oil content by solvent extraction, for 8 samples x 2 drying treatments. Method: sequential hexane extraction -- ground material is extracted 3 times with hexane (centrifuged each round to pellet the solid material), the pooled supernatant is dried under nitrogen, and the recovered oil is weighed to compute % oil content gravimetrically. See the approach used in a Bolling Lab (Dept. of Food Science, UW-Madison) publication, https://doi.org/10.1016/j.foodchem.2024.139432 -- this assay was conducted using Bolling Lab equipment access, acknowledged below. 10. chemistry/brookside_mill_test.csv (cleaned Mill Test rows only) Full elemental panel (N, P, Mg, K, Ca, S, B, Fe, Mn, Cu, Zn, Al, Na) by combustion/ICP at Brookside Laboratories, for 60 samples. Assayed once per individual from oven-dried, 20-mesh material only -- used in the manuscript as the shared ground truth that every drying/milling treatment's spectrally-predicted N and Ca gets compared against, not as a treatment-specific measurement. 11. field_data/sample_info.csv (see item 4) Fresh/dry mass and chlorophyll, already summarized into item 2. Fresh/dry mass (one measurement per individual, used for water content and, with item 12's leaf area, leaf mass per area) and chlorophyll content (5 replicate meter readings per individual). Not split by treatment -- collected once per tree to characterize the sample set overall. 12. chemistry/leaf_area_mill_test.csv Per-individual leaf area (cm^2) from scanned leaf images, for 52 samples -- some samples' leaf material was scanned in multiple pieces; the workbook's "Sheet1" already totals these per sample. Combined with item 11's dry mass to give leaf mass per area (lma_g_m2) in item 2. 13. Instrument files, photographs, intermediate products and raw workbooks (the folders below hold the larger and more specialized files that support items 1-12; nothing in them is needed to use the tables above) DrySpec/{FreezeDried,OvenDried}/<date>_<operator>/*.asd (2418 files) The original binary output of the ASD FieldSpec 3 spectrometer, one file per scan, named MILL24_<sample>_<dry>_<mill>_<replicate>.asd (e.g. MILL24_0001_FF_BALL_00000.asd), in the folder of the scanning session. These are UNCORRECTED instrument files: the spectra in item 1 have an additive jump correction applied at 1000 and 1800 nm (SpectralPredictR), which these do not. Seven sample x treatment combinations were scanned in two sessions about a month apart, so both sessions' files are present here; the later-dated scan is treated as final throughout the study and in item 1 (the earlier scan was likely a superseded re-run; the scanning log does not say so explicitly). Read with, e.g., the R package asdreader or spectrolab. LeafScans/<date>/*.jpg and LeafScans/PlantID/ (101 photographs) Photographs of the leaf material, by collection date, filenames keyed to the sample ID (e.g. MILL24_0040_039.jpg). Used for leaf-area measurement (see leaf_area_code/). PlantID/ holds one photograph of two grass samples (Setaria, samples 38 and 39) taken for species identification. leaf_area_code/leaf_area.ipynb The Jupyter notebook used to measure leaf area from the scanned leaf images (thresholds the scan to separate leaf from background and converts pixels to cm^2 using the scan's dpi). It was written in the EnSpec lab by Ting Zheng (the file was originally named leaf_area_approvedbyTing.ipynb) and was the version used by all lab members for leaf scans at the time of this study. Provided as used: its final cell is an example call on a test scan, with a path to be replaced by the user's own image folder and thresholds. The segmentation thresholds were set by hand, image by image, rather than fixed for the whole study, so the example values in the notebook are not the ones used for these scans. The per-sample areas it produced are summarized in raw_workbooks/Mill24_LMA.xlsx and, cleaned, in chemistry/leaf_area_mill_test.csv (item 12). spectral_intermediates/ (regenerable from item 1 with the code repository) SpectralPredictR_VN_jumpcorrected_spectra.csv: the SpectralPredictR vector-normalized output. SpectralPredictR_5nmresampled_spectra.csv: spectra resampled to 5 nm and vector-normalized, the input to the trait-prediction step. One row per spectrum; the first column is the spectrum identifier, equal to `spectra` in item 2. ReplicatePairDifferences/ (264 files) Difference spectra between treatments, for every sample (66) and four comparisons: FF_TWEN minus OD_TWEN (drying effect), OD_BALL minus OD_SIXT, OD_BALL minus OD_TWEN, OD_SIXT minus OD_TWEN (milling effects), computed as treatment 1 minus treatment 2 reflectance. Each file has 36 rows: all 6 x 6 pairings of the six replicate scans of each treatment, enumerated exhaustively (this is not a resampled or random draw). Columns X350-X2500 are the wavelengths in nm; sample_name, treatment1 and treatment2 identify the comparison. Produced by Workflow_Calculations/code/ReplicatePairDifferences.R. analysis_outputs/ (outputs of the manuscript analyses; each regenerated by a script in the code repository) spectral_difference/ Table 1 (spectral difference by region, with uncertainty), mean difference curves, particle size by growth form and the particle-size / growth-form regression. spectral_difference_vn/ Difference spectra on vector-normalized spectra (supplement). grind_variance/ Share of spectral variance attributable to grind, by wavelength. treatment_agreement/ Agreement of predicted traits with the oven-dried 20-mesh reference, break-even reference offsets, isotope pair offsets, and tables/figures. anova/ Bayesian ANOVA summaries, diagnostics (trace plots, posterior predictive checks), variance decomposition and figures, plus the two fitted brms model objects (calcium_model.rds, nitrogen_model.rds; about 280 MB each; read with readRDS() and the R package brms, fitted with brms 2.23.0 in R 4.4.1). Re-fitting takes several hours (Workflow_Analysis/Predicted_Trait_Analysis.R). maps/ Sample location map for the supplement. replicate_pair_differences/ Difference-spectrum figure for the main text. qc_review/qc_review_plots.pdf One page for each replicate set carrying a spectral shape flag (replicate angle or PCA): SNV spectra above reflectance, flagged scans in colour against grey comparison spectra. All flagged spectra were inspected and kept; the decisions and reasons are in qc/qc_review_decisions.csv. raw_workbooks/ (provenance of the cleaned chemistry tables in chemistry/) Ankom_Primary_Template_Zach_Mill{FF,OD}.xlsx: ANKOM fiber workbooks. CAUTION: the fiber fractions in these workbooks are spreadsheet formulas, and the freeze-dried workbook contains relative-row-reference errors (two sample rows read a neighbouring row's weights), which give one impossible hemicellulose value and one wrong lignin value. chemistry/ankom_mill_test.csv (item 8) recomputes all fractions directly from the raw bag weights and is the correct source; use these workbooks only for the raw weights. The workbooks' Percent_WashOff_NDF column (neutral detergent solubles, i.e. cell contents) was corrected in these copies: the lab template omitted the blank-bag correction, and each cell now reads ((BagTare x Correction_NDF + SampleWt) - Weight_After_NDF) x 100 / SampleWt, equal to 100 - the true % NDF residue. This is the quantity given as nd_solubles_mg_g in item 2. No other cell was changed. Note that Perc_Remaining_Post_NDF in the freeze-dried workbook still carries the row-reference error described above. Lab protocol: https://doi.org/10.17504/protocols.io.rm7vzwom5vx1/v1 Mill Test_{FF,OD}_TPC.xlsx and 08042026-FF BALL_GAE.xlsx / 07302026 - OD BALL_GAE.xlsx: total phenolic content (Folin-Ciocalteu) workbooks. The first pair covers the broadleaf samples; the second pair covers the conifer samples. Lab protocol: https://doi.org/10.17504/protocols.io.e6nvwxeq7gmk/v1 Mill24_LMA.xlsx: leaf area per sample from scanned leaf images (Sheet1 is the per-sample total; Sheet2 the per-scan breakdown). inventory_data_log_csv/: one CSV per sheet of the study's sample inventory and measurement log (sample inventory with grind and scan dates and operators, fresh/dry mass, chlorophyll, field sample inventory, species checklist, oven and bulk mill logs). An earlier equipment pilot sheet in the original workbook concerns other projects' samples and is not included. The raw isotope report, fat-assay workbook and Brookside lab log are not released: each is a lab log shared with other projects and contains unrelated samples, so only this study's own rows are released, in chemistry/. 14. taxonomy/ and qc/ taxon_harmonized_mill_test.csv (and two flag tables) -- see "Taxonomic harmonization". qc/ holds one CSV per quality-control check, the one-line-per-check summary (qc_check_summary.csv), the removal log, and the manual review decisions (qc_review_decisions.csv) -- see "Data quality checks". 15. MANIFEST_md5.txt: MD5 checksums of every other file in this record. How the spectral data was generated------------------------------------Dry, ground leaf material was scanned on an ASD FieldSpec 3 spectrometeragainst a Spectralon white-reference panel, following the drill-press-mountedplant-probe setup described in Serbin et al. (2014),https://doi.org/10.1890/13-2110.1, and our lab's standard protocol fordried/ground foliar spectroscopy: https://www.protocols.io/view/spectroscopy-of-dried-and-ground-foliar-material-j8nlk79zdg5r/v1Milling followed, depending on treatment: Ball mill (BALL): https://www.protocols.io/view/ball-milling-with-paint-shaker-261geqrbjg47/v1 Rotary mill (SIXT/TWEN): https://www.protocols.io/view/rotary-milling-ewov1ed3pgr2/v1Raw spectra had an additive jump correction applied at the 1000 nm and1800 nm detector splices and were resampled to 5 nm (SpectralPredictRpipeline, https://github.com/krkovach/SpectralPredictR) -- the same methodand splice convention as our lab's other dried/ground-leaf ASD releases(e.g. AVUELO, SHIFT).Predicted foliar traits (item 3) use the PLSR coefficients from Wang et al.(2020), https://doi.org/10.1111/nph.16711. Data quality notes--------------------- A few sample x treatment combinations have two dated scanning sessions on record (re-scans); the later-dated scan is treated as final throughout this release. (This is also enforced as a hard uniqueness check on the `spectra` column -- see "Data quality checks" below.)- Two particle-size export files have an internal GroupID that doesn't match their filename (a rename-after-export artifact, not bad data) -- the filename is authoritative; the mismatch is kept as a provenance flag in the raw file, not used to exclude it.- The isotope report, the fat/oil-assay workbook, and the Brookside elemental-panel log are each shared across multiple, unrelated projects in our lab -- the raw files as originally exported contain samples that are NOT part of this study. Only this study's own rows have been pulled into the cleaned files in chemistry/ and joined into the sidecar; the raw files are not released.- One grind date was corrected: MILL24_0032 (freeze-dried, 60-mesh) is logged as ground 2024-02-07, six months before the plants were collected. It is recorded here as 2025-02-07 (a year typo: every other freeze-dried 60-mesh grind falls between 2025-02-03 and 2025-02-25, and 2025-02-07 was a grinding day). The grinder could not confirm the exact date. The freeze-dried ball-mill grind date for the same sample is not recorded and is left blank.- Assay values in the sidecar sit only on the rows of the mill treatment the assay was run on (isotope, total phenolics and fat/oil on ball-milled powder; ANKOM on 20-mesh powder), and are blank on the other mill treatments' rows. The Brookside elemental panel (oven-dried, 20-mesh powder) is attached to every treatment of the same individual as a common reference.- The ANKOM fiber workbooks compute hemicellulose/cellulose/lignin as spreadsheet formulas over the raw bag weights. Two cells in the FF workbook had a relative row reference that had shifted by one row (a copy/fill-handle slip), which produced one impossible negative hemicellulose value (caught and corrected at the source workbook) and one plausible-looking but wrong lignin value, 11.6 mg/g off, that no bounds or comparison check could have caught on its own. Found by recomputing every reported fraction directly from the raw weights and comparing -- see "Data quality checks" below. The cleaned file in this release (item 8) carries the recomputed values throughout, not the raw workbook's own formula output. Data quality checks---------------------This release went through a quality-control pass built for this deposit andshared with the rest of our lab's data releases(https://github.com/EnSpec/enspec-qc, public). Two products ship: - spectral_metadata_sidecar.csv -- the plain data table described above. - spectral_metadata_sidecar_with_qc_flags.csv -- the SAME data, plus four added columns that separate two kinds of flag: spectral_flag / n_spectral_flags: checks about that one scan (spectral shape, detector, reflectance-range checks). Empty / 0 if none. 29 spectra (1.2%) carry one. trait_flag / n_trait_flags: checks about a measured value on the tree (assay values, particle size, tree-level measurements, literature ranges). These are properties of the tree or tree x treatment, so a flag is repeated on every spectrum of that tree: one flagged tree marks up to 36 spectra. 60 of the 66 trees carry at least one trait flag, because roughly 40 checks run on small groups (about five trees per species); this does not mean the spectra are poor, and the trait flags say nothing about scan quality. This is not a filtered or different dataset; every row in the plain sidecar is present here too, just with the advisory columns added. Most of what is flagged is not wrong -- see below.Full outputs, including one CSV per check with the offending value and whatit was compared against, are in qc/ (qc_check_summary.csv for aone-line-per-check summary; removal_log.csv for the (empty, on this release)list of anything actually dropped). Policy: almost everything here is a FLAG, not a removal -- a flag means"worth a second look", not "wrong". Only three conditions remove dataoutright: a reflectance value at 350 nm above 0.9 (physically impossible fordry leaf powder -- means the white reference or an empty sample holder wasmeasured instead of the sample; did not occur in this release), a meanreflectance over 1100-1300 nm below 0.3 (dry leaf powder is bright there, sothis means the probe was not on a sample; the lowest value in this releaseis 0.66, so it did not occur either), and a trait valueoutside a physically-impossible range (e.g. a negative mass fraction; the onecase on this release, described above, was corrected at the source ratherthan dropped). A separate, much larger set of literature-range comparisons(TRY database, Kattge et al. 2020) is FLAG-ONLY and never removes anything --this lab works with a wide range of material, and a real value outside acompiled literature range is not surprising on its own; the flags exist topoint a user at values worth a second look, not to declare them wrong. Noliterature range is applied to total phenolic content. The only TRY data for"leaf phenols content per dry mass" come from two studies that are notcomparable to this assay: one measured Folin-Ciocalteu phenolics against atannic-acid standard on tropical trees (median 11.6 mg/g), the other (fivetemperate species, method not stated) reports values around 0.5 mg/g. Oursare Folin-Ciocalteu gallic-acid equivalents (median 28.3 mg/g, range1.4-108.6 mg/g), so neither range says what a plausible value is. Phenolicsare instead checked for agreement among the assay's own replicatemeasurements (a replicate coefficient of variation above 10% is flagged).Group-level outlier checks (a value far from the rest of its group, by robustz-score; threshold 5, or 8 for the micronutrients B, Fe, Mn, Cu, Zn, Al andNa, which vary far more among trees) are advisory: most flagged values arereal variation among individuals rather than errors. A flagged hemicelluloseor chlorophyll value may be a genuine measurement problem (for example a leafclose to senescence, or a probe not seated on the leaf).The two spectral shape checks (each scan's spectral angle to the most typicalof its own replicate scans, and a PCA-based review flag) are computed onstandard-normal-variate (SNV) transformed spectra over 400-2450 nm, so theyrespond to differences in spectral shape rather than the brightnessdifferences that particle size and packing put between scans. The releasedspectra themselves are not transformed.All spectra flagged by these two checks (70 spectra, including every scan ofthe replicate sets flagged between samples) were inspected by hand on SNV andreflectance plots and kept, to preserve the natural variation amongreplicates that this study measures. Flags remain in the QC columns so userswith a different purpose, such as trait mapping, can exclude them. Theper-spectrum decisions and reasons are in qc/qc_review_decisions.csv. Taxonomic harmonization--------------------------Species names entered in the field (as "Common Name (Scientific name)"strings) were resolved against the World Flora Online (WFO) statictaxonomic backbone (version 2026.6,https://www.worldfloraonline.org/downloadData), using the same sharedharmonization module linked above. All 14 species in this release matchedan Accepted WFO name. One entered name was a synonym: Phytolacca decandra(American Pokeweed, sample type PHDE) resolves to its WFO-accepted name,Phytolacca americana -- both names are retained in the sidecar(species/species_code vs. scientific_name_wfo) rather than the entered namebeing silently overwritten. Family placements follow current WFO/APGtreatment, which differs from older floras for a few genera in this release(e.g. Acer is placed in Sapindaceae, not the older Aceraceae).WFO publishes no machine-readable index of its own release history, socurrency of the backbone version used here could not be verifiedprogrammatically; treat scientific_name_wfo as current as of 2026-09-24 butconfirm against a newer backbone if precision matters for your use.taxonomy/taxon_harmonized_mill_test.csv is the standalone per-speciesversion of this table, included as its own reference file. Sample coverage----------------Of the 66 samples in this release: spectra cover all 66; particle sizecovers 22; isotope covers 11; total phenolic content covers 60; fiberassay (ANKOM) covers 23; fat/oil content covers 8; the full elemental panel(Brookside) covers 60; chlorophyll covers 62; fresh/dry mass and watercontent cover 52; leaf area and leaf mass per area cover 52; scientificname / taxonomic authority covers all 14 species (66 samples). Contact-------Henry Frye (hfrye2@wisc.edu, EnSpec / Townsend Lab, UW-Madison) forquestions about this dataset or to request additional detail on any of theassays above. Acknowledgements needed when using this data-----------------------------------------------Isotope data (item 6): "This research was conducted using the Isotope RatioMass Spectrometry Core Facility at the Biotechnology Center of theUniversity of Wisconsin-Madison, supported by the Shared InstrumentationGrant Program of the National Institutes of Health under award number1S10OD036349-01. The content is solely the responsibility of the authorsand does not necessarily represent the official views of the NationalInstitutes of Health." Fat/oil content (item 9): assay conducted using equipment access from theBolling Lab, Dept. of Food Science, University of Wisconsin-Madison. USDA facility use (approved wording, Kevin, 2026-09-21): "We thank theUSDA Dairy Forage Research Center for the use of its facilities andequipment." See the companion manuscript's Acknowledgements section for full funding, facility, and personnelacknowledgements. AI use disclosure-----------------The analysis code, the quality-control and taxonomic-harmonization tooling, and the documentationfor this record (including this README) were developed with assistance from Claude (Anthropic;Claude Opus 5, September 2026, and Claude Sonnet 5.5, October-November 2026), used through ClaudeCode for code review, debugging, data-processing pipeline design, and editorial support. Allmeasurements in this record were made by the authors and collaborators in the laboratory; no datavalues were generated by AI. All code and text were reviewed and run by the authors, and AI-suggestedchanges were accepted only after inspection and after the analyses reproduced prior results.



