Exemplo n.º 1
0
def setup_emme_project_folders():
    #tod_dict = json.load(open(os.path.join('inputs', 'skim_params', 'time_of_day.json')))

    tod_dict = text_to_dictionary('time_of_day')
    tod_list = list(set(tod_dict.values()))

    if os.path.exists(os.path.join('projects')):
        print 'Delete Project Folder'
        shutil.rmtree('projects')

    # Create master project, associate with all tod emmebanks
    project = app.create_project('projects', master_project)
    desktop = app.start_dedicated(False, "cth", project)
    data_explorer = desktop.data_explorer()   
    for tod in tod_list:
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
    #open the last database added so that there is an active one
    database.open()
    desktop.project.save()
    desktop.close()

    # Create time of day projects, associate with emmebank
    tod_list.append('TruckModel') 
    tod_list.append('Supplementals')
    emme_toolbox_path = os.path.join(os.environ['EMMEPATH'], 'toolboxes')
    for tod in tod_list:
        project = app.create_project('projects', tod)
        desktop = app.start_dedicated(False, "cth", project)
        data_explorer = desktop.data_explorer()
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
        database.open()
        desktop.project.save()
        desktop.close()
        shcopy(emme_toolbox_path + '/standard.mtbx', os.path.join('projects', tod))
Exemplo n.º 2
0
def setup_emme_project_folders():
    #tod_dict = json.load(open(os.path.join('inputs', 'skim_params', 'time_of_day.json')))

    tod_dict = text_to_dictionary('time_of_day')
    tod_list = list(set(tod_dict.values()))

    if os.path.exists(os.path.join('projects')):
        print 'Delete Project Folder'
        shutil.rmtree('projects')

    # Create master project, associate with all tod emmebanks
    project = app.create_project('projects', master_project)
    desktop = app.start_dedicated(False, "cth", project)
    data_explorer = desktop.data_explorer()
    for tod in tod_list:
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
    #open the last database added so that there is an active one
    database.open()
    desktop.project.save()
    desktop.close()

    # Create time of day projects, associate with emmebank
    tod_list.append('TruckModel') 
    tod_list.append('Supplementals')
    for tod in tod_list:
        project = app.create_project('projects', tod)
        desktop = app.start_dedicated(False, "cth", project)
        data_explorer = desktop.data_explorer()
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
        database.open()
        desktop.project.save()
        desktop.close()
Exemplo n.º 3
0
def open_emme_project(my_project):

    #Open the Time Period Specific Project passed to the function and load the Input Dictionary
    my_desktop = app.start_dedicated(True, "cth", my_project)
    my_modeller = _m.Modeller(my_desktop)

    return (my_modeller)
Exemplo n.º 4
0
    def project(self, project_path: str) -> EmmeDesktopApp:
        """Return already open Emme project, or open new Desktop session if not found.

        Args:
            project_path: valid path to Emme project *.emp file

        Returns:
            Emme Desktop App object, see Emme API Reference, Desktop section for details.
        """
        project_path = os.path.normcase(os.path.realpath(project_path))
        emme_project = self._project_cache.get(project_path)
        if emme_project:
            try:  # Check if the Emme window was closed
                emme_project.current_window()
            except _socket_error:
                emme_project = None
        # if window is not opened in this process, start a new one
        if emme_project is None:
            if not os.path.isfile(project_path):
                raise Exception(
                    f"Emme project path does not exist {project_path}")
            emme_project = _app.start_dedicated(visible=True,
                                                user_initials="inro",
                                                project=project_path)
            self._project_cache[project_path] = emme_project
        return emme_project
Exemplo n.º 5
0
    def CleanLogbook(self):
        try:
            projectFile = None
            projectFiles = glob.glob("*.emp")
            if len(projectFiles) > 0:
                projectFile = projectFiles[0]
            if projectFile == None:
                os.chdir("..")
                projectFiles = glob.glob("*.emp")
                if len(projectFiles) > 0:
                    projectFile = projectFiles[0]
            logbookPath = self.Modeller.desktop.modeller_logbook_url
            self.Modeller = None
            self.emmeApplication.close()
            self.emmeApplication = None

            time.sleep(10)
            os.remove(logbookPath)
            self.emmeApplication = _app.start_dedicated(visible=False,
                                                        user_initials="XTMF",
                                                        project=projectFile)
            self.Modeller = inro.modeller.Modeller(self.emmeApplication)
            self.SendSuccess()
        except Exception, inst:
            self.SendRuntimeError(str(inst))
