@classmethod
def create_merged_typology(cls, typology_one, typology_two):
    """Creates a merged typology between two typologies of the same building type.

        Args:
            typology_one: The first Dragonfly building typology.
            typology_two: The second Dragonfly building typology.

        Returs:
            merged_typology: A Dragonfly typology representing the
                merged previous typologies.
        """
    assert hasattr(typology_one, 'isTypology'
        ), 'typology_one must be a Dragonfly typology. got {}'.format(type(
        typology_one))
    assert hasattr(typology_two, 'isTypology'
        ), 'typology_two must be a Dragonfly typology. got {}'.format(type(
        typology_two))
    assert typology_one.bldg_program == typology_two.bldg_program, 'bldg_program of one: {} does not match that of two: {}'.format(
        typology_one.bldg_program, typology_two.bldg_program)
    assert typology_one.bldg_age == typology_two.bldg_age, 'bldg_age of this one: {} does not match that of two: {}'.format(
        typology_one.bldg_age, typology_two.bldg_age)
    new_footprint_area = (typology_one.footprint_area + typology_two.
        footprint_area)
    new_facade_area = typology_one.facade_area + typology_two.facade_area
    new_floor_area = typology_one.floor_area + typology_two.floor_area
    new_average_height = (typology_one.average_height * typology_one.
        footprint_area + typology_two.average_height * typology_two.
        footprint_area) / new_footprint_area
    new_floor_to_floor = (typology_one.floor_to_floor * typology_one.
        floor_area + typology_two.floor_to_floor * typology_two.floor_area
        ) / new_floor_area
    new_fract_heat_to_canyon = (typology_one.fract_heat_to_canyon *
        typology_one.floor_area + typology_two.fract_heat_to_canyon *
        typology_two.floor_area) / new_floor_area
    new_glz_ratio = (typology_one.glz_ratio * typology_one.facade_area + 
        typology_two.glz_ratio * typology_two.facade_area) / new_facade_area
    new_wall_albedo = (typology_one.wall_albedo * typology_one.facade_area +
        typology_two.wall_albedo * typology_two.facade_area) / new_facade_area
    newtypology = cls(new_average_height, new_footprint_area,
        new_facade_area, typology_one.bldg_program, typology_one.bldg_age,
        new_floor_to_floor, new_fract_heat_to_canyon, new_glz_ratio,
        new_floor_area)
    newtypology.wall_albedo = new_wall_albedo
    return newtypology
