OceanOPS / web-dashboard

Repository to manage evolution, bugs, feature requests of OceanOPS web monitoring dashboard
3 stars 0 forks source link

Orphan float tick box #70

Open vturpin opened 1 year ago

vturpin commented 1 year ago

Context/theme

Argo

Other context (if applicable)

No response

Description of the desired feature

In the platform selection tool, in the miscellaneous section, turn the NO DM manager into Orphan float. The filtering to get the orphan float is desccribed here : **In this export, the list of orphan Argo floats. A orphan float is a float:

Suggested solution

The request developed by Magali is the following: select * from (

select program.name as program, vuePDMO.PDMO as DMO_PROG, vuePCORE.PCORE as CPCORE_PROG, vuePBGC.PBGC as CPBGC_PROG, ptf.id as ptf_id, ptf.ref as ref, ptf_deployment.depl_date,

listagg(DMO1.last_name, ',') within group (order by DMO1.id) as DMO_PTF, listagg(CORE1.last_name, ',') within group (order by CORE1.id) as CPCORE_PTF, listagg(BGC1.last_name, ',') within group (order by BGC1.id) as CPBGC_PTF, vueobsR.cobsR as COUNT_FILE_R,
vueobsD.cobsD as COUNT_FILE_D

from ptf join program on ptf.program_id = program.id left join ptf_deployment on ptf.ptf_depl_id = ptf_deployment.id

left join contact_ptf_role cprDMO on cprDMO.ptf_id = ptf.id and cprDMO.role_id = 210 left join contact DMO1 on DMO1.id = cprDMO.contact_id left join contact_ptf_role cprCORE on cprCORE.ptf_id = ptf.id and cprCORE.role_id = 260 left join contact CORE1 on CORE1.id = cprCORE.contact_id left join contact_ptf_role cprBGC on cprBGC.ptf_id = ptf.id and cprBGC.role_id = 259 left join contact BGC1 on BGC1.id = cprBGC.contact_id

left join ( select distinct ptf_id, count(*) cobsD from obs_argo_gdac where filename like 'D%' group by ptf_id ) vueobsD on vueobsD.ptf_id = ptf.id

left join ( select distinct ptf_id, count(*) cobsR from obs_argo_gdac where filename like 'R%' group by ptf_id ) vueobsR on vueobsR.ptf_id = ptf.id

/ contact DMO par prog / left join ( select program.id as program_id, listagg(contact.last_name, ',') within group (order by contact.last_name) as PDMO from program, program_contact, contact where program.id = program_contact.program_id and contact.id = program_contact.contact_id and program_contact.role_id = 210 group by program.id) vuePDMO on vuePDMO.program_id = program.id

/ contact CPCORE par prog / left join ( select program.id as program_id, listagg(contact.last_name, ',') within group (order by contact.last_name) as PCORE from program, program_contact, contact where program.id = program_contact.program_id and contact.id = program_contact.contact_id and program_contact.role_id = 260 group by program.id) vuePCORE on vuePCORE.program_id = program.id

/ contact CPBGC par prog / _left join ( select program.id as program_id, listagg(contact.last_name, ',') within group (order by contact.last_name) as PBGC from program, program_contact, contact where program.id = program_contact.program_id and contact.id = program_contact.contact_id and program_contact.role_id = 259 group by program.id) vuePBGC on vuePBGC.program_id = program.id

where EXISTS (SELECT NULL FROM network_ptf np WHERE np.ptf_id = ptf.id AND np.network_id = 1000620) group by program.name, ptf.id, ptf.ref, ptf_deployment.depl_date, vueobsR.cobsR,
vueobsD.cobsD, vuePDMO.PDMO, vuePCORE.PCORE, vuePBGC.PBGC)

where DMO_PROG is null and CPCORE_PROG is null and CPBGC_PROG is null and count_file_D is null and count_file_r is not null

The 2 last points mean that the float produced Real Time data, but none of the RT files were quality controlled (ie, no DM files for the float)_

Alternatives considered

No response

Additional context

No response

OrensOceanOPS commented 1 year ago

I add few comments that were discussed together in January in response to the ADMT.

1) orphan float = no DMO / DMCP +R files older than 1 yr (prefere orphan proflies vs orphan floats)

2) To add information to the "float table" (% of orphan profiles, profile number extraction tools ...)

Image

3) Modify or add a chart "DataFlow (RT/DM processing)" for orphan profile according to the def, possibly by variable type.

Image

4) Update / create KPI to track orphan floats

5) create alert to DMO operators

vturpin commented 1 year ago

Vue après réunion du jour.

0/ Magali regarde comment le "parameter data mode" est enregistré en base. S'il est enregistré en lisant le nom du fichier ce n'est plus la bonne méthode. Il faut le lire à partir du champs "parameter_data_mode" disponible ici: https://data-argo.ifremer.fr/etc/argo_synthetic-profile_detailled_index.txt Et associé ce data mode à chaque parameter du profil en base.

1/ Selection tool pour sortir les stand by profil avec le choix de 1 ans, 2 ans, 3 ans et plus. Cet outil est à mettre dans la section data du select. (Uniquement pour Argo).

1bis/ Lors de la création d'un program Argo, le renseignement des contact roles DMCP et Program manager sont obligatoire. Le renseignement du DAC (Agency role) aussi

2/ Trouver un moyen de donner accès a la liste de profiles identifié. @tomlatter

3/ Chart Data FLow>RT/DM eligible : ajouter un group by BGC variables. la légende des abscisses "Delayed-Mode/DM Eligible (12 month after obs) (%)"

MKrieger29 commented 1 year ago

Pour le point (0) :

Exemple de requête: select distinct ptf.ref, obs_argo_gdac_variable.obs_id, variable.name as variable, obs_argo_gdac_variable.obs_data_status_id, obs_data_status.name , obs_argo_gdac.data_path, obs_argo_gdac.filename, obs_argo_gdac.filename_bgc from ptf, obs_argo_gdac, obs_argo_gdac_variable, variable, obs_data_status where ptf.id = obs_argo_gdac.ptf_id and obs_argo_gdac.id = obs_argo_gdac_variable.obs_id and obs_argo_gdac_variable.obs_data_status_id = obs_data_status.id and obs_argo_gdac_variable.variable_id = variable.id;

Table de ref OBS_DATA_STATUS : 1 REAL TIME 2 DELAYED MODE 3 ADJUSTED 0 PROVISIONAL