Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 / 11 Organisatorisches 1.Versionsarchiv für Dokumente: https://code.zmaw.de/projects/cdo/wiki/CMOR z.Z. https://code.zmaw.de/projects/cdo/wiki/CMOR i.CMIP-CDOs.ppt.

Ähnliche Präsentationen


Präsentation zum Thema: "1 / 11 Organisatorisches 1.Versionsarchiv für Dokumente: https://code.zmaw.de/projects/cdo/wiki/CMOR z.Z. https://code.zmaw.de/projects/cdo/wiki/CMOR i.CMIP-CDOs.ppt."—  Präsentation transkript:

1 1 / 11 Organisatorisches 1.Versionsarchiv für Dokumente: https://code.zmaw.de/projects/cdo/wiki/CMOR z.Z. https://code.zmaw.de/projects/cdo/wiki/CMOR i.CMIP-CDOs.ppt als Diskussionsgrundlage ii.CDOandCMIP-Standard.docx (noch nicht) 2.Eingabedateien zum Testen in: /work/ik0555/cmip5/archive/CMIP5/output/MPI-M/ 3.Raumreservierung 207 ca. jeden 2. Dienstag 4.nächstes Treffen am Di. 28. Juli 10:00 ?

2 2 / 11 CMIP[5,6,...] und CDOs Definition: file-c sind soweit wie möglich CMIP-konforme Dateien Definition: „so weit wie möglich“: vollständig für CMIP-Variablen Definition: CMIP5-Variablen sind die in standard_output.xls A.es gibt einen cdo operator „cmor“ mit cdo cmor,var,tab,... ifile ofile-c der CMIP-konforme Ausgabedateien erzeugt, falls: ifile enthält genau eine CMIP Variable inkl. ancillary_variables var ist ein CMIP oder MPI-ESM Variablenname B.die cdos liefern grundsätzlich so weit wie möglich CMIP-konforme Dateien C.cdo Ausgabe von CMIP-konformen Eingabedateien ist so weit wie möglich CMIP-konform cdo ifile1-c... ifilen-c ofile-c  die cdos können bei der täglichen Arbeit und in den CMIP5/6 processing Skripten verwendet werden  Bjorn ist glücklich

3 3 / 11 CMIP[5,6+,...] und CDOs: Wording A.Konforme Formatierung: cdo cmor,var,tab,... ifile ofile-c Hintergrund: Es soll einen Befehl geben, der benutzt werden kann, bzw. soll, um CMIP5 und später CMIP6+² Variablen entsprechend den Projekt-Standards zu formatieren. Das bedeutet, dass die Daten gegebenenfalls ins ESGF eingefüllt werden sollen. Dafür ist es essentiell, dass die Daten den vom Projekt vorgeschriebenen Namen haben. Die Erfahrung mit Daten, die zur ESGF-Publikation eingereicht wurden, zeigt, dass leider nicht erwartet werden kann, dass die Daten mit den verlangten Namen abgegeben werden, solange Freiheiten in der Namensgebung bestehen. Bei der ESGF-Publikation muss dann die Annahme der Daten verweigert werden, mit den entsprechenden Auswirkungen auf den reibungsfreien Ablauf. Wenn alles schief geht, kann es passieren, dass die Daten unter falschen Instituts-, Modell-, oder Experimentnamen im ESGF liegen, und von den Datennutzern nicht gefunden werden können. Aus diesem Grund sollte es nicht möglich sein, den Ausgabefilenamen anzugeben, weshalb der oben angegebene Dateiname durchgestrichen ist. Eventuell muss eine Umbenennung erfolgen. Kalle sieht es kritisch, wenn kein o-file-c Namen angegeben werden kann, da im WF der Wissenschaftler der vorgeschriebene Name nicht akzeptabel sein kann. Stephanie sieht keinen Use-Case hierfür. Die Ergebnisdatei ofile-c darf nur eine Variable enthalten. Vorschlag : ein zweiter Operator ‚cdo pcmor,var,tab,... ifile ofile-c‘ soll die gewünschten Freiheiten zulassen Bemerkung: ‚cmor‘ muß wg. der (jährlichen) operationellen Kettenverarbeitung einen ‚chunk_range‘ übergeben; für pcmor ist das nicht zwingend notwendig. Letzen Endes eine Entscheidung am MPI-M. ²DECK, CMIP6, und endorsedMIPs

4 4 / 11 CMIP[5,6+,...] und CDOs: Wording B. Konforme CDOs die cdos liefern grundsätzlich so weit wie möglich CMIP konforme Dateien Hintergrund: Es soll auch möglich sein, die CDOs zu benutzen, um Datenverarbeitung durchzuführen, ohne eine schon vorhandene Konformität unnötigerweise zu zerstören, bzw. eine CDO-Ausgabedatei soll grundsätzlich soweit wie möglich standardkonform sein, ohne allerdings den gewohnten WF der Wissenschaftler mit den CDOs einzuschränken. Ein Beispiel ist die Zusammenfassung mehrerer Variablen in einer Datei. Dabei sollen sich nicht die Metadaten (Dimensions-, Koordinatennamen,..) ändern, aber die Konformität ist damit natürlich zerstört. Sie müsste über den Aufruf ‚cdo cmor,var,tab,... [-selname,var] ifile‘ wiederhergestellt werden.

5 5 / 11 A.Konforme Formatierung 1. Ausbaustufe: Vorteil: wohldefinierte Schnittstellen transparenter Übergang CMIP5  CMIP6  CMIP7... implementierbar ohne weitere Änderungen der CDOs eventuell Tabelle mit Zuordnung : CMIP-Variablenname ECHAM-,JSBACH-,MPIOM-,HAMOCC-Codenr. zusätzliche CMIP Tabelle(n) mit lokalen Variablen/Experimenten möglich cdo cmor ifile cmor.xcmor2.a ofile-c DKRZPCMDIMPI-M Name wird von CMOR gesetzt

6 6 / 11 CMIP[5,6,...] und CDOs IMDI/CMOR Postprocessing workflow für CMIP5 Experimente cmor.a cmor.x

7 7 / 11 A.Konforme Formatierung letzte Ausbaustufe: Die Verarbeitung in cmor.x wird Schritt für Schritt in die CDOs verschoben. In der letzten Stufe werden die CMOR Library-Aufrufe in den CDOs getätigt: DKRZPCMDIMPI-M cdo cmor ifile cmor.xcmor2.a ofile-c X PCMDIMPI-M cdo cmor ifile cmor2.a ofile-c Name wird von CMOR gesetzt

8 8 / 11 A.Konforme Formatierung: Eingabe cdo cmor ifile cmor.xcmor2.a ofile-c var: variable name tab: MIP table name realm³ shape²³ [chunk-range] ffile gfile ifile command-line Eingabe branch_time basetime experiment_id forcing parent_experiment_id parent_experiment_rip initialisation_method physics_version realization [ comment history references]² command-line file name: ffile input_dir tabs_dir grids_dir arch_dir project_id institute_id model_id calendar contact source product env. params file name: gfile ² optional ³ nicht benötigt ²³ kann eventuell aus den Daten abgeleitet werden

9 9 / 11 A.Konforme Formatierung: Eingabe cdo cmorf,ffile cdo cmorg,gfile cdo cmor,var,tab[[,realm],shape[,chunk-range]] ifile ofile-c oder cdo cmor,var,tab[[,realm],shape[,chunk-range]] [-cmorf,ffile] [-cmorg,gfile] \ ifile ofile-c var: variable name tab: MIP table name realm shape ffile gfile [es gibt default name] ifile command-line Eingabe branch_time basetime experiment_id forcing parent_experiment_id parent_experiment_rip initialisation_method physics_version realization [ comment history references] command-line file name: ffile input_dir tabs_dir grids_dir arch_dir project_id institute_id model_id calendar contact source product env. params file name: gfile

