ArcGIS Blog

Imagery & Remote Sensing

ArcGIS Pro

Automate Agriculture Monitoring with Satellite Imagery and Raster Analytics

By Lydia Troup and Rami Alouta

Understanding agricultural productivity at a national scale has traditionally required expensive surveys, or fragmented reporting, making it difficult to capture finer patterns. Conditions can shift month to month due to weather, conflict, disease, or market changes. Tracking these changes is crucial for agricultural censuses, funding decisions, and long-term planning.

 The challenge is not just measuring agriculture, but doing so continuously, consistently, and at scale.

Satellite imagery can help fill this gap. With repeat satellite imagery observations from space, we can create a dynamic system of agriculture productivity reporting that captures trends over time, at the national, subnational, and field levels. Below we’ll walk through an example built to monitor agriculture in Lebanon.

The Workflow

This workflow was initialized and automated using a python notebook and tools from the ArcPy library. Visuals below will include content from both the ArcGIS Pro interface and the python notebook.

A note on terminology. Throughout this blog we will refer to land as agricultural, cultivated, and fallow. Agricultural land refers to the entire agricultural field boundary. Cultivated land is the subset of fields with vegetation activity (above 0.5 NDVI value). Fallow land is the agricultural land that falls below the ‘cultivated’ threshold.

1. Data Acquisition

The first step in any workflow is finding the right data. For this process, we used Sentinel-2 Level 2A imagery since it contains the bands needed to calculate NDVI, and is regularly captured.

The imagery was accessed directly from the cloud using the Microsoft Planetary Computer STAC API. With the STAC connection, we avoid having to download any imagery. Instead, we use the data where it lives in the searchable catalog of datasets that make up the STAC.

When looking for imagery in the STAC, we can and did filter by date, extent, and cloud cover to find images in the right place, at the right time, with minimal clouds. Individual images for a given time period were then added to a mosaic dataset for analysis.

The image below shows the STAC interface in ArcGIS Pro, however for automation purposes the API can be accessed and searched using python as well.

Screenshot of the Explore STAC interface in ArcGIS Pro connected to the Microsoft Planetary Computer. The left panel shows the search parameters used to discover imagery, including the selected Sentinel-2 Level-2A collection, a date range from June 1, 2026, to June 30, 2026, and a cloud cover filter of less than 5 percent. The right panel displays search results consisting of multiple Sentinel-2 scenes, each showing metadata such as acquisition date, sensor name, and cloud cover percentage, along with image thumbnails. The results include scenes with very low cloud cover (between approximately 0.02% and 1.99%), demonstrating how STAC can be used to identify and access high-quality satellite imagery for agricultural monitoring and analysis.
STAC Search and Results Panes in ArcGIS Pro

1.5: Field Boundary Detection

These field boundaries are prepared as an input layer – extracted from imagery once – using deep learning. For this workflow, we used the agricultural field delineation model from the ArcGIS Living Atlas to create polygon field boundaries. You can also fine-tune this model, or train your own model to improve accuracy.

Polygons representing agricultural fields are shown in pink and swiped on over an imagery basemap.
Detected Field Boundaries

2. Image Analysis

This monitoring solution is based on NDVI values. NDVI (Normalized Difference Vegetation Index) is a measure of vegetation greenness, where higher values indicate healthier vegetation, which makes it a useful proxy for crop activity. NDVI values were calculated for every pixel in the imagery. Again, this is performed programmatically through the python notebook, but could also be done using the NDVI raster function or the raster calculator in ArcGIS Pro.

Then, NDVI values are summarized to the agricultural field boundaries using Zonal Statistics, creating field level statistics (average NDVI, minimum, maximum, variability, etc.), giving each field a measure of greenness/growth. Monthly, this process reruns using the zonal statistics tool in ArcPy.

The mean NDVI value for each field is used to classify the field as cultivated or fallow. A field is considered cultivated if the NDVI is greater than 0.5, fallow if it is below.

Screenshot of ArcGIS Pro displaying a geoprocessing tool used to generate scene-based zonal statistics from Sentinel-2 imagery. The map view shows thousands of agricultural field polygons across Lebanon highlighted in purple, representing field boundaries used for analysis. On the right, the Generate Scene Based Zonal Statistics tool is configured with Sentinel-2 as the sensor type, the agricultural field layer as the input feature dataset, OBJECTID as the zone field, and NDVI as the selected vegetation index. Additional parameters define the output mosaic dataset, zonal statistics table, area of interest extent, and a one-month processing window from April 20, 2026 to April 30, 2026. The workflow summarizes NDVI values from satellite imagery for each agricultural field, creating field-level statistics that can later be aggregated into administrative-level agricultural monitoring indicators.
Zonal Statistics Tool and Field Boundaries

3. Aggregate

While field-level insights are highly detailed, government officials and other decision-makers often need information summarized at larger geographic levels.

The field-based NDVI statistics are aggregated to administrative boundaries from the ArcGIS Living Atlas, creating monthly indicators for Admin 3, Admin 2, and Admin 1 boundaries. Additionally, the hectares of each field type (cultivated, fallow, agricultural) are summarized to each administrative level.