Exemplo n.º 6
0
def open_emme_project(my_project):

    # Open the Time Period Specific Project passed to the function and load the Input Dictionary
    my_desktop = app.start_dedicated(True, "cth", my_project)
    my_modeller = _m.Modeller(my_desktop)

    return my_modeller
def main():
    #Start Daysim-Emme Equilibration
    for x in range(0, global_iterations):
        #launch daysim 
        #retcode = subprocess.call(["Daysim.exe"])
        
        #Daysim Finished Running, now start Emme Assignment & Skimming code
        start_of_run = time.time()
        #want pooled processes finished before executing more code in main:
        project_list=['C:/ABM/Projects/5to6/5to6.emp','C:/ABM/Projects/6to7/6to7.emp','C:/ABM/Projects/7to8/7to8.emp','C:/ABM/Projects/8to9/8to9.emp', 'C:/ABM/Projects/9to10/9to10.emp', 'C:/ABM/Projects/10to14/10to14.emp', 'C:/ABM/Projects/14to15/14to15.emp','C:/ABM/Projects/15to16/15to16.emp', 'C:/ABM/Projects/16to17/16to17.emp', 'C:/ABM/Projects/17to18/17to18.emp', 'C:/ABM/Projects/18to20/18to20.emp', 'C:/ABM/Projects/20to5/20to5.emp' ]
        #project_list=['C:/ABM/Projects/5to6/5to6.emp','C:/ABM/Projects/6to7/6to7.emp','C:/ABM/Projects/7to8/7to8.emp', 'C:/ABM/Projects/8to9/8to9.emp']
        start_pool(project_list)
        
        #Tried exporting skims to hdf5 concurrently, by using a HDF5 file for each time period, and then merging them
        #all to one HDF5 file at the end, but this was signigicantly slower than writing out sequentially. Below we are able to 
        #launch another instance of modeler because the others were launched/closed in their own pool/process. 
        #This project points to all TOD Banks:
        project_name = 'C:/ABM/Projects/LoadTripTables/LoadTripTables.emp'
        my_desktop = app.start_dedicated(False, "cth", project_name)
        m = _m.Modeller(my_desktop)
        #skims_to_hdf5(m, hdf5_file_path)
    
        end_of_run = time.time()

        print "Emme Skim Creation and Export to HDF5 completed normally"
        print 'The Total Time for all processes took', round((end_of_run-start_of_run)/60,2), 'minutes to execute.'
def open_emme_project(my_project):

    #If you do not want the Emme window to show, change True to False
     #my_desktop = app.start_dedicated(False, "cth", project_name)
    my_desktop = app.start_dedicated(True, "PSRC", my_project)
    my_modeller = _m.Modeller(my_desktop)

    return(my_modeller)
def open_emme_project(my_project):

    #If you do not want the Emme window to show, change True to False
    #my_desktop = app.start_dedicated(False, "cth", project_name)
    my_desktop = app.start_dedicated(True, "PSRC", my_project)
    my_modeller = _m.Modeller(my_desktop)

    return (my_modeller)
Exemplo n.º 10
0
 def __init__(self, filepath):
     self.desktop = app.start_dedicated(True, "cth", filepath)
     self.m = _m.Modeller(self.desktop)
     pathlist = filepath.split("/")
     self.fullpath = filepath
     self.filename = pathlist.pop()
     self.dir = "/".join(pathlist) + "/"
     self.bank = self.m.emmebank
     self.tod = self.bank.title
     self.current_scenario = list(self.bank.scenarios())[0]
     self.data_explorer = self.desktop.data_explorer()
