def __init__(self): model.InVESTModel.__init__(self, label=u'Coastal Blue Carbon Preprocessor', target=preprocessor.execute, validator=preprocessor.validate, localdoc=u'coastal_blue_carbon.html') self.lulc_lookup_uri = inputs.File( args_key=u'lulc_lookup_uri', helptext=(u"A CSV table used to map lulc classes to their values " u"in a raster, as well as to indicate whether or not " u"the lulc class is a coastal blue carbon habitat."), label=u'LULC Lookup Table (CSV)', validator=self.validator) self.add_input(self.lulc_lookup_uri) self.lulc_snapshot_list = inputs.Multi( args_key=u'lulc_snapshot_list', callable_=functools.partial(inputs.File, label="Input"), label=u'Land Use/Land Cover Rasters (GDAL-supported)', link_text=u'Add Another') self.add_input(self.lulc_snapshot_list)
def __init__(self): model.InVESTModel.__init__( self, label='Habitat Risk Assessment Preprocessor', target=hra_preprocessor.execute, validator=hra_preprocessor.validate, localdoc='../documentation/habitat_risk_assessment.html') self.habs_dir = inputs.File( args_key='habitats_dir', helptext=( "Checking this box indicates that habitats should be " "used as a base for overlap with provided stressors. " "If checked, the path to the habitat layers folder " "must be provided."), hideable=True, label='Calculate Risk to Habitats?', validator=self.validator) self.add_input(self.habs_dir) self.species_dir = inputs.File( args_key='species_dir', helptext=( "Checking this box indicates that species should be " "used as a base for overlap with provided stressors. " "If checked, the path to the species layers folder " "must be provided."), hideable=True, label='Calculate Risk to Species?', validator=self.validator) self.add_input(self.species_dir) self.stressor_dir = inputs.Folder( args_key='stressors_dir', helptext='This is the path to the stressors layers folder.', label='Stressors Layers Folder', validator=self.validator) self.add_input(self.stressor_dir) self.cur_lulc_box = inputs.Container( expandable=False, label='Criteria') self.add_input(self.cur_lulc_box) self.help_label = inputs.Label( text=( "(Choose at least 1 criteria for each category below, " "and at least 4 total.)")) self.exp_crit = inputs.Multi( args_key='exposure_crits', callable_=functools.partial(inputs.Text, label="Input Criteria"), label='Exposure', link_text='Add Another') self.cur_lulc_box.add_input(self.exp_crit) self.sens_crit = inputs.Multi( args_key='sensitivity_crits', callable_=functools.partial(inputs.Text, label="Input Criteria"), label='Consequence: Sensitivity', link_text='Add Another') self.cur_lulc_box.add_input(self.sens_crit) self.res_crit = inputs.Multi( args_key='resilience_crits', callable_=functools.partial(inputs.Text, label="Input Criteria"), label='Consequence: Resilience', link_text='Add Another') self.cur_lulc_box.add_input(self.res_crit) self.crit_dir = inputs.File( args_key='criteria_dir', helptext=( "Checking this box indicates that model should use " "criteria from provided shapefiles. Each shapefile in " "the folder directories will need to contain a " "'Rating' attribute to be used for calculations in the " "HRA model. Refer to the HRA User's Guide for " "information about the MANDATORY layout of the " "shapefile directories."), hideable=True, label='Use Spatially Explicit Risk Score in Shapefiles', validator=self.validator) self.add_input(self.crit_dir)
def __init__(self): model.InVESTModel.__init__( self, label='Coastal Blue Carbon', target=coastal_blue_carbon.execute, validator=coastal_blue_carbon.validate, localdoc='coastal_blue_carbon.html') self.lulc_lookup_uri = inputs.File( args_key='lulc_lookup_uri', helptext=( "A CSV table used to map lulc classes to their values " "in a raster and to indicate whether or not the lulc " "class is a coastal blue carbon habitat."), label='LULC Lookup Table (CSV)', validator=self.validator) self.add_input(self.lulc_lookup_uri) self.lulc_transition_matrix_uri = inputs.File( args_key='lulc_transition_matrix_uri', helptext=( "Generated by the preprocessor. This file must be " "edited before it can be used by the main model. The " "left-most column represents the source lulc class, " "and the top row represents the destination lulc " "class."), label='LULC Transition Effect of Carbon Table (CSV)', validator=self.validator) self.add_input(self.lulc_transition_matrix_uri) self.carbon_pool_initial_uri = inputs.File( args_key='carbon_pool_initial_uri', helptext=( "The provided CSV table contains information related " "to the initial conditions of the carbon stock within " "each of the three pools of a habitat. Biomass " "includes carbon stored above and below ground. All " "non-coastal blue carbon habitat lulc classes are " "assumed to contain no carbon. The values for " "‘biomass’, ‘soil’, and ‘litter’ should be given in " "terms of Megatonnes CO2e/ha."), label='Carbon Pool Initial Variables Table (CSV)', validator=self.validator) self.add_input(self.carbon_pool_initial_uri) self.carbon_pool_transient_uri = inputs.File( args_key='carbon_pool_transient_uri', helptext=( "The provided CSV table contains information related " "to the transition of carbon into and out of coastal " "blue carbon pools. All non-coastal blue carbon " "habitat lulc classes are assumed to neither sequester " "nor emit carbon as a result of change. The " "‘yearly_accumulation’ values should be given in terms " "of Megatonnes of CO2e/ha-yr. The ‘half-life’ values " "must be given in terms of years. The ‘disturbance’ " "values must be given as a decimal percentage of stock " "distrubed given a transition occurs away from a lulc- " "class."), label='Carbon Pool Transient Variables Table (CSV)', validator=self.validator) self.add_input(self.carbon_pool_transient_uri) self.lulc_baseline_map_uri = inputs.File( args_key='lulc_baseline_map_uri', helptext=( "A GDAL-supported raster representing the baseline " "landscape/seascape."), label='Baseline LULC Raster (GDAL-supported)', validator=self.validator) self.add_input(self.lulc_baseline_map_uri) self.lulc_baseline_year = inputs.Text( args_key='lulc_baseline_year', label='Year of baseline LULC raster', validator=self.validator) self.add_input(self.lulc_baseline_year) self.lulc_transition_maps_list = inputs.Multi( args_key='lulc_transition_maps_list', callable_=functools.partial(inputs.File, label="Input"), label='LULC Transition ("Snapshot") Rasters (GDAL-supported)', link_text='Add Another') self.add_input(self.lulc_transition_maps_list) self.lulc_transition_years_list = inputs.Multi( args_key='lulc_transition_years_list', callable_=functools.partial(inputs.Text, label="Input"), label='LULC Transition ("Snapshot") Years', link_text='Add Another') self.add_input(self.lulc_transition_years_list) self.analysis_year = inputs.Text( args_key='analysis_year', helptext=( "An analysis year extends the transient analysis " "beyond the transition years."), label='Analysis Year (Optional)', validator=self.validator) self.add_input(self.analysis_year) self.do_economic_analysis = inputs.Container( args_key='do_economic_analysis', expandable=True, expanded=True, label='Calculate Net Present Value of Sequestered Carbon') self.add_input(self.do_economic_analysis) self.do_price_table = inputs.Checkbox( args_key='do_price_table', helptext='', label='Use Price Table') self.do_economic_analysis.add_input(self.do_price_table) self.price = inputs.Text( args_key='price', helptext='The price per Megatonne CO2e at the base year.', label='Price', validator=self.validator) self.do_economic_analysis.add_input(self.price) self.inflation_rate = inputs.Text( args_key='inflation_rate', helptext="Annual change in the price per unit of carbon", label='Interest Rate (%)', validator=self.validator) self.do_economic_analysis.add_input(self.inflation_rate) self.price_table_uri = inputs.File( args_key='price_table_uri', helptext=( "Can be used in place of price and interest rate " "inputs. The provided CSV table contains the price " "per Megatonne CO2e sequestered for a given year, for " "all years from the original snapshot to the analysis " "year, if provided."), interactive=False, label='Price Table (CSV)', validator=self.validator) self.do_economic_analysis.add_input(self.price_table_uri) self.discount_rate = inputs.Text( args_key='discount_rate', helptext=( "The discount rate on future valuations of " "sequestered carbon, compounded yearly."), label='Discount Rate (%)', validator=self.validator) self.do_economic_analysis.add_input(self.discount_rate) # Set interactivity, requirement as input sufficiency changes self.do_price_table.sufficiency_changed.connect( self._price_table_sufficiency_changed)