These summaries are used to monitor agricultural conditions across the country overtime.

 

Interactive web map of Lebanon Municipal Agriculture Activity displaying the ratio of cultivated land by municipality. Municipal boundaries are shaded from light green to dark green, representing categories ranging from Very Low to Very High agricultural activity. A selected municipality, Qleiaat Kesrouane in Mount Lebanon, is highlighted on the map. An information pop-up displays summary statistics including municipality code, total agricultural area (97.64 hectares), and total cultivated area (96.58 hectares). The map allows users to explore agricultural activity and cultivation intensity across municipalities throughout Lebanon.
Agriculture and Cultivated Area for an Administrative Municipality

4. Store, manage, and repeat

Ultimately, we have multiple layers – one per administrative level and one for fields. Each with monthly NDVI values, derived agricultural classifications, and summary statistics. These feature layers are then published to ArcGIS Online for sharing. In addition to creating feature layers, we can generate PDF reports automatically for easy sharing with stakeholders.

All of this is automated using python to run monthly, meaning the data is always up to date, historical records are preserved, and monitoring is continuous. Data is never deleted or overwritten, rather the next month’s data is added to the existing dataset, creating a large time-series database that can be analyzed. Upon completion of a month’s analysis, the script automatically detects the next processing period using existing data in the tables.

Screenshot of a Python notebook showing an automated ArcGIS workflow used to publish monthly agricultural monitoring results. The code connects to ArcGIS Online using GIS("Home"), uploads a zipped file geodatabase containing the latest agricultural field analysis, and publishes it as a hosted feature layer titled “Latest Month Agri Fields.” Metadata includes tags for agriculture, cultivated land, and NDVI, with a description indicating that cultivated status was derived from vegetation index analysis. After publishing, the script removes temporary files by deleting both the ZIP archive and the local geodatabase. This step automates the delivery of updated agricultural monitoring datasets to ArcGIS Online, ensuring the latest field-level results are available for web maps, dashboards, and reporting applications.
Data Management via Python Notebook

5. Visualize and Deliver

With all the data in ArcGIS Online, web maps and apps were created and shared through this hub site. I’d recommend exploring the site yourself, and I’ll highlight two of my favorite pieces below.

First, is the monitoring dashboard. This dashboard brings all of our data together in one easy to digest web app. There are three different views focusing on the latest month, NDVI and cultivation anomaly, and state by state variability respectively. And all three of these pages update monthly when the script reruns. In other words, the data is never out of date.

Interactive Agriculture Monitoring – Lebanon dashboard showing national agricultural statistics. The dashboard reports 258.1k hectares of total agricultural land and 91.1k hectares of cultivated land. A map of Lebanon displays agricultural land distribution in shaded green polygons over satellite imagery. Multiple charts summarize agricultural conditions, including top agricultural administrative areas, arable land by state, cultivated land by state, and fallow land distribution. A table lists state-level metrics such as arable area, cultivated area, percent cultivated, fallow area, and NDVI anomaly values. Geographic filters for Admin Levels 1–3 are available at the top of the dashboard.
Agriculture Monitoring Dashboard

Not only is the dashboard interactive and filterable, but the map is as well. Custom pop-ups for the aggregated administrative data were created with the ArcGIS Arcade assistant, and the agricultural fields appear when you zoom in.

Animated map popup displaying agricultural monitoring information for Terbol Zahleh in Lebanon. The map shows individual agricultural fields symbolized by land-use classification, with cultivated fields highlighted in green. A popup window provides summary statistics for June 2026, including the location name, administrative area (Zahle, Bekaa), total agricultural area (1,210.5 hectares), and cultivated area (859.4 hectares, representing 71% of the agricultural land). The surrounding map provides a field-level view of agricultural conditions, while the popup summarizes key indicators for the selected administrative area, allowing users to explore cultivated land and agricultural activity interactively.
Customized Pop-up summarizing Admin 3's agriculture

Second, is the agriculture agent app that leverages the new AI-components and the ArcGIS Maps SDK for JavaScript. The AI components enable developers to build agentic web mapping applications. In this application, users can interact directly with the web map using natural language to learn more about the state of agriculture in Lebanon. Click on the photo below to test it out yourself! As the AI-components are still in beta, an ArcGIS Online log-in is required to access the app and the username field is case-sensitive.

Screenshot of a web-based “Lebanon Agriculture Assistants” application showing an interactive map of Lebanon with the Hermel municipality selected and highlighted in turquoise. A pop-up panel displays agricultural statistics for Hermel, including total agriculture area, cultivated area, vegetation condition, and land-use classes. On the right, an AI chat assistant answers questions about agricultural land distribution, returning acreage figures for Hermel and its cultivated, greenhouse, and fallow areas.
Agriculture Agent Response

Agricultural statistics are often produced periodically, leaving large gaps in time. Here, satellite imagery is processed each month to update field-level and administrative indicators, creating a continuously growing time series of agricultural conditions. Historical records are preserved, new observations are added automatically, and users can monitor how agricultural activity changes over time rather than relying on a single snapshot. The result is a practical, repeatable monitoring system that supports everything from routine reporting to the early identification of emerging changes and potential shocks.

Share this article

Leave a Reply