• Aucun résultat trouvé

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