Exemplo n.º 11
0
 def __init__(self, filepath):
     self.desktop = app.start_dedicated(True, "cth", filepath)
     self.m = _m.Modeller(self.desktop)
     pathlist = filepath.split("/")
     self.fullpath = filepath
     self.filename = pathlist.pop()
     self.dir = "/".join(pathlist) + "/"
     self.bank = self.m.emmebank
     self.tod = self.bank.title
     self.current_scenario = list(self.bank.scenarios())[0]
     self.data_explorer = self.desktop.data_explorer()
Exemplo n.º 12
0
def setup_emme_project_folders():
    #tod_dict = json.load(open(os.path.join('inputs', 'skim_params', 'time_of_day.json')))

    tod_dict = text_to_dictionary('time_of_day')
    tod_list = list(set(tod_dict.values()))

    if os.path.exists(os.path.join('projects')):
        print 'Delete Project Folder'
        shutil.rmtree('projects')

    # Create master project, associate with all tod emmebanks
    project = app.create_project('projects', master_project)
    desktop = app.start_dedicated(False, modeller_initial, project)
    data_explorer = desktop.data_explorer()
    for tod in tod_list:
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
    #open the last database added so that there is an active one
    database.open()
    desktop.project.save()
    desktop.close()

    # Create time of day projects, associate with emmebank
    tod_list.append('TruckModel') 
    tod_list.append('Supplementals')
    for tod in tod_list:
        project = app.create_project('projects', tod)
        desktop = app.start_dedicated(False, modeller_initial, project)
        data_explorer = desktop.data_explorer()
        database = data_explorer.add_database('Banks/' + tod + '/emmebank')
        database.open()
        desktop.project.save()
        desktop.close()
        
        #copy worksheets
        wspath = os.path.join('inputs/worksheets/', tod)
        destpath = os.path.join('projects/', tod, 'Worksheets')
        copyfiles(wspath, destpath)
        # copy media files
        destpath = os.path.join('projects/', tod, 'Media')
        copyfiles('inputs/Media/', destpath)
Exemplo n.º 13
0
    def __init__(self, filepath):
        self.desktop = app.start_dedicated(True, "cth", filepath)
        self.m = _m.Modeller(self.desktop)
        for t in self.m.toolboxes:
            t.connection.execute("PRAGMA busy_timeout=1000")

        #delete locki:
        self.m.emmebank.dispose()
        pathlist = filepath.split("/")
        self.fullpath = filepath
        self.filename = pathlist.pop()
        self.dir = "/".join(pathlist) + "/"
        self.bank = self.m.emmebank
        self.tod = self.bank.title
        self.current_scenario = list(self.bank.scenarios())[0]
        self.data_explorer = self.desktop.data_explorer()
Exemplo n.º 14
0
    def __init__(self, filepath):
        self.desktop = app.start_dedicated(True, "cth", filepath)
        self.m = _m.Modeller(self.desktop)
        for t in self.m.toolboxes:
            t.connection.execute("PRAGMA busy_timeout=1000")

        #delete locki:
        self.m.emmebank.dispose()
        pathlist = filepath.split("/")
        self.fullpath = filepath
        self.filename = pathlist.pop()
        self.dir = "/".join(pathlist) + "/"
        self.bank = self.m.emmebank
        self.tod = self.bank.title
        self.current_scenario = list(self.bank.scenarios())[0]
        self.data_explorer = self.desktop.data_explorer()
Exemplo n.º 15
0
def Metro_Project(working_dir):
    """Replaces `Metro_Project` directory and creates new .emp file."""
    emmebank_path = os.path.join(working_dir, 'emmebank')
    try:
        shutil.rmtree(os.path.join(working_dir, 'Metro_Project'))
        project = _app.create_project(working_dir, 'Metro_Project')
    except WindowsError:
        if os.path.exists(working_dir):
            project = _app.create_project(working_dir, 'Metro_Project')
        else:
            print 'Path does not exist. Please enter an existing path.'
            sys.exit()

    my_app = _app.start_dedicated(False, '000', project)
    data = my_app.data_explorer()
    bank = data.add_database(emmebank_path)
    return my_app, bank
