The four years of CROME data can be used to identify pixels that are persistently a given land cover class and those that change. Land cover of woodland areas change slowly whereas arable areas may change from year to year. Similarly grasslands may be permanent or temporary and part of the arable crop cycle. The non-persistent areas constitute a rather complex combination of classes, albeit one that has a logic to it.
The primary purpose of using the CROME maps is to distinguish between arable crops (including temporary grassland) and persistent grassland. It is not possible to do this adequately using a snapshot of just one year. An additional aspiration is to distinguish between improved and semi-improved grassland within the persistent grassland category.
All four CROME datasets were converted into raster format and processed in Clarke Labs TerrSet and QGIS software.
For each year the binary CROME map is declassed to extract a binary mask of each land cover class. These masks are then added together to make a persistence map of how many years that class has occurred within the period. This persistence map is then re-classed to separate out persistent and non-persistent areas of that class.
This process is performed for each of the main classes: Fallow, Grassland, Arable, Trees, Water, Heathland, Non-vegetated. Note that the Arable class is a merging of all arable crops, the Trees class is a merging of all trees classes.

The basic classes are: Fallow, Grassland, Arable, Trees, Water, Heathland and Non-vegetated land.
Here binary masks of grassland are extracted for the years 2016, 2017, 2018 and 2019 and combined into a (colour) persistence image indicating where grassland was detected in 1, 2, 3 or 4 years. From this the last image shows the locations where grassland was detected in all four years, these areas have a high confidence of ‘grassland’ that is not part of the arable crop cycle (within the 4 year time frame).
The final image of persistent grassland is a pure class that is not confused with any others through time. This temporal processing is extended to each of the main classes to make a map of pure land cover classes, here blue=water, green=grassland, yellow=arable, cyan=non-vegetated, red=heathland.

The gaps between these pure classes are where there is either and change of land cover from one year to the next or miss-classification in the CROME data. The certain pure classes are surrounded by churning of land cover (for example temporary grassland in the arable rotation) and/or fuzziness and lack of certainty in the classification.
Persistent and non-persistent layers can be combined together cartographically into one map, effectively filling in the gaps. Here woodland is green, arable, brown, grass purples, non-vegetated light grey. However this means that in the non-persistent areas one layer overlays and obscures the others.

