Powerpoints
Notions Netcdf
Les fichiers netcdf dans ECCAD
Dimensions
- 3D : Time Lat Lon –> cas général
- 3D : Level Lat Lon -> profils temporels
- heure du jour (0-23)
- mois de l’année (1-12)
- day of week (0-6)
- 4D : Time Level Lat Lon
Variables
- Emissions
- anthro : 20 secteurs
- bb : 2 secteurs (savannes, forets)
- soil: 4 secteurs (depot N, fertilisers, pulse…)
- biogénique, oceanique, termites, volcans :1 secteur
- Cas particuliers :
- Flaring : mean, min, max, std
- Profils temporels : 50 profils temporels
- Feux : 1 zone brûlees
- Végétation : npp
- Masques de régions: 1 variable (index de la région)
Insertion d’un inventaire
1- Format netcdf dans ECCAD
- 1 espèce/paramètre par fichier
- Toutes les dates dans le même fichier
- Toutes les variables dans le même fichier
- Type des variables : flottant
- Compression de niveau 5
- Ordonnancement des dimensions Time Level Lat Lon
- Normes de la convention CF (noms et unités standards + attributs globaux)
- Numéro de version : attribut product_number
Nomenclature des fichiers
<inventory> _ <geospatial> _ <resolution> _ <category> _ <parametre> _ <version> .nc
Vérification des fichiers
- ncdump
- -h dump l’ensemble des metadonnées du fichier
- -v nomVariable
- Panoply
2- Insertion

Etapes de l’insertion
- Dépôt des fichiers dans le répertoire input de l’inventaire
- Renseigner le fichier ECCAD_database.xml : seuls les inventaires présents dans la liste sont traités.
- Selon le type d’insertion faire les étapes suivantes :
| Inventaire | Etapes |
| Nouveau | -Rajouter dans ECCAD_database.xml et ECCAD2.xsd Provider(s), organisme(s) nouvelles espèces, secteurs, résolutions (le cas échéant) -Créer le fichier Inventory.xml (copier le xml d’un inventaire similaire) et renseigner les champs title update, global, total, restricted_visualisation -Mettre l’image du logo du provider dans /data/ECCAD/webContent/Logo/logo_<inventory>.png |
| Mise à jour | -<update> à renseigner dans le fichier Inventory.xml pour une maj annuelle. -<scenario> à rajouter si nouveau scenario ou version |
| Ré-insertion | -Contrôle de la date du fichier avant la réinsertion des fichiers -Calcul des masques si les fichiers Json n’existent pas (les effacer le cas échéant). |
Sous sedur /data/ECCAD/insert/ lancer Insertion.sh execute le jar
Description détaillée du fichier Inventory.xml
Shéma de la base de donnée :

3- Vérification à l’insertion
- Metadata
- organismes et contacts
- nombre de paramètres et de secteurs
- Map
- Vérification du format du fichier avec le serveur thredds :
- Catalogue Thredds ( thredds, eCCAD2018@)
- Attention au cache qui persiste !!!
- Catalogue Thredds ( thredds, eCCAD2018@)
- Paramétrisation de la visualisation (palette, échelle log/linéaire, valeur min/max) :
- dépend de l’unité de la variable à visualiser
- valeurs min et max calculée à la volée au moment de l’affichage -> pour les dimensions 4 les valeurs max et min sont extraites sur toutes les grilles de la dimension
- voir la liste des causes de problèmes lorsque la carte ne s’affiche pas
- Vérification du format du fichier avec le serveur thredds :
- Time Series
- nombre de secteurs présents
- affichage de l’ensemble des secteurs
- vérifier que le sum_sectors est bien égal à 50% (option pie)
- Compare
- comparaison avec les séries temporelles d’autres inventaires
- option « all species from dataset » avec l’échelle logarithme
4- Menus du programme d’insertion
| 0 | Mise en ligne rapide | Seul le fichier d’origine est copié dans le répertoire input |
| 1 | Insertion | – calculs des fichiers <time step> et conversion en totaux, extraction séries temporelles – calculs des masques (sauf <daily>) et extraction des séries temporelles ( calcul des masques que si les json ne sont pas présents) |
| mise à jour : 1 ou plusieurs années | <update>YYYY-01-01</update> – maj de l’inventaire avec les nouvelles années – fichiers input <nomfichier>_<YYYY>.nc (YYYY est la première année, le fichier peut contenir plusieurs années) !! la maj est possible que si time = UNLIMITED (sinon utiliser le script NCO unlimitedTime.sh) | |
| 2 | Supprimer un inventaire | Suppression d’un inventaire ou d’un scénario, supprime également l’ensemble des fichiers de l’archive (!! supprimer au préalable l’inventaire de la table inventory_disk_size) |
| 3 | Nettoyer | Nettoyage de la base de données (nécessaire lorsque l’insertion plante) |
| 4 | Importer | Organismes et Utilisateurs |
| 5 | Calculs des masques | 1) calculer un masque pour tous les inventaires (All) 2) calculer tous les masques (All) pour un inventaire |
| 6 | Mise à jour des Metadonnées | Mise à jour des metadonnées uniquement |
| 7 | Test validité des Urls | Validité des Url (urldata, urldoc) de chaque inventaire et des liens biblio. |
| 8 | Déployer une nouvelle base | Déploiement d’une nouvelle base |
| 9 | Extraire les fichiers annuels | -Extraction des fichiers annuels (test la présence des fichiers) -Nom des fichiers <inventory>_<version>_<espece>_<YYYY>.nc -Reformattage de l’unité de temps basé sur l’année du fichier en -Check de la validité du fichier (fichiers logs) |
Archive de fichiers
Sur le serveur Sedur, répertoire /data/ECCAD/data
xml
- ECCAD2.xsd
- ECCAD_database.xml
- <Inventory>.xml
input
- <Inventory> contient les fichiers formatés à insérer
output
| Dossier | types | description | ||
| inventory | netCDF | flux (daily/monthly/yearly) | ||
| totals | netCDF | totaux (daily/monthly/yearly) masques totaux (daily/monthly/yearly) | ||
| json | json | time series – 1 json /variable/masque | ||
| csv | csv | 1 csv avec toutes les variables + 1 csv par masque | ||
| level° | json | 1 fichier par variable level avec les données | ||
| annual * | netcdf | fichiers annuels | ||
| achive* | netcdf | sauvegarde temporaire d’ancienne(s) version(s) | ||
| origin* | netcdf/ ASCII | fichiers d’origines (qd le format très différent) + 1 fichier readme | ||
| compare | netcdf | dossier_link (ménage automatique, conservés pdt 1 mois) | ||
| download | netcdf, zip | fichiers issus des calculs de MapCompare |
L’inventaire Pixel_Area doit être présent (!! Présence testée lors de l’insertion.)
- Nécessaire pour les calculs de totaux (flux, fraction of grid cell)
- Utilisé dans le MapCompare pour lire les données de lat et lon
Volume des données
Le volumes des données pour chaque inventaire est visible dans le munu admin en bas de page.
Les inventaires CAMS
Caractéristiques et formatage
- par = nbre de parametres
- sct = nbr de secteurs
- ans = nbre d’années
- tps = fréquence temporelle
- h, d, w, m, c = hourly, weekly, daily, monthly, yearly, climatology
- Prg = type de programme
- Maj =
- N = nouvelle version
- U = mise à jour dernière(s) année(s)
- taille = taille d’un fichier (Go)
| Dataset permalink | Provider contact | Formattage | par | sct | ans | tps | Prg | Maj | taille |
| ANT AIR | LAERO France | Chunk size standardisation global attributs | 40 40 | 20 1 | 23 23 | m | x | N U | |
| SHIP | FMI Finlande | Netcdf3 -> 4, merge inland globalsea, concatenation | 10 | 1 | 23 | d | Java | N | |
| BIO TERM | CUNI République Tchèque | Netcdf3->4, séparation des espèces, ordonnancement des dimensions, merge diurnal et moyenne journalière dans un seul fichier, concatenation | 29 1 | 2 1 | 23 1 | hm m | NCO | U – | |
| OCE | MetNo Norvège | séparation des espèces par fichier changement unités, concaténation, attributs climatologie | 5 | 1 | 21 | d c | NCO | U | |
| SOIl | MetNo Norvège | changement d’unités, attributs climatologie | 1 | 5 | 23 | m c | NCO | N | |
| VOLC | Chalmers Suède | netcdf séries temporelles-> merge de tous volcans dans un seul fichier et mise au format grid, changement d’unités | 1 | 37 | 14 | d | Java | N | |
| TEMPO | BSC Espagne | merge 55 fichiers en 1 seul fichier contenant tous les profils | 1 | 55 | 23 | hw dmy | NCO | N | |
| CAMS-REG-ANT | TNO Nether-lands | 1 netcdf par an avec tous les paramètres par source (~4000000) pour différent secteurs (lat,lon,code pays, source), séparation des espèces | 21 | 13 | 2014 | y | Java | N | |
| GFAS | ECMWF | séparation des espèces dans un fichier, concaténation | 1 | 41 | 20 | d | Java | U |
Les programmes de formatage pour chaque inventaire porte le nom de l’inventaire et sont sous le dépôt git : https://gitlab.in2p3.fr/sedoo/aeris/eccad/eccad-scripts
Les jeux de données correspondant aux programmes sont dans les répertoire /provider de chaque inventaire.
Pour les programmes NCO, si il s’agit de gros volume de données qui nécessite de la mémoire faire les traitement sur nuwa en mettant au debut du script les deux lignes suivantes
#!/bin/sh module load nco/4.8.1
Lancer la commande :
sbatch -p any -C 192G -N1 --exclusive CAMS-GLOB-BIO.sh
Livraisons des inventaires CAMS
- Extraction de fichiers annuels
- changement de l’unité de temps référencement par rapport à l’année du fichier
- nomenclature des fichiers :
- <inventory>_<version>_<parametre>_<YYYY>.nc
- parametre :
- nom de l’espèce chimique définie par ECMWF
- renseigné dans ECCAD_database.xml <paramtext>
- ordonnancement des latitudes de -90 -> 90
- référencement des coordonnées latitude et longitude au centre du pixel
- Livraison des fichiers sur le serveur ftp de l’ECMWF (contact Luke.Jones@ecmwf.int)
ftp -nv bolftp.ecmwf.int ftp> user cams_fd (password) ftp> prompt off ftp> cd /ads_incoming/global_emissions/ ftp> mkdir <inventory>_<product_version> ftp> mput *.nc ads_incoming/global_emissions/<inventory>_<product_version>
Statistiques de téléchargements
A transmettre à Thomas Popp à chaque trimestre.
New users
- Base de données : eccad
- tous users confondus (non spécifiques à CAMS)
select count(*) from person where EXTRACT(year from date_register_person)>2022;
Active users
- Base de données : eccad_user
Visiting :
select count (distinct email_user) from catalogue_statistics where EXTRACT(year from date)>2022 and EXTRACT(month from date)>3 and EXTRACT(month from date)<7 and email_user like '%@%' and inventory like 'CAMS%';
Download :
select count(distinct user_uuid) from user_download where EXTRACT(year from request_date)>2022 and EXTRACT(month from request_date)<4 and request like '%CAMS%' and download;
Number of files
Select count(*) from user_download where EXTRACT(year from request_date)>2022 and EXTRACT(month from request_date)<4 and request like '%CAMS%' and download;
Size
select SUM(size::float) from user_download where EXTRACT(year from request_date)>2022 and EXTRACT(month from request_date)<4 and request like '%CAMS%' and download;
SELECT
SUM(downloads.size::float * downloads.count)
FROM
downloads, user_download
WHERE
downloads.user_download_id = user_download.id
AND user_download.request like '%CAMS%'
AND EXTRACT(year from user_download.request_date)=2024
AND EXTRACT(month from user_download.request_date)<4
AND downloads.count > 1
ESSD teasers
- Faire la page dans WordPress
- Rajouter la référence biblio dans ECCAD_database.xml et dans Inventory.xml
- Mettre le fichier zip dans le répertoire /data/ECCAD/webContent/ESSD-xxx