Exemplo n.º 16
0
 def __init__(self, filepath):
     self.app = app
     self.desktop = app.start_dedicated(True, "SEC", filepath)
     self.m = _m.Modeller(self.desktop)
     self.data_explorer = self.desktop.data_explorer()
     for t in self.m.toolboxes:
         t.connection.execute("PRAGMA busy_timeout=1000")
     self.data_base = self.data_explorer.active_database()
     #delete locki:
     self.m.emmebank.dispose()
     pathlist = filepath.split("/")
     self.fullpath = filepath
     self.filename = pathlist.pop()
     self.dir = "/".join(pathlist) + "/"
     self.bank = self.m.emmebank
     self.tod = self.bank.title
     self.data_explorer = self.desktop.data_explorer()
     self.primary_scenario = self.data_explorer.primary_scenario
def run_assignments_parallel(project_name):
     start_of_run = time.time()
    

     my_desktop = app.start_dedicated(True, "cth", project_name)
     m = _m.Modeller(my_desktop)
     print m.emmebank.title
     
     
     #delete and create new demand and skim matrices:
     delete_matrices(m, "FULL")
     define_matrices(m)
     
     #Import demand/trip tables to emme. This is actually quite fast con-currently. 
     hdf5_trips_to_Emme(m, hdf5_file_path)
     
     #set up for assignments
     intitial_extra_attributes(m)
     import_extra_attributes(m)
     arterial_delay_calc(m)
     vdf_initial(m)
     
     
     #run auto assignment/skims
     traffic_assignment(m)
     attribute_based_skims(m, "Time")

     #get tod from bank name. Only skim for distance if in global distance_skim_tod list
     tod = m.emmebank.title
     if tod in distance_skim_tod:
        print tod
        attribute_based_skims(m,"Distance")
     cost_skims(m)
     class_specific_volumes(m)
     
     #run transit assignment skims
     transit_assignment(m)
     transit_skims(m)
     
     print tod + " finished"
     end_of_run = time.time()
     print 'It took', round((end_of_run-start_of_run)/60,2), 'minutes to execute all processes for ' + tod
Exemplo n.º 18
0
    def __call__(self):

        #if not os.path.exists('projects'):
        #    self.tool_run_message = "projects folder does not exist"
        #    print self.tool_run_message
        #    _modeller.logbook_write(self.tool_run_message)
        #    raise Exception(self.tool_run_message)

        #if not os.path.exists('Banks'):
        #    self.tool_run_message = "banks folder does not exist"
        #    print self.tool_run_message
        #    _modeller.logbook_write(self.tool_run_message)
        #    raise Exception(self.tool_run_message)

        for folders in os.walk(self.BKRCastFolder):
            foldername = self.getFoldername(self.BKRCastFolder)
            projname = os.path.join(folders[0], foldername + ".emp")
            print projname

            project = _app.start_dedicated(True, "tool", projname)
def run_assignments_parallel(project_name):
    start_of_run = time.time()

    my_desktop = app.start_dedicated(True, "cth", project_name)
    m = _m.Modeller(my_desktop)
    print m.emmebank.title

    #delete and create new demand and skim matrices:
    delete_matrices(m, "FULL")
    define_matrices(m)

    #Import demand/trip tables to emme. This is actually quite fast con-currently.
    hdf5_trips_to_Emme(m, hdf5_file_path)

    #set up for assignments
    intitial_extra_attributes(m)
    import_extra_attributes(m)
    arterial_delay_calc(m)
    vdf_initial(m)

    #run auto assignment/skims
    traffic_assignment(m)
    attribute_based_skims(m, "Time")

    #get tod from bank name. Only skim for distance if in global distance_skim_tod list
    tod = m.emmebank.title
    if tod in distance_skim_tod:
        print tod
        attribute_based_skims(m, "Distance")
    cost_skims(m)
    class_specific_volumes(m)

    #run transit assignment skims
    transit_assignment(m)
    transit_skims(m)

    print tod + " finished"
    end_of_run = time.time()
    print 'It took', round((end_of_run - start_of_run) / 60,
                           2), 'minutes to execute all processes for ' + tod
