Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Question about dimension of PFT in FATES

hannah0304

New Member
Hello,
I have a question about the dimension of PFTs in FATES outputs.

After I got the result from the fates run and checked the dimensions of outputs,
I figured that "fates_levelpft = 12".
Does this mean that in fates, the level of PFT is given only up to 12? or is there any way I can modify this so that I can get the result for, say, PFT 14 (warm C4 grass)?

Thank you.
 

afoster

Adrianna Foster
New Member
Hey there,

You can increase the number of PFTs, or you can modify the existing PFTs to chose only the ones of interest. Running with fewer PFTs will be faster!

But actually, in FATES the 12th PFT is a C4 grass. The default PFTs in FATES are:

[1] "broadleaf_evergreen_tropical_tree"
[2] "needleleaf_evergreen_extratrop_tree"
[3] "needleleaf_colddecid_extratrop_tree"
[4] "broadleaf_evergreen_extratrop_tree"
[5] "broadleaf_hydrodecid_tropical_tree"
[6] "broadleaf_colddecid_extratrop_tree"
[7] "broadleaf_evergreen_extratrop_shrub"
[8] "broadleaf_hydrodecid_extratrop_shrub"
[9] "broadleaf_colddecid_extratrop_shrub"
[10] "arctic_c3_grass"
[11] "cool_c3_grass"
[12] "c4_grass"

BUT, in FATES you can fairly easily define your own set of PFTs using the fates parameter file (from the CTSM source code directory it is located in CTSM/src/fates/parameter_files/fates_params_default.cdl). You'll need to convert this .cdl file into a .nc file, which you can do using the command ncgen:

Code:
ncgen -o my_param_file.nc CTSM/src/fates/parameter_files/fates_params_default.cdl

Once you have this .nc file you can make modifications to it using the scripts CTSM/src/fates/tools/FatesPFTIndexSwapper.py and CTSM/src/fates/tools/modify_fates_paramfile.py.

FatesPFTIndexSwapper.py can be used to grab only the PFTs of interest (e.g. if you only wanted a C4 grass in your file):

Code:
FatesPFTIndexSwapper.py --fin my_param_file.nc --fout param_file_justC4.nc --pft-indices 12

This will create a parameter file (param_file_justC4.nc) with ONLY the default FATES C4 grass PFT - the index for which will now be 1 in this parameter file.

You can then modify parameter values for this PFT using modify_fates_paramfile.py, e.g.:

Code:
modify_fates_paramfile.py --fin param_file_justC4.nc --fout param_file_justC4.nc --O --var fates_leaf_vcmax25top --val 70  --PFT 1

If you run with this parameter file (by setting fates_paramfile='/path/to/my/parameter/file.nc' in the user_nl_clm file in your case directory) FATES will ONLY run with the PFTs specified in your parameter file (regardless of what is on the input surface file), with the parameters set up in that parameter file.

In this way, you can create your own parameter file with multiple user-defined PFTs.

Let me know if you have any further questions!
 

afoster

Adrianna Foster
New Member
Correct! FATES has slightly different natural vegetation PFTs (and no crops, yet) than CLM.
 

Chengyun

Chengyun
New Member
你好,


抱歉打扰你。我尝试使用 CLM5-FATES 运行 compset I2000Clm50FatesGs和 res f05_g16 来模拟 1980 年到 2010 年的 GPP 和 2020 年到 2050 年的未来 GPP(SSP585)。这是我对这些步骤的困惑。

(1) 首先创建一个 spin-up case (I2000Clm50Fates_spinup)来评估模型的平衡并改变CLM_ACCELERATED_SPINUP=on, CLM_FORCE_COLDSTART=on。
我的问题是进行这样的实验是否需要将模型旋转 600 多年?在 I2000Clm50FatesGs 中循环 30 次从 1960 年到 1979 年的 spinup 是否足够,那么使用 600 年的 spunup 文件作为初始文件来模拟 1980-2010(I2000) 的 GPP 是否合理?

(2) 然后创建一个从1980年到2010年运行的普通案例 (I2000Clm50Fates) ,将user_nl_clm 中的finidat设置为spin-up case的输出。
这是模拟 1980 年到 2010 年 GPP 的正确方法吗?CLM-FATES 模型没有IHISTClm50Ftates --compset,并且 CO2 是恒定的。我想知道我是否需要改变co2的量来模拟历史GPP?

(3) 当我尝试使用 CLM5-FATES 运行 compset I2000Clm50FatesGs和 res f05_g16 来模拟 2020 年到 2050 年的未来 GPP(SSP585) 时,我不确定如何选择 surfacedata、domain data 和 finiidat。
所以首先,我想使用 ISSP585Clm50BgcCrop compset 构建一个案例ISSP585Clm , ISSP585 compset将提供域、表面和 finidar 数据,其中包含瞬态土地覆盖、CO2、气溶胶和氮沉降、特定年份的大气强迫等。然后我想使用来自 compset ISSP585ClmBgcCrop的输入数据来 compset I2000Clm50FatesGs 来模拟未来的 GPP(SSP585)。

我使用来自ISSP585ClmBgcCrop的输入数据来使用 CLM5-FATES 模型运行 compset I2000Clm50FatesGs 是否合理?
如果有效,我应该注意什么?如果没有,我应该怎么做才能模拟未来的GPP?

任何建议将不胜感激!提前致谢。
 

zpc

zpc
New Member
Hey there,

You can increase the number of PFTs, or you can modify the existing PFTs to chose only the ones of interest. Running with fewer PFTs will be faster!

But actually, in FATES the 12th PFT is a C4 grass. The default PFTs in FATES are:

[1] "broadleaf_evergreen_tropical_tree"
[2] "needleleaf_evergreen_extratrop_tree"
[3] "needleleaf_colddecid_extratrop_tree"
[4] "broadleaf_evergreen_extratrop_tree"
[5] "broadleaf_hydrodecid_tropical_tree"
[6] "broadleaf_colddecid_extratrop_tree"
[7] "broadleaf_evergreen_extratrop_shrub"
[8] "broadleaf_hydrodecid_extratrop_shrub"
[9] "broadleaf_colddecid_extratrop_shrub"
[10] "arctic_c3_grass"
[11] "cool_c3_grass"
[12] "c4_grass"

BUT, in FATES you can fairly easily define your own set of PFTs using the fates parameter file (from the CTSM source code directory it is located in CTSM/src/fates/parameter_files/fates_params_default.cdl). You'll need to convert this .cdl file into a .nc file, which you can do using the command ncgen:

Code:
ncgen -o my_param_file.nc CTSM/src/fates/parameter_files/fates_params_default.cdl

Once you have this .nc file you can make modifications to it using the scripts CTSM/src/fates/tools/FatesPFTIndexSwapper.py and CTSM/src/fates/tools/modify_fates_paramfile.py.

FatesPFTIndexSwapper.py can be used to grab only the PFTs of interest (e.g. if you only wanted a C4 grass in your file):

Code:
FatesPFTIndexSwapper.py --fin my_param_file.nc --fout param_file_justC4.nc --pft-indices 12

This will create a parameter file (param_file_justC4.nc) with ONLY the default FATES C4 grass PFT - the index for which will now be 1 in this parameter file.

You can then modify parameter values for this PFT using modify_fates_paramfile.py, e.g.:

Code:
modify_fates_paramfile.py --fin param_file_justC4.nc --fout param_file_justC4.nc --O --var fates_leaf_vcmax25top --val 70  --PFT 1

If you run with this parameter file (by setting fates_paramfile='/path/to/my/parameter/file.nc' in the user_nl_clm file in your case directory) FATES will ONLY run with the PFTs specified in your parameter file (regardless of what is on the input surface file), with the parameters set up in that parameter file.

In this way, you can create your own parameter file with multiple user-defined PFTs.

Let me know if you have any further questions!
I would like to know if there is a more detailed tutorial on related content and if you can give me a link?Thanks
 
Top