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:50] – [Détails de la fonctionnalité] 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 18: | Ligne 18: | ||
==== Problèmes ==== | ==== Problèmes ==== | ||
- | * Pour les observations sensibles ou avec niveau de diffusion, il faudrait pouvoir récupérer le centroïde de la géométrie correspondant au floutage demandé pour ces observations. Cela pose problème car cela demande d’exécuter la requête de floutage puis 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 26: | 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 37: | 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 |