YieldSAT ML Tutorial¶

This notebook accompanies the YieldSAT paper:

YieldSAT: A Multimodal Benchmark Dataset for High-Resolution Crop Yield Prediction
CVPR 2026 — Project Page

to illustrate is ML-readiness. Using the preprocessed xarray.Dataset datastructure, we can build fast and flexible models on multimodal input data.

This tutorial shows how to use the preprocessed Germany release for a small LightGBM baseline in a single-crop setting.

It covers five steps:

  1. open the preprocessed NetCDF file,
  2. filter the dataset to one crop such as rapeseed,
  3. build leakage-free cross-validation splits at field level,
  4. wrap the data in a PyTorch Dataset, and
  5. train a small ML regressor with the Pytorch API,
  6. evaluate the predictions at various levels.

The example uses only Sentinel-2 bands to keep the model and feature tensor small.

1. xarray for ML Development¶

The preprocessed YieldSAT release is the model-ready version of the dataset. It is stored as an xarray.Dataset, which makes it convenient to train machine learning models, inspect metadata, and select subsets by country, crop, year, farm, or field.

In this format, each valid 10 m pixel is represented as a season-aligned temporal sample. The temporal representation contains 24 time steps spanning a two-calendar-year window defined relative to seeding and harvesting, such that the harvest month always lies in the second year. For each time step, the selected observation corresponds to the least-cloudy available image, and observations outside the growing season are masked. All input modalities are aligned via concatenation and temporal and spatial repetition (input fusion), resulting in a standardized tensor representation.

We provide detailed information about the xarray data structure in the data overview Notebook.

In [1]:
import matplotlib.pyplot as plt
import numpy as np
import os
from pathlib import Path
import xarray as xr
from pprint import pprint
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
plt.style.use("seaborn-v0_8-whitegrid")
pd.options.display.max_columns = 200
pd.options.display.width = 120

preprocessed-24-ts/ contains one model-ready NetCDF file per country. For this tutorial, we select the .nc file for Germany because of its smaller size.

Xarray Data Format for Pixel-Wise Yield Prediction¶

The xarray (netcdf) data format is a processed version of the YieldSAT dataset, ready for training DL models at the pixel level. The data uses a unified time series of 24 time steps, including all data modalities. Each Modality is aligned in time and space using concatenation and spatial repetition at the input level (input fusion). The processing is described and referenced in the main paper. We provide the processed data for each country separately. Each country then contains all the crop types available in that country.

For more information on Xarray, see: https://docs.xarray.dev/en/latest/index.html

The netCDF file has the following structure:

Coordinates:

  • bands: Input modalities (S2 + ADM)
  • index: Pixel index
  • time_step: time step

Data Variables

  • target: target yield value (t/ha)
  • sample: input of multimodal time series (index, time_step, band)
  • col: column index in the image $index_i$
  • row: row index in the image for $index_i$
  • crop: crop type information
  • farm_identifier: unique ID for a farm (region)
  • seeding_date: seeding data for yield $index_i$
  • harvesting_date: harvesting data for yield $index_i$
  • year: year of harvest

Attributes

  • further metadata for each field
In [ ]:
DATA_ROOT = Path("") # update this to path where you organize the data
PREPROCESSED_ROOT = DATA_ROOT / "preprocessed-24-ts/"

COUNTRY = "Germany"

TARGET_CROP = "rapeseed"

preprocessed_path = PREPROCESSED_ROOT / COUNTRY / "merged" / "merge_s2-soil-dem-weather-coords.nc"

assert PREPROCESSED_ROOT.exists(), PREPROCESSED_ROOT
assert preprocessed_path.exists(), preprocessed_path
In [21]:
#reading netcdf file
ds = xr.open_dataset(preprocessed_path)
ds
Out[21]:
<xarray.Dataset>
Dimensions:            (index: 609645, time_step: 24, band: 120)
Coordinates:
  * index              (index) object '5d35849b-ace1-4dd4-962d-da80c6c56bac' ...
  * time_step          (time_step) int64 0 1 2 3 4 5 6 ... 17 18 19 20 21 22 23
  * band               (band) object 'B01' 'B02' 'B03' ... 'coord_y' 'coord_z'
Data variables: (12/17)
    target             (index) float32 ...
    times              (index, time_step) datetime64[ns] ...
    seeding_date       (index) uint8 ...
    harvesting_date    (index) uint8 ...
    farm_identifier    (index) uint8 ...
    country            (index) uint8 ...
    ...                 ...
    col                (index) uint8 ...
    stats-mean         (band) float32 469.2 566.0 864.8 ... -0.2598 0.443
    stats-min          (band) float32 0.0 1.0 1.0 ... -0.8557 -0.9154 -0.5302
    stats-max          (band) float32 8.976e+03 4.396e+03 ... 0.4852 0.9992
    stats-std          (band) float32 273.9 260.7 327.6 ... 0.2491 0.4512 0.6131
    sample             (index, time_step, band) float32 ...
Attributes: (12/299)
    Germany_DUP3_farm5_field265_rapeseed_2020_<>_yield_ground_truth:  2.892
    Germany_DUP3_farm2_field170_wheat_2019_<>_yield_ground_truth:     9.16
    Germany_DUP3_farm1_field13_rapeseed_2016_<>_yield_ground_truth:   3.03555...
    Germany_DUP3_farm1_field52_wheat_2019_<>_yield_ground_truth:      7.45555...
    Germany_DUP3_farm2_field128_wheat_2019_<>_yield_ground_truth:     7.94
    Germany_DUP3_farm6_field285_rapeseed_2020_<>_yield_ground_truth:  3.87
    ...                                                               ...
    Germany_DUP3_farm5_field269_rapeseed_2017_<>_yield_ground_truth:  2.205
    Germany_DUP3_farm2_field105_wheat_2019_<>_yield_ground_truth:     9.84
    Germany_DUP3_farm6_field281_rapeseed_2019_<>_yield_ground_truth:  3.74
    Germany_DUP3_farm2_field99_wheat_2018_<>_yield_ground_truth:      7.65
    Germany_DUP3_farm5_field275_rapeseed_2018_<>_yield_ground_truth:  4.454
    Germany_DUP3_farm6_field278_rapeseed_2018_<>_yield_ground_truth:  3.8
