1"use strict";(self.webpackChunkfactverse_docs=self.webpackChunkfactverse_docs||[]).push([[18623],{24875:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});const i=JSON.parse('{"id":"modules/district-heating-data-topology","title":"Prepare Smart District Heating Data and Network Topology","description":"Map heat sources, pipelines, substations, buildings, signals, weather, work records, and quality evidence for district-heating operations.","source":"@site/.generated/en/docs/modules/district-heating-data-topology.md","sourceDirName":"modules","slug":"/modules/district-heating-data-topology","permalink":"/factverse-docs/modules/district-heating-data-topology","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":102,"frontMatter":{"slug":"/modules/district-heating-data-topology","title":"Prepare Smart District Heating Data and Network Topology","description":"Map heat sources, pipelines, substations, buildings, signals, weather, work records, and quality evidence for district-heating operations.","sidebar_label":"Data and Network Topology","sidebar_position":102},"sidebar":"docs","previous":{"title":"Getting Started","permalink":"/factverse-docs/modules/district-heating-getting-started"},"next":{"title":"Forecast and Anomaly Review","permalink":"/factverse-docs/modules/district-heating-forecast-anomaly-review"}}');var r=n(74848),s=n(28453);const a={slug:"/modules/district-heating-data-topology",title:"Prepare Smart District Heating Data and Network Topology",description:"Map heat sources, pipelines, substations, buildings, signals, weather, work records, and quality evidence for district-heating operations.",sidebar_label:"Data and Network Topology",sidebar_position:"102"},d="Prepare Smart District Heating Data and Network Topology",o={},l=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Data model",id:"data-model",level:2},{value:"Required mappings",id:"required-mappings",level:2},{value:"Prepare the data",id:"prepare-the-data",level:2},{value:"Quality checks",id:"quality-checks",level:2},{value:"Validation checklist",id:"validation-checklist",level:2},{value:"Expected output",id:"expected-output",level:2},{value:"Failure handling",id:"failure-handling",level:2},{value:"Related docs",id:"related-docs",level:2}];function c(e){const t={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",mermaid:"mermaid",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"prepare-smart-district-heating-data-and-network-topology",children:"Prepare Smart District Heating Data and Network Topology"})}),"\n",(0,r.jsx)(t.p,{children:"The operating model depends on consistent network identity and time-series context. Build the source mapping before comparing stations, estimating state, calibrating a simulation, or preparing a dispatch recommendation."}),"\n",(0,r.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"Access to approved SCADA, meter, weather, asset, inspection, and work-order sources."}),"\n",(0,r.jsx)(t.li,{children:"An owner for asset identity and source-tag mapping."}),"\n",(0,r.jsx)(t.li,{children:"A reviewed network diagram or pipeline register."}),"\n",(0,r.jsx)(t.li,{children:"Agreed timezone, units, sampling interval, and quality flags."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"data-model",children:"Data model"}),"\n",(0,r.jsx)(t.mermaid,{value:"flowchart LR\n H[Heat source] --\x3e P[Pipeline and branch]\n P --\x3e S[Substation]\n S --\x3e Z[Zone or building]\n M[SCADA and meters] --\x3e I[Stable identity and tag mapping]\n W[Weather] --\x3e I\n O[Work orders and inspections] --\x3e I\n I --\x3e H\n I --\x3e P\n I --\x3e S\n I --\x3e Z"}),"\n",(0,r.jsx)(t.h2,{id:"required-mappings",children:"Required mappings"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Object"}),(0,r.jsx)(t.th,{children:"Minimum fields"}),(0,r.jsx)(t.th,{children:"Useful additions"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Heat source"}),(0,r.jsx)(t.td,{children:"Stable ID, name, status, source system"}),(0,r.jsx)(t.td,{children:"Capacity, supply and return boundaries, meter IDs"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Pipeline or branch"}),(0,r.jsx)(t.td,{children:"Stable ID, upstream, downstream, length"}),(0,r.jsx)(t.td,{children:"Diameter, roughness, insulation, resistance, heat-loss parameter"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Substation"}),(0,r.jsx)(t.td,{children:"Stable ID, network node, status"}
1),(0,r.jsx)(t.td,{children:"Pump, exchanger, valve, meter, served building or zone"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Building or zone"}),(0,r.jsx)(t.td,{children:"Stable ID, serving station"}),(0,r.jsx)(t.td,{children:"Floor area, envelope or load coefficient, thermal capacity, comfort range"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Signal"}),(0,r.jsx)(t.td,{children:"Tag ID, asset binding, unit, timestamp"}),(0,r.jsx)(t.td,{children:"quality flag, calibration date, expected range"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Work record"}),(0,r.jsx)(t.td,{children:"Work-order ID, asset or station binding, status"}),(0,r.jsx)(t.td,{children:"symptom, cause, action, attachment, measured outcome"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"prepare-the-data",children:"Prepare the data"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsx)(t.li,{children:"Export or connect the approved asset, pipeline, station, and tag registers."}),"\n",(0,r.jsx)(t.li,{children:"Resolve aliases across SCADA, GIS, ERP, CMMS, and inspection systems."}),"\n",(0,r.jsx)(t.li,{children:"Bind signals to the correct source, branch, station, equipment, or zone."}),"\n",(0,r.jsx)(t.li,{children:"Normalize temperature, pressure, flow, heat, valve, pump, and weather units."}),"\n",(0,r.jsx)(t.li,{children:"Mark sensor outages, maintenance periods, manual overrides, and topology changes."}),"\n",(0,r.jsx)(t.li,{children:"Review station and network freshness before enabling forecasts or analysis."}),"\n",(0,r.jsx)(t.li,{children:"Create a versioned topology and data-readiness record for the study period."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"quality-checks",children:"Quality checks"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Check"}),(0,r.jsx)(t.th,{children:"Review question"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Identity"}),(0,r.jsx)(t.td,{children:"Do all source tags resolve to one intended operating object?"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Topology"}),(0,r.jsx)(t.td,{children:"Are upstream, downstream, branch, and serving relationships complete for the selected scope?"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Time"}),(0,r.jsx)(t.td,{children:"Are timezone, clock drift, sampling interval, and aggregation rules consistent?"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Units"}),(0,r.jsx)(t.td,{children:"Are pressure reference, flow basis, temperature, heat, and energy units explicit?"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Physics"}),(0,r.jsx)(t.td,{children:"Do supply and return relationships, flow direction, and plausible ranges pass engineering review?"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Work context"}),(0,r.jsx)(t.td,{children:"Are outages and abnormal values explained by work orders, inspections, or operating logs?"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"validation-checklist",children:"Validation checklist"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"Every source tag resolves to the intended operating object or remains explicitly unresolved."}),"\n",(0,r.jsx)(t.li,{children:"The selected network scope has complete upstream, downstream, and serving relationships."}),"\n",(0,r.jsx)(t.li,{children:"Units, timezone, sampling, and aggregation rules are recorded with the input version."}),"\n",(0,r.jsx)(t.li,{children:"Sensor outages, maintenance periods, overrides, and topology changes are visible."}),"\n",(0,r.jsx)(t.li,{children:"The operations and data owners have accepted the readiness record."}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"expected-output",children:"Expected output"}),"\n",(0,r.jsx)(t.p,{children:"The workflow produces a versioned network model, source mapping, signal-quality summary, excluded-data list, and named data owner. Forecast and simulation runs should reference this package rather than silently reading changing inputs."}),"\n",(0,r.jsx)(t.h2,{id:"failure-handling",children:"Failure handling"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Problem"}),(0,r.jsx)(t.th,{children:"Response"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"A source tag maps to several assets"}),(0,r.jsx)(t.td,{children:"Stop the join and resolve the identity with the asset owner."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Flow direction changes or is unknown"}),(0,r.jsx)(t.td,{children:"Mark the affected branch and select a model that supports the reviewed operating state."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Pipe parameters are unavailable"}),(0,r.jsx)(t.td,{children:"Start with engineering priors, record confidence, and calibrate against measured station history."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Building response data is incomplete"}),(0,r.jsx)(t.td,{children:"Use a reviewed zone aggregate and state the excluded buildings."})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:"Data changes after a study begins"}),(0,r.jsx)(t.td,{children:"Create a new input version and retain the prior run for comparison."})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"related-docs",children:"Related docs"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/factverse-docs/dfs/lite/connector-configuration/",children:"DFS Connector Configuration"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/factverse-docs/dfs/lite/data-quality/",children:"DFS Data Quality"})}),"\n",(0,r.jsx)(t.li,{children:(0,r.jsx)(t.a,{href:"/factverse-docs/dfs/mdm/industry-recipes/",children:"MDM Industry Recipes"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>d});var i=n(96540);const r={},s=i.createContext(r);function a(e){const t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.