code: def get_raster_rules(declarations):
      
      property_map = {'raster-opacity': 'opacity',
                      'raster-mode': 'mode',
                      'raster-scaling': 'scaling'
                      }
  
      property_names = property_map.keys()
  
      # a place to put rules
      rules = []
  
      for (filter, values) in filtered_property_declarations(declarations, property_names):
          sym_params = {}
          for prop,attr in property_map.items():
              sym_params[attr] = values.has_key(prop) and values[prop].value or None
          
          symbolizer = output.RasterSymbolizer(**sym_params)
  
          rules.append(make_rule(filter, symbolizer))
  
      if not rules:
          # No raster-* rules were created, but we're here so we must need a symbolizer.
          rules.append(make_rule(Filter(), output.RasterSymbolizer()))
      
      return rules
docs: Given a Map element, a Layer element, and a list of declarations,
          create a new Style element with a RasterSymbolizer, add it to Map
          and refer to it in Layer.
          
          The RasterSymbolizer will always created, even if there are
          no applicable declarations.