A Python Framework for Crop Yield Estimation Using Sentinel-2 Satellite Data
Abstract
:1. Introduction
- Analyzing vegetation indices across different phenological stages to generate more detailed and actionable crop growth monitoring insights.
- Developing a cost-effective user-centric web application for automated Sentinel-2 data processing designed to support agronomists, farmers, and other agricultural professionals by enabling systematic crop growth monitoring.
2. Materials and Methods
2.1. Operational Crop Fields Under Investigation
- Crop installation: The installation of crops across different fields took place over a period of 3 to 9 days.
- Wheat cultivars:
- ○
- Durum wheat: Svevo
- ○
- Soft wheat: Giorgione
- Farmer interventions: Agronomic practices related to fertilization, weed control, and disease management were consistent across all fields under investigation. Specifically, this includes the following:
- Fertilization:
- ○
- Base fertilization: A winter application of fertilizer (N = 20, P = 23, K = 0) at a rate of 25 kg per stremma (1000 m2) in December.
- ○
- Spring fertilization: Two separate applications (N = 40, P = 0, K = 0) in early March and early April, with 15 kg per stremma (1000 m2) per application.
- Weed control: Application of Avoxa Maxx 12/2.88 OD (Syngenta) herbicide between 15 April and 20 April.
- Fungal disease prevention: Application of Amistar Gold 12.5/12.5 SC (Syngenta) fungicide in early May.
2.2. Satellite Data
2.3. Yield Data
2.4. Software
2.5. Methods
2.5.1. Satellite Data Pre-Processing
2.5.2. Satellite Data Processing
2.5.3. Yield Estimation
2.5.4. Web Application Development
3. Results
3.1. Yield Estimation
3.2. Functional Overview and User Interaction Design for Web Application Development
- Search Sentilel-2 images: As shown in Figure 9, users can search for satellite imagery (Sentinel-2 L2A, Surface Reflectance) based on specific parameters, including area of interest (AOI; this can be uploaded in either GeoJSON or KML format), cloud cover percentage, and date ranges. Additionally, users have the option to upload their dates of interest in a text format, with dates separated by commas. Moreover, users can optionally apply a cloud mask and a shadow threshold to remove cloud-covered areas and pixels affected by cloud shadows.
- 2.
- Vegetation index calculator: This feature enables users to select and compute various spectral indices from the chosen Sentinel-2 images, Figure 10. The resulting vegetation index maps are displayed interactively and can be exported. Additionally, users can generate and visualize histograms of the computed indices.
- 3.
- 4.
4. Discussion
4.1. Yield Estimation
4.2. Web Application Development
4.3. Future Work
4.4. Limitations
5. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Appendix A
- import x, y, z … # Import libraries (e.g., streamlit, ee, folium, plotly, etc.)
- st.set_page_config(…) # Configure page (title, layout, sidebar size, etc.)
- st.markdown(custom_css) # Add CSS styling for appearance and customization of buttons/fields
- -----------------------------------------------------------------------------------------
- # Functions
- -----------------------------------------------------------------------------------------
- def custom_notification(message, color):
- def authenticate_gee():
- def kml_to_full_geojson(kml_path):
- def search_images(start_date, end_date, cloud_limit):
- def calculate_index(image, index):
- def calculate_min_max(image, index):
- def add_legend(map_obj, title, min_val, max_val, colors):
- def log_download(filename):
- def plot_histogram_on_streamlit(bin_edges, bin_counts, index_name, image_label):
- # (NEW) Cloud and Shadow Masking function
- def maskImageWithS2Cloudless(sr_image, cloud_prob_threshold, shadow_threshold = 0.1):
- -----------------------------------------------------------------------------------------
- # Session Initialization/Variables
- -----------------------------------------------------------------------------------------
- ee.Initialize() # Initial connection to Earth Engine (if not already done)
- Map = geemap_folium.Map() # Create a base map for display in Streamlit
- st.session_state.roi = None # ROI is not set initially
- st.session_state.parcels = None # Parcels have not been uploaded yet
- st.session_state.selected_images = [] # No selected images for now
- … # (Define additional session_state variables as needed)
- -----------------------------------------------------------------------------------------
- # Sidebar: Parameter inputs, file uploads, buttons
- -----------------------------------------------------------------------------------------
- start_date = st.sidebar.date_input(…) # Input start date
- end_date = st.sidebar.date_input(…) # Input end date
- cloud_slider = st.sidebar.slider(…) # Slider for cloud coverage (e.g., 0–100%)
- # (NEW) Checkbox and sliders for cloud and shadow masking
- apply_cloud_mask = st.sidebar.checkbox(“Apply Cloud/Shadow Mask”, value = False)
- cloud_prob_threshold = st.sidebar.slider(“Cloud Probability Threshold”, 0, 100, 40)
- shadow_threshold = st.sidebar.slider(“Shadow Threshold”, 0.0, 0.5, 0.1, step = 0.01)
- # Uploader for ROI (GeoJSON/KML)
- uploaded_roi = st.sidebar.file_uploader(…)
- if uploaded_roi is not None:
- # Uploader for Parcels (GeoJSON/KML)
- uploaded_parcels = st.sidebar.file_uploader(…)
- if uploaded_parcels is not None:
- # Button to search images
- if st.sidebar.button(‘Search Images’):
- # Multiselect to pick specific images
- # e.g., st.sidebar.multiselect(‘Select Images’, list_of_image_ids)
- # Select Vegetation Index (e.g., NDVI, EVI, etc.)
- selected_index = st.sidebar.selectbox(…)
- # “Display Images” button
- if st.sidebar.button(‘Display Images’):
- # “Generate Histograms” button
- if st.sidebar.button(‘Generate Histograms’):
- # “Export Images” button
- if st.sidebar.button(‘Export Images’):
- -----------------------------------------------------------------------------------------
- # Compute Index per Parcel
- -----------------------------------------------------------------------------------------
- if st.sidebar.button(‘Calculate Mean Index over Parcels’):
- -----------------------------------------------------------------------------------------
- # Graphical Visualizations
- -----------------------------------------------------------------------------------------
- if st.sidebar.button(‘Plot Results’):
- -----------------------------------------------------------------------------------------
- # Yield Estimation
- -----------------------------------------------------------------------------------------
- -----------------------------------------------------------------------------------------
- # Update Parcels
- -----------------------------------------------------------------------------------------
- -----------------------------------------------------------------------------------------
- # Map and Metadata Integration
- -----------------------------------------------------------------------------------------
- Map.to_streamlit(height = 600) # Embed the folium/Geemap map in Streamlit
- # “Download Metadata” button
- if st.sidebar.button(’Download Metadata’):
References
- Aslan, M.F.; Sabancı, K.; Aslan, B. Artificial Intelligence Techniques in Crop Yield Estimation Based on Sentinel-2 Data: A Comprehensive Survey. Sustainability 2024, 16, 8277. [Google Scholar] [CrossRef]
- Teste, F.; Gangloff, H.; Chen, M.; Ciais, P.; Makowski, D. Leveraging satellite data with machine and deep learning techniques for corn yield and price forecasting. IEEE Trans. Geosci. Remote Sens. 2024, 62, 1–16. [Google Scholar] [CrossRef]
- Marshall, M.S.; Belgiu, M.; Boschetti, M.; Pepe, M.; Stein, A.; Nelson, A. Field-level crop yield estimation with PRISMA and Sentinel-2. ISPRS J. Photogramm. Remote Sens. 2022, 187, 191–210. [Google Scholar] [CrossRef]
- Chen, D.; Hu, H.; Liao, C.; Ye, J.; Bao, W.; Mo, J.; Wu, Y.; Dong, T.; Fan, H.; Pei, J. Crop NDVI time series construction by fusing Sentinel-1, Sentinel-2, and environmental data with an ensemble-based framework. Comput. Electron. Agric. 2023, 215, 108388. [Google Scholar] [CrossRef]
- Farmonov, N.; Amankulova, K.; Szatmári, J.; Urinov, J.; Narmanov, Z.; Nosirov, J.; Mucsi, L. Combining PlanetScope and Sentinel-2 images with environmental data for improved wheat yield estimation. Int. J. Digit. Earth 2023, 16, 847–867. [Google Scholar] [CrossRef]
- Wu, B.; Zhang, M.; Zeng, H.; Tian, F.; Potgieter, A.; Qin, X.; Yan, N.; Chang, S.; Zhao, Y.; Dong, Q.; et al. Challenges and opportunities in remote sensing-based crop monitoring: A review. Natl. Sci. Rev. 2022, 10, nwac290. [Google Scholar] [CrossRef]
- Skakun, S.; Kalecinski, N.I.; Brown, M.G.L.; Johnson, D.M.; Vermote, E.; Roger, J.-C.; Franch, B. Assessing within-Field Corn and Soybean Yield Variability from WorldView-3, Planet, Sentinel-2, and Landsat 8 Satellite Imagery. Remote Sens. 2021, 13, 872. [Google Scholar] [CrossRef]
- Dhillon, M.S.; Kübert-Flock, C.; Dahms, T.; Rummler, T.; Arnault, J.; Steffan-Dewenter, I.; Ullmann, T. Evaluation of MODIS, Landsat 8 and Sentinel-2 Data for Accurate Crop Yield Predictions: A Case Study Using STARFM NDVI in Bavaria, Germany. Remote Sens. 2023, 15, 1830. [Google Scholar] [CrossRef]
- Li, F.; Miao, Y.; Chen, X.; Sun, Z.; Stueve, K.M.; Yuan, F. In-Season Prediction of Corn Grain Yield through PlanetScope and Sentinel-2 Images. Agronomy 2022, 12, 3176. [Google Scholar] [CrossRef]
- Amankulova, K.; Farmonov, N.; Omonov, K.; Abdurakhimova, M.; Mucsi, L. Integrating the Sentinel-1, Sentinel-2 and Topographic data into soybean yield modelling using Machine Learning. Adv. Space Res. 2024, 73, 4052–4066. [Google Scholar] [CrossRef]
- Ghazaryan, G.; Skakun, S.; König, S.; Rezaei, E.E.; Siebert, S.; Dubovyk, O. Crop Yield Estimation Using Multi-Source Satellite Image Series and Deep Learning. In Proceedings of the International Geoscience and Remote Sensing Symposium, Waikoloa, HI, USA, 26 September–2 October 2020. [Google Scholar] [CrossRef]
- Torino, M.S.; Ortiz, B.V.; Fulton, J.P.; Balkcom, K.S.; Wood, C.W. Evaluation of vegetation indices for early assessment of corn status and yield potential in the southeastern United States. Agron. J. 2014, 106, 1389–1401. [Google Scholar] [CrossRef]
- Bognár, P.; Kern, A.; Pásztor, S.; Steinbach, P.; Lichtenberger, J. Testing the robust yield estimation method for winter wheat, corn, rapeseed, and sunflower with different vegetation indices and meteorological data. Remote Sens. 2022, 14, 2860. [Google Scholar] [CrossRef]
- Marino, S.; Alvino, A. Vegetation indices data clustering for dynamic monitoring and classification of wheat yield crop traits. Remote Sens. 2021, 13, 541. [Google Scholar] [CrossRef]
- Mukiibi, A.; Machakaire, A.T.B.; Franke, A.C.; Steyn, J.M. A Systematic Review of Vegetation Indices for Potato Growth Monitoring and Tuber Yield Prediction from Remote Sensing. Potato Res. 2024, 67, 1–40. [Google Scholar] [CrossRef]
- İrik, H.A.; Ropelewska, E.; Çetin, N. Using spectral vegetation indices and machine learning models for predicting the yield of sugar beet (Beta vulgaris L.) under different irrigation treatments. Comput. Electron. Agric. 2024, 221, 109019. [Google Scholar] [CrossRef]
- Ma, Y.; Ma, L.; Zhang, Q.; Huang, C.; Yi, X.; Chen, X.; Hou, T.; Lv, X.; Zhang, Z. Cotton yield estimation based on vegetation indices and texture features derived from RGB image. Front. Plant Sci. 2022, 13, 925986. [Google Scholar] [CrossRef]
- Ruwanpathirana, P.P.; Sakai, K.; Jayasinghe, G.Y.; Nakandakari, T.; Yuge, K.; Wijekoon, W.M.C.J.; Priyankara, A.C.P.; Samaraweera, M.D.S.; Madushanka, P.L.A. Evaluation of Sugarcane Crop Growth Monitoring Using Vegetation Indices Derived from RGB-Based UAV Images and Machine Learning Models. Agronomy 2024, 14, 2059. [Google Scholar] [CrossRef]
- Fu, Z.; Jiang, J.; Gao, Y.; Krienke, B.; Wang, M.; Zhong, K.; Cao, Q.; Tian, Y.; Zhu, Y.; Cao, W.; et al. Wheat growth monitoring and yield estimation based on multi-rotor unmanned aerial vehicle. Remote Sens. 2020, 12, 508. [Google Scholar] [CrossRef]
- Kayad, A.; Sozzi, M.; Gatto, S.; Marinello, F.; Pirotti, F. Monitoring within-field variability of corn yield using Sentinel-2 and machine learning techniques. Remote Sens. 2019, 11, 2873. [Google Scholar] [CrossRef]
- Vidican, R.; Mălinaș, A.; Ranta, O.; Moldovan, C.; Marian, O.; Ghețe, A.; Ghișe, C.R.; Popovici, F.; Cătunescu, G.M. Using remote sensing vegetation indices for the discrimination and monitoring of agricultural crops: A critical review. Agronomy 2023, 13, 3040. [Google Scholar] [CrossRef]
- Van Diepen, C.A.; Wolf, J.V.; Van Keulen, H.; Rappoldt, C. WOFOST: A simulation model of crop production. Soil Use Manag. 1989, 5, 16–24. [Google Scholar] [CrossRef]
- Ren, S.; Chen, H.; Hou, J.; Zhao, P.; Dong, Q.; Feng, H. Based on historical weather data to predict summer field-scale maize yield: Assimilation of remote sensing data to WOFOST model by ensemble Kalman filter algorithm. Comput. Electron. Agric. 2024, 219, 108822. [Google Scholar] [CrossRef]
- Liu, L.; Wallach, D.; Li, J.; Liu, B.; Zhang, L.; Tang, L.; Zhang, Y.; Qiu, X.; Cao, W.; Zhu, Y. Uncertainty in wheat phenology simulation induced by cultivar parameterization under climate warming. Eur. J. Agron. 2018, 94, 46–53. [Google Scholar] [CrossRef]
- Bergjord, A.K.; Bonesmo, H.; Skjelvåg, A.O. Modelling the course of frost tolerance in winter wheat: I. Model development. Eur. J. Agron. 2008, 28, 321–330. [Google Scholar] [CrossRef]
- Chen, J.; Zhang, P.; Liu, J.; Deng, J.; Su, W.; Wang, P.; Li, Y. Study on the impact of low-temperature stress on winter wheat based on multi-model coupling. Food Energy Secur. 2024, 13, e543. [Google Scholar] [CrossRef]
- Saltelli, A.; Tarantola, S.; Chan, K.S. A quantitative model-independent method for global sensitivity analysis of model output. Technometrics 1999, 41, 39–56. [Google Scholar] [CrossRef]
- Li, X.; Tan, J.; Li, H.; Wang, L.; Niu, G.; Wang, X. Sensitivity Analysis of the WOFOST Crop Model Parameters Using the EFAST Method and Verification of Its Adaptability in the Yellow River Irrigation Area, Northwest China. Agronomy 2023, 13, 2294. [Google Scholar] [CrossRef]
- Ren, Y.; Li, Q.; Du, X.; Zhang, Y.; Wang, H.; Shi, G.; Wei, M. Analysis of corn yield prediction potential at various growth phases using a process-based model and deep learning. Plants 2023, 12, 446. [Google Scholar] [CrossRef]
- Zhuo, W.; Huang, H.; Gao, X.; Li, X.; Huang, J. An improved approach of winter wheat yield estimation by jointly assimilating remotely sensed leaf area index and soil moisture into the Wofost model. Remote Sens. 2023, 15, 1825. [Google Scholar] [CrossRef]
- Wu, Y.; Xu, W.; Huang, H.; Huang, J. Bayesian posterior-based winter wheat yield estimation at the field scale through assimilation of Sentinel-2 data into WOFOST model. Remote Sens. 2022, 14, 3727. [Google Scholar] [CrossRef]
- Xu, L.; Liu, H.; Jiang, L.; Zhang, F.; Li, X.; Feng, X.; Huang, J.; Bai, T. WOFOST-N: An improved WOFOST model with nitrogen module for simulation of Korla Fragrant pear tree growth and nitrogen dynamics. Comput. Electron. Agric. 2024, 220, 108860. [Google Scholar] [CrossRef]
- Gavasso-Rita, Y.L.; Papalexiou, S.M.; Li, Y.; Elshorbagy, A.; Li, Z.; Schuster-Wallace, C. Crop models and their use in assessing crop production and food security: A review. Food Energy Secur. 2024, 13, e503. [Google Scholar] [CrossRef]
- Ji, F.; Meng, J.; Cheng, Z.; Fang, H.; Wang, Y. Crop yield estimation at field scales by assimilating time series of Sentinel-2 data into a modified CASA-WOFOST coupled model. IEEE Trans. Geosci. Remote Sens. 2021, 60, 1–14. [Google Scholar] [CrossRef]
- Wang, Y.; Zhang, Q.; Yu, F.; Zhang, N.; Zhang, X.; Li, Y.; Wang, M.; Zhang, J. Progress in Research on Deep Learning-Based Crop Yield Prediction. Agronomy 2024, 14, 2264. [Google Scholar] [CrossRef]
- Lokesh, S.; Madhavan, A.; Ramanathan, R.P.; Anand, K. Intelligent Systems for Data Driven Agriculture: Enhancing Farmer Productivity Through Automation and Artificial Intelligence. In Proceedings of the 2024 International Conference on Smart Systems for Electrical, Electronics, Communication and Computer Engineering (ICSSEECC), Coimbatore, India, 28–29 June 2024; IEEE: Piscataway, NJ, USA; pp. 433–438. [Google Scholar] [CrossRef]
- Qi, H.; Qian, X.; Shang, S.; Wan, H. Multi-year mapping of cropping systems in regions with smallholder farms from Sentinel-2 images in Google Earth engine. GISci. Remote Sens. 2024, 61, 2309843. [Google Scholar] [CrossRef]
- Hnatushenko, V.V.; Sierikova, K.Y.; Sierikov, I.Y. Development of a cloud-based web geospatial information system for agricultural monitoring using Sentinel-2 data. In Proceedings of the 2018 IEEE 13th International Scientific and Technical Conference on Computer Sciences and Information Technologies (CSIT), Lviv, Ukraine, 11–14 September 2018; IEEE: Piscataway, NJ, USA; Volume 1, pp. 270–273. [Google Scholar] [CrossRef]
- Pandit, A.; Sawant, S.A.; Agrawal, R.; Mohite, J.D.; Pappula, S. Development of Automated Satellite Data Downloading and Processing Pipeline on Aws Cloud for Near-Real-Time Agriculture Applications. ISPRS Ann. Photogramm. Remote Sens. Spat. Inf. Sci. 2022, 4, 189–196. [Google Scholar] [CrossRef]
- Kpienbaareh, D.; Kansanga, M.; Luginaah, I. Examining the potential of open source remote sensing for building effective decision support systems for precision agriculture in resource-poor settings. GeoJournal 2019, 84, 1481–1497. [Google Scholar] [CrossRef]
- Stratoulias, D.; Tolpekin, V.; De By, R.A.; Zurita-Milla, R.; Retsios, V.; Bijker, W.; Hasan, M.A.; Vermote, E. A workflow for automated satellite image processing: From raw VHSR data to object-based spectral information for smallholder agriculture. Remote Sens. 2017, 9, 1048. [Google Scholar] [CrossRef]
- Bontemps, S.; Arias, M.; Cara, C.; Dedieu, G.; Guzzonato, E.; Hagolle, O.; Inglada, J.; Morin, D.; Rabaute, T.; Savinaud, M.; et al. “Sentinel-2 for agriculture”: Supporting global agriculture monitoring. In Proceedings of the 2015 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), Milan, Italy, 26–31 July 2015; IEEE: Piscataway, NJ, USA; pp. 4185–4188. [Google Scholar] [CrossRef]
- Brook, A.; Micco, V.D.; Battipaglia, G.; Erbaggio, A.; Ludeno, G.; Catapano, I.; Bonfante, A. A Smart Multi-scale and Multi-temporal System to Support Precision and Sustainable Agriculture from Satellite Images. Proceedings 2019, 30, 17. [Google Scholar] [CrossRef]
- Valero, S.; Morin, D.; Inglada, J.; Sepulcre, G.; Arias, M.; Hagolle, O.; Dedieu, G.; Bontemps, S.; Defourny, P. Processing Sentinel-2 image time series for developing a real-time cropland mask. In Proceedings of the 2015 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), Milan, Italy, 26–31 July 2015; IEEE: Piscataway, NJ, USA; pp. 2731–2734. [Google Scholar] [CrossRef]
- CopernicusEU. Copernicus Data Space Ecosystem. 2024. Available online: https://dataspace.copernicus.eu/ (accessed on 23 December 2024).
- Lancashire, P.D.; Bleiholder, H.; Boom, T.V.D.; Langelüddeke, P.; Stauss, R.; Weber, E.; Witzenberger, A. A uniform decimal code for growth stages of crops and weeds. Ann. Appl. Biol. 1991, 119, 561–601. [Google Scholar] [CrossRef]
- Djamai, N.; Fernandes, R. Comparison of SNAP-derived Sentinel-2A L2A product to ESA product over Europe. Remote Sens. 2018, 10, 926. [Google Scholar] [CrossRef]
- QGIS Development Team. QGIS Geographic Information System. QGIS Association. 2024. Available online: http://www.qgis.org (accessed on 23 December 2024).
- Sanner, M.F. Python: A programming language for software integration and development. J. Mol. Graph. Model. 1999, 17, 57–61. [Google Scholar]
- Jupyter Team. Jupyter Notebook Documentation. 2024. Available online: https://jupyter-notebook.readthedocs.io/en/v7.0.6/index.html (accessed on 23 December 2024).
- Gorelick, N.; Hancher, M.; Dixon, M.; Ilyushchenko, S.; Thau, D.; Moore, R. Google Earth Engine: Planetary-scale geospatial analysis for everyone. Remote Sens. Environ. 2017, 202, 18–27. [Google Scholar] [CrossRef]
- Khorasani, M.; Abdou, M.; Fernández, J.H. Web Application Development with Streamlit; Software Development; Apress: Berkeley, CA, USA, 2022; pp. 105–128. [Google Scholar] [CrossRef]
- Rouse, J.W., Jr.; Haas, R.H.; Schell, J.A.; Deering, D.W. Monitoring the Vernal Advancement and Retrogradation (Green Wave Effect) of Natural Vegetation (No. NASA-CR-132982); NASA: Washington, DC, USA, 1973. [Google Scholar]
- Gitelson, A.A.; Kaufman, Y.J.; Merzlyak, M.N. Use of a green channel in remote sensing of global vegetation from EOS-MODIS. Remote Sens. Environ. 1996, 58, 289–298. [Google Scholar] [CrossRef]
- Huete, A.; Didan, K.; Miura, T.; Rodriguez, E.P.; Gao, X.; Ferreira, L.G. Overview of the radiometric and biophysical performance of the MODIS vegetation indices. Remote Sens. Environ. 2002, 83, 195–213. [Google Scholar] [CrossRef]
- Fang, H.; Baret, F.; Plummer, S.; Schaepman-Strub, G. An overview of global leaf area index (LAI): Methods, products, validation, and applications. Rev. Geophys. 2019, 57, 739–799. [Google Scholar] [CrossRef]
- Boegh, E.; Soegaard, H.; Broge, N.; Hasager, C.B.; Jensen, N.O.; Schelde, K.; Thomsen, A. Airborne multispectral data for quantifying leaf area index, nitrogen concentration, and photosynthetic efficiency in agriculture. Remote Sens. Environ. 2002, 81, 179–193. [Google Scholar] [CrossRef]
- Gitelson, A.A.; Zygielbaum, A.I.; Arkebauer, T.J.; Walter-Shea, E.A.; Solovchenko, A. Stress detection in vegetation based on remotely sensed light absorption coefficient. Int. J. Remote Sens. 2024, 45, 259–277. [Google Scholar] [CrossRef]
- Croft, H.; Chen, J.M.; Zhang, Y. The applicability of empirical vegetation indices for determining leaf chlorophyll content over different leaf and canopy structures. Ecol. Complex. 2014, 17, 119–130. [Google Scholar] [CrossRef]
- Karmakar, P.; Teng, S.W.; Murshed, M.; Pang, S.; Li, Y.; Lin, H. Crop monitoring by multimodal remote sensing: A review. Remote Sens. Appl. Soc. Environ. 2024, 33, 101093. [Google Scholar] [CrossRef]
- Zsebő, S.; Bede, L.; Kukorelli, G.; Kulmány, I.M.; Milics, G.; Stencinger, D.; Teschner, G.; Varga, Z.; Vona, V.; Kovács, A.J. Yield Prediction Using NDVI Values from GreenSeeker and MicaSense Cameras at Different Stages of Winter Wheat Phenology. Drones 2024, 8, 88. [Google Scholar] [CrossRef]
- Kaya, Y.; Polat, N. A linear approach for wheat yield prediction by using different spectral vegetation indices. Int. J. Eng. Geosci. 2023, 8, 52–62. [Google Scholar] [CrossRef]
- Wang, Z.; Zhang, C.; Gao, L.; Fan, C.; Xu, X.; Zhang, F.; Zhou, Y.; Niu, F.; Li, Z. Time Phase Selection and Accuracy Analysis for Predicting Winter Wheat Yield Based on Time Series Vegetation Index. Remote Sens. 2024, 16, 1995. [Google Scholar] [CrossRef]
- Badagliacca, G.; Messina, G.; Praticò, S.; Lo Presti, E.; Preiti, G.; Monti, M.; Modica, G. Multispectral vegetation indices and machine learning approaches for durum wheat (Triticum durum Desf.) Yield Prediction across Different Varieties. AgriEngineering 2023, 5, 2032–2048. [Google Scholar] [CrossRef]
- Cavalaris, C.; Megoudi, S.; Maxouri, M.; Anatolitis, K.; Sifakis, M.; Levizou, E.; Kyparissis, A. Modeling of durum wheat yield based on sentinel-2 imagery. Agronomy 2021, 11, 1486. [Google Scholar] [CrossRef]
- Devkota, K.P.; Bouasria, A.; Devkota, M.; Nangia, V. Predicting wheat yield gap and its determinants combining remote sensing, machine learning, and survey approaches in rainfed Mediterranean regions of Morocco. Eur. J. Agron. 2024, 158, 127195. [Google Scholar] [CrossRef]
- Nadkarni, P.M.; Ohno-Machado, L.; Chapman, W.W. Natural language processing: An introduction. J. Am. Med. Inform. Assoc. 2011, 18, 544–551. [Google Scholar] [CrossRef]
Month | Mean Maximum Temperature (°C) | Mean Minimum Temperature (°C) | Mean Temperature (°C) | Total Precipitation (mm) |
---|---|---|---|---|
December 2023 | 11.7 | −0.9 | 3.6 | 72.8 |
January 2024 | 8.8 | −0.8 | 3.6 | 36.0 |
February 2024 | 13.8 | 2.4 | 7.6 | 25.4 |
March 2024 | 15.8 | 3.5 | 9.3 | 45.2 |
April 2024 | 21.7 | 6.7 | 14.3 | 38.6 |
May 2024 | 22.4 | 10.9 | 16.4 | 27.4 |
June 2024 | 32.4 | 16.1 | 24.4 | 12.4 |
Field ID | Soil Texture | Soil Type | Parent Material | Hydromorphy | ||
---|---|---|---|---|---|---|
Depth 0–25 cm | Depth 25–75 cm | Depth 75–150 cm | ||||
Soft Wheat | ||||||
FID 1 and FID 2 | Moderately Fine | Medium to Moderately Fine | Moderately Fine to Fine | Luvisols | Alluvial Terraces | Well-Drained Soils |
FID 3 and FID 4 | Fine | Moderately Fine to Fine | Moderately Fine to Fine | Vertisols | Alluvial Deposits | Well-Drained Soils |
Durum Wheat | ||||||
FID 1, FID 2, FID 3, and FID 4 | Fine | Moderately Fine to Fine | Moderately Fine to Fine | Vertisols | Alluvial Deposits | Well-Drained Soils |
FID 6 | Moderately Fine | Coarse | Moderately Fine to Fine | Cambisols | Alluvial Terraces | Well-Drained Soils |
Sentinel-2 Bands | Spectral Region | Central Wavelength (μm) | Resolution (m) |
---|---|---|---|
Band 2 | Blue | 0.490 | 10 |
Band 3 | Green | 0.560 | 10 |
Band 4 | Red | 0.665 | 10 |
Band 5 | Red Edge 1 | 0.705 | 20 |
Band 6 | Red Edge 2 | 0.740 | 20 |
Band 7 | Red Edge 3 | 0.783 | 20 |
Band 8 | NIR | 0.842 | 10 |
Band 8A | Vegetation Red Edge | 0.865 | 20 |
Band 11 | SWIR 1 | 1.610 | 20 |
Band 12 | SWIR 2 | 2.190 | 20 |
Phenological Stage | Days per Stage | BBCH Scale | Imagery Acquisition Date |
---|---|---|---|
Emergence | 7–14 days | BBCH 10–19 | 13 January 2024 |
Tillering | 25–40 days | BBCH 20–29 | 26 January 2024 |
15 February 2024 | |||
17 February 2024 | |||
22 February 2024 | |||
Stem Elongation | 20–30 days | BBCH 30–39 | 3 March 2024 |
21 March 2024 | |||
Booting | 20–30 days | BBCH 40–49 | 28 March 2024 |
Heading | 7–14 days | BBCH 51–59 | 15 April 2024 |
Flowering | 5–10 days | BBCH 61–69 | 7 May 2024 |
Grain Filling | 10–20 days | BBCH 71–77 | 22 May 2024 |
27 May 2024 | |||
Maturity and Harvest | 10–20 days | BBCH 83–99 | 9 June 2024 |
Post Harvest | 24 June 2024 |
Field ID | Mean (Kg/stremma *) | Standard Deviation | Minimum (Kg/stremma *) | Maximum (Kg/stremma *) | Range (Kg/stremma *) |
---|---|---|---|---|---|
Soft Wheat | |||||
FID 1 | 373.54 | 127.00 | 100.28 | 737.88 | 637.60 |
FID 2 | 598.44 | 94.25 | 351.06 | 841.57 | 490.51 |
FID 3 | 635.82 | 86.61 | 350.37 | 898.26 | 547.89 |
FID 4 | 605.32 | 115.08 | 150.12 | 649.91 | 499.79 |
Durum Wheat | |||||
FID 1 | 425.59 | 105.98 | 150.12 | 649.91 | 499.79 |
FID 2 | 290.09 | 73.16 | 119.88 | 534.89 | 415.01 |
FID 3 | 258.73 | 82.42 | 61.04 | 542.13 | 481.09 |
FID 4 | 367.79 | 86.24 | 200.47 | 645.8 | 445.33 |
FID 6 | 339.34 | 63.99 | 200.6 | 561.36 | 360.76 |
Index | Formula | |
---|---|---|
NDVI | (1) | |
GNDVI | (2) | |
EVI | (3) | |
LAI | (4) | |
RE-PAP | (5) |
Configure Task Parameters | Type |
---|---|
Search available Sentinel 2 imagery | |
Start date/end date | Date picker |
Cloud cover | Slider |
Shadow Threshold | Slider—optional |
Apply cloud mask | Check box—optional |
Dates upload | Upload txt file with desired dates for acquisition—optional |
Upload Region of Interest (ROI) | Upload GeoJSON or KML file |
Calculate vegetation index | |
Select the available images | List box |
Select index to calculate | Drop—down list |
Display image | Button—optional |
Generate histogram | Button—optional |
Export images | Button—optional |
Index statistics per parcel | |
Upload parcels | Upload GeoJSON or KML file |
Calculate mean index value for each parcel | Button |
Download values to CSV | Button—optional |
Plot results | Button—optional |
Dates subset for AUC calculation | |
Subset start date/end date | Drop—down list/optional |
Plot subset results | Button—optional |
Yield prediction | |
Yield prediction | Button |
Download yield prediction results to CSV | Button—optional |
Update parcel information (on the app) | Button—optional |
Download updated parcels to GeoJSON or KML | Button—optional |
Shadow/Cloud mask check | |
Show shadow mask layer | Check box—optional |
Plot histogram (Original/Masked) | Button—optional |
Download metadata to TXT | Button—optional |
Vegetation Index | Time Period | Reg. Equation | R2 | MAPE (%) | RMSE |
---|---|---|---|---|---|
EVI | Growing season | Ypred = 59.852 × AUC | 0.97 | 16.8 | 59.36 |
EVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 85.849 × AUC | 0.98 | 15.7 | 54.26 |
GNDVI | Growing season | Ypred = 127.889 × AUC | 0.98 | 13.4 | 50.85 |
GNDVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 243.181 × AUC | 0.99 | 11.9 | 41.35 |
LAI | Growing season | Ypred = 17.876 × AUC | 0.97 | 16.9 | 60.03 |
LAI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 24.962 × AUC | 0.97 | 15.7 | 54.61 |
NDVI | Growing season | Ypred = 60.643 × AUC | 0.98 | 14.5 | 53.28 |
NDVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 91.409 × AUC | 0.98 | 13.5 | 47.46 |
RE-PAP | Growing season | Ypred = 10.105 × AUC | 0.97 | 15.1 | 59.78 |
RE-PAP | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 12.798 × AUC | 0.97 | 13.4 | 59.34 |
Vegetation Index | Time Period | Reg. Equation | R2 | MAPE (%) | RMSE |
---|---|---|---|---|---|
EVI | Growing season | Ypred = 105.827 × AUC | 0.98 | 14.3 | 79.91 |
EVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 160.186 × AUC | 0.99 | 10.8 | 61.54 |
GNDVI | Growing season | Ypred = 116.035 × AUC | 0.97 | 18.8 | 102.22 |
GNDVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 169.039 × AUC | 0.98 | 14.7 | 81.17 |
LAI | Growing season | Ypred = 31.814 × AUC | 0.98 | 13.9 | 77.83 |
LAI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 46.913 × AUC | 0.99 | 10.3 | 59.13 |
NDVI | Growing season | Ypred = 98.754 × AUC | 0.98 | 14.3 | 79.24 |
NDVI | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 154.527 × AUC | 0.99 | 10.9 | 62.16 |
RE-PAP | Growing season | Ypred = 17.233 × AUC | 0.98 | 11.1 | 78.51 |
RE-PAP | Subset of growing season (from Tillering to Stem Elongation through Grain Filling) | Ypred = 21.972 × AUC | 0.98 | 11.8 | 86.21 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Ntouros, K.; Papatheodorou, K.; Gkologkinas, G.; Drimzakas-Papadopoulos, V. A Python Framework for Crop Yield Estimation Using Sentinel-2 Satellite Data. Earth 2025, 6, 15. https://doi.org/10.3390/earth6010015
Ntouros K, Papatheodorou K, Gkologkinas G, Drimzakas-Papadopoulos V. A Python Framework for Crop Yield Estimation Using Sentinel-2 Satellite Data. Earth. 2025; 6(1):15. https://doi.org/10.3390/earth6010015
Chicago/Turabian StyleNtouros, Konstantinos, Konstantinos Papatheodorou, Georgios Gkologkinas, and Vasileios Drimzakas-Papadopoulos. 2025. "A Python Framework for Crop Yield Estimation Using Sentinel-2 Satellite Data" Earth 6, no. 1: 15. https://doi.org/10.3390/earth6010015
APA StyleNtouros, K., Papatheodorou, K., Gkologkinas, G., & Drimzakas-Papadopoulos, V. (2025). A Python Framework for Crop Yield Estimation Using Sentinel-2 Satellite Data. Earth, 6(1), 15. https://doi.org/10.3390/earth6010015