def surface_properties_time_series(self):
'''Widgets for canopy properties'''
self.w_PT = widgets.BoundedFloatText(
value=self.max_PT, min=0, description="Max. alphaPT", width=80)
self.w_LAD = widgets.BoundedFloatText(
value=self.x_LAD, min=0, description="LIDF param.", width=80)
self.w_LAD.visible = False
self.w_leafwidth = widgets.BoundedFloatText(
value=self.leaf_width, min=0.001, description="Leaf width", width=80)
self.w_zsoil = widgets.BoundedFloatText(
value=self.z0soil, min=0, description="soil roughness", width=80)
# Landcover classes and values come from IGBP Land Cover Type Classification
self.w_lc = widgets.Dropdown(
options={
'WATER': 0,
'CONIFER EVERGREEN': 1,
'BROADLEAVED EVERGREEN': 2,
'CONIFER DECIDUOUS': 3,
'BROADLEAVED DECIDUOUS': 4,
'FOREST MIXED': 5,
'SHRUB CLOSED': 6,
'SHRUB OPEN': 7,
'SAVANNA WOODY': 8,
'SAVANNA': 9,
'GRASS': 10,
'WETLAND': 11,
'CROP': 12,
'URBAN': 13,
'CROP MOSAIC': 14,
'SNOW': 15,
'BARREN': 16
},
value=self.landcover,
description="Land Cover Type",
width=200)
lcText = widgets.HTML(value='''Land cover information is used to estimate roughness. <BR>
For shrubs, conifers and broadleaves we use the model of <BR>
Schaudt & Dickinson (2000) Agricultural and Forest Meteorology. <BR>
For crops and grasses we use a fixed ratio of canopy heigh''', width=100)
self.calc_row_options()
self.veg_page = widgets.VBox([widgets.HBox([self.w_PT, self.w_LAD, self.w_leafwidth]),
widgets.HBox([self.w_zsoil, self.w_lc, lcText]),
widgets.HBox([self.w_row, self.w_rowaz])],
background_color='#EEE')
评论列表
文章目录