def test_radar_grid_start_within(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(
         len(
             event_container.events(event_object=RadarGrid,
                                    sim_time=120,
                                    start_within=30)), 1)
     self.assertEquals(
         len(
             event_container.events(event_object=RadarGrid,
                                    sim_time=150,
                                    start_within=20)), 0)
 def test_radar_grid_ends_within(self):
     event_container = EventContainer(self.scenario_path)
     # no ending
     self.assertEquals(
         len(
             event_container.events(event_object=RadarGrid,
                                    sim_time=10000,
                                    ends_within=20)), 0)
     # end at 1000
     self.assertEquals(
         len(
             event_container.events(event_object=RadarGrid,
                                    sim_time=1000,
                                    ends_within=20)), 1)
Example #3
0
def main():
    """main program"""
    arguments = parse_args()

    if arguments.color:
        colorlogs()
        # redirect stdout to /dev/null under osx so we get only 1 output stream
        f = open(os.devnull, 'w')
        sys.stderr = f

    logger.info('Subgridpy')
    logger.setLevel(logging.DEBUG)

    if arguments.scenariodir:
        logger.info('Using scenario dir: %s' % arguments.scenariodir)

    scenario = EventContainer(arguments.scenariodir)
    # scenario events from arguments
    if arguments.bui:
        if str(arguments.bui) in AREA_WIDE_RAIN.keys():
            scenario.add(
                AreaWideGrid, sim_time_start=0, sim_time_end=None,
                rain_definition=str(arguments.bui), type=None)
    if arguments.radar:
        scenario.add(
            RadarGrid, sim_time_start=0, sim_time_end=None,
            radar_dt=arguments.radar, sync=1, multiplier=1, type=None)

    logger.info('---- Scenario summary ----')
    for line in scenario.summary():
        logger.info(line)


    subgrid = SubgridWrapper(mdu=arguments.mdu,
                             set_logger=arguments.verbose,
                             output_dir=arguments.outputdir)

    subgrid.start()
    # Should not be needed
    # subgrid.library.initmodel()

    rain_grid_container = RainGridContainer(subgrid)
    if arguments.radar:
        subgrid.subscribe_dataset(rain_grid_container.memcdf_name)

    if arguments.tend:
        t_end = arguments.tend
    else:
        # default
        t_end = subgrid.get_nd('tend')
    logger.info('End time (seconds): %r', t_end)

    t = subgrid.get_nd('t1')  # by reference
    while t < t_end:
        apply_events(subgrid, scenario, rain_grid_container)
        subgrid.update(-1)
        t = subgrid.get_nd('t1')  # by reference

    clean_events(scenario, rain_grid_container)
Example #4
0
 def test_radar_grid_ends_within(self):
     event_container = EventContainer(self.scenario_path)
     # no ending
     self.assertEquals(len(event_container.events(event_object=RadarGrid, sim_time=10000, ends_within=20)), 0)
     # end at 1000
     self.assertEquals(len(event_container.events(event_object=RadarGrid, sim_time=1000, ends_within=20)), 1)
Example #5
0
 def test_radar_grid_start_within(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(len(event_container.events(event_object=RadarGrid, sim_time=120, start_within=30)), 1)
     self.assertEquals(len(event_container.events(event_object=RadarGrid, sim_time=150, start_within=20)), 0)
Example #6
0
 def test_radar_grid_time(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(len(event_container.events(event_object=RadarGrid, sim_time=120.0)), 1)
Example #7
0
 def test_events(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(len(event_container.events(event_object=RadarGrid)), 3)
def main():
    """main program"""
    arguments = parse_args()

    if arguments.color:
        colorlogs()
        # redirect stdout to /dev/null under osx so we get only 1 output stream
        f = open(os.devnull, 'w')
        sys.stderr = f

    logger.info('Subgridpy')
    logger.setLevel(logging.DEBUG)

    if arguments.scenariodir:
        logger.info('Using scenario dir: %s' % arguments.scenariodir)

    scenario = EventContainer(arguments.scenariodir)
    # scenario events from arguments
    if arguments.bui:
        if str(arguments.bui) in AREA_WIDE_RAIN.keys():
            scenario.add(AreaWideGrid,
                         sim_time_start=0,
                         sim_time_end=None,
                         rain_definition=str(arguments.bui),
                         type=None)
    if arguments.radar:
        scenario.add(RadarGrid,
                     sim_time_start=0,
                     sim_time_end=None,
                     radar_dt=arguments.radar,
                     sync=1,
                     multiplier=1,
                     type=None)

    logger.info('---- Scenario summary ----')
    for line in scenario.summary():
        logger.info(line)

    subgrid = SubgridWrapper(mdu=arguments.mdu,
                             set_logger=arguments.verbose,
                             output_dir=arguments.outputdir)

    subgrid.start()
    # Should not be needed
    # subgrid.library.initmodel()

    rain_grid_container = RainGridContainer(subgrid)
    if arguments.radar:
        subgrid.subscribe_dataset(rain_grid_container.memcdf_name)

    if arguments.tend:
        t_end = arguments.tend
    else:
        # default
        t_end = subgrid.get_nd('tend')
    logger.info('End time (seconds): %r', t_end)

    t = subgrid.get_nd('t1')  # by reference
    while t < t_end:
        apply_events(subgrid, scenario, rain_grid_container)
        subgrid.update(-1)
        t = subgrid.get_nd('t1')  # by reference

    clean_events(scenario, rain_grid_container)
 def test_radar_grid_time(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(
         len(event_container.events(event_object=RadarGrid, sim_time=120.)),
         1)
 def test_events(self):
     event_container = EventContainer(self.scenario_path)
     self.assertEquals(len(event_container.events(event_object=RadarGrid)),
                       3)
 def test_smoke(self):
     EventContainer()