Map more peabody elements

This commit is contained in:
Daniel Roth 2026-01-23 15:54:53 +00:00
parent 42cfcf604c
commit 7741373671
3 changed files with 86 additions and 27 deletions

View file

@ -28,3 +28,4 @@ class AspectType(str, Enum):
COVERING = "covering"
FIRE_RATING = "fire_rating"
EXTERNAL_DECORATION = "external_decoration"
WORK_REQUIRED = "work_required"

View file

@ -23,6 +23,9 @@ class Element(str, Enum):
RAINWATER_GOODS = "rainwater_goods"
LOFT_INSULATION = "loft_insulation"
PORCH_CANOPY = "porch_canopy"
CHIMNEY = "chimney"
FASCIA = "fascia"
SOFFIT = "soffit"
# ======================
# EXTERNAL WALLS
@ -45,6 +48,8 @@ class Element(str, Enum):
STORE_DOOR = "store_door"
GARAGE_DOOR = "garage_door"
COMMUNAL_ENTRANCE_DOOR = "communal_entrance_door"
MAIN_DOOR = "main_door"
BLOCK_ENTRANCE_DOOR = "block_entrance_door"
# ======================
# EXTERNAL AREAS
@ -59,6 +64,8 @@ class Element(str, Enum):
BALCONY_BALUSTRADE = "balcony_balustrade"
OUTBUILDINGS = "outbuildings"
GARAGE_STRUCTURE = "garage_structure"
PAVING = "paving"
ROADS = "roads"
# ======================
# INTERNAL KITCHEN
@ -110,6 +117,7 @@ class Element(str, Enum):
COMMUNAL_CCTV = "communal_cctv"
COMMUNAL_BIN_STORE = "communal_bin_store"
COMMUNAL_REFUSE_CHUTE = "communal_refuse_chute"
COMMUNAL_FLOOR_COVERING = "communal_floor_covering"
# ==========================================================
# HHSRS ALL 29 HAZARDS

View file

