La restriction a pour effet :
1. Le nombre de jours d’arrosage dans la semaine est réduit
2. Pour compenser, les agriculteurs mobilisent leur suréquipement et accélèrent le tour d’eau dans le groupe d’irrigation: se traduit par l’augmentation du surface irrigable par jour (SIJ)
Les agris irriguent moins souvent mais prélèvent plus
Dans le cas de restrictions totales (7j/7) :
- groupe homogène (toutes les parcelles sont reliées à la même ressource) : la restriction a le même effet sur tout le groupe.
- groupe hétérogène (les parcelles sont reliées à des ressources différentes, ou certaines parcelles sont reliées à plusieurs ressources): la restriction n’a pas le même effet sur tout le groupe : le tour d’eau continue pour les parcelles reliées à des ressources pas en restriction
Surfrestri : surface des parcelles connectées à la zone en restriction du groupe d’irrigation
nbJrestri: Nombre de jour de restriction
SIJ : surface irrigable par jour (~ 1,5 ha/jr), défini par SdC dans la table RDD.
Lors d’une restriction, on regarde la Surfrestri à la mise en place du tour d’eau et :
Si SIJ . (6 – nbJrestri) < Surfrestri < SIJ . (7 – nbJrestri) alors on ne change pas le SIJ
Si SIJ . (6 – nbJrestri) < Surfrestri < SIJ . (7 – nbJrestri) alors SIJ = 7/6 . SIJ
Si SIJ . (5 – nbJrestri) < Surfrestri < SIJ . (6 – nbJrestri) alors SIJ = 7/5 . SIJ
Annexe 16
Algorithme de création d’alternative en entrée de simulation
Exemple pour l’alternative 2 dite "Alt.Rot" dans l'article 3, seuil 40%
-- 1. préparation des tables
-- -- texpl: Créer une table des exploitations avec leur sau et leur surf_mais annuelle calculée avec la surface mais declarée en 2009
drop table if exists texpl; create temporary table texpl as select
pae_id_expl, sum(surface) sau from var.parcelles2009_mais103060_CerHiv group by pae_id_expl;
drop table if exists texpl_surf_mais2009; create temporary table
texpl_surf_mais2009 as select pae_id_expl, sum(surface) surf_mais2009 from var.parcelles2009_mais103060_CerHiv where cult_ref like '%mais%' group by pae_id_expl;
drop table if exists texpl_surf_seqmais; create temporary table
texpl_surf_seqmais as select pae_id_expl, sum(surface) surf_seqmais from var.parcelles2009_mais103060_CerHiv where sequence like '%mais%' group by pae_id_expl;
alter table texpl add column surf_mais2009 numeric DEFAULT 0; update texpl
set surf_mais2009 = b.surf_mais2009 from texpl_surf_mais2009 b where texpl.pae_id_expl = b.pae_id_expl; alter table texpl add column surf_seqmais
numeric DEFAULT 0; update texpl set surf_seqmais = b.surf_seqmais from
texpl_surf_seqmais b where texpl.pae_id_expl = b.pae_id_expl;
-- -- t0 : table des parcelles à traiter- les "CANDIDATS": sélectionner les parcelles dont la rotation est de type monoculture de maïs grain
drop table if exists t0; create temporary table t0 as select a.* from
var.parcelles2009_mais103060_CerHiv a where id_sdc like '%mais*_g%';
-- -- ajouter des indicateurs aux candidats selon leur exploitation: surf_mais2009, surf_seqmais tx_monoculture
alter table t0 add column surf_mais2009 numeric; update t0 set surf_mais2009
= b.surf_mais2009 from texpl b where t0.pae_id_expl = b.pae_id_expl;
alter table t0 add column surf_seqmais numeric; update t0 set surf_seqmais =
b.surf_seqmais from texpl b where t0.pae_id_expl = b.pae_id_expl;
-- -- parcelles_option2a_40 : une table pour stocker le parcelles traites
drop table if exists var.parcelles2009_option2a_40; create table
var.parcelles2009_option2a_40 as select * from var.parcelles2009_mais103060_CerHiv;
delete from var.parcelles2009_option2a_40 where id_parcelle in (select
-- 2. maj des parcelles de l'option
-- -- 2.1 exclure les parcelles non concernées :ajouter directement aux traités et enlever de t0
-- -- parcelles des epxloitations non signficatives ( maïs en 2009 < 1 ou "Surf pour maïs" < 5ha) [Surf pour maïs : surface dont la sequence observé conttient du mais ) insert into var.parcelles2009_option2a_40 select id_ilot, id_parcelle, caract_irr, pae_id_expl, id_sdc, sequence, index_dep, cult_ref, surface, type_sol, paysage from t0 where surf_seqmais < 5 or surf_mais2009 < 1;
delete from t0 where surf_seqmais < 5 or surf_mais2009 < 1;
-- -- 2.2 virer les parcelles au dessus dus seuil (%)
-- -- créer t1 = cumul des surf concernées par exploitation
drop table if exists t1; create emporary table t1 as SELECT id_parcelle,
surface, pae_id_expl, sum(round(100*surface/surf_mais2009, 3)) OVER
(PARTITION BY pae_id_expl ORDER BY surface asc) as "%_cumul" FROM t0;
-- -- et enlever les parcelles au dessus de 40%
insert into var.parcelles2009_option2a_40
select id_ilot, id_parcelle, caract_irr, pae_id_expl, id_sdc, sequence,
index_dep, cult_ref, surface, type_sol, paysage from t0 where id_parcelle in
(select id_parcelle from t1 where "%_cumul">=40) ; delete from t0 where
id_parcelle in (select id_parcelle from t1 where "%_cumul">=40) ;
-- -- 2.3 Pour les parelles impactées : maj de [rotation type] et de la [sequence]
-- -- Renommer les anciennes et ajouter les nouvelles
alter table t0 rename column id_sdc to id_sdc_old;
alter table t0 rename column sequence to sequence_old;
alter table t0 rename column cult_ref to cult_ref_old;
alter table t0 add column id_sdc character varying;
alter table t0 add column sequence character varying; alter table t0 add
column cult_ref character varying;
-- -- remplacer la rotation type
update t0 set id_sdc = regexp_replace(id_sdc_old, '...', 'mais/ble',
'g');
-- -- remplacer la sequence (Attention l'ordre est important à cause des variétés )
update t0 set sequence = 'maisP_CP' where sequence_old like '%maisP_%' or
sequence_old like '%maisP';
update t0 set sequence = 'maisTT_CP' where sequence_old like '%maisTT%';
update t0 set sequence = 'maisTP_CP' where sequence_old like '%maisTP%';
update t0 set sequence = 'maisDT_CP' where sequence_old like '%maisDT%';
update t0 set sequence = 'maisDP_CP' where sequence_old like '%maisDP%';
-- -- 2.4 Pour les parelles impactées : maj de la cult_ref et INDEX_DEP en répartissant au mieux entre maïs et CP au sein des exploit !!et sur le territoire !!
-- -- t2: calcul de la part de la parcelle dans la surface de l'exploitation qui change pour rotation
drop table if exists t2; create temporary table t2 as select id_parcelle,
surface, pae_id_expl,surface/(sum(surface) OVER (PARTITION BY pae_id_expl))
as "%_changed" from t0;
-- -- t3 cumul pour traiter la moitiée automatiquement:
drop table if exists t3; create temporary table t3 as select *,
sum("%_changed") OVER ( PARTITION BY pae_id_expl ORDER BY surface asc) "%_changed_cumul" from t2; delete from t3 where "%_changed_cumul" > 0.7;
-- -- puis maj de la culture de ref pour le reste
update t0 set cult_ref = 'maisP' where cult_ref_old like '%maisP_%' or
cult_ref_old like '%maisP';
update t0 set cult_ref = 'maisT' where cult_ref_old like '%maisT_%' or
cult_ref_old like '%maisT';
update t0 set cult_ref = 'maisTT' where cult_ref_old like '%maisTT%';
update t0 set cult_ref = 'maisTP' where cult_ref_old like '%maisTP%';
update t0 set cult_ref = 'maisDT' where cult_ref_old like '%maisDT%';
update t0 set cult_ref = 'maisDP' where cult_ref_old like '%maisDP%';
update t0 set cult_ref = 'CP' where id_parcelle in (select id_parcelle from
t3) or cult_ref_old not like '%mais%';
update t0 set index_dep = '1' where cult_ref = 'maisP';
update t0 set index_dep = '1' where cult_ref = 'maisT';
update t0 set index_dep = '1' where cult_ref = 'maisTT';
update t0 set index_dep = '1' where cult_ref = 'maisTP';
update t0 set index_dep = '1' where cult_ref = 'maisDT';
update t0 set index_dep = '1' where cult_ref = 'maisDP';
update t0 set index_dep = '2' where id_parcelle in (select id_parcelle from
t3) or cult_ref_old not like '%mais%';
insert into var.parcelles2009_option2a_40 select id_ilot, id_parcelle, caract_irr, pae_id_expl, id_sdc, sequence, index_dep, cult_ref, surface, type_sol, paysage from t0;
-- clean: enlever les doublons
create index idx_parcelles2009_option2a_40 on var.parcelles2009_option2a_40
(id_parcelle) ; ALTER TABLE var.parcelles2009_option2a_40 ADD column pkey serial; ALTER TABLE var. parcelles2009_option2a_40 ADD PRIMARY KEY (pkey) ;
delete FROM var.parcelles2009_option2a_40 t1 WHERE EXISTS (SELECT * FROM var.
parcelles2009_option2a_40 AS t2 WHERE t1.pkey < t2.pkey and t1.id_parcelle = t2.id_parcelle) ; ALTER TABLE var.parcelles2009_option2a_40 drop column pkey;
-- liste des exploit impactés
select b.* from var.expl_option2a_40 a, texpl b where