Parcelles

Présentation

Voir ici pour les explications sur les parcelles hors zone.

Lien vers entité du DAR.

Données Maelia

Données Brutes

Type : SHP

Source : Les parcelles sont issues des ilots.

Données d’entrée de Maelia

Type : SHP

Chemin :

  • modeleAgricole/ilots/dansZone/parcelles.shp
  • modeleAgricole/ilots/horsZone/parcelles_HZ.shp

Attributs de la donnée

Libellé Type Description Unité
CARACT_IRR String Indique si l’ilot est irrigable (N/O) SU
CULT_REF String Culture initiale de la parcelle SU
ID_PARCELL String Identifiant de la parcelle, donne également l’indication de l’ilot auquel elle appartient (identifiant du type : « id_ilot_xx ») SU
ID_SDC String Identifiant du système de culture SU
INDEX_DEP Integer Indice de départ dans la SEQUENCE SU
SEQUENCE String Rotation initiale de parcelle Ha
SURFACE Double Surface de la parcelle Ha

Visualisation : Exemple de la zone Garonne-Amont

Image parcellesSHP
Les parcelles découpées géographiquement dans et hors de la zone d’étude

Pré-traitement des données brutes

La parcelle n’est pas une entité géo-référencée de base. Une spatialisation grossière a été réalisée afin de simplifier l’initialisation du modèle.  Les attributs ID_SDC, SEQUENCE et CULT_REF sont issus d’une succession d’analyse de la rotation réelle de la donnée brute du RPG. Les étapes qui ont conduit à ces attributs sont décrite par la suite.