xarray.Dataset
    • index: 609645
    • time_step: 24
    • band: 120
    • index
      (index)
      object
      '5d35849b-ace1-4dd4-962d-da80c6c...
      array(['5d35849b-ace1-4dd4-962d-da80c6c56bac',
             '12666e72-ec1d-4dec-9918-daf3671d6007',
             '804a0598-e8e3-4528-9acd-05265c6e37bd', ...,
             '2143be39-5455-41d2-9fa8-40fd116b46f7',
             'af826426-856d-4a3a-856b-0ecf0fa286f3',
             'fc0f346e-b273-43cc-b09c-655339046244'], dtype=object)
    • time_step
      (time_step)
      int64
      0 1 2 3 4 5 6 ... 18 19 20 21 22 23
      array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
             18, 19, 20, 21, 22, 23])
    • band
      (band)
      object
      'B01' 'B02' ... 'coord_y' 'coord_z'
      array(['B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B09', 'B11',
             'B12', 'B8A', 'aspect', 'cec_0-5', 'cec_0-5_uncertainty', 'cec_100-200',
             'cec_100-200_uncertainty', 'cec_15-30', 'cec_15-30_uncertainty',
             'cec_30-60', 'cec_30-60_uncertainty', 'cec_5-15',
             'cec_5-15_uncertainty', 'cec_60-100', 'cec_60-100_uncertainty',
             'cfvo_0-5', 'cfvo_0-5_uncertainty', 'cfvo_100-200',
             'cfvo_100-200_uncertainty', 'cfvo_15-30', 'cfvo_15-30_uncertainty',
             'cfvo_30-60', 'cfvo_30-60_uncertainty', 'cfvo_5-15',
             'cfvo_5-15_uncertainty', 'cfvo_60-100', 'cfvo_60-100_uncertainty',
             'clay_0-5', 'clay_0-5_uncertainty', 'clay_100-200',
             'clay_100-200_uncertainty', 'clay_15-30', 'clay_15-30_uncertainty',
             'clay_30-60', 'clay_30-60_uncertainty', 'clay_5-15',
             'clay_5-15_uncertainty', 'clay_60-100', 'clay_60-100_uncertainty',
             'curvature', 'dem', 'nitrogen_0-5', 'nitrogen_0-5_uncertainty',
             'nitrogen_100-200', 'nitrogen_100-200_uncertainty', 'nitrogen_15-30',
             'nitrogen_15-30_uncertainty', 'nitrogen_30-60',
             'nitrogen_30-60_uncertainty', 'nitrogen_5-15',
             'nitrogen_5-15_uncertainty', 'nitrogen_60-100',
             'nitrogen_60-100_uncertainty', 'phh2o_0-5', 'phh2o_0-5_uncertainty',
             'phh2o_100-200', 'phh2o_100-200_uncertainty', 'phh2o_15-30',
             'phh2o_15-30_uncertainty', 'phh2o_30-60', 'phh2o_30-60_uncertainty',
             'phh2o_5-15', 'phh2o_5-15_uncertainty', 'phh2o_60-100',
             'phh2o_60-100_uncertainty', 'sand_0-5', 'sand_0-5_uncertainty',
             'sand_100-200', 'sand_100-200_uncertainty', 'sand_15-30',
             'sand_15-30_uncertainty', 'sand_30-60', 'sand_30-60_uncertainty',
             'sand_5-15', 'sand_5-15_uncertainty', 'sand_60-100',
             'sand_60-100_uncertainty', 'silt_0-5', 'silt_0-5_uncertainty',
             'silt_100-200', 'silt_100-200_uncertainty', 'silt_15-30',
             'silt_15-30_uncertainty', 'silt_30-60', 'silt_30-60_uncertainty',
             'silt_5-15', 'silt_5-15_uncertainty', 'silt_60-100',
             'silt_60-100_uncertainty', 'slope', 'soc_0-5', 'soc_0-5_uncertainty',
             'soc_100-200', 'soc_100-200_uncertainty', 'soc_15-30',
             'soc_15-30_uncertainty', 'soc_30-60', 'soc_30-60_uncertainty',
             'soc_5-15', 'soc_5-15_uncertainty', 'soc_60-100',
             'soc_60-100_uncertainty', 'twi', 'temp_mean', 'temp_max', 'temp_min',
             'total_prec', 'coord_x', 'coord_y', 'coord_z'], dtype=object)
    • target
      (index)
      float32
      ...
      [609645 values with dtype=float32]
    • times
      (index, time_step)
      datetime64[ns]
      ...
      [14631480 values with dtype=datetime64[ns]]
    • seeding_date
      (index)
      uint8
      ...
      0 :
      2015-08-14
      1 :
      2015-08-18
      2 :
      2015-08-20
      3 :
      2015-08-21
      4 :
      2015-08-22
      5 :
      2015-08-23
      6 :
      2015-08-24
      7 :
      2015-08-25
      8 :
      2015-08-26
      9 :
      2015-08-27
      10 :
      2015-08-30
      11 :
      2015-09-02
      12 :
      2015-09-04
      13 :
      2015-09-10
      14 :
      2015-09-11
      15 :
      2015-09-12
      16 :
      2015-09-14
      17 :
      2015-09-17
      18 :
      2015-09-18
      19 :
      2015-09-19
      20 :
      2015-09-22
      21 :
      2015-09-23
      22 :
      2015-09-24
      23 :
      2015-09-29
      24 :
      2015-10-02
      25 :
      2015-10-05
      26 :
      2015-10-06
      27 :
      2015-10-08
      28 :
      2015-10-09
      29 :
      2015-10-15
      30 :
      2015-10-26
      31 :
      2016-08-11
      32 :
      2016-08-14
      33 :
      2016-08-16
      34 :
      2016-08-17
      35 :
      2016-08-18
      36 :
      2016-08-19
      37 :
      2016-08-20
      38 :
      2016-08-22
      39 :
      2016-08-23
      40 :
      2016-08-24
      41 :
      2016-08-25
      42 :
      2016-08-26
      43 :
      2016-08-27
      44 :
      2016-08-30
      45 :
      2016-09-03
      46 :
      2016-09-06
      47 :
      2016-09-15
      48 :
      2016-09-19
      49 :
      2016-09-20
      50 :
      2016-09-21
      51 :
      2016-09-22
      52 :
      2016-09-23
      53 :
      2016-09-26
      54 :
      2016-09-28
      55 :
      2016-09-29
      56 :
      2016-09-30
      57 :
      2016-10-04
      58 :
      2016-10-05
      59 :
      2016-10-06
      60 :
      2016-10-10
      61 :
      2016-10-17
      62 :
      2016-10-29
      63 :
      2016-10-31
      64 :
      2016-11-01
      65 :
      2016-11-02
      66 :
      2016-11-06
      67 :
      2017-08-19
      68 :
      2017-08-22
      69 :
      2017-08-23
      70 :
      2017-08-24
      71 :
      2017-08-25
      72 :
      2017-08-28
      73 :
      2017-08-29
      74 :
      2017-08-31
      75 :
      2017-09-01
      76 :
      2017-09-12
      77 :
      2017-09-16
      78 :
      2017-09-21
      79 :
      2017-09-25
      80 :
      2017-09-26
      81 :
      2017-09-27
      82 :
      2017-09-28
      83 :
      2017-09-29
      84 :
      2017-10-07
      85 :
      2017-10-13
      86 :
      2017-10-14
      87 :
      2017-10-16
      88 :
      2017-10-19
      89 :
      2017-10-20
      90 :
      2017-11-09
      91 :
      2018-08-21
      92 :
      2018-08-23
      93 :
      2018-08-27
      94 :
      2018-08-28
      95 :
      2018-08-30
      96 :
      2018-08-31
      97 :
      2018-09-04
      98 :
      2018-09-05
      99 :
      2018-09-07
      100 :
      2018-09-08
      101 :
      2018-09-10
      102 :
      2018-09-11
      103 :
      2018-09-13
      104 :
      2018-09-14
      105 :
      2018-09-15
      106 :
      2018-09-17
      107 :
      2018-09-18
      108 :
      2018-09-19
      109 :
      2018-09-20
      110 :
      2018-09-21
      111 :
      2018-09-22
      112 :
      2018-09-23
      113 :
      2018-09-25
      114 :
      2018-09-26
      115 :
      2018-09-27
      116 :
      2018-09-28
      117 :
      2018-10-01
      118 :
      2018-10-02
      119 :
      2018-10-03
      120 :
      2018-10-04
      121 :
      2018-10-05
      122 :
      2018-10-06
      123 :
      2018-10-07
      124 :
      2018-10-08
      125 :
      2018-10-09
      126 :
      2018-10-10
      127 :
      2018-10-13
      128 :
      2018-10-17
      129 :
      2018-10-22
      130 :
      2018-10-26
      131 :
      2018-10-30
      132 :
      2018-11-01
      133 :
      2018-11-02
      134 :
      2019-08-16
      135 :
      2019-08-17
      136 :
      2019-08-19
      137 :
      2019-08-20
      138 :
      2019-08-21
      139 :
      2019-08-23
      140 :
      2019-08-24
      141 :
      2019-08-26
      142 :
      2019-08-27
      143 :
      2019-09-01
      144 :
      2019-09-02
      145 :
      2019-09-03
      146 :
      2019-09-04
      147 :
      2019-09-18
      148 :
      2019-09-22
      149 :
      2019-09-24
      150 :
      2019-09-29
      151 :
      2019-10-09
      152 :
      2019-10-11
      153 :
      2019-10-13
      154 :
      2019-10-15
      155 :
      2019-10-23
      156 :
      2019-10-24
      157 :
      2019-11-01
      158 :
      2019-11-04
      159 :
      2020-08-17
      160 :
      2020-08-25
      161 :
      2020-08-26
      162 :
      2020-08-27
      163 :
      2020-08-29
      164 :
      2020-09-23
      165 :
      2020-09-24
      166 :
      2020-09-25
      167 :
      2020-09-26
      168 :
      2020-10-05
      169 :
      2020-10-07
      170 :
      2020-10-08
      171 :
      2020-10-12
      172 :
      2020-10-13
      173 :
      2020-10-17
      174 :
      2020-10-19
      175 :
      2020-10-20
      176 :
      2020-11-12
      177 :
      2021-09-04
      178 :
      2021-09-06
      179 :
      2021-09-07
      180 :
      2021-10-07
      181 :
      2021-10-13
      182 :
      2021-10-16
      183 :
      2021-10-18
      184 :
      2021-10-26
      185 :
      2021-10-27
      186 :
      2021-11-13
      187 :
      2021-11-17
      [609645 values with dtype=uint8]
    • harvesting_date
      (index)
      uint8
      ...
      0 :
      2016-07-16
      1 :
      2016-07-18
      2 :
      2016-07-20
      3 :
      2016-07-21
      4 :
      2016-07-22
      5 :
      2016-07-23
      6 :
      2016-07-24
      7 :
      2016-07-25
      8 :
      2016-07-26
      9 :
      2016-07-27
      10 :
      2016-07-30
      11 :
      2016-07-31
      12 :
      2016-08-01
      13 :
      2016-08-06
      14 :
      2016-08-07
      15 :
      2016-08-08
      16 :
      2016-08-09
      17 :
      2016-08-10
      18 :
      2016-08-11
      19 :
      2016-08-13
      20 :
      2016-08-14
      21 :
      2016-08-15
      22 :
      2016-08-17
      23 :
      2017-07-17
      24 :
      2017-07-18
      25 :
      2017-07-19
      26 :
      2017-07-28
      27 :
      2017-07-29
      28 :
      2017-07-30
      29 :
      2017-07-31
      30 :
      2017-08-01
      31 :
      2017-08-02
      32 :
      2017-08-03
      33 :
      2017-08-04
      34 :
      2017-08-05
      35 :
      2017-08-06
      36 :
      2017-08-07
      37 :
      2017-08-08
      38 :
      2017-08-09
      39 :
      2017-08-10
      40 :
      2017-08-14
      41 :
      2017-08-15
      42 :
      2017-08-16
      43 :
      2017-08-17
      44 :
      2017-08-22
      45 :
      2017-08-23
      46 :
      2017-08-24
      47 :
      2018-07-02
      48 :
      2018-07-03
      49 :
      2018-07-04
      50 :
      2018-07-05
      51 :
      2018-07-08
      52 :
      2018-07-10
      53 :
      2018-07-18
      54 :
      2018-07-19
      55 :
      2018-07-20
      56 :
      2018-07-21
      57 :
      2018-07-23
      58 :
      2018-07-24
      59 :
      2018-07-25
      60 :
      2018-07-27
      61 :
      2018-07-28
      62 :
      2018-07-29
      63 :
      2018-07-30
      64 :
      2018-08-01
      65 :
      2018-08-02
      66 :
      2018-08-27
      67 :
      2018-08-28
      68 :
      2019-07-05
      69 :
      2019-07-11
      70 :
      2019-07-17
      71 :
      2019-07-24
      72 :
      2019-07-25
      73 :
      2019-07-26
      74 :
      2019-07-27
      75 :
      2019-07-28
      76 :
      2019-07-29
      77 :
      2019-07-30
      78 :
      2019-08-02
      79 :
      2019-08-03
      80 :
      2019-08-04
      81 :
      2019-08-05
      82 :
      2019-08-06
      83 :
      2019-08-07
      84 :
      2019-08-08
      85 :
      2019-08-10
      86 :
      2019-08-12
      87 :
      2019-08-14
      88 :
      2019-08-15
      89 :
      2019-08-16
      90 :
      2019-08-17
      91 :
      2019-08-18
      92 :
      2019-08-19
      93 :
      2019-08-20
      94 :
      2019-08-21
      95 :
      2019-08-22
      96 :
      2019-08-23
      97 :
      2020-07-14
      98 :
      2020-07-17
      99 :
      2020-07-18
      100 :
      2020-07-22
      101 :
      2020-07-25
      102 :
      2020-07-27
      103 :
      2020-07-28
      104 :
      2020-07-29
      105 :
      2020-07-30
      106 :
      2020-07-31
      107 :
      2020-08-01
      108 :
      2020-08-05
      109 :
      2020-08-06
      110 :
      2020-08-07
      111 :
      2020-08-08
      112 :
      2020-08-09
      113 :
      2020-08-17
      114 :
      2020-08-19
      115 :
      2021-07-19
      116 :
      2021-07-20
      117 :
      2021-07-27
      118 :
      2021-07-28
      119 :
      2021-07-30
      120 :
      2021-07-31
      121 :
      2021-08-05
      122 :
      2021-08-06
      123 :
      2021-08-07
      124 :
      2021-08-08
      125 :
      2021-08-10
      126 :
      2021-08-18
      127 :
      2021-08-20
      128 :
      2021-08-21
      129 :
      2021-08-24
      130 :
      2021-08-25
      131 :
      2021-09-03
      132 :
      2021-09-04
      133 :
      2022-07-27
      134 :
      2022-07-28
      135 :
      2022-08-02
      136 :
      2022-08-03
      137 :
      2022-08-04
      138 :
      2022-08-06
      139 :
      2022-08-08
      140 :
      2022-08-09
      141 :
      2022-08-10
      142 :
      2022-08-11
      143 :
      2022-08-12
      [609645 values with dtype=uint8]
    • farm_identifier
      (index)
      uint8
      ...
      0 :
      farm1
      1 :
      farm2
      2 :
      farm3
      3 :
      farm4
      4 :
      farm5
      5 :
      farm6
      [609645 values with dtype=uint8]
    • country
      (index)
      uint8
      ...
      0 :
      Germany
      [609645 values with dtype=uint8]
    • crop
      (index)
      uint8
      ...
      0 :
      rapeseed
      1 :
      wheat
      [609645 values with dtype=uint8]
    • year
      (index)
      uint8
      ...
      0 :
      2016
      1 :
      2017
      2 :
      2018
      3 :
      2019
      4 :
      2020
      5 :
      2021
      6 :
      2022
      [609645 values with dtype=uint8]
    • field_shared_name
      (index)
      uint16
      ...
      0 :
      Germany_DUP3_farm1_field10_wheat_2016
      1 :
      Germany_DUP3_farm1_field11_rapeseed_2016
      2 :
      Germany_DUP3_farm1_field12_wheat_2016
      3 :
      Germany_DUP3_farm1_field13_rapeseed_2016
      4 :
      Germany_DUP3_farm1_field14_rapeseed_2016
      5 :
      Germany_DUP3_farm1_field15_rapeseed_2016
      6 :
      Germany_DUP3_farm1_field16_wheat_2016
      7 :
      Germany_DUP3_farm1_field17_wheat_2016
      8 :
      Germany_DUP3_farm1_field18_rapeseed_2016
      9 :
      Germany_DUP3_farm1_field19_rapeseed_2017
      10 :
      Germany_DUP3_farm1_field1_wheat_2016
      11 :
      Germany_DUP3_farm1_field20_rapeseed_2017
      12 :
      Germany_DUP3_farm1_field21_rapeseed_2017
      13 :
      Germany_DUP3_farm1_field22_rapeseed_2016
      14 :
      Germany_DUP3_farm1_field23_wheat_2017
      15 :
      Germany_DUP3_farm1_field24_rapeseed_2017
      16 :
      Germany_DUP3_farm1_field25_rapeseed_2017
      17 :
      Germany_DUP3_farm1_field26_wheat_2017
      18 :
      Germany_DUP3_farm1_field27_rapeseed_2017
      19 :
      Germany_DUP3_farm1_field28_wheat_2017
      20 :
      Germany_DUP3_farm1_field29_rapeseed_2017
      21 :
      Germany_DUP3_farm1_field2_wheat_2016
      22 :
      Germany_DUP3_farm1_field30_wheat_2017
      23 :
      Germany_DUP3_farm1_field31_wheat_2017
      24 :
      Germany_DUP3_farm1_field32_wheat_2017
      25 :
      Germany_DUP3_farm1_field33_wheat_2016
      26 :
      Germany_DUP3_farm1_field34_wheat_2017
      27 :
      Germany_DUP3_farm1_field35_wheat_2017
      28 :
      Germany_DUP3_farm1_field36_wheat_2017
      29 :
      Germany_DUP3_farm1_field37_wheat_2017
      30 :
      Germany_DUP3_farm1_field38_rapeseed_2019
      31 :
      Germany_DUP3_farm1_field39_wheat_2019
      32 :
      Germany_DUP3_farm1_field3_wheat_2016
      33 :
      Germany_DUP3_farm1_field40_wheat_2019
      34 :
      Germany_DUP3_farm1_field41_wheat_2019
      35 :
      Germany_DUP3_farm1_field42_wheat_2019
      36 :
      Germany_DUP3_farm1_field43_wheat_2016
      37 :
      Germany_DUP3_farm1_field44_wheat_2019
      38 :
      Germany_DUP3_farm1_field45_wheat_2019
      39 :
      Germany_DUP3_farm1_field46_wheat_2019
      40 :
      Germany_DUP3_farm1_field47_wheat_2019
      41 :
      Germany_DUP3_farm1_field48_wheat_2019
      42 :
      Germany_DUP3_farm1_field49_wheat_2019
      43 :
      Germany_DUP3_farm1_field4_rapeseed_2016
      44 :
      Germany_DUP3_farm1_field50_rapeseed_2019
      45 :
      Germany_DUP3_farm1_field51_wheat_2019
      46 :
      Germany_DUP3_farm1_field52_wheat_2019
      47 :
      Germany_DUP3_farm1_field53_wheat_2016
      48 :
      Germany_DUP3_farm1_field54_rapeseed_2019
      49 :
      Germany_DUP3_farm1_field55_rapeseed_2019
      50 :
      Germany_DUP3_farm1_field56_wheat_2019
      51 :
      Germany_DUP3_farm1_field57_wheat_2019
      52 :
      Germany_DUP3_farm1_field58_wheat_2019
      53 :
      Germany_DUP3_farm1_field59_wheat_2019
      54 :
      Germany_DUP3_farm1_field5_wheat_2016
      55 :
      Germany_DUP3_farm1_field60_wheat_2019
      56 :
      Germany_DUP3_farm1_field61_wheat_2019
      57 :
      Germany_DUP3_farm1_field62_wheat_2019
      58 :
      Germany_DUP3_farm1_field63_wheat_2016
      59 :
      Germany_DUP3_farm1_field64_rapeseed_2016
      60 :
      Germany_DUP3_farm1_field65_rapeseed_2016
      61 :
      Germany_DUP3_farm1_field66_wheat_2016
      62 :
      Germany_DUP3_farm1_field6_wheat_2016
      63 :
      Germany_DUP3_farm1_field7_rapeseed_2016
      64 :
      Germany_DUP3_farm1_field8_rapeseed_2016
      65 :
      Germany_DUP3_farm1_field9_wheat_2016
      66 :
      Germany_DUP3_farm2_field100_wheat_2019
      67 :
      Germany_DUP3_farm2_field101_wheat_2020
      68 :
      Germany_DUP3_farm2_field102_wheat_2018
      69 :
      Germany_DUP3_farm2_field103_wheat_2019
      70 :
      Germany_DUP3_farm2_field104_wheat_2021
      71 :
      Germany_DUP3_farm2_field105_wheat_2019
      72 :
      Germany_DUP3_farm2_field106_wheat_2016
      73 :
      Germany_DUP3_farm2_field107_wheat_2018
      74 :
      Germany_DUP3_farm2_field108_wheat_2016
      75 :
      Germany_DUP3_farm2_field109_wheat_2020
      76 :
      Germany_DUP3_farm2_field110_wheat_2018
      77 :
      Germany_DUP3_farm2_field111_wheat_2019
      78 :
      Germany_DUP3_farm2_field112_wheat_2021
      79 :
      Germany_DUP3_farm2_field113_wheat_2018
      80 :
      Germany_DUP3_farm2_field114_wheat_2018
      81 :
      Germany_DUP3_farm2_field115_rapeseed_2020
      82 :
      Germany_DUP3_farm2_field116_wheat_2021
      83 :
      Germany_DUP3_farm2_field117_rapeseed_2021
      84 :
      Germany_DUP3_farm2_field118_wheat_2019
      85 :
      Germany_DUP3_farm2_field119_rapeseed_2020
      86 :
      Germany_DUP3_farm2_field120_wheat_2021
      87 :
      Germany_DUP3_farm2_field121_wheat_2019
      88 :
      Germany_DUP3_farm2_field122_wheat_2020
      89 :
      Germany_DUP3_farm2_field123_wheat_2018
      90 :
      Germany_DUP3_farm2_field124_wheat_2018
      91 :
      Germany_DUP3_farm2_field125_rapeseed_2020
      92 :
      Germany_DUP3_farm2_field126_wheat_2021
      93 :
      Germany_DUP3_farm2_field127_wheat_2018
      94 :
      Germany_DUP3_farm2_field128_wheat_2019
      95 :
      Germany_DUP3_farm2_field129_wheat_2021
      96 :
      Germany_DUP3_farm2_field130_wheat_2016
      97 :
      Germany_DUP3_farm2_field131_wheat_2019
      98 :
      Germany_DUP3_farm2_field132_rapeseed_2021
      99 :
      Germany_DUP3_farm2_field133_wheat_2019
      100 :
      Germany_DUP3_farm2_field134_wheat_2020
      101 :
      Germany_DUP3_farm2_field135_wheat_2018
      102 :
      Germany_DUP3_farm2_field136_wheat_2019
      103 :
      Germany_DUP3_farm2_field137_rapeseed_2021
      104 :
      Germany_DUP3_farm2_field138_wheat_2016
      105 :
      Germany_DUP3_farm2_field139_rapeseed_2018
      106 :
      Germany_DUP3_farm2_field140_wheat_2019
      107 :
      Germany_DUP3_farm2_field141_wheat_2018
      108 :
      Germany_DUP3_farm2_field142_rapeseed_2021
      109 :
      Germany_DUP3_farm2_field143_wheat_2016
      110 :
      Germany_DUP3_farm2_field144_wheat_2018
      111 :
      Germany_DUP3_farm2_field145_wheat_2019
      112 :
      Germany_DUP3_farm2_field146_rapeseed_2021
      113 :
      Germany_DUP3_farm2_field147_wheat_2018
      114 :
      Germany_DUP3_farm2_field148_wheat_2019
      115 :
      Germany_DUP3_farm2_field149_rapeseed_2021
      116 :
      Germany_DUP3_farm2_field150_wheat_2018
      117 :
      Germany_DUP3_farm2_field151_wheat_2018
      118 :
      Germany_DUP3_farm2_field152_wheat_2019
      119 :
      Germany_DUP3_farm2_field153_rapeseed_2020
      120 :
      Germany_DUP3_farm2_field154_wheat_2021
      121 :
      Germany_DUP3_farm2_field155_wheat_2018
      122 :
      Germany_DUP3_farm2_field156_rapeseed_2020
      123 :
      Germany_DUP3_farm2_field157_wheat_2021
      124 :
      Germany_DUP3_farm2_field158_wheat_2018
      125 :
      Germany_DUP3_farm2_field159_wheat_2019
      126 :
      Germany_DUP3_farm2_field160_wheat_2021
      127 :
      Germany_DUP3_farm2_field161_rapeseed_2016
      128 :
      Germany_DUP3_farm2_field162_wheat_2019
      129 :
      Germany_DUP3_farm2_field163_wheat_2020
      130 :
      Germany_DUP3_farm2_field164_wheat_2021
      131 :
      Germany_DUP3_farm2_field165_wheat_2019
      132 :
      Germany_DUP3_farm2_field166_wheat_2020
      133 :
      Germany_DUP3_farm2_field167_wheat_2021
      134 :
      Germany_DUP3_farm2_field168_wheat_2016
      135 :
      Germany_DUP3_farm2_field169_rapeseed_2018
      136 :
      Germany_DUP3_farm2_field170_wheat_2019
      137 :
      Germany_DUP3_farm2_field171_wheat_2018
      138 :
      Germany_DUP3_farm2_field172_wheat_2018
      139 :
      Germany_DUP3_farm2_field173_rapeseed_2020
      140 :
      Germany_DUP3_farm2_field174_wheat_2021
      141 :
      Germany_DUP3_farm2_field175_wheat_2021
      142 :
      Germany_DUP3_farm2_field176_rapeseed_2017
      143 :
      Germany_DUP3_farm2_field177_rapeseed_2017
      144 :
      Germany_DUP3_farm2_field178_rapeseed_2017
      145 :
      Germany_DUP3_farm2_field179_rapeseed_2017
      146 :
      Germany_DUP3_farm2_field180_rapeseed_2017
      147 :
      Germany_DUP3_farm2_field181_wheat_2017
      148 :
      Germany_DUP3_farm2_field182_wheat_2017
      149 :
      Germany_DUP3_farm2_field183_wheat_2017
      150 :
      Germany_DUP3_farm2_field184_wheat_2017
      151 :
      Germany_DUP3_farm2_field185_wheat_2017
      152 :
      Germany_DUP3_farm2_field186_wheat_2017
      153 :
      Germany_DUP3_farm2_field187_wheat_2017
      154 :
      Germany_DUP3_farm2_field188_wheat_2017
      155 :
      Germany_DUP3_farm2_field189_wheat_2017
      156 :
      Germany_DUP3_farm2_field190_wheat_2017
      157 :
      Germany_DUP3_farm2_field191_rapeseed_2017
      158 :
      Germany_DUP3_farm2_field192_wheat_2017
      159 :
      Germany_DUP3_farm2_field193_wheat_2017
      160 :
      Germany_DUP3_farm2_field194_wheat_2017
      161 :
      Germany_DUP3_farm2_field195_wheat_2017
      162 :
      Germany_DUP3_farm2_field196_wheat_2017
      163 :
      Germany_DUP3_farm2_field197_rapeseed_2017
      164 :
      Germany_DUP3_farm2_field198_rapeseed_2017
      165 :
      Germany_DUP3_farm2_field199_rapeseed_2022
      166 :
      Germany_DUP3_farm2_field200_wheat_2022
      167 :
      Germany_DUP3_farm2_field201_wheat_2022
      168 :
      Germany_DUP3_farm2_field202_wheat_2022
      169 :
      Germany_DUP3_farm2_field203_wheat_2022
      170 :
      Germany_DUP3_farm2_field204_wheat_2022
      171 :
      Germany_DUP3_farm2_field205_wheat_2022
      172 :
      Germany_DUP3_farm2_field206_wheat_2022
      173 :
      Germany_DUP3_farm2_field207_wheat_2022
      174 :
      Germany_DUP3_farm2_field208_wheat_2022
      175 :
      Germany_DUP3_farm2_field209_wheat_2022
      176 :
      Germany_DUP3_farm2_field210_wheat_2022
      177 :
      Germany_DUP3_farm2_field211_wheat_2022
      178 :
      Germany_DUP3_farm2_field212_wheat_2022
      179 :
      Germany_DUP3_farm2_field213_wheat_2022
      180 :
      Germany_DUP3_farm2_field214_rapeseed_2022
      181 :
      Germany_DUP3_farm2_field215_wheat_2022
      182 :
      Germany_DUP3_farm2_field216_rapeseed_2022
      183 :
      Germany_DUP3_farm2_field217_rapeseed_2022
      184 :
      Germany_DUP3_farm2_field218_wheat_2022
      185 :
      Germany_DUP3_farm2_field219_wheat_2022
      186 :
      Germany_DUP3_farm2_field220_rapeseed_2022
      187 :
      Germany_DUP3_farm2_field67_wheat_2016
      188 :
      Germany_DUP3_farm2_field68_rapeseed_2018
      189 :
      Germany_DUP3_farm2_field69_wheat_2019
      190 :
      Germany_DUP3_farm2_field70_wheat_2020
      191 :
      Germany_DUP3_farm2_field71_wheat_2020
      192 :
      Germany_DUP3_farm2_field72_wheat_2021
      193 :
      Germany_DUP3_farm2_field73_wheat_2018
      194 :
      Germany_DUP3_farm2_field74_wheat_2020
      195 :
      Germany_DUP3_farm2_field75_wheat_2018
      196 :
      Germany_DUP3_farm2_field76_wheat_2019
      197 :
      Germany_DUP3_farm2_field77_wheat_2021
      198 :
      Germany_DUP3_farm2_field78_wheat_2016
      199 :
      Germany_DUP3_farm2_field79_wheat_2019
      200 :
      Germany_DUP3_farm2_field80_wheat_2020
      201 :
      Germany_DUP3_farm2_field81_wheat_2021
      202 :
      Germany_DUP3_farm2_field82_wheat_2019
      203 :
      Germany_DUP3_farm2_field83_wheat_2019
      204 :
      Germany_DUP3_farm2_field84_wheat_2019
      205 :
      Germany_DUP3_farm2_field85_wheat_2020
      206 :
      Germany_DUP3_farm2_field86_wheat_2018
      207 :
      Germany_DUP3_farm2_field87_wheat_2018
      208 :
      Germany_DUP3_farm2_field88_wheat_2019
      209 :
      Germany_DUP3_farm2_field89_wheat_2018
      210 :
      Germany_DUP3_farm2_field90_wheat_2020
      211 :
      Germany_DUP3_farm2_field91_wheat_2021
      212 :
      Germany_DUP3_farm2_field92_wheat_2018
      213 :
      Germany_DUP3_farm2_field93_wheat_2018
      214 :
      Germany_DUP3_farm2_field94_wheat_2019
      215 :
      Germany_DUP3_farm2_field95_rapeseed_2020
      216 :
      Germany_DUP3_farm2_field96_wheat_2021
      217 :
      Germany_DUP3_farm2_field97_wheat_2021
      218 :
      Germany_DUP3_farm2_field98_wheat_2016
      219 :
      Germany_DUP3_farm2_field99_wheat_2018
      220 :
      Germany_DUP3_farm3_field221_rapeseed_2018
      221 :
      Germany_DUP3_farm3_field222_rapeseed_2018
      222 :
      Germany_DUP3_farm3_field223_wheat_2018
      223 :
      Germany_DUP3_farm3_field224_rapeseed_2019
      224 :
      Germany_DUP3_farm3_field225_rapeseed_2019
      225 :
      Germany_DUP3_farm3_field226_rapeseed_2019
      226 :
      Germany_DUP3_farm3_field227_wheat_2019
      227 :
      Germany_DUP3_farm3_field228_rapeseed_2020
      228 :
      Germany_DUP3_farm3_field229_rapeseed_2020
      229 :
      Germany_DUP3_farm3_field230_rapeseed_2020
      230 :
      Germany_DUP3_farm3_field231_rapeseed_2016
      231 :
      Germany_DUP3_farm3_field232_wheat_2020
      232 :
      Germany_DUP3_farm3_field233_rapeseed_2016
      233 :
      Germany_DUP3_farm3_field234_rapeseed_2016
      234 :
      Germany_DUP3_farm3_field235_wheat_2016
      235 :
      Germany_DUP3_farm3_field236_rapeseed_2017
      236 :
      Germany_DUP3_farm3_field237_rapeseed_2017
      237 :
      Germany_DUP3_farm3_field238_rapeseed_2017
      238 :
      Germany_DUP3_farm3_field239_wheat_2017
      239 :
      Germany_DUP3_farm3_field240_rapeseed_2018
      240 :
      Germany_DUP3_farm4_field241_wheat_2018
      241 :
      Germany_DUP3_farm4_field242_rapeseed_2018
      242 :
      Germany_DUP3_farm4_field243_rapeseed_2018
      243 :
      Germany_DUP3_farm4_field244_wheat_2019
      244 :
      Germany_DUP3_farm4_field245_rapeseed_2019
      245 :
      Germany_DUP3_farm4_field246_rapeseed_2019
      246 :
      Germany_DUP3_farm4_field247_rapeseed_2019
      247 :
      Germany_DUP3_farm4_field248_rapeseed_2020
      248 :
      Germany_DUP3_farm4_field249_rapeseed_2020
      249 :
      Germany_DUP3_farm4_field250_rapeseed_2020
      250 :
      Germany_DUP3_farm4_field251_rapeseed_2016
      251 :
      Germany_DUP3_farm4_field252_wheat_2020
      252 :
      Germany_DUP3_farm4_field253_wheat_2016
      253 :
      Germany_DUP3_farm4_field254_rapeseed_2016
      254 :
      Germany_DUP3_farm4_field255_rapeseed_2016
      255 :
      Germany_DUP3_farm4_field256_rapeseed_2017
      256 :
      Germany_DUP3_farm4_field257_rapeseed_2017
      257 :
      Germany_DUP3_farm4_field258_wheat_2017
      258 :
      Germany_DUP3_farm4_field259_rapeseed_2017
      259 :
      Germany_DUP3_farm4_field260_rapeseed_2018
      260 :
      Germany_DUP3_farm5_field261_rapeseed_2019
      261 :
      Germany_DUP3_farm5_field262_rapeseed_2019
      262 :
      Germany_DUP3_farm5_field263_rapeseed_2019
      263 :
      Germany_DUP3_farm5_field264_rapeseed_2020
      264 :
      Germany_DUP3_farm5_field265_rapeseed_2020
      265 :
      Germany_DUP3_farm5_field266_wheat_2020
      266 :
      Germany_DUP3_farm5_field267_rapeseed_2020
      267 :
      Germany_DUP3_farm5_field268_wheat_2017
      268 :
      Germany_DUP3_farm5_field269_rapeseed_2017
      269 :
      Germany_DUP3_farm5_field270_rapeseed_2017
      270 :
      Germany_DUP3_farm5_field271_rapeseed_2017
      271 :
      Germany_DUP3_farm5_field272_rapeseed_2018
      272 :
      Germany_DUP3_farm5_field273_rapeseed_2018
      273 :
      Germany_DUP3_farm5_field274_wheat_2018
      274 :
      Germany_DUP3_farm5_field275_rapeseed_2018
      275 :
      Germany_DUP3_farm5_field276_wheat_2019
      276 :
      Germany_DUP3_farm6_field277_rapeseed_2018
      277 :
      Germany_DUP3_farm6_field278_rapeseed_2018
      278 :
      Germany_DUP3_farm6_field279_wheat_2018
      279 :
      Germany_DUP3_farm6_field280_rapeseed_2019
      280 :
      Germany_DUP3_farm6_field281_rapeseed_2019
      281 :
      Germany_DUP3_farm6_field282_wheat_2019
      282 :
      Germany_DUP3_farm6_field283_rapeseed_2020
      283 :
      Germany_DUP3_farm6_field284_rapeseed_2020
      284 :
      Germany_DUP3_farm6_field285_rapeseed_2020
      285 :
      Germany_DUP3_farm6_field286_wheat_2020
      286 :
      Germany_DUP3_farm6_field287_wheat_2016
      287 :
      Germany_DUP3_farm6_field288_rapeseed_2021
      288 :
      Germany_DUP3_farm6_field289_wheat_2021
      289 :
      Germany_DUP3_farm6_field290_rapeseed_2021
      290 :
      Germany_DUP3_farm6_field291_rapeseed_2021
      291 :
      Germany_DUP3_farm6_field292_rapeseed_2016
      292 :
      Germany_DUP3_farm6_field293_rapeseed_2016
      293 :
      Germany_DUP3_farm6_field294_rapeseed_2016
      294 :
      Germany_DUP3_farm6_field295_wheat_2017
      295 :
      Germany_DUP3_farm6_field296_rapeseed_2017
      296 :
      Germany_DUP3_farm6_field297_rapeseed_2017
      297 :
      Germany_DUP3_farm6_field298_rapeseed_2017
      298 :
      Germany_DUP3_farm6_field299_rapeseed_2018
      [609645 values with dtype=uint16]
    • seeding_date_type
      (index)
      uint8
      ...
      0 :
      290 days before harvest
      1 :
      333 days before harvest
      2 :
      provided_by_farmer
      [609645 values with dtype=uint8]
    • row
      (index)
      uint8
      ...
      0 :
      0
      1 :
      1
      2 :
      2
      3 :
      3
      4 :
      4
      5 :
      5
      6 :
      6
      7 :
      7
      8 :
      8
      9 :
      9
      10 :
      10
      11 :
      11
      12 :
      12
      13 :
      13
      14 :
      14
      15 :
      15
      16 :
      16
      17 :
      17
      18 :
      18
      19 :
      19
      20 :
      20
      21 :
      21
      22 :
      22
      23 :
      23
      24 :
      24
      25 :
      25
      26 :
      26
      27 :
      27
      28 :
      28
      29 :
      29
      30 :
      30
      31 :
      31
      32 :
      32
      33 :
      33
      34 :
      34
      35 :
      35
      36 :
      36
      37 :
      37
      38 :
      38
      39 :
      39
      40 :
      40
      41 :
      41
      42 :
      42
      43 :
      43
      44 :
      44
      45 :
      45
      46 :
      46
      47 :
      47
      48 :
      48
      49 :
      49
      50 :
      50
      51 :
      51
      52 :
      52
      53 :
      53
      54 :
      54
      55 :
      55
      56 :
      56
      57 :
      57
      58 :
      58
      59 :
      59
      60 :
      60
      61 :
      61
      62 :
      62
      63 :
      63
      64 :
      64
      65 :
      65
      66 :
      66
      67 :
      67
      68 :
      68
      69 :
      69
      70 :
      70
      71 :
      71
      72 :
      72
      73 :
      73
      74 :
      74
      75 :
      75
      76 :
      76
      77 :
      77
      78 :
      78
      79 :
      79
      80 :
      80
      81 :
      81
      82 :
      82
      83 :
      83
      84 :
      84
      85 :
      85
      86 :
      86
      87 :
      87
      88 :
      88
      89 :
      89
      90 :
      90
      91 :
      91
      92 :
      92
      93 :
      93
      94 :
      94
      95 :
      95
      96 :
      96
      97 :
      97
      98 :
      98
      99 :
      99
      100 :
      100
      101 :
      101
      102 :
      102
      103 :
      103
      104 :
      104
      105 :
      105
      106 :
      106
      107 :
      107
      108 :
      108
      109 :
      109
      110 :
      110
      111 :
      111
      112 :
      112
      113 :
      113
      114 :
      114
      115 :
      115
      116 :
      116
      117 :
      117
      118 :
      118
      119 :
      119
      120 :
      120
      121 :
      121
      122 :
      122
      123 :
      123
      124 :
      124
      125 :
      125
      126 :
      126
      127 :
      127
      128 :
      128
      129 :
      129
      130 :
      130
      131 :
      131
      132 :
      132
      133 :
      133
      134 :
      134
      135 :
      135
      136 :
      136
      137 :
      137
      138 :
      138
      139 :
      139
      140 :
      140
      141 :
      141
      142 :
      142
      143 :
      143
      144 :
      144
      145 :
      145
      146 :
      146
      147 :
      147
      148 :
      148
      149 :
      149
      150 :
      150
      151 :
      151
      152 :
      152
      153 :
      153
      154 :
      154
      155 :
      155
      156 :
      156
      157 :
      157
      158 :
      158
      159 :
      159
      160 :
      160
      161 :
      161
      162 :
      162
      163 :
      163
      164 :
      164
      165 :
      165
      166 :
      166
      167 :
      167
      168 :
      168
      169 :
      169
      170 :
      170
      171 :
      171
      172 :
      172
      173 :
      173
      174 :
      174
      175 :
      175
      176 :
      176
      177 :
      177
      178 :
      178
      179 :
      179
      180 :
      180
      181 :
      181
      182 :
      182
      183 :
      183
      184 :
      184
      185 :
      185
      186 :
      186
      187 :
      187
      188 :
      188
      189 :
      189
      190 :
      190
      191 :
      191
      192 :
      192
      [609645 values with dtype=uint8]
    • col
      (index)
      uint8
      ...
      0 :
      0
      1 :
      1
      2 :
      2
      3 :
      3
      4 :
      4
      5 :
      5
      6 :
      6
      7 :
      7
      8 :
      8
      9 :
      9
      10 :
      10
      11 :
      11
      12 :
      12
      13 :
      13
      14 :
      14
      15 :
      15
      16 :
      16
      17 :
      17
      18 :
      18
      19 :
      19
      20 :
      20
      21 :
      21
      22 :
      22
      23 :
      23
      24 :
      24
      25 :
      25
      26 :
      26
      27 :
      27
      28 :
      28
      29 :
      29
      30 :
      30
      31 :
      31
      32 :
      32
      33 :
      33
      34 :
      34
      35 :
      35
      36 :
      36
      37 :
      37
      38 :
      38
      39 :
      39
      40 :
      40
      41 :
      41
      42 :
      42
      43 :
      43
      44 :
      44
      45 :
      45
      46 :
      46
      47 :
      47
      48 :
      48
      49 :
      49
      50 :
      50
      51 :
      51
      52 :
      52
      53 :
      53
      54 :
      54
      55 :
      55
      56 :
      56
      57 :
      57
      58 :
      58
      59 :
      59
      60 :
      60
      61 :
      61
      62 :
      62
      63 :
      63
      64 :
      64
      65 :
      65
      66 :
      66
      67 :
      67
      68 :
      68
      69 :
      69
      70 :
      70
      71 :
      71
      72 :
      72
      73 :
      73
      74 :
      74
      75 :
      75
      76 :
      76
      77 :
      77
      78 :
      78
      79 :
      79
      80 :
      80
      81 :
      81
      82 :
      82
      83 :
      83
      84 :
      84
      85 :
      85
      86 :
      86
      87 :
      87
      88 :
      88
      89 :
      89
      90 :
      90
      91 :
      91
      92 :
      92
      93 :
      93
      94 :
      94
      95 :
      95
      96 :
      96
      97 :
      97
      98 :
      98
      99 :
      99
      100 :
      100
      101 :
      101
      102 :
      102
      103 :
      103
      104 :
      104
      105 :
      105
      106 :
      106
      107 :
      107
      108 :
      108
      109 :
      109
      110 :
      110
      111 :
      111
      112 :
      112
      113 :
      113
      114 :
      114
      115 :
      115
      116 :
      116
      117 :
      117
      118 :
      118
      119 :
      119
      120 :
      120
      121 :
      121
      122 :
      122
      123 :
      123
      124 :
      124
      125 :
      125
      126 :
      126
      127 :
      127
      128 :
      128
      129 :
      129
      130 :
      130
      131 :
      131
      132 :
      132
      133 :
      133
      134 :
      134
      135 :
      135
      136 :
      136
      137 :
      137
      138 :
      138
      139 :
      139
      140 :
      140
      141 :
      141
      142 :
      142
      143 :
      143
      144 :
      144
      145 :
      145
      146 :
      146
      147 :
      147
      148 :
      148
      149 :
      149
      150 :
      150
      151 :
      151
      152 :
      152
      153 :
      153
      154 :
      154
      155 :
      155
      156 :
      156
      157 :
      157
      158 :
      158
      159 :
      159
      160 :
      160
      161 :
      161
      162 :
      162
      163 :
      163
      164 :
      164
      165 :
      165
      166 :
      166
      167 :
      167
      168 :
      168
      169 :
      169
      170 :
      170
      171 :
      171
      172 :
      172
      173 :
      173
      174 :
      174
      175 :
      175
      176 :
      176
      177 :
      177
      178 :
      178
      179 :
      179
      180 :
      180
      181 :
      181
      182 :
      182
      183 :
      183
      184 :
      184
      185 :
      185
      186 :
      186
      187 :
      187
      188 :
      188
      189 :
      189
      190 :
      190
      191 :
      191
      192 :
      192
      193 :
      193
      194 :
      194
      195 :
      195
      196 :
      196
      197 :
      197
      198 :
      198
      199 :
      199
      200 :
      200
      201 :
      201
      202 :
      202
      203 :
      203
      204 :
      204
      205 :
      205
      206 :
      206
      207 :
      207
      208 :
      208
      209 :
      209
      210 :
      210
      211 :
      211
      212 :
      212
      213 :
      213
      214 :
      214
      215 :
      215
      216 :
      216
      217 :
      217
      218 :
      218
      219 :
      219
      220 :
      220
      221 :
      221
      222 :
      222
      223 :
      223
      224 :
      224
      225 :
      225
      226 :
      226
      227 :
      227
      228 :
      228
      229 :
      229
      230 :
      230
      231 :
      231
      232 :
      232
      233 :
      233
      234 :
      234
      235 :
      235
      236 :
      236
      237 :
      237
      238 :
      238
      239 :
      239
      240 :
      240
      241 :
      241
      242 :
      242
      243 :
      243
      244 :
      244
      245 :
      245
      246 :
      246
      247 :
      247
      248 :
      248
      249 :
      249
      250 :
      250
      251 :
      251
      252 :
      252
      253 :
      253
      [609645 values with dtype=uint8]
    • stats-mean
      (band)
      float32
      ...
      array([ 4.692109e+02,  5.659758e+02,  8.648016e+02,  8.458782e+02,
              1.385048e+03,  2.816638e+03,  3.310711e+03,  3.465321e+03,
              3.517868e+03,  1.952083e+03,  1.302678e+03,  3.508458e+03,
              1.466668e+02,  2.923672e+02,  1.609534e+02,  1.511189e+02,
              1.546581e+02,  1.625051e+02,  1.562471e+02,  1.563665e+02,
              1.546317e+02,  1.873578e+02,  1.552501e+02,  1.580394e+02,
              1.547470e+02,  8.064277e+01,  1.636329e+02,  1.190424e+02,
              2.029094e+02,  7.301254e+01,  1.710131e+02,  8.227399e+01,
              1.764964e+02,  8.387760e+01,  1.538846e+02,  9.716603e+01,
              1.906530e+02,  1.687633e+02,  1.933106e+02,  2.219411e+02,
              1.839360e+02,  1.841485e+02,  1.883025e+02,  2.128548e+02,
              1.898220e+02,  1.497745e+02,  1.792004e+02,  2.223051e+02,
              1.843334e+02,  1.018857e-02,  1.440826e+02,  6.881603e+02,
              1.967202e+02,  1.845898e+02,  4.029062e+02,  2.212720e+02,
              2.032493e+02,  2.091076e+02,  2.706213e+02,  2.150289e+02,
              1.591017e+02,  2.082806e+02,  3.857381e+02,  6.296049e+01,
              1.323334e+02,  6.712882e+01,  1.321708e+02,  6.522775e+01,
              1.317232e+02,  6.602905e+01,  1.320717e+02,  6.454297e+01,
              1.315354e+02,  6.676228e+01,  1.321646e+02,  5.153842e+02,
              1.436389e+02,  4.946397e+02,  1.447188e+02,  5.259023e+02,
              1.417046e+02,  5.056294e+02,  1.426902e+02,  5.256458e+02,
              1.427869e+02,  4.964501e+02,  1.433246e+02,  3.119841e+02,
              1.549032e+02,  2.795531e+02,  1.653452e+02,  2.861007e+02,
              1.594743e+02,  2.776399e+02,  1.611905e+02,  3.207123e+02,
              1.537937e+02,  2.773682e+02,  1.615185e+02,  3.481279e+03,
              5.289557e+02,  1.002775e+02,  7.750367e+01,  8.737428e+01,
              1.797713e+02,  3.449158e+01,  1.112004e+02,  5.472574e+01,
              2.312487e+02,  3.809411e+01,  8.609125e+01,  7.656245e+01,
              4.542884e+00,  8.225069e+03,  8.328023e+03,  8.117643e+03,
              5.370276e-02, -3.076400e-01, -2.597631e-01,  4.430459e-01],
            dtype=float32)
    • stats-min
      (band)
      float32
      ...
      array([ 0.000000e+00,  1.000000e+00,  1.000000e+00,  1.000000e+00,
              8.900000e+01,  3.840000e+02,  4.490000e+02,  1.000000e+00,
              3.400000e+02,  1.080000e+02,  3.400000e+01,  4.770000e+02,
              9.107309e-03,  1.400000e+01,  1.700000e+01,  9.000000e+00,
              1.800000e+01,  9.000000e+00,  1.900000e+01,  9.000000e+00,
              1.700000e+01,  1.000000e+01,  1.900000e+01,  9.000000e+00,
              1.900000e+01,  4.000000e+00,  2.300000e+01,  8.000000e+00,
              2.900000e+01,  4.000000e+00,  2.300000e+01,  6.000000e+00,
              2.300000e+01,  4.000000e+00,  1.700000e+01,  7.000000e+00,
              2.700000e+01,  7.000000e+00,  3.300000e+01,  1.000000e+01,
              2.900000e+01,  8.000000e+00,  2.600000e+01,  1.000000e+01,
              2.600000e+01,  6.000000e+00,  1.800000e+01,  1.000000e+01,
              2.700000e+01, -2.219799e+00,  4.232933e+01,  4.200000e+01,
              4.500000e+01,  8.000000e+00,  4.900000e+01,  1.000000e+01,
              2.300000e+01,  1.100000e+01,  2.500000e+01,  9.000000e+00,
              9.000000e+00,  1.100000e+01,  4.600000e+01,  3.000000e+00,
              4.000000e+00,  3.000000e+00,  4.000000e+00,  3.000000e+00,
              3.000000e+00,  3.000000e+00,  4.000000e+00,  3.000000e+00,
              3.000000e+00,  3.000000e+00,  4.000000e+00,  2.600000e+01,
              7.000000e+00,  2.200000e+01,  1.000000e+01,  2.300000e+01,
              7.000000e+00,  2.200000e+01,  7.000000e+00,  2.600000e+01,
              4.000000e+00,  2.200000e+01,  9.000000e+00,  1.400000e+01,
              1.300000e+01,  1.500000e+01,  2.200000e+01,  1.700000e+01,
              1.300000e+01,  1.600000e+01,  1.400000e+01,  1.500000e+01,
              1.300000e+01,  1.600000e+01,  1.800000e+01,  2.690213e+00,
              2.900000e+01,  7.000000e+00,  3.000000e+00,  2.000000e+00,
              1.000000e+01,  1.000000e+00,  6.000000e+00,  3.000000e+00,
              9.000000e+00,  1.000000e+00,  4.000000e+00,  3.000000e+00,
              2.189456e+00,  2.815921e+02,  2.842222e+02,  2.782175e+02,
              0.000000e+00, -8.556525e-01, -9.153565e-01, -5.301749e-01],
            dtype=float32)
    • stats-max
      (band)
      float32
      ...
      array([ 8.976000e+03,  4.396000e+03,  5.640000e+03,  7.364000e+03,
              8.606000e+03,  9.465000e+03,  1.011000e+04,  8.992000e+03,
              1.421200e+04,  7.731000e+03,  8.530000e+03,  1.052300e+04,
              3.552538e+02,  3.450000e+02,  3.121600e+04,  2.140000e+02,
              3.121600e+04,  2.180000e+02,  3.121600e+04,  2.160000e+02,
              3.121600e+04,  2.360000e+02,  3.121600e+04,  2.210000e+02,
              3.121600e+04,  1.290000e+02,  3.121700e+04,  3.050000e+02,
              3.121900e+04,  1.590000e+02,  3.121700e+04,  2.160000e+02,
              3.122000e+04,  1.320000e+02,  3.121600e+04,  2.780000e+02,
              3.122000e+04,  2.950000e+02,  3.121800e+04,  3.520000e+02,
              3.121800e+04,  3.550000e+02,  3.121800e+04,  3.780000e+02,
              3.121800e+04,  2.820000e+02,  3.121700e+04,  3.670000e+02,
              3.121800e+04,  2.558861e+00,  3.051469e+02,  9.510000e+02,
              3.121900e+04,  5.090000e+02,  3.122600e+04,  5.230000e+02,
              3.121600e+04,  5.040000e+02,  3.122100e+04,  6.080000e+02,
              3.121500e+04,  5.210000e+02,  3.123500e+04,  6.800000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.100000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.100000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.610000e+02,
              3.121500e+04,  7.020000e+02,  3.121500e+04,  7.340000e+02,
              3.121500e+04,  6.880000e+02,  3.121500e+04,  7.880000e+02,
              3.121500e+04,  6.800000e+02,  3.121500e+04,  5.910000e+02,
              3.121600e+04,  4.580000e+02,  3.121600e+04,  4.900000e+02,
              3.121600e+04,  4.690000e+02,  3.121600e+04,  6.200000e+02,
              3.121600e+04,  4.770000e+02,  3.121600e+04,  4.891014e+04,
              9.160000e+02,  2.290000e+02,  3.240000e+02,  9.830000e+02,
              4.170000e+02,  2.360000e+02,  3.390000e+02,  4.740000e+02,
              7.390000e+02,  1.590000e+02,  3.100000e+02,  7.780000e+02,
              7.063821e+00,  7.585111e+04,  7.677048e+04,  7.492453e+04,
              4.545932e-01, -3.710826e-02,  4.851567e-01,  9.992239e-01],
            dtype=float32)
    • stats-std
      (band)
      float32
      ...
      array([2.739096e+02, 2.607090e+02, 3.276268e+02, 5.118132e+02, 4.881274e+02,
             9.410225e+02, 1.178405e+03, 1.223790e+03, 1.136179e+03, 7.682332e+02,
             7.839894e+02, 1.165684e+03, 9.302200e+01, 2.237377e+01, 9.110311e+02,
             1.952165e+01, 9.118627e+02, 1.949120e+01, 9.118493e+02, 1.992290e+01,
             9.118406e+02, 1.880487e+01, 9.115914e+02, 2.182832e+01, 9.117225e+02,
             1.415783e+01, 9.121185e+02, 5.752878e+01, 9.109675e+02, 3.015131e+01,
             9.116788e+02, 4.210875e+01, 9.121594e+02, 1.177039e+01, 9.123146e+02,
             5.772824e+01, 9.118611e+02, 5.497548e+01, 9.112198e+02, 5.906892e+01,
             9.112420e+02, 7.622435e+01, 9.110255e+02, 6.941881e+01, 9.108978e+02,
             6.405766e+01, 9.121707e+02, 6.274215e+01, 9.114283e+02, 3.205083e-01,
             5.850031e+01, 1.009564e+02, 9.111879e+02, 6.578802e+01, 9.279523e+02,
             5.715844e+01, 9.115829e+02, 6.324229e+01, 9.150939e+02, 5.008537e+01,
             9.111169e+02, 6.426334e+01, 9.223598e+02, 3.064360e+00, 9.126016e+02,
             3.301334e+00, 9.126320e+02, 3.246355e+00, 9.125950e+02, 2.972308e+00,
             9.126135e+02, 3.508766e+00, 9.125985e+02, 3.279095e+00, 9.126285e+02,
             1.840106e+02, 9.132842e+02, 1.409348e+02, 9.128356e+02, 1.545039e+02,
             9.129053e+02, 1.451634e+02, 9.128641e+02, 1.983783e+02, 9.133834e+02,
             1.360968e+02, 9.128299e+02, 1.316137e+02, 9.122123e+02, 8.804158e+01,
             9.124551e+02, 8.203354e+01, 9.127570e+02, 8.112008e+01, 9.128556e+02,
             1.356809e+02, 9.122052e+02, 7.972389e+01, 9.127299e+02, 2.874282e+03,
             8.186103e+01, 3.801859e+01, 4.007310e+01, 5.073972e+01, 4.225420e+01,
             1.559865e+01, 4.090974e+01, 2.718931e+01, 5.952565e+01, 2.155230e+01,
             3.661815e+01, 3.517658e+01, 9.597474e-01, 5.025724e+03, 5.083611e+03,
             4.967352e+03, 4.326866e-02, 2.490765e-01, 4.512463e-01, 6.131307e-01],
            dtype=float32)
    • sample
      (index, time_step, band)
      float32
      ...
      [1755777600 values with dtype=float32]
  • Germany_DUP3_farm5_field265_rapeseed_2020_<>_yield_ground_truth :
    2.892
    Germany_DUP3_farm2_field170_wheat_2019_<>_yield_ground_truth :
    9.16
    Germany_DUP3_farm1_field13_rapeseed_2016_<>_yield_ground_truth :
    3.03555555555556
    Germany_DUP3_farm1_field52_wheat_2019_<>_yield_ground_truth :
    7.45555555555556
    Germany_DUP3_farm2_field128_wheat_2019_<>_yield_ground_truth :
    7.94
    Germany_DUP3_farm6_field285_rapeseed_2020_<>_yield_ground_truth :
    3.87
    Germany_DUP3_farm2_field169_rapeseed_2018_<>_yield_ground_truth :
    3.59
    Germany_DUP3_farm2_field71_wheat_2020_<>_yield_ground_truth :
    9.85
    Germany_DUP3_farm4_field241_wheat_2018_<>_yield_ground_truth :
    6.943085
    Germany_DUP3_farm2_field102_wheat_2018_<>_yield_ground_truth :
    10.01
    Germany_DUP3_farm2_field195_wheat_2017_<>_yield_ground_truth :
    9.31
    Germany_DUP3_farm2_field219_wheat_2022_<>_yield_ground_truth :
    6.05
    Germany_DUP3_farm1_field14_rapeseed_2016_<>_yield_ground_truth :
    1.35666666666667
    Germany_DUP3_farm6_field290_rapeseed_2021_<>_yield_ground_truth :
    2.38
    Germany_DUP3_farm2_field175_wheat_2021_<>_yield_ground_truth :
    7.85
    Germany_DUP3_farm2_field199_rapeseed_2022_<>_yield_ground_truth :
    4.68
    Germany_DUP3_farm2_field126_wheat_2021_<>_yield_ground_truth :
    8.66
    Germany_DUP3_farm5_field267_rapeseed_2020_<>_yield_ground_truth :
    4.287
    Germany_DUP3_farm4_field255_rapeseed_2016_<>_yield_ground_truth :
    4.214619
    Germany_DUP3_farm2_field82_wheat_2019_<>_yield_ground_truth :
    9.42
    Germany_DUP3_farm2_field84_wheat_2019_<>_yield_ground_truth :
    8.76
    Germany_DUP3_farm4_field258_wheat_2017_<>_yield_ground_truth :
    5.47781732017129
    Germany_DUP3_farm2_field135_wheat_2018_<>_yield_ground_truth :
    8.14
    Germany_DUP3_farm2_field91_wheat_2021_<>_yield_ground_truth :
    6.85
    Germany_DUP3_farm2_field211_wheat_2022_<>_yield_ground_truth :
    9.58
    Germany_DUP3_farm3_field234_rapeseed_2016_<>_yield_ground_truth :
    4.12974389391029
    Germany_DUP3_farm2_field131_wheat_2019_<>_yield_ground_truth :
    10.07
    Germany_DUP3_farm2_field116_wheat_2021_<>_yield_ground_truth :
    8.11
    Germany_DUP3_farm2_field68_rapeseed_2018_<>_yield_ground_truth :
    3.66
    Germany_DUP3_farm1_field32_wheat_2017_<>_yield_ground_truth :
    8.88095238095238
    Germany_DUP3_farm2_field217_rapeseed_2022_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm5_field270_rapeseed_2017_<>_yield_ground_truth :
    3.128
    Germany_DUP3_farm6_field298_rapeseed_2017_<>_yield_ground_truth :
    3.8
    Germany_DUP3_farm2_field83_wheat_2019_<>_yield_ground_truth :
    9.56
    Germany_DUP3_farm2_field97_wheat_2021_<>_yield_ground_truth :
    7.91
    Germany_DUP3_farm2_field73_wheat_2018_<>_yield_ground_truth :
    6.49
    Germany_DUP3_farm2_field74_wheat_2020_<>_yield_ground_truth :
    8.87
    Germany_DUP3_farm2_field106_wheat_2016_<>_yield_ground_truth :
    10.8
    Germany_DUP3_farm2_field207_wheat_2022_<>_yield_ground_truth :
    9.58
    Germany_DUP3_farm2_field149_rapeseed_2021_<>_yield_ground_truth :
    4.29
    Germany_DUP3_farm2_field165_wheat_2019_<>_yield_ground_truth :
    8.65
    Germany_DUP3_farm3_field240_rapeseed_2018_<>_yield_ground_truth :
    3.05297039612184
    Germany_DUP3_farm2_field104_wheat_2021_<>_yield_ground_truth :
    8.35
    Germany_DUP3_farm1_field44_wheat_2019_<>_yield_ground_truth :
    9.62941176470588
    Germany_DUP3_farm2_field111_wheat_2019_<>_yield_ground_truth :
    8.22
    Germany_DUP3_farm1_field15_rapeseed_2016_<>_yield_ground_truth :
    2.23222222222222
    Germany_DUP3_farm4_field249_rapeseed_2020_<>_yield_ground_truth :
    4.46253834205317
    Germany_DUP3_farm6_field277_rapeseed_2018_<>_yield_ground_truth :
    1.59
    Germany_DUP3_farm1_field4_rapeseed_2016_<>_yield_ground_truth :
    2.69770114942529
    Germany_DUP3_farm2_field204_wheat_2022_<>_yield_ground_truth :
    10.08
    Germany_DUP3_farm1_field43_wheat_2016_<>_yield_ground_truth :
    6.31333333333333
    Germany_DUP3_farm2_field164_wheat_2021_<>_yield_ground_truth :
    7.51
    Germany_DUP3_farm2_field168_wheat_2016_<>_yield_ground_truth :
    9.8
    Germany_DUP3_farm2_field123_wheat_2018_<>_yield_ground_truth :
    7.72
    Germany_DUP3_farm2_field88_wheat_2019_<>_yield_ground_truth :
    9.06
    Germany_DUP3_farm3_field227_wheat_2019_<>_yield_ground_truth :
    4.7624406162698
    Germany_DUP3_farm2_field87_wheat_2018_<>_yield_ground_truth :
    8.33
    Germany_DUP3_farm2_field178_rapeseed_2017_<>_yield_ground_truth :
    3.64
    Germany_DUP3_farm2_field189_wheat_2017_<>_yield_ground_truth :
    8.89
    Germany_DUP3_farm1_field9_wheat_2016_<>_yield_ground_truth :
    9.50625
    Germany_DUP3_farm1_field36_wheat_2017_<>_yield_ground_truth :
    7.73333333333333
    Germany_DUP3_farm2_field79_wheat_2019_<>_yield_ground_truth :
    10.3
    Germany_DUP3_farm2_field81_wheat_2021_<>_yield_ground_truth :
    7.35
    Germany_DUP3_farm2_field153_rapeseed_2020_<>_yield_ground_truth :
    3.61
    Germany_DUP3_farm1_field59_wheat_2019_<>_yield_ground_truth :
    5.8016393442623
    Germany_DUP3_farm3_field228_rapeseed_2020_<>_yield_ground_truth :
    4.03360085534403
    Germany_DUP3_farm2_field188_wheat_2017_<>_yield_ground_truth :
    9.46
    Germany_DUP3_farm4_field256_rapeseed_2017_<>_yield_ground_truth :
    2.50646950092421
    Germany_DUP3_farm2_field122_wheat_2020_<>_yield_ground_truth :
    9.65
    Germany_DUP3_farm2_field212_wheat_2022_<>_yield_ground_truth :
    8.74
    Germany_DUP3_farm2_field162_wheat_2019_<>_yield_ground_truth :
    7.59
    Germany_DUP3_farm3_field237_rapeseed_2017_<>_yield_ground_truth :
    2.41276314390209
    Germany_DUP3_farm2_field139_rapeseed_2018_<>_yield_ground_truth :
    3.54
    Germany_DUP3_farm1_field47_wheat_2019_<>_yield_ground_truth :
    8.66065573770492
    Germany_DUP3_farm2_field112_wheat_2021_<>_yield_ground_truth :
    9.11
    Germany_DUP3_farm2_field197_rapeseed_2017_<>_yield_ground_truth :
    4.27
    Germany_DUP3_farm2_field127_wheat_2018_<>_yield_ground_truth :
    9.59
    Germany_DUP3_farm2_field187_wheat_2017_<>_yield_ground_truth :
    8.79
    Germany_DUP3_farm2_field72_wheat_2021_<>_yield_ground_truth :
    6.6
    Germany_DUP3_farm2_field215_wheat_2022_<>_yield_ground_truth :
    9.0
    Germany_DUP3_farm1_field27_rapeseed_2017_<>_yield_ground_truth :
    3.19882352941177
    Germany_DUP3_farm5_field271_rapeseed_2017_<>_yield_ground_truth :
    1.047
    Germany_DUP3_farm2_field89_wheat_2018_<>_yield_ground_truth :
    9.66
    Germany_DUP3_farm3_field239_wheat_2017_<>_yield_ground_truth :
    8.12126957376589
    Germany_DUP3_farm2_field80_wheat_2020_<>_yield_ground_truth :
    9.53
    Germany_DUP3_farm5_field274_wheat_2018_<>_yield_ground_truth :
    8.547
    Germany_DUP3_farm5_field264_rapeseed_2020_<>_yield_ground_truth :
    3.809
    Germany_DUP3_farm2_field209_wheat_2022_<>_yield_ground_truth :
    9.86
    Germany_DUP3_farm2_field144_wheat_2018_<>_yield_ground_truth :
    8.89
    Germany_DUP3_farm2_field214_rapeseed_2022_<>_yield_ground_truth :
    4.43
    Germany_DUP3_farm2_field158_wheat_2018_<>_yield_ground_truth :
    6.58
    Germany_DUP3_farm2_field136_wheat_2019_<>_yield_ground_truth :
    8.84
    Germany_DUP3_farm2_field142_rapeseed_2021_<>_yield_ground_truth :
    4.34
    Germany_DUP3_farm1_field45_wheat_2019_<>_yield_ground_truth :
    8.25
    Germany_DUP3_farm2_field202_wheat_2022_<>_yield_ground_truth :
    10.54
    Germany_DUP3_farm2_field167_wheat_2021_<>_yield_ground_truth :
    7.37
    Germany_DUP3_farm1_field8_rapeseed_2016_<>_yield_ground_truth :
    3.05454545454545
    Germany_DUP3_farm2_field120_wheat_2021_<>_yield_ground_truth :
    8.33
    Germany_DUP3_farm2_field210_wheat_2022_<>_yield_ground_truth :
    8.64
    Germany_DUP3_farm3_field222_rapeseed_2018_<>_yield_ground_truth :
    3.04599963821705
    Germany_DUP3_farm2_field220_rapeseed_2022_<>_yield_ground_truth :
    4.43
    Germany_DUP3_farm2_field86_wheat_2018_<>_yield_ground_truth :
    8.33
    Germany_DUP3_farm2_field133_wheat_2019_<>_yield_ground_truth :
    9.11
    Germany_DUP3_farm1_field53_wheat_2016_<>_yield_ground_truth :
    6.43432835820896
    Germany_DUP3_farm1_field57_wheat_2019_<>_yield_ground_truth :
    9.80625
    Germany_DUP3_farm2_field154_wheat_2021_<>_yield_ground_truth :
    7.47
    Germany_DUP3_farm2_field141_wheat_2018_<>_yield_ground_truth :
    8.34
    Germany_DUP3_farm6_field289_wheat_2021_<>_yield_ground_truth :
    6.85
    Germany_DUP3_farm4_field243_rapeseed_2018_<>_yield_ground_truth :
    2.245218
    Germany_DUP3_farm1_field29_rapeseed_2017_<>_yield_ground_truth :
    2.81714285714286
    Germany_DUP3_farm1_field25_rapeseed_2017_<>_yield_ground_truth :
    3.52916666666667
    Germany_DUP3_farm2_field159_wheat_2019_<>_yield_ground_truth :
    6.95
    Germany_DUP3_farm2_field184_wheat_2017_<>_yield_ground_truth :
    9.48
    Germany_DUP3_farm1_field33_wheat_2016_<>_yield_ground_truth :
    4.245
    Germany_DUP3_farm2_field203_wheat_2022_<>_yield_ground_truth :
    9.67
    Germany_DUP3_farm1_field50_rapeseed_2019_<>_yield_ground_truth :
    3.43333333333333
    Germany_DUP3_farm6_field283_rapeseed_2020_<>_yield_ground_truth :
    3.01
    Germany_DUP3_farm2_field121_wheat_2019_<>_yield_ground_truth :
    9.69
    Germany_DUP3_farm1_field6_wheat_2016_<>_yield_ground_truth :
    8.45555555555556
    Germany_DUP3_farm2_field96_wheat_2021_<>_yield_ground_truth :
    7.91
    Germany_DUP3_farm4_field253_wheat_2016_<>_yield_ground_truth :
    10.015263
    Germany_DUP3_farm3_field231_rapeseed_2016_<>_yield_ground_truth :
    3.69160308357434
    Germany_DUP3_farm2_field163_wheat_2020_<>_yield_ground_truth :
    7.2
    Germany_DUP3_farm2_field125_rapeseed_2020_<>_yield_ground_truth :
    5.13
    Germany_DUP3_farm2_field183_wheat_2017_<>_yield_ground_truth :
    9.48
    Germany_DUP3_farm1_field10_wheat_2016_<>_yield_ground_truth :
    7.0375
    Germany_DUP3_farm2_field180_rapeseed_2017_<>_yield_ground_truth :
    4.04
    Germany_DUP3_farm1_field49_wheat_2019_<>_yield_ground_truth :
    6.61428571428571
    Germany_DUP3_farm5_field268_wheat_2017_<>_yield_ground_truth :
    8.677
    Germany_DUP3_farm2_field179_rapeseed_2017_<>_yield_ground_truth :
    3.76
    Germany_DUP3_farm2_field137_rapeseed_2021_<>_yield_ground_truth :
    4.0
    Germany_DUP3_farm2_field147_wheat_2018_<>_yield_ground_truth :
    9.02
    Germany_DUP3_farm2_field107_wheat_2018_<>_yield_ground_truth :
    9.07
    Germany_DUP3_farm2_field140_wheat_2019_<>_yield_ground_truth :
    9.17
    Germany_DUP3_farm2_field85_wheat_2020_<>_yield_ground_truth :
    8.55
    Germany_DUP3_farm1_field61_wheat_2019_<>_yield_ground_truth :
    7.71818181818182
    Germany_DUP3_farm1_field24_rapeseed_2017_<>_yield_ground_truth :
    3.5325
    Germany_DUP3_farm2_field93_wheat_2018_<>_yield_ground_truth :
    5.92
    Germany_DUP3_farm2_field129_wheat_2021_<>_yield_ground_truth :
    8.55
    Germany_DUP3_farm2_field124_wheat_2018_<>_yield_ground_truth :
    7.72
    Germany_DUP3_farm1_field2_wheat_2016_<>_yield_ground_truth :
    7.24324324324324
    Germany_DUP3_farm5_field261_rapeseed_2019_<>_yield_ground_truth :
    3.442
    Germany_DUP3_farm1_field5_wheat_2016_<>_yield_ground_truth :
    5.18
    Germany_DUP3_farm2_field201_wheat_2022_<>_yield_ground_truth :
    10.28
    Germany_DUP3_farm2_field181_wheat_2017_<>_yield_ground_truth :
    8.5
    Germany_DUP3_farm3_field226_rapeseed_2019_<>_yield_ground_truth :
    1.37742804828361
    Germany_DUP3_farm2_field190_wheat_2017_<>_yield_ground_truth :
    9.1
    Germany_DUP3_farm5_field266_wheat_2020_<>_yield_ground_truth :
    7.814
    Germany_DUP3_farm6_field292_rapeseed_2016_<>_yield_ground_truth :
    4.01
    Germany_DUP3_farm1_field26_wheat_2017_<>_yield_ground_truth :
    7.7655737704918
    Germany_DUP3_farm2_field109_wheat_2020_<>_yield_ground_truth :
    10.17
    Germany_DUP3_farm2_field146_rapeseed_2021_<>_yield_ground_truth :
    4.51
    Germany_DUP3_farm2_field76_wheat_2019_<>_yield_ground_truth :
    9.27
    Germany_DUP3_farm2_field161_rapeseed_2016_<>_yield_ground_truth :
    4.7
    Germany_DUP3_farm1_field37_wheat_2017_<>_yield_ground_truth :
    7.30909090909091
    Germany_DUP3_farm2_field90_wheat_2020_<>_yield_ground_truth :
    8.05
    Germany_DUP3_farm2_field138_wheat_2016_<>_yield_ground_truth :
    9.9
    Germany_DUP3_farm6_field299_rapeseed_2018_<>_yield_ground_truth :
    3.84
    Germany_DUP3_farm2_field157_wheat_2021_<>_yield_ground_truth :
    8.61
    Germany_DUP3_farm3_field232_wheat_2020_<>_yield_ground_truth :
    6.74683195007535
    Germany_DUP3_farm1_field17_wheat_2016_<>_yield_ground_truth :
    4.59090909090909
    Germany_DUP3_farm2_field182_wheat_2017_<>_yield_ground_truth :
    8.37
    Germany_DUP3_farm1_field41_wheat_2019_<>_yield_ground_truth :
    8.99814814814815
    Germany_DUP3_farm1_field35_wheat_2017_<>_yield_ground_truth :
    5.90327868852459
    Germany_DUP3_farm1_field28_wheat_2017_<>_yield_ground_truth :
    8.83333333333333
    Germany_DUP3_farm1_field60_wheat_2019_<>_yield_ground_truth :
    7.95333333333333
    Germany_DUP3_farm2_field208_wheat_2022_<>_yield_ground_truth :
    10.31
    Germany_DUP3_farm1_field3_wheat_2016_<>_yield_ground_truth :
    3.65714285714286
    Germany_DUP3_farm2_field173_rapeseed_2020_<>_yield_ground_truth :
    4.41
    Germany_DUP3_farm1_field56_wheat_2019_<>_yield_ground_truth :
    9.77142857142857
    Germany_DUP3_farm5_field276_wheat_2019_<>_yield_ground_truth :
    7.908
    Germany_DUP3_farm3_field229_rapeseed_2020_<>_yield_ground_truth :
    3.16449455667496
    Germany_DUP3_farm1_field23_wheat_2017_<>_yield_ground_truth :
    9.29333333333333
    Germany_DUP3_farm2_field145_wheat_2019_<>_yield_ground_truth :
    7.95
    Germany_DUP3_farm1_field66_wheat_2016_<>_yield_ground_truth :
    7.8675
    Germany_DUP3_farm3_field221_rapeseed_2018_<>_yield_ground_truth :
    2.85151984376896
    Germany_DUP3_farm3_field230_rapeseed_2020_<>_yield_ground_truth :
    3.3981515285437
    Germany_DUP3_farm1_field39_wheat_2019_<>_yield_ground_truth :
    9.64
    Germany_DUP3_farm6_field286_wheat_2020_<>_yield_ground_truth :
    8.08
    Germany_DUP3_farm1_field34_wheat_2017_<>_yield_ground_truth :
    8.678125
    Germany_DUP3_farm2_field194_wheat_2017_<>_yield_ground_truth :
    8.17
    Germany_DUP3_farm1_field16_wheat_2016_<>_yield_ground_truth :
    6.46666666666667
    Germany_DUP3_farm2_field77_wheat_2021_<>_yield_ground_truth :
    7.35
    Germany_DUP3_farm2_field213_wheat_2022_<>_yield_ground_truth :
    9.89
    Germany_DUP3_farm4_field245_rapeseed_2019_<>_yield_ground_truth :
    3.33791692600152
    Germany_DUP3_farm5_field272_rapeseed_2018_<>_yield_ground_truth :
    4.512
    Germany_DUP3_farm2_field185_wheat_2017_<>_yield_ground_truth :
    9.55
    Germany_DUP3_farm2_field110_wheat_2018_<>_yield_ground_truth :
    9.42
    Germany_DUP3_farm5_field263_rapeseed_2019_<>_yield_ground_truth :
    2.946
    Germany_DUP3_farm6_field297_rapeseed_2017_<>_yield_ground_truth :
    2.98
    Germany_DUP3_farm2_field94_wheat_2019_<>_yield_ground_truth :
    8.05
    Germany_DUP3_farm6_field293_rapeseed_2016_<>_yield_ground_truth :
    4.44
    Germany_DUP3_farm3_field223_wheat_2018_<>_yield_ground_truth :
    4.2231823887226
    Germany_DUP3_farm4_field247_rapeseed_2019_<>_yield_ground_truth :
    3.3087698320346
    Germany_DUP3_farm4_field257_rapeseed_2017_<>_yield_ground_truth :
    2.7791183486618
    Germany_DUP3_farm2_field198_rapeseed_2017_<>_yield_ground_truth :
    2.76
    Germany_DUP3_farm3_field225_rapeseed_2019_<>_yield_ground_truth :
    2.60078911426982
    Germany_DUP3_farm2_field103_wheat_2019_<>_yield_ground_truth :
    8.33
    Germany_DUP3_farm4_field248_rapeseed_2020_<>_yield_ground_truth :
    4.40853032894075
    Germany_DUP3_farm2_field118_wheat_2019_<>_yield_ground_truth :
    9.94
    Germany_DUP3_farm2_field114_wheat_2018_<>_yield_ground_truth :
    5.75
    Germany_DUP3_farm1_field18_rapeseed_2016_<>_yield_ground_truth :
    0.746666666666667
    Germany_DUP3_farm2_field206_wheat_2022_<>_yield_ground_truth :
    10.62
    Germany_DUP3_farm2_field200_wheat_2022_<>_yield_ground_truth :
    11.52
    Germany_DUP3_farm6_field288_rapeseed_2021_<>_yield_ground_truth :
    3.75
    Germany_DUP3_farm1_field38_rapeseed_2019_<>_yield_ground_truth :
    3.45428571428571
    Germany_DUP3_farm3_field224_rapeseed_2019_<>_yield_ground_truth :
    2.37034170814042
    Germany_DUP3_farm4_field251_rapeseed_2016_<>_yield_ground_truth :
    4.346065
    Germany_DUP3_farm1_field1_wheat_2016_<>_yield_ground_truth :
    8.58125
    Germany_DUP3_farm2_field132_rapeseed_2021_<>_yield_ground_truth :
    4.59
    Germany_DUP3_farm4_field244_wheat_2019_<>_yield_ground_truth :
    6.94809611829945
    Germany_DUP3_farm6_field296_rapeseed_2017_<>_yield_ground_truth :
    3.83
    Germany_DUP3_farm1_field54_rapeseed_2019_<>_yield_ground_truth :
    2.8452380952381
    Germany_DUP3_farm1_field65_rapeseed_2016_<>_yield_ground_truth :
    2.95365853658537
    Germany_DUP3_farm4_field259_rapeseed_2017_<>_yield_ground_truth :
    3.37141683778234
    Germany_DUP3_farm2_field177_rapeseed_2017_<>_yield_ground_truth :
    4.22
    Germany_DUP3_farm2_field113_wheat_2018_<>_yield_ground_truth :
    5.75
    Germany_DUP3_farm6_field284_rapeseed_2020_<>_yield_ground_truth :
    3.49
    Germany_DUP3_farm4_field252_wheat_2020_<>_yield_ground_truth :
    8.64751705952213
    Germany_DUP3_farm1_field55_rapeseed_2019_<>_yield_ground_truth :
    5.06969696969697
    Germany_DUP3_farm4_field250_rapeseed_2020_<>_yield_ground_truth :
    4.01677333921872
    Germany_DUP3_farm3_field233_rapeseed_2016_<>_yield_ground_truth :
    2.39675635615325
    Germany_DUP3_farm2_field98_wheat_2016_<>_yield_ground_truth :
    10.8
    Germany_DUP3_farm1_field19_rapeseed_2017_<>_yield_ground_truth :
    3.13883495145631
    Germany_DUP3_farm5_field262_rapeseed_2019_<>_yield_ground_truth :
    3.746
    Germany_DUP3_farm2_field174_wheat_2021_<>_yield_ground_truth :
    8.56
    Germany_DUP3_farm2_field151_wheat_2018_<>_yield_ground_truth :
    8.18
    Germany_DUP3_farm2_field130_wheat_2016_<>_yield_ground_truth :
    10.7
    Germany_DUP3_farm6_field287_wheat_2016_<>_yield_ground_truth :
    8.87
    Germany_DUP3_farm2_field155_wheat_2018_<>_yield_ground_truth :
    7.99
    Germany_DUP3_farm2_field191_rapeseed_2017_<>_yield_ground_truth :
    3.16
    Germany_DUP3_farm2_field193_wheat_2017_<>_yield_ground_truth :
    8.82
    Germany_DUP3_farm2_field134_wheat_2020_<>_yield_ground_truth :
    8.28
    Germany_DUP3_farm2_field171_wheat_2018_<>_yield_ground_truth :
    7.13
    Germany_DUP3_farm2_field101_wheat_2020_<>_yield_ground_truth :
    8.32
    Germany_DUP3_farm1_field22_rapeseed_2016_<>_yield_ground_truth :
    3.11714285714286
    Germany_DUP3_farm2_field186_wheat_2017_<>_yield_ground_truth :
    10.18
    Germany_DUP3_farm1_field63_wheat_2016_<>_yield_ground_truth :
    6.80588235294118
    Germany_DUP3_farm2_field119_rapeseed_2020_<>_yield_ground_truth :
    4.64
    Germany_DUP3_farm5_field273_rapeseed_2018_<>_yield_ground_truth :
    4.104
    Germany_DUP3_farm6_field295_wheat_2017_<>_yield_ground_truth :
    6.64
    Germany_DUP3_farm1_field21_rapeseed_2017_<>_yield_ground_truth :
    3.92444444444445
    Germany_DUP3_farm2_field156_rapeseed_2020_<>_yield_ground_truth :
    5.38
    Germany_DUP3_farm1_field42_wheat_2019_<>_yield_ground_truth :
    9.8089552238806
    Germany_DUP3_farm2_field75_wheat_2018_<>_yield_ground_truth :
    9.14
    Germany_DUP3_farm2_field150_wheat_2018_<>_yield_ground_truth :
    8.18
    Germany_DUP3_farm2_field172_wheat_2018_<>_yield_ground_truth :
    5.96
    Germany_DUP3_farm2_field216_rapeseed_2022_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm1_field62_wheat_2019_<>_yield_ground_truth :
    9.4
    Germany_DUP3_farm1_field64_rapeseed_2016_<>_yield_ground_truth :
    3.62
    Germany_DUP3_farm2_field92_wheat_2018_<>_yield_ground_truth :
    5.92
    Germany_DUP3_farm6_field279_wheat_2018_<>_yield_ground_truth :
    5.82
    Germany_DUP3_farm2_field95_rapeseed_2020_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm2_field176_rapeseed_2017_<>_yield_ground_truth :
    4.2
    Germany_DUP3_farm2_field115_rapeseed_2020_<>_yield_ground_truth :
    3.81
    Germany_DUP3_farm2_field108_wheat_2016_<>_yield_ground_truth :
    8.8
    Germany_DUP3_farm2_field69_wheat_2019_<>_yield_ground_truth :
    8.87
    Germany_DUP3_farm1_field11_rapeseed_2016_<>_yield_ground_truth :
    0.840909090909091
    Germany_DUP3_farm1_field31_wheat_2017_<>_yield_ground_truth :
    9.16060606060606
    Germany_DUP3_farm2_field143_wheat_2016_<>_yield_ground_truth :
    11.0
    Germany_DUP3_farm1_field30_wheat_2017_<>_yield_ground_truth :
    10.2095238095238
    Germany_DUP3_farm2_field78_wheat_2016_<>_yield_ground_truth :
    10.5
    Germany_DUP3_farm2_field152_wheat_2019_<>_yield_ground_truth :
    9.14
    Germany_DUP3_farm2_field160_wheat_2021_<>_yield_ground_truth :
    7.65
    Germany_DUP3_farm6_field291_rapeseed_2021_<>_yield_ground_truth :
    3.38
    Germany_DUP3_farm1_field51_wheat_2019_<>_yield_ground_truth :
    8.67868852459016
    Germany_DUP3_farm1_field7_rapeseed_2016_<>_yield_ground_truth :
    3.42142857142857
    Germany_DUP3_farm1_field58_wheat_2019_<>_yield_ground_truth :
    8.490625
    Germany_DUP3_farm4_field246_rapeseed_2019_<>_yield_ground_truth :
    2.93931037259204
    Germany_DUP3_farm2_field70_wheat_2020_<>_yield_ground_truth :
    8.55
    Germany_DUP3_farm1_field46_wheat_2019_<>_yield_ground_truth :
    9.28333333333333
    Germany_DUP3_farm2_field196_wheat_2017_<>_yield_ground_truth :
    7.75
    Germany_DUP3_farm2_field148_wheat_2019_<>_yield_ground_truth :
    8.91
    Germany_DUP3_farm2_field218_wheat_2022_<>_yield_ground_truth :
    8.12
    Germany_DUP3_farm4_field260_rapeseed_2018_<>_yield_ground_truth :
    3.402817
    Germany_DUP3_farm2_field100_wheat_2019_<>_yield_ground_truth :
    9.48
    Germany_DUP3_farm6_field282_wheat_2019_<>_yield_ground_truth :
    6.81
    Germany_DUP3_farm3_field235_wheat_2016_<>_yield_ground_truth :
    8.53650799144042
    Germany_DUP3_farm1_field12_wheat_2016_<>_yield_ground_truth :
    5.16393442622951
    Germany_DUP3_farm2_field205_wheat_2022_<>_yield_ground_truth :
    11.37
    Germany_DUP3_farm1_field48_wheat_2019_<>_yield_ground_truth :
    9.78468468468469
    Germany_DUP3_farm2_field67_wheat_2016_<>_yield_ground_truth :
    9.3
    Germany_DUP3_farm1_field40_wheat_2019_<>_yield_ground_truth :
    8.06666666666667
    Germany_DUP3_farm2_field117_rapeseed_2021_<>_yield_ground_truth :
    4.53
    Germany_DUP3_farm2_field192_wheat_2017_<>_yield_ground_truth :
    9.89
    Germany_DUP3_farm4_field242_rapeseed_2018_<>_yield_ground_truth :
    2.894727
    Germany_DUP3_farm3_field238_rapeseed_2017_<>_yield_ground_truth :
    1.39606745341448
    Germany_DUP3_farm3_field236_rapeseed_2017_<>_yield_ground_truth :
    3.18614385100426
    Germany_DUP3_farm1_field20_rapeseed_2017_<>_yield_ground_truth :
    3.03
    Germany_DUP3_farm2_field166_wheat_2020_<>_yield_ground_truth :
    9.75
    Germany_DUP3_farm4_field254_rapeseed_2016_<>_yield_ground_truth :
    3.941731
    Germany_DUP3_farm6_field280_rapeseed_2019_<>_yield_ground_truth :
    2.87
    Germany_DUP3_farm6_field294_rapeseed_2016_<>_yield_ground_truth :
    3.97
    Germany_DUP3_farm5_field269_rapeseed_2017_<>_yield_ground_truth :
    2.205
    Germany_DUP3_farm2_field105_wheat_2019_<>_yield_ground_truth :
    9.84
    Germany_DUP3_farm6_field281_rapeseed_2019_<>_yield_ground_truth :
    3.74
    Germany_DUP3_farm2_field99_wheat_2018_<>_yield_ground_truth :
    7.65
    Germany_DUP3_farm5_field275_rapeseed_2018_<>_yield_ground_truth :
    4.454
    Germany_DUP3_farm6_field278_rapeseed_2018_<>_yield_ground_truth :
    3.8
