IP Library Granted Patent US 12694166
Granted Patent B2
US 12694166 · App. 17/747,712 · Granted Jul 28, 2026

System, method, and, computer products for one-dimensional hydrologic and hydraulic modeling of stream networks

Inventors: Kranti Kumar Bandi (Bridgeville, PA); Brendan Allen Barnes (Woodbury, MN)
Assignee: Michael Baker International, Inc.
G06F30/13G06F17/11G06F17/15
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12694166
App. No.
17/747,712
Granted
Jul 28, 2026
Kind
B2
Abstract

A method, system, and computer program product is provided for obtaining stream network data including a stream network elevation for one or more streams, a plurality of centerlines, and flow information in the stream network, generating a discrete stream points corresponding to a point of a regular interval along a centerline of each stream in the stream network, automatically generating a plurality of normal vectors originating from a unique starting point selected from the plurality of discrete stream points, generating a plurality of non-intersecting cross-sections in the stream network, each non-intersecting cross-section comprising a curve based on the flow information and originating from the normal vectors, each non-intersecting cross-section configured to avoid intersection with each point in its own cross-section while avoiding intersection with points in each of the other non-intersecting cross-sections, and automatically adjusting the plurality of cross-sections to satisfy a hydraulic modeling requirement.

Claims (641)

1 . A computer-implemented method for generating a one-dimensional hydraulic model of a stream network, comprising:

obtaining, on a computing system with a plurality of processors, data including a stream network elevation for one or more streams, a plurality of centerlines, and flow information for the one or more streams in the stream network;

generating, on the computing system, a plurality of discrete stream points, wherein each point corresponds to a point of a regular interval along a centerline of each stream in the stream network;

automatically generating, on the computing system, a plurality of normal vectors of the stream network, each normal vector originating from a unique starting point selected from the plurality of discrete stream points;

generating, on the computing system, a plurality of non-intersecting cross-sections in the stream network, each non-intersecting cross-section comprising a curve based on the flow information and originating from the one or more of the plurality of normal vectors, each non-intersecting cross-section configured to avoid intersection with each point in its own cross-section while avoiding intersection with points in each of an other non-intersecting cross-sections; and

automatically adjusting, on the computing system, the plurality of cross-sections to satisfy a hydraulic modeling requirement plurality of non-intersecting cross-sections,

wherein the curve corresponding to each cross-section passes through a unique point p j on the centerline of the stream network, and generating the cross-sections further comprises:

generating the curve for each non-intersecting cross-section by finding a solution, for each point p j , to equation:

dy

j

dt

=

y

j

=

f

f

,

where

y

j

(

0

)

=

p

j

;

wherein the vector field f(y) includes a sum over a plurality of points p i forming the centerline that are near to the curve based on a spatial indexing structure, and is computed by the equation:

f

(

y

)

=

i

n

i

g

i

d

i

2

,

 and determining n i , g i , and d i from:

n

i

=

[

cos

(

θ

i

-

π

2

)

sin

(

θ

i

-

π

2

)

]

,

 such that θ i =atan 2 (Δp i,1 , Δp i,0 ) and Δp i =p i+1 −p i−1 , and

wherein

g

i

=

