GithubHelp home page GithubHelp logo

Comments (13)

zklaus avatar zklaus commented on August 27, 2024 2

Indeed, neither the table nor the variable name depends on the experiment.

Additionally, some of these are actually cell_measures, so the most elegant way, imho, to deal with them would be to add the fx files to the list of input filenames before they are loaded as cubes into iris.
Then, iris will automatically sort them out and make them available via cube.cell_measure().
Grepping the tables, this seems to apply for

  • areacella from fx
  • areacellg from IfxAnt and IfxGre
  • areacello from Ofx
  • volcello from either Ofx or (Omon, Oyr, Odec).
  • areacellr from fx

from esmvalcore.

schlunma avatar schlunma commented on August 27, 2024 1

Additionally, some of these are actually cell_measures, so the most elegant way, imho, to deal with them would be to add the fx files to the list of input filenames before they are loaded as cubes into iris.
Then, iris will automatically sort them out and make them available via cube.cell_measure().
Grepping the tables, this seems to apply for

Good call, I think this would also remove the UserWarning: Missing CF-netCDF measure variable ... which appears very often (see #853).

from esmvalcore.

DSenftleben avatar DSenftleben commented on August 27, 2024

Another issue with fx file directory structure:

fx files are stored for each ensemble member and experiment individually, but should be independent of these keys (e.g., areacello is only dependent on grid structure, which is the same for each ensemble member). This causes unnecessary file duplication and the tool to crash for all ensemble members for which the fx files are not placed in their respective directories.

In CMIP5, fx files therefore were stored under r0i0p0. Maybe a similar solution could be implemented for CMIP6?

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

cheers for the heads up @DSenftleben - I suggest we wait a bit until things get settled in terms of data storage structure and replication for CMIP6. Eg I am looking on the CEDA archive (BADC) and I am seeing only the amip and the Efx dir is populated like this:
/badc/cmip6/data/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/amip/r1i1p1f2/Efx/sftgrf/gr/latest/sftgrf_Efx_CNRM-CM6-1_amip_r1i1p1f2_gr.nc

whereas the fx dir is populated as:

[valeriu@jasmin-sci2 ~]$ ls -la /badc/cmip6/data/CMIP6/CMIP/CNRM-CERFACS/CNRM-CM6-1/amip/r1i1p1f2/fx/
total 0
drwxr-x--- 1 badc open 0 Jan 24 17:01 .
drwxr-x--- 1 badc open 0 Jan 16 22:17 ..
drwxr-x--- 1 badc open 0 Jan 16 22:17 areacella
drwxr-x--- 1 badc open 0 Jan 24 17:00 areacellr
drwxr-x--- 1 badc open 0 Jan 16 22:17 mrsofc
drwxr-x--- 1 badc open 0 Jan 16 22:17 orog
drwxr-x--- 1 badc open 0 Jan 16 22:17 rootd
drwxr-x--- 1 badc open 0 Jan 16 22:17 sftgif
drwxr-x--- 1 badc open 0 Jan 16 22:17 sftlf

I'll ask the CEDA guys if this will change in the near future, if not, yes, we'll have to make the changes

from esmvalcore.

bouweandela avatar bouweandela commented on August 27, 2024

I noticed that the fx path settings are completely missing from config-developer.yml for CMIP6. Maybe someone can make a pull request to add those and that will also fix this issue?

from esmvalcore.

zklaus avatar zklaus commented on August 27, 2024

Some more context for the practicalities of fx files:

  • Some "fx" files might be not so fxed: At least thkcello, masscello, and volcello can live either in Ofx or in (Omon and Odec) depending on the model. My reading of the data request suggests that these are the only ones.
  • At least IPSL is embedding at least some fx information (certainly areacello) in their data files. Maybe we can just ignore that, but should inconsistencies surface, we should have a look there.

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

Another issue with fx file directory structure:

fx files are stored for each ensemble member and experiment individually, but should be independent of these keys (e.g., areacello is only dependent on grid structure, which is the same for each ensemble member). This causes unnecessary file duplication and the tool to crash for all ensemble members for which the fx files are not placed in their respective directories.

In CMIP5, fx files therefore were stored under r0i0p0. Maybe a similar solution could be implemented for CMIP6?

a heads up that I have also noticed this for IPSL and CNRM-CERFACS: on BADC:

f1 = iris.load_cube('/badc/cmip6/data/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/historical/r3i1p1f1/Ofx/areacello/gn/latest/areacello_Ofx_IPSL-CM6A-LR_historical_r3i1p1f1_gn.nc')
f2 = iris.load_cube('/badc/cmip6/data/CMIP6/CMIP/IPSL/IPSL-CM6A-LR/historical/r5i1p1f1/Ofx/areacello/gn/latest/areacello_Ofx_IPSL-CM6A-LR_historical_r5i1p1f1_gn.nc')

these files are totally identical (well, data is, almost all metadata is too, the parent ensemble is r1i1p1f1). Does any of you guys know what the strategy for including these files in the DRS is - @tillku is already starting to have headaches for his diagnostic that uses volcello and that one is not yet present at all for any model on ESGF ๐Ÿบ

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

OK guys I got confirmation of the standard CMIP6 fx paths from Ruth Petrie, data guru at STFC UK:

me: So, in a nutshell, should we expect to find fx files in a DRS like

/badc/cmip6/data/CMIP6/CMIP/[institute]/[dataset]/[experiment]/[ensemble]/[fxdir]/

where [fxdir] will be the same for each [ensemble] but have different names (fx, Ofx...) depending on [experiment]?

Ruth: Yes that is correct. It is formally โ€œtable_idโ€ instead of โ€œfx_dirโ€ the full list of all the table_ids is at https://github.com/WCRP-CMIP/CMIP6_CVs/blob/master/CMIP6_table_id.json this includes all the tables not just the fx ones but if you scan the list you should find all the different fx tables.

@zklaus : I think from the point of CMIP6 these fields are just normal variables.
Hence, they can be found as any other variable in the respective (Table,
variable) place.
Generally speaking, fixed files
for the ocean are in Ofx, files for atmosphere and land are in fx,
fixed files for the ice sheets over Antarctica and Greenland are in
IfxAnt and IfxGre, respectively, and some extended fixed things are
in Efx.

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

started working on a functional implementation in #1037 - let's take the discussion there, guys ๐Ÿบ

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

#170 retrieves fx files as any other regular variable so when that gets merged we can close this one too ๐Ÿบ

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

also maybe open a new issue with what @bouweandela has suggested to have a list of mip's available for the fx data retriever to look for

from esmvalcore.

schlunma avatar schlunma commented on August 27, 2024

I think this is solved, isn't it? @valeriupredoi

from esmvalcore.

valeriupredoi avatar valeriupredoi commented on August 27, 2024

hell yeah, cheers for digging this up ๐Ÿบ

from esmvalcore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.