self.demand.import_xml(self.get_rootfilename(), self.get_workdirpath()) except: print 'WARNING: import of demand data failed. Please check for inconsistency with trip/route and network edge IDs.' def update_netoffset(self, deltaoffset): """ Called when network offset has changed. Children may need to adjust theur coordinates. """ self.landuse.update_netoffset(deltaoffset) self.demand.update_netoffset(deltaoffset) if __name__ == '__main__': ############################################################################### # print 'sys.path',sys.path from agilepy.lib_wx.objpanel import objbrowser from agilepy.lib_base.logger import Logger if len(sys.argv) == 3: rootname = sys.argv[1] dirpath = sys.argv[2] else: rootname = 'facsp2' dirpath = os.path.join(os.path.dirname(__file__), '..', 'network', 'testnet') scenario = Scenario(rootname, workdirpath=dirpath, logger=Logger()) # net.import_nodes(os.path.join('test','facsp2.nod.xml')) # net.import_edges(os.path.join('test','facsp2.edg.xml')) objbrowser(scenario)
class AgileMainframe(AgileToolbarFrameMixin, wx.Frame): """ Simple wx frame with some special features. """ def __init__(self, parent=None, title='mainframe', moduledirs=[], args=[], is_maximize=False, is_centerscreen=True, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name='theframe', size_toolbaricons=(24, 24)): self._args = args # Forcing a specific style on the window. # Should this include styles passed? wx.Frame.__init__(self, parent, wx.ID_ANY, title, pos, size=size, style=style, name=name) #super(GLFrame, self).__init__(parent, id, title, pos, size, style, name) self._splitter = MainSplitter(self) self._views = {} #wx.EVT_SIZE (self, self.on_size) #sizer=wx.BoxSizer(wx.VERTICAL) #sizer.Add(p1,0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4)# from NaviPanelTest #sizer.Add(self.canvas,1,wx.GROW)# from NaviPanelTest # finish panel setup #self.SetSizer(sizer) #sizer.Fit(self) #self.Show() # this is needed to initialize GL projections for unproject #wx.CallAfter(self.on_size) #width,height = self.GetSize() #self._splitter.SetSashPosition(300, True) #maximize the frame if is_maximize: self.Maximize() if is_centerscreen: self.CenterOnScreen() ################################################################# # create statusbar #self.statusbar = AgileStatusbar(self) self.statusbar = AgileStatusbar(self) self.SetStatusBar(self.statusbar) #self.count=0.0 ################################################################# # create toolbar self.init_toolbar(size=size_toolbaricons) # #new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize) #open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize) #save_bmp= wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize) #cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR, tsize) #copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize) #paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR, tsize) #self.add_tool('new',self.on_open,new_bmp,'create new doc') #self.add_tool('open',self.on_open,open_bmp,'Open doc') #self.add_tool('save',self.on_save,save_bmp,'Save doc') #self.toolbar.AddSeparator() #self.add_tool('cut',self.on_open,cut_bmp,'Cut') #self.add_tool('copy',self.on_open,copy_bmp,'Copy') #self.add_tool('paste',self.on_open,paste_bmp,'Paste') #self.SetToolBar(self.toolbar) ################################################################# #create the menu bar self.menubar = AgileMenubar(self) #self.make_menu() #self.menubar.append_menu('tools') self.SetMenuBar(self.menubar) #self.Show(True) #NO!! ################################################################# # init logger self._logger = Logger() self._logger.add_callback(self.write_message, 'message') self._logger.add_callback(self.write_action, 'action') ################################################################# self._moduleguis = make_moduleguis(moduledirs) for modulename, modulegui in self._moduleguis.iteritems(): #print ' init gui of module',modulename modulegui.init_widgets(self) ################################################################# ## event section: specify in App #wx.EVT_BUTTON(self, 1003, self.on_close) # wx.EVT_CLOSE(self, self.on_close) #wx.EVT_IDLE(self, self.on_idle) def refresh_moduleguis(self): #print 'refresh_moduleguis',len(self._moduleguis) self.browse_obj(None) for modulename, modulegui in self._moduleguis.iteritems(): #print ' refresh gui of module',modulename modulegui.refresh_widgets() def get_modulegui(self, modulename): return self._moduleguis[modulename] def write_message(self, text, **kwargs): self.statusbar.write_message(text) def write_action(self, text, **kwargs): self.statusbar.write_action(text) self.statusbar.write_message('') def get_logger(self): return self._logger def set_logger(self, logger): self._logger = logger def get_args(self): return self._args def browse_obj(self, obj, **kwargs): self._splitter.browse_obj(obj, **kwargs) def make_menu(self): """ Creates manu. To be overridden. """ self.menubar.append_menu('file') self.menubar.append_menu('file/doc') self.menubar.append_item('file/doc/open',self.on_open,\ shortkey='Ctrl+o',info='open it out') self.menubar.append_item('file/doc/save',self.on_save,\ shortkey='Ctrl+s',info='save it out') #self.menubar.append_menu('edit') #self.menubar.append_item('edit/cut',self.cut,\ # shortkey='Ctrl+c',info='cut it out') #self.menubar.append_item('edit/toggle',self.toggle_tools,\ # shortkey='Ctrl+t',info='toggle tools') def add_view(self, name, ViewClass, **args): """ Add a new view to the notebook. """ #print 'context.add_view',ViewClass #print ' args',args view = self._splitter.add_view(name, ViewClass, **args) self._views[name] = view #self._viewtabs.SetSelection(p) #self._splitter._viewtabs.Show(True) return view def select_view(self, ind=0): self._splitter.select_view(ind=ind) def on_size(self, event=None): print 'Mainframe.on_size' #self.tc.SetSize(self.GetSize()) #self.tc.SetSize(self.GetSize()) #self._viewtabs.SetSize(self.GetSize()) #pass #wx.LayoutAlgorithm().LayoutWindow(self, self.p1) #wx.LayoutAlgorithm().LayoutWindow(self, self.p1) # important: #wx.LayoutAlgorithm().LayoutWindow(self, self._viewtabs) wx.LayoutAlgorithm().LayoutWindow(self, self._splitter) if event: event.Skip() def on_save(self, event): print 'save it!!' def on_open(self, event): """Open a document""" #wildcards = CreateWildCards() + "All files (*.*)|*.*" print 'open it!!' def destroy(self): """Destroy this object""" ##self.theDocManager.theDestructor() #imgPreferences.saveXml(self.GetStartDirectory() + "/" + imgINI_FILE_NAME) ##del self.thePrint self.Destroy() def on_close(self, event): #self.Close(True) print 'Mainframe.on_close' #pass self.destroy() def on_exit(self, event): """Called when the application is to be finished""" self.destroy() def on_idle(self, event): pass #self.count = self.count + 1 #if self.count >= 100: # self.count = 0 #self.statusbar.set_progress(self.count) def on_about(self, event): """Display the information about this application""" #dlg = imgDlgAbout(self, -1, "") #dlg.ShowModal() #dlg.Destroy() pass def write_to_statusbar(self, data, key='message'): self.statusbar[key] = str(data)
def __init__(self, parent=None, title='mainframe', moduledirs=[], args=[], is_maximize=False, is_centerscreen=True, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name='theframe', size_toolbaricons=(24, 24)): self._args = args # Forcing a specific style on the window. # Should this include styles passed? wx.Frame.__init__(self, parent, wx.ID_ANY, title, pos, size=size, style=style, name=name) #super(GLFrame, self).__init__(parent, id, title, pos, size, style, name) self._splitter = MainSplitter(self) self._views = {} #wx.EVT_SIZE (self, self.on_size) #sizer=wx.BoxSizer(wx.VERTICAL) #sizer.Add(p1,0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4)# from NaviPanelTest #sizer.Add(self.canvas,1,wx.GROW)# from NaviPanelTest # finish panel setup #self.SetSizer(sizer) #sizer.Fit(self) #self.Show() # this is needed to initialize GL projections for unproject #wx.CallAfter(self.on_size) #width,height = self.GetSize() #self._splitter.SetSashPosition(300, True) #maximize the frame if is_maximize: self.Maximize() if is_centerscreen: self.CenterOnScreen() ################################################################# # create statusbar #self.statusbar = AgileStatusbar(self) self.statusbar = AgileStatusbar(self) self.SetStatusBar(self.statusbar) #self.count=0.0 ################################################################# # create toolbar self.init_toolbar(size=size_toolbaricons) # #new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize) #open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize) #save_bmp= wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize) #cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR, tsize) #copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize) #paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR, tsize) #self.add_tool('new',self.on_open,new_bmp,'create new doc') #self.add_tool('open',self.on_open,open_bmp,'Open doc') #self.add_tool('save',self.on_save,save_bmp,'Save doc') #self.toolbar.AddSeparator() #self.add_tool('cut',self.on_open,cut_bmp,'Cut') #self.add_tool('copy',self.on_open,copy_bmp,'Copy') #self.add_tool('paste',self.on_open,paste_bmp,'Paste') #self.SetToolBar(self.toolbar) ################################################################# #create the menu bar self.menubar = AgileMenubar(self) #self.make_menu() #self.menubar.append_menu('tools') self.SetMenuBar(self.menubar) #self.Show(True) #NO!! ################################################################# # init logger self._logger = Logger() self._logger.add_callback(self.write_message, 'message') self._logger.add_callback(self.write_action, 'action') ################################################################# self._moduleguis = make_moduleguis(moduledirs) for modulename, modulegui in self._moduleguis.iteritems(): #print ' init gui of module',modulename modulegui.init_widgets(self)
resultfilepath = None if len(sys.argv) >= 2: simfilepath = sys.argv[1] if len(sys.argv) == 3: resultfilepath = sys.argv[2] else: print __doc__ sys.exit(0) myscenario = scenario.load_scenario(simfilepath) rootfilepath = myscenario.get_rootfilepath() if resultfilepath is None: resultfilepath = rootfilepath + '.res.obj' mylogger = Logger( #filepath = os.path.join(dirpath,logfilepath), is_stdout=True, #False ) microsim = sumo.Sumo( myscenario, guimode='nogui', # 'sumopy','sumopy+map','native','openscene','nogui', simtime_start=0, simtime_end=600, time_to_teleport=-1, time_step=0.2, #s is_ballistic_integrator=True, # # routing options # is_dynaroute=True, # = one shot assignment is_rerouting=False, # enable rerouting devices
# print ' ids_trip',ids_trip ids_routes, ids_trips = self._trips.make_routes(self.ids_vtype, is_generate_ids=is_generate_ids, routes=self.routes, ids_trip=ids_trip, **self._get_kwargs()) return ids_routes, ids_trips if __name__ == '__main__': ########################################################################## # print 'sys.path',sys.path from agilepy.lib_wx.objpanel import objbrowser from agilepy.lib_base.logger import Logger #from coremodules.scenario import scenario from coremodules.network import network logger = Logger() NETPATH = os.path.join(SUMOPYDIR, 'coremodules', 'network', 'testnet') net = network.Network(logger=logger) rootname = 'facsp2' net.import_xml(rootname, NETPATH) # net.read_sumonodes(os.path.join(NETPATH,'facsp2.nod.xml')) # net.read_sumoedges(os.path.join(NETPATH,'facsp2.edg.xml')) demand = Demand(net=net, logger=logger) # demand.set_net(net) # landuse.facilities.import_poly(os.path.join(NETPATH,'facsp2.poly.xml')) #landuse.import_xml(rootname, NETPATH) objbrowser(demand)
def __init__(self, parent=None, title='mainframe', moduledirs=[], args=[], appdir='', is_maximize=False, is_centerscreen=True, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name='theframe', size_toolbaricons=(24, 24)): self._args = args # print 'AgileMainframe.__init__',title,appdir # Forcing a specific style on the window. # Should this include styles passed? wx.Frame.__init__(self, parent, wx.ID_ANY, title, pos, size=size, style=style, name=name) #super(GLFrame, self).__init__(parent, id, title, pos, size, style, name) self._splitter = MainSplitter(self) self._views = {} #wx.EVT_SIZE (self, self.on_size) # sizer=wx.BoxSizer(wx.VERTICAL) # sizer.Add(p1,0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4)# from NaviPanelTest # sizer.Add(self.canvas,1,wx.GROW)# from NaviPanelTest # finish panel setup # self.SetSizer(sizer) # sizer.Fit(self) # self.Show() # this is needed to initialize GL projections for unproject # wx.CallAfter(self.on_size) #width,height = self.GetSize() #self._splitter.SetSashPosition(300, True) # maximize the frame if is_maximize: self.Maximize() if is_centerscreen: self.CenterOnScreen() ################################################################# # create statusbar #self.statusbar = AgileStatusbar(self) self.statusbar = AgileStatusbar(self) self.SetStatusBar(self.statusbar) # self.count=0.0 ################################################################# # create toolbar self.init_toolbar(size=size_toolbaricons) # #new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize) #open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize) #save_bmp= wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize) #cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR, tsize) #copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize) #paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR, tsize) #self.add_tool('new',self.on_open,new_bmp,'create new doc') #self.add_tool('open',self.on_open,open_bmp,'Open doc') #self.add_tool('save',self.on_save,save_bmp,'Save doc') # self.toolbar.AddSeparator() # self.add_tool('cut',self.on_open,cut_bmp,'Cut') # self.add_tool('copy',self.on_open,copy_bmp,'Copy') # self.add_tool('paste',self.on_open,paste_bmp,'Paste') # self.SetToolBar(self.toolbar) ################################################################# # create the menu bar self.menubar = AgileMenubar(self) # self.make_menu() # self.menubar.append_menu('tools') self.SetMenuBar(self.menubar) # self.Show(True) #NO!! ################################################################# # init logger self._logger = Logger() self._logger.add_callback(self.write_message, 'message') self._logger.add_callback(self.write_action, 'action') self._logger.add_callback(self.show_progress, 'progress') ################################################################# self._moduleguis = make_moduleguis(appdir, moduledirs) for modulename, modulegui in self._moduleguis.iteritems(): # print ' init gui of module',modulename modulegui.init_widgets(self)
class AgileMainframe(AgileToolbarFrameMixin, wx.Frame): """ Simple wx frame with some special features. """ def __init__(self, parent=None, title='mainframe', moduledirs=[], args=[], appdir='', is_maximize=False, is_centerscreen=True, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name='theframe', size_toolbaricons=(24, 24)): self._args = args # print 'AgileMainframe.__init__',title,appdir # Forcing a specific style on the window. # Should this include styles passed? wx.Frame.__init__(self, parent, wx.ID_ANY, title, pos, size=size, style=style, name=name) #super(GLFrame, self).__init__(parent, id, title, pos, size, style, name) self._splitter = MainSplitter(self) self._views = {} #wx.EVT_SIZE (self, self.on_size) # sizer=wx.BoxSizer(wx.VERTICAL) # sizer.Add(p1,0, wx.ALL | wx.ALIGN_LEFT | wx.GROW, 4)# from NaviPanelTest # sizer.Add(self.canvas,1,wx.GROW)# from NaviPanelTest # finish panel setup # self.SetSizer(sizer) # sizer.Fit(self) # self.Show() # this is needed to initialize GL projections for unproject # wx.CallAfter(self.on_size) #width,height = self.GetSize() #self._splitter.SetSashPosition(300, True) # maximize the frame if is_maximize: self.Maximize() if is_centerscreen: self.CenterOnScreen() ################################################################# # create statusbar #self.statusbar = AgileStatusbar(self) self.statusbar = AgileStatusbar(self) self.SetStatusBar(self.statusbar) # self.count=0.0 ################################################################# # create toolbar self.init_toolbar(size=size_toolbaricons) # #new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize) #open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize) #save_bmp= wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR, tsize) #cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR, tsize) #copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize) #paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR, tsize) #self.add_tool('new',self.on_open,new_bmp,'create new doc') #self.add_tool('open',self.on_open,open_bmp,'Open doc') #self.add_tool('save',self.on_save,save_bmp,'Save doc') # self.toolbar.AddSeparator() # self.add_tool('cut',self.on_open,cut_bmp,'Cut') # self.add_tool('copy',self.on_open,copy_bmp,'Copy') # self.add_tool('paste',self.on_open,paste_bmp,'Paste') # self.SetToolBar(self.toolbar) ################################################################# # create the menu bar self.menubar = AgileMenubar(self) # self.make_menu() # self.menubar.append_menu('tools') self.SetMenuBar(self.menubar) # self.Show(True) #NO!! ################################################################# # init logger self._logger = Logger() self._logger.add_callback(self.write_message, 'message') self._logger.add_callback(self.write_action, 'action') self._logger.add_callback(self.show_progress, 'progress') ################################################################# self._moduleguis = make_moduleguis(appdir, moduledirs) for modulename, modulegui in self._moduleguis.iteritems(): # print ' init gui of module',modulename modulegui.init_widgets(self) ################################################################# # event section: specify in App #wx.EVT_BUTTON(self, 1003, self.on_close) # wx.EVT_CLOSE(self, self.on_close) #wx.EVT_IDLE(self, self.on_idle) def refresh_moduleguis(self): # print 'refresh_moduleguis',len(self._moduleguis) self.browse_obj(None) for modulename, modulegui in self._moduleguis.iteritems(): # print ' refresh gui of module',modulename modulegui.refresh_widgets() def get_modulegui(self, modulename): return self._moduleguis[modulename] def write_message(self, text, **kwargs): self.statusbar.write_message(text) def write_action(self, text, **kwargs): self.statusbar.write_action(text) self.statusbar.write_message('') def show_progress(self, percent, **kwargs): self.statusbar.set_progress(percent) def get_logger(self): return self._logger def set_logger(self, logger): self._logger = logger def get_args(self): return self._args def browse_obj(self, obj, **kwargs): self._splitter.browse_obj(obj, **kwargs) def make_menu(self): """ Creates manu. To be overridden. """ self.menubar.append_menu('file') self.menubar.append_menu('file/doc') self.menubar.append_item('file/doc/open', self.on_open, shortkey='Ctrl+o', info='open it out') self.menubar.append_item('file/doc/save', self.on_save, shortkey='Ctrl+s', info='save it out') # self.menubar.append_menu('edit') # self.menubar.append_item('edit/cut',self.cut,\ # shortkey='Ctrl+c',info='cut it out') # self.menubar.append_item('edit/toggle',self.toggle_tools,\ # shortkey='Ctrl+t',info='toggle tools') def add_view(self, name, ViewClass, **args): """ Add a new view to the notebook. """ # print 'context.add_view',ViewClass # print ' args',args view = self._splitter.add_view(name, ViewClass, **args) self._views[name] = view # self._viewtabs.SetSelection(p) # self._splitter._viewtabs.Show(True) return view def select_view(self, ind=0, name=None): self._splitter.select_view(ind=ind, name=name) def on_size(self, event=None): # print 'Mainframe.on_size' # self.tc.SetSize(self.GetSize()) # self.tc.SetSize(self.GetSize()) # self._viewtabs.SetSize(self.GetSize()) # pass #wx.LayoutAlgorithm().LayoutWindow(self, self.p1) #wx.LayoutAlgorithm().LayoutWindow(self, self.p1) # important: #wx.LayoutAlgorithm().LayoutWindow(self, self._viewtabs) wx.LayoutAlgorithm().LayoutWindow(self, self._splitter) # if event: # event.Skip() def on_save(self, event): print 'save it!!' def on_open(self, event): """Open a document""" #wildcards = CreateWildCards() + "All files (*.*)|*.*" print 'open it!!' def destroy(self): """Destroy this object""" # self.theDocManager.theDestructor() #imgPreferences.saveXml(self.GetStartDirectory() + "/" + imgINI_FILE_NAME) ##del self.thePrint self.Destroy() def on_close(self, event): # self.Close(True) print 'Mainframe.on_close' # pass self.destroy() def on_exit(self, event): """Called when the application is to be finished""" self.destroy() def on_idle(self, event): pass #self.count = self.count + 1 # if self.count >= 100: # self.count = 0 # self.statusbar.set_progress(self.count) def on_about(self, event): """Display the information about this application""" #dlg = imgDlgAbout(self, -1, "") # dlg.ShowModal() # dlg.Destroy() pass def write_to_statusbar(self, data, key='message'): self.statusbar[key] = str(data)
# wx.Frame.SetIcon(self.mainframe,sumopyicon) # self.mainframe.SetIcon(sumopyicon) # if True: #len(sys.argv)>=2: # from lib.net import readNet # filepath = '/home/joerg/projects/sumopy/bologna/bologna4.net.xml'#sys.argv[1] # _net = readNet(filepath) # else: # _net = None self.SetTopWindow(self.mainframe) return True def netediting(net): # put in True if you want output to go to it's own window. app = NeteditorApp(net, output=False) # print 'call MainLoop' app.MainLoop() if __name__ == '__main__': ########################################################################### # MAINLOOP import network from agilepy.lib_base.logger import Logger net = network.Network(logger=Logger()) net.import_xml('facsp2', 'testnet') app = NeteditorApp(net, output=False) app.MainLoop()