def main():
    #Start Daysim-Emme Equilibration
    for x in range(0, global_iterations):
        #launch daysim
        #retcode = subprocess.call(["Daysim.exe"])

        #Daysim Finished Running, now start Emme Assignment & Skimming code
        start_of_run = time.time()
        #want pooled processes finished before executing more code in main:
        project_list = [
            'C:/ABM/Projects/5to6/5to6.emp', 'C:/ABM/Projects/6to7/6to7.emp',
            'C:/ABM/Projects/7to8/7to8.emp', 'C:/ABM/Projects/8to9/8to9.emp',
            'C:/ABM/Projects/9to10/9to10.emp',
            'C:/ABM/Projects/10to14/10to14.emp',
            'C:/ABM/Projects/14to15/14to15.emp',
            'C:/ABM/Projects/15to16/15to16.emp',
            'C:/ABM/Projects/16to17/16to17.emp',
            'C:/ABM/Projects/17to18/17to18.emp',
            'C:/ABM/Projects/18to20/18to20.emp',
            'C:/ABM/Projects/20to5/20to5.emp'
        ]
        #project_list=['C:/ABM/Projects/5to6/5to6.emp','C:/ABM/Projects/6to7/6to7.emp','C:/ABM/Projects/7to8/7to8.emp', 'C:/ABM/Projects/8to9/8to9.emp']
        start_pool(project_list)

        #Tried exporting skims to hdf5 concurrently, by using a HDF5 file for each time period, and then merging them
        #all to one HDF5 file at the end, but this was signigicantly slower than writing out sequentially. Below we are able to
        #launch another instance of modeler because the others were launched/closed in their own pool/process.
        #This project points to all TOD Banks:
        project_name = 'C:/ABM/Projects/LoadTripTables/LoadTripTables.emp'
        my_desktop = app.start_dedicated(False, "cth", project_name)
        m = _m.Modeller(my_desktop)
        #skims_to_hdf5(m, hdf5_file_path)

        end_of_run = time.time()

        print "Emme Skim Creation and Export to HDF5 completed normally"
        print 'The Total Time for all processes took', round(
            (end_of_run - start_of_run) / 60, 2), 'minutes to execute.'
Exemplo n.º 21
0
 def CleanLogbook(self):
     try:
         projectFile = None
         projectFiles = glob.glob("*.emp")
         if len(projectFiles) > 0:
             projectFile = projectFiles[0]
         if projectFile == None:
             os.chdir("..")
             projectFiles = glob.glob("*.emp")
             if len(projectFiles) > 0:
                 projectFile = projectFiles[0]
         logbookPath = self.Modeller.desktop.modeller_logbook_url
         self.Modeller = None
         self.emmeApplication.close()
         self.emmeApplication = None
         
         time.sleep(10)
         os.remove(logbookPath)
         self.emmeApplication = _app.start_dedicated(visible=False, user_initials="XTMF", project=projectFile)
         self.Modeller = inro.modeller.Modeller(self.emmeApplication)
         self.SendSuccess()
     except Exception, inst:
         self.SendRuntimeError(str(inst))
Exemplo n.º 22
0
    def CheckToolExists(self):
        ns = self.ReadString()
        ret = ns in self.Modeller.tool_namespaces()
        if ret == False:
            _m.logbook_write("Unable to find a tool named " + ns)
        self.SendReturnSuccess(ret)
        return
    
    def DisableLogbook(self):
        _m.logbook_write = RedirectLogbookWrite
        _m.logbook_trace = RedirectLogbookTrace
    
    def EnableLogbook(self):
        _m.logbook_write = self.CachedLogbookWrite
        _m.logbook_trace = self.CachedLogbookTrace
    
#end XTMFBridge

#Get the project file
args = sys.argv # 0: This script's location, 1: Emme project file, 2: User initials, 3: Performance flag
projectFile = args[1]
userInitials = args[2]
performancFlag = bool(int(args[3]))
pipeName = args[4]
#sys.stderr.write(args)

