Ok I’ve determined the issue for Andrew Brown’s regional nesting suite over the Tasman Sea is caused by missing values of canopy height for Macquarie and Campbell Islands.
There are no values (NaNs) for pseudo levels 1 and 2, but there are values for levels 3,4, and 5.
This suggests that the problem could be fixed within the canopy height calculation itself, rather than fixing these issues post-reconfiguration.
We believe it’s a similar issue that afflicted Chris Chambers’ shifted AUS2200 suite (which started this thread) - I’m just waiting for some extra scratch space on gadi to regenerate those bad ancillaries.
Canopy heights are computed within a rose/cycl task in a reconfiguration suite, e.g. task app/ancil_canopy_heights in suite u-dg767
The python code used to compute canopy height is installed at ~/cylc-run/u-dg767/src/contrib/Apps/CanopyHeights/ancil_canopy_heights.py
From the source code comments in ancil_canopy_heights.py
"""
Derive the canopy heights from the leaf area index by the following relation::
Canopy height = height factor * LAI^(2/3)
Following this, override all tree PFTS using a trees dataset by the following
method:
- Regrid the tree source dataset to the target grid.
- Make this field consistent with the landsea mask of the LAI by performing an
indexed based nearest neighbour search, constraining y to a distance of 50km
(100km latitude band).
- Override tree fields we calculated from the above relation with those derived
from this tree source.
The canopy heights returned represents the maximum value across the year
assigned to each month, due to the current basic handling of seasonal
variability.
"""
The python executable is called with the following command:
python_env \${CONTRIB_PATH}/Apps/CanopyHeights/ancil_canopy_heights.py ${lai} \
--canopy-height-factors ${canopy_height_factors} --trees-dataset ${trees} \
-o ${TMPDIR}/canopy_heights.nc --ants-config ${ANCIL_CONFIG} &&
python_env ancil_2anc.py \
${lai} ${TMPDIR}/canopy_heights.nc -o ${output}
where
lai=/home/548/pag548/cylc-run/u-dg767/share/data/ancils/Gippsland/era5/lai.nc
canopy_height_factors=/g/data/access/TIDS/UM/ancil/data/transforms/canopy_height_factors_gl9.json
trees=/home/548/pag548/cylc-run/u-dg767/share/data/etc/ancil_master_ants/vegetation/
canopy/simard/v1/Simard_Pinto_3DGlobalVeg_JGR.nc
The resulting output netCDF file is than added to the ancilary file qrparm.veg.func
.
See here for more information :
Examining the canopy height fields in the Tasman Sea
How I found the issue:
Checking UM ancillaries notebook
Before I debug this at the python source level, has anyone examined this issue before?
These results may be sensible, in that Macquarie Island is essentially tree-less. But we’d have to replace NaN with some value (zero?).
@AndyHoggANU and @mlipson - does this fall into the kinds of work you are doing re: creating CABLE ancillaries for Regional nesting suites?
I’ll also circulate this to people at BoM.
Just thought I’d check that I’m not duplicating exisiting work before I dive in.