def __init__(self, map_filename=None, output_dir='./', image_size=(800, 600), projection=None, viewport=None, map_BB=None, land_polygons=None, draw_back_to_fore=True, draw_map_bounds=False, draw_spillable_area=False, formats=['png', 'gif'], draw_ontop='forecast', cache=None, output_timestep=None, output_zero_step=True, output_last_step=True, output_start_time=None, on=True, timestamp_attrib={}, **kwargs ): """ Init the image renderer. :param str map_filename=None: name of file for basemap (BNA) :type map_filename: str :param str output_dir='./': directory to output the images :param 2-tuple image_size=(800, 600): size of images to output :param projection=None: projection instance to use: If None, set to projections.FlatEarthProjection() :type projection: a gnome.utilities.projection.Projection instance :param viewport: viewport of map -- what gets drawn and on what scale. Default is full globe: (((-180, -90), (180, 90))) If not specifies, it will be set to the map's bounds. :type viewport: pair of (lon, lat) tuples ( lower_left, upper right ) :param map_BB=None: bounding box of map if None, it will use the bounding box of the mapfile. :param draw_back_to_fore=True: draw the background (map) to the foregound image when outputting the images each time step. :type draw_back_to_fore: boolean :param formats=['gif']: list of formats to output. :type formats: string or list of strings. Options are: ['bmp', 'jpg', 'jpeg', 'gif', 'png'] :param draw_ontop: draw 'forecast' or 'uncertain' LEs on top. Default is to draw 'forecast' LEs, which are in black on top :type draw_ontop: str Following args are passed to base class Outputter's init: :param cache: sets the cache object from which to read prop. The model will automatically set this param :param output_timestep: default is None in which case everytime the write_output is called, output is written. If set, then output is written every output_timestep starting from model_start_time. :type output_timestep: timedelta object :param output_zero_step: default is True. If True then output for initial step (showing initial release conditions) is written regardless of output_timestep :type output_zero_step: boolean :param output_last_step: default is True. If True then output for final step is written regardless of output_timestep :type output_last_step: boolean Remaining kwargs are passed onto baseclass's __init__ with a direct call: Outputter.__init__(..) """ projection = (projections.FlatEarthProjection() if projection is None else projection) # set up the canvas self.map_filename = map_filename self.output_dir = output_dir if map_filename is not None and land_polygons is None: self.land_polygons = haz_files.ReadBNA(map_filename, 'PolygonSet') elif land_polygons is not None: self.land_polygons = land_polygons else: self.land_polygons = [] # empty list so we can loop thru it self.last_filename = '' self.draw_ontop = draw_ontop self.draw_back_to_fore = draw_back_to_fore Outputter.__init__(self, cache, on, output_timestep, output_zero_step, output_last_step, output_start_time, output_dir, **kwargs) if map_BB is None: if not self.land_polygons: map_BB = ((-180, -90), (180, 90)) else: map_BB = self.land_polygons.bounding_box self.map_BB = map_BB viewport = self.map_BB if viewport is None else viewport MapCanvas.__init__(self, image_size, projection=projection, viewport=viewport) # assorted rendering flags: self.draw_map_bounds = draw_map_bounds self.draw_spillable_area = draw_spillable_area self.raster_map = None self.raster_map_fill = True self.raster_map_outline = False # initilize the images: self.add_colors(self.map_colors) self.background_color = 'background' if self.map_filename is not None: file_prefix = os.path.splitext(self.map_filename)[0] sep = '_' else: file_prefix = sep = '' fn = '{}{}anim.gif'.format(file_prefix, sep) self.anim_filename = os.path.join(output_dir, fn) self.formats = formats self.delay = 50 self.repeat = True self.timestamp_attribs = {} self.set_timestamp_attrib(**timestamp_attrib) self.grids = [] self.props = []
def __init__(self, map_filename=None, output_dir='./', image_size=(800, 600), projection=None, viewport=None, map_BB=None, land_polygons=None, draw_back_to_fore=True, draw_map_bounds=False, draw_spillable_area=False, formats=['png', 'gif'], draw_ontop='forecast', cache=None, output_timestep=None, output_zero_step=True, output_last_step=True, output_start_time=None, on=True, timestamp_attrib={}, **kwargs): """ Init the image renderer. :param str map_filename=None: name of file for basemap (BNA) :type map_filename: str :param str output_dir='./': directory to output the images :param 2-tuple image_size=(800, 600): size of images to output :param projection=None: projection instance to use: If None, set to projections.FlatEarthProjection() :type projection: a gnome.utilities.projection.Projection instance :param viewport: viewport of map -- what gets drawn and on what scale. Default is full globe: (((-180, -90), (180, 90))) If not specifies, it will be set to the map's bounds. :type viewport: pair of (lon, lat) tuples ( lower_left, upper right ) :param map_BB=None: bounding box of map if None, it will use the bounding box of the mapfile. :param draw_back_to_fore=True: draw the background (map) to the foregound image when outputting the images each time step. :type draw_back_to_fore: boolean :param formats=['gif']: list of formats to output. :type formats: string or list of strings. Options are: ['bmp', 'jpg', 'jpeg', 'gif', 'png'] :param draw_ontop: draw 'forecast' or 'uncertain' LEs on top. Default is to draw 'forecast' LEs, which are in black on top :type draw_ontop: str Following args are passed to base class Outputter's init: :param cache: sets the cache object from which to read prop. The model will automatically set this param :param output_timestep: default is None in which case everytime the write_output is called, output is written. If set, then output is written every output_timestep starting from model_start_time. :type output_timestep: timedelta object :param output_zero_step: default is True. If True then output for initial step (showing initial release conditions) is written regardless of output_timestep :type output_zero_step: boolean :param output_last_step: default is True. If True then output for final step is written regardless of output_timestep :type output_last_step: boolean Remaining kwargs are passed onto baseclass's __init__ with a direct call: Outputter.__init__(..) """ projection = (projections.FlatEarthProjection() if projection is None else projection) # set up the canvas self.map_filename = map_filename self.output_dir = output_dir if map_filename is not None and land_polygons is None: self.land_polygons = haz_files.ReadBNA(map_filename, 'PolygonSet') elif land_polygons is not None: self.land_polygons = land_polygons else: self.land_polygons = [] # empty list so we can loop thru it self.last_filename = '' self.draw_ontop = draw_ontop self.draw_back_to_fore = draw_back_to_fore Outputter.__init__(self, cache, on, output_timestep, output_zero_step, output_last_step, output_start_time, output_dir, **kwargs) if map_BB is None: if not self.land_polygons: map_BB = ((-180, -90), (180, 90)) else: map_BB = self.land_polygons.bounding_box self.map_BB = map_BB viewport = self.map_BB if viewport is None else viewport MapCanvas.__init__(self, image_size, projection=projection, viewport=viewport) # assorted rendering flags: self.draw_map_bounds = draw_map_bounds self.draw_spillable_area = draw_spillable_area self.raster_map = None self.raster_map_fill = True self.raster_map_outline = False # initilize the images: self.add_colors(self.map_colors) self.background_color = 'background' if self.map_filename is not None: file_prefix = os.path.splitext(self.map_filename)[0] sep = '_' else: file_prefix = sep = '' fn = '{}{}anim.gif'.format(file_prefix, sep) self.anim_filename = os.path.join(output_dir, fn) self.formats = formats self.delay = 50 self.repeat = True self.timestamp_attribs = {} self.set_timestamp_attrib(**timestamp_attrib) self.grids = [] self.props = []
def __init__( self, filename, images_dir, image_size=(800, 600), cache=None, output_timestep=None, output_zero_step=True, output_last_step=True, draw_ontop='forecast', **kwargs ): """ Init the image renderer. Following args are passed to base class Outputter's init: :param cache: sets the cache object from which to read data. The model will automatically set this param :param output_timestep: default is None in which case everytime the write_output is called, output is written. If set, then output is written every output_timestep starting from model_start_time. :type output_timestep: timedelta object :param output_zero_step: default is True. If True then output for initial step (showing initial release conditions) is written regardless of output_timestep :type output_zero_step: boolean :param output_last_step: default is True. If True then output for final step is written regardless of output_timestep :type output_last_step: boolean :param draw_ontop: draw 'forecast' or 'uncertain' LEs on top. Default is to draw 'forecast' LEs, which are in black on top :type draw_ontop: str Remaining kwargs are passed onto baseclass's __init__ with a direct call: MapCanvas.__init__(..) Optional parameters (kwargs) :param projection_class: gnome.utilities.projections class to use. Default is gnome.utilities.projections.FlatEarthProjection :param map_BB: map bounding box. Default is to use land_polygons.bounding_box. If land_polygons is None, then this is the whole world, defined by ((-180,-90),(180, 90)) :param viewport: viewport of map -- what gets drawn and on what scale. Default is to set viewport = map_BB :param image_mode: Image mode ('P' for palette or 'L' for Black and White image). BW_MapCanvas inherits from MapCanvas and sets the mode to 'L'. Default image_mode is 'P'. :param id: unique identifier for a instance of this class (UUID given as a string). This is used when loading an object from a persisted model. """ # set up the canvas self._filename = filename polygons = haz_files.ReadBNA(filename, 'PolygonSet') Outputter.__init__(self, cache, output_timestep, output_zero_step, output_last_step) MapCanvas.__init__(self, image_size, land_polygons=polygons, **kwargs) self.images_dir = images_dir self.last_filename = '' self.draw_ontop = draw_ontop
def __init__( self, filename=None, images_dir="./", image_size=(800, 600), cache=None, output_timestep=None, output_zero_step=True, output_last_step=True, draw_ontop="forecast", draw_back_to_fore=True, **kwargs ): """ Init the image renderer. Following args are passed to base class Outputter's init: :param filename: the name of the image file :param images_dir: the folder in which to write the image :param image_size: the width and height of the image :param cache: sets the cache object from which to read data. The model will automatically set this param :param output_timestep: default is None in which case everytime the write_output is called, output is written. If set, then output is written every output_timestep starting from model_start_time. :type output_timestep: timedelta object :param output_zero_step: default is True. If True then output for initial step (showing initial release conditions) is written regardless of output_timestep :type output_zero_step: boolean :param output_last_step: default is True. If True then output for final step is written regardless of output_timestep :type output_last_step: boolean :param draw_ontop: draw 'forecast' or 'uncertain' LEs on top. Default is to draw 'forecast' LEs, which are in black on top :type draw_ontop: str :param draw_back_to_fore=True: draw the background (map) to the foregound image when drawing Elements. :type draw_ontop: boolean Remaining kwargs are passed onto baseclass's __init__ with a direct call: MapCanvas.__init__(..) Optional parameters (kwargs) :param projection_class: gnome.utilities.projections class to use. Default is gnome.utilities.projections.FlatEarthProjection :param map_BB: map bounding box. Default is to use land_polygons.bounding_box. If land_polygons is None, then this is the whole world, defined by ((-180,-90),(180, 90)) :param viewport: viewport of map -- what gets drawn and on what scale. Default is to set viewport = map_BB :param image_mode: Image mode ('P' for palette or 'L' for Black and White image). BW_MapCanvas inherits from MapCanvas and sets the mode to 'L'. Default image_mode is 'P'. """ # set up the canvas self._filename = filename if filename is not None: polygons = haz_files.ReadBNA(filename, "PolygonSet") else: polygons = None self.images_dir = images_dir self.last_filename = "" self.draw_ontop = draw_ontop self.draw_back_to_fore = draw_back_to_fore Outputter.__init__( self, cache, kwargs.pop("on", True), output_timestep, output_zero_step, output_last_step, kwargs.pop("name", None), ) MapCanvas.__init__(self, image_size, land_polygons=polygons, **kwargs)
def __init__(self, filename=None, images_dir='./', image_size=(800, 600), cache=None, output_timestep=None, output_zero_step=True, output_last_step=True, draw_ontop='forecast', draw_back_to_fore=True, **kwargs): """ Init the image renderer. Following args are passed to base class Outputter's init: :param filename: the name of the image file :param images_dir: the folder in which to write the image :param image_size: the width and height of the image :param cache: sets the cache object from which to read data. The model will automatically set this param :param output_timestep: default is None in which case everytime the write_output is called, output is written. If set, then output is written every output_timestep starting from model_start_time. :type output_timestep: timedelta object :param output_zero_step: default is True. If True then output for initial step (showing initial release conditions) is written regardless of output_timestep :type output_zero_step: boolean :param output_last_step: default is True. If True then output for final step is written regardless of output_timestep :type output_last_step: boolean :param draw_ontop: draw 'forecast' or 'uncertain' LEs on top. Default is to draw 'forecast' LEs, which are in black on top :type draw_ontop: str :param draw_back_to_fore=True: draw the background (map) to the foregound image when drawing Elements. :type draw_ontop: boolean Remaining kwargs are passed onto baseclass's __init__ with a direct call: MapCanvas.__init__(..) Optional parameters (kwargs) :param projection_class: gnome.utilities.projections class to use. Default is gnome.utilities.projections.FlatEarthProjection :param map_BB: map bounding box. Default is to use land_polygons.bounding_box. If land_polygons is None, then this is the whole world, defined by ((-180,-90),(180, 90)) :param viewport: viewport of map -- what gets drawn and on what scale. Default is to set viewport = map_BB :param image_mode: Image mode ('P' for palette or 'L' for Black and White image). BW_MapCanvas inherits from MapCanvas and sets the mode to 'L'. Default image_mode is 'P'. """ # set up the canvas self._filename = filename if filename is not None: polygons = haz_files.ReadBNA(filename, 'PolygonSet') else: polygons = None self.images_dir = images_dir self.last_filename = '' self.draw_ontop = draw_ontop self.draw_back_to_fore = draw_back_to_fore Outputter.__init__(self, cache, kwargs.pop('on', True), output_timestep, output_zero_step, output_last_step, kwargs.pop('name', None)) MapCanvas.__init__(self, image_size, land_polygons=polygons, **kwargs)