1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| %% Les barrages du Maroc
%
%% initialisations
% Lit le fichier Excel. (première et unique feuille de calcul)
% num = les tableaux numérique
% txt = les cellules texte (headers et conolles de texte)
% raw : chaque cellule Excel dans une cellule Matlab
% clear all
% [M, txt, raw] = xlsread('E:\Maroc\Liste Barrages Maroc.xls') ;
% save barrages_Maroc
clc
clear
close all
load barrages_Maroc
% nommer les colonnes
haut = 1 ;
cap = 2 ;
an = 3 ;
re = 4 ;
% année prise en compte = année de rehaussement
Re = M(:,re) ;
Re (isnan(Re)) = 0 ;
Anf = max(M(:,an), Re) ;
M = [M, Anf] ;
an = 5 ; % ne considère plus l'année de construction
% Classifie les barrages par taille,
% ajoute deux variables booléennes : "est un grand barrage" et "est un très grand barrage"
% ajoute les noms de ces colonnes : g et tg
xtresgrands = M(:,cap)>=500 ; % les barrages de plus de 500 millions de m3
xgrands = M(:,cap)<=500 ; % les barrages de moins de 500 millions de m3
M = [M, xgrands, xtresgrands] ;
g = 6 ;
tg = 7 ;
%% Figure de la distribution des tailles de barrage
% creation de la figure 1 : 15cm de large, 10 de haut, page A4
figure (1)
set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
hauteur = 8 ;
largeur = 8 ;
set(gcf, 'PaperPosition', [3, 10, hauteur, largeur]) ;
set(gcf, 'WindowStyle', 'docked') ;
% plote en abscisses le rang du barrage par capacité décroissante
Xdec = sortrows(M,-cap) ; % par capacité décroissante
semilogy(1e6 .* Xdec(:,cap), '.')
axis([1,length(M),min(M(:,2))*1e6,max(M(:,2))*1e6])
set(gca,'ytick',10.^[5:9])
grid on
set (gca, 'GridLineStyle', '-', 'MinorGridLineStyle', 'none')
l(1) = xlabel('rang du barrage, par capacité décroissante');
l(2) = ylabel('capacité (m^3)');
% l(3) = title('répartition des barrages par capacité');
for u=1:length(l)
set(l(u), 'FontSize', 10, 'FontName', 'Arial') ;
end
%% Figure du rythme de mise en servive des barrages
[X, Ix] = sortrows(M,an) ; % par date croisante
G = X(:,g)==1 ;
TG = X(:,tg)==1 ;
close (1)
figure(2)
set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
set(gcf, 'PaperPosition', [3, 10, 18, 10]) ;
set(gcf, 'WindowStyle', 'docked')
AX = [] ;
H = [] ;
% plot les très grands barrages
% en X, la date, en Y à gauche, les volumes de chaque barage, en Y à droite, les volumes cumulés
subplot(2,2,1)
[u,v,w] = plotyy(X(TG,an), 1e6.*X(TG,cap), X(TG,an), 1e6.*cumsum(X(TG,cap))) ;
AX(2,1:2)=u ; H(2,1)=v ; H(2,2)=w;
set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
set(u(1), 'YLim', [1, 4e9])
% set(u(1), 'YScale', 'log')
set(u(2), 'YLim', [5e6, 2e10])
% set(u(2), 'YScale', 'log')
set(H(2,1), 'LineStyle', '.')
% plote les grands barrages
subplot(2,2,2)
[u,v,w] = plotyy(X(G,an), 1e6.*X(G,cap), X(G,an), 1e6.*cumsum(X(G,cap))) ;
set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
% set(u(1), 'YLim', [1, 4e9])
% set(u(2), 'YLim', [1, 2e10])
set(v, 'LineStyle', '.')
% plote tous
close(2)
figure(3)
set(gcf, 'PaperType','A4', 'PaperUnits', 'centimeters')
set(gcf, 'PaperPosition', [3, 10, largeur, hauteur]) ;
set(gcf, 'WindowStyle', 'docked')
[u,v,w] = plotyy(X(:,an), 1e6.*X(:,cap), X(:,an), 1e6.*cumsum(X(:,cap)), @semilogy, @plot) ;
set(v, 'LineStyle', '.')
set(u, 'XLim', [1928, 2013], 'xtick', 1930:20:2010)
set(u(1), 'YLim', 1e6.*[min(X(:,cap)), max(X(:,cap))])
set(u(1), 'ytick', [10.^(5:9), 4e9]) % Echelle de gauche : les capacités individuelles
set(u(2), 'Ylim', [0, 1e6*sum(X(:,cap))])
set(u(2), 'ytick', 0:2e9:2e10) ;
set (gca, 'GridLineStyle', ':', 'MinorGridLineStyle', 'none')
grid on
xlabel('année de mise en service');
ylabel('capacité (m^3)');
set(get(u(2), 'YLabel'), 'String', 'capacité cumulée (m^3)') |
Partager