Beispiel #1
0
def go():
    from opus_gui.results_manager.run.indicator_framework.representations.indicator import Indicator
    import os

    indicators = {
        'zone_jobs':
        Indicator(dataset_name='zone',
                  attribute='urbansim.zone.number_of_jobs')
    }

    from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration
    from opus_gui.results_manager.run.indicator_framework.maker.source_data import SourceData

    project_name = 'eugene_gridcell'
    run_name1 = 'base_year_data'
    years = [1980, 1980]

    source_data = SourceData(
        cache_directory=paths.get_opus_data_path_path(project_name, run_name1),
        #comparison_cache_directory = '',
        years=years,
        dataset_pool_configuration=DatasetPoolConfiguration(
            package_order=['urbansim', 'opus_core'], ),
        project_name=project_name)

    ################################################################
    #COMPUTE indicators
    ################################################################
    from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker

    maker = Maker(project_name)
    computed_indicators = maker.create_batch(indicators=indicators,
                                             source_data=source_data)

    ############################################
    #VISUALIZE the resulting computed indicators
    ############################################
    from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory

    visualizer = VisualizationFactory()
    visualizations = []

    maps = [('zone_jobs', 'matplotlib_chart')]

    for item in maps:
        vistype = 'mapnik_map'  # default to map
        if type(item) == type(()): item, vistype = item
        print "Generating indicator %s" % item

        visualizations += visualizer.visualize(
            indicators_to_visualize=[
                item
            ],  # override default indicators to visualize (all)
            computed_indicators=computed_indicators,
            visualization_type=vistype,
            name=item)

    print "Done generating indicators."

    return dict((v.name, v.get_file_path()) for v in visualizations)
Beispiel #2
0
print "creating maker (to compute indicators) ..."

maker = Maker( project_name )
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            source_data = result_template)

print "... done."

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
#from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

# View an indicator as a Map
#maps = ['zone_population',
#        'gridcell_population']
#visualizations += visualizer.visualize(
#    indicators_to_visualize = maps, #override default indicators to visualize (all)
#    computed_indicators = computed_indicators,
#    visualization_type = 'mapnik_map',
#    name = 'my_maps'
#    )

# View an indicator as a matplotlib Chart

#charts = ['gridcell_population']
Beispiel #3
0
# for a given result template
from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker

print "creating maker (to compute indicators) ..."

maker = Maker( project_name )
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            source_data = result_template)

print "... done."

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

# View an indicator as a Map
maps = ['population']
visualizations += visualizer.visualize(
    indicators_to_visualize = maps, #override default indicators to visualize (all)
    computed_indicators = computed_indicators,
    visualization_type = 'mapnik_map',
    name = 'population'
    )

print 'Finished with creating indicators'
Beispiel #4
0
print "creating maker (to compute indicators) ..."

maker = Maker( project_name )
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            source_data = source_data)
print "... done."

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
# from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

# View an indicator as a Map
visualizations += visualizer.visualize(
    indicators_to_visualize = ['population'],
    computed_indicators = computed_indicators,
    visualization_type = 'mapnik_map',
    #name = 'population'
    )

visualizations += visualizer.visualize(
    indicators_to_visualize = ['income_per_person'],
    computed_indicators = computed_indicators,
    visualization_type = 'mapnik_map',
    #name = 'population'
    def _visualize(self, args, cache_directory = None):

        self.visualizations = []
        indicators_to_visualize = {}
        interface = IndicatorFrameworkInterface(self.project)
        not_visualized = []
        
        #get common years
        years = set([])
        for indicator in self.indicators:
            years |= set(indicator['years'])

        source_data_objs = {}
        for indicator in self.indicators:
            indicator_name = indicator['indicator_name']
            source_data_name = indicator['source_data_name']
            dataset_name = indicator['dataset_name']
            
            if (self.indicator_type == 'mapnik_map' or self.indicator_type == 'mapnik_animated_map') and dataset_name not in self.spatial_datasets:
                not_visualized.append(indicator)
                continue

            if source_data_name not in source_data_objs:
                source_data = interface.get_source_data(
                                             source_data_name = source_data_name,
                                             years = list(years),
                                             cache_directory = cache_directory
                )
                source_data_objs[source_data_name] = source_data
            else:
                source_data = source_data_objs[source_data_name]

            indicator = interface.get_indicator(
                                         indicator_name = indicator_name,
                                         dataset_name = dataset_name)

            computed_indicator = interface.get_computed_indicator(indicator = indicator,
                                                                  source_data = source_data,
                                                                  dataset_name = dataset_name)
            computed_indicator.gui_indicator_name = indicator_name
            #####################
            #hack to get plausible primary keys...
            cache_directory = source_data.cache_directory
            _storage_location = os.path.join(cache_directory,
                                             'indicators',
                                             '_stored_data',
                                             repr(source_data.years[0]))

            storage = StorageFactory().get_storage(
                           type = 'flt_storage',
                           storage_location = _storage_location)
            cols = storage.get_column_names(
                        table_name = dataset_name)

            primary_keys = [col for col in cols if col.find('_id') != -1]
            computed_indicator.primary_keys = primary_keys
            ##################

            name = computed_indicator.get_file_name(
                suppress_extension_addition = True)

            indicators_to_visualize[name] = computed_indicator

        viz_args = {}

        if self.indicator_type == 'mapnik_map':
            viz_type = self.indicator_type
        elif self.indicator_type == 'mapnik_animated_map':
            viz_type = self.indicator_type
        elif self.indicator_type == 'matplotlib_chart':
            viz_type = self.indicator_type
        elif self.indicator_type == 'tab':
            viz_type = 'table'
            if 'output_style' not in viz_args:
                viz_args['output_style'] = Table.ALL
            viz_args['output_type'] = 'tab'
        elif self.indicator_type == 'table_esri':
            viz_type = 'table'
            if 'output_style' not in viz_args:
                viz_args['output_style'] = Table.ALL
            viz_args['output_type'] = 'esri'
        elif self.indicator_type == 'table_per_year':
            viz_type = 'table'
            if 'output_style' not in viz_args:
                viz_args['output_style'] = Table.PER_YEAR
            viz_args['output_type'] = 'tab'
        elif self.indicator_type == 'table_per_attribute':
            viz_type = 'table'
            if 'output_style' not in viz_args:
                viz_args['output_style'] = Table.PER_ATTRIBUTE
            viz_args['output_type'] = 'tab'

        viz_args.update(self.kwargs)
        viz_args.update(args)

#        try:
#            import pydevd;pydevd.settrace()
#        except:
#            pass

        viz_factory = VisualizationFactory()
        self.visualizations = viz_factory.visualize(
                                  indicators_to_visualize = indicators_to_visualize.keys(),
                                  computed_indicators = indicators_to_visualize,
                                  visualization_type = viz_type, **viz_args)

        if self.visualizations is None:
            self.visualizations = []

        return not_visualized
def go():
    from opus_gui.results_manager.run.indicator_framework.representations.indicator import Indicator
    import os
    
    indicators = {
        'zone_jobs':Indicator(
           dataset_name = 'zone',
           attribute = 'urbansim.zone.number_of_jobs')          
    }
    
    from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration
    from opus_gui.results_manager.run.indicator_framework.maker.source_data import SourceData
    
    project_name = 'eugene_gridcell'
    run_name1 = 'base_year_data'
    years = [1980, 1980]
    
    source_data = SourceData(
       cache_directory = paths.get_opus_data_path_path(project_name,run_name1),
       #comparison_cache_directory = '',
       years = years,
       dataset_pool_configuration = DatasetPoolConfiguration(
             package_order=['urbansim','opus_core'],
             ),
       project_name = project_name
    )
    
    ################################################################
    #COMPUTE indicators
    ################################################################
    from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker
    
    maker = Maker(project_name)
    computed_indicators = maker.create_batch(
                                indicators = indicators, 
                                source_data = source_data)
    
    ############################################
    #VISUALIZE the resulting computed indicators
    ############################################
    from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
    
    visualizer = VisualizationFactory()
    visualizations = []
    
    maps = [('zone_jobs','matplotlib_chart')]
    
    for item in maps:
        vistype = 'mapnik_map' # default to map
        if type(item) == type(()): item, vistype = item
        print "Generating indicator %s" % item
        
        visualizations += visualizer.visualize(
            indicators_to_visualize = [item], # override default indicators to visualize (all)
            computed_indicators = computed_indicators,
            visualization_type = vistype,
            name = item)
    
    print "Done generating indicators."

    return dict((v.name,v.get_file_path()) for v in visualizations)
Beispiel #7
0
print "creating maker (to compute indicators) ..."

maker = Maker( project_name )
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            source_data = result_template)

print "... done."

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
#from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

for output_type in types:
    visualizations += visualizer.visualize(
        indicators_to_visualize = ['faz__autogenvar0'],
        computed_indicators = computed_indicators,
        visualization_type = 'table',
        output_type = output_type,
        name = 'faz__autogenvar0',
        )
    
for output_type in types:
    visualizations += visualizer.visualize(
        indicators_to_visualize = ['faz__autogenvar2'],
        computed_indicators = computed_indicators,
Beispiel #8
0
def main():
    from opus_gui.results_manager.run.indicator_framework.representations.indicator import Indicator

    indicators = {
        'zone_population':
        Indicator(dataset_name='zone', attribute='urbansim.zone.population'),
        'gridcell_population':
        Indicator(dataset_name='gridcell',
                  attribute='urbansim.gridcell.population'),
        'zone_industrial_sqft':
        Indicator(dataset_name='zone',
                  attribute='urbansim.zone.industrial_sqft'),
        'gridcell_number_of_jobs':
        Indicator(dataset_name='gridcell',
                  attribute='urbansim.gridcell.number_of_jobs',
                  name='jobs'),
        'zone_number_of_jobs':
        Indicator(dataset_name='zone',
                  attribute='urbansim.gridcell.number_of_jobs',
                  name='zone_jobs'),

        #Expression example (comparison to baseyear)
        'large_area_population_change':
        Indicator(
            dataset_name='large_area',
            name='de_population_change',
            attribute=
            'psrc.large_area.de_population_DDDD - psrc.large_area.de_population_2000',
        ),

        #example using regional-level aggregators
        'alldata_home_based_jobs':
        Indicator(
            attribute=
            'alldata.aggregate_all(urbansim.zone.number_of_home_based_jobs)',
            dataset_name='alldata',
            name='number_of_home_based_jobs'),
    }

    #################################################################
    #DEFINE data source
    #################################################################
    # define any number of cache directories and/or years
    # over which the indicators are computed
    from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration
    from opus_gui.results_manager.run.indicator_framework.maker.source_data import SourceData

    result_template = SourceData(
        cache_directory=r'D:\urbansim_cache\run_1090.2006_11_14_12_12',
        comparison_cache_directory=
        r'D:\urbansim_cache\run_1091.2006_11_14_12_12',
        years=[2000, 2010],
        dataset_pool_configuration=DatasetPoolConfiguration(
            package_order=['urbansim', 'opus_core'], ),
        name='run_1090')

    ################################################################
    #COMPUTE indicators
    ################################################################
    # setup an indicator Maker that will compute a set of indicators
    # for a given result template
    from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker

    maker = Maker()
    computed_indicators = maker.create_batch(indicators=indicators,
                                             result_template=result_template)

    ############################################
    #VISUALIZE the resulting computed indicators
    ############################################
    from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
    from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

    visualizer = VisualizationFactory()
    visualizations = []

    # View an indicator as a Map
    maps = ['zone_population', 'gridcell_population']
    visualizations += visualizer.visualize(
        indicators_to_visualize=
        maps,  #override default indicators to visualize (all)
        computed_indicators=computed_indicators,
        visualization_type='mapnik_map',
        name='my_maps')

    # View an indicator as a matplotlib Chart

    charts = ['gridcell_population']
    visualizations += visualizer.visualize(
        indicators_to_visualize=charts,
        computed_indicators=computed_indicators,
        visualization_type='matplotlib_chart',
        years=[2010],  #override default years to visualize (all)
        name='charts')

    # Write an indicator as a Table

    tables = [
        'zone_industrial_sqft', 'large_area_population_change',
        'alldata_home_based_jobs'
    ]
    for output_type in ['tab', 'cvs', 'dbf']:
        visualizations += visualizer.visualize(
            indicators_to_visualize=tables,
            computed_indicators=computed_indicators,
            visualization_type='table',
            output_type=output_type,
            name='tables',
        )

    # Write a set of indicators sharing a dataset as a Dataset Table

    indicators_in_dataset_table = ['zone_population', 'zone_industrial_sqft']
    visualizations += visualizer.visualize(
        indicators_to_visualize=indicators_in_dataset_table,
        computed_indicators=computed_indicators,
        visualization_type='dataset_table',
        output_type='csv',
        exclude_condition=
        'urbansim.zone.population<100',  #this accepts any opus expression
        name='dataset_table',
    )

    ################################################################
    #Generate a REPORT with the visualizations
    ################################################################
    from opus_gui.results_manager.run.indicator_framework.reporter.report_factory import ReportFactory

    reporter = ReportFactory()
    reporter.generate_report(visualized_indicators=visualized_indicators,
                             report_type='basic',
                             open_immediately=True,
                             storage_location='c:/my_reports')
Beispiel #9
0
print "creating maker (to compute indicators) ..."

maker = Maker( project_name )
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            source_data = result_template)

