diff --git a/docs/usage/advanced_filter.md b/docs/usage/advanced_filter.md index 9864982..0096139 100644 --- a/docs/usage/advanced_filter.md +++ b/docs/usage/advanced_filter.md @@ -5,35 +5,42 @@ ## Filtres classiques :::{Warning} -A partir de la version `3.0.0`, le `and` en début de requête n'est plus à mentionner. +Pour les versions antérieures à la version `3.0.0` un `and` en début de requête est plus à ajouter (ne concerne pas la LPO AuRA). ::: +:::{Info} +**Pour tout le monde, en cas de cumul de plusieurs clauses de recherche, il faut les séparer avec un `and`**. +::: |Filtrer sur...|Un seul critère|Plusieurs critères| |-|-|-| -|id espèce VisioNature|`and source_id_sp = 386`|`and source_id_sp in (386, 394, 370)`| -|cd_nom|`and obs.cd_nom = 4001`|`and obs.cd_nom in (4001, 4035, 3764)`| -|Nom vernaculaire|`and t.nom_vern ilike 'Rougegorge familier'` ou `and t.nom_vern ilike '%rougegorge%'`|`and t.nom_vern in ('Rougegorge familier', 'Rougequeue noir', 'Mésange charbonnière')`| -|Nom scientifique|`and t.lb_nom ilike 'erithacus rubecula'`|`and t.lb_nom in ('Erithacus rubecula', 'Phoenicurus ochruros', 'Parus major')`| -|Observateur|`and observateur = 'NOM Prénom'`|`and observateur in ('NOM Prénom', 'NOM Prénom', 'NOM Prénom')`| -|Code de nidification|`and oiso_code_nidif = 1`|`and oiso_code_nidif in (1, 2, 3)`| -|Statut de reproduction (valable pour tous les groupes taxo)|`and statut_repro = 'Certain'`|`and statut_repro in ('Certain', 'Probable', 'Possible')`| -|Cause de mortalité|`and mortalite_cause = 'ROAD_VEHICLE'`|`and mortalite_cause in ('ROAD_VEHICLE', 'HUNTING')`| -|Code étude|`and code_etude = 'EPOC'`|`and code_etude in ('EPOC', 'EPOC-ODF')`| +|id espèce VisioNature|`source_id_sp = 386`|`source_id_sp in (386, 394, 370)`| +|cd_nom|`obs.cd_nom = 4001`|`obs.cd_nom in (4001, 4035, 3764)`| +|Nom vernaculaire|`t.nom_vern ilike 'Rougegorge familier'` ou `t.nom_vern ilike '%rougegorge%'`|`t.nom_vern in ('Rougegorge familier', 'Rougequeue noir', 'Mésange charbonnière')`| +|Nom scientifique|`t.lb_nom ilike 'erithacus rubecula'`|`t.lb_nom in ('Erithacus rubecula', 'Phoenicurus ochruros', 'Parus major')`| +|Observateur|`observateur = 'NOM Prénom'`|`observateur in ('NOM Prénom', 'NOM Prénom', 'NOM Prénom')`| +|Code de nidification|`oiso_code_nidif = 1`|`oiso_code_nidif in (1, 2, 3)`| +|Statut de reproduction (valable pour tous les groupes taxo)|`statut_repro = 'Certain'`|`statut_repro in ('Certain', 'Probable', 'Possible')`| +|Cause de mortalité|`mortalite_cause = 'ROAD_VEHICLE'`|`mortalite_cause in ('ROAD_VEHICLE', 'HUNTING')`| +|Code étude|`code_etude = 'EPOC'`|`code_etude in ('EPOC', 'EPOC-ODF')`| La fonction `ilike` permet de s'affranchir des majuscules et minuscules. Le % remplace un ou plusieurs caractères (et ne fonctionne qu'avec ilike). +:::{Info} +Le langage SQL est sensible aux caractères accentué `mésange`est différent de `mesange`. Par ailleurs, il est possible d'utiliser `%` pour remplacer un ou plusieurs caractères. +::: + ## Autres filtres plus complexes - Filtrer sur l'**altitude** : - - Entre deux altitudes : `and altitude >= 1000 and altitude < 2000` - - Sous un seuil d'altitude et au-dessus d'un autre seuil : `and (altitude <= 1000 or altitude > 2000)` + - Entre deux altitudes : `altitude >= 1000 and altitude < 2000` + - Sous un seuil d'altitude et au-dessus d'un autre seuil : `(altitude <= 1000 or altitude > 2000)` - Filtrer sur la **mortalité** : - - Ne garder que les données de mortalité : `and mortalite = true` - - Exclure les données de mortalité : `and mortalite = false` -- Rechercher un mot ou une expression dans les **commentaires** : `and commentaires like '%mangeoire%'` + - Ne garder que les données de mortalité : `mortalite = true` + - Exclure les données de mortalité : `mortalite = false` +- Rechercher un mot ou une expression dans les **commentaires** : `commentaires like '%mangeoire%'` - Filtrer sur le **comportement** : - - Rechercher un comportement particulier : `and comportement @> '{"Se nourrit"}'` - - Rechercher plusieurs comportements simultanés : `and comportement @> '{"Se nourrit", "Se déplace"}'` - - Rechercher plusieurs comportements pas forcément simultanés : `and (comportement @> '{"Se nourrit"}' or comportement @> '{"Se déplace"}')` + - Rechercher un comportement particulier : `comportement @> '{"Se nourrit"}'` + - Rechercher plusieurs comportements simultanés : `comportement @> '{"Se nourrit", "Se déplace"}'` + - Rechercher plusieurs comportements pas forcément simultanés : `(comportement @> '{"Se nourrit"}' or comportement @> '{"Se déplace"}')` diff --git a/plugin_qgis_lpo/processing/extract_data.py b/plugin_qgis_lpo/processing/extract_data.py index 81c3445..f6b45a4 100644 --- a/plugin_qgis_lpo/processing/extract_data.py +++ b/plugin_qgis_lpo/processing/extract_data.py @@ -29,17 +29,19 @@ def __init__(self) -> None: self._group_id = "raw_data" self._group = "Données brutes" self._short_description = """Besoin d'aide ? - Vous pouvez vous référer au Wikiaccessible sur ce lien : https://lpoaura.github.io/PluginQGis-LPOData/index.html. -

