# component. Seedlings of shrubs and trees are determined by their age # within the constructor as well. Hence the random vegetation type # field is called for types GRASS, SHRUB, TREE and BARE only. -SN 10Mar15 grid['cell']['VegetationType'] = np.arange(0, 6) # Create radiation, soil moisture and Vegetation objects PD_D = PrecipitationDistribution(mean_storm = data['mean_storm_dry'], \ mean_interstorm = data['mean_interstorm_dry'], mean_storm_depth = data['mean_storm_depth_dry']) PD_W = PrecipitationDistribution(mean_storm = data['mean_storm_wet'], \ mean_interstorm = data['mean_interstorm_wet'], mean_storm_depth = data['mean_storm_depth_wet']) Rad = Radiation(grid) PET_Tree = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_tree'], DeltaD = data['DeltaD'] ) PET_Shrub = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_shrub'], DeltaD = data['DeltaD'] ) PET_Grass = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_grass'], DeltaD = data['DeltaD'] ) SM = SoilMoisture(grid, data) # Soil Moisture object VEG = Vegetation(grid, data) # Vegetation object vegca = VegCA(grid1, data) # Cellular automaton object ########## n = data['n_short'] # Defining number of storms the model will be run ##########
## Create input dictionary from text file InputFile = 'Inputs_Vegetation_CA.txt' data = txt_data_dict( InputFile ) # Create dictionary that holds the inputs # Create rainfall, radiation, potential evapotranspiration, # soil moisture and Vegetation objects # Assign parameters to the components PD_D = PrecipitationDistribution(mean_storm = data['mean_storm_dry'], \ mean_interstorm = data['mean_interstorm_dry'], mean_storm_depth = data['mean_storm_depth_dry']) PD_W = PrecipitationDistribution(mean_storm = data['mean_storm_wet'], \ mean_interstorm = data['mean_interstorm_wet'], mean_storm_depth = data['mean_storm_depth_wet']) Rad = Radiation( grid ) PET_Tree = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_tree'], DeltaD = data['DeltaD'] ) PET_Shrub = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_shrub'], DeltaD = data['DeltaD'] ) PET_Grass = PotentialEvapotranspiration( grid1, method = data['PET_method'], \ MeanTmaxF = data['MeanTmaxF_grass'], DeltaD = data['DeltaD'] ) SM = SoilMoisture( grid, data ) # Soil Moisture object VEG = Vegetation( grid, data ) # Vegetation object vegca = VegCA( grid1, data ) # Cellular automaton object ########## n = 6600 # Defining number of storms the model will be run ##########
# Sai Nudurupati and Erkan Istanbulluoglu- 16May2014 : # Example to use potential_evapotranspiration_field.py #import landlab from landlab import RasterModelGrid from landlab.components.radiation import Radiation from landlab.components.pet import PotentialEvapotranspiration import numpy as np import matplotlib.pyplot as plt from landlab.plot.imshow import imshow_grid grid = RasterModelGrid( 100, 100, 20. ) elevation = np.random.rand(grid.number_of_nodes) * 1000 grid.add_zeros('node','Elevation',units = 'm') grid['node']['Elevation'] = elevation rad = Radiation( grid ) PET = PotentialEvapotranspiration( grid ) current_time = 0.56 rad.update( current_time ) PET.update( ConstantPotentialEvapotranspiration = 10.0 ) plt.figure(0) imshow_grid(grid,'RadiationFactor', values_at = 'cell', grid_units = ('m','m')) plt.figure(1) imshow_grid(grid,'PotentialEvapotranspiration', values_at = 'cell', grid_units = ('m','m')) plt.savefig('PET_test') plt.show()