10 10 / 11 A.Konforme Formatierung: CommandLineEingabe cdo cmor,var,tab[[,realm],shape[,chunk-range]] -cmorf,ffile -cmorg,gfile ifile ofile-c cdo cmor ifile cmor.xcmor2.a ofile-c var: variable name (CV) tab: MIP table name (CV) realm (CV) shape Expid-file Proj-file ifile command-line Eingabe: 23. Juni 15 Name wird von CMOR gesetzt

11 11 / 11 cdo cmor,var,tab[,[realm,]shape[,chunk-range]] -cmorf,ffile -cmorg,gfile ifile Für CMIP5 und CMIP-Daten: IV.shape (DKRZ CV): agrid, ogrid, alevel,... Systematisch: axy, oxy, axyl, axyp, oyz,... (passages, basins?) Kann man das aus den Daten herleiten? Aus ‚var‘ und Daten? Wurde zum Chunking benötigt. V.ffile: Namenskonvention (‘experiment_id‘_‘rip‘...ksh) ? Default (experiment_id_rip.ksh) ? environment parameter => experiment_id_rip.ksh => ffile VI.gfile: Namenskonvention (‚project_id‘_‘institute_id‘_‘model_id‘...ksh) ? Default (project_id_institute_id_model_id.ksh) ? environment parameter => project_id_institute_id_model_id.ksh => gfile VII.Übergabe an cmor.x durch Aufbau der NAMELISTs? => i.cmor.x kann zunächst ohne Änderung benutzt werden ii.die Skripten für die Experimente und das Postprocessing können ohne Änderung die verschiedenen Ausbaustufen von ‚‘cdo cmor,...‘ benutzen A.Konforme Formatierung: CommandLineEingabe

12 12 / 11 &CMORCTRL INPUT_FILENAME=${ifile} CHUNK_RANGE = "“ (def=“”) TABLE_NAME = Amon def=NA REALM = "${realm}“ def=atmos REC_NUM = ${RecDay} header! OUT_FLAG = "replace" (if chunk_range=“”) SHAPE = "${shape}" ANZVARS = 1 var =tas unit =„K“ Expid-file =aquaControl_r1i1p1.ksh Proj-file = MPI-M_MPI-ESM-LR.ksh / A.Konforme Formatierung: files cdo cmor,var,tab[[,realm],shape[,chunk-range]] -cmorf,ffile cmorg,gfile ifile experiment_id=„aquaControl“ realization=1 initialization_method=1 physics_version=1 baseyear=1850 forcing=„N/A“ parent_experiment_id=„N/A“ parent_experiment_rip=„N/A“ branch_time=0.0 [ comment=„“ history=„“ references=„“] ffile= aquaControl_r1i1p1.ksh &CMORCONST INPUT_DIRNAME = “${input_dir}“ TABDIR = "${tabs_dir}“ GRIDFILE_DIRNAME = "${grids_dir}“ OUTPUT_DIRNAME = "${arch_dir}“ PROJECT_TEXT = "${project_id}“ MOD_ID = "${model_id}“ INSTITUTE_ID =“${institute_id}“ SOURCE_TEXT = "${source}” CONTACT_TEXT = “${contact}” CALENDAR_TEXT = “${calendar}“ PRODUCT =„${product} EXPEID = "${exeriment_id}“ RUN = "${realization}“ INM = "${initialisation_method}“ PHV = "${physics_version}“ FORCING_TEXT = "${forcing}“ HISTORY_TEXT = "${history}" COMMENT_TEXT = "${comment:-""}" REFERENCES_TEXT = "${references}“ INIT_YEAR = ${baseyear} PAR_MOD = "${parent_experiment_id}“ PAR_RIP = "${parent_member_rip}" BRANCH_T = ${branch_time} ZOSCONST = ${zosga},${zossga} / input_dir=“.” tabs_dir=“.” grids_dir=“.” arch_dir=“.” project_id=CMIP5 model_id=MPI-ESM-LR institute_id=MPI-M source=„my model“ contact=ich@inst.de calendar=standard product=output gfile= MPI-M_MPI-ESM-LR.ksh cdo cmor ifile cmor.xcmor2.a ofile-c