-Cet algorithme vous permet d'extraire des données d'observation contenues dans la -base de données LPO (couche PostGIS de type points) à partir d'une zone d'étude -présente dans votre projet QGIS (couche de type polygones).

-IMPORTANT : Prenez le temps de lire -attentivement les instructions pour chaque étape, et particulièrement les -informations en rouge -!""" +

+ Vous pouvez vous référer aux options de + + filtrage avancé.

+ Cet algorithme vous permet d'extraire des données d'observation contenues dans la + base de données LPO (couche type points) à partir d'une zone d'étude + présente dans votre projet QGIS (couche de type polygones).

+ IMPORTANT : Prenez le temps de lire + attentivement les instructions pour chaque étape, et particulièrement les + informations en rouge + ! +

+ Cette extraction inlut les données non valides et d'absence.""" self._icon = "extract_data.png" self._short_help_string = "" self._is_map_layer = True diff --git a/plugin_qgis_lpo/processing/summary_map.py b/plugin_qgis_lpo/processing/summary_map.py index 5968387..f6e6bfd 100644 --- a/plugin_qgis_lpo/processing/summary_map.py +++ b/plugin_qgis_lpo/processing/summary_map.py @@ -31,14 +31,15 @@ def __init__(self) -> None: self._group_id = "Map" self._group = "Cartes" self._short_description = """Besoin d'aide ? - Vous pouvez vous référer au Wiki accessible sur ce lien : - - https://lpoaura.github.io/PluginQGis-LPOData/index.html.

+

+ Vous pouvez vous référer aux options de + + filtrage avancé.

Cet algorithme vous permet, à partir des données d'observation enregistrées dans la base de données LPO, de générer une carte de synthèse - (couche PostGIS de type polygones) par maille ou par commune (au choix) + (couche de type polygones) par maille ou par commune (au choix) basée sur une zone d'étude présente dans votre projet QGIS (couche - de type polygones). Les données d'absence sont + de type polygones). Les données d'absence et non valides sont exclues de ce traitement.

Pour chaque entité géographique, la table attributaire de la nouvelle couche fournit les informations suivantes : diff --git a/plugin_qgis_lpo/processing/summary_table_per_species.py b/plugin_qgis_lpo/processing/summary_table_per_species.py index 0536877..feb84e5 100644 --- a/plugin_qgis_lpo/processing/summary_table_per_species.py +++ b/plugin_qgis_lpo/processing/summary_table_per_species.py @@ -35,15 +35,17 @@ def __init__(self) -> None: self._output_name = "Tableau de synthese par espece" self._group_id = "summary_tables" self._group = "Tableaux de synthèse" - self._short_description = """Besoin d'aide ? Vous pouvez vous référer au Wiki accessible sur ce lien : https://lpoaura.github.io/PluginQGis-LPOData/index.html.

