{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2606-21179","title":"Rejections Based on Predictive Uncertainty Enable Reliable Routine Soil Spectroscopy","arxiv_id":"2606.21179","date":"2026-06-19","proceeding":null,"authors":["Jonas Schmidinger","Robin Gebbers","Marc-Olivier Gasser","Viacheslav Barkov","G. Mick Wu","Viacheslav I. Adamchuk"],"abstract":"Soil properties relevant to agricultural and environmental applications are conventionally measured using elaborate laboratory methods involving physical and chemical processing. While highly accurate, these conventional methods are costly and time-consuming. In contrast, optical spectroscopy paired with machine learning enables rapid and cost-effective predictions of multiple soil properties. However, spectroscopic modelling is often considered unreliable, as the predictive accuracy varies between soil properties and individual samples. To balance this trade-off between cost and reliability, we introduce reject-to-remeasure: an AI-based measurement framework that combines probabilistic modelling with uncertainty-guided rejection. In this framework, soil samples are first analysed using spectroscopy, after which predictions are rejected if their predictive uncertainty exceeds predefined quality constraints. Rejected samples are subsequently remeasured using conventional laboratory procedures. On a regional visible-near-infrared spectral soil library from Québec, we demonstrate that reject-to-remeasure with modern foundation models (TabPFNv2.5 and TabICLv2) can facilitate the integration of optical spectroscopy into routine laboratory workflows while meeting user-defined accuracy requirements and reducing measurement costs.","url_abs":"https://arxiv.org/abs/2606.21179","url_pdf":"https://arxiv.org/pdf/2606.21179","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2606.21179","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2606.21179"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure","reach":null}],"summary":{"ran":5},"by_repo_kind":{"found_in_text":{"samples":5,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":5,"samples":[{"code_sha256_prefix":"677e11407d05757b","entry":"apply_binning","repo":"JonasSchmidinger/Reject-to-Remeasure","repo_kind":"found_in_text","path":"2_Apply_models/Define_Functions_Pre_Processing.py","file_url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure/blob/HEAD/2_Apply_models/Define_Functions_Pre_Processing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"677e11407d05757b"}},{"code_sha256_prefix":"67ef73f7f48e20ba","entry":"apply_sg","repo":"JonasSchmidinger/Reject-to-Remeasure","repo_kind":"found_in_text","path":"2_Apply_models/Define_Functions_Pre_Processing.py","file_url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure/blob/HEAD/2_Apply_models/Define_Functions_Pre_Processing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"67ef73f7f48e20ba"}},{"code_sha256_prefix":"a9ff0918ba2dcc43","entry":"apply_snv","repo":"JonasSchmidinger/Reject-to-Remeasure","repo_kind":"found_in_text","path":"2_Apply_models/Define_Functions_Pre_Processing.py","file_url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure/blob/HEAD/2_Apply_models/Define_Functions_Pre_Processing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"a9ff0918ba2dcc43"}},{"code_sha256_prefix":"46a6fdc2f2b81cb5","entry":"drop_first_columns","repo":"JonasSchmidinger/Reject-to-Remeasure","repo_kind":"found_in_text","path":"2_Apply_models/PLSQR_Inner.py","file_url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure/blob/HEAD/2_Apply_models/PLSQR_Inner.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"46a6fdc2f2b81cb5"}},{"code_sha256_prefix":"cb331d79ee9839ff","entry":"interval_score_95_from_quantiles","repo":"JonasSchmidinger/Reject-to-Remeasure","repo_kind":"found_in_text","path":"2_Apply_models/PLSQR_Inner.py","file_url":"https://github.com/JonasSchmidinger/Reject-to-Remeasure/blob/HEAD/2_Apply_models/PLSQR_Inner.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"cb331d79ee9839ff"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}