13 13 / 11 &CMORVAR INPUT_FILENAME=${ifile} CHUNK_RANGE = "“ (def=“”) TABLE_NAME = Amon (no def) REC_NUM = ${RecDay} header! OUT_FLAG = "replace" (if chunk_range=“”) SHAPE = "${shape}" ANZVARS = 1 var =tas unit =„K“ Expid-file =aquaControl_r1i1p1.ksh Proj-file = MPI-M_MPI-ESM-LR.ksh / A.Konforme Formatierung: files cdo cmor,var,tab[[,realm],shape[,chunk-range]] -cmorf,ffile -cmorg,gfile ifile experiment_id=„aquaControl“ realization=1 initialization_method=1 physics_version=1 baseyear=1850 forcing=„N/A“ parent_experiment_id=„N/A“ parent_experiment_rip=„N/A“ branch_time=0.0 [ comment=„“ history=„“ references=„“] ffile= aquaControl_r1i1p1.ksh &CMOREXP EXPEID = "${exeriment_id}“ RUN = "${realization}“ INM = "${initialisation_method}“ PHV = "${physics_version}“ FORCING_TEXT = "${forcing}“ HISTORY_TEXT = "${history}" COMMENT_TEXT = "${comment:-""}" REFERENCES_TEXT = "${references}“ INIT_YEAR = ${baseyear} PAR_MOD = "${parent_experiment_id}“ PAR_RIP = "${parent_member_rip}" BRANCH_T = ${branch_time} ZOSCONST = ${zosga},${zossga} / input_dir=“.” tabs_dir=“.” grids_dir=“.” arch_dir=“.” project_id=CMIP5 model_id=MPI-ESM-LR institute_id=MPI-M source=„my model“ contact=ich@inst.de calendar=standard product=output gfile= MPI-M_MPI-ESM-LR.ksh cdo cmor ifile cmor.xcmor2.a ofile-c &CMORINST INPUT_DIRNAME = “${input_dir}“ TABDIR = "${tabs_dir}“ GRIDFILE_DIRNAME = "${grids_dir}“ OUTPUT_DIRNAME = "${arch_dir}“ PROJECT_TEXT = "${project_id}“ MOD_ID = "${model_id}“ INSTITUTE_ID =“${institute_id}“ SOURCE_TEXT = "${source}” CONTACT_TEXT = “${contact}” CALENDAR_TEXT = “${calendar}“ PRODUCT =„${product} ZOSCONST = ${zosga},${zossga} /

14 14 / 11 B. Konforme CDOs B. die cdos sollen so weit wie möglich CMIP konforme Dateien liefern Vergleiche header von allen CMIP5 Dateien in /work/ik0555/.../esmrcp85/ cdo copy “ “ “ “ cl_Amon_...._178001-178912_copy.nc cdo selname,cl “ “ “ “ cl_Amon_...._178001-178912_selname.nc cdo command “ “ “ “ cl_Amon_...._178001-178912_command.nc Die Vergleiche sind inkrementell, d.h. was schon mit ‚cdo copy‘ notiert wurde, wird beim selname-Vergleich nicht mehr erwähnt; was schon für eine Modellkomponente notiert wurde, wird beim Vergleich für eine andere Komponente nicht mehr erwähnt. 9. Juni 15

