Establishing transmission line locations from polyline features
Patent Information
- Application Number
- PCT/US2026/020731
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-03-25
- Filing Date
- 2026-03-25
- Publication Date
- 2026-10-01
Smart Images

Figure US2026020731_01102026_PF_FP_ABST
Abstract
Description
Attorney Docket No.: 43374-0870WO1ESTABLISHING TRANSMISSION LINE LOCATIONS FROM POLYLINE FEATURESCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority to U.S. Application No. 63 / 777,508, filed on March 25, 2025, the contents of which are hereby incorporated by reference.TECHNICAL FIELD
[0002] The present specification relates to electrical power grids, and specifically to generating models of electrical power grids.BACKGROUND
[0003] Electrical power grids transmit electrical power to loads such as residential and commercial buildings. Various electrical power grid conditions can be simulated and visualized using electrical power grid models. Electrical grid models are used to evaluate and predict operations and potential faults in an electric grid, and for future planning. However, present approaches for modeling electric grids often do not take into account the locations of important electric grid components.
[0004] Geographic locations of transmission lines are typically represented as polyline features in a geographical information system (GIS), or in a file exported from a GIS. A GIS polyline feature can be specified in a table with a column of geographic locations. In general, geographic locations may be points, lines, polylines, polygons, etc. In the case of a polyline feature, the geographic locations are polylines. Polylines are also called polygonal chains or linestrings. Each polyline is a series of point locations that are connected. A transmission line feature may have additional attributes, such as a name and a nominal voltage, but these are often unreliable or missing.
[0005] An electrical model of a power transmission network has entities representing buses, transmission lines, and other equipment. An example of a schema for representing such information is the Common Information Model (IEC 61970-301). Each bus resides in a substation. Each transmission line has two endpoints, and each transmission line endpoint isAttorney Docket No.: 43374-0870WO1associated with a bus. Buses and transmission line entities in the electrical model typically have additional attributes, such as a name and a nominal voltage. A subset of bus entities has known locations. These may have been obtained, for example, by matching bus names to GIS point feature attributes (manually, automatically, or some combination of the two).
[0006] Transmission line entities, however, typically do not have known locations.Moreover, there is no simple correspondence between polyline features representing transmission lines and electrical model entities representing transmission lines. For example, a single polyline feature may correspond to several entities, or a single entity may correspond to several polyline features. More generally, each entity may correspond to several concatenated fragments of various polyline features, and there may be some entities and polylines that have no correspondence. Additionally, transmission line entities have an attribute that is analogous to length. This attribute may be a metric length, or any other property that varies linearly with length (e.g., resistance, under appropriate conditions). Moreover, there may be hundreds or thousands of buses, transmission lines, and polyline features.
[0007] The heterogeneous correspondence between polyline features and grid model entities typically occurs as a result of those two datasets being generated by separate, independent processes. For example, polyline features might be generated by tracing transmission lines that are visible in overhead imagery (aerial or satellite), while model entities might be generated by an engineer who is designing an electrical solution in a power system modeling application. However, establishing a correspondence between these disparate data sets is a difficult process, slow, and prone to error.SUMMARY
[0008] In general, the present disclosure relates to a systems, methods and software for assigning geographic locations to electrical model entities representing transmission lines, given geographic locations in the form of polylines that may each span multiple transmission lines and / or portions of transmission lines.
[0009] In general, innovative aspects of the subject matter described in this specification can be embodied a method that performs operations including: accessing data describing an electricAttorney Docket No.: 43374-0870WO1grid model of electrical grid entities, the electric grid model assigning geographic locations to at least some of the electrical grid entities and defining a plurality of line segments, each line segment comprising a first endpoint connected to a second endpoint by the line segment, and wherein each line segment represents a transmission line segment spanning from the first endpoint to the second endpoint; accessing data describing polylines corresponding to the electric grid entities, each polyline comprising a pair of polyline endpoints connected by a polyline, each polyline endpoint labeled with corresponding location; determining line segment strings from the line segments, each line segment string comprising one or more concatenated line segments, and wherein a first endpoint of a first line segment in the line segment string is labeled with a first location, and a second endpoint of a last line segment in the line segment string is labeled with a second location; clustering the endpoints of line segment strings and the endpoints of polylines that are within a threshold distance of each other and representing each set of clustered endpoints as a respective single location; constructing a weighted graph of line segments, wherein each line segment endpoint in the weighted graph of line segments is represented by a node, each edge in the weighted graph of line segments represents a line segment, and each edge weight in the weighted graph of line segments represents an effective length of the line segment; and constructing a weighted graph of polylines based on the weighted graph of line segments, wherein each node in the graph of polylines represents an endpoint cluster, each edge in the weighted graph of polylines represents a polyline segment, and each edge weight in the weighted graph of polylines represents a length of the polyline segment. Other aspects include systems and software operable to perform such operations.
[0010] In an aspect, the method also includes determining, in the weighted graph of polyline segments, a preferred polyline path; determining a path of line segments matching the preferred polyline path; and for nodes in the path of line segments with unknown locations, determining, for each node, a node location based on the effective lengths of the line segments.
[0011] In an aspect, determining a preferred polyline path comprises determining a polyline path with fewest internal nodes relative to other polyline paths.
[0012] In an aspect, determining a preferred polyline path further comprises determining line segments that have similar electrical characteristic attributes.Attorney Docket No.: 43374-0870WO1
[0013] In an aspect, constructing a weighted graph of polylines comprises segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline.
[0014] In an aspect, constructing a weighted graph of polylines comprises segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline.
[0015] Systems and methods implementing these novel features of assigning geographic locations to transmission lines realize one or more of the following advantages. The system reconciles line features of electrical grid models with GIS polyline data using an efficient graph reconciliation process. This reconciliation also allows for display of transmission lines in image form to include presentation of the electrical characteristics of those transmission lines specified in the grid models. The reconciliation also facilitates analysis of suitability of sites as locations for additional generation or load to consider proximity to transmission lines.
[0016] Another advantage over methods that assume a one-to-one correspondence between transmission lines and polylines is that such methods do not adequately solve the problem described, as they inherently require many-to-many matching. Prior systems thus suffer from fidelity shortcomings between GIS data and line data of a grid model.
[0017] Another advantage over methods that assume transmission lines and polylines have attributes that can be matched unambiguously (e.g., a common name or serial number) is that these methods require such information. The disclosed systems and methods do not require such information. Moreover, by utilizing characteristics of the electrical grid model to interpolate length, the line segments of a grid model can be more accurately matched to polyline data, which includes location data.
[0018] Another advantage over prior methods is that while prior methods require some form of manual matching, the disclosed systems and methods provide an automated and efficient method. Prior methods search the space of matches exhaustively. The systems and methods described herein, however, search selectively, and are therefore more practical and provide a much more efficient use of computer resources for large grid models (e g., 100 buses or more).
[0019] The details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.Attorney Docket No.: 43374-0870WO1BRIEF DESCRIPTION OF DRAWINGS
[0020] Fig. 1 is a diagram of an example system for electrical power grid modeling.
[0021] Fig. 2 is a diagram of an environment for simulating electrical grid transmission and distribution
[0022] Figs. 3 A and 3B are representations of line segment data of an electrical grid and corresponding polyline data, respectively.
[0023] Fig. 4 is a flow diagram of an example process for establishing transmission line locations from polyline features.DETAILED DESCRIPTION
[0024] In general, the present disclosure relates to a systems, methods and software for assigning geographic locations to electrical model entities representing transmission lines, given geographic locations in the form of polylines that may each span multiple transmission lines and / or portions of transmission lines.
[0025] In some implementations, the systems and methods described herein address the above-mentioned problems using a combination of various geometric algorithms and graph algorithms. These features and additional features are described in more detail below.
[0026] Fig. l is a diagram of an example system 100 for electrical power grid modeling. The system 100 includes a grid model server system 102. The server system 102 may be hosted within a data center 104, which can be a distributed computing system having many (e.g., tens, hundreds, or thousands) of computers in one or more locations.
[0027] The server system 102 includes a modeling system 150. The modeling system 150 may implement a number of modeling functions as subsystems. In this example implementation, the modeling system 150 includes a model converter subsystem 152, a unified modeling subsystem 154, a grid planning subsystem 156, and a transmission line modeling subsystem 158.
[0028] The system 150, and each subsystem 152, 154, 156 and 158, can be provided as one or more computer executable software modules or hardware modules. That is, some or all of the functions of system and subsystems can be provided as a block of computer code, which upon execution by a processor, causes the processor to perform functions described below. Some or allAttorney Docket No.: 43374-0870WO1of the functions can be implemented in electronic circuitry, e.g., by individual computer systems (e.g., servers), processors, microcontrollers, a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC).
[0029] The server system 102 also includes electric grid models 190. The electric grid models 190 can include virtual representations of components of an electric grid located within a geographic region. The geographic region can include, for example, an area of hundreds of square meters, several square kilometers, hundreds of square kilometers, or thousands of square kilometers. The geographic region can correspond to a location of an electrical distribution feeder or multiple feeders. In some cases, the geographic region can correspond to a location of a bulk power system within and throughout, e.g., a state, county, province, or country.
[0030] The grid models 190 include elements that represent the components of an electrical grid and interconnections among the elements. The components can include inverters, relays, PPCs, Energy Management Systems, RASs, Automatic Generator Controls, alarm systems and so on. In addition, components can include other elements relevant to the transmission and distribution of power, such as transmission towers and utility poles. Elements in the grid model can include references to descriptive information about the components that can include various metadata, such as a unique element identifier for an element, information about the component represented by the element such as make, model, deployment date, damage reports, photographs, service history, role of the element and so on. A role can include whether the element is used for transmission or distribution, or both. The descriptive information can further include information about the environment at or around components, such as temperature and humidity measured at various times. The grid models 190 can further include descriptions of components that connect components, such as power lines. For such connection components, the grid model can include a description of the components connected by the connection component, and a description of the connection component that connects.
[0031] Elements of a grid model 190 can have associated operating conditions that specify constraints on operation of the component. For example, an operating condition can indicate that the temperature at the component cannot exceed a maximum value or that the voltage at aAttorney Docket No.: 43374-0870WO1component must remain within a given range. Operating conditions can be expressed as Boolean expressions and can be associated with an element representing a component.
[0032] The individual models within the electric grid models 190 may be of different formats, and may be used to model different aspects of the electric grid. Each model is a particular virtual representation of the physical grid, based on the electrical components present, how they are connected in a topology, their configurations, parameters and characteristics. The models may be of different types, and may be proprietary or based on open standards. Example proprietary models include PSLF (Positive Sequence Load Flow) and PSS / E (Power System Simulator for Engineering) models. Example open standard models include CIM (Common Interchange Format), IEEE CDF (Common Data Format).
[0033] Electric grid models are also specific to applications, e.g., PSCAD / EMTDC (Power System Computer Aided Design / ElectroMagnetic Transients including DC) formats are used for Electromagnetic Transients (EMT) studies. At other times, the details of the electric grid are represented using textual and graphical representations, e.g., Single Line Diagrams. All of these formats represent the same physical grid in different ways, and in varying degrees of temporal and spatial resolution.
[0034] In some implementations, the electric grid models 190 may be received from third parties, represented by the grid models 112 provided to the modeling system 150. In other implementations, the electric grid model 190 includes models derived from the grid models 112 and / or from other data, as will be described below.
[0035] Grid wire paths 114 may be provided as data representing paths of electric grid wires over a geographic region. The paths of the electric grid wires can be, for example, grid wire paths that are visible in overhead images of the geographic region. In some examples, the wire paths 114 can be provided by vector data. The vector data can be generated through image processing techniques including segmentation processes that are used to identify locations and paths of grid wires, or provided by third parties. The vector data can define characteristics of the grid wire paths (e.g., position, length, direction) by a list or set of vectors. The vector data can include, for example, coordinate positions corresponding to endpoints of vectors. In some examples, the coordinate positions of vector endpoints can each be defined by a geographic latitude and longitude.Attorney Docket No.: 43374-0870WO1
[0036] The data provided to the modeling system 150 can also include planning data 116. Planning data 116 may be provided by third parties, e.g., utilities or power producers, or may be provided by the administrators of the modeling system 150. The planning data 116 may specify build outs, forecast future utility demand, and otherwise define demands and changes to the underlying grid that requires modeling and simulation.
[0037] The modeling system 150 can also receive auxiliary data 170 that can be used in modeling the grid, but which is not itself actual electrical grid data. This can include aerial imagery 172, property boundaries 174, and transportation routes 176 and topological features 178. The auxiliary data 170 can be used to determine modeling and planning constraints for the electrical grid that may not be specified in existing grid models 112 or other grid-specific data.
[0038] The aerial imagery 172 can include imagery collected from overhead sensors.Overhead sensors can include, for example, aerial and satellite sensors. Overhead sensors can include visible light cameras, infrared sensors, RADAR sensors, and LIDAR sensors. The aerial imagery 172 can include visible light data, e.g., red-green-blue (RGB) data, collected by the overhead sensors. The aerial imagery 172 can also include hyperspectral data, multispectral data, infrared data, RADAR data, and LIDAR data collected by the overhead sensors. The aerial imagery 172 can include two-dimensional (2D) data, 2.5D data, or 3D data. The aerial imagery 172 can include multiple channels or layers of imagery data. For example, the aerial imagery 172 can include an RGB layer, a height model layer, a digital surface model layer, and a vegetation index layer. The data 172 can also include geolocation data specifying locations of features depicted in the images. Property boundaries 174 can include image data indicating demarcations between properties, communities, municipalities, towns, counties, etc., within the geographic region. Transportation routes 176 can include image data indicating paths of roads, railroads, sidewalks, waterways, etc. Topological features 178 can include image data indicating elevations, land forms, etc.
[0039] In some examples, auxiliary data 170 can include non-image features. Non-image features can include an identification of the geographic region. The identification of the geographic region can include, for example an identification of a state, province, county, or city. In some examples, the geographic region can include an identification of geographic boundaries of the geographic region, e.g., longitudinal and latitudinal boundaries. In some examples, theAttorney Docket No.: 43374-0870WO1auxiliary data 170 can include property boundaries and transportation routes in vector format. In some examples, the auxiliary training data 170 can be represented as continuous valued features, embedded features, or categorical features.
[0040] The model converter subsystem 152 can be used to convert from a first model type to a second model type. The unified modeling subsystem 154 can be used to generate and maintain a unified grid model from the grid models 112 and other data. A grid planning subsystem 156 can be used for planning grid expansions and evaluating impacts of changes to the grid and demand changes. A transmission line modeling subsystem 158 can be used to model sections of transmission lines. Example operations of the transmission line modeling subsystem 158 are described with reference to Figs. 3A, 3B and 4 below.
[0041] Interdependencies among components can be included in a unified grid model (or “grid model,” for brevity), which is a model that spans the totality of components from generators to end loads (e g. households). A unified model can be a software representation of power system components and electrical networks that can include mathematical representations of the components used for simulation and analysis. Physical components of the electrical grid can be represented by elements of the grid model.
[0042] One of the models 190 can be a unified grid model. A unified grid model can be built using various data sources including topological data, geographical data, and characteristics of individual grid assets. Such data can be obtained from various data sources such as imagery and LIDAR measurements of actual grid components, sensor data (e.g., measurements obtained from actual grid operations), and utility data. Utility data can include information relating to various aspects of the electrical grid, including conductor types, poles and attachments, phase connections, among many other examples.
[0043] Electrical power grids include a broad range of interconnected components that can be organized into two broad categories: transmission components that deliver power from power generation along high voltage wires across long distances to substations, and distribution components that distribute power from substations to endpoints such as homes and businesses. Some elements, such as substations, participate in both transmission and distribution. The components can be of various types such as inverters (Solar, Wind, HVDC, etc.), relays, PowerAttorney Docket No.: 43374-0870WO1Plant Controllers (PPCs), Energy Management Systems, Remedial Action Systems (RAS), Automatic Generator Controls, alarm systems and so on.
[0044] The operation of one component often influences the operation of other components. For example, a PPC regulates and controls networked inverters within a power plant. In addition, various components can operate differently under different load conditions. Further, the output of one component can influence the load of other components. Understanding how the totality of components in the grid operate can aid in proper grid operation.
[0045] Fig. 2 is a diagram of an environment 200 for simulating electrical grid transmission and distribution. Simulations can be used to determine how various components will operate under such varying load conditions. The model used for simulation can be called an electrical grid simulation model (or "simulation model," for brevity), which can operate on a unified grid model or on a subset of a unified grid model.
[0046] The environment can include a simulation system 201, one or more electrical grid simulation models 257 based on the electric grid models 190. The grid simulation models 257 are stored in a simulation repository 255.
[0047] The grid models 190 can include references to one or more simulation models 257 that apply to the grid models 190. In some implementations, each element of a simulation model 257 includes a reference to a simulation model 257 for that element. In some implementations, a simulation model 257 can apply to a subset, or “region,” of the grid model 190.
[0048] The simulation models 257 can include a description of how elements in a grid region (which can be an entire grid or a subset of a grid) are predicted to behave under various electrical conditions, where an electrical condition can include various loads and other conditions (e.g., weather conditions). In some implementations, simulation models 157 can include one or more functions that can accept as input loads and conditions and can produce predicted loads at the elements within and at the boundaries of the portion of the grid being simulated. In some implementations, simulation models 257 can be machine learning models, such as neural networks, configured to accept as input loads and conditions and to produce as output predicted load within and at the boundaries of the portion of the grid being simulated. Other forms of gridAttorney Docket No.: 43374-0870WO1models, including deterministic models, can be used, and various forms of computer simulations (functions, neural networks, computer code, etc.) can be used in combination.
[0049] Such simulation models 257 can accept as input simulated loads at the boundary of the grid region, and can produce predictions that can include (i) predicted loads at one or more of the components within the grid region, (ii) predicted loads at the boundary of the region, or (iii) both predicted loads at the components within the grid region and predicted loads at the boundary of the region.
[0050] The simulation models 257 can apply to an entire grid region, or to a portion of a grid region. In implementations in which a simulation model 257 applies to an entire grid region, the simulation model 257 can accept as inputs and produce outputs for the entire grid region. In some implementations, multiple simulation models 257 apply to the elements in a grid region. For example, each element within a grid region can have an associated simulation model 257, and the simulation can be performed by simulating each element with the grid region. In another example, multiple sub-region within a grid region can have associated simulation models 257, and the simulation can be performed by simulating each sub-region with the grid region.
[0051] In this example implementation, the simulation system 201 includes a simulation model obtaining engine 210, a user interaction engine 217, a boundary condition determination engine 220 and a grid simulation engine 225. The user interaction engine 217 that provides user interface presentation data to computing devices 205 such as personal computer, laptops, smart phones and tablet computer. When rendered by the computing device 205, the user interface presentation data can enable a user to provide information to the user interaction engine 217 that can be used by the simulation system 201. For example, the user interaction engine 217 can provide descriptions of grid model subsets 253 to the grid model engine 215.
[0052] In some implementations, the grid model engine 215 can obtain a grid model 190 and provide grid model subsets 253 to the boundary condition determination engine 220 and to the grid simulation engine 225. A grid model subset 253 can be a proper subset of a grid model 190, and can include elements and connections among the elements. A grid model subset 253 can represent a functional subset of a grid model. For example, one grid model subset 253 can include transmission elements and a second grid model subset 253 can include distribution elements. In another example, one grid model subset 253 can include elements operated by oneAttorney Docket No.: 43374-0870WO1entity (e.g., a power company), and a second grid model subset 253 can include elements operated by a different entity. The grid model subsets 253 are derived from the extant unified grid model 190.
[0053] The grid model engine 215 can obtain a grid model 190 or grid model subsets 253 using techniques suitable for the data repository, such as structured query language (SQL) operations to retrieve data from a relational database or file system operations provided by an operating system to retrieve models from a file system.
[0054] The boundary condition determination engine 220 can accept grid model subsets 253 and determine boundary conditions 222 between the grid model subsets 253. Boundary conditions 222 can represent intersections between elements of one grid model subset 253 and a second grid model subset 253. Boundary conditions can include both overlapping elements (e.g., the same elements that are in each grid model, or elements that are directly coupled to each other in the grid models, such as conductors on either side of a transformer) and conditions that must exist at the elements (e.g., same voltage, same current, or same power).
[0055] A condition can be specified as a Boolean expression that must evaluate to TRUE. For example, a boundary condition can specify that for an element common to two grid model subsets, both grid model subsets the voltage must be the same. In another example, a boundary condition can specify that a property (e.g., a voltage) must be within a specified range for each element subject to the boundary condition. A boundary condition can be an operating condition, as described above.
[0056] The simulation model obtaining engine 210 can obtain simulation models 257 from a simulation model repository 245. The simulation model obtaining engine 210 can obtain simulation models 257 using techniques suitable for the data repository, such as structured query language (SQL) operations to retrieve data from a relational database or file system operations provided by an operating system to retrieve models from a file system. The simulation model obtaining engine 210 can provide simulation models 257 to the grid simulation engine 225.
[0057] The grid simulation engine 225 can accept simulation models 257, grid model subsets 253 and boundary conditions 222 and provide predicted operational values such as voltage andAttorney Docket No.: 43374-0870WO1current. The grid simulation engine 225 can execute simulation models 257 on the grid model subsets 253 and using the boundary conditions 222 as constraints.
[0058] The simulations may vary, based on objectives. For example, one grid model simulation may be for transition analysis, while another may be for steady state analysis, and yet another may be for thermal analysis.
[0059] As described above, a transmission line modeling subsystem 158 for modeling transmission lines of the electrical grid is included in the modeling system 150. Example operations of transmission line modeling system 158 are described with reference to Figs. 3 A, 3B and 4. In particular, the transmission line modeling subsystem matches a collection of line segments with polylines formed by concatenating polyline fragments obtained from a collection of polylines. A typical application is matching entities representing segments of transmission line, e.g., ACLineSegment entities in a grid model represented according to the Common Information Model (IEC 61970-301), with GIS polyline features representing transmission line corridors. Of course, transmission line data from other types of grid models can be matched to polyline features.
[0060] In some implementations, the input for the matching process is a collection of line segments, a map that associates locations with some line segment endpoints, and a collection of polylines with known locations. The output is a map that associates (possibly new) polylines with some line segments.
[0061] The systems and methods do not require that every line segment has a known location, or a 1 : 1 correspondence between line segments and polylines. It may match a line segment to a new polyline constructed from fragments of the polylines supplied as input.
[0062] An example of inputs as is illustrated in Figs. 3 A and 3B, which are representations of line segment data 300 of an electrical grid and corresponding polyline data 350, respectively.
[0063] Fig. 3 A illustrates line segment S, i.e., SO, SI ...S21. A line segment S is defined by a pair of endpoints referred to as a first endpoint and second endpoint. Each endpoint is associated with a node. At least some nodes have 2-D locations, but some may not. In a power grid application, a line segment may be a transmission line, a node may be a bus or substation, and not all buses and substations have known locations. As depicted in Fig. 3A, the segments S each span node pairs. For example, segment SI spans node 302A and 304A. Node 302 represents aAttorney Docket No.: 43374-0870WO1connection to another line segment, e.g., a connection at the same voltage, such as a connection on a utility pole, while node 304A is a substation connection. Line segments may have common nodes. For example, line segment S2 has a second endpoint at node 302B that is also the first endpoint of segment S3. Each node in a line segment may or may not have associated location data that defines its actual geolocation. Typically, line segment data for a line segment does not include location data for a node, unless the line segment is a termination of a line segment string.
[0064] A line segment string is a series of line segments satisfying the following:a. there are one or more line segments in the series;b. the first endpoint of the first line segment in the series is the first endpoint of the line segment string, and the second endpoint of the last line segment is the second endpoint of the line segment string, and both are associated with nodes with known locations (i.e., the locations of the first and last nodes corresponding to the first and second endpoints are known);c. for each line segment of the series except the last, the second endpoint of that line segment is associated with the same node as the first endpoint of the next line segment (i.e., the line segments are connected);d. the first endpoint and the second endpoint of the first line segment, and the second endpoint of each subsequent line segment, are all distinct (i.e., the series is not self-intersecting); ande. for each line segment of the series except the last the second endpoint of the last line segment is associated with a node whose location is unknown (i.e., interior nodes have unknown locations).
[0065] Assume that in Fig. 3A, only the nodes 304A, 304B, 304C and 304D have known locations, e.g., geolocation data for substations represented by the nodes 304A, 304B, 304C and 304D. Also assume that the locations are distinct, i.e., each substation is located at a different designated location. Accordingly, the complete line segment strings in Fig. 3A are:a. line segment string 1, which consists of line segments S2, S3, S4, and S5, with a first endpoint 304 A, and a second endpoint of 304B;b. line segment string 2, which consists of line segments S6, S7, S8, S9, S10 and SI 1, with a first endpoint 304B, and a second endpoint of 304C; andAttorney Docket No.: 43374-0870WO1c. line segment string 3, which consists of line segments S14, S15, S16, and S 17, with a first endpoint 304B, and a second endpoint of 304D.
[0066] Many of the nodes in the line segment strings do not have location data because such data is not necessary for modeling.
[0067] Fig. 3B illustrates corresponding polyline data 350. The polyline data 350 may be from GIS data, from a file exported from a GIS system, or from other data derived from location related data of transmission lines (e.g., transmission line data, including location data, derived from processing aerial images, for example). A polyline is a series of one or more vertices (also referred to as “nodes”) with known locations. Each successive pair of nodes defines a polyline segment. These polyline segments, however, are not necessarily the same as the line segments S described above.
[0068] A polyline string is a series of one or more polylines. A polyline string can be transformed into a single polyline by concatenating the nodes series of the string's polylines.
[0069] Each polyline node has a corresponding location. Locations of nodes are physical locations, and can be represented by Cartesian coordinates in a 2-D coordinate space. This coordinate space may be any in which distance is approximately Euclidean. Typically, it is a 2-D map projection, such as a UTM projection, that is approximately metric in the region occupied by the data. Other data representations of location can also be used, e.g., addresses, GPS positions (which map to 3-D space), etc.
[0070] As shown in Fig. 3B, there are four polylines - Pl, P2, P3 and P4 between nodes 354A, 354B, 354C and 354D. There is no single polyline from node 354B to 354C, but the polylines P2 and P3 form a polyline string that spans nodes 354B and 354C through node 354E.
[0071] In Fig. 3B, the polylines Pl, P2, P3 and P4 do not form the geometric string paths of the line segments strings of Fig. 3 A. This is because the data in Fig. 3B represents the actual physical location of transmission lines and substations. Additionally, the node 354E is not a substation, but instead is a turn in a transmission line, such as may have been required due to a topological constraint, lack of an easement, or some other reason. The node 354E has a distinct location specified as well.
[0072] As can be appreciated from Figs. 3A and 3B, each figure represents different, but related, features of an electrical grid.Attorney Docket No.: 43374-0870WO1
[0073] The line segment data 300 and polyline data 350 may include other data. For example, line segment S has an effective length, which is a floating point value greater than zero. As will be described below, when a line string of two or more line segments S has been matched to a polyline, and each line segment is assigned a portion of the polyline, and the length of that portion is proportional to the effective length of the line segment.
[0074] The effective length can be the metric length of the line segment in the Cartesian coordinate system, or it can be some analog or proxy of that, such as resistance (provided line segments forming a string represent conductors with the same resistance per unit length).
[0075] It is thus desireable to assign to the line segment data 300 location data for its nodes that do not have location data, and to map the polyline data 350 to the line segment data 300. One example process for doing so is described with reference to Fig. 4, which is a flow diagram of an example process 400 for establishing transmission line locations from polyline features. The process 400 can be implemented on a computer system programmed to perform the operations described below.
[0076] The process 400 accesses data describing an electric grid model of electrical grid entities (402). For example, the process accesses grid models 190 of Fig. 1. The electric grid model assigns geographic locations to at least some, but not necessarily all, of the electrical grid entities and defines a set of line segments S. Each line segment includes a first endpoint connected to a second endpoint by the line segment, and each line segment represents a transmission line segment spanning from the first endpoint to the second endpoint. For example, the process 400 accesses the line segment data 300 of Fig. 3 A.
[0077] The process 400 also accesses data describing polylines corresponding to the electric grid entities (404). Each polyline comprising a pair of polyline endpoints connected by a polyline, each polyline endpoint is labeled with a corresponding location. For example, the process 400 accesses the polyline data 350 of Fig. 3B.
[0078] The process 400 determines line segment strings from the line segments (406). Each line segment string includes one or more line segments. When a line segment string has more than one line segment, a first endpoint of a first line segment in the line segment string is labeled with a first location, and a second endpoint of a last line segment in the line segment string is labeled with a second location. To determine a line segment string, the process 400 determines whenAttorney Docket No.: 43374-0870WO1endpoints in the line segment data 300 have location data associated with them. Then the process 400 determines line segment paths that link the endpoints. In some implementations, the process 400 forms a graph of the line segments, and determines the shortest paths in that graph between each pair of nodes that are (a) geolocated (e.g., within a threshold distance of each other), and (b) in the same cluster as (i.e., adjacent to) polyline endpoints. In some implementations, Dijkstra's algorithm is used to find shortest paths. Other path algorithms can also be used, such as a Floyd-Warshall algorithm. For each of these shortest paths, the process 400 searches for a path in the polyline graph that spans those endpoints. Such shortest paths are acyclic.
[0079] Other collections of line segments, such as S3 and S4, are not considered strings because the nodes 302B and 302D do not have associated locations.
[0080] For example, with reference to Fig. 3A, nodes 304A, 304B, 304C and 304D have associated location data. Accordingly, the process 400 determines the line segment string paths as line segment string 1 (line segments S2, S3, S4, and S5, with a first endpoint 304A, and a second endpoint of 304B), line segment string 2 (line segments S6, S7, S8, S9, S10 and SI 1, with a first endpoint 304B, and a second endpoint of 304C), and line segment string 3 (line segments S14, S15, S16, and S17, with a first endpoint 304B, and a second endpoint of 304D).
[0081] The process 400 clusters the endpoints of line segment strings and the endpoints of polylines that are within a threshold distance of each other (408). Each set of clustered endpoints can then be represented as a respective single location. This can also be done for any line segment endpoint.
[0082] In some implementations, to facilitate assigning a line segment to segments or portions of polylines, the process 400 can preprocess polyline data to segment a polyline where the polyline passes within a threshold distance of line segment endpoints or polyline endpoints. In some implementations, polylines can also be segmented where they intersect each other.
[0083] Line segment endpoints and polyline endpoints that are near each other (e g., within the threshold distance) are thus considered collocated. Accordingly, endpoints are then clustered based on spatial proximity, and each cluster is considered a single location. For example, with reference to Figs. 3A and 3B, the line segment endpoints 304A, 304B, 304C and 304D, based on their location data, are respectively within a threshold distance of polyline endpoints 354A, 354B, 354C and 354D.Attorney Docket No.: 43374-0870WO1
[0084] The process 400 then constructs a weighted graph of line segments (410). Each line segment endpoint in the weighted graph of line segments is represented by a node, and each edge in the weighted graph of line segments represents a line segment. Additionally, each edge weight in the weighted graph of line segments represents the effective length of the line segment.
[0085] The process 400 then constructing a weighted graph of polylines (412). Each node in the graph of polylines represents an endpoint cluster, each edge in the weighted graph of polylines represents a polyline segment. Additionally, each edge weight in the weighted graph of polylines represents a length of the polyline segment.
[0086] The process 400, in some implementations, selects pairs of nodes, and determines a shortest path in the line segment graph. If such a path does not exist, the process proceeds to the next pair. Also, if a path exists between the selected nodes, but at least one of its internal nodes is in the same cluster as a polyline endpoint, the systems and methods proceed to the next pair (since the path is a redundant concatenation of other, shorter paths that will be considered during other iterations).
[0087] Given a path in the line segment graph, with endpoint nodes belonging to clusters, the process 400 finds several shortest paths between the corresponding nodes in the polyline graph. Among these polyline paths, the process selects a preferred one, which, in some implementations, is one that has the fewest internal nodes that are in clusters shared by line segment endpoints. When matching transmission line segments with GIS polylines, this discourages matches between strings of conductors and circuitous strings of polylines that pass in the vicinity of substations that are not connected by those conductors.
[0088] In an extension of the systems and methods described above, the selection of this preferred polyline path may also consider the similarity of attributes associated with line segments and polylines. For example, each may have a nominal voltage, and a polyline path may be selected only if its polylines’ nominal voltages match those of the line segments within some tolerance. Similarly, each may have a name, and the preferred polyline path may be one whose names best match those of the line segments.
[0089] A path of line segments and matching path of polylines is thus determined. To determine locations of internal nodes in the line segment path that have unknown locations, the systems and methods use the line segments' effective lengths to estimate the positions of those internal nodesAttorney Docket No.: 43374-0870WO1along the polyline path. The systems and methods then segment the polyline path at those locations, and assign each line segment its corresponding polyline segment. For example, assume the effective length is given by a modeled impedance of the segment relative to the impedance of the entire line segment string. Thus, for a two segment line segment sting, a first segment may have an impedance of Zl, and the second may have an impedance of Z2. If the distance D represented by the polyline graph is 10 kilometers, the length of each line segment can be determined by its constituent impedance Z multiplied by D and divided by the total impedance of the line segment string, e.g., L of line segment 1 is D*Z1 / (Z1+Z2), and L of line segment 2 is D*Z2 / (Z1+Z2).
[0090] In some implementations, the methods can be extended from polylines to multilinestrings. A multilinestring is a collection of one or more polylines. When the supplied geographic locations are not polylines, but rather multilinestrings, the multilinestrings are first decomposed into polylines, and then the method is applied to those polylines.
[0091] Accordingly, the systems and methods described herein solve the problem of assigning geographic locations to electrical model entities representing transmission lines. This is done based on given geographic locations in the form of polylines that may each span multiple transmission lines and / or portions of transmission lines.
[0092] Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-implemented computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory program carrier for execution by, or to control the operation of, data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
[0093] The term “data processing apparatus” refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers.Attorney Docket No.: 43374-0870WO1The apparatus can also be or further include special purpose logic circuitry, e.g., a central processing unit (CPU), a FPGA (field programmable gate array), or an ASIC (applicationspecific integrated circuit). In some implementations, the data processing apparatus and / or special purpose logic circuitry may be hardware-based and / or software-based. The apparatus can optionally include code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. The present disclosure contemplates the use of data processing apparatuses with or without conventional operating systems, for example Linux, UNIX, Windows, Mac OS, Android, iOS or any other suitable conventional operating system.
[0094] A computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, subprograms, or portions of code. A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network. While portions of the programs illustrated in the various figures are shown as individual modules that implement the various features and functionality through various objects, methods, or other processes, the programs may instead include a number of sub-modules, third party services, components, libraries, and such, as appropriate. Conversely, the features and functionality of various components can be combined into single components as appropriate.
[0095] The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows canAttorney Docket No.: 43374-0870WO1also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., a central processing unit (CPU), a FPGA (field programmable gate array), or an ASIC (application-specific integrated circuit).
[0096] Computers suitable for the execution of a computer program include, by way of example, can be based on general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e g., a universal serial bus (USB) flash drive, to name just a few.
[0097] Computer-readable media (transitory or non-transitory, as appropriate) suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The memory may store various objects or data, including caches, classes, frameworks, applications, backup data, jobs, web pages, web page templates, database tables, repositories storing business and / or dynamic information, and any other appropriate information including any parameters, variables, algorithms, instructions, rules, constraints, or references thereto. Additionally, the memory may include any other appropriate data, such as logs, policies, security or access data, reporting fdes, as well as others. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0098] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display), or plasma monitor, for displayingAttorney Docket No.: 43374-0870WO1information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user’s client device in response to requests received from the web browser.
[0099] The term “graphical user interface,” or GUI, may be used in the singular or the plural to describe one or more graphical user interfaces and each of the displays of a particular graphical user interface. Therefore, a GUI may represent any graphical user interface, including but not limited to, a web browser, a touch screen, or a command line interface (CLI) that processes information and efficiently presents the information results to the user. In general, a GUI may include a plurality of user interface (UI) elements, some or all associated with a web browser, such as interactive fields, pull-down lists, and buttons operable by the business suite user. These and other UI elements may be related to or represent the functions of the web browser.
[0100] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN), a wide area network (WAN), e.g., the Internet, and a wireless local area network (WLAN).
[0101] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. TheAttorney Docket No.: 43374-0870WO1relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0102] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of sub-combinations.
[0103] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be helpful. Moreover, the separation of various system modules and components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0104] Particular implementations of the subject matter have been described. Other implementations, alterations, and permutations of the described implementations are within the scope of the following claims as will be apparent to those skilled in the art. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.
[0105] Accordingly, the above description of example implementations does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.
[0106] What is claimed is:Attorney Docket No.: 43374-0870WO1
Claims
Attorney Docket No.: 43374-0870WO1CLAIMS1. A computer-implemented method for assigning geographic locations to electrical model entities representing transmission lines, comprising:accessing data describing an electric grid model of electrical grid entities, the electric grid model assigning geographic locations to at least some of the electrical grid entities and defining a plurality of line segments, each line segment comprising a first endpoint connected to a second endpoint by the line segment, and wherein each line segment represents a transmission line segment spanning from the first endpoint to the second endpoint;accessing data describing polylines corresponding to the electric grid entities, each polyline comprising a pair of polyline endpoints connected by a polyline, each polyline endpoint labeled with corresponding location;determining line segment strings from the line segments, each line segment string comprising one or more concatenated line segments, and wherein a first endpoint of a first line segment in the line segment string is labeled with a first location, and a second endpoint of a last line segment in the line segment string is labeled with a second location;clustering the endpoints of line segment strings and the endpoints of polylines that are within a threshold distance of each other and representing each set of clustered endpoints as a respective single location;constructing a weighted graph of line segments, wherein each line segment endpoint in the weighted graph of line segments is represented by a node, each edge in the weighted graph of line segments represents a line segment, and each edge weight in the weighted graph of line segments represents an effective length of the line segment; andconstructing a weighted graph of polylines, wherein each node in the graph of polylines represents an endpoint cluster, each edge in the weighted graph of polylines represents a polyline segment, and each edge weight in the weighted graph of polylines represents a length of the polyline segment.
2. The computer-implemented method of claim 1, further comprising: determining, in the weighted graph of polyline segments, a preferred polyline path;Attorney Docket No.: 43374-0870WO1determining a path of line segments matching the preferred polyline path;for nodes in the path of line segments with unknown locations, determining, for each node, a node location based on the effective lengths of the line segments.
3. The computer-implemented method of claim 2, wherein determining a preferred polyline path comprises determining a polyline path with fewest internal nodes relative to other polyline paths.
4. The computer-implemented method of claim 2, wherein determining a preferred polyline path further comprises determining line segments that have similar electrical characteristic attributes.
5. The computer-implemented method of claim 2, wherein constructing a weighted graph of polylines comprises segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline.
6. The computer-implemented method of claim 5, wherein segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline further comprises segmenting the polyline where the polyline passes within a threshold distance of line segment endpoints or polyline endpoints.
7. A non-transitory computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:accessing data describing an electric grid model of electrical grid entities, the electric grid model assigning geographic locations to at least some of the electrical grid entities and defining a plurality of line segments, each line segment comprising a first endpoint connected to a second endpoint by the line segment, and wherein each line segment represents a transmission line segment spanning from the first endpoint to the second endpoint;accessing data describing polylines corresponding to the electric grid entities, eachAttorney Docket No.: 43374-0870WO1polyline comprising a pair of polyline endpoints connected by a polyline, each polyline endpoint labeled with corresponding location;determining line segment strings from the line segments, each line segment string comprising one or more concatenated line segments, and wherein a first endpoint of a first line segment in the line segment string is labeled with a first location, and a second endpoint of a last line segment in the line segment string is labeled with a second location;clustering the endpoints of line segment strings and the endpoints of polylines that are within a threshold distance of each other and representing each set of clustered endpoints as a respective single location;constructing a weighted graph of line segments, wherein each line segment endpoint in the weighted graph of line segments is represented by a node, each edge in the weighted graph of line segments represents a line segment, and each edge weight in the weighted graph of line segments represents an effective length of the line segment; andconstructing a weighted graph of polylines based on the weighted graph of line segments, wherein each node in the graph of polylines represents an endpoint cluster, each edge in the weighted graph of polylines represents a polyline segment, and each edge weight in the weighted graph of polylines represents a length of the polyline segment.
8. The non-transitory computer storage medium of claim 7, further comprising: determining, in the weighted graph of polyline segments, a preferred polyline path; determining a path of line segments matching the preferred polyline path;for nodes in the path of line segments with unknown locations, determining, for each node, a node location based on the effective lengths of the line segments.
9. The non-transitory computer storage medium of claim 8, wherein determining a preferred polyline path comprises determining a polyline path with fewest internal nodes relative to other polyline paths.Attorney Docket No.: 43374-0870WO110. The non-transitory computer storage medium of claim 8, wherein determining a preferred polyline path further comprises determining line segments that have similar electrical characteristic attributes.
11. The non-transitory computer storage medium of claim 8, wherein constructing a weighted graph of polylines comprises segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline.
12. The non-transitory computer storage medium of claim 11, wherein segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline further comprises segmenting the polyline where the polyline passes within a threshold distance of line segment endpoints or polyline endpoints.
13. A system, comprising:one or more computers in data communication; anda non-transitory computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:accessing data describing an electric grid model of electrical grid entities, the electric grid model assigning geographic locations to at least some of the electrical grid entities and defining a plurality of line segments, each line segment comprising a first endpoint connected to a second endpoint by the line segment, and wherein each line segment represents a transmission line segment spanning from the first endpoint to the second endpoint;accessing data describing polylines corresponding to the electric grid entities, each polyline comprising a pair of polyline endpoints connected by a polyline, each polyline endpoint labeled with corresponding location;determining line segment strings from the line segments, each line segment string comprising one or more concatenated line segments, and wherein a first endpoint of a first line segment in the line segment string is labeled with a first location, and a second endpoint of a last line segment in the line segment string is labeled with a second location;clustering the endpoints of line segment strings and the endpoints of polylines that areAttorney Docket No.: 43374-0870WO1within a threshold distance of each other and representing each set of clustered endpoints as a respective single location;constructing a weighted graph of line segments, wherein each line segment endpoint in the weighted graph of line segments is represented by a node, each edge in the weighted graph of line segments represents a line segment, and each edge weight in the weighted graph of line segments represents an effective length of the line segment; andconstructing a weighted graph of polylines based on the weighted graph of line segments, wherein each node in the graph of polylines represents an endpoint cluster, each edge in the weighted graph of polylines represents a polyline segment, and each edge weight in the weighted graph of polylines represents a length of the polyline segment.
14. The system of claim 13, further comprising:determining, in the weighted graph of polyline segments, a preferred polyline path; determining a path of line segments matching the preferred polyline path;for nodes in the path of line segments with unknown locations, determining, for each node, a node location based on the effective lengths of the line segments.
15. The system of claim 14, wherein determining a preferred polyline path comprises determining a polyline path with fewest internal nodes relative to other polyline paths.
16. The system of claim 14, wherein determining a preferred polyline path further comprises determining line segments that have similar electrical characteristic attributes.
17. The system of claim 14, wherein constructing a weighted graph of polylines comprises segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline.
18. The system of claim 17, wherein segmenting a polyline based on the endpoints of line segments strings that correspond to a polyline further comprises segmenting the polylineAttorney Docket No.: 43374-0870WO1where the polyline passes within a threshold distance of line segment endpoints or polyline endpoints.