1 |
<?php
|
1 |
<?php
|
2 |
/**
|
2 |
/**
|
3 |
*
|
3 |
*
|
4 |
*
|
4 |
*
|
5 |
* @author Mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org>
|
5 |
* @author Mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org>
|
6 |
*
|
6 |
*
|
7 |
*
|
7 |
*
|
8 |
*/
|
8 |
*/
|
9 |
class BaseflorRangSupInsertion {
|
9 |
class BaseflorRangSupInsertion {
|
10 |
|
10 |
|
11 |
private $table = null;
|
11 |
private $table = null;
|
12 |
private $donnees_initiales = array();
|
12 |
private $donnees_initiales = array();
|
13 |
private $valeurs_insertion;
|
13 |
private $valeurs_insertion;
|
14 |
private $infos_taxon = array();
|
14 |
private $infos_taxon = array();
|
15 |
private $conteneur;
|
15 |
private $conteneur;
|
16 |
private $efloreCommun;
|
16 |
private $efloreCommun;
|
17 |
private $message;
|
17 |
private $message;
|
18 |
private $outils;
|
18 |
private $outils;
|
19 |
private $nn_courant;
|
19 |
private $nn_courant;
|
20 |
private $nn_superieur;
|
20 |
private $nn_superieur;
|
21 |
private $champs_ecologiques = array();
|
21 |
private $champs_ecologiques = array();
|
22 |
private $Bdd;
|
22 |
private $Bdd;
|
23 |
|
23 |
|
24 |
|
24 |
|
25 |
public function __construct(Conteneur $conteneur, Bdd $bdd) {
|
25 |
public function __construct(Conteneur $conteneur, Bdd $bdd) {
|
26 |
$this->conteneur = $conteneur;
|
26 |
$this->conteneur = $conteneur;
|
27 |
$this->Bdd = $bdd;
|
27 |
$this->Bdd = $bdd;
|
28 |
$this->efloreCommun = $conteneur->getEfloreCommun();
|
28 |
$this->efloreCommun = $conteneur->getEfloreCommun();
|
29 |
$this->message = $conteneur->getMessages();
|
29 |
$this->message = $conteneur->getMessages();
|
30 |
$this->outils = $conteneur->getOutils();
|
30 |
$this->outils = $conteneur->getOutils();
|
31 |
$this->dossierBase = dirname(__FILE__).'/';
|
31 |
$this->dossierBase = dirname(__FILE__).'/';
|
32 |
}
|
32 |
}
|
33 |
|
33 |
|
34 |
public function insererDonnees(){
|
34 |
public function insererDonnees(){
|
35 |
echo "Chargement de la structure en cours \n" ;
|
35 |
echo "Chargement de la structure en cours \n" ;
|
36 |
$this->efloreCommun->chargerFichierSql('chemins.rang_sup_sql');
|
36 |
$this->efloreCommun->chargerFichierSql('chemins.rang_sup_sql');
|
37 |
echo "Récupération des données de baseflor en cours \n";
|
37 |
echo "Récupération des données de baseflor en cours \n";
|
38 |
$this->recupererDonneesInitiales();
|
38 |
$this->recupererDonneesInitiales();
|
39 |
echo "Calcul des valeurs pour les rangs supérieurs en cours \n";
|
39 |
echo "Calcul des valeurs pour les rangs supérieurs en cours \n";
|
40 |
$this->consulterInfosTaxons();
|
40 |
$this->consulterInfosTaxons();
|
41 |
$this->recupererValeursInsertion();
|
41 |
$this->recupererValeursInsertion();
|
42 |
$this->insererDonneesRangSup();
|
42 |
$this->insererDonneesRangSup();
|
43 |
}
|
43 |
}
|
44 |
|
44 |
|
45 |
|
45 |
|
46 |
private function insererDonneesRangSup() {
|
46 |
private function insererDonneesRangSup() {
|
47 |
$table = Config::get('tables.rang_sup');
|
47 |
$table = Config::get('tables.rang_sup');
|
48 |
$requete_truncate = 'TRUNCATE TABLE '.$table;
|
48 |
$requete_truncate = 'TRUNCATE TABLE '.$table;
|
49 |
$this->Bdd->requeter($requete_truncate);
|
49 |
$this->Bdd->requeter($requete_truncate);
|
50 |
$i = 0;
|
50 |
$i = 0;
|
51 |
foreach ($this->valeurs_insertion as $nn => $valeurs){
|
51 |
foreach ($this->valeurs_insertion as $nn => $valeurs){
|
52 |
$requete = "INSERT INTO $table VALUES({$i},$nn, 'bdtfx', '{$valeurs['ve_lumiere']['min']}', ".
|
52 |
$requete = "INSERT INTO $table VALUES({$i},$nn, 'bdtfx', '{$valeurs['ve_lumiere']['min']}', ".
|
53 |
"'{$valeurs['ve_lumiere']['max']}','{$valeurs['ve_temperature']['min']}',".
|
53 |
"'{$valeurs['ve_lumiere']['max']}','{$valeurs['ve_temperature']['min']}',".
|
54 |
"'{$valeurs['ve_temperature']['max']}','{$valeurs['ve_continentalite']['min']}',".
|
54 |
"'{$valeurs['ve_temperature']['max']}','{$valeurs['ve_continentalite']['min']}',".
|
55 |
"'{$valeurs['ve_continentalite']['max']}','{$valeurs['ve_humidite_atmos']['min']}',".
|
55 |
"'{$valeurs['ve_continentalite']['max']}','{$valeurs['ve_humidite_atmos']['min']}',".
|
56 |
"'{$valeurs['ve_humidite_atmos']['max']}','{$valeurs['ve_humidite_edaph']['min']}',".
|
56 |
"'{$valeurs['ve_humidite_atmos']['max']}','{$valeurs['ve_humidite_edaph']['min']}',".
|
57 |
"'{$valeurs['ve_humidite_edaph']['max']}','{$valeurs['ve_reaction_sol']['min']}',".
|
57 |
"'{$valeurs['ve_humidite_edaph']['max']}','{$valeurs['ve_reaction_sol']['min']}',".
|
58 |
"'{$valeurs['ve_reaction_sol']['max']}','{$valeurs['ve_nutriments_sol']['min']}',".
|
58 |
"'{$valeurs['ve_reaction_sol']['max']}','{$valeurs['ve_nutriments_sol']['min']}',".
|
59 |
"'{$valeurs['ve_nutriments_sol']['max']}','{$valeurs['ve_salinite']['min']}',".
|
59 |
"'{$valeurs['ve_nutriments_sol']['max']}','{$valeurs['ve_salinite']['min']}',".
|
60 |
"'{$valeurs['ve_salinite']['max']}','{$valeurs['ve_texture_sol']['min']}',".
|
60 |
"'{$valeurs['ve_salinite']['max']}','{$valeurs['ve_texture_sol']['min']}',".
|
61 |
"'{$valeurs['ve_texture_sol']['max']}','{$valeurs['ve_mat_org_sol']['min']}',".
|
61 |
"'{$valeurs['ve_texture_sol']['max']}','{$valeurs['ve_mat_org_sol']['min']}',".
|
62 |
"'{$valeurs['ve_mat_org_sol']['max']}');";
|
62 |
"'{$valeurs['ve_mat_org_sol']['max']}');";
|
63 |
$this->Bdd->requeter($requete);
|
63 |
$this->Bdd->requeter($requete);
|
64 |
$i++;
|
64 |
$i++;
|
65 |
$this->message->afficherAvancement('Insertion des valeurs pour les rangs supérieurs en cours');
|
65 |
$this->message->afficherAvancement('Insertion des valeurs pour les rangs supérieurs en cours');
|
66 |
}
|
66 |
}
|
67 |
}
|
67 |
}
|
68 |
|
68 |
|
69 |
|
69 |
|
70 |
|
70 |
|
71 |
|
71 |
|
72 |
// dans cette solution je parcours les donnees de baseflor
|
72 |
// dans cette solution je parcours les donnees de baseflor
|
73 |
// je teste une donnée (si min max) pour récuperer les valeurs pour chaque rang superieur
|
73 |
// je teste une donnée (si min max) pour récuperer les valeurs pour chaque rang superieur
|
74 |
// jusqu'à famille (180) puis je passe à la suivante jusqu'à avoir parcouru tout baseflor
|
74 |
// jusqu'à famille (180) puis je passe à la suivante jusqu'à avoir parcouru tout baseflor
|
75 |
private function recupererValeursInsertion(){
|
75 |
private function recupererValeursInsertion(){
|
76 |
$this->champs_ecologiques = $this->outils->recupererTableauConfig(Config::get('Parametres.champsEcologiques'));
|
76 |
$this->champs_ecologiques = $this->outils->recupererTableauConfig(Config::get('Parametres.champsEcologiques'));
|
77 |
$this->valeurs_insertion = array();
|
77 |
$this->valeurs_insertion = array();
|
78 |
if (empty($this->donnees_initiales)) {
|
78 |
if (empty($this->donnees_initiales)) {
|
79 |
throw new Exception("Erreur : pas de données à traiter.");
|
79 |
throw new Exception("Erreur : pas de données à traiter.");
|
80 |
} else {
|
80 |
} else {
|
81 |
foreach ($this->donnees_initiales as $nn => $ecologie) {
|
81 |
foreach ($this->donnees_initiales as $nn => $ecologie) {
|
82 |
$this->nn_courant = $nn;
|
82 |
$this->nn_courant = $nn;
|
83 |
$this->nn_superieur = isset($this->infos_taxon[$this->nn_courant]) ? $this->infos_taxon[$this->nn_courant]['nn_sup'] : null;
|
83 |
$this->nn_superieur = isset($this->infos_taxon[$this->nn_courant]) ? $this->infos_taxon[$this->nn_courant]['nn_sup'] : null;
|
84 |
$rang = isset($this->infos_taxon[$this->nn_superieur]) ? $this->infos_taxon[$this->nn_superieur]['rang'] : 179 ;
|
84 |
$rang = isset($this->infos_taxon[$this->nn_superieur]) ? $this->infos_taxon[$this->nn_superieur]['rang'] : 179 ;
|
85 |
while ($rang >= 180){
|
85 |
while ($rang >= 180){
|
86 |
if (!isset($donnees_initiales[$this->nn_superieur])) {
|
86 |
if (!isset($donnees_initiales[$this->nn_superieur])) {
|
87 |
foreach ($this->champs_ecologiques as $nom) {
|
87 |
foreach ($this->champs_ecologiques as $nom) {
|
88 |
|
88 |
|
89 |
|
89 |
|
90 |
$this->testerSiMinMax($nom, $ecologie[$nom]);
|
90 |
$this->testerSiMinMax($nom, $ecologie[$nom]);
|
91 |
|
91 |
|
92 |
}
|
92 |
}
|
93 |
}
|
93 |
}
|
94 |
$this->nn_superieur = isset($this->infos_taxon[$this->nn_superieur]) ? $this->infos_taxon[$this->nn_superieur]['nn_sup'] : null;
|
94 |
$this->nn_superieur = isset($this->infos_taxon[$this->nn_superieur]) ? $this->infos_taxon[$this->nn_superieur]['nn_sup'] : null;
|
95 |
$rang = !empty($this->nn_superieur) ? $this->infos_taxon[$this->nn_superieur]['rang'] : 179 ;
|
95 |
$rang = !empty($this->nn_superieur) ? $this->infos_taxon[$this->nn_superieur]['rang'] : 179 ;
|
96 |
}
|
96 |
}
|
97 |
}
|
97 |
}
|
98 |
}
|
98 |
}
|
99 |
}
|
99 |
}
|
100 |
|
100 |
|
101 |
// ici je parcours toutes les données de baseflor et je teste et récupère les valeurs pour le rang superieur
|
101 |
// ici je parcours toutes les données de baseflor et je teste et récupère les valeurs pour le rang superieur
|
102 |
//direct puis je récupère les données obtenues et je recommence jusqu'à que tous les rangs obtenus soient des familles
|
102 |
//direct puis je récupère les données obtenues et je recommence jusqu'à que tous les rangs obtenus soient des familles
|
103 |
private function recupererValeursInsertion2(){
|
103 |
private function recupererValeursInsertion2(){
|
104 |
$this->champs_ecologiques = $this->outils->recupererTableauConfig(Config::get('Parametres.champsEcologiques'));
|
104 |
$this->champs_ecologiques = $this->outils->recupererTableauConfig(Config::get('Parametres.champsEcologiques'));
|
105 |
$this->valeurs_insertion = array();
|
105 |
$this->valeurs_insertion = array();
|
106 |
if (empty($this->donnees_initiales)) {
|
106 |
if (empty($this->donnees_initiales)) {
|
107 |
throw new Exception("Erreur : pas de données à traiter.");
|
107 |
throw new Exception("Erreur : pas de données à traiter.");
|
108 |
} else {
|
108 |
} else {
|
109 |
$donnees_traitees = $this->donnees_initiales;
|
109 |
$donnees_traitees = $this->donnees_initiales;
|
110 |
$donnees_deja_traitees = array();
|
110 |
$donnees_deja_traitees = array();
|
111 |
$condition_fin = true;
|
111 |
$condition_fin = true;
|
112 |
$tab_num_nom = array_keys($donnees_traitees);
|
112 |
$tab_num_nom = array_keys($donnees_traitees);
|
113 |
while (!empty($donnees_traitees)) {
|
113 |
while (!empty($donnees_traitees)) {
|
114 |
reset($donnees_traitees);
|
114 |
reset($donnees_traitees);
|
115 |
$this->nn_courant = array_shift($tab_num_nom);
|
115 |
$this->nn_courant = array_shift($tab_num_nom);
|
116 |
$data = array_shift($donnees_traitees);
|
116 |
$data = array_shift($donnees_traitees);
|
117 |
if (isset($this->infos_taxon[$this->nn_courant])) {
|
117 |
if (isset($this->infos_taxon[$this->nn_courant])) {
|
118 |
$this->nn_superieur = $this->infos_taxon[$this->nn_courant]['nn_sup'];
|
118 |
$this->nn_superieur = $this->infos_taxon[$this->nn_courant]['nn_sup'];
|
119 |
if (!isset($donnees_deja_traitees[$this->nn_courant])) {
|
119 |
if (!isset($donnees_deja_traitees[$this->nn_courant])) {
|
120 |
if ($this->infos_taxon[$this->nn_superieur]['rang'] >= 180){
|
120 |
if ($this->infos_taxon[$this->nn_superieur]['rang'] >= 180){
|
121 |
$condition_fin = false;
|
121 |
$condition_fin = false;
|
122 |
foreach ($this->champs_ecologiques as $nom) {
|
122 |
foreach ($this->champs_ecologiques as $nom) {
|
123 |
|
123 |
|
124 |
$this->testerSiMinMax($nom, $data[$nom]);
|
124 |
$this->testerSiMinMax($nom, $data[$nom]);
|
125 |
|
125 |
|
126 |
|
126 |
|
127 |
}
|
127 |
}
|
128 |
}
|
128 |
}
|
129 |
}
|
129 |
}
|
130 |
$donnees_deja_traitees[$this->nn_courant] = 1;
|
130 |
$donnees_deja_traitees[$this->nn_courant] = 1;
|
131 |
}
|
131 |
}
|
132 |
if ($condition_fin == false && empty($donnees_traitees)) {
|
132 |
if ($condition_fin == false && empty($donnees_traitees)) {
|
133 |
$donnees_traitees = $this->valeurs_insertion;
|
133 |
$donnees_traitees = $this->valeurs_insertion;
|
134 |
$tab_num_nom = array_keys($donnees_traitees);
|
134 |
$tab_num_nom = array_keys($donnees_traitees);
|
135 |
$condition_fin = true;
|
135 |
$condition_fin = true;
|
136 |
}
|
136 |
}
|
137 |
}
|
137 |
}
|
138 |
}
|
138 |
}
|
139 |
}
|
139 |
}
|
140 |
|
140 |
|
141 |
// je stocke des valeurs à insérer sous la forme : $insertion [{nn_tax_sup}][{nom_de_chps}][{max ou min}] = {valeur}
|
141 |
// je stocke des valeurs à insérer sous la forme : $insertion [{nn_tax_sup}][{nom_de_chps}][{max ou min}] = {valeur}
|
142 |
private function testerSiMinMax($nom, $valeur) {
|
142 |
private function testerSiMinMax($nom, $valeur) {
|
143 |
$nn = $this->nn_superieur;
|
143 |
$nn = $this->nn_superieur;
|
144 |
if ( !isset($this->valeurs_insertion[$nn][$nom]['min'])
|
144 |
if ( !isset($this->valeurs_insertion[$nn][$nom]['min'])
|
145 |
|| empty($valeur['min'])
|
145 |
|| empty($valeur['min'])
|
146 |
|| empty($this->valeurs_insertion[$nn][$nom]['min'])
|
146 |
|| empty($this->valeurs_insertion[$nn][$nom]['min'])
|
147 |
|| $this->valeurs_insertion[$nn][$nom]['min'] > $valeur['min'] ){
|
147 |
|| $this->valeurs_insertion[$nn][$nom]['min'] > $valeur['min'] ){
|
148 |
$this->valeurs_insertion[$nn][$nom]['min'] = $valeur['min'];
|
148 |
$this->valeurs_insertion[$nn][$nom]['min'] = $valeur['min'];
|
149 |
|
149 |
|
150 |
}
|
150 |
}
|
151 |
|
151 |
|
152 |
if ( !isset($this->valeurs_insertion[$nn][$nom]['max'])
|
152 |
if ( !isset($this->valeurs_insertion[$nn][$nom]['max'])
|
153 |
|| empty($this->valeurs_insertion[$nn][$nom]['max'])
|
153 |
|| empty($this->valeurs_insertion[$nn][$nom]['max'])
|
154 |
|| empty($valeur['max'])
|
154 |
|| empty($valeur['max'])
|
155 |
|| $this->valeurs_insertion[$nn][$nom]['max'] < $valeur['max'] ) {
|
155 |
|| $this->valeurs_insertion[$nn][$nom]['max'] < $valeur['max'] ) {
|
156 |
$this->valeurs_insertion[$nn][$nom]['max'] = $valeur['max'];
|
156 |
$this->valeurs_insertion[$nn][$nom]['max'] = $valeur['max'];
|
157 |
}
|
157 |
}
|
158 |
}
|
158 |
}
|
159 |
|
159 |
|
160 |
// je stocke les infos taxons sous la forme : $info_taxon[{num_nomem}][{num_nomen_sup ou rang}] = {valeur}
|
160 |
// je stocke les infos taxons sous la forme : $info_taxon[{num_nomem}][{num_nomen_sup ou rang}] = {valeur}
|
161 |
private function consulterInfosTaxons() {
|
161 |
private function consulterInfosTaxons() {
|
162 |
$table = Config::get('tables.taxons');
|
162 |
$table = Config::get('tables.taxons');
|
163 |
$requete = 'SELECT A.num_nom AS nn, B.num_tax_sup AS nn_sup, A.rang '.
|
163 |
$requete = 'SELECT A.num_nom AS nn, B.num_tax_sup AS nn_sup, A.rang '.
|
164 |
"FROM $table A JOIN $table B ON (A.num_nom_retenu = B.num_nom) ".
|
164 |
"FROM $table A JOIN $table B ON (A.num_nom_retenu = B.num_nom) ".
|
165 |
'WHERE B.num_nom = B.num_nom_retenu ';
|
165 |
'WHERE B.num_nom = B.num_nom_retenu ';
|
166 |
$resultat = $this->Bdd->recupererTous($requete);
|
166 |
$resultat = $this->Bdd->recupererTous($requete);
|
167 |
foreach ($resultat as $res) {
|
167 |
foreach ($resultat as $res) {
|
168 |
$this->infos_taxon[$res['nn']] = array('nn_sup' => $res['nn_sup'], 'rang' => $res['rang'] );
|
168 |
$this->infos_taxon[$res['nn']] = array('nn_sup' => $res['nn_sup'], 'rang' => $res['rang'] );
|
169 |
}
|
169 |
}
|
170 |
}
|
170 |
}
|
171 |
|
171 |
|
172 |
// je stocke les valeurs initiales sous la forme : $initiales[{nn_nomem}][{champs ecologique}][{'min' ou 'max'}]
|
172 |
// je stocke les valeurs initiales sous la forme : $initiales[{nn_nomem}][{champs ecologique}][{'min' ou 'max'}]
|
173 |
private function recupererDonneesInitiales() {
|
173 |
private function recupererDonneesInitiales() {
|
174 |
$table = Config::get('tables.donnees');
|
174 |
$table = Config::get('tables.donnees');
|
175 |
$requete = "SELECT num_nomen, ve_lumiere, ve_temperature, ve_continentalite, ve_humidite_atmos, ".
|
175 |
$requete = "SELECT num_nomen, ve_lumiere, ve_temperature, ve_continentalite, ve_humidite_atmos, ".
|
176 |
"ve_humidite_edaph, ve_reaction_sol, ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol ".
|
176 |
"ve_humidite_edaph, ve_reaction_sol, ve_nutriments_sol, ve_salinite, ve_texture_sol, ve_mat_org_sol ".
|
177 |
"FROM $table WHERE BDNT = 'BDTFX' ".
|
177 |
"FROM $table WHERE BDNT = 'BDTFX' ".
|
178 |
" AND num_nomen != 0 ".
|
178 |
" AND num_nomen != 0 ".
|
179 |
" AND (ve_lumiere != '' OR ve_mat_org_sol != '' OR ve_temperature != '' ".
|
179 |
" AND !(ve_lumiere = '' and ve_mat_org_sol = '' and ve_temperature = '' and ve_continentalite = '' ".
|
180 |
" OR ve_continentalite != '' OR ve_humidite_atmos != '' OR ve_humidite_edaph != '' ".
|
180 |
" and ve_humidite_atmos = '' and ve_humidite_edaph = '' and ve_nutriments_sol = '' and ve_salinite = ''".
|
181 |
" OR ve_nutriments_sol != '' OR ve_salinite != '' OR ve_texture_sol != '' OR ve_reaction_sol != '' )";
|
181 |
" and ve_texture_sol = '' and ve_reaction_sol = '')";
|
182 |
$resultat = $this->Bdd->recupererTous($requete);
|
182 |
$resultat = $this->Bdd->recupererTous($requete);
|
183 |
foreach ($resultat as $res) {
|
183 |
foreach ($resultat as $res) {
|
184 |
$this->donnees_initiales[$res['num_nomen']] = array(
|
184 |
$this->donnees_initiales[$res['num_nomen']] = array(
|
185 |
've_lumiere' => array('min' => $res['ve_lumiere'], 'max' => $res['ve_lumiere']),
|
185 |
've_lumiere' => array('min' => $res['ve_lumiere'], 'max' => $res['ve_lumiere']),
|
186 |
've_temperature' => array('min' => $res['ve_temperature'], 'max' => $res['ve_temperature']),
|
186 |
've_temperature' => array('min' => $res['ve_temperature'], 'max' => $res['ve_temperature']),
|
187 |
've_continentalite' => array('min' => $res['ve_continentalite'], 'max' => $res['ve_continentalite']),
|
187 |
've_continentalite' => array('min' => $res['ve_continentalite'], 'max' => $res['ve_continentalite']),
|
188 |
've_humidite_atmos' => array('min' => $res['ve_humidite_atmos'], 'max' => $res['ve_humidite_atmos']),
|
188 |
've_humidite_atmos' => array('min' => $res['ve_humidite_atmos'], 'max' => $res['ve_humidite_atmos']),
|
189 |
've_humidite_edaph' => array('min' => $res['ve_humidite_edaph'], 'max' => $res['ve_humidite_edaph']),
|
189 |
've_humidite_edaph' => array('min' => $res['ve_humidite_edaph'], 'max' => $res['ve_humidite_edaph']),
|
190 |
've_reaction_sol' => array('min' => $res['ve_reaction_sol'], 'max' => $res['ve_reaction_sol']),
|
190 |
've_reaction_sol' => array('min' => $res['ve_reaction_sol'], 'max' => $res['ve_reaction_sol']),
|
191 |
've_nutriments_sol' => array('min' => $res['ve_nutriments_sol'], 'max' => $res['ve_nutriments_sol']),
|
191 |
've_nutriments_sol' => array('min' => $res['ve_nutriments_sol'], 'max' => $res['ve_nutriments_sol']),
|
192 |
've_salinite' => array('min' => $res['ve_salinite'], 'max' => $res['ve_salinite']),
|
192 |
've_salinite' => array('min' => $res['ve_salinite'], 'max' => $res['ve_salinite']),
|
193 |
've_texture_sol' => array('min' => $res['ve_texture_sol'], 'max' => $res['ve_texture_sol']),
|
193 |
've_texture_sol' => array('min' => $res['ve_texture_sol'], 'max' => $res['ve_texture_sol']),
|
194 |
've_mat_org_sol' => array('min' => $res['ve_mat_org_sol'], 'max' => $res['ve_mat_org_sol']));
|
194 |
've_mat_org_sol' => array('min' => $res['ve_mat_org_sol'], 'max' => $res['ve_mat_org_sol']));
|
195 |
}
|
195 |
}
|
196 |
}
|
196 |
}
|
197 |
|
197 |
|
198 |
|
198 |
|
199 |
// +++ Fonctions de vérification des donnée obtenues ++++//
|
199 |
// +++ Fonctions de vérification des donnée obtenues ++++//
|
200 |
|
200 |
|
201 |
public function testAscendantsDeBaseflor(){
|
201 |
public function testAscendantsDeBaseflor(){
|
202 |
$this->recupererDonneesInitiales();
|
202 |
$this->recupererDonneesInitiales();
|
203 |
$this->consulterInfosTaxons();
|
203 |
$this->consulterInfosTaxons();
|
204 |
$fichier = dirname(__FILE__).'/log/verifTaxonsSup.log';
|
204 |
$fichier = dirname(__FILE__).'/log/verifTaxonsSup.log';
|
205 |
$liste = array();
|
205 |
$liste = array();
|
206 |
foreach ($this->donnees_initiales as $nn => $data) {
|
206 |
foreach ($this->donnees_initiales as $nn => $data) {
|
207 |
$nn_sup = isset($this->infos_taxon[$nn]) ? $this->infos_taxon[$nn]['nn_sup'] : '' ;
|
207 |
$nn_sup = isset($this->infos_taxon[$nn]) ? $this->infos_taxon[$nn]['nn_sup'] : '' ;
|
208 |
if (!empty($nn_sup) && !isset($donnees_initiales[$nn_sup])){
|
208 |
if (!empty($nn_sup) && !isset($donnees_initiales[$nn_sup])){
|
209 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
209 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
210 |
while ($rang >= 180) {
|
210 |
while ($rang >= 180) {
|
211 |
if (!empty($nn_sup)) {
|
211 |
if (!empty($nn_sup)) {
|
212 |
if (isset($liste["$nn_sup($rang)"])){
|
212 |
if (isset($liste["$nn_sup($rang)"])){
|
213 |
$liste["$nn_sup($rang)"] .= ", $nn";
|
213 |
$liste["$nn_sup($rang)"] .= ", $nn";
|
214 |
}else {
|
214 |
}else {
|
215 |
$liste["$nn_sup($rang)"] = "$nn";
|
215 |
$liste["$nn_sup($rang)"] = "$nn";
|
216 |
}
|
216 |
}
|
217 |
$nn_sup = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['nn_sup'] : '' ;
|
217 |
$nn_sup = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['nn_sup'] : '' ;
|
218 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
218 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
219 |
}else {
|
219 |
}else {
|
220 |
break;
|
220 |
break;
|
221 |
}
|
221 |
}
|
222 |
}
|
222 |
}
|
223 |
}
|
223 |
}
|
224 |
}
|
224 |
}
|
225 |
$log = "un ascendant (pas forcement l'ascendant directement au dessus) : les descendants contenus dans baseflor \n";
|
225 |
$log = "un ascendant (pas forcement l'ascendant directement au dessus) : les descendants contenus dans baseflor \n";
|
226 |
foreach ($liste as $cle => $inferieur){
|
226 |
foreach ($liste as $cle => $inferieur){
|
227 |
$log .= "$cle : $inferieur \n";
|
227 |
$log .= "$cle : $inferieur \n";
|
228 |
}
|
228 |
}
|
229 |
file_put_contents($fichier, $log);
|
229 |
file_put_contents($fichier, $log);
|
230 |
}
|
230 |
}
|
231 |
|
231 |
|
232 |
public function testEcologieAscendantsDeBaseflor(){
|
232 |
public function testEcologieAscendantsDeBaseflor(){
|
233 |
$this->recupererDonneesInitiales();
|
233 |
$this->recupererDonneesInitiales();
|
234 |
$this->consulterInfosTaxons();
|
234 |
$this->consulterInfosTaxons();
|
235 |
$fichier = dirname(__FILE__).'/log/verifTaxonsSupEcolo.log';
|
235 |
$fichier = dirname(__FILE__).'/log/verifTaxonsSupEcolo.log';
|
236 |
$liste = array();
|
236 |
$liste = array();
|
237 |
foreach ($this->donnees_initiales as $nn => $data) {
|
237 |
foreach ($this->donnees_initiales as $nn => $data) {
|
238 |
$nn_sup = isset($this->infos_taxon[$nn]) ? $this->infos_taxon[$nn]['nn_sup'] : '' ;
|
238 |
$nn_sup = isset($this->infos_taxon[$nn]) ? $this->infos_taxon[$nn]['nn_sup'] : '' ;
|
239 |
if (!empty($nn_sup) && !isset($donnees_initiales[$nn_sup])){
|
239 |
if (!empty($nn_sup) && !isset($donnees_initiales[$nn_sup])){
|
240 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
240 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
241 |
while ($rang >= 180) {
|
241 |
while ($rang >= 180) {
|
242 |
if (!empty($nn_sup)) {
|
242 |
if (!empty($nn_sup)) {
|
243 |
$ecolo = array_values($data);
|
243 |
$ecolo = array_values($data);
|
244 |
list($l,$t,$c,$ha,$he,$r,$n,$s,$tx,$mo) = $ecolo;
|
244 |
list($l,$t,$c,$ha,$he,$r,$n,$s,$tx,$mo) = $ecolo;
|
245 |
if (isset($liste["$nn_sup($rang)"])){
|
245 |
if (isset($liste["$nn_sup($rang)"])){
|
246 |
$liste["$nn_sup($rang)"] .= ",[{$l['min']}, {$t['min']}, {$c['min']},"
|
246 |
$liste["$nn_sup($rang)"] .= ",[{$l['min']}, {$t['min']}, {$c['min']},"
|
247 |
."{$ha['min']}, {$he['min']}, {$r['min']}, {$n['min']}, {$s['min']},"
|
247 |
."{$ha['min']}, {$he['min']}, {$r['min']}, {$n['min']}, {$s['min']},"
|
248 |
."{$tx['min']}, {$mo['min']}]";
|
248 |
."{$tx['min']}, {$mo['min']}]";
|
249 |
}else {
|
249 |
}else {
|
250 |
$liste["$nn_sup($rang)"] = "[{$l['min']}, {$t['min']}, {$c['min']},"
|
250 |
$liste["$nn_sup($rang)"] = "[{$l['min']}, {$t['min']}, {$c['min']},"
|
251 |
."{$ha['min']}, {$he['min']}, {$r['min']}, {$n['min']}, {$s['min']},"
|
251 |
."{$ha['min']}, {$he['min']}, {$r['min']}, {$n['min']}, {$s['min']},"
|
252 |
."{$tx['min']}, {$mo['min']}]";
|
252 |
."{$tx['min']}, {$mo['min']}]";
|
253 |
}
|
253 |
}
|
254 |
$nn_sup = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['nn_sup'] : '' ;
|
254 |
$nn_sup = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['nn_sup'] : '' ;
|
255 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
255 |
$rang = isset($this->infos_taxon[$nn_sup]) ? $this->infos_taxon[$nn_sup]['rang'] : 179 ;
|
256 |
}else {
|
256 |
}else {
|
257 |
break;
|
257 |
break;
|
258 |
}
|
258 |
}
|
259 |
}
|
259 |
}
|
260 |
}
|
260 |
}
|
261 |
}
|
261 |
}
|
262 |
$log = "nn ascendant (pas forcement l'ascendant directement au dessus) :"
|
262 |
$log = "nn ascendant (pas forcement l'ascendant directement au dessus) :"
|
263 |
." valeurs descendants contenus dans baseflor \n"
|
263 |
." valeurs descendants contenus dans baseflor \n"
|
264 |
."Pour le calcul des valeurs min et max de gauche, les valeurs de droite sont utilisées. \n";
|
264 |
."Pour le calcul des valeurs min et max de gauche, les valeurs de droite sont utilisées. \n";
|
265 |
foreach ($liste as $cle => $inferieurs){
|
265 |
foreach ($liste as $cle => $inferieurs){
|
266 |
$log .= "$cle : $inferieurs \n";
|
266 |
$log .= "$cle : $inferieurs \n";
|
267 |
}
|
267 |
}
|
268 |
file_put_contents($fichier, $log);
|
268 |
file_put_contents($fichier, $log);
|
269 |
}
|
269 |
}
|
270 |
|
270 |
|
271 |
|
271 |
|
272 |
}
|
272 |
}
|