print "... done."

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
#from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

#try: # tnicolai :for debugging
#    import pydevd
#    pydevd.settrace()
#except: pass

for output_type in types:
    visualizations += visualizer.visualize(
        indicators_to_visualize = ['alldata__autogenvar2'],
        computed_indicators = computed_indicators,
        visualization_type = 'table',
        output_type = output_type,
        name = 'alldata__autogenvar2',
        )
Beispiel #10
0
# setup an indicator Maker that will compute a set of indicators
# for a given result template
from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker

maker = Maker()
computed_indicators = maker.create_batch(
                            indicators = indicators, 
                            result_template = result_template)

############################################
#VISUALIZE the resulting computed indicators
############################################
from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration

visualizer = VisualizationFactory()
visualizations = []

# View an indicator as a Map
maps = ['zone_population',
        'gridcell_population']
visualizations += visualizer.visualize(
    indicators_to_visualize = maps, #override default indicators to visualize (all)
    computed_indicators = computed_indicators,
    visualization_type = 'mapnik_map',
    name = 'my_maps'
    )

# View an indicator as a matplotlib Chart

charts = ['gridcell_population']
def main():
    from opus_gui.results_manager.run.indicator_framework.representations.indicator import Indicator
    
    indicators = {
       'zone_population':Indicator( 
           dataset_name = 'zone',
           attribute = 'urbansim.zone.population'),   
    
       'gridcell_population':Indicator(
           dataset_name = 'gridcell',
           attribute = 'urbansim.gridcell.population'),  
       
       'zone_industrial_sqft':Indicator(
           dataset_name = 'zone',
           attribute = 'urbansim.zone.industrial_sqft'),  
                  
       'gridcell_number_of_jobs':Indicator(
           dataset_name = 'gridcell',
           attribute = 'urbansim.gridcell.number_of_jobs', 
           name = 'jobs'),
    
       'zone_number_of_jobs':Indicator(
           dataset_name = 'zone',
           attribute = 'urbansim.gridcell.number_of_jobs', 
           name = 'zone_jobs'),
                  
       #Expression example (comparison to baseyear)
       'large_area_population_change':Indicator(
           dataset_name = 'large_area',
           name = 'de_population_change',
           attribute = 'psrc.large_area.de_population_DDDD - psrc.large_area.de_population_2000',
       ),
    
       #example using regional-level aggregators
       'alldata_home_based_jobs':Indicator(
           attribute = 'alldata.aggregate_all(urbansim.zone.number_of_home_based_jobs)',
           dataset_name = 'alldata',
           name =  'number_of_home_based_jobs'),              
    }
    
    
    #################################################################
    #DEFINE data source
    #################################################################
    # define any number of cache directories and/or years 
    # over which the indicators are computed
    from opus_core.configurations.dataset_pool_configuration import DatasetPoolConfiguration
    from opus_gui.results_manager.run.indicator_framework.maker.source_data import SourceData
    
    result_template = SourceData(
       cache_directory = r'D:\urbansim_cache\run_1090.2006_11_14_12_12',
       comparison_cache_directory = r'D:\urbansim_cache\run_1091.2006_11_14_12_12',
       years = [2000, 2010],
       dataset_pool_configuration = DatasetPoolConfiguration(
             package_order=['urbansim','opus_core'],
             ),
       name = 'run_1090'
    )
    
    ################################################################
    #COMPUTE indicators
    ################################################################
    # setup an indicator Maker that will compute a set of indicators
    # for a given result template
    from opus_gui.results_manager.run.indicator_framework.maker.maker import Maker
    
    maker = Maker()
    computed_indicators = maker.create_batch(
                                indicators = indicators, 
                                result_template = result_template)
    
    ############################################
    #VISUALIZE the resulting computed indicators
    ############################################
    from opus_gui.results_manager.run.indicator_framework.visualizer.visualization_factory import VisualizationFactory
    from opus_core.database_management.configurations.database_configuration import DatabaseConfiguration
    
    visualizer = VisualizationFactory()
    visualizations = []
    
    # View an indicator as a Map
    maps = ['zone_population',
            'gridcell_population']
    visualizations += visualizer.visualize(
        indicators_to_visualize = maps, #override default indicators to visualize (all)
        computed_indicators = computed_indicators,
        visualization_type = 'mapnik_map',
        name = 'my_maps'
        )
    
    # View an indicator as a matplotlib Chart
    
    charts = ['gridcell_population']
    visualizations += visualizer.visualize(
        indicators_to_visualize = charts,
        computed_indicators = computed_indicators,
        visualization_type = 'matplotlib_chart',
        years = [2010], #override default years to visualize (all)
        name = 'charts'
        )
    
    # Write an indicator as a Table
    
    tables = ['zone_industrial_sqft', 
              'large_area_population_change',
              'alldata_home_based_jobs']
    for output_type in ['tab','cvs','dbf']:
        visualizations += visualizer.visualize(
            indicators_to_visualize = tables,
            computed_indicators = computed_indicators,
            visualization_type = 'table',
            output_type = output_type,
            name = 'tables',
            )
        
    # Write a set of indicators sharing a dataset as a Dataset Table
    
    indicators_in_dataset_table = ['zone_population',
                                   'zone_industrial_sqft']
    visualizations += visualizer.visualize(
        indicators_to_visualize = indicators_in_dataset_table,
        computed_indicators = computed_indicators,
        visualization_type = 'dataset_table',
        output_type = 'csv',
        exclude_condition = 'urbansim.zone.population<100', #this accepts any opus expression
        name = 'dataset_table',
        )
    
    ################################################################
    #Generate a REPORT with the visualizations
    ################################################################
    from opus_gui.results_manager.run.indicator_framework.reporter.report_factory import ReportFactory
    
    reporter = ReportFactory()
    reporter.generate_report(
        visualized_indicators = visualized_indicators,
        report_type = 'basic',
        open_immediately = True,
        storage_location = 'c:/my_reports'                     
    )