15 15 / 11 All realms / grids: 1.bnds => nb2 Action! 5.time:axis = "T„ geht verloren Action! 6.global history-Attribut anhängen: Action! E.g.: “Raw output...with IMDI...; CMOR rewrote...“ “Raw output...[with ‘infrastructure‘...]; CMOR rewrote...; CDO selname,cl...“ 7.tracking_id muss er-/gesetzt werden Action! 8.creation_date muss er-/gesetzt werden Action! 9.time:units = "days since’ ‘850-1-1 00:00:00" ; versus time:units = "days since’ ‘850-01-01 00:00:00" ; Action! 10. 9. Juni 15 B. header–Vergleich nach cdo copy

16 16 / 11 Realm / grid atmos: 1.var:cell_measures = “area: areacella“ geht verloren; Action! 2.Location von areacella in var:associated_files = "baseURL: http://......“Action! 3.var:grid_type = “gaussian“ ; Action! 4.Single value dimension treatment by CMOR: double height ; height:axis = "Z" ; height:long_name = "height" ; height:positive = "up" ; height:standard_name = "height" ; height:units = "m" ; sfcWind:coordinates = "height" ; => geht verloren ; Action! 9. Juni 15 B. header–Vergleich nach cdo copy

17 17 / 11 B. header–Vergleich nach cdo copy Realm / grid atmos: 1.Vertical coordinate a.lev:standard_name verloren b.lev:formula = "p = ap + b*ps" ; c.lev:formula_terms = "ap: ap b: b ps: ps" ; d.lev_bnds:formula e.lev_bnds:formula_terms="ap: ap_bnds b: b_bnds ps: ps" f.lev_bnds:standard_name verloren (sollte nicht vorhanden sein CF conventions) g.lev_bnds:units verloren (“ “ “ “) h.double [ap|b](lev) verloren i.[ap|b]_bnds(lev, x); dimension x statt bnds j.float ps(time, lat, lon) verloren 2. cl:ancillary_variables = “ps ap b ap_bnds b_bnds“ (oder über “formula_terms“ regeln; dann braucht man das nicht) 3. 9. Juni 15

18 18 / 11 Realm / grid land: 1.bareSoilFrac:coordinates = “type“; Action! type:long_name = "surface type" type:standard_name = "area_type" ; 2.float landCoverFrac(time, lev, lat, lon) statt float landCoverFrac(time, type, lat, lon) ; Action! 3.char type_description(type, strlen) ; type_description:long_name = "plant functional type" ; type_description:standard_name = "area_type" ; landCoverFrac:coordinates = "type_description" ; Action! 9. Juni 15 B. header–Vergleich nach cdo copy

19 19 / 11 9. Juni 15 B. header–Vergleich nach cdo copy

20 20 / 11 9. Juni 15 B. header–Vergleich nach cdo copy

21 21 / 11 Realm / grid ocnBgchem: 1.single value vertical dimension (siehe realm/grid = atmos 4.): bfe:coordinates = "lat lon" ; statt bfe:coordinates = "depth lat lon" ; depth:axis = "Z" ; depth:long_name = "depth" ; depth:positive = "down" ; depth:standard_name = "depth" ; depth:units = "m" ; double depth ; 9. Juni 15 B. header–Vergleich nach cdo copy

22 22 / 11 Realm / grid atmos: 1.Vertical coordinate a.double ap_bnds(lev) verloren b.double b_bnds(lev) verloren 9. Juni 15 B. header–Vergleich nach cdo selname

23 23 / 11 Zu diskutieren: I.Inwieweit ist es sinnvoll, die Modelle diese Dateien erzeugen zu lassen? II.Soll cdo cmor auch GRIB Daten lesen/ausgeben können? III.Brauchen wir eine Liste mit Use-Cases?


Herunterladen ppt "1 / 11 Organisatorisches 1.Versionsarchiv für Dokumente: https://code.zmaw.de/projects/cdo/wiki/CMOR z.Z. https://code.zmaw.de/projects/cdo/wiki/CMOR i.CMIP-CDOs.ppt."

Ähnliche Präsentationen


Google-Anzeigen