-Cet algorithme vous permet, à partir des données d'observation enregistrées dans la base de données LPO, d'obtenir un -tableau de synthèse par espèce (couche PostgreSQL) basé sur une zone d'étude présente dans votre projet -QGIS (couche de type polygones). -Les données d'absence sont exclues de ce traitement.

-Pour chaque espèce observée dans la zone d'étude considérée, le tableau fournit les informations suivantes : -
    + self._short_description = """Besoin d'aide ? +

    + Vous pouvez vous référer aux options de + + filtrage avancé.


    + Cet algorithme vous permet, à partir des données d'observation enregistrées dans la base de données LPO, d'obtenir un + tableau de synthèse par espèce (couche PostgreSQL) basé sur une zone d'étude présente dans votre projet + QGIS (couche de type polygones). + Les données d'absence et invalides sont exclues de ce traitement.

    + Pour chaque espèce observée dans la zone d'étude considérée, le tableau fournit les informations suivantes : +
    • Identifiant VisioNature de l'espèce
    • cd_nom et cd_ref
    • Rang
    • diff --git a/plugin_qgis_lpo/processing/summary_table_per_time_interval.py b/plugin_qgis_lpo/processing/summary_table_per_time_interval.py index d26b871..89843d9 100644 --- a/plugin_qgis_lpo/processing/summary_table_per_time_interval.py +++ b/plugin_qgis_lpo/processing/summary_table_per_time_interval.py @@ -36,14 +36,16 @@ def __init__(self) -> None: self._group_id = "summary_tables" self._group = "Tableaux de synthèse" self._short_description = """Besoin d'aide ? - Vous pouvez vous référer au Wiki accessible sur ce lien : - https://lpoaura.github.io/PluginQGis-LPOData/index.html.

      - Cet algorithme vous permet, à partir des données d'observation enregistrées dans la base de données LPO, d'obtenir un tableau bilan (couche PostgreSQL)... +

      + Vous pouvez vous référer aux options de + + filtrage avancé.

      + Cet algorithme vous permet, à partir des données d'observation enregistrées dans la base de données LPO, d'obtenir un tableau bilan...
      • par année ou par mois (au choix)
      • et par espèce ou par groupe taxonomique (au choix)
      - ... basé sur une zone d'étude présente dans votre projet QGis (couche de type polygones) et selon une période de votre choix. - Les données d'absence sont exclues de ce traitement.

      - IMPORTANT : Les étapes indispensables sont marquées d'une étoile * avant leur numéro. Prenez le temps de lire attentivement les instructions pour chaque étape, et particulièrement les informations en rouge !""" + ... basé sur une zone d'étude présente dans votre projet QGIS (couche de type polygones) et selon une période de votre choix. + Les données d'absence et non valides sont exclues de ce traitement.

      + IMPORTANT : Prenez le temps de lire attentivement les instructions pour chaque étape, et particulièrement les informations en rouge !""" self._icon = "table.png" # self._short_description = "" self._is_map_layer = False