TheEmmeEnvironmentXMTF = _app.start_dedicated(visible=False, user_initials=userInitials, project=projectFile)
XTMFBridge().Run(TheEmmeEnvironmentXMTF, performancFlag)
TheEmmeEnvironmentXMTF.close()
Exemplo n.º 23
0
    centroids = bank.scenario(scenarioNum).get_network().centroids()
    names = [i.id for i in centroids]

    # Return matrix data and zone names
    return (mat, names)


###############################################################################

# Run command line version
if __name__ == "__main__":

    # Start Emme desktop and attach a Modeller session
    empFile = sys.argv[1]
    scenarioNum = sys.argv[2]
    desktop = d.start_dedicated(False, "bts", empFile)
    m = m.Modeller(desktop)

    # Set export/import mode based on presence of ZMX extension
    if sys.argv[3].lower().find("zmx") < 0:
        export = True
    else:
        export = False

    # Get location of EMX files
    emxFolder = os.path.dirname(m.emmebank.path) + "\\emmemat"

    # Get matrix names from command line argument
    for i in range(3, len(sys.argv)):
        matName = sys.argv[i]
Exemplo n.º 24
0
matNumPremDemand = 468
bypassConventionalTransit = True

#scenarios
tods = [1, 2, 3, 4, 5, 6, 7, 8]
highwayScenarios = [i for i in tods]
transitScenarios = [transitImport + i for i in tods]

#macros - relative to the databank location
hwySkimMacro = "../../scripts/CT_RAMP_skim3.mac"
transitSkimMacro = "../../scripts/Transit_assignment_skimming_CT_RAMP3.mac"

############################################################################

#start EMME desktop and attach a modeller session
desktop = d.start_dedicated(True, "cmap", empFile)
m = m.Modeller(desktop)

#location to write matrices
emxFolder = os.path.dirname(m.emmebank.path) + "\\emmemat"

#get time periods to run, item 2
#1,1,0,0,0,0,0,0 #for example runs periods 1 and 2
runPeriods = map(int, sys.argv[1].split(","))

############################################################################

#loop by time-of-day
for i in range(len(tods)):

    #run only specified periods
Exemplo n.º 25
0
# scenarios
transitImport = int(sys.argv[1])  # 100
tods = [1, 2, 3, 4, 5, 6, 7, 8]
highwayScenarios = [i for i in tods]
transitScenarios = [transitImport + i for i in tods]

# settings
tapFile = "inputs/tap_attributes.csv"
tapLinks = "inputs/tap2node.csv"
tapLinesOutFileName = "outputs/tapLines.csv"

############################################################################

# start EMME desktop and attach a modeller session
desktop = d.start_dedicated(True, "cmap", empFile)
m = m.Modeller(desktop)

############################################################################

# create tap virtual zones
taps = []
with open(tapFile, "rb") as csvfile:
    tapreader = csv.reader(csvfile, skipinitialspace=True)
    for row in tapreader:
        taps.append(row)
taps_col_names = taps.pop(0)