Données d’entrée

  • La couche SIG des îlot RPG  (associant un identifiant d’îlot (ID_ILOT), un identifiant d’exploitation (ID_EXPLOIT) et le caractère irrigable ou non de l’exploitation (CARACT_IRR)
  • les séquences reconstruites à partir du RPG  (sous forme de fichier csv) : id_ilot ; séquence ; surface ; culture année de référence
  • un fichier décrivant les transformations de noms de cultures à appliquer sur le RPG brut.
nom_RPG nom_MAELIA
inconnu
autresoleagineux autresOleagineux
gelsansprod;gel gel
gelind gel
fourrage prairiet
legfleur autresOleagineux

Extrait du fichier de simplification pour les séquences RPG brutes, pour la zone Garonne Amont. Le fait d’affecter une chaine vide au type ‘inconnu’ permet de faire disparaitre cette culture des séquences RPG

  • une liste de séquence de culture de référence, avec une rotation type (id; caractère irrigué; séquence). Les séquences irriguées en premier.
  • un fichier permettant de définir les spécifications de cultures

 Transformation des séquences brutes RPG

Cette étape consiste simplement à assembler plusieurs catégories de cultures en une seule (par exemple associer ‘gelsansprod’, ‘gelind’ et ‘gelautre’ dans la culture ‘ gel’) ou à supprimer des cultures (par exemple faire disparaitre des séquences les cultures de classe ‘inconnu’).

D’un point de vue algorithmique, il s’agit simplement d’une transformation de chaine de caractères. La culture de référence (CULT_REF) est éventuellement mis à jour suite aux transformations effectuées sur la séquence. A noter que cette étape peut également permettre de renommer une culture RPG avec un nom considéré comme plus approprié par l’utilisateur.

 Affection d’un système de culture aux cultures

Pour une culture, il existe potentiellement plusieurs itks possibles. On peut spécifier des types de sol et/ou des zones climatiques aux itks, mais il n’y a pas forcément unicité. Il est donc nécessaire d’associer aux cultures un système de culture en fonction de la séquence observée (séquences RPG traitée à l’étape précédente). L’affectation d’un système de culture à une parcelles est donc nécessaire :

  • pour identifier correctement les itks
  • pour la gestion des sorties (un certain nombre d’analyses se font par système de cultures)
  • pour l’utilisation du module d’assolement par fonction de croyance. Ce dernier nécessite en effet une affectation initiale de système de culture.

Cette étape prend en entrée une liste de système de culture et de rotation type associée. Cette liste va permettre de rattacher la séquence observée à un SDC.  Voir l’exemple ci-dessous, pour la zone Aveyron Aval :

id famille de SÉQUENCE de culture irrigable Culture1 Culture2 Culture3 Culture4 Culture5 Culture6 Culture7
mais*_g oui mais
mais/ble_irr oui mais CP
mais/soja oui mais soja
CP/soja_irr oui CP soja
prairiet/mais_irr oui mais prairiet prairiet prairiet
mais*_s oui semence semence semence semence
semence/X oui semence semence CP
arbo oui vergers vergers vergers vergers vergers vergers vergers
prairiep non prairiep prairiep prairiep prairiep prairiep prairiep prairiep
prairiet/CP non CP prairiet prairiet prairiet
prairiet/mais_sec non mais prairiet prairiet prairiet
cereale* non CP
CP/soja non CP soja
mais/ble non mais CP
vignes non vignes vignes vignes vignes vignes vignes vignes
gel non gel
CP/tour non CP tour
CP/colza non CP colza
arbo_sec non vergers vergers vergers vergers vergers vergers vergers
divers non pois tour soja semence prairiet prairiep gel

L’algorithme consiste à étendre les séquences au plus petit commun multiplicateur entre la longueur de la rotation type et la longueur de la séquence observé, puis de compter les présences d’espèces en commun. Cette approche permet de distinguer une rotation maïs/blé d’une rotation maïs/maïs/blé. Elle pourrait cependant être améliorée par l’utilisation de matrice de coûts de distance entre séquences.

max_indice_proximite = -1

POUR chaque SDC appartenant à l’ensemble des SDC MAELIA(irr / sec) FAIRE

rotation_type = rotation type associée au SDC
ppcm = PPCM(longueur(rotation_type), longueur(séquence_obs_RPG)) //plus petit commun multiplicateur
rotation_type_étendue = rotation_type répétée jusqu’à obtenir la longueur ppcm
séquence_obs_RPG_étendue = séquence_obs_RPG répétée jusqu’à obtenir la longueur ppcm
compteur = 0;
POUR chaque culture appartenant à la rotation_type_étendue FAIRE

Si culture existe dans séquence_obs_RPG_étendue Alors

compteur = compteur + 1
Supprimer une occurrence de culture dans séquence_obs_RPG_étendue

Fin

Fait
compteur = compteur / ppcm
Si compteur > max_indice_proximite Alors

max_indice_proximite = compteur
SDC_le_plus_proche = SDC

Fin

Fait

Remarque : pour des raisons structurelles du code, toutes les cultures présentes dans les  séquences RPG (après l’étape ‘Transformation des séquences brutes RPG’) doivent apparaitre au moins une fois dans les rotations. De même les SDC irrigués doivent apparaitre en premier.

Spécification de cultures

Cette étape contient un algorithme permettant de spécifier des cultures. Par exemple, cela permet de distinguer les variétés de maïs.

Pour chaque « spécification de culture » on définit :

  • un ensemble de nouvelles variétés auxquelles est associée une fraction de surface concernée
  • une liste de croisement système de culture x sol (ZONE_PEDO) auquel est associée une priorité

Voici un exemple de fichier fourni en entrée du prétraitement. Pour des raisons de lisibilité de l’exemple les types de sols ont été simplifiés (tous les types de coteaux apparaissent sous le libellé ‘ctx’ et tous les boulbènes sous ‘bb’). Le symbole * signifie que l’on considère respectivement tous les systèmes de cultures possibles ou tous les types de sol. La première colonne contient un nom indicatif de la spécification à faire. Pour chaque spécification la première ligne contient l’espèce à transformer puis les couples (fraction de surface et nouvelles variétés). Les lignes suivantes sont structurées par indice de priorité ; système de culture ; type de sol.

varieteMaïsPrec mais 0.1 maisPP 0.6 maisP 0.3 maisDP
varieteMaïsPrec 1 mais/ble_irr ctx
varieteMaïsPrec 1 mais/ble_sec ctx
varieteMaïsTardif mais 0.1 maisTT 0.6 maisT 0.3 maisDT
varieteMaïsTardif 1 * all
varieteMaïsTardif 1 * bb
varieteMaïsTardif 2 * *

POUR chaque spécification FAIRE

p = 1 //compteur de priorité
Créer les listes de parcelles correspondant aux croisements SDC x type de sol ayant au moins culture à changer dans leur séquence et les assembler par classes de priorités
Somme_Surface_Totale = Somme surfaces des parcelles des listes toutes priorités confondues
POUR chacune des nouvelles variétés var FAIRE

Somme_Surface_Nouvelle_Variété = 0
TANT QUE Somme_Surface_Nouvelle_Variété < Somme_Surface_Totale * fraction_surface_à_couvrir(var) FAIRE

Tirer aléatoirement une parcelle parc dans la liste de priorité p
Affecter la nouvelle variété var dans la séquence RPG de la parcelle parc
Mettre à jour la culture de référence si nécessaire
Somme_Surface_Nouvelle_Variété = Somme_Surface_Nouvelle_Variété + Surface(parc)
Retirer la parcelle parc de la liste de priorité p
SI liste de parcelles de priorité p vide ALORS

p = p +1

FIN

FAIT

FAIT

FAIT

Remarque : cette algorithme pourrait être étendu en ajoutant une dimension zonage climatique