db.silva.inrae.fr/db_biljou_param - db_biljou_param on db.silva.inrae.fr
Previous topic Chapter index Next topic

Function: ps_statut_biljou

 

 

Schema

exploration

 

Owner

albenard

 

Descriptions

Procédure renvoyant une valeur qui indique une situation au regard de la possibilité de fabriquer un fichier paramètre biljou.
Elle prend en paramètre 6 valeurs :
- nb_profondeurs : nombre de valeurs de profondeurs disponibles
- nb_da : nombre de valeurs de la variable densité apparente disponibles
- nb_ru : nombre de valeurs de la variable réserve utile (awc) disponibles
- nb_racine_decidu : nombre de valeurs de la variable pourcentage de racine décidu disponibles
- nb_racine_resineux : nombre de valeurs de la variable pourcentage de racine résineux disponibles
- nb_hpflet : nombre de valeurs de la variable hpflet disponibles

Les codes retour sont au nombre de 6 possibles :
9999 : aucune profondeur disponible (cas normalement impossible car dans ce cas il n'y a pas de données)
16 : au moins une variable (autre que la profondeur) est indisponible (impossible de créer le fichier paramètre)
2 : tous les paramètres sont à 1 (il faudra compléter une seconde couche)
4 : le nombre de profondeur vaut 2 mais au moins une variable n'est disponible qu'à une seule profondeur
8 : le nombre de profondeur vaut 3 mais au moins une variable n'est disponible qu'à 1 ou 2 profondeur.
0 : toutes les variables sont disponibles à toutes les profondeurs avec au moins 2 profondeurs (cas idéal pour fabriquer lefichier paramètre)
32 : les autres cas (notamment si une variable était disponible à plus de profondeur que nb_profondeur)


 

Options

Option

Value

Returns

smallint

Language

plpgsql

Parameters

nb_profondeur smallint

nb_da smallint

nb_ru smallint

nb_racine_decidu smallint

nb_racine_resineux smallint

nb_hpflet smallint

 

Definition

CREATE OR REPLACE FUNCTION exploration.ps_statut_biljou (
 nb_profondeur smallint,
 nb_da smallint,
 nb_ru smallint,
 nb_racine_decidu smallint,
 nb_racine_resineux smallint,
 nb_hpflet smallint
)
RETURNS smallint LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
PARALLEL UNSAFE
COST
100
AS
$span$
DECLARE
 
BEGIN
-- Si le nombre de profondeur vaut 0 on retourne le code 9999;
   if nb_profondeur = 0 THEN -- CAS 1
     return 9999;
   else
     -- Si au moins un des autres paramètres vaut 0 on retourne le code 16 -- CAS 2
     if (nb_da = 0) or (nb_ru = 0) or (nb_racine_decidu = 0) or (nb_racine_resineux = 0) or (nb_hpflet = 0) THEN
         return
16;
     end if;
   end if;

   -- Si tous les paramètres valent 1 on retourne le code 2 -- CAS 3
   if (nb_profondeur=1) and (nb_da = 1) and (nb_ru = 1) and (nb_racine_decidu = 1) and (nb_racine_resineux = 1) and (nb_hpflet = 1) THEN
    return
2;
   end if;
   
   -- Le nombre de profondeur vaut 2 et au moins un autre paramètre vaut 1 -- CAS 4
   if (nb_profondeur = 2) and ((nb_da = 1) or (nb_ru = 1) or (nb_racine_decidu = 1) or (nb_racine_resineux = 1) or (nb_hpflet = 1)) THEN
    return
4;
   end if;
   
   -- Le nombre de profondeur vaut 3 et au moins un autre paramètre vaut 1 ou 2 -- CAS 5
   if (nb_profondeur = 3) and ((nb_da < 3) or (nb_ru < 3) or (nb_racine_decidu < 3) or (nb_racine_resineux < 3) or (nb_hpflet < 3)) THEN
    return
8;
   end if;
   
   -- Normalement tous les paramètres sont égaux si on arrive ici -- CAS 6
   -- (sauf si un des paramètres est supérieur à nb_profondeur ce qui ne doit pas arriver)

   if (nb_da = nb_profondeur) and (nb_ru = nb_profondeur) and (nb_racine_decidu = nb_profondeur) and (nb_racine_resineux = nb_profondeur) and (nb_hpflet = nb_profondeur)  then
    return
0;
   else
    return
32;
   end if;
 

EXCEPTION
WHEN
OTHERS THEN
 
raise notice 'Erreur ps_statut_biljou : %', sqlerrm;
END;
$span$;

COMMENT ON FUNCTION exploration.ps_statut_biljou(nb_profondeur smallint, nb_da smallint, nb_ru smallint, nb_racine_decidu smallint, nb_racine_resineux smallint, nb_hpflet smallint)
IS 'Procédure renvoyant une valeur qui indique une situation au regard de la possibilité de fabriquer un fichier paramètre biljou.
Elle prend en paramètre 6 valeurs :
- nb_profondeurs         : nombre de valeurs de profondeurs disponibles
- nb_da                        : nombre de valeurs de la variable densité apparente disponibles
- nb_ru                         : nombre de valeurs de la variable réserve utile (awc) disponibles
- nb_racine_decidu      : nombre de valeurs de la variable pourcentage de racine décidu disponibles
- nb_racine_resineux   : nombre de valeurs de la variable pourcentage de racine résineux disponibles
- nb_hpflet                   : nombre de valeurs de la variable hpflet disponibles

Les codes retour sont au nombre de 6 possibles :
       9999  : aucune profondeur disponible (cas normalement impossible car dans ce cas il n''y a pas de données)
       16      : au moins une variable (autre que la profondeur) est indisponible (impossible de créer le fichier paramètre)
       2        : tous les paramètres sont à 1 (il faudra compléter une seconde couche)
       4        : le nombre de profondeur vaut 2 mais au moins une variable n''est disponible qu''à une seule profondeur
       8        : le nombre de profondeur vaut 3 mais au moins une variable n''est disponible qu''à 1 ou 2 profondeur.
       0        : toutes les variables sont disponibles à toutes les profondeurs avec au moins 2 profondeurs (cas idéal pour fabriquer lefichier paramètre)
       32      : les autres cas (notamment si une variable était disponible à plus de profondeur que nb_profondeur)
       
       
'
;

This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 07/12/2018 13:23
Previous topic Chapter index Next topic