# create access links
access_links = []
with open(tapLinks, "rb") as csvfile:
Exemplo n.º 26
0
                                   config['emme_folder_name'])
        emmebank_dimensions_dict = json.load(
            open(os.path.join(config['data_path'],
                              'emme_bank_dimensions.json')))
        if os.path.exists(emme_folder):
            shutil.rmtree(emme_folder)
        os.makedirs(emme_folder)
        bank_path = os.path.join(emme_folder, 'emmebank')
        emmebank = _eb.create(bank_path, emmebank_dimensions_dict)
        emmebank.title = config['emmebank_title']
        emmebank.unit_of_length = 'mi'
        emmebank.coord_unit_length = 0.0001894
        scenario = emmebank.create_scenario(999)
        # project
        project = app.create_project(emme_folder, 'emme_networks')
        desktop = app.start_dedicated(False, "SEC", project)
        data_explorer = desktop.data_explorer()
        database = data_explorer.add_database(bank_path)
        #open the database added so that there is an active one
        database.open()
        desktop.project.save()
        desktop.close()
        emme_toolbox_path = os.path.join(os.environ['EMMEPATH'], 'toolboxes')
        shcopy(emme_toolbox_path + '/standard.mtbx',
               emme_folder + '\\emme_networks')
        my_project = EmmeProject(emme_folder + '\\emme_networks' +
                                 '\\emme_networks.emp')
        os.path.join(emme_folder + 'emme_networks')

        build_file_folder = os.path.join(config['output_dir'],
                                         config['emme_folder_name'],
Exemplo n.º 27
0
import array as _array
import inro.emme.desktop.app as app
import inro.modeller as _m
import inro.emme.matrix
import inro.emme.database.matrix
import json
import numpy as _np
import time
import timeit
import os

# Start an instance of Emme - for now this is using the GUI
start_of_run = time.time()
my_desktop = app.start_dedicated(False, "cth", 'C:\Users\craig\Documents\ABM\ABM.emp')
my_modeller = _m.Modeller(my_desktop)

# Emme and Modeller Tools we used for the assignment and skimming processes
manage_vdfs = _m.Modeller().tool("inro.emme.data.function.function_transaction")
create_matrix = _m.Modeller().tool("inro.emme.data.matrix.create_matrix")
assign_extras = _m.Modeller().tool("inro.emme.traffic_assignment.set_extra_function_parameters")
assign_traffic = _m.Modeller().tool("inro.emme.traffic_assignment.path_based_traffic_assignment")
skim_traffic = _m.Modeller().tool("inro.emme.traffic_assignment.path_based_traffic_analysis")
network_calc = _m.Modeller().tool("inro.emme.network_calculation.network_calculator")
create_extras = _m.Modeller().tool("inro.emme.data.extra_attribute.create_extra_attribute")
delete_extras = _m.Modeller().tool("inro.emme.data.extra_attribute.delete_extra_attribute")

# Define what our scenario and bank we are working in and import basic data like Volume Delay Functions
current_scenario = _m.Modeller().desktop.data_explorer().primary_scenario.core_scenario.ref
early_am_bank = current_scenario.emmebank
default_path = os.path.dirname(_m.Modeller().emmebank.path).replace("\\","/")
function_file = os.path.join(default_path,"Inputs/VDFs/early_am_vdfs.in").replace("\\","/")
Exemplo n.º 28
0
    def EnableLogbook(self):
        _m.logbook_level(self.previous_level)


#end XTMFBridge

#Get the project file
args = sys.argv  # 0: This script's location, 1: Emme project file, 2: User initials, 3:
# Performance flag
projectFile = args[1]
userInitials = args[2]
performancFlag = bool(int(args[3]))
pipeName = args[4]
databank = None
if len(args) > 5:
    databank = args[5]
#sys.stderr.write(args)
print userInitials
print projectFile
try:
    TheEmmeEnvironmentXMTF = _app.start_dedicated(visible=False,
                                                  user_initials=userInitials,
                                                  project=projectFile)
    XTMFBridge().Run(TheEmmeEnvironmentXMTF, databank, performancFlag)
    TheEmmeEnvironmentXMTF.close()
except Exception as e:
    print dir(e).__class__
    print e.message
    print e.args
Exemplo n.º 29
0
    centroids = bank.scenario(scenarioNum).get_network().centroids()
    names = [i.id for i in centroids]

    # Return matrix data and zone names
    return (mat, names)


###############################################################################

# Run command line version
if __name__ == "__main__":

    # Start Emme desktop and attach a Modeller session
    empFile = sys.argv[1]
    scenarioNum = sys.argv[2]
    desktop = d.start_dedicated(False, "bts", empFile)
    m = m.Modeller(desktop)

    # Set export/import mode based on presence of ZMX extension
    if sys.argv[3].lower().find("zmx") < 0:
        export = True
    else:
        export = False

    # Get location of EMX files
    emxFolder = os.path.dirname(m.emmebank.path) + "\\emmemat"

    # Get matrix names from command line argument
    for i in range(3, len(sys.argv)):
        matName = sys.argv[i]