{

1

(

u

i

×

v

i

)

2

0

-

1

otherwise

,

when

u

i

=

[

y

0

-

p

i

,

0

y

1

-

p

i

,

0

0

]

,

v

i

=

[

-

n

i

,

1

n

i

,

0

0

]

,

and

d

i

=

y

-

p

i

;

 and

determining the normal vector in any of the discrete points of any stream or reach in the stream network, based on the angle formed in the change between a first point and a second point, wherein the discrete points change with respect to an angle of the stream.

2 . The computer-implemented method of claim 1 , wherein the curve is generated by combining two solutions in an order of left to right in a direction of the stream, wherein one solution provides a left side of the non-intersecting cross-section, and a second solution provides a right side of the non-intersecting cross-section, and the curve comprises a non-planar cross-section.

3 . The computer-implemented method of claim 2 , wherein a hydraulic modeling requirement is adjusted to extend a cross-section to satisfy a minimum elevation increase, to reduce spacing between cross-sections per reach, or to configure a cross-section extent within a predetermined threshold of the width of a floodplain at an intersection of the cross-section and the floodplain.

4 . The computer-implemented method of claim 1 , wherein generating the plurality of non-intersecting cross-sections, comprises any combination of:

generating at least one of the plurality of non-intersecting cross-sections perpendicular to the flow direction, to intersect the centerline of the stream perpendicular to a flow in a local curvature of the stream;

generating at least one of the plurality of non-intersecting cross-sections to include an orientation with respect to a flow-path in overbanks defined by a global curvature of the streams;

generating at least one of the plurality of non-intersecting cross-sections to extend to within a threshold width of a floodplain; or

hydraulic modeling of the cross-section extent for at least one of the plurality of non-intersecting cross-sections within a predetermined threshold of the width of the floodplain at the intersection of the cross-section and the floodplain.

5 . The computer-implemented method of claim 1 , comprising:

in response to determining a cross-section has been generated to satisfy a threshold length, clipping the cross-section to approximate a length of a floodplain extent, wherein the floodplain extent is based on a user-specified polygon, based on an approximate floodplain polygon that was automatically generated for the stream network, or determined by inferring the floodplain extent using digital terrain information and a user-specified maximum cross-section vertical height.

6 . The computer-implemented method of claim 1 , further comprising:

generating a bank line or a flow-path line by generating a plurality of interpolation points based on a constant offset from the stream centerline along a cross-section or by inferring an inflection point from one or more vertical profiles of the cross-sections;

ordering the plurality of interpolation points in a downstream direction by locating a closest reach point for each point and sorting based on an index of a nearest point, wherein each interpolation point is sorted by increasing or decreasing order;

interpolating, using a stream-bank constructor, a set of points on a curve corresponding to a bank on a side of the stream; and

automatically interpolating until the index of the closest point on the reach to the starting point is also greater than or equal to the index of the closest point on the reach to the last interpolation point on the reach.

7 . The computer-implemented method of claim 6 , wherein generating bank lines includes assigning bank interpolation points on the cross-sections where a channel ends and an overbank starts for both a left and a right over bank, and

wherein generating flow-path lines includes generating flow-path interpolation points on the cross-section between a bank station and an end of the cross-section derived from a predetermined threshold between 0.0 and 1.0, wherein 0.0 identifies a location along the bank line and 1.0 is the location along the ends of the cross-section.

8 . The computer-implemented method of claim 7 , wherein the constructor, y′=βυ−αη, y(0)=q 0 ,

is configured to determine a variable offset from the stream centerline along the generated cross-sections, wherein interpolating comprises the constructor that is configured to select points along the bank in a downstream direction as it nears the correct offset distance, moves either closer to the stream to match a correct offset distance, or further away from the stream to match the correct offset distance,

wherein functions for α and β are defined in terms of a target offset distance Φ and an interpolation tolerance h, such that

Φ

(

y

)

=

j

δ

(

q

i

)

y

-

q

i

j

1

y

-

1

j

,

where

s

=

δ

(

y

)

-

ϕ

(

y

)

,

h

=

1

,

and

α

=

2

1

+

e

-

s

/

h

-

1

,

β

=

e

-

(

s

h

)

2

.

9 . A system for tuning a one-dimensional hydraulic model of a stream network, comprising:

one or more processors programmed and/or configured to:

obtain data including a stream network elevation for one or more streams, a plurality of centerlines, and flow information for the one or more streams in the stream network;

generate a plurality of discrete stream points, wherein each point corresponds to a point of a regular interval along a centerline of each stream in the stream network;

automatically generate a plurality of normal vectors of the stream network, each normal vector originating from a unique starting point selected from the plurality of discrete stream points;

generate a plurality of non-intersecting cross-sections in the stream network, each non-intersecting cross-section comprising a curve based on the flow information and originating from the one or more of the plurality of normal vectors, each non-intersecting cross-section configured to avoid intersection with each point in its own cross-section while avoiding intersection with points in each of an other non-intersecting cross-sections; and

automatically adjust the plurality of non-intersecting cross-sections to satisfy a hydraulic modeling requirement,

wherein the curve corresponding to each cross-section passes through a unique point p j on the centerline of the stream network, and the one or more processors configured to:

generate the curve for each non-intersecting cross-section by finding a solution, for each point p j , to equation:

dy

j

dt

=

y

j

=

f

f

,

where

y

j

(

0

)

=

p

j

;

wherein the vector field f(y) includes a sum over a plurality of points p i forming the centerline that are near to the curve based on a spatial indexing structure, and is computed by the equation:

f

(

y

)

=

i

n

i

g

i

d

i

2

,

determining n i , g i , and d i from:

n

i

=

[

cos

(

θ

i

-

π

2

)

sin

(

θ

i

-

π

2

)

]

,

such that θ i =atan 2 (Δp i,1 , Δp i,0 ) and Δp i =p i+1 −p i−1 , and

wherein

g

i

=

{

1

(

u

i

×

v

i

)

2

0

-

1

otherwise

,

when

u

i

=

[

y

0

-

p

i

,

0

y

1

-

p

i

,

0

0

]

,

v

i

=

[

-

n

i

,

1

n

i

,

0

0

]

,

and

d

i

=

y

-

p

i

;

and

determine the normal vector in any of the discrete points of any stream or reach of the stream network, based on an angle formed in the change between a first point and a second point, wherein the discrete points change with respect to the angle of the stream.

10 . The system of claim 9 , wherein the curve is generated by combining two solutions in an order of left to right in a direction of the stream, wherein one solution provides a left side of the non-intersecting cross-section, and a second solution provides a right side of the non-intersecting cross-section, and the curve comprises a non-planar cross-section.

11 . The system of claim 10 , wherein a hydraulic modeling requirement is adjusted to extend a cross-section to satisfy a minimum elevation increase, to reduce spacing between cross-sections per reach, or to configure a cross-section extent within a predetermined threshold of the width of a floodplain at an intersection of the cross-section and the floodplain.

12 . The system of claim 9 , comprising any combination of:

generating at least one of the plurality of non-intersecting cross-sections perpendicular to the flow direction, to intersect the centerline of the stream perpendicular to a flow in a local curvature of the stream;

generating at least one of the plurality of non-intersecting cross-sections to include an orientation with respect to a flow-path in overbanks defined by a global curvature of the streams;

generating at least one of the plurality of non-intersecting cross-sections to extend to within a threshold width of a floodplain; or

hydraulic modeling of the cross-section extent for at least one of the plurality of non-intersecting cross-sections within a predetermined threshold of the width of the floodplain at the intersection of the cross-section and the floodplain.

13 . The system of claim 9 , wherein one or more processors are programmed and/or configured to:

in response to determining a cross-section has been generated to satisfy a threshold length, clipping the cross-section to approximate a length of a floodplain extent, wherein the floodplain extent is based on a user-specified polygon, based on an approximate floodplain polygon that was automatically generated for the stream network, or determined by inferring the floodplain extent using digital terrain information and a user-specified maximum cross-section vertical height.

14 . The system of claim 9 , wherein one or more processors are configured to:

generate a bank line or a flow-path line by generating a plurality of interpolation points based on a constant offset from the stream centerline along a cross-section or by inferring an inflection point from one or more vertical profiles of the plurality of cross-sections;

order the plurality of interpolation points in a downstream direction by locating a closest reach point for each point and sorting based on an index of a nearest point, wherein each interpolation point is sorted by increasing or decreasing order;

interpolate using a stream-bank constructor, a set of points on a curve corresponding to a bank on a side of the stream; and

automatically interpolate until the index of the closest point on the reach to the starting point is also greater than or equal to the index of the closest point on the reach to the last interpolation point on the reach.

15 . The system of claim 14 , wherein the one or more processors are configured to:

assign bank interpolation points on the cross-sections where a channel ends and an overbank starts for both a left and a right over bank, and

wherein the one or more processors are configured to generate flow-path lines that include flow-path interpolation points generated on the cross-section between a bank station and an end of the cross-section derived from a predetermined threshold between 0.0 and 1.0, wherein 0.0 identifies a location along the bank line and 1.0 is the location along the ends of the cross-section.

16 . The system of claim 15 , wherein the constructor, y′=βυ−αη, y(0)=q 0 , is configured to determine a variable offset from the stream centerline along the generated cross-sections, wherein interpolating comprises the constructor that is configured to select points along the bank in a downstream direction as it nears the correct offset distance, moves either closer to the stream to match a correct offset distance, or further away from the stream to match the correct offset distance, and

wherein functions for α and β are defined in terms of a target offset distance Φ and an interpolation tolerance h, such that

Φ

(

y

)

=

j

δ

(

q

i

)

y

-

q

i

j

1

y

-

1

j

,

where

s

=

δ

(

y

)

-

ϕ

(

y

)

,

h

=

1

,

and

α

=

2

1

+

e

-

s

/

h

-

1

,

β

=

e

-

(

s

h

)

2

.

17 . A computer program product for tuning a one-dimensional hydraulic model of a stream network, comprising at least one non-transitory computer-readable medium including one or more instructions that, when executed by at least one processor, cause the at least one processor to:

obtain data including a stream network elevation for one or more streams, a plurality of centerlines, and flow information for the one or more streams in the stream network;

generate a plurality of discrete stream points, wherein each point corresponds to a point of a regular interval along a centerline of each stream in the stream network;

automatically generate a plurality of normal vectors of the stream network, each normal vector originating from a unique starting point selected from the plurality of discrete stream points;

generate a plurality of non-intersecting cross-sections in the stream network, each non-intersecting cross-section comprising a curve based on the flow information and originating from the one or more of the plurality of normal vectors, each non-intersecting cross-section configured to avoid intersection with each point in its own cross-section while avoiding intersection with points in each of an other non-intersecting cross-sections; and

automatically adjust the plurality of non-intersecting cross-sections to satisfy a hydraulic modeling requirement

wherein the curve corresponding to each cross-section passes through a unique point p j on the centerline of the stream network, and the one or more processors are configured to:

generate the curve for each non-intersecting cross-section by finding a solution, for each point p j , to equation:

dy

j

dt

=

y

j

=

f

f

,

where

y

j

(

0

)

=

p

j

;

wherein the vector field f(y) includes a sum over a plurality of points p i forming the centerline that are near to the curve based on a spatial indexing structure, and is computed by the equation:

f

(

y

)

=

i

n

i

g

i

d

i

2

,

and determining n i , g i , and d i from:

n

i

=

[

cos

(

θ

i

-

π

2

)

sin

(

θ

i

-

π

2

)

]

,

such that θ i =atan 2 (Δp i,1 , Δp i,0 ) and Δp i =p i+1 −p i−1 , and

wherein

g

i

=

{

1

(

u

i

×

v

i

)

2

0

-

1

otherwise

,

when

u

i

=

[

y

0

-

p

i

,

0

y

1

-

p

i

,

0

0

]

,

v

i

=

[

-

n

i

,

1

n

i

,

0

0

]

,

and

d

i

=

y

-

p

i

;

and

determine the normal vector in any of the discrete points of any stream or reach of the stream network, based on an angle formed in the change between a first point and a second point, wherein the discrete points change with respect to the angle of the stream.