Ag-Knowledge‎ > ‎Product Overview‎ > ‎

Crop type verification product

Product description

Our API enables a real-time location-based Crop type verification of parcels by comparative analysis of vegetation index time series of different crop types. The analysis is fully automated and integrated in our similarity product. It derives similarity metrics between the vegetation index time series, such as correlation coefficient, spectral euclidean distance, covariance and cosinus similarity. These metrics describe whether the crop growth of the monitored crop and its reference is similar or dissimilar (other crop, anomaly, drought, disease, different reasons). The reference curve of the vegetation index time series is generated dynamically from surrounding parcels for each parcel and crop.

Example

The orange parcel (orange time series) is the monitored parcel with a specific crop type (e.g. winter wheat). A reference curve (blue time series) is generated dynamically based on reference parcels of the same (or other) crop type (blue parcels) within a desired spatial radius. The reference parcels can be other parcels or actual ground truth (in-situ) data.

In most cases, the correlation coefficient is a sufficient indicator to analyze similar or dissimilar crop phenology.

However the correlation analysis fails in cases, when the correlation is high but the actual vegetation index values have a high offset and shift such as the following example of the same crop type. In this case the spectral euclidean distance captures the actual difference and dissimilarity of both time series curves.


Use case

Through the similarity product, a portfolio analysis of all parcels can be performed to derive a comprehensive overview of crop growth or management anomalies as well as parcels which may have been registered (or claimed) with a different crop type.


Technical description

Based on our similarity product, the Crop Type Verification is activated with the optional paramater classification=true. It checks whether the claimed (registered) crop type of the monitored parcel is true or false through a machine learning algorithm that was trained on similarity metrics of vegetation index time series between the parcels and the surrounding fields (within a spatial radius) of the requested crop type.
This binary classification does not predict the actual crop type, but verifies whether the claimed crop type is cultivated during the monitoring period. In the following example, the similarity request is done to check whether winter wheat is grown on a parcel, with the following parameters:
where the search radius for reference parcels (ground truth) is set to 100000m (100km), the interval for the temporal aggregation is 7 days (data points within this time frame will be averaged), the number of reference parcels for the year 2019 (entity) is set to 20, the requested crop type for the comparison is winter wheat (115 crop ID). 

The request is as following:

GET https://agknow.geocledian.com/agknow/api/v3/parcels/<parcel-id>/similarity?key=kkk&startdate=ddd&enddate=eee&radius=100000&interval=7&crop=wheat&references=20&classification=true

When the checkbox "ML Verification" is checked (or when the request parameter classification=true is set), the machine learning algorithm will be triggered and the decision output (probability esitmates) will be displayed in the dashboard as following:

In this example, the function detected a crop growth anomaly: the vegetation index time series of the parcel does not correspond with the vegetation index time series of the reference data for winter wheat. The output of th algorithm is "false". If the registered crop type is correct, the algorithm will output "true", meaning that the vegetation index time series of the reference data corresponds to the claimed crop type as shown here with maize:

The aggregated vegetation index time series of the target parcel and the reference data, the parcel attributes, the derived similarity metrics and the classification decision output are listed within the JSON response of the API.

Checking the registered crop type of a parcel:

GET https://agknow.geocledian.com/agknow/api/v3/parcels/<parcel-id>/similarity?key=kkk&startdate=ddd&enddate=eee&radius=100000&interval=7&crop=wheat&references=20&classification=true&crop=wheat

Response (true, the parcel´s crop type is as registered):

{
  • content_reference
    [],
  • content_parcel
    [],
  • summary
    {
    • startdate"2018-10-01",
    • enddate"2020-02-28",
    • crop_parcel"wheat",
    • interval7,
    • parcel_id12345,
    • smoothing"mav",
    • radius100000,
    • crop_reference"wheat",
    • references20,
    • entity""
    },
  • classification
    {
    • confidence0.9554681876726118,
    • conformitytrue
    },
  • similarity
    {
    • distance0.0636033364985124,
    • references_found2802,
    • covariance0.0706150041709125,
    • correlation0.976189171682615,
    • cosine_similarity0.967573715245342,
    • references_used20
    }
}

Checking whether the registered crop type of the parcel is a different crop type instead (e.g. rice):

GET https://agknow.geocledian.com/agknow/api/v3/parcels/<parcel-id>/similarity?key=kkk&startdate=ddd&enddate=eee&radius=100000&interval=7&crop=wheat&references=20&classification=true&crop=rice

Response (false, the parcel´s crop type is not rice):

{
  • content_reference
    [],
  • content_parcel
    [],
  • summary
    {
    • startdate"2018-10-01",
    • enddate"2019-09-30",
    • crop_parcel: "wheat",
    • interval7,
    • parcel_id12345,
    • smoothing"mav",
    • radius100000,
    • crop_reference: "rice",
    • references20,
    • entity""
    },
  • classification
    {
    • confidence0.9980083342007116,
    • conformityfalse
    },
  • similarity
    {
    • distance0.333290292731647,
    • references_found874,
    • covariance-0.0206650136842755,
    • correlation-0.439532350346571,
    • cosine_similarity0.0489915287235599,
    • references_used20
    }
}



Comments