Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

um2nc - fix for UNKNOWN VARIABLE #2

Open
rml599gh opened this issue Jan 18, 2024 · 14 comments
Open

um2nc - fix for UNKNOWN VARIABLE #2

rml599gh opened this issue Jan 18, 2024 · 14 comments

Comments

@rml599gh
Copy link

In the conversion from UM PP file to netcdf, most fields get a sensible long_name and units etc. Variables (fld_s08i851 and following) that are associated with CABLE/CASA-CNP (mostly carbon, nitrogen and phosphorus pools) have long_name = "UNKNOWN VARIABLE". Is there somewhere in the code that this mapping is defined? Some CABLE variables e.g. fld_s03i801 are provided with correct long_names. I am happy to help with providing appropriate long names for the unknown fields.
Rachel

@tammasloughran
Copy link
Contributor

tammasloughran commented Jan 24, 2024

ACCESS-Archiver is not standalone and I believe it depends on the umfile_utils "gadi system module" that has a stashvar.py python module containing the metadata mapping information. umfile_utils module as far as I know does not have a git repository so trying to get the gadi system module updated has been quite slow and difficult (I'm not capable of this and I don't know who is).

I inserted the required information into the stashvar.py module below (renamed to .txt). We just need someone to update and upload it to gadi. There are multiple versions of this module and I'm unsure which is used by ACCESS-Archiver.
e.g. ~access/apps/pythonlib/umfile_utils/stashvar.py or ~access/apps/pythonlib/umfile_utils/cmip6/stashvar.py
There are also CMIP6 versions of this file stashvar_cmip6.py because there needed to be special cases for CMIP6 for some reason.

stashvar.py.txt
stashvar_cmip6.py.txt

The relevant code is here:

atm_stashvar[3835] = ["PREVIOUS YEAR SURF FRACTIONS ON TILES", "", "", "", ""]
atm_stashvar[3851] = ["CARBON POOL LABILE ON TILES", "", "g m-2", "", ""]
atm_stashvar[3852] = ["CARBON POOL PLANT - LEAF ON TILES", "", "g m-2", "", ""]
atm_stashvar[3853] = ["CARBON POOL PLANT - WOOD ON TILES", "", "g m-2", "", ""]
atm_stashvar[3854] = ["CARBON POOL PLANT - ROOT ON TILES", "", "g m-2", "", ""]
atm_stashvar[3855] = ["CARBON POOL LITTER - METABOLIC ON TILES", "", "g m-2", "", ""]
atm_stashvar[3856] = ["CARBON POOL LITTER - STRUCTURAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3857] = ["CARBON POOL LITTER - COARSE WOODY DEBRIS ON TILES", "", "g m-2", "", ""]
atm_stashvar[3858] = ["CARBON POOL SOIL - MICROBIAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3859] = ["CARBON POOL SOIL - SLOW ON TILES", "", "g m-2", "", ""]
atm_stashvar[3860] = ["CARBON POOL SOIL - PASSIVE ON TILES", "", "g m-2", "", ""]
atm_stashvar[3861] = ["NITROGEN POOL PLANT - LEAF ON TILES", "", "g m-2", "", ""]
atm_stashvar[3862] = ["NITROGEN POOL PLANT - WOOD ON TILES", "", "g m-2", "", ""]
atm_stashvar[3863] = ["NITROGEN POOL PLANT - ROOT ON TILES", "", "g m-2", "", ""]
atm_stashvar[3864] = ["NITROGEN POOL LITTER - METABOLIC ON TILES", "", "g m-2", "", ""]
atm_stashvar[3865] = ["NITROGEN POOL LITTER - STRUCTURAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3866] = ["NITROGEN POOL LITTER - COARSE WOODY DEBRIS ON TILES", "", "g m-2", "", ""]
atm_stashvar[3867] = ["NITROGEN POOL SOIL - MICROBIAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3868] = ["NITROGEN POOL SOIL - SLOW ON TILES", "", "g m-2", "", ""]
atm_stashvar[3869] = ["NITROGEN POOL SOIL - PASSIVE ON TILES", "", "g m-2", "", ""]
atm_stashvar[3870] = ["NITROGEN POOL SOIL MINIMUM ON TILES", "", "g m-2", "", ""]
atm_stashvar[3871] = ["PHOSPHORUS POOL PLANT - LEAF ON TILES", "", "g m-2", "", ""]
atm_stashvar[3872] = ["PHOSPHORUS POOL PLANT - WOOD ON TILES", "", "g m-2", "", ""]
atm_stashvar[3873] = ["PHOSPHORUS POOL PLANT- ROOT ON TILES", "", "g m-2", "", ""]
atm_stashvar[3874] = ["PHOSPHORUS POOL LITTER - METABOLIC ON TILES", "", "g m-2", "", ""]
atm_stashvar[3875] = ["PHOSPHORUS POOL LITTER - STRUCTURAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3876] = ["PHOSPHORUS POOL LITTER - COARSE WOODY DEBRIS ON TILES", "", "g m-2", "", ""]
atm_stashvar[3877] = ["PHOSPHORUS POOL SOIL - MICROBIAL ON TILES", "", "g m-2", "", ""]
atm_stashvar[3878] = ["PHOSPHORUS POOL SOIL - SLOW ON TILES", "", "g m-2", "", ""]
atm_stashvar[3879] = ["PHOSPHORUS POOL SOIL - PASSIVE ON TILES", "", "g m-2", "", ""]
atm_stashvar[3880] = ["PHOSPHORUS POOL SOIL LABILE ON TILES", "", "g m-2", "", ""]
atm_stashvar[3881] = ["PHOSPHORUS POOL SOIL SORBED ON TILES", "", "g m-2", "", ""]
atm_stashvar[3882] = ["PHOSPHORUS POOL SOIL OCCLUDED ON TILES", "", "g m-2", "", ""]
atm_stashvar[3883] = ["SOIL ORDER", "", "", "", ""]
atm_stashvar[3884] = ["NITROGEN DEPOSITION", "", "g m-2 day-1", "", ""]
atm_stashvar[3885] = ["NITROGEN FIXATION", "", "g m-2 year-1", "", ""]
atm_stashvar[3887] = ["PHOSPHORUS FROM DUST", "", "g P m-2 yr-1", "", ""]
atm_stashvar[3888] = ["PHOSPHORUS FROM WEATHERING", "", "g P m-2 yr-1", "", ""]
atm_stashvar[3893] = ["LEAF AREA INDEX (CASA-CNP GLAI)", "", "", "", ""]
atm_stashvar[3895] = ["CARBON FLUX TO WOOD PRODUCTS", "", "g m-2 year-1", "", ""]
atm_stashvar[3896] = ["NITROGEN FLUX TO WOOD PRODUCTS", "", "g m-2 year-1", "", ""]
atm_stashvar[3897] = ["PHOSPHORUS FLUX TO WOOD PRODUCTS", "", "g m-2 year-1", "", ""]
atm_stashvar[3898] = ["WOOD HARVEST CARBON POOL 1", "", "g m-2", "", ""]
atm_stashvar[3899] = ["WOOD HARVEST CARBON POOL 2", "", "g m-2", "", ""]
atm_stashvar[3900] = ["WOOD HARVEST CARBON POOL 3", "", "g m-2", "", ""]
atm_stashvar[3901] = ["WOOD HARVEST NITROGEN POOL 1", "", "g m-2", "", ""]
atm_stashvar[3902] = ["WOOD HARVEST NITROGEN POOL 2", "", "g m-2", "", ""]
atm_stashvar[3903] = ["WOOD HARVEST NITROGEN POOL 3", "", "g m-2", "", ""]
atm_stashvar[3904] = ["WOOD HARVEST PHOSPHORUS POOL 1", "", "g m-2", "", ""]
atm_stashvar[3905] = ["WOOD HARVEST PHOSPHORUS POOL 2", "", "g m-2", "", ""]
atm_stashvar[3906] = ["WOOD HARVEST PHOSPHORUS POOL 3", "", "g m-2", "", ""]
atm_stashvar[3907] = ["WOOD RESPIRATION CARBON FLUX 1", "", "g m-2 yr-1", "", ""]
atm_stashvar[3908] = ["WOOD RESPIRATION CARBON FLUX 2", "", "g m-2 yr-1", "", ""]
atm_stashvar[3909] = ["WOOD RESPIRATION CARBON FLUX 3", "", "g m-2 yr-1", "", ""]
atm_stashvar[3910] = ["WOOD RESPIRATION NITROGEN FLUX 1", "", "g m-2 yr-1", "", ""]
atm_stashvar[3911] = ["WOOD RESPIRATION NITROGEN FLUX 2", "", "g m-2 yr-1", "", ""]
atm_stashvar[3912] = ["WOOD RESPIRATION NITROGEN FLUX 2", "", "g m-2 yr-1", "", ""]
atm_stashvar[3913] = ["WOOD RESPIRATION PHOSPHORUS 1", "", "g m-2 yr-1", "", ""]
atm_stashvar[3914] = ["WOOD RESPIRATION PHOSPHORUS 2", "", "g m-2 yr-1", "", ""]
atm_stashvar[3915] = ["WOOD RESPIRATION PHOSPHORUS 3", "", "g m-2 yr-1", "", ""]
atm_stashvar[3916] = ["THIN RATIO FOR FOREST", "", "", "", ""]
atm_stashvar[3917] = ["NITROGEN NET RELEASE", "", "kg m-2 yr-1", "", ""]
atm_stashvar[3918] = ["NITROGEN LEACHING", "", "kg m-2 yr-1", "", ""]
atm_stashvar[3919] = ["NITROGEN UPTAKE", "", "kg m-2 yr-1", "", ""]
atm_stashvar[3920] = ["NITROGEN LOSS", "", "kg m-2 yr-1", "", ""]

If you have any suggestions for the above metadata feel free to contribute. The units are sometimes unconventional so they will have to be double checked.

@rml599gh
Copy link
Author

Thanks, Tammas, for progressing this.
I think atm_stashvar[3851] is actually a labile carbon pool. I think the previous year surface fraction is atm_stashvar[3835].
Is there a character limit on the name of the variable? I think some would benefit from being expanded. Perhaps something we can work through together.
I agree some of the units look odd. I wouldn't expect the wood flux to be per day so we should check.

@tammasloughran
Copy link
Contributor

Thanks! I've just now corrected the code block above.

@tammasloughran
Copy link
Contributor

WOOD FLUX CARBON (CASA-CNP)

  • is the "(CASA-CNP)" important?
  • not clear to or from... may CARBON FLUX TO WOOD PRODUCTS

THIN RATIO FOR FOREST

  • The input ratio for thinning is 0 = remove all carbon and 1 = remove none. This is really counter intuitive. The output data for this variable might be 1 = all removed and 0 = none. I'll know for sure once I understand the run I've done with thinning enabled.

@tammasloughran
Copy link
Contributor

tammasloughran commented Feb 13, 2024

Checking units of NITROGEN DEPOSITION.

In the UM ACCESS-ESM1.5 version there is the following in atmosphere/boundary_layer/casa_um_inout.F90:

    !call um2cable_lp(nidep,nidep(1:10),annNdep ,soil%isoilm, skip) 
    call um2cable_lp(nifix,nifix(1:10),annNfix ,soil%isoilm, skip)  
    call um2cable_lp(pwea ,pwea(1:10) ,annPwea ,soil%isoilm, skip)  
    call um2cable_lp(pdust,pdust(1:10),annPdust,soil%isoilm, skip)  
                                                                    
    !casaflux%Nmindep = annNdep/365.0      ! gN/m2/day              
    casaflux%Nminfix = annNfix/365.0      ! gN/m2/day               
    casaflux%Pdep    = annPdust/365.0     ! gP/m2/day               
    casaflux%Pwea    = annPwea/365.0      ! gP/m2/day               

I assume this packs variables from the UM and converts the units as needed.
Nmindep is commented out so I assume that this means that the nitrogen deposition in the UM is already in gN/m2/day before it's passed to CABLE. Also, nitrogen fixating is in gN/m2/year in the UM before it's passed to CABLE and is therefore converted to /day here.

So Nitrogen deposition should be gN/m2/day and fixing should be gN/m2/year?

Would make numbers about consistent with Galloway (5e-4 g/m2/day)

@tammasloughran
Copy link
Contributor

And I think the wood flux variables should be per year.

@tammasloughran
Copy link
Contributor

Not sure why the 3917-3920 variables are in kg... I couldn't find anything in the code to suggest they are. So I think they are g/m2/year.

@tammasloughran
Copy link
Contributor

I assume this packs variables from the UM and converts the units as needed. Nmindep is commented out so I assume that this means that the nitrogen deposition in the UM is already in gN/m2/day before it's passed to CABLE. Also, nitrogen fixating is in gN/m2/year in the UM before it's passed to CABLE and is therefore converted to /day here.

So Nitrogen deposition should be gN/m2/day and fixing should be gN/m2/year?

Would make numbers about consistent with Galloway (5e-4 g/m2/day)

The CMOR master_map.csv has this info for nitrogen deposition. There is no other unit conversion besides the tile average, which suggests that it's kg m-2 yr-1

fNdep yes fld_s03i884 fld_s03i317 tileAve(var[0],var[1],1) kg m-2 yr-1

I'm confused.

@tammasloughran
Copy link
Contributor

The CMOR master_map.csv has this info for nitrogen deposition. There is no other unit conversion besides the tile average, which suggests that it's kg m-2 yr-1

The published data on fs38 are in different units again (kg/m2/s) so there must be unit conversion info missing from the master map. Multiplying the cmorized file on fs38 by 100*60*60*24 (->g/m2/day) looks like it gives the right order of magnitude of values. So I think g/m2/day is correct.

@tammasloughran
Copy link
Contributor

I think all of the information in the stashvar codeblock above is correct now. Someone needs to merge this into the umfile_utils module.

@tammasloughran
Copy link
Contributor

I've created a pull request for a workaround #3.

@rml599gh
Copy link
Author

rml599gh commented Jun 6, 2024

To add to Tammas' list above, I believe
atm_stashvar[3883] = ["SOIL ORDER", "", "", "", ""]
atm_stashvar[3887] = ["PHOSPHORUS FROM DUST", "", "g P m-2 yr-1", "", ""]
atm_stashvar[3888] = ["PHOSPHORUS FROM WEATHERING", "", "g P m-2 yr-1", "", ""]

@tammasloughran
Copy link
Contributor

Thanks Rachel. I have added these above and to #3

@MartinDix
Copy link
Contributor

Now being addressed by a new version of the netCDF converter, ACCESS-NRI/um2nc-standalone#24

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants