Changing landuse_timeseries file

Status
Not open for further replies.

Andrie

Andrie
New Member
Dear Team,

I want to run CESM2.1.2 (with CLM5.0) with additional forest cover in some regions. My aim is to use the forest cover of 2015 as a baseline and then afforest transiently until the end of 2100 under an SSP forcing.

While I understand how I can adjust the PCT_CROP, PCT_NATVEG and PCT_NAT_PFT variables in a surfdata file, I do not yet understand the structure of the landuse_timeseries files and thus have some questions how to implement changes in e.g. landuse.timeseries_0.9x1.25_SSP2-4.5_78pfts_CMIP6_simyr1850-2100_c190102.nc.
  1. The landuse_timeseries file has a time dimension but only 1850-1950 are given as years and after that all times are called 0. Why does the time variable not continue with 1950, 1951 etc? If I want to implement my changes from 2015 onwards would that then be time index 166 onwards?
  2. I saw that there are additional variables called PCT_NAT_PFT_MAX and PCT_CFT_MAX. Do I need to adjust these as well if I change PCT_NAT_PFT etc or is that done automatically?
  3. Since I want to implement only forest changes and - to be decided - keep land use either constant or zero (i.e., no harvest, irrigation). How would I do that? Would I fill the arrays for all HARVEST_* and the GRAZING variable with zeros? I also do not seem to be able to see an irrigation variable or is that maybe not in this file?

I very much appreciate your help! Wishing a good day!
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
Maybe you have a corrupt file. This is what I get when I do an ncdump -v time on that file:

time = 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860,
1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872,
1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884,
1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896,
1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908,
1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932,
1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944,
1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968,
1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040,
2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052,
2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064,
2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100 ;

Yes, you would probably need to adjust PCT_NAT_PFT_MAX and PCT_CFT_MAX. Those are the maximum values of that PFT or CFT in each gridcell in the entire timeseries.
I believe you can turn off harvest and irrigation by specifying namelist variables in your user_nl_clm:
do_harvest = .false.
irrigate = .false.
 
Vote Upvote 0 Downvote

Andrie

Andrie
New Member
Sorry, I would have one follow-up question about landuse_timeseries files in comparison to surfdata files:

In the surfdata files, there is a variable called PCT_NATVEG which when combined with PCT_NAT_PFT can help to calculate the percentage of natural vegetation of the entire gridcell rather than the landunit.

Now for the landuse_timeseries file, I can see a similar variable for crop (PCT_CFT) but I do not see an equivalent to the PCT_NATVEG variable. How would I then calculate the percentage of natural vegetation per gridcell?

P.S: Maybe I made a mistake to start with when calculating the percentage of natural vegetation per gridcell based on surfdata variables, so here is my code below:

file_map = xr.open_dataset("surfdata_0.9x1.25_hist_78pfts_CMIP6_simyr2014_c200512.nc")
crop_natlu = file_map['PCT_NAT_PFT'].values # percent plant functional type on the natural veg landunit (% of landunit) (nat_pft, lsmlat, lsmon)
crop_nat = file_map['PCT_NATVEG'].values # total percent natural vegetation landunit (lsmlat, lslon)

# Create an empty array for storing global natural PFT data (same shape as crop_natlu)
crop_natlu_global = np.zeros_like(crop_natlu)

# Loop through each natural vegetation PFT and adjust its fraction to represent percentage of entire grid cell
for p in range(len(crop_natlu_global[:,1,1])):
crop_natlu_global[p, :, :] = 100. * ((crop_nat[:, :] / 100.) * (crop_natlu[p, :, :] / 100.))
 
Vote Upvote 0 Downvote

slevis

Moderator
Staff member
Think of the total grid cell as
PCT_NATVEG + PCT_CROP + PCT_WETLAND + PCT_LAKE + PCT_GLACIER + PCT_URBAN
(+ PCT_OCEAN in ctsm5.2 and newer files)

From this you should be able to derive PCT_NATVEG in landuse files knowing that PCT_CROP changes over time.
(In ctsm5.2 and newer files, the PCT_LAKE and PCT_URBAN may change over time, as well.
 
Vote Upvote 0 Downvote

Andrie

Andrie
New Member
Thanks so much for your help, that makes a lot of sense.

Hopefully some of the last questions about this:
  • I could not figure out how I check the ctsm version (so sorry for this basic question). Do I have to check this in the terminal or in the files?
  • Related to this, how could I check if e.g. PCT_URBAN is changing over time since this variable is not in the landuse_timeseries files and thus, I am reading it into my python script from a surfdata file from year 2000.
  • Do I need to change the input_pftdata_filename in the landuse_timeseries file? It seems to point to some file on /glade/ so I assume that it is the filepath to the file it is originally based on?

I really appreciate all your help!
Best wishes
 
Vote Upvote 0 Downvote

oleson

Keith Oleson
CSEG and Liaisons
Staff member
1. You can find instructions here: Information to include in help requests
2. Since PCT_URBAN is not in the original landuse timeseries file (landuse.timeseries_0.9x1.25_SSP2-4.5_78pfts_CMIP6_simyr1850-2100_c190102.nc) then it won't be changing over time.
3. Yes, it contains the file names that the landuse timeseries is based on. I don't see any evidence that the model reads in this variable so it must just be informational, so you shouldn't need to change it.
 
Vote Upvote 0 Downvote

CGL

CGL
Member
I'm curious if the landuse_timeseries data in SSP requires a certain button to be set up to be used as input data. Although I see the corresponding path setting on the lnd_in file, I can't find the landuse_timeseries data under that path after I create the case for SSP.
 
Vote Upvote 0 Downvote

CGL

CGL
Member
In the lnd_in file, the path is /data/sxh/sugon/inputdata/lnd/clm2/surfdata_map/release-clm5.0.18/landuse.timeseries_0.9x1.25_SSP1-2.6_78pfts_CMIP6_simyr1850-2100_c190214.nc. But there is obviously no such file under this path. So why is there no corresponding file to download when I create a case for SSP126? Or is it a problem with creating the case and I need to download it manually myself?
 
Vote Upvote 0 Downvote

oleson

Keith Oleson
CSEG and Liaisons
Staff member
What version of cesm/ctsm are you using?
What is your create_newcase command?
What is the output of check_input_data in your case directory?
 
Vote Upvote 0 Downvote

CGL

CGL
Member
Hi! oleson. The CESM version is 2.1.3. The create_newcase command is ./create_newcase --case ./test2 --compset BSSP126 --res f09_f09_mg17 --machine MY. I already run the preview_run and preview_namelist, I don't see the Check_input in my folder.
 
Vote Upvote 0 Downvote

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I can't check to see what I get with release-cesm2.1.3 because it is no longer valid for our machine. But there is a check_input_data in every one of my cases that I had run previously with release-cesm2.1.3
The supported release version is now release-cesm2.1.5. When I try your command with release-cesm2.1.5 I get the error:

ERROR: grid alias f09_f09_mg17 not valid for compset SSP126_CAM60_CLM50%BGC-CROP_CICE_POP2%ECO%ABIO-DIC_MOSART_CISM2%NOEVOLVE_WW3_BGC%BDRD

This does create a case directory:

./create_newcase --case test2 --compset BSSP126 --res f09_g17 --run-unsupported

There is a check_input_data file in that directory.
 
  • Like
Reactions: CGL
Vote Upvote 0 Downvote

CGL

CGL
Member
sorry for the wrong resolution set. The BSSP126 don't support f09_f09_mg17. Do you have the landuse timeseries file in your input data folder after create the SSP case?
 
Vote Upvote 0 Downvote
Status
Not open for further replies.
Back
Top