@ -25,13 +25,65 @@ PEABODY_ELEMENT_MAP = {
# ==========================================================
# EXTERNAL ROOFS
# ==========================================================
(110, 1): ElementMapping(element=Element.ROOF, aspect_type=AspectType.COVERING),
(110, 1): ElementMapping(
element=Element.ROOF, aspect_type=AspectType.MATERIAL, element_instance=1
),
(110, 2): ElementMapping(
element=Element.ROOF, aspect_type=AspectType.MATERIAL, element_instance=1
),
(110, 3): ElementMapping(
element=Element.CHIMNEY, aspect_type=AspectType.WORK_REQUIRED
),
(110, 4): ElementMapping(element=Element.FASCIA, aspect_type=AspectType.MATERIAL),
(110, 5): ElementMapping(element=Element.SOFFIT, aspect_type=AspectType.MATERIAL),
(110, 6): ElementMapping(
element=Element.RAINWATER_GOODS, aspect_type=AspectType.MATERIAL
),
(110, 7): ElementMapping(
element=Element.LOFT_INSULATION,
aspect_type=AspectType.WORK_REQUIRED, # possibly not the right aspect type
),
(110, 8): ElementMapping(
element=Element.PORCH_CANOPY, aspect_type=AspectType.MATERIAL
),
# ==========================================================
# EXTERNAL DOORS & WINDOWS
# ==========================================================
(130, 1): ElementMapping(
element=Element.EXTERNAL_WINDOWS, aspect_type=AspectType.MATERIAL
),
(130, 2): ElementMapping(
element=Element.COMMUNAL_WINDOWS, aspect_type=AspectType.MATERIAL
),
(140, 1): ElementMapping(
element=Element.MAIN_DOOR, aspect_type=AspectType.MATERIAL
),
(140, 2): ElementMapping(
element=Element.STORE_DOOR, aspect_type=AspectType.MATERIAL
),
(140, 3): ElementMapping(
element=Element.GARAGE_DOOR, aspect_type=AspectType.MATERIAL
),
(140, 4): ElementMapping(
element=Element.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL
),
# ==========================================================
# EXTERNAL AREAS
# ==========================================================
(150, 1): ElementMapping(
element=Element.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL
),
(150, 2): ElementMapping(
element=Element.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL
),
(150, 3): ElementMapping(element=Element.ROADS, aspect_type=AspectType.MATERIAL),
(150, 4): ElementMapping(
element=Element.BOUNDARY_WALLS, aspect_type=AspectType.MATERIAL
),
(150, 5): ElementMapping(element=Element.OUTBUILDINGS, aspect_type=AspectType.TYPE),
(150, 6): ElementMapping(
element=Element.GARAGE_STRUCTURE, aspect_type=AspectType.TYPE
),
# ==========================================================
# INTERNAL BATHROOMS & KITCHENS
# ==========================================================
@ -39,9 +91,30 @@ PEABODY_ELEMENT_MAP = {
(190, 1): ElementMapping(
element=Element.BATHROOM, aspect_type=AspectType.CONDITION
),
# --------------------
# HHSRS (PEABODY)
# --------------------
# ==========================================================
# COMMUNAL SYSTEMS
# ==========================================================
(200, 1): ElementMapping(
element=Element.COMMUNAL_BOILER, aspect_type=AspectType.TYPE
),
(200, 2): ElementMapping(
element=Element.COMMUNAL_HEATING, aspect_type=AspectType.TYPE
),
(200, 3): ElementMapping(
element=Element.COMMUNAL_ELECTRICS, aspect_type=AspectType.TYPE
),
(200, 4): ElementMapping(
element=Element.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE
),
(200, 5): ElementMapping(
element=Element.COMMUNAL_LIFT, aspect_type=AspectType.TYPE
),
(200, 6): ElementMapping(
element=Element.COMMUNAL_FLOOR_COVERING, aspect_type=AspectType.MATERIAL
),
# ==========================================================
# HHSRS
# ==========================================================
(54, 1): ElementMapping(
element=Element.HHSRS_DAMP_AND_MOULD, aspect_type=AspectType.RISK
),
@ -58,22 +131,7 @@ PEABODY_ELEMENT_MAP = {
# unhandled
# 'Element: ROOFS - Code: 110, Sub-Element: Chimney - Code: 3',
# 'Element: ROOFS - Code: 110, Sub-Element: Fascia - Code: 4',
# 'Element: ROOFS - Code: 110, Sub-Element: Rainwater Goods - Code: 6',
# 'Element: WINDOWS - Code: 130, Sub-Element: Communal Windows - Code: 2',
# 'Element: DOORS - Code: 140, Sub-Element: Main Doors - Code: 1',
# 'Element: DOORS - Code: 140, Sub-Element: Block Entrance Doors - Code: 4',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Paving - Code: 1',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Boundaries - Code: 4',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Boiler - Code: 1',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Heating - Code: 2',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Electrics - Code: 3',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Fire Detection - Code: 4',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Floor Covering - Code: 6',
# 'Element: ROOFS - Code: 110, Sub-Element: Soffit - Code: 5',
# 'Element: External - Code: 53, Sub-Element: Window Type 01 - Code: 38',
# 'Element: ROOFS - Code: 110, Sub-Element: Secondary Roof - Code: 2',
# 'Element: HEATING - Code: 170, Sub-Element: Boiler - Code: 1',
# 'Element: HEATING - Code: 170, Sub-Element: Heating Distribution - Code: 2',
# 'Element: ELECTRICS - Code: 180, Sub-Element: Wiring - Code: 1',
@ -83,16 +141,9 @@ PEABODY_ELEMENT_MAP = {
# 'Element: HEATING - Code: 170, Sub-Element: Secondary Heating - Code: 3',
# 'Element: BATHROOM - Code: 190, Sub-Element: Secondary Toilet - Code: 2',
# 'Element: ELECTRICS - Code: 180, Sub-Element: Carbon Monoxide Alarms - Code: 4',
# 'Element: ROOFS - Code: 110, Sub-Element: Porch/Bay/Canopy - Code: 8',
# 'Element: HEATING - Code: 170, Sub-Element: Hot Water - Code: 5',
# 'Element: DOORS - Code: 140, Sub-Element: Garage Doors - Code: 3',
# 'Element: HEATING - Code: 170, Sub-Element: Cold Water - Code: 4',
# 'Element: DOORS - Code: 140, Sub-Element: Store Doors - Code: 2',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Hardstanding - Code: 2',
# 'Element: WALLS - Code: 120, Sub-Element: Wall Insulation - Code: 3',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Roads - Code: 3',
# 'Element: ROOFS - Code: 110, Sub-Element: Loft Insulation - Code: 7',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Outbuilding - Code: 5',
# 'Element: Internal - Code: 50, Sub-Element: Additional WC - Code: 1',
# 'Element: Internal - Code: 50, Sub-Element: Carbon Monoxide Detector Type - Code: 2',
# 'Element: Internal - Code: 50, Sub-Element: CCU - Code: 3',
@ -103,7 +154,6 @@ PEABODY_ELEMENT_MAP = {
# 'Element: Internal - Code: 50, Sub-Element: Kitchen Type - Code: 14',
# 'Element: Internal - Code: 50, Sub-Element: Primary Bathroom Type - Code: 18',
# 'Element: Internal - Code: 50, Sub-Element: Smoke Detector Type - Code: 21',
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Garage - Code: 6',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Lifts - Code: 5',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Kitchen - Code: 7',
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Bathroom - Code: 8',