Combining the Persistent & Non-Persistent Land Cover Classes
Persistent Land Cover Classes
The persistent land cover classes (which do not overlap) are combined together and given the following codes:
Class | New Code |
Fallow | 130 |
Grassland | 140 |
Arable | 150 |
Trees | 160 |
Water | 170 |
Heathland | 180 |
Non Vegetated | 190 |
These codes are combined into a map of unambiguous, non-overlapping classes – with gaps. The gaps are where non-persistent classes overlap.
Non-Persistent Land Cover Classes
The non-persistent classes (which may overlap) are combined together and given the following codes:
Non-Persistent Class | Code |
Fallow | 1 |
Grassland | 2 |
Arable | 4 |
Trees | 8 |
Water | 16 |
Heathland | 32 |
Non-vegetated | 64 |
Up to four of these codes (one for each year) may be combined as a set of non-persistent classes. For example non-persistent grass in 2016, non-persistent heathland in 2017, non-persistent non-vegetation in 2018, and non-persistent water in 2019 – resulting in a code of 114. Non-persistent arable and non-persistent grass has the code 6.
These codes record the occurrence and combination of non-persistent classes but not the frequency of occurrence of each, although this is available to look up. So, if a pixel is a mixture of arable and grassland, from one year to the next, the code does not indicate whether arable or grassland occurred more frequently than the other, only that they occurred together.
This coding allows the combination of the Persistent and Non-Persistent categories into one map
Combining Arable, Grassland and Temporary Grassland
Macro model: make_arable_grass_powers_addition.
Inputs: grass_persistence, arable_persistence
Output: arable_grass_power_addition, coded as follows:
Heathland | 0 0 | 4096 1 | 8192 2 | – 3 | – 4 | ||
Fallow | 0 0 | 256 1 | 512 2 | 1024 3 | 2048 4 | ||
Grass | 0 0 | 16 1 | 32 2 | 64 3 | 128 4 | ||
Arable | 8 4 | 4 3 | 2 2 | 1 1 | 0 0 |
Coding grass and arable like this and adding them together gives the following combination of distinct and overlapping classes.
DN | Group | Code | Class | Confidence | |
30 | O | 1 | Arable 1 | Arable mixed with ‘other’ | Very Low |
10 | A | 2 | Arable 2 | Arable mixed with ‘other’ | Low |
10 | A | 4 | Arable 3 | Arable mixed with ‘other’ | Medium |
10 | A | 8 | Arable 4 | Persistent arable | High |
30 | O | 16 | Grass 1 | Grass mixed with ‘other’ | Very Low |
10 | A | 17 | Grass 1 / Arable 1 | Temporary grass | Low |
10 | A | 18 | Grass 1 / Arable 2 | Temporary grass | Medium |
10 | A | 20 | Grass 1 / Arable 3 | Temporary grass | High |
20 | G | 32 | Grass 2 | Grass mixed with ‘other’ | Low |
20 | A | 33 | Grass 2 / Arable 1 | Temporary grass | Medium |
10 | A | 34 | Grass 2 / Arable 2 | Temporary grass | High |
20 | G | 64 | Grass 3 | Grass mixed with ‘other’ | Medium |
20 | A | 65 | Grass 3 / Arable 1 | Temporary grass | High |
20 | G | 128 | Grass 4 | Persistent grass | High |
30 | O | 256 | Fallow 1 | Fallow mixed with 3 others | Very Low |
30 | A | 257 | Fallow 1 / Arable 1 | Arable Fallow | |
10 | A | 258 | Fallow 1 / Arable 2 | Arable Fallow | |
10 | A | 260 | Fallow 1 / Arable 3 | Arable Fallow | |
30 | O | 272 | Fallow 1 / Grass 1 | ||
30 | A | 273 | Fallow 1 / Grass 1 / Arable 1 | Arable Fallow | |
10 | A | 274 | Fallow 1 / Grass 1 / Arable 2 | Arable Fallow | |
30 | O | 288 | Fallow 1 / Grass 2 | ||
30 | A | 289 | Fallow 1 / Grass 2 / Arable 1 | Arable Fallow | |
20 | G | 320 | Fallow 1 / Grass 3 | ||
30 | O | 512 | Fallow 2 | Fallow mixed with 2 others | Low |
30 | A | 513 | Fallow 2 / Arable 1 | Arable Fallow | |
10 | A | 514 | Fallow 2 / Arable 2 | Arable Fallow | |
20 | O | 528 | Fallow 2 / Grass 1 | ||
30 | A | 529 | Fallow 2 / Grass 1 / Arable 1 | Arable Fallow | |
10 | O | 544 | Fallow 2 / Grass 2 | ||
30 | O | 1024 | Fallow 3 | Fallow mixed with 1 other | Medium |
30 | A | 1025 | Fallow 3 / Arable 1 | Arable Fallow | |
30 | O | 1040 | Fallow 3 / Grass 1 | ||
30 | F | 2048 | Fallow 4 | Persistent Fallow | High |
40 | H | 4096 | Heathland | ||
H.. | 4097 | Heathland … | |||
4098 | |||||
4100 | |||||
4112 | |||||
4113 | |||||
4114 | |||||
4128 | |||||
4129 | |||||
4160 | |||||
4352 | |||||
4353 | |||||
4354 | |||||
4368 | |||||
4369 | |||||
4384 | |||||
4608 | |||||
4609 | |||||
4624 | |||||
5120 | |||||
8192 | |||||
8193 | |||||
8194 | |||||
8208 | |||||
8209 | |||||
8224 | |||||
8448 | |||||
8449 | |||||
8464 | |||||
8703 |
This can be used to define where the opportunity woodland is, i.e. Grassland that is neither temporary-grassland nor arable.
arable_grass_power_addition (coded as above) is reclassed into arable_grass_temp-grass using recalls_arable_grass_fallow_heathland_powers_to_codes (this goes from the Code column to the DN column above).

1 = arable, 2 = grass, 3 = temporary grass
Class 2=grass identifies the envelope where opportunity woodland exists. To this should also be added a visual confidence measure.
Use reclass_arable_grass_temp-grass_to_grass