Objects
These are miscellaneous objects that are used throughout the library, documented here for reference.
AssetTypes
The AssetTypes object is used to define the possible types of an Asset.
const AssetTypes = { PIPE: "Pipe", JUNCTION: "Junction", VALVE: "Valve", PUMP: "Pump", SUPPLY_SOURCE: "SupplySource", TANK: "Tank"} as const;
class AssetTypes: PIPE = "Pipe", JUNCTION = "Junction", VALVE = "Valve", PUMP = "Pump", SUPPLY_SOURCE = "SupplySource", TANK = "Tank"
AssetReadings
The AssetReadings object holds the possible readings of an asset, retrieved through the readings API.
{ level: [{ asset: string; date: Date; property: "level"; unit: Unit; value: number }]}
{ flow: [{ asset: string; date: Date; property: "flow"; unit: Unit; value: number }]}
{ pressure: [{ asset: string; date: Date; property: "pressure"; unit: Unit; value: number }], demand: [{ asset: string; date: Date; property: "demand"; unit: Unit; value: number }]}
{ upstreamPressure: [{ asset: string; date: Date; property: "upstreamPressure"; unit: Unit; value: number }], downstreamPressure: [{ asset: string; date: Date; property: "downstreamPressure"; unit: Unit; value: number }], setting: [{ asset: string; date: Date; property: "setting"; unit: Unit; value: number }], status: [{ asset: string; date: Date; property: "status"; unit: Unit; value: number }]}
{ upstreamPressure: [{ asset: string; date: Date; property: "upstreamPressure"; unit: Unit; value: number }], downstreamPressure: [{ asset: string; date: Date; property: "downstreamPressure"; unit: Unit; value: number }], setting: [{ asset: string; date: Date; property: "setting"; unit: Unit; value: number }], status: [{ asset: string; date: Date; property: "status"; unit: Unit; value: number }]}
AssetReadingsCollection
type AssetReadingsCollection<T extends AssetType> = { date: Date readings: AssetReadings<T>}[]
class AssetReadings: date: js.Date readings: AssetReadings
AssetReadingsCollection = list[AssetReadings]
ValveFamilies
const ValveFamilies = { PRV: "PRV", PSV: "PSV", PBV: "PBV", FCV: "FCV", TCV: "TCV", GPV: "GPV"} as const;
class ValveFamilies: PRV = "PRV" PSV = "PSV" PBV = "PBV" FCV = "FCV" TCV = "TCV" GPV = "GPV"
ValveGroups
const ValveGroups = { Regulating: "regulating", ShutOff: "shutOff"} as const;
class ValveGroups: Regulating = "regulating" ShutOff = "shutOff"
PipeGroups
const PipeGroups = { Main: "main", Lateral: "lateral"} as const;
class PipeGroups: Main = "main" Lateral = "lateral"
JunctionGroups
const JunctionGroups = { Hydrant: "hydrant", CustomerPoint: "customerPoint", Junction: "junction"} as const;
class JunctionGroups: Hydrant = "hydrant" CustomerPoint = "customerPoint" Junction = "junction"
Unit
The Unit object is used to define the possible units of a measurement. It is a string that can be one of the following values:
mm
in
kw
hp
m
ft
m^3
ft^3
ft^3/s
l/s
l/m
l/min
Ml/d
m^3/h
m^3/d
gal/min
Mgal/d
Mgallon-imp/d
acre ft/d
km
mi
mwc
m/s
mwc/km
ft/s
ft/kft
psi
percentage
h
ul
null
Units
The Units object is used to define the measurement system used by the network. It is an object with the following properties:
International system
{ "system": "international", "parameters": { "capacity": "percentage", "customer": null, "element_length": "m", "elevation": "m", "flow": "l/s", "network_length": "km", "percentage": "percentage", "pipe_diameter": "mm", "pipe_status": null, "power": "kw", "pressure": "mwc", "pump_status": null, "relative_head": "m", "roughness": null, "tank_diameter": "m", "unitary_headloss": "mwc/km", "valve_status": null, "velocity": "m/s", "volume": "m^3", "water_age": "h" }}
US Customary System
{ "system": "usCustomary", "parameters": { "capacity": "percentage", "customer": null, "element_length": "ft", "elevation": "ft", "flow": "gal/min", "network_length": "mi", "percentage": "percentage", "pipe_diameter": "in", "pipe_status": null, "power": "hp", "pressure": "psi", "pump_status": null, "relative_head": "ft", "roughness": null, "tank_diameter": "ft", "unitary_headloss": "ft/kft", "valve_status": null, "velocity": "ft/s", "volume": "ft^3", "water_age": "h" }}
Materials
The Materials property is used to define the possible materials of a pipe. Its value can be one of:
- AC: Asbestos Cement
- ARO: Abrasion Resistant Outerwrap
- CI: Cast Iron
- COPP: Copper
- CWOSMJ: Concrete Without Steel Metal Jacket
- CWSMJ: Concrete With Steel Metal Jacket
- DI: Ductile Iron
- DIL: Lined Ductile Iron
- FE: Iron
- GI: Galvanized Iron
- GIL: Lined Galvanized Iron
- HDPE: High Density Polyethylene
- L: Lead
- LDPE: Low Density Polyethylene
- MDPE: Medium Density Polyethylene
- NA: Not Available
- PC: Prestressed Concrete
- PE: Polyethylene
- PE80: Polyethylene 80
- PE100: Polyethylene 100
- PVC: Polyvinyl Chloride
- PVCO: Oriented Polyvinyl Chloride
- RC: Reinforced Concrete
- S: Steel
- SI: Spun Iron
- SS: Stainless Steel
- UNK: Unknown
- UPVC: Unplasticized Polyvinyl Chloride
Time
Time has 2 attributes:
- time: The specific Date and time in UTC
- timezone: The timezone to use to localize this date
type Time = { time: Date timezone: string}
class Time: time: datetime timezone: str