Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
fonctionnalites:geonature:synthese-regroupement-par-mailles [2021/09/07 09:46] – [À fin de ...] jpmilcent | fonctionnalites:geonature:synthese-regroupement-par-mailles [2022/01/17 12:21] (Version actuelle) – [À fin de ... Je peux ...] jpmilcent | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Synthese - Regroupement d' | ====== Synthese - Regroupement d' | ||
- | ===== À fin de ... ===== | + | ===== À fin de ... Je peux ... ===== |
- | ? | + | **Afin de** clarifier l' |
- | ===== Je peux ... ===== | + | |
- | Dans le module Synthese, | + | |
Ces mailles doivent être colorées en fonction du nombre d' | Ces mailles doivent être colorées en fonction du nombre d' | ||
+ | |||
Une légende doit pouvoir être affiché afin d' | Une légende doit pouvoir être affiché afin d' | ||
Ligne 16: | Ligne 16: | ||
* Les valeurs min et max des classes de nombres d' | * Les valeurs min et max des classes de nombres d' | ||
* Les classes de nombres d' | * Les classes de nombres d' | ||
- | | + | |
+ | ==== Problèmes ==== | ||
+ | * La limite des 100 000 données ne peut être levée car il faudrait changer tout le fonctionnement actuel de la Synthese. En effet, la carte à afficher quand la recherche se fait sans filtre demanderait de renvoyer les 9 millions d' | ||
+ | * Solutions : | ||
+ | * maintenir la limite et indiquer via un texte dans la fenêtre d' | ||
+ | * ne renvoyer que les données visible à l' | ||
+ | | ||
+ | * Solution : | ||
+ | * en mode regroupement par maille, l' | ||
===== Ressources ===== | ===== Ressources ===== | ||
Ligne 24: | Ligne 32: | ||
- | ===== Regrouper 100 000 observations par maille 10x10 ===== | + | ===== Exemples de requête ===== |
- | Exemple de requête: | + | |
+ | ==== Regrouper 100 000 observations par maille 10x10 ==== | ||
<code sql> | <code sql> | ||
SELECT la.area_code, | SELECT la.area_code, | ||
Ligne 35: | Ligne 44: | ||
LIMIT 100000 ; | LIMIT 100000 ; | ||
</ | </ | ||
- | En local, pour une maille M10 ou M5, le temps semble similaire entre 11s et 15s. | + | Résultats (en local) : |
+ | * Pour une maille M10 ou M5, le temps semble similaire entre 11s et 15s. | ||
+ | * Sans la limite à 100 000 données le temps de calcul est de ~12s. | ||
+ | |||
+ | ==== Requête listant les observations en y associant la géométrie d'une maille ==== | ||
+ | <code sql> | ||
+ | SELECT | ||
+ | s.id_synthese, | ||
+ | s.date_min, | ||
+ | s.lb_nom, | ||
+ | s.cd_nom, | ||
+ | s.nom_vern, | ||
+ | s.st_asgeojson, | ||
+ | s.observers, | ||
+ | s.dataset_name, | ||
+ | s.url_source, | ||
+ | s.entity_source_pk_value, | ||
+ | s.unique_id_sinp, | ||
+ | s.id_nomenclature_sensitivity, | ||
+ | s.id_nomenclature_diffusion_level, | ||
+ | la.area_code, | ||
+ | la.geojson_4326 | ||
+ | FROM gn_synthese.v_synthese_for_web_app AS s | ||
+ | JOIN gn_synthese.cor_area_synthese AS cas ON (s.id_synthese = cas.id_synthese) | ||
+ | JOIN ref_geo.l_areas AS la ON (cas.id_area = la.id_area) | ||
+ | WHERE la.id_type = ref_geo.get_id_area_type_by_code(' | ||
+ | ORDER BY s.date_min DESC ; | ||
+ | </ | ||
+ | Résultats (en local) : | ||
+ | * Sans limite pour toute la base : 1mn 36s | ||
+ | * Avec la limite à 100000 : 1mn 28s | ||
+ | ==== Requête listant les observations pour une bbox de taille M5 ==== | ||
+ | <code sql> | ||
+ | SELECT | ||
+ | s.id_synthese, | ||
+ | s.date_min, | ||
+ | s.lb_nom, | ||
+ | s.cd_nom, | ||
+ | s.nom_vern, | ||
+ | s.st_asgeojson, | ||
+ | s.observers, | ||
+ | s.dataset_name, | ||
+ | s.url_source, | ||
+ | s.entity_source_pk_value, | ||
+ | s.unique_id_sinp, | ||
+ | s.id_nomenclature_sensitivity, | ||
+ | s.id_nomenclature_diffusion_level | ||
+ | FROM gn_synthese.v_synthese_for_web_app AS s | ||
+ | WHERE s.the_geom_4326 IS NOT NULL | ||
+ | AND ST_Intersects(s.the_geom_4326, | ||
+ | ORDER BY s.date_min DESC ; | ||
+ | </ | ||
+ | Résultats (en local) : ~60ms pour 6400 observations |