In [4]:
print(f"Dataset sizes: \n{dict(ds.sizes)} \n")
print("Available crops:")
print({int(k): v for k, v in ds["crop"].attrs.items()})

print(f"\nThe datset contains two crop types (rapeseed and wheat). Since we want to train a single class model ({TARGET_CROP}), we must filter the dataset.")
Dataset sizes: 
{'index': 609645, 'time_step': 24, 'band': 120} 

Available crops:
{0: 'rapeseed', 1: 'wheat'}

The datset contains two crop types (rapeseed and wheat). Since we want to train a single class model (rapeseed), we must filter the dataset.
In [5]:
ds["crop"] # The crop types are stored in the attrs of the datset and are encoded. 
Out[5]:
<xarray.DataArray 'crop' (index: 609645)>
[609645 values with dtype=uint8]
Coordinates:
  * index    (index) object '5d35849b-ace1-4dd4-962d-da80c6c56bac' ... 'fc0f3...
Attributes:
    0:        rapeseed
    1:        wheat
xarray.DataArray
'crop'
  • index: 609645
  • ...
    [609645 values with dtype=uint8]
    • index
      (index)
      object
      '5d35849b-ace1-4dd4-962d-da80c6c...
      array(['5d35849b-ace1-4dd4-962d-da80c6c56bac',
             '12666e72-ec1d-4dec-9918-daf3671d6007',
             '804a0598-e8e3-4528-9acd-05265c6e37bd', ...,
             '2143be39-5455-41d2-9fa8-40fd116b46f7',
             'af826426-856d-4a3a-856b-0ecf0fa286f3',
             'fc0f346e-b273-43cc-b09c-655339046244'], dtype=object)
  • 0 :
    rapeseed
    1 :
    wheat
In [6]:
def filter_ds_by_attribute(dataset: xr.Dataset, filter_variable: str="crop", condition=None) -> xr.Dataset:
    """Filter a dataset by attribuites
    
    Args:
    -----
        dataset: xr dataset
        filter_criterion: (str) variable to filter 
        condition: (str) filter condition
    
    Returns:
    --------
        filtered xr dataset
    
    """
    mapping = dict((v, k) for k, v in dataset[filter_variable].attrs.items())
    filter_val = [int(mapping[condition])]
    selected_ind = dataset.data_vars[filter_variable].isin(filter_val)
    dataset = dataset.sel(index=selected_ind)

    for k in mapping.keys(): # drop other attributes
        if k != condition:
            del dataset[filter_variable].attrs[mapping[k]]
    
    field_id = dataset["field_shared_name"]
    unique_field_id = np.unique(field_id.values) #farms that are still in data
    attrs_field_id = [int(v) for v in field_id.attrs.keys()] 
    fields_to_delete_name = []

    for fields_delete in list(set(attrs_field_id) - set(unique_field_id) ):
        fields_to_delete_name.append(field_id.attrs[str(fields_delete)])
        del field_id.attrs[str(fields_delete)]

    for info in dataset.attrs.copy():
        if info.split("_<>_")[0] in fields_to_delete_name:
            del dataset.attrs[info]
    return dataset
In [7]:
#filter dataset by crop type
filtered_ds = filter_ds_by_attribute(ds, filter_variable="crop", condition=TARGET_CROP)
filtered_ds
Out[7]:
<xarray.Dataset>
Dimensions:            (index: 302802, time_step: 24, band: 120)
Coordinates:
  * index              (index) object '5d35849b-ace1-4dd4-962d-da80c6c56bac' ...
  * time_step          (time_step) int64 0 1 2 3 4 5 6 ... 17 18 19 20 21 22 23
  * band               (band) object 'B01' 'B02' 'B03' ... 'coord_y' 'coord_z'
Data variables: (12/17)
    target             (index) float32 ...
    times              (index, time_step) datetime64[ns] ...
    seeding_date       (index) uint8 ...
    harvesting_date    (index) uint8 ...
    farm_identifier    (index) uint8 ...
    country            (index) uint8 ...
    ...                 ...
    col                (index) uint8 ...
    stats-mean         (band) float32 469.2 566.0 864.8 ... -0.2598 0.443
    stats-min          (band) float32 0.0 1.0 1.0 ... -0.8557 -0.9154 -0.5302
    stats-max          (band) float32 8.976e+03 4.396e+03 ... 0.4852 0.9992
    stats-std          (band) float32 273.9 260.7 327.6 ... 0.2491 0.4512 0.6131
    sample             (index, time_step, band) float32 ...
Attributes: (12/111)
    Germany_DUP3_farm5_field265_rapeseed_2020_<>_yield_ground_truth:  2.892
    Germany_DUP3_farm1_field13_rapeseed_2016_<>_yield_ground_truth:   3.03555...
    Germany_DUP3_farm6_field285_rapeseed_2020_<>_yield_ground_truth:  3.87
    Germany_DUP3_farm2_field169_rapeseed_2018_<>_yield_ground_truth:  3.59
    Germany_DUP3_farm1_field14_rapeseed_2016_<>_yield_ground_truth:   1.35666...
    Germany_DUP3_farm6_field290_rapeseed_2021_<>_yield_ground_truth:  2.38
    ...                                                               ...
    Germany_DUP3_farm6_field280_rapeseed_2019_<>_yield_ground_truth:  2.87
    Germany_DUP3_farm6_field294_rapeseed_2016_<>_yield_ground_truth:  3.97
    Germany_DUP3_farm5_field269_rapeseed_2017_<>_yield_ground_truth:  2.205
    Germany_DUP3_farm6_field281_rapeseed_2019_<>_yield_ground_truth:  3.74
    Germany_DUP3_farm5_field275_rapeseed_2018_<>_yield_ground_truth:  4.454
    Germany_DUP3_farm6_field278_rapeseed_2018_<>_yield_ground_truth:  3.8
xarray.Dataset
    • index: 302802
    • time_step: 24
    • band: 120
    • index
      (index)
      object
      '5d35849b-ace1-4dd4-962d-da80c6c...
      array(['5d35849b-ace1-4dd4-962d-da80c6c56bac',
             '12666e72-ec1d-4dec-9918-daf3671d6007',
             '804a0598-e8e3-4528-9acd-05265c6e37bd', ...,
             '2143be39-5455-41d2-9fa8-40fd116b46f7',
             'af826426-856d-4a3a-856b-0ecf0fa286f3',
             'fc0f346e-b273-43cc-b09c-655339046244'], dtype=object)
    • time_step
      (time_step)
      int64
      0 1 2 3 4 5 6 ... 18 19 20 21 22 23
      array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
             18, 19, 20, 21, 22, 23])
    • band
      (band)
      object
      'B01' 'B02' ... 'coord_y' 'coord_z'
      array(['B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B09', 'B11',
             'B12', 'B8A', 'aspect', 'cec_0-5', 'cec_0-5_uncertainty', 'cec_100-200',
             'cec_100-200_uncertainty', 'cec_15-30', 'cec_15-30_uncertainty',
             'cec_30-60', 'cec_30-60_uncertainty', 'cec_5-15',
             'cec_5-15_uncertainty', 'cec_60-100', 'cec_60-100_uncertainty',
             'cfvo_0-5', 'cfvo_0-5_uncertainty', 'cfvo_100-200',
             'cfvo_100-200_uncertainty', 'cfvo_15-30', 'cfvo_15-30_uncertainty',
             'cfvo_30-60', 'cfvo_30-60_uncertainty', 'cfvo_5-15',
             'cfvo_5-15_uncertainty', 'cfvo_60-100', 'cfvo_60-100_uncertainty',
             'clay_0-5', 'clay_0-5_uncertainty', 'clay_100-200',
             'clay_100-200_uncertainty', 'clay_15-30', 'clay_15-30_uncertainty',
             'clay_30-60', 'clay_30-60_uncertainty', 'clay_5-15',
             'clay_5-15_uncertainty', 'clay_60-100', 'clay_60-100_uncertainty',
             'curvature', 'dem', 'nitrogen_0-5', 'nitrogen_0-5_uncertainty',
             'nitrogen_100-200', 'nitrogen_100-200_uncertainty', 'nitrogen_15-30',
             'nitrogen_15-30_uncertainty', 'nitrogen_30-60',
             'nitrogen_30-60_uncertainty', 'nitrogen_5-15',
             'nitrogen_5-15_uncertainty', 'nitrogen_60-100',
             'nitrogen_60-100_uncertainty', 'phh2o_0-5', 'phh2o_0-5_uncertainty',
             'phh2o_100-200', 'phh2o_100-200_uncertainty', 'phh2o_15-30',
             'phh2o_15-30_uncertainty', 'phh2o_30-60', 'phh2o_30-60_uncertainty',
             'phh2o_5-15', 'phh2o_5-15_uncertainty', 'phh2o_60-100',
             'phh2o_60-100_uncertainty', 'sand_0-5', 'sand_0-5_uncertainty',
             'sand_100-200', 'sand_100-200_uncertainty', 'sand_15-30',
             'sand_15-30_uncertainty', 'sand_30-60', 'sand_30-60_uncertainty',
             'sand_5-15', 'sand_5-15_uncertainty', 'sand_60-100',
             'sand_60-100_uncertainty', 'silt_0-5', 'silt_0-5_uncertainty',
             'silt_100-200', 'silt_100-200_uncertainty', 'silt_15-30',
             'silt_15-30_uncertainty', 'silt_30-60', 'silt_30-60_uncertainty',
             'silt_5-15', 'silt_5-15_uncertainty', 'silt_60-100',
             'silt_60-100_uncertainty', 'slope', 'soc_0-5', 'soc_0-5_uncertainty',
             'soc_100-200', 'soc_100-200_uncertainty', 'soc_15-30',
             'soc_15-30_uncertainty', 'soc_30-60', 'soc_30-60_uncertainty',
             'soc_5-15', 'soc_5-15_uncertainty', 'soc_60-100',
             'soc_60-100_uncertainty', 'twi', 'temp_mean', 'temp_max', 'temp_min',
             'total_prec', 'coord_x', 'coord_y', 'coord_z'], dtype=object)
    • target
      (index)
      float32
      ...
      [302802 values with dtype=float32]
    • times
      (index, time_step)
      datetime64[ns]
      ...
      [7267248 values with dtype=datetime64[ns]]
    • seeding_date
      (index)
      uint8
      ...
      0 :
      2015-08-14
      1 :
      2015-08-18
      2 :
      2015-08-20
      3 :
      2015-08-21
      4 :
      2015-08-22
      5 :
      2015-08-23
      6 :
      2015-08-24
      7 :
      2015-08-25
      8 :
      2015-08-26
      9 :
      2015-08-27
      10 :
      2015-08-30
      11 :
      2015-09-02
      12 :
      2015-09-04
      13 :
      2015-09-10
      14 :
      2015-09-11
      15 :
      2015-09-12
      16 :
      2015-09-14
      17 :
      2015-09-17
      18 :
      2015-09-18
      19 :
      2015-09-19
      20 :
      2015-09-22
      21 :
      2015-09-23
      22 :
      2015-09-24
      23 :
      2015-09-29
      24 :
      2015-10-02
      25 :
      2015-10-05
      26 :
      2015-10-06
      27 :
      2015-10-08
      28 :
      2015-10-09
      29 :
      2015-10-15
      30 :
      2015-10-26
      31 :
      2016-08-11
      32 :
      2016-08-14
      33 :
      2016-08-16
      34 :
      2016-08-17
      35 :
      2016-08-18
      36 :
      2016-08-19
      37 :
      2016-08-20
      38 :
      2016-08-22
      39 :
      2016-08-23
      40 :
      2016-08-24
      41 :
      2016-08-25
      42 :
      2016-08-26
      43 :
      2016-08-27
      44 :
      2016-08-30
      45 :
      2016-09-03
      46 :
      2016-09-06
      47 :
      2016-09-15
      48 :
      2016-09-19
      49 :
      2016-09-20
      50 :
      2016-09-21
      51 :
      2016-09-22
      52 :
      2016-09-23
      53 :
      2016-09-26
      54 :
      2016-09-28
      55 :
      2016-09-29
      56 :
      2016-09-30
      57 :
      2016-10-04
      58 :
      2016-10-05
      59 :
      2016-10-06
      60 :
      2016-10-10
      61 :
      2016-10-17
      62 :
      2016-10-29
      63 :
      2016-10-31
      64 :
      2016-11-01
      65 :
      2016-11-02
      66 :
      2016-11-06
      67 :
      2017-08-19
      68 :
      2017-08-22
      69 :
      2017-08-23
      70 :
      2017-08-24
      71 :
      2017-08-25
      72 :
      2017-08-28
      73 :
      2017-08-29
      74 :
      2017-08-31
      75 :
      2017-09-01
      76 :
      2017-09-12
      77 :
      2017-09-16
      78 :
      2017-09-21
      79 :
      2017-09-25
      80 :
      2017-09-26
      81 :
      2017-09-27
      82 :
      2017-09-28
      83 :
      2017-09-29
      84 :
      2017-10-07
      85 :
      2017-10-13
      86 :
      2017-10-14
      87 :
      2017-10-16
      88 :
      2017-10-19
      89 :
      2017-10-20
      90 :
      2017-11-09
      91 :
      2018-08-21
      92 :
      2018-08-23
      93 :
      2018-08-27
      94 :
      2018-08-28
      95 :
      2018-08-30
      96 :
      2018-08-31
      97 :
      2018-09-04
      98 :
      2018-09-05
      99 :
      2018-09-07
      100 :
      2018-09-08
      101 :
      2018-09-10
      102 :
      2018-09-11
      103 :
      2018-09-13
      104 :
      2018-09-14
      105 :
      2018-09-15
      106 :
      2018-09-17
      107 :
      2018-09-18
      108 :
      2018-09-19
      109 :
      2018-09-20
      110 :
      2018-09-21
      111 :
      2018-09-22
      112 :
      2018-09-23
      113 :
      2018-09-25
      114 :
      2018-09-26
      115 :
      2018-09-27
      116 :
      2018-09-28
      117 :
      2018-10-01
      118 :
      2018-10-02
      119 :
      2018-10-03
      120 :
      2018-10-04
      121 :
      2018-10-05
      122 :
      2018-10-06
      123 :
      2018-10-07
      124 :
      2018-10-08
      125 :
      2018-10-09
      126 :
      2018-10-10
      127 :
      2018-10-13
      128 :
      2018-10-17
      129 :
      2018-10-22
      130 :
      2018-10-26
      131 :
      2018-10-30
      132 :
      2018-11-01
      133 :
      2018-11-02
      134 :
      2019-08-16
      135 :
      2019-08-17
      136 :
      2019-08-19
      137 :
      2019-08-20
      138 :
      2019-08-21
      139 :
      2019-08-23
      140 :
      2019-08-24
      141 :
      2019-08-26
      142 :
      2019-08-27
      143 :
      2019-09-01
      144 :
      2019-09-02
      145 :
      2019-09-03
      146 :
      2019-09-04
      147 :
      2019-09-18
      148 :
      2019-09-22
      149 :
      2019-09-24
      150 :
      2019-09-29
      151 :
      2019-10-09
      152 :
      2019-10-11
      153 :
      2019-10-13
      154 :
      2019-10-15
      155 :
      2019-10-23
      156 :
      2019-10-24
      157 :
      2019-11-01
      158 :
      2019-11-04
      159 :
      2020-08-17
      160 :
      2020-08-25
      161 :
      2020-08-26
      162 :
      2020-08-27
      163 :
      2020-08-29
      164 :
      2020-09-23
      165 :
      2020-09-24
      166 :
      2020-09-25
      167 :
      2020-09-26
      168 :
      2020-10-05
      169 :
      2020-10-07
      170 :
      2020-10-08
      171 :
      2020-10-12
      172 :
      2020-10-13
      173 :
      2020-10-17
      174 :
      2020-10-19
      175 :
      2020-10-20
      176 :
      2020-11-12
      177 :
      2021-09-04
      178 :
      2021-09-06
      179 :
      2021-09-07
      180 :
      2021-10-07
      181 :
      2021-10-13
      182 :
      2021-10-16
      183 :
      2021-10-18
      184 :
      2021-10-26
      185 :
      2021-10-27
      186 :
      2021-11-13
      187 :
      2021-11-17
      [302802 values with dtype=uint8]
    • harvesting_date
      (index)
      uint8
      ...
      0 :
      2016-07-16
      1 :
      2016-07-18
      2 :
      2016-07-20
      3 :
      2016-07-21
      4 :
      2016-07-22
      5 :
      2016-07-23
      6 :
      2016-07-24
      7 :
      2016-07-25
      8 :
      2016-07-26
      9 :
      2016-07-27
      10 :
      2016-07-30
      11 :
      2016-07-31
      12 :
      2016-08-01
      13 :
      2016-08-06
      14 :
      2016-08-07
      15 :
      2016-08-08
      16 :
      2016-08-09
      17 :
      2016-08-10
      18 :
      2016-08-11
      19 :
      2016-08-13
      20 :
      2016-08-14
      21 :
      2016-08-15
      22 :
      2016-08-17
      23 :
      2017-07-17
      24 :
      2017-07-18
      25 :
      2017-07-19
      26 :
      2017-07-28
      27 :
      2017-07-29
      28 :
      2017-07-30
      29 :
      2017-07-31
      30 :
      2017-08-01
      31 :
      2017-08-02
      32 :
      2017-08-03
      33 :
      2017-08-04
      34 :
      2017-08-05
      35 :
      2017-08-06
      36 :
      2017-08-07
      37 :
      2017-08-08
      38 :
      2017-08-09
      39 :
      2017-08-10
      40 :
      2017-08-14
      41 :
      2017-08-15
      42 :
      2017-08-16
      43 :
      2017-08-17
      44 :
      2017-08-22
      45 :
      2017-08-23
      46 :
      2017-08-24
      47 :
      2018-07-02
      48 :
      2018-07-03
      49 :
      2018-07-04
      50 :
      2018-07-05
      51 :
      2018-07-08
      52 :
      2018-07-10
      53 :
      2018-07-18
      54 :
      2018-07-19
      55 :
      2018-07-20
      56 :
      2018-07-21
      57 :
      2018-07-23
      58 :
      2018-07-24
      59 :
      2018-07-25
      60 :
      2018-07-27
      61 :
      2018-07-28
      62 :
      2018-07-29
      63 :
      2018-07-30
      64 :
      2018-08-01
      65 :
      2018-08-02
      66 :
      2018-08-27
      67 :
      2018-08-28
      68 :
      2019-07-05
      69 :
      2019-07-11
      70 :
      2019-07-17
      71 :
      2019-07-24
      72 :
      2019-07-25
      73 :
      2019-07-26
      74 :
      2019-07-27
      75 :
      2019-07-28
      76 :
      2019-07-29
      77 :
      2019-07-30
      78 :
      2019-08-02
      79 :
      2019-08-03
      80 :
      2019-08-04
      81 :
      2019-08-05
      82 :
      2019-08-06
      83 :
      2019-08-07
      84 :
      2019-08-08
      85 :
      2019-08-10
      86 :
      2019-08-12
      87 :
      2019-08-14
      88 :
      2019-08-15
      89 :
      2019-08-16
      90 :
      2019-08-17
      91 :
      2019-08-18
      92 :
      2019-08-19
      93 :
      2019-08-20
      94 :
      2019-08-21
      95 :
      2019-08-22
      96 :
      2019-08-23
      97 :
      2020-07-14
      98 :
      2020-07-17
      99 :
      2020-07-18
      100 :
      2020-07-22
      101 :
      2020-07-25
      102 :
      2020-07-27
      103 :
      2020-07-28
      104 :
      2020-07-29
      105 :
      2020-07-30
      106 :
      2020-07-31
      107 :
      2020-08-01
      108 :
      2020-08-05
      109 :
      2020-08-06
      110 :
      2020-08-07
      111 :
      2020-08-08
      112 :
      2020-08-09
      113 :
      2020-08-17
      114 :
      2020-08-19
      115 :
      2021-07-19
      116 :
      2021-07-20
      117 :
      2021-07-27
      118 :
      2021-07-28
      119 :
      2021-07-30
      120 :
      2021-07-31
      121 :
      2021-08-05
      122 :
      2021-08-06
      123 :
      2021-08-07
      124 :
      2021-08-08
      125 :
      2021-08-10
      126 :
      2021-08-18
      127 :
      2021-08-20
      128 :
      2021-08-21
      129 :
      2021-08-24
      130 :
      2021-08-25
      131 :
      2021-09-03
      132 :
      2021-09-04
      133 :
      2022-07-27
      134 :
      2022-07-28
      135 :
      2022-08-02
      136 :
      2022-08-03
      137 :
      2022-08-04
      138 :
      2022-08-06
      139 :
      2022-08-08
      140 :
      2022-08-09
      141 :
      2022-08-10
      142 :
      2022-08-11
      143 :
      2022-08-12
      [302802 values with dtype=uint8]
    • farm_identifier
      (index)
      uint8
      ...
      0 :
      farm1
      1 :
      farm2
      2 :
      farm3
      3 :
      farm4
      4 :
      farm5
      5 :
      farm6
      [302802 values with dtype=uint8]
    • country
      (index)
      uint8
      ...
      0 :
      Germany
      [302802 values with dtype=uint8]
    • crop
      (index)
      uint8
      0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0
      0 :
      rapeseed
      array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
    • year
      (index)
      uint8
      ...
      0 :
      2016
      1 :
      2017
      2 :
      2018
      3 :
      2019
      4 :
      2020
      5 :
      2021
      6 :
      2022
      [302802 values with dtype=uint8]
    • field_shared_name
      (index)
      uint16
      264 264 264 264 ... 277 277 277 277
      1 :
      Germany_DUP3_farm1_field11_rapeseed_2016
      3 :
      Germany_DUP3_farm1_field13_rapeseed_2016
      4 :
      Germany_DUP3_farm1_field14_rapeseed_2016
      5 :
      Germany_DUP3_farm1_field15_rapeseed_2016
      8 :
      Germany_DUP3_farm1_field18_rapeseed_2016
      9 :
      Germany_DUP3_farm1_field19_rapeseed_2017
      11 :
      Germany_DUP3_farm1_field20_rapeseed_2017
      12 :
      Germany_DUP3_farm1_field21_rapeseed_2017
      13 :
      Germany_DUP3_farm1_field22_rapeseed_2016
      15 :
      Germany_DUP3_farm1_field24_rapeseed_2017
      16 :
      Germany_DUP3_farm1_field25_rapeseed_2017
      18 :
      Germany_DUP3_farm1_field27_rapeseed_2017
      20 :
      Germany_DUP3_farm1_field29_rapeseed_2017
      30 :
      Germany_DUP3_farm1_field38_rapeseed_2019
      43 :
      Germany_DUP3_farm1_field4_rapeseed_2016
      44 :
      Germany_DUP3_farm1_field50_rapeseed_2019
      48 :
      Germany_DUP3_farm1_field54_rapeseed_2019
      49 :
      Germany_DUP3_farm1_field55_rapeseed_2019
      59 :
      Germany_DUP3_farm1_field64_rapeseed_2016
      60 :
      Germany_DUP3_farm1_field65_rapeseed_2016
      63 :
      Germany_DUP3_farm1_field7_rapeseed_2016
      64 :
      Germany_DUP3_farm1_field8_rapeseed_2016
      81 :
      Germany_DUP3_farm2_field115_rapeseed_2020
      83 :
      Germany_DUP3_farm2_field117_rapeseed_2021
      85 :
      Germany_DUP3_farm2_field119_rapeseed_2020
      91 :
      Germany_DUP3_farm2_field125_rapeseed_2020
      98 :
      Germany_DUP3_farm2_field132_rapeseed_2021
      103 :
      Germany_DUP3_farm2_field137_rapeseed_2021
      105 :
      Germany_DUP3_farm2_field139_rapeseed_2018
      108 :
      Germany_DUP3_farm2_field142_rapeseed_2021
      112 :
      Germany_DUP3_farm2_field146_rapeseed_2021
      115 :
      Germany_DUP3_farm2_field149_rapeseed_2021
      119 :
      Germany_DUP3_farm2_field153_rapeseed_2020
      122 :
      Germany_DUP3_farm2_field156_rapeseed_2020
      127 :
      Germany_DUP3_farm2_field161_rapeseed_2016
      135 :
      Germany_DUP3_farm2_field169_rapeseed_2018
      139 :
      Germany_DUP3_farm2_field173_rapeseed_2020
      142 :
      Germany_DUP3_farm2_field176_rapeseed_2017
      143 :
      Germany_DUP3_farm2_field177_rapeseed_2017
      144 :
      Germany_DUP3_farm2_field178_rapeseed_2017
      145 :
      Germany_DUP3_farm2_field179_rapeseed_2017
      146 :
      Germany_DUP3_farm2_field180_rapeseed_2017
      157 :
      Germany_DUP3_farm2_field191_rapeseed_2017
      163 :
      Germany_DUP3_farm2_field197_rapeseed_2017
      164 :
      Germany_DUP3_farm2_field198_rapeseed_2017
      165 :
      Germany_DUP3_farm2_field199_rapeseed_2022
      180 :
      Germany_DUP3_farm2_field214_rapeseed_2022
      182 :
      Germany_DUP3_farm2_field216_rapeseed_2022
      183 :
      Germany_DUP3_farm2_field217_rapeseed_2022
      186 :
      Germany_DUP3_farm2_field220_rapeseed_2022
      188 :
      Germany_DUP3_farm2_field68_rapeseed_2018
      215 :
      Germany_DUP3_farm2_field95_rapeseed_2020
      220 :
      Germany_DUP3_farm3_field221_rapeseed_2018
      221 :
      Germany_DUP3_farm3_field222_rapeseed_2018
      223 :
      Germany_DUP3_farm3_field224_rapeseed_2019
      224 :
      Germany_DUP3_farm3_field225_rapeseed_2019
      225 :
      Germany_DUP3_farm3_field226_rapeseed_2019
      227 :
      Germany_DUP3_farm3_field228_rapeseed_2020
      228 :
      Germany_DUP3_farm3_field229_rapeseed_2020
      229 :
      Germany_DUP3_farm3_field230_rapeseed_2020
      230 :
      Germany_DUP3_farm3_field231_rapeseed_2016
      232 :
      Germany_DUP3_farm3_field233_rapeseed_2016
      233 :
      Germany_DUP3_farm3_field234_rapeseed_2016
      235 :
      Germany_DUP3_farm3_field236_rapeseed_2017
      236 :
      Germany_DUP3_farm3_field237_rapeseed_2017
      237 :
      Germany_DUP3_farm3_field238_rapeseed_2017
      239 :
      Germany_DUP3_farm3_field240_rapeseed_2018
      241 :
      Germany_DUP3_farm4_field242_rapeseed_2018
      242 :
      Germany_DUP3_farm4_field243_rapeseed_2018
      244 :
      Germany_DUP3_farm4_field245_rapeseed_2019
      245 :
      Germany_DUP3_farm4_field246_rapeseed_2019
      246 :
      Germany_DUP3_farm4_field247_rapeseed_2019
      247 :
      Germany_DUP3_farm4_field248_rapeseed_2020
      248 :
      Germany_DUP3_farm4_field249_rapeseed_2020
      249 :
      Germany_DUP3_farm4_field250_rapeseed_2020
      250 :
      Germany_DUP3_farm4_field251_rapeseed_2016
      253 :
      Germany_DUP3_farm4_field254_rapeseed_2016
      254 :
      Germany_DUP3_farm4_field255_rapeseed_2016
      255 :
      Germany_DUP3_farm4_field256_rapeseed_2017
      256 :
      Germany_DUP3_farm4_field257_rapeseed_2017
      258 :
      Germany_DUP3_farm4_field259_rapeseed_2017
      259 :
      Germany_DUP3_farm4_field260_rapeseed_2018
      260 :
      Germany_DUP3_farm5_field261_rapeseed_2019
      261 :
      Germany_DUP3_farm5_field262_rapeseed_2019
      262 :
      Germany_DUP3_farm5_field263_rapeseed_2019
      263 :
      Germany_DUP3_farm5_field264_rapeseed_2020
      264 :
      Germany_DUP3_farm5_field265_rapeseed_2020
      266 :
      Germany_DUP3_farm5_field267_rapeseed_2020
      268 :
      Germany_DUP3_farm5_field269_rapeseed_2017
      269 :
      Germany_DUP3_farm5_field270_rapeseed_2017
      270 :
      Germany_DUP3_farm5_field271_rapeseed_2017
      271 :
      Germany_DUP3_farm5_field272_rapeseed_2018
      272 :
      Germany_DUP3_farm5_field273_rapeseed_2018
      274 :
      Germany_DUP3_farm5_field275_rapeseed_2018
      276 :
      Germany_DUP3_farm6_field277_rapeseed_2018
      277 :
      Germany_DUP3_farm6_field278_rapeseed_2018
      279 :
      Germany_DUP3_farm6_field280_rapeseed_2019
      280 :
      Germany_DUP3_farm6_field281_rapeseed_2019
      282 :
      Germany_DUP3_farm6_field283_rapeseed_2020
      283 :
      Germany_DUP3_farm6_field284_rapeseed_2020
      284 :
      Germany_DUP3_farm6_field285_rapeseed_2020
      287 :
      Germany_DUP3_farm6_field288_rapeseed_2021
      289 :
      Germany_DUP3_farm6_field290_rapeseed_2021
      290 :
      Germany_DUP3_farm6_field291_rapeseed_2021
      291 :
      Germany_DUP3_farm6_field292_rapeseed_2016
      292 :
      Germany_DUP3_farm6_field293_rapeseed_2016
      293 :
      Germany_DUP3_farm6_field294_rapeseed_2016
      295 :
      Germany_DUP3_farm6_field296_rapeseed_2017
      296 :
      Germany_DUP3_farm6_field297_rapeseed_2017
      297 :
      Germany_DUP3_farm6_field298_rapeseed_2017
      298 :
      Germany_DUP3_farm6_field299_rapeseed_2018
      array([264, 264, 264, ..., 277, 277, 277], dtype=uint16)
    • seeding_date_type
      (index)
      uint8
      ...
      0 :
      290 days before harvest
      1 :
      333 days before harvest
      2 :
      provided_by_farmer
      [302802 values with dtype=uint8]
    • row
      (index)
      uint8
      ...
      0 :
      0
      1 :
      1
      2 :
      2
      3 :
      3
      4 :
      4
      5 :
      5
      6 :
      6
      7 :
      7
      8 :
      8
      9 :
      9
      10 :
      10
      11 :
      11
      12 :
      12
      13 :
      13
      14 :
      14
      15 :
      15
      16 :
      16
      17 :
      17
      18 :
      18
      19 :
      19
      20 :
      20
      21 :
      21
      22 :
      22
      23 :
      23
      24 :
      24
      25 :
      25
      26 :
      26
      27 :
      27
      28 :
      28
      29 :
      29
      30 :
      30
      31 :
      31
      32 :
      32
      33 :
      33
      34 :
      34
      35 :
      35
      36 :
      36
      37 :
      37
      38 :
      38
      39 :
      39
      40 :
      40
      41 :
      41
      42 :
      42
      43 :
      43
      44 :
      44
      45 :
      45
      46 :
      46
      47 :
      47
      48 :
      48
      49 :
      49
      50 :
      50
      51 :
      51
      52 :
      52
      53 :
      53
      54 :
      54
      55 :
      55
      56 :
      56
      57 :
      57
      58 :
      58
      59 :
      59
      60 :
      60
      61 :
      61
      62 :
      62
      63 :
      63
      64 :
      64
      65 :
      65
      66 :
      66
      67 :
      67
      68 :
      68
      69 :
      69
      70 :
      70
      71 :
      71
      72 :
      72
      73 :
      73
      74 :
      74
      75 :
      75
      76 :
      76
      77 :
      77
      78 :
      78
      79 :
      79
      80 :
      80
      81 :
      81
      82 :
      82
      83 :
      83
      84 :
      84
      85 :
      85
      86 :
      86
      87 :
      87
      88 :
      88
      89 :
      89
      90 :
      90
      91 :
      91
      92 :
      92
      93 :
      93
      94 :
      94
      95 :
      95
      96 :
      96
      97 :
      97
      98 :
      98
      99 :
      99
      100 :
      100
      101 :
      101
      102 :
      102
      103 :
      103
      104 :
      104
      105 :
      105
      106 :
      106
      107 :
      107
      108 :
      108
      109 :
      109
      110 :
      110
      111 :
      111
      112 :
      112
      113 :
      113
      114 :
      114
      115 :
      115
      116 :
      116
      117 :
      117
      118 :
      118
      119 :
      119
      120 :
      120
      121 :
      121
      122 :
      122
      123 :
      123
      124 :
      124
      125 :
      125
      126 :
      126
      127 :
      127
      128 :
      128
      129 :
      129
      130 :
      130
      131 :
      131
      132 :
      132
      133 :
      133
      134 :
      134
      135 :
      135
      136 :
      136
      137 :
      137
      138 :
      138
      139 :
      139
      140 :
      140
      141 :
      141
      142 :
      142
      143 :
      143
      144 :
      144
      145 :
      145
      146 :
      146
      147 :
      147
      148 :
      148
      149 :
      149
      150 :
      150
      151 :
      151
      152 :
      152
      153 :
      153
      154 :
      154
      155 :
      155
      156 :
      156
      157 :
      157
      158 :
      158
      159 :
      159
      160 :
      160
      161 :
      161
      162 :
      162
      163 :
      163
      164 :
      164
      165 :
      165
      166 :
      166
      167 :
      167
      168 :
      168
      169 :
      169
      170 :
      170
      171 :
      171
      172 :
      172
      173 :
      173
      174 :
      174
      175 :
      175
      176 :
      176
      177 :
      177
      178 :
      178
      179 :
      179
      180 :
      180
      181 :
      181
      182 :
      182
      183 :
      183
      184 :
      184
      185 :
      185
      186 :
      186
      187 :
      187
      188 :
      188
      189 :
      189
      190 :
      190
      191 :
      191
      192 :
      192
      [302802 values with dtype=uint8]
    • col
      (index)
      uint8
      ...
      0 :
      0
      1 :
      1
      2 :
      2
      3 :
      3
      4 :
      4
      5 :
      5
      6 :
      6
      7 :
      7
      8 :
      8
      9 :
      9
      10 :
      10
      11 :
      11
      12 :
      12
      13 :
      13
      14 :
      14
      15 :
      15
      16 :
      16
      17 :
      17
      18 :
      18
      19 :
      19
      20 :
      20
      21 :
      21
      22 :
      22
      23 :
      23
      24 :
      24
      25 :
      25
      26 :
      26
      27 :
      27
      28 :
      28
      29 :
      29
      30 :
      30
      31 :
      31
      32 :
      32
      33 :
      33
      34 :
      34
      35 :
      35
      36 :
      36
      37 :
      37
      38 :
      38
      39 :
      39
      40 :
      40
      41 :
      41
      42 :
      42
      43 :
      43
      44 :
      44
      45 :
      45
      46 :
      46
      47 :
      47
      48 :
      48
      49 :
      49
      50 :
      50
      51 :
      51
      52 :
      52
      53 :
      53
      54 :
      54
      55 :
      55
      56 :
      56
      57 :
      57
      58 :
      58
      59 :
      59
      60 :
      60
      61 :
      61
      62 :
      62
      63 :
      63
      64 :
      64
      65 :
      65
      66 :
      66
      67 :
      67
      68 :
      68
      69 :
      69
      70 :
      70
      71 :
      71
      72 :
      72
      73 :
      73
      74 :
      74
      75 :
      75
      76 :
      76
      77 :
      77
      78 :
      78
      79 :
      79
      80 :
      80
      81 :
      81
      82 :
      82
      83 :
      83
      84 :
      84
      85 :
      85
      86 :
      86
      87 :
      87
      88 :
      88
      89 :
      89
      90 :
      90
      91 :
      91
      92 :
      92
      93 :
      93
      94 :
      94
      95 :
      95
      96 :
      96
      97 :
      97
      98 :
      98
      99 :
      99
      100 :
      100
      101 :
      101
      102 :
      102
      103 :
      103
      104 :
      104
      105 :
      105
      106 :
      106
      107 :
      107
      108 :
      108
      109 :
      109
      110 :
      110
      111 :
      111
      112 :
      112
      113 :
      113
      114 :
      114
      115 :
      115
      116 :
      116
      117 :
      117
      118 :
      118
      119 :
      119
      120 :
      120
      121 :
      121
      122 :
      122
      123 :
      123
      124 :
      124
      125 :
      125
      126 :
      126
      127 :
      127
      128 :
      128
      129 :
      129
      130 :
      130
      131 :
      131
      132 :
      132
      133 :
      133
      134 :
      134
      135 :
      135
      136 :
      136
      137 :
      137
      138 :
      138
      139 :
      139
      140 :
      140
      141 :
      141
      142 :
      142
      143 :
      143
      144 :
      144
      145 :
      145
      146 :
      146
      147 :
      147
      148 :
      148
      149 :
      149
      150 :
      150
      151 :
      151
      152 :
      152
      153 :
      153
      154 :
      154
      155 :
      155
      156 :
      156
      157 :
      157
      158 :
      158
      159 :
      159
      160 :
      160
      161 :
      161
      162 :
      162
      163 :
      163
      164 :
      164
      165 :
      165
      166 :
      166
      167 :
      167
      168 :
      168
      169 :
      169
      170 :
      170
      171 :
      171
      172 :
      172
      173 :
      173
      174 :
      174
      175 :
      175
      176 :
      176
      177 :
      177
      178 :
      178
      179 :
      179
      180 :
      180
      181 :
      181
      182 :
      182
      183 :
      183
      184 :
      184
      185 :
      185
      186 :
      186
      187 :
      187
      188 :
      188
      189 :
      189
      190 :
      190
      191 :
      191
      192 :
      192
      193 :
      193
      194 :
      194
      195 :
      195
      196 :
      196
      197 :
      197
      198 :
      198
      199 :
      199
      200 :
      200
      201 :
      201
      202 :
      202
      203 :
      203
      204 :
      204
      205 :
      205
      206 :
      206
      207 :
      207
      208 :
      208
      209 :
      209
      210 :
      210
      211 :
      211
      212 :
      212
      213 :
      213
      214 :
      214
      215 :
      215
      216 :
      216
      217 :
      217
      218 :
      218
      219 :
      219
      220 :
      220
      221 :
      221
      222 :
      222
      223 :
      223
      224 :
      224
      225 :
      225
      226 :
      226
      227 :
      227
      228 :
      228
      229 :
      229
      230 :
      230
      231 :
      231
      232 :
      232
      233 :
      233
      234 :
      234
      235 :
      235
      236 :
      236
      237 :
      237
      238 :
      238
      239 :
      239
      240 :
      240
      241 :
      241
      242 :
      242
      243 :
      243
      244 :
      244
      245 :
      245
      246 :
      246
      247 :
      247
      248 :
      248
      249 :
      249
      250 :
      250
      251 :
      251
      252 :
      252
      253 :
      253
      [302802 values with dtype=uint8]
    • stats-mean
      (band)
      float32
      ...
      array([ 4.692109e+02,  5.659758e+02,  8.648016e+02,  8.458782e+02,
              1.385048e+03,  2.816638e+03,  3.310711e+03,  3.465321e+03,
              3.517868e+03,  1.952083e+03,  1.302678e+03,  3.508458e+03,
              1.466668e+02,  2.923672e+02,  1.609534e+02,  1.511189e+02,
              1.546581e+02,  1.625051e+02,  1.562471e+02,  1.563665e+02,
              1.546317e+02,  1.873578e+02,  1.552501e+02,  1.580394e+02,
              1.547470e+02,  8.064277e+01,  1.636329e+02,  1.190424e+02,
              2.029094e+02,  7.301254e+01,  1.710131e+02,  8.227399e+01,
              1.764964e+02,  8.387760e+01,  1.538846e+02,  9.716603e+01,
              1.906530e+02,  1.687633e+02,  1.933106e+02,  2.219411e+02,
              1.839360e+02,  1.841485e+02,  1.883025e+02,  2.128548e+02,
              1.898220e+02,  1.497745e+02,  1.792004e+02,  2.223051e+02,
              1.843334e+02,  1.018857e-02,  1.440826e+02,  6.881603e+02,
              1.967202e+02,  1.845898e+02,  4.029062e+02,  2.212720e+02,
              2.032493e+02,  2.091076e+02,  2.706213e+02,  2.150289e+02,
              1.591017e+02,  2.082806e+02,  3.857381e+02,  6.296049e+01,
              1.323334e+02,  6.712882e+01,  1.321708e+02,  6.522775e+01,
              1.317232e+02,  6.602905e+01,  1.320717e+02,  6.454297e+01,
              1.315354e+02,  6.676228e+01,  1.321646e+02,  5.153842e+02,
              1.436389e+02,  4.946397e+02,  1.447188e+02,  5.259023e+02,
              1.417046e+02,  5.056294e+02,  1.426902e+02,  5.256458e+02,
              1.427869e+02,  4.964501e+02,  1.433246e+02,  3.119841e+02,
              1.549032e+02,  2.795531e+02,  1.653452e+02,  2.861007e+02,
              1.594743e+02,  2.776399e+02,  1.611905e+02,  3.207123e+02,
              1.537937e+02,  2.773682e+02,  1.615185e+02,  3.481279e+03,
              5.289557e+02,  1.002775e+02,  7.750367e+01,  8.737428e+01,
              1.797713e+02,  3.449158e+01,  1.112004e+02,  5.472574e+01,
              2.312487e+02,  3.809411e+01,  8.609125e+01,  7.656245e+01,
              4.542884e+00,  8.225069e+03,  8.328023e+03,  8.117643e+03,
              5.370276e-02, -3.076400e-01, -2.597631e-01,  4.430459e-01],
            dtype=float32)
    • stats-min
      (band)
      float32
      ...
      array([ 0.000000e+00,  1.000000e+00,  1.000000e+00,  1.000000e+00,
              8.900000e+01,  3.840000e+02,  4.490000e+02,  1.000000e+00,
              3.400000e+02,  1.080000e+02,  3.400000e+01,  4.770000e+02,
              9.107309e-03,  1.400000e+01,  1.700000e+01,  9.000000e+00,
              1.800000e+01,  9.000000e+00,  1.900000e+01,  9.000000e+00,
              1.700000e+01,  1.000000e+01,  1.900000e+01,  9.000000e+00,
              1.900000e+01,  4.000000e+00,  2.300000e+01,  8.000000e+00,
              2.900000e+01,  4.000000e+00,  2.300000e+01,  6.000000e+00,
              2.300000e+01,  4.000000e+00,  1.700000e+01,  7.000000e+00,
              2.700000e+01,  7.000000e+00,  3.300000e+01,  1.000000e+01,
              2.900000e+01,  8.000000e+00,  2.600000e+01,  1.000000e+01,
              2.600000e+01,  6.000000e+00,  1.800000e+01,  1.000000e+01,
              2.700000e+01, -2.219799e+00,  4.232933e+01,  4.200000e+01,
              4.500000e+01,  8.000000e+00,  4.900000e+01,  1.000000e+01,
              2.300000e+01,  1.100000e+01,  2.500000e+01,  9.000000e+00,
              9.000000e+00,  1.100000e+01,  4.600000e+01,  3.000000e+00,
              4.000000e+00,  3.000000e+00,  4.000000e+00,  3.000000e+00,
              3.000000e+00,  3.000000e+00,  4.000000e+00,  3.000000e+00,
              3.000000e+00,  3.000000e+00,  4.000000e+00,  2.600000e+01,
              7.000000e+00,  2.200000e+01,  1.000000e+01,  2.300000e+01,
              7.000000e+00,  2.200000e+01,  7.000000e+00,  2.600000e+01,
              4.000000e+00,  2.200000e+01,  9.000000e+00,  1.400000e+01,
              1.300000e+01,  1.500000e+01,  2.200000e+01,  1.700000e+01,
              1.300000e+01,  1.600000e+01,  1.400000e+01,  1.500000e+01,
              1.300000e+01,  1.600000e+01,  1.800000e+01,  2.690213e+00,
              2.900000e+01,  7.000000e+00,  3.000000e+00,  2.000000e+00,
              1.000000e+01,  1.000000e+00,  6.000000e+00,  3.000000e+00,
              9.000000e+00,  1.000000e+00,  4.000000e+00,  3.000000e+00,
              2.189456e+00,  2.815921e+02,  2.842222e+02,  2.782175e+02,
              0.000000e+00, -8.556525e-01, -9.153565e-01, -5.301749e-01],
            dtype=float32)
    • stats-max
      (band)
      float32
      ...
      array([ 8.976000e+03,  4.396000e+03,  5.640000e+03,  7.364000e+03,
              8.606000e+03,  9.465000e+03,  1.011000e+04,  8.992000e+03,
              1.421200e+04,  7.731000e+03,  8.530000e+03,  1.052300e+04,
              3.552538e+02,  3.450000e+02,  3.121600e+04,  2.140000e+02,
              3.121600e+04,  2.180000e+02,  3.121600e+04,  2.160000e+02,
              3.121600e+04,  2.360000e+02,  3.121600e+04,  2.210000e+02,
              3.121600e+04,  1.290000e+02,  3.121700e+04,  3.050000e+02,
              3.121900e+04,  1.590000e+02,  3.121700e+04,  2.160000e+02,
              3.122000e+04,  1.320000e+02,  3.121600e+04,  2.780000e+02,
              3.122000e+04,  2.950000e+02,  3.121800e+04,  3.520000e+02,
              3.121800e+04,  3.550000e+02,  3.121800e+04,  3.780000e+02,
              3.121800e+04,  2.820000e+02,  3.121700e+04,  3.670000e+02,
              3.121800e+04,  2.558861e+00,  3.051469e+02,  9.510000e+02,
              3.121900e+04,  5.090000e+02,  3.122600e+04,  5.230000e+02,
              3.121600e+04,  5.040000e+02,  3.122100e+04,  6.080000e+02,
              3.121500e+04,  5.210000e+02,  3.123500e+04,  6.800000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.100000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.100000e+01,
              3.121500e+04,  7.200000e+01,  3.121500e+04,  7.610000e+02,
              3.121500e+04,  7.020000e+02,  3.121500e+04,  7.340000e+02,
              3.121500e+04,  6.880000e+02,  3.121500e+04,  7.880000e+02,
              3.121500e+04,  6.800000e+02,  3.121500e+04,  5.910000e+02,
              3.121600e+04,  4.580000e+02,  3.121600e+04,  4.900000e+02,
              3.121600e+04,  4.690000e+02,  3.121600e+04,  6.200000e+02,
              3.121600e+04,  4.770000e+02,  3.121600e+04,  4.891014e+04,
              9.160000e+02,  2.290000e+02,  3.240000e+02,  9.830000e+02,
              4.170000e+02,  2.360000e+02,  3.390000e+02,  4.740000e+02,
              7.390000e+02,  1.590000e+02,  3.100000e+02,  7.780000e+02,
              7.063821e+00,  7.585111e+04,  7.677048e+04,  7.492453e+04,
              4.545932e-01, -3.710826e-02,  4.851567e-01,  9.992239e-01],
            dtype=float32)
    • stats-std
      (band)
      float32
      ...
      array([2.739096e+02, 2.607090e+02, 3.276268e+02, 5.118132e+02, 4.881274e+02,
             9.410225e+02, 1.178405e+03, 1.223790e+03, 1.136179e+03, 7.682332e+02,
             7.839894e+02, 1.165684e+03, 9.302200e+01, 2.237377e+01, 9.110311e+02,
             1.952165e+01, 9.118627e+02, 1.949120e+01, 9.118493e+02, 1.992290e+01,
             9.118406e+02, 1.880487e+01, 9.115914e+02, 2.182832e+01, 9.117225e+02,
             1.415783e+01, 9.121185e+02, 5.752878e+01, 9.109675e+02, 3.015131e+01,
             9.116788e+02, 4.210875e+01, 9.121594e+02, 1.177039e+01, 9.123146e+02,
             5.772824e+01, 9.118611e+02, 5.497548e+01, 9.112198e+02, 5.906892e+01,
             9.112420e+02, 7.622435e+01, 9.110255e+02, 6.941881e+01, 9.108978e+02,
             6.405766e+01, 9.121707e+02, 6.274215e+01, 9.114283e+02, 3.205083e-01,
             5.850031e+01, 1.009564e+02, 9.111879e+02, 6.578802e+01, 9.279523e+02,
             5.715844e+01, 9.115829e+02, 6.324229e+01, 9.150939e+02, 5.008537e+01,
             9.111169e+02, 6.426334e+01, 9.223598e+02, 3.064360e+00, 9.126016e+02,
             3.301334e+00, 9.126320e+02, 3.246355e+00, 9.125950e+02, 2.972308e+00,
             9.126135e+02, 3.508766e+00, 9.125985e+02, 3.279095e+00, 9.126285e+02,
             1.840106e+02, 9.132842e+02, 1.409348e+02, 9.128356e+02, 1.545039e+02,
             9.129053e+02, 1.451634e+02, 9.128641e+02, 1.983783e+02, 9.133834e+02,
             1.360968e+02, 9.128299e+02, 1.316137e+02, 9.122123e+02, 8.804158e+01,
             9.124551e+02, 8.203354e+01, 9.127570e+02, 8.112008e+01, 9.128556e+02,
             1.356809e+02, 9.122052e+02, 7.972389e+01, 9.127299e+02, 2.874282e+03,
             8.186103e+01, 3.801859e+01, 4.007310e+01, 5.073972e+01, 4.225420e+01,
             1.559865e+01, 4.090974e+01, 2.718931e+01, 5.952565e+01, 2.155230e+01,
             3.661815e+01, 3.517658e+01, 9.597474e-01, 5.025724e+03, 5.083611e+03,
             4.967352e+03, 4.326866e-02, 2.490765e-01, 4.512463e-01, 6.131307e-01],
            dtype=float32)
    • sample
      (index, time_step, band)
      float32
      ...
      [872069760 values with dtype=float32]
  • Germany_DUP3_farm5_field265_rapeseed_2020_<>_yield_ground_truth :
    2.892
    Germany_DUP3_farm1_field13_rapeseed_2016_<>_yield_ground_truth :
    3.03555555555556
    Germany_DUP3_farm6_field285_rapeseed_2020_<>_yield_ground_truth :
    3.87
    Germany_DUP3_farm2_field169_rapeseed_2018_<>_yield_ground_truth :
    3.59
    Germany_DUP3_farm1_field14_rapeseed_2016_<>_yield_ground_truth :
    1.35666666666667
    Germany_DUP3_farm6_field290_rapeseed_2021_<>_yield_ground_truth :
    2.38
    Germany_DUP3_farm2_field199_rapeseed_2022_<>_yield_ground_truth :
    4.68
    Germany_DUP3_farm5_field267_rapeseed_2020_<>_yield_ground_truth :
    4.287
    Germany_DUP3_farm4_field255_rapeseed_2016_<>_yield_ground_truth :
    4.214619
    Germany_DUP3_farm3_field234_rapeseed_2016_<>_yield_ground_truth :
    4.12974389391029
    Germany_DUP3_farm2_field68_rapeseed_2018_<>_yield_ground_truth :
    3.66
    Germany_DUP3_farm2_field217_rapeseed_2022_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm5_field270_rapeseed_2017_<>_yield_ground_truth :
    3.128
    Germany_DUP3_farm6_field298_rapeseed_2017_<>_yield_ground_truth :
    3.8
    Germany_DUP3_farm2_field149_rapeseed_2021_<>_yield_ground_truth :
    4.29
    Germany_DUP3_farm3_field240_rapeseed_2018_<>_yield_ground_truth :
    3.05297039612184
    Germany_DUP3_farm1_field15_rapeseed_2016_<>_yield_ground_truth :
    2.23222222222222
    Germany_DUP3_farm4_field249_rapeseed_2020_<>_yield_ground_truth :
    4.46253834205317
    Germany_DUP3_farm6_field277_rapeseed_2018_<>_yield_ground_truth :
    1.59
    Germany_DUP3_farm1_field4_rapeseed_2016_<>_yield_ground_truth :
    2.69770114942529
    Germany_DUP3_farm2_field178_rapeseed_2017_<>_yield_ground_truth :
    3.64
    Germany_DUP3_farm2_field153_rapeseed_2020_<>_yield_ground_truth :
    3.61
    Germany_DUP3_farm3_field228_rapeseed_2020_<>_yield_ground_truth :
    4.03360085534403
    Germany_DUP3_farm4_field256_rapeseed_2017_<>_yield_ground_truth :
    2.50646950092421
    Germany_DUP3_farm3_field237_rapeseed_2017_<>_yield_ground_truth :
    2.41276314390209
    Germany_DUP3_farm2_field139_rapeseed_2018_<>_yield_ground_truth :
    3.54
    Germany_DUP3_farm2_field197_rapeseed_2017_<>_yield_ground_truth :
    4.27
    Germany_DUP3_farm1_field27_rapeseed_2017_<>_yield_ground_truth :
    3.19882352941177
    Germany_DUP3_farm5_field271_rapeseed_2017_<>_yield_ground_truth :
    1.047
    Germany_DUP3_farm5_field264_rapeseed_2020_<>_yield_ground_truth :
    3.809
    Germany_DUP3_farm2_field214_rapeseed_2022_<>_yield_ground_truth :
    4.43
    Germany_DUP3_farm2_field142_rapeseed_2021_<>_yield_ground_truth :
    4.34
    Germany_DUP3_farm1_field8_rapeseed_2016_<>_yield_ground_truth :
    3.05454545454545
    Germany_DUP3_farm3_field222_rapeseed_2018_<>_yield_ground_truth :
    3.04599963821705
    Germany_DUP3_farm2_field220_rapeseed_2022_<>_yield_ground_truth :
    4.43
    Germany_DUP3_farm4_field243_rapeseed_2018_<>_yield_ground_truth :
    2.245218
    Germany_DUP3_farm1_field29_rapeseed_2017_<>_yield_ground_truth :
    2.81714285714286
    Germany_DUP3_farm1_field25_rapeseed_2017_<>_yield_ground_truth :
    3.52916666666667
    Germany_DUP3_farm1_field50_rapeseed_2019_<>_yield_ground_truth :
    3.43333333333333
    Germany_DUP3_farm6_field283_rapeseed_2020_<>_yield_ground_truth :
    3.01
    Germany_DUP3_farm3_field231_rapeseed_2016_<>_yield_ground_truth :
    3.69160308357434
    Germany_DUP3_farm2_field125_rapeseed_2020_<>_yield_ground_truth :
    5.13
    Germany_DUP3_farm2_field180_rapeseed_2017_<>_yield_ground_truth :
    4.04
    Germany_DUP3_farm2_field179_rapeseed_2017_<>_yield_ground_truth :
    3.76
    Germany_DUP3_farm2_field137_rapeseed_2021_<>_yield_ground_truth :
    4.0
    Germany_DUP3_farm1_field24_rapeseed_2017_<>_yield_ground_truth :
    3.5325
    Germany_DUP3_farm5_field261_rapeseed_2019_<>_yield_ground_truth :
    3.442
    Germany_DUP3_farm3_field226_rapeseed_2019_<>_yield_ground_truth :
    1.37742804828361
    Germany_DUP3_farm6_field292_rapeseed_2016_<>_yield_ground_truth :
    4.01
    Germany_DUP3_farm2_field146_rapeseed_2021_<>_yield_ground_truth :
    4.51
    Germany_DUP3_farm2_field161_rapeseed_2016_<>_yield_ground_truth :
    4.7
    Germany_DUP3_farm6_field299_rapeseed_2018_<>_yield_ground_truth :
    3.84
    Germany_DUP3_farm2_field173_rapeseed_2020_<>_yield_ground_truth :
    4.41
    Germany_DUP3_farm3_field229_rapeseed_2020_<>_yield_ground_truth :
    3.16449455667496
    Germany_DUP3_farm3_field221_rapeseed_2018_<>_yield_ground_truth :
    2.85151984376896
    Germany_DUP3_farm3_field230_rapeseed_2020_<>_yield_ground_truth :
    3.3981515285437
    Germany_DUP3_farm4_field245_rapeseed_2019_<>_yield_ground_truth :
    3.33791692600152
    Germany_DUP3_farm5_field272_rapeseed_2018_<>_yield_ground_truth :
    4.512
    Germany_DUP3_farm5_field263_rapeseed_2019_<>_yield_ground_truth :
    2.946
    Germany_DUP3_farm6_field297_rapeseed_2017_<>_yield_ground_truth :
    2.98
    Germany_DUP3_farm6_field293_rapeseed_2016_<>_yield_ground_truth :
    4.44
    Germany_DUP3_farm4_field247_rapeseed_2019_<>_yield_ground_truth :
    3.3087698320346
    Germany_DUP3_farm4_field257_rapeseed_2017_<>_yield_ground_truth :
    2.7791183486618
    Germany_DUP3_farm2_field198_rapeseed_2017_<>_yield_ground_truth :
    2.76
    Germany_DUP3_farm3_field225_rapeseed_2019_<>_yield_ground_truth :
    2.60078911426982
    Germany_DUP3_farm4_field248_rapeseed_2020_<>_yield_ground_truth :
    4.40853032894075
    Germany_DUP3_farm1_field18_rapeseed_2016_<>_yield_ground_truth :
    0.746666666666667
    Germany_DUP3_farm6_field288_rapeseed_2021_<>_yield_ground_truth :
    3.75
    Germany_DUP3_farm1_field38_rapeseed_2019_<>_yield_ground_truth :
    3.45428571428571
    Germany_DUP3_farm3_field224_rapeseed_2019_<>_yield_ground_truth :
    2.37034170814042
    Germany_DUP3_farm4_field251_rapeseed_2016_<>_yield_ground_truth :
    4.346065
    Germany_DUP3_farm2_field132_rapeseed_2021_<>_yield_ground_truth :
    4.59
    Germany_DUP3_farm6_field296_rapeseed_2017_<>_yield_ground_truth :
    3.83
    Germany_DUP3_farm1_field54_rapeseed_2019_<>_yield_ground_truth :
    2.8452380952381
    Germany_DUP3_farm1_field65_rapeseed_2016_<>_yield_ground_truth :
    2.95365853658537
    Germany_DUP3_farm4_field259_rapeseed_2017_<>_yield_ground_truth :
    3.37141683778234
    Germany_DUP3_farm2_field177_rapeseed_2017_<>_yield_ground_truth :
    4.22
    Germany_DUP3_farm6_field284_rapeseed_2020_<>_yield_ground_truth :
    3.49
    Germany_DUP3_farm1_field55_rapeseed_2019_<>_yield_ground_truth :
    5.06969696969697
    Germany_DUP3_farm4_field250_rapeseed_2020_<>_yield_ground_truth :
    4.01677333921872
    Germany_DUP3_farm3_field233_rapeseed_2016_<>_yield_ground_truth :
    2.39675635615325
    Germany_DUP3_farm1_field19_rapeseed_2017_<>_yield_ground_truth :
    3.13883495145631
    Germany_DUP3_farm5_field262_rapeseed_2019_<>_yield_ground_truth :
    3.746
    Germany_DUP3_farm2_field191_rapeseed_2017_<>_yield_ground_truth :
    3.16
    Germany_DUP3_farm1_field22_rapeseed_2016_<>_yield_ground_truth :
    3.11714285714286
    Germany_DUP3_farm2_field119_rapeseed_2020_<>_yield_ground_truth :
    4.64
    Germany_DUP3_farm5_field273_rapeseed_2018_<>_yield_ground_truth :
    4.104
    Germany_DUP3_farm1_field21_rapeseed_2017_<>_yield_ground_truth :
    3.92444444444445
    Germany_DUP3_farm2_field156_rapeseed_2020_<>_yield_ground_truth :
    5.38
    Germany_DUP3_farm2_field216_rapeseed_2022_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm1_field64_rapeseed_2016_<>_yield_ground_truth :
    3.62
    Germany_DUP3_farm2_field95_rapeseed_2020_<>_yield_ground_truth :
    4.8
    Germany_DUP3_farm2_field176_rapeseed_2017_<>_yield_ground_truth :
    4.2
    Germany_DUP3_farm2_field115_rapeseed_2020_<>_yield_ground_truth :
    3.81
    Germany_DUP3_farm1_field11_rapeseed_2016_<>_yield_ground_truth :
    0.840909090909091
    Germany_DUP3_farm6_field291_rapeseed_2021_<>_yield_ground_truth :
    3.38
    Germany_DUP3_farm1_field7_rapeseed_2016_<>_yield_ground_truth :
    3.42142857142857
    Germany_DUP3_farm4_field246_rapeseed_2019_<>_yield_ground_truth :
    2.93931037259204
    Germany_DUP3_farm4_field260_rapeseed_2018_<>_yield_ground_truth :
    3.402817
    Germany_DUP3_farm2_field117_rapeseed_2021_<>_yield_ground_truth :
    4.53
    Germany_DUP3_farm4_field242_rapeseed_2018_<>_yield_ground_truth :
    2.894727
    Germany_DUP3_farm3_field238_rapeseed_2017_<>_yield_ground_truth :
    1.39606745341448
    Germany_DUP3_farm3_field236_rapeseed_2017_<>_yield_ground_truth :
    3.18614385100426
    Germany_DUP3_farm1_field20_rapeseed_2017_<>_yield_ground_truth :
    3.03
    Germany_DUP3_farm4_field254_rapeseed_2016_<>_yield_ground_truth :
    3.941731
    Germany_DUP3_farm6_field280_rapeseed_2019_<>_yield_ground_truth :
    2.87
    Germany_DUP3_farm6_field294_rapeseed_2016_<>_yield_ground_truth :
    3.97
    Germany_DUP3_farm5_field269_rapeseed_2017_<>_yield_ground_truth :
    2.205
    Germany_DUP3_farm6_field281_rapeseed_2019_<>_yield_ground_truth :
    3.74
    Germany_DUP3_farm5_field275_rapeseed_2018_<>_yield_ground_truth :
    4.454
    Germany_DUP3_farm6_field278_rapeseed_2018_<>_yield_ground_truth :
    3.8
In [8]:
print(f"Filtered Dataset size: \n{dict(filtered_ds.sizes)} \n")
print("Available crops after filterin:")
print({int(k): v for k, v in filtered_ds["crop"].attrs.items()})
Filtered Dataset size: 
{'index': 302802, 'time_step': 24, 'band': 120} 

Available crops after filterin:
{0: 'rapeseed'}

2. Dataset and Grouped Train/Test Splitting¶

This cell defines a Pytorch YieldSATDataset class and performs a grouped split by field_id for robust cross-validation. The goal is to prevent leakage from the same field between train/test folds.

In [9]:
from torch.utils.data import Dataset, DataLoader
import torch
In [10]:
# Check if cuda is available for faster GPU training
torch.cuda.is_available()
Out[10]:
True
In [11]:
class YieldSATDataset(Dataset):
    def __init__(self, 
                 data: str, 
                 fill_value=-1, 
                 band=['B01', 'B02', 'B03', 'B04', 'B05', 'B06', 'B07', 'B08', 'B8A', 'B09','B11', 'B12',], #S2 only for demonstration. Include other available features as required
                 indices=None,
                ):
        super().__init__()

        self.data_path = data
        self.indices = indices
        self.fill_value = fill_value
        self.band= band
        
        if isinstance(data, (Path, str)):
            assert os.path.exists(data), f"Dataset file {data} not found."
            self.ds = xr.open_dataset(data).load()
        else: 
            self.ds = data.load()

        self.ds["sample"] = self.ds["sample"].fillna(fill_value)
        self.num_features = self.ds.band.values.size
        self.len_sequence = self.ds.time_step.values.size

        #filter dataset for selected indices for CV training
        if self.indices is not None:
            self.ds = self.ds.sel(index=self.indices)

        #filter dataset for selected bands
        if self.band != []:
            self.ds = self.ds.sel(band=band)

        self.index_ids = list(self.ds.coords["index"].values)

    def __len__(self):
        return len(self.ds["sample"])

    def __getitem__(self, idx):
        sample = self.ds['sample'].isel(index=idx).values.astype(np.float32)
        target = self.ds['target'].isel(index=idx).values.astype(np.float32)
        index = str(self.ds['index'].isel(index=idx).values)
        sample = np.nan_to_num(sample, nan=-1.0, posinf=-1.0, neginf=-1.0)
        return {"sample": torch.tensor(sample, dtype=torch.float32), "target": torch.tensor(target, dtype=torch.float32), "index": index}

3. Group-K-Fold Cross-Validation¶

We create a simple dataset splitting for CV training by ensuring that pixels (index) from the same field are either in train or val to avoid information leakage. We can create more advances splittings (e.g., stratifying by region, leave-one-year-out, or leave-one-region-out etc.), to ensure a more realistic training setup.

In [12]:
from sklearn.model_selection import GroupKFold
import random
random.seed(0)
In [13]:
def split_dataset_by_group(data: str, n_splits: int=5, group_key: str=None) -> list:
    """Create train/val splits for CV training based on group-k-fold CV. 

    This ensures that pixels from the same field are either in train or in val. 

    Parameters:
    -----------
        data_path: path to .nc dataset
        n_splits: number of folds
        group_key : key used for grouping
    
    Returns:
    --------
        list of splits
    """
    if isinstance(data, (str, Path)):
        assert os.path.exists(data), f"Dataset file {data} not found."
        data = xr.open_dataset(data)

    indices = data.coords["index"].values.tolist()  
    random.shuffle(indices)
    groups = data[group_key].sel(index=indices).values if group_key is not None else None
    if group_key is not None:
        inst = GroupKFold(n_splits=n_splits)
        splits = [
            (np.take(indices, train_ind).tolist(), np.take(indices, val_ind).tolist())
            for train_ind, val_ind in inst.split(indices, groups=groups)
        ]
    for split_i in splits:
            assert set(split_i[0]).isdisjoint(set(split_i[1])), "sets overlap"
    return splits

splits = split_dataset_by_group(data=filtered_ds, n_splits=2, group_key="field_shared_name")
print(f"Number of splits for CV training: {len(splits)}")
Number of splits for CV training: 2

4. LSTM Model and Training¶

We define a minimal Pytorch LSTM model and a training pipeline. We will train the model on a Group-K-Fold cross-validation split and evaluate on a seperate validation set using common regression metrics. You can replace it with your model of choice.

In [14]:
class LSTM_Model(torch.nn.Module):
    def __init__(self, input_dim, hidden_dim=64, num_layers=1):
        super().__init__()
        self.lstm = torch.nn.LSTM(input_size=input_dim, hidden_size=hidden_dim, num_layers=num_layers, batch_first=True)
        self.fc = torch.nn.Linear(hidden_dim, 1)

    def forward(self, x):
        out, _ = self.lstm(x)
        out = out[:, -1, :]
        out = self.fc(out)
        return out.squeeze(1)
In [15]:
from sklearn.metrics import mean_squared_error, r2_score

def model_training(model, train_loader, criterion, optimizer, device):
    train_loss = 0
    for idx, sample_batch in enumerate(train_loader):
        sample = sample_batch["sample"].to(device)
        target = sample_batch["target"].to(device)
        optimizer.zero_grad()
        preds = model(sample)
        loss = criterion(preds, target)
        loss.backward()
        optimizer.step()
        train_loss += loss.item() * preds.size(0)

    total_loss = train_loss / len(train_loader)
    print(f"total train loss: {total_loss:.2f}")


def model_validation(model, val_loader, criterion, device, BEST_R2_SCORE):
    val_loss = 0
    predictions = []
    targets = []
    indices = []
    for idx, sample_batch in enumerate(val_loader):
        sample = sample_batch["sample"].to(device)
        target = sample_batch["target"].to(device)
        index = sample_batch["index"]
        with torch.no_grad():
            preds = model(sample)
        loss = criterion(preds, target)
        val_loss += loss.item() * preds.size(0)
        predictions.extend(preds.detach().cpu().numpy())
        targets.extend(target.detach().cpu().numpy())
        indices.extend(index)

    total_val_loss = val_loss / len(val_loader)
    print(f"total val loss: {total_val_loss:.2f}")
    
    ep_r2 = r2_score(targets, predictions)
    if ep_r2 > BEST_R2_SCORE:
        BEST_R2_SCORE = ep_r2
        print(f"New best R2-Score: {BEST_R2_SCORE:.2f}")

    val_df = pd.DataFrame({
        "index": indices,
        "target": targets,
        "prediction": predictions,
    })
    return val_df, BEST_R2_SCORE
In [16]:
# CV training
n_splits = 2 #Only 2 for demonstration
n_epochs = 15
cv_predictions = []
for cv_i in range(n_splits):
    train_indices, val_indices = splits[cv_i]
    print(f"xxxxxxx Start CV Run : {cv_i} xxxxxxx")
    print("Nr. training indices:", len(train_indices))
    print("Nr. validation indices:", len(val_indices))

    train_dataset = YieldSATDataset(data=preprocessed_path, indices=train_indices)
    val_dataset = YieldSATDataset(data=filtered_ds, indices=val_indices)    
    num_workers = int(len(os.sched_getaffinity(0)) // 4)

    train_loader = torch.utils.data.DataLoader(
        dataset=train_dataset,
        shuffle=True,
        batch_size=1028,
        pin_memory=True,
        num_workers=num_workers
    )
    
    val_loader = torch.utils.data.DataLoader(
        dataset=val_dataset,
        shuffle=False,
        batch_size=1028,
        pin_memory=True,
        num_workers=num_workers
    )

    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model = LSTM_Model(input_dim=12).to(device)

    criterion = torch.nn.MSELoss()
    optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

    BEST_R2_SCORE = -1e6
    for epoch in range(n_epochs):
        print(f"------- Epoch: {epoch} -------")
        model_training(model=model, train_loader=train_loader, criterion=criterion, optimizer=optimizer, device=device)
        val_df, BEST_R2_SCORE = model_validation(
            model=model,
            val_loader=val_loader,
            criterion=criterion,
            device=device,
            BEST_R2_SCORE=BEST_R2_SCORE,
        )
        val_df["cv_fold"] = cv_i
        val_df["epoch"] = epoch
        cv_predictions.append(val_df)
# concatenate per-fold prediction results and save them
cv_predictions_df = pd.concat(cv_predictions, ignore_index=True)
xxxxxxx Start CV Run : 0 xxxxxxx
Nr. training indices: 151165
Nr. validation indices: 151637
------- Epoch: 0 -------
total train loss: 4548.08
total val loss: 2993.71
New best R2-Score: 0.03
------- Epoch: 1 -------
total train loss: 2006.82
total val loss: 2560.84
New best R2-Score: 0.17
------- Epoch: 2 -------
total train loss: 1589.69
total val loss: 2476.71
New best R2-Score: 0.20
------- Epoch: 3 -------
total train loss: 1421.30
total val loss: 2351.50
New best R2-Score: 0.24
------- Epoch: 4 -------
total train loss: 1337.11
total val loss: 2353.96
------- Epoch: 5 -------
total train loss: 1266.23
total val loss: 2245.00
New best R2-Score: 0.27
------- Epoch: 6 -------
total train loss: 1251.52
total val loss: 2358.66
------- Epoch: 7 -------
total train loss: 1216.00
total val loss: 2286.11
------- Epoch: 8 -------
total train loss: 1180.61
total val loss: 2580.89
------- Epoch: 9 -------
total train loss: 1201.00
total val loss: 2339.74
------- Epoch: 10 -------
total train loss: 1167.83
total val loss: 2292.98
------- Epoch: 11 -------
total train loss: 1150.64
total val loss: 2372.72
------- Epoch: 12 -------
total train loss: 1135.26
total val loss: 2458.28
------- Epoch: 13 -------
total train loss: 1112.53
total val loss: 2362.46
------- Epoch: 14 -------
total train loss: 1110.14
total val loss: 2267.49
xxxxxxx Start CV Run : 1 xxxxxxx
Nr. training indices: 151637
Nr. validation indices: 151165
------- Epoch: 0 -------
total train loss: 4979.16
total val loss: 2593.18
New best R2-Score: 0.01
------- Epoch: 1 -------
total train loss: 2586.59
total val loss: 2437.88
New best R2-Score: 0.07
------- Epoch: 2 -------
total train loss: 2088.74
total val loss: 2281.43
New best R2-Score: 0.13
------- Epoch: 3 -------
total train loss: 1951.98
total val loss: 2426.43
------- Epoch: 4 -------
total train loss: 1840.27
total val loss: 2432.72
------- Epoch: 5 -------
total train loss: 1728.92
total val loss: 2358.15
------- Epoch: 6 -------
total train loss: 1635.89
total val loss: 2264.06
New best R2-Score: 0.13
------- Epoch: 7 -------
total train loss: 1563.77
total val loss: 2336.92
------- Epoch: 8 -------
total train loss: 1519.08
total val loss: 2270.87
------- Epoch: 9 -------
total train loss: 1496.94
total val loss: 2007.62
New best R2-Score: 0.23
------- Epoch: 10 -------
total train loss: 1478.89
total val loss: 1964.07
New best R2-Score: 0.25
------- Epoch: 11 -------
total train loss: 1459.96
total val loss: 1985.62
------- Epoch: 12 -------
total train loss: 1432.80
total val loss: 2082.75
------- Epoch: 13 -------
total train loss: 1447.36
total val loss: 1983.69
------- Epoch: 14 -------
total train loss: 1406.08
total val loss: 1950.60
New best R2-Score: 0.25
In [17]:
#stored results
cv_predictions_df
Out[17]:
index target prediction cv_fold epoch
0 82fbc894-6ce3-462a-ac56-906f053416f8 4.460000 3.881447 0 0
1 90542626-23d3-4432-ae67-ced2b7dd93a0 4.633333 4.266084 0 0
2 96e1d447-8c55-411b-991c-54d3b7f3b89e 4.365000 4.010424 0 0
3 fd97ab25-00ee-4707-a0cd-d6b70fd41d09 7.495000 3.897541 0 0
4 fd7e68d8-fa07-41dd-b375-a70e3c18b12d 3.680000 4.050245 0 0
... ... ... ... ... ...
4542025 fa0ddbe5-55dc-4ab9-b887-07f1c57da4a3 3.020000 3.367503 1 14
4542026 d1c87a3f-b690-423e-8ccd-37eddd999518 1.524000 3.638667 1 14
4542027 6dce6c67-cc67-45ee-9ed2-4a8f5bb5cacf 5.525000 5.277243 1 14
4542028 bdaa9629-7468-4aac-b54c-8be6a1f9dd94 0.666667 1.536965 1 14
4542029 8b01960b-a8eb-4ad1-a171-baddeac026e7 4.397778 4.782866 1 14

4542030 rows × 5 columns

5. Evaluation: RMSE and R2¶

6. Pixel-level Evaluation¶

We can evaluate the predictions at the individual pixel level and over all CV folds.

In [18]:
# Average predictions per index over CV folds
pixel_avg = cv_predictions_df.groupby('index').agg({'prediction': 'mean', 'target': 'first'}).reset_index()


rmse_pixel = np.sqrt(mean_squared_error(pixel_avg['target'], pixel_avg['prediction']))
r2_pixel = r2_score(pixel_avg['target'], pixel_avg['prediction'])

print(f'Pixel-level RMSE: {rmse_pixel:.4f}')
print(f'Pixel-level R2: {r2_pixel:.4f}')

# Scatterplot
plt.figure(figsize=(7,7))
plt.scatter(pixel_avg['target'], pixel_avg['prediction'], alpha=0.5)
max_value = max(np.max(pixel_avg['target']), np.max(pixel_avg['prediction']))
min_value = min(np.min(pixel_avg['target']), np.min(pixel_avg['prediction']), 0)
plt.xlim(left=min_value, right=max_value)
plt.ylim(bottom=min_value, top=max_value)
plt.plot([min_value, max_value], [min_value, max_value], color="k", ls="-")


plt.xlabel('Target (t/ha)')
plt.ylabel('Prediction (t/ha)')
plt.title('Pixel-level: Prediction vs Target')
plt.show()

# Histograms
plt.figure(figsize=(15,5))
plt.subplot(1,2,1)
plt.hist(pixel_avg['prediction'], bins=50, fc=(0.14, 0.38, 0.64, 0.7), label='Prediction (t/ha)')
plt.title('Prediction Distribution')
plt.hist(pixel_avg['target'], bins=50, fc=(0.21, 0.59, 0.44, 0.7), label='Target (t/ha)')
plt.title('Prediction and Target Distribution')
plt.legend()
plt.show()
Pixel-level RMSE: 1.4234
Pixel-level R2: 0.2747

7. Field-level Evaluation¶

We can also group predictions by each fields and compare against the ground truth fields statistics.

In [19]:
# Load dataset to get field mapping
ds = xr.open_dataset(preprocessed_path)
field_mapping = ds[['index', 'field_shared_name']].to_dataframe().reset_index()

# Merge with pixel_avg to get field_shared_name
pixel_avg = pixel_avg.merge(field_mapping[['index', 'field_shared_name']], on='index', how='left')

# Group by field_shared_name and average predictions and targets
field_avg = pixel_avg.groupby('field_shared_name').agg({'prediction': 'mean', 'target': 'mean'}).reset_index()

# Compute RMSE and R2 at field level
rmse_field = np.sqrt(mean_squared_error(field_avg['target'], field_avg['prediction']))
r2_field = r2_score(field_avg['target'], field_avg['prediction'])

print(f'Field-level RMSE: {rmse_field:.4f}')
print(f'Field-level R2: {r2_field:.4f}')

# Scatterplot
plt.figure(figsize=(8,6))
plt.scatter(field_avg['target'], field_avg['prediction'], alpha=0.8)

max_value = max(np.max(field_avg['target']), np.max(field_avg['prediction']))
min_value = min(np.min(field_avg['target']), np.min(field_avg['prediction']), 0)
plt.xlim(left=min_value, right=max_value)
plt.ylim(bottom=min_value, top=max_value)
plt.plot([min_value, max_value], [min_value, max_value], color="k", ls="-")

plt.xlabel('Target (t/ha)')
plt.ylabel('Prediction (t/ha)')
plt.title('Field-level: Prediction vs Target')
plt.show()

# Histograms
plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.hist(field_avg['prediction'], bins=50, fc=(0.14, 0.38, 0.64, 0.7), label='Prediction (t/ha)')
plt.hist(field_avg['target'], bins=50, fc=(0.21, 0.59, 0.44, 0.7), label='Target (t/ha)')
plt.title('Prediction and Target Distribution')
plt.legend()
plt.show()
Field-level RMSE: 0.9666
Field-level R2: 0.4815

9. Field Prediction Visualization¶

Finally, we can also evaluate predictions at the spatial level by evaluate the entire fields of pixel-wise predictions.

In [20]:
# Choose a field to visualize (e.g., the first one)
field_name = field_avg['field_shared_name'].iloc[2]
print(f"Visualizing predictions for field: {field_name}")

# Get pixels for this field
field_pixels = pixel_avg[pixel_avg['field_shared_name'] == field_name]

# Load dataset to get row and col coordinates
ds = xr.open_dataset(preprocessed_path)
field_indices = field_pixels['index'].tolist()
field_ds = ds.sel(index=field_indices)

# Extract row, col, predictions, and targets
rows = field_ds['row'].values
cols = field_ds['col'].values
preds = field_pixels['prediction'].values
targets = field_pixels['target'].values

# Create 2D image arrays
# Shift coordinates to start from 0
min_row = rows.min()
min_col = cols.min()
row_shifted = rows - min_row
col_shifted = cols - min_col

# Determine image dimensions
max_row = int(row_shifted.max()) + 1
max_col = int(col_shifted.max()) + 1

# Initialize images with NaN
pred_image = np.full((max_row, max_col), np.nan)
target_image = np.full((max_row, max_col), np.nan)
mse_image = np.full((max_row, max_col), np.nan)

# Fill in values
for r, c, p, t in zip(row_shifted, col_shifted, preds, targets):
    pred_image[int(r), int(c)] = p
    target_image[int(r), int(c)] = t
    mse_image[int(r), int(c)] = abs(p - t) 

# Plot the field predictions, targets, and MSE
fig, axes = plt.subplots(1, 3, figsize=(18, 6))

# Prediction
im1 = axes[0].imshow(pred_image, cmap='viridis', origin='upper')
axes[0].set_title(f'Predictions for Field {field_name}')
axes[0].set_xlabel('Column')
axes[0].set_ylabel('Row')
plt.colorbar(im1, ax=axes[0], label='Prediction (t/ha)')

# Target
im2 = axes[1].imshow(target_image, cmap='viridis', origin='upper')
axes[1].set_title(f'Targets for Field {field_name}')
axes[1].set_xlabel('Column')
axes[1].set_ylabel('Row')
plt.colorbar(im2, ax=axes[1], label='Target (t/ha)')

# MSE
im3 = axes[2].imshow(mse_image, cmap='plasma', origin='upper')
axes[2].set_title(f'Pixel-wise MSE for Field {field_name}')
axes[2].set_xlabel('Column')
axes[2].set_ylabel('Row')
plt.colorbar(im3, ax=axes[2], label='MAE')

plt.tight_layout()
plt.show()
Visualizing predictions for field: 4