Patent application title:

SYSTEMS AND METHODS FOR GENERATING SHOT STRATEGIES FOR GOLFERS

Publication number:

US20250295974A1

Publication date:
Application number:

19/087,371

Filed date:

2025-03-21

Smart Summary: A computer program helps golfers create a plan for their shots on a specific hole. It starts by taking the golfer's current ball position and the location of the hole's pin cup. The program uses a grid that shows the likelihood of different outcomes on that hole. Based on this information, it suggests the best way for the golfer to move the ball towards the pin cup. The final plan may include multiple shots to reach the goal. 🚀 TL;DR

Abstract:

A golf shot strategy determination method can be implemented by computer program instructions executed by one or more hardware processors. In some embodiments, the method can include receiving a selected hole of a golf course for generating a shot strategy, receiving an initial ball location on the selected hole, receiving a probabilistic grid of the selected hole, and determining a preferred shot strategy based on the probabilistic grid, the initial ball location, and a pin cup location of the selected hole. The shot strategy can include one or more shots for a golfer to advance a golf ball from the initial ball location to the pin cup location.

Inventors:

Applicant:

Interested in similar patents?

Get notified when new applications in this technology area are published.

Classification:

A63B71/0622 »  CPC main

Games or sports accessories not covered in groups -; Indicating or scoring devices for games or players, or for other sports activities; Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills Visual, audio or audio-visual systems for entertaining, instructing or motivating the user

A63B2071/0691 »  CPC further

Games or sports accessories not covered in groups -; Indicating or scoring devices for games or players, or for other sports activities Maps, e.g. yardage maps or electronic maps

A63B2102/32 »  CPC further

Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like Golf

A63B71/06 IPC

Games or sports accessories not covered in groups - Indicating or scoring devices for games or players, or for other sports activities

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119 (e) to U.S. Provisional Application No. 63/569,663, filed Mar. 25, 2024, and titled “SYSTEMS AND METHODS FOR GENERATING SHOT STRATEGIES FOR GOLFERS,” which is hereby incorporated by reference herein in its entirety.

FIELD

The present disclosure relates to systems and methods for generating shot strategies to provide guidance for golfers.

DESCRIPTION OF RELATED ART

Golf is a sport in which players use clubs to hit balls into a series of pin cups on a golf course in as few strokes as possible. Golf is played by a golfer on a golf course made up of multiple course segments, commonly called “holes.” A hole typically includes one or more tee locations, a green with a pin cup, an elongate fairway generally between the tee locations and the green, one or more hazards, and/or rough surrounding at least a portion of the fairway or green. Portions of a hole may also be bounded by out of bounds areas from which a golfer may not play. Generally, the objective of golf is to play a golf ball from an initial ball location (e.g., the tee location) to the pin cup on the green by successive strokes. The golfer uses a variety of clubs with different characteristics, typically categorized into woods, irons, wedges, and putters. A small peg called a tee can be used to lift the golf ball off the ground for the initial shot (“tee shot” or “golf shot”) on each hole should the golfer so desire. Subsequent shots are typically played from where the ball comes to rest from the previous shot, e.g. the fairway, the rough, hazards (such as bunkers, lateral hazards, and water hazards), or the green, which contains the pin cup (which can also be called a “hole,” not to be confused with the course segments or “holes” of the golf course). In some instances, the golfer is presented with options on where to play the next shot should the ball come to rest in an unplayable lie or inside an out of bounds area. A pin with a flag attached is commonly inserted into the pin cup in order to indicate the location of the pin cup to the golfer. Courses are designed with course segments or holes of varying lengths and degrees of difficulty. They are often landscaped with trees and other vegetation to provide a scenic appeal. The pin cup can typically be placed in a variety of positions or regions on the green depending on the course set up desired by the course management.

Golf is scored based on the total number of strokes taken to progress the ball from each tee location to each pin cup, across all holes played on a course. Golf scoring terminology includes par (the expected number of strokes for a skilled golfer to complete the hole), birdie (one stroke under par), eagle (two strokes under par), bogey (one stroke over par) and double bogey (two strokes over par).

Many golfers play the game with little or no expert guidance related to their shot strategies. An unguided golfer may rely on intuition to select a shot strategy that may include, for example, aiming a shot in as direct a path as possible towards the pin cup location. A well-reasoned shot strategy would potentially follow a different path. Casual golfers may lack awareness of better shot strategies or may consider more sophisticated shot selection to be beyond their abilities. Furthermore, even if a golfer is trained to correctly analyze their shot direction and angle, every course varies in topography, elevation, vegetation, and weather patterns—factors that can challenge even an experienced golfer when selecting a preferred shot strategy. Further still, previous methods for recommending shot strategies are limited by their inability to account for successive shots inherent to multi-shot strategies. For example, aiming a golf shot directly towards a pin cup location may not be a preferred shot strategy if the corresponding landing location would cause successive shots to encounter hazards and other conditions which could have been avoided had the factors affecting successive shots been considered while generating the shot strategy.

SUMMARY

The systems, methods, and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for all of the desirable attributes disclosed herein. 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.

In some aspects, the techniques described herein relate to a method for generating shot strategies in a golf game, the method, as implemented by computer program instructions executed by one or more computer processors, can include: receiving a Golf Performance Prediction Grid (GPP Grid) of a golf hole, wherein the GPP Grid includes a positional grid including a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, and wherein each of the plurality of grid positions is associated with a geospatial location within a layout of the golf hole; selecting a preferred shot strategy by a shot strategy selection process including: (a) receiving a ball location within the layout of the golf hole; (b) determining a landing location associated with a shot vector and the ball location; (c) determining a golf performance value based at least on the grid value associated with the landing location from the GPP Grid; (d) determining a carry risk vector associated with the shot vector, wherein the carry risk vector corresponds to a risk of a ball path associated with the shot vector intersecting an obstacle along the ball path; (c) modifying the golf performance value based at least in part on the carry risk vector to generate a modified golf performance value; (f) repeating steps (a) through (c) for a plurality of shot vectors; and (g) selecting the shot vector of the plurality of shot vectors that satisfies a preferred shot selection criterion as at least a portion of the preferred shot strategy; and transmitting the preferred shot strategy; wherein the preferred shot strategy includes one or more shots, corresponding to one or more shot vectors, for a golfer to advance a golf ball from the ball location to a pin cup location.

In some aspects, the preferred shot selection criterion can be a lowest modified golf performance value. In some aspects, the shot strategy selection process can include: determining a shot roll and a roll risk vector associated with the shot vector, wherein the roll risk vector has a magnitude corresponding to a risk of the shot roll encountering a water feature; and modifying the golf performance value based at least in part on the roll risk vector to generate the modified golf performance value.

In some aspects, the plurality of shot vectors includes a shot sequence associated with a plurality of sequential shot vectors, wherein each ball location of each of the plurality of sequential shot vectors is a shot total location of a previous shot vector, and wherein the shot total location is a grid position where the golf ball comes to rest after traversing a distance corresponding to a shot carry and a shot roll. In some aspects, the shot strategy selection process includes aggregating modified golf performance values of each shot vector in the shot sequence to generate a shot sequence score.

In some aspects, the shot strategy selection process includes selecting the shot sequence that satisfies the preferred shot selection criterion as at least a portion of the preferred shot strategy. In some aspects, selecting the shot sequence includes selecting the shot sequence associated with the shot sequence score having a minimum value.

In some aspects, the shot strategy selection process further includes: determining an averaged grid value associated with the landing location or a shot total location, wherein the averaged grid value is determined by averaging grid values within a shot dispersion area surrounding the landing location; and determining the grid value at the ball location. In some aspects, determining the golf performance value is additionally based on the averaged grid value and the grid value at the ball location. In some aspects, the grid value probabilistically represents golf performance metrics in terms of a distance between a grid position and the pin cup location, geospatial information corresponding to the grid position, and a short side area.

In some aspects, the techniques described herein relate to a method, further including identifying the golf hole by obtaining geolocation information and associating the geolocation information with a golf course and a specific course segment of the golf course associated with the golf hole. In some aspects, the geolocation information includes at least one of a latitudinal location, a longitudinal location, or an elevation.

In some aspects, the techniques described herein relate to a method, further including: receiving shot dispersion data associated with the golfer and at least one golf club; and selecting at least one of the plurality of shot vectors by searching for shot vectors within an analysis region located within a range of shot distances from the ball location, wherein the range of shot distances is derived from the shot dispersion data.

In some aspects, the shot dispersion data includes a list of clubs, a shot carry, a shot roll, a shot total, and dimensions of a shot dispersion area. In some aspects, receiving the shot dispersion data includes prompting a predictive model with golfer data and receiving a result from the predictive model. In some aspects, the predictive model is sequentially trained using a plurality of machine learning models to improve a predictive accuracy of prior machine learning models through training sequential machine learning models to predict each prior machine learning model's incorrect predictions.

In some aspects, the shot dispersion data includes: an identifier for the at least one golf club; a shot carry corresponding to a horizontal distance the golf ball travels through air when the golf ball is hit with the at least one golf club; a shot roll corresponding to a distance the golf ball travels on ground when the golf ball is hit with the at least one golf club; a shot total including the shot carry and the shot roll; a shot shape value corresponding to a curvature of a golf shot; and a shot dispersion area including a length, a width, and an angle of rotation, wherein the shot dispersion area corresponds to a probabilistic region in which the golf ball contacts the ground after being struck by the at least one golf club.

In some aspects, receiving the shot dispersion data includes receiving data entered via user interaction with a manual dispersion data entry interface.

In some aspects, the GPP Grid is generated from a plurality of inputs including a polygon representation of the golf hole and short sides data associated with the golf hole. In some aspects, the polygon representation includes geospatial information of the golf hole, wherein the geospatial information includes: topographical characteristics of the golf hole, wherein the topographical characteristics include locations of one or more water features and locations of one or more bunker regions; boundary characteristics of the golf hole, wherein the boundary characteristics include out-of-bounds regions near the golf hole; and obstacle characteristics of the golf hole, wherein the obstacle characteristics include vegetation type and vegetation location, and water features. In some aspects, the polygon representation includes coded geometric shapes overlaying a representation of the golf hole. In some aspects, the coded geometric shapes are color-coded according to corresponding geospatial information of the golf hole.

In some aspects, the positional grid uses a coordinate system that is two-dimensional or three-dimensional. In some aspects, the pin cup location is a default pin cup location, wherein the default pin cup location is centrally located on a green of the golf hole. In some aspects, the default pin cup location is selected if the pin cup location is not selected by a user, received from a network computing system, retrieved from a course data store, or received from an end user device.

In some aspects, the plurality of shot vectors are generated from a data set including: a plurality of target shot distances derived from shot dispersion data for the golfer and the layout of the golf hole; a plurality of target landing locations derived from shot dispersion areas associated with the plurality of target shot distances; and environmental factors corresponding to the golf hole. In some aspects, the environmental factors include at least one of an elevation, an elevation change (e.g., “slope”), a direction of elevation change (e.g., “aspect”), a wind velocity, a temperature, or a relative humidity.

In some aspects, the shot strategy selection process includes: generating a remaining route value (RRV) for each of the plurality of grid positions in the GPP grid by adjusting the grid value at a grid position to account for golfer data, risk factors, and environmental factors associated with advancing the golf ball from the grid position towards the pin cup location or another landing location; generating an average RRV for the grid position, wherein the average RRV is generated by determining the average RRV associated with a shot dispersion area corresponding to the shot vector; selecting a preferred shot vector associated with a minimum value of the average RRV; and transmitting the preferred shot vector.

In some aspects, the shot strategy selection process is repeated to generate a shot sequence including a plurality of sequential preferred shot vectors. In some aspects, sequential shot vectors are generated until a selected grid position corresponds to a tee shot location.

In some aspects, the techniques described herein relate to a method for generating a Golf Performance Prediction Grid (GPP Grid) associated with a golf course segment. The method, as implemented by computer program instructions executed by one or more computer processors, can include: receiving a polygon representation of the golf course segment; receiving a pin cup location corresponding to a geospatial location on a green of the golf course segment; receiving short side data including an indication of a short side area off the green between a short side boundary of the green and an outer boundary of the short side area; generating a positional grid with dimensions corresponding to the golf course segment, the positional grid including a plurality of grid positions; generating position scores for each grid position, wherein each position score corresponds to a distance between each grid position and the pin cup location; correlating geospatial information to the plurality of grid positions, wherein the geospatial information corresponds to the polygon representation; and generating grid values based at least on a transformation associated with a particular course feature present at each of the plurality of grid positions.

In some aspects, generating the grid values is additionally based on the short side data, the position scores, and the geospatial information. In some aspects, the polygon representation includes an edited polygon representation that is modifiable using direct or indirect manipulation of geometric shapes.

In some aspects, the techniques described herein relate to a method for generating shot strategies for golf instruction. The method, as implemented by computer program instructions executed by one or more computer processors, can include: receiving a ball location on a golf hole; generating a preferred shot strategy for advancing a golf ball from the ball location to a pin cup location on a green of the golf hole; generating data to display a graphical user interface showing the golf hole and the ball location; receiving, via user interaction with a training shot selection interface, a training shot for advancing the golf ball to a subsequent ball location; determining a score based on an analytical comparison of the training shot and the preferred shot strategy; and transmitting the score.

In some aspects, the ball location is selected by a user at any location on the golf hole. In some aspects, the pin cup location is generated by selecting a random location within a boundary of the green on the golf hole. In some aspects, generating the preferred shot strategy includes determining a golf performance value associated with a shot total location associated with a shot vector, wherein the golf performance value probabilistically represents golf performance metrics in terms of (i) estimated strokes to par or (ii) an estimated number of strokes to reach the pin cup location from the shot total location.

In some aspects, the techniques described herein relate to a method of generating an edited polygon representation of a golf hole. The method, as implemented by computer program instructions executed by one or more computer processors, can include: receiving a polygon representation of the golf hole; receiving an indication of an intent to modify the polygon representation; receiving, via user interaction with a polygon manipulation interface, proposed modifications to the polygon representation, wherein the proposed modifications to the polygon representation include addition, deletion, or resizing of one or more geometric shapes; generating data to display the proposed modifications to the polygon representation; receiving, via user interaction with a modification confirmation interface, confirmation that the proposed modifications are to be committed; in response to receiving the confirmation that the proposed modifications are to be committed, generating the edited polygon representation based on the polygon representation and the proposed modifications; and transmitting the edited polygon representation.

In some aspects, the techniques described herein relate to a method of generating short sides data for a golf hole. The method, as implemented by computer program instructions executed by one or more computer processors, can include: receiving a pin cup location on a green of the golf hole; determining a short side boundary including a portion of a perimeter of the green within a predefined distance from the pin cup location; determining a short side area of the golf hole including an area between the short side boundary and the predefined distance from the pin cup location; determining a short side penalty value to discount a grid value associated with a shot vector having a landing location inside of the short side area; and transmitting the short sides data including the short side area and the short side penalty value.

In some aspects, the predefined distance is a predetermined value, such as about 50 yards. In some aspects, such as where the predefined distance is a predetermined value, the predefined distance may be a fixed distance that does not vary. In some aspects, the predefined distance varies according to geospatial features in a vicinity of the short side boundary. In some aspects, at least a portion of the short side area extends to an edge of the golf hole.

In some aspects, the techniques described herein relate to a system configured to facilitate generating shot strategies in a golf game. The system can include one or more computer processors that are configured to perform a method including: receiving a Golf Performance Prediction Grid (GPP Grid) of a golf hole, wherein the GPP Grid includes a positional grid including a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, and wherein each of the plurality of grid positions is associated with a geospatial location within a layout of the golf hole; selecting a preferred shot strategy by a shot strategy selection process including: (a) receiving a ball location within the layout of the golf hole; (b) determining a landing location associated with a shot vector and the ball location; (c) determining a golf performance value based at least on the grid value associated with the landing location from the GPP Grid; (d) determining a risk vector associated with the shot vector, wherein the risk vector corresponds to a risk of a ball path associated with the shot vector intersecting an obstacle along the ball path; (c) modifying the golf performance value based at least in part on the risk vector to generate a modified golf performance value; (f) repeating steps (a) through (c) for a plurality of shot vectors; and (g) selecting the shot vector of the plurality of shot vectors that satisfies a preferred shot selection criterion as at least a portion of the preferred shot strategy; and transmitting the preferred shot strategy; wherein the preferred shot strategy includes one or more shots, corresponding to one or more shot vectors, for a golfer to advance a golf ball from the ball location to a pin cup location.

In some aspects, the techniques described herein relate to a system configured to facilitate generating shot strategies in a golf game, the system including one or more computer processors that are configured to perform a method including: as implemented by computer program instructions executed by the one or more computer processors: receiving a Golf Performance Prediction Grid (GPP Grid) of a golf hole, wherein the GPP Grid includes a positional grid including a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, and wherein each of the plurality of grid positions is associated with a geospatial location within a layout of the golf hole; selecting a preferred shot strategy by a shot strategy selection process including: (a) receiving a ball location within the layout of the golf hole; (b) determining a landing location associated with a shot vector and the ball location; (c) determining a golf performance value based at least on the grid value associated with the landing location from the GPP Grid; (d) determining a risk vector associated with the shot vector, wherein the risk vector corresponds to a risk of a ball path associated with the shot vector intersecting an obstacle along the ball path; (c) modifying the golf performance value based at least in part on the risk vector to generate a modified golf performance value; (f) repeating steps (a) through (c) for a plurality of shot vectors; and (g) selecting the shot vector of the plurality of shot vectors that satisfies a preferred shot selection criterion as at least a portion of the preferred shot strategy; and transmitting the preferred shot strategy; wherein the preferred shot strategy includes one or more shots, corresponding to one or more shot vectors, for a golfer to advance a golf ball from the ball location to a pin cup location.

In some aspects, the techniques described herein relate to a method for generating shot strategies in a golf game, the method including, as implemented by computer program instructions executed by one or more computer processors: receiving a ball location within a layout of a golf hole; receiving a Golf Performance Prediction Grid (GPP Grid) of the golf hole, wherein the GPP Grid includes a positional grid including a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, wherein each of the plurality of grid positions is associated with a geospatial location within the layout of the golf hole, and wherein each grid position has a midpoint reference comprised of a midpoint, wherein the midpoint is a location at the center of a grid position and is used as a reference location for the grid position on the GPP grid; receiving, and updating the GPP Grid to account for a short side area; selecting a preferred shot strategy by a shot strategy selection process including: (a) determining a landing location associated with a shot vector and the ball location; (b) determining the grid value associated with the landing location from the GPP Grid; (c) determining an averaged grid value within a shot dispersion area corresponding to the landing location; (d) determining a risk vector associated with the existence of vegetation along the shot vector; (e) performing a roll-out check to identify water features along the shot vector or at the landing location and, if a water feature is identified, removing from consideration the corresponding shot vector; (f) applying the averaged grid value, the risk vector to the golf performance value associated with the landing location, and the golf performance value of the initial ball location to produce a modified golf performance value associated with the landing location; (g) repeating steps (a) through (f) for a plurality of shot vectors; (h) treating each landing location associated with the plurality of shot vectors as initial ball locations and repeating steps (a) through (g), for a plurality of shot vector sequences, until each shot vector sequence reaches a green, until each sequence contains a predefined number of shot vectors, or another metric; and (i) selecting the shot vector sequence of the plurality of shot vector sequences that satisfied a preferred shot vector selection criterion; and transmitting the preferred shot strategy; wherein the preferred shot strategy includes one or more shots for a golfer to advance a golf ball from the ball location to a pin cup location in a statistically preferential path.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the various embodiments disclosed herein will be better understood with respect to the following description and drawings, in which like numbers refer to like parts throughout, and in which:

FIG. 1 is a flow diagram of an illustrative routine for generating a golf performance prediction (GPP) grid, according to some embodiments of the present disclosure.

FIG. 2 is a flow diagram of an illustrative routine for editing a polygon representation of a course portion, according to some embodiments of the present disclosure.

FIG. 3 is a flow diagram of an illustrative routine for determining short sides data, according to some embodiments of the present disclosure.

FIG. 4 is a flow diagram of an illustrative routine for generating preferred shot strategies, according to some embodiments of the present disclosure.

FIG. 5 is a schematic block diagram of an illustrative shot strategy generation system, according to some embodiments of the present disclosure.

FIG. 6 is a schematic block diagram of an illustrative modeling section of a shot strategy generation system, according to some embodiments of the present disclosure.

FIG. 7 is a schematic block diagram of an illustrative output section of a shot strategy generation system, according to some embodiments of the present disclosure.

FIGS. 8A-8D are graphical representations of illustrative steps performed to produce a GPP grid, according to some embodiments of the present disclosure.

FIGS. 9A-9D are graphical representations of illustrative graphical user interfaces for editing one or more polygon representations of a portion of a golf course, according to some embodiments of the present disclosure.

FIGS. 10A-10D are graphical representations of an illustrative graphical user interface displaying a polygon representation and icons to allow selection of a pin cup location and determination of short side areas, according to some embodiments of the present disclosure.

FIGS. 11A-11C are graphical representations of an illustrative process for generating preferred shot strategies, according to some embodiments of the present disclosure.

FIGS. 12A-12B are visualizations of an illustrative process by which shot distance, shot curve, and shot dispersion are generated, according to some embodiments of the present disclosure.

FIG. 13 depicts an illustrative architecture of a system for generating shot strategies, accounting for the short sides, tracking environmental factors, and editing polygon representations in accordance with some embodiments of the present disclosure.

FIG. 14 depicts an example computing environment in which embodiments of the present disclosure can be implemented by a shot strategy selection system to generate preferred shot strategies.

FIG. 15 depicts an example block diagram of the shot strategy selection system of FIG. 14.

DETAILED DESCRIPTION

The headings provided herein, if any, are for convenience only and do not necessarily affect the scope or meaning of the claimed invention. Although certain preferred implementations, embodiments, and examples are disclosed below, the inventive subject matter extends beyond the specifically disclosed implementations to other alternative implementations and/or uses and to modifications and equivalents thereof. Thus, the scope of the claims appended hereto is not limited by any of the particular implementations described below. For example, in any method or process disclosed herein, the acts or operations of the method or process may be performed in any suitable sequence and are not necessarily limited to any particular disclosed sequence. Various operations may be described as multiple discrete operations in turn, in a manner that may be helpful in understanding certain implementations; however, the order of description should not be construed to imply that these operations are order dependent. Additionally, the structures, systems, and/or devices described herein may be embodied as integrated components or as separate components. For purposes of comparing various implementations, certain aspects and advantages of these implementations are described. Not necessarily all such aspects or advantages are achieved by any particular implementation. Thus, for example, various implementations may be carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other aspects or advantages as may also be taught or suggested herein.

Overview

Generally described, aspects of the present disclosure relate to systems and methods that use one or more computing systems to offer constructive guidance related to a game of golf and/or golf training. The disclosed embodiments address technical problems inherent within automated or semi-automated methods for generating golf shot strategies including, but not limited to, generating preferred shot strategies which account for course data (e.g., geospatial information), golfer data (e.g., personalized demographic information, club dispersion, etc.), and other data (e.g., weather information and other environmental factors). These technical problems are addressed by the various technical solutions described herein, including generation of shot strategies, accounting for the short side areas, use of golf performance prediction (GPP) grids, such as estimated shots to finish (ESTF) grids, generation of shot vectors to account for hazardous vegetation, and use of editable polygon representations of a golf course or of one or more golf hole(s) within the golf course. Thus, the present disclosure represents an improvement to computing systems used to offer guidance related to a game of golf and/or to golf training.

In some embodiments, a shot strategy is generated by using a 2-dimensional or 3-dimensional grid of probabilistic values that represent the distances between each position on the grid and a pin cup location on a green, geospatial features which can describe the hole of golf, and the existence of a short side area on the golf hole. The purpose of the grid is to probabilistically evaluate golf performance (e.g., in terms of estimated strokes to advance a gold ball to the pin cup location) at different locations within the boundaries of a golf hole. The structured data in the grid is organized in a way that allows for analysis and visualization of potential across the course or course segments. Such a grid of values can be called various names, including, for example, a “Golf Performance Prediction Grid” (or “GPP Grid”), or an “Estimated Strokes to Finish Grid” (or “ESTF Grid”). In this disclosure, the grid of probabilistic values will generally be referred to as a GPP Grid, and it is understood that such a grid could encompass any of the implementations described in this paragraph or elsewhere in this disclosure.

In some implementations, a GPP Grid includes a coordinate system where each grid position corresponds to grid values. These grid values probabilistically represents golf performance metrics which account for the distances between each position on the grid and a pin cup location on a green, geospatial features which can describe the hole of golf, and the existence of a short side area on the golf hole. Each position within the hole's layout is linked to a distinct grid position on the GPP Grid, facilitating a strategic analysis of potential outcomes based on ball location and pin cup location. The dimensions of the GPP Grid can be correlated to the dimensions of the hole or the course segment. The grid values in each grid position account for a distance between the grid position and the pin cup and course data associated with the hole. The pin cup location can refer to a point (or region) on the selected hole and within the green where the actual hole or cup is located.

In some embodiments, geospatial information can correspond to geospatial features, which can include topographical characteristics of the golf hole, wherein the topographical characteristics include locations of one or more water features and locations of one or more bunker regions; boundary characteristics of the golf hole, wherein the boundary characteristics include out-of-bounds regions near the golf hole; location and dimensions of fairway, rough, a tee box, hazard, and green; and obstacle characteristics of the golf hole, wherein the obstacle characteristics include vegetation type and vegetation location. Regions of the polygon representation that include obstacle characteristics can be referred to as obstacle regions.

A shot strategy generation system can use a GPP Grid in combination with shot dispersion data, other golfer-specific data, other course-specific data, elevation characteristics, and other types of data such as weather information to determine a preferred shot strategy. A golfer using the disclosed method and/or system can receive the preferred shot strategy representing a preferred path for advancing a golf ball from an initial ball location to the pin cup location.

Example Computing Environment

FIG. 14 depicts an example computing environment 1400 in which embodiments of the present disclosure can be implemented by a shot strategy generation system 1406 to generate shot strategies for use by golfers in a game of golf, in training, while previewing a golf hole, or in other situations. The computing environment 1400 may include the shot strategy generation system 1406, a network 1404, any number of course data store(s) 1410, any number of golfer data store(s) 1412, a network computing system 1414, and end user devices 1402. The shot strategy generation system 1406 can be accessed by the end user devices 1402 through the network 1404. In other embodiments, the shot strategy generation system 1406 can be integrated with one or more end user devices 1402. The network computing system 1414 may host one or more websites, application programing interfaces (APIs), or information services that can be accessed by the end user devices 1402 through the network 1404. The shot strategy generation system 1406 can access the course data store(s) 1410, golfer data store(s) 1412, and the network computing system 1414 through the network 1404.

Generally described, the shot strategy generation system 1406 can generate a preferred shot strategy from a large number (e.g., hundreds of thousands, millions, or more) of potential shot strategies through automated or semi-automated shot strategy selection processes. For example, the shot strategy generation system 1406 may analyze shot strategies in combination with course data stored in the course data store(s) 1410 and golfer data stored in the golfer data store(s) 1412. The shot strategy generation system 1406 may perform a shot strategy selection procedure in response to receiving request(s) to generate a preferred shot strategy from one or more end user devices 1402. Alternatively, or in addition, the shot strategy generation system 1406 may generate preferred shot strategies based on a triggering event, such as the opening of an application on an end user device 1402, a change in course data or user data, a change in location data associated with the end user device 1402, user interaction with a user interface on the end user device 1402, and the like.

The shot strategy generation system 1406 may be implemented in one or more computing devices for automatically processing course and user data and executing a shot strategy selection procedure. The shot strategy generation system 1406 (or individual components thereof not shown in FIG. 14) may be implemented on one or more physical server computing devices and/or on one or more physical client or end user computing devices. In some implementations, the shot strategy generation system 1406 (or individual components thereof) may be implemented on one or more host devices, such as blade servers, midrange computing devices, mainframe computers, desktop computers, mobile computers, tablet computers, smartphones, wearable computers, or any other computing device configured to provide computing services and resources, such as obtaining, storing, evaluating, selecting, and displaying shot strategies.

In some implementations, the features and services provided by the shot strategy generation system 1406 may be implemented as web services consumable via one or more communication networks (e.g., the network 1404). In further implementations, the shot strategy generation system 1406 (or individual components thereof) is provided by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and released computing resources, such as computing devices, networking devices, and/or storage devices. In additional implementations, the shot strategy generation system 1406 (or individual components thereof) is provided by one or more client or end user computing devices 1402.

In some implementations, the shot strategy generation system 1406 may be a part of a cloud provider network (e.g., a “cloud”), which may correspond to a pool of network-accessible computing resources (such as compute, storage, and networking resources, applications, and services), which may be virtualized or bare-metal. The cloud can provide convenient, on-demand network access to a shared pool of configurable computing resources that can be programmatically provisioned and released in response to customer commands. These resources can be dynamically provisioned and reconfigured to adjust to provide various services, such as automatically evaluating a large number of shot strategies relative to course data and golfer data associated with a particular game of golf or training session. The resources can be provisioned and configured to execute one or more machine learning model(s) and shot strategy selection techniques as disclosed in the present disclosure. The computing services provided by the cloud that may include the shot strategy generation system 1406 can thus be considered as both the applications delivered as services over a publicly accessible network (e.g., the Internet, a cellular communication network) and the hardware and software in cloud provider data centers that provide those services.

End user devices 1402 may communicate with or interact with the shot strategy generation system 1406 via various interfaces such as application programming interfaces (APIs). These APIs can be accessed locally and/or as part of cloud-based services. In some implementations, the shot strategy generation system 1406 may interact with the end user devices 1402 through one or more user interfaces, command-line interfaces (CLI), application programing interfaces (API), and/or other programmatic interfaces for requesting actions or services, such as receiving a request to select a preferred shot strategy from the end user devices 1402 or presenting results of the shot strategy selection procedure to the end user devices 1402.

Various examples of end user devices 1402 are shown in FIG. 14, including a desktop computer, laptop, and a mobile phone, each provided by way of illustration. In general, the end user devices 1402 can be any computing device such as a desktop, laptop or tablet computer, personal computer, wearable computer, server, personal digital assistant (PDA), hybrid PDA/mobile phone, mobile phone, electronic book reader, set-top box, voice command device, camera, digital media player, speaker, range finder, virtual reality headset, mixed reality headset, and the like.

In some implementations, the network 1404 may include any wired network, wireless network, or combination thereof. For example, the network 1404 may be a personal area network, local area network, wide area network, over-the-air broadcast network (e.g., for radio or television), cable network, satellite network, cellular telephone network, or combination thereof. As a further example, the network 1404 may be a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet.

In some implementations, at least some parts of the network 1404 may be a private or semi-private network, such as a corporate or university intranet. The network 1404 may include one or more wireless networks, such as a Global System for Mobile Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long Term Evolution (LTE) network, or any other type of wireless network. The network 1404 can use protocols and components for communicating via the Internet or any of the other aforementioned types of networks. For example, the protocols used by the network 1404 may include Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP), and the like. Protocols and components for communicating via the Internet or any of the other aforementioned types of communication networks are well known to those skilled in the art and, thus, are not described in more detail herein.

In some implementations, the shot strategy generation system 1406 may access course data stored in the course data store(s) 1410 via the network 1404. The course data store(s) 1410 may store course data that can include, for example, a polygon representation of one or more holes or course segments, short side data associated with the one or more holes, and/or geospatial information about the one or more holes. Course data may relate to a physical course existing in a physical location, or to a virtual course that may or may not have an associated course in a physical location. The polygon representation can include data about topographical characteristics (e.g., locations and sizes of fairways, rough, hazards, bunker regions, tee shot boxes, and greens), putting green characteristics (e.g., green speed), elevation characteristics (e.g. sidehill, uphill, and downhill), hole boundary data (e.g., out-of-bounds regions), and/or vegetation characteristics (e.g., vegetation types, dimensions, densities, and locations). As illustrated in FIG. 14, end user devices 1402 and/or the network computing system 1414 may also access the course data store(s) 1410 via various interfaces such as application programming interfaces (APIs) and/or cloud-based services.

In some implementations, a polygon representation can correspond to one or more tangible, physical holes or course segments. For example, a polygon representation may have been generated based on geographic, spatial, LIDAR, image, or other information representing an existing course, green, hole, or course segment. The polygon representation may have been modified from an initial polygon representation (e.g., in response to change in the physical characteristics of the course segment represented by the initial polygon representation, to correct a measurement error, etc.)

In some implementations, a polygon representation can correspond to one or more virtual holes or virtual segments. The virtual holes or virtual segments can be wholly digital, with no direct tangible, physical holes or course segments which are being represented. For example, a virtual hole or course segment may be designed in a digital format (e.g., as a three-dimensional model, point cloud mesh, etc.). A polygon representation may then be generated from the virtual hole or course segment in the digital format. In another example, a virtual hole or course segment may have been generated as a polygon representation. A virtual hole or course segment may, for example, be incorporated as part of a golf simulator, video game, virtual reality game, movie, image, or a passive or interactive virtual environment.

In some implementations, the course data store(s) 1410 that store course data may be any computer-readable storage medium and/or device (or collection of data storage mediums and/or devices). Course data may be generated by the network computing system 1414, the end user devices 1402, the shot strategy generation system 1406, and/or other computing systems or devices not illustrated in FIG. 14. Examples of the course data store(s) 1410 include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, and the like), magnetic disks (e.g., hard disks, floppy disks, and the like), memory circuits (e.g., solid state drives, random-access memory (RAM), and the like), and/or other memory or storage devices. In some examples, the course data store(s) 1410 and/or the shot strategy generation system 1406 may be parts of a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).

Additionally, the shot strategy generation system 1406 may access golfer data stored in the golfer data store(s) 1412 via the network 1404. The golfer data store(s) 1412 may store golfer data, such as, for example, shot dispersion data, shot distances, shot curves, demographic information, handicap data, gender, age, club distance, and/or shot shape. The golfer data store(s) 1412 may be any computer-readable storage medium and/or device (or collection of data storage mediums and/or devices). Examples of the golfer data store(s) 1412 include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, and the like), magnetic disks (e.g., hard disks, floppy disks, and the like), memory circuits (e.g., solid state drives, random-access memory (RAM), and the like), and/or the like. In some examples, the golfer data store(s) 1412 and/or the shot strategy generation system 1406 may be parts of a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).

In some implementations, the shot strategy generation system 1406 may access golfer data stored in a golfer data stored on one or more user end devices 1402.

In some implementations, the shot strategy generation system 1406 and/or the golfer data store(s) 1412 may be a part of a cloud provider network mentioned above and may implement various computing resources or services, which may include performing compliance testing on content items as described in the present disclosure, a virtual compute service, data processing service(s) (e.g., map reduce, data flow, and/or other large scale data processing techniques), data storage services (e.g., object storage services, block-based storage services, or data warehouse storage services) and/or any other type of network based services (which may include various other types of storage, processing, analysis, communication, event handling, visualization, and security services not illustrated).

The network computing system 1414 may include one or more computing devices that host one or more websites, webpages, information services, APIs, or other content data to provide various online services or products. The content data may include data that is accessible by the end user devices 1402 and/or the shot strategy generation system 1406 through the network 1404. In some implementations, the network computing system 1414 may include one or more data stores (not shown in FIG. 1) that transmit content data to the end user devices 1402 and/or to the shot strategy generation system 1406. Such content data can include weather condition data, temperature, wind speed, wind velocity, precipitation data, golf club data, golf ball data, polygon representations of golf courses or course sections, pin cup locations, elevation characteristics, scan data, and/or edited polygon representations of golf courses or course sections.

In some implementations, the shot strategy generation system 1406 may perform shot strategy selection procedures using content data retrieved from the network computing system 1414, course data retrieved from the course data store(s) 1410, golfer data retrieved from the golfer data store(s) 1412, and/or data entered via user interaction with one or more user interfaces associated with the end user devices 1402 responsive to receiving request(s) from the end user devices 1402 to perform a shot strategy selection procedure. In some implementations, the shot strategy generation system 1406 may perform the shot strategy selection procedure when the shot strategy generation system 1406 is notified of or detects that a user of an end user device 1402 is playing a game of golf or engaged in golf training.

Example Shot Strategy Generation System

FIG. 15 depicts an example block diagram of the shot strategy generation system 1406 of FIG. 14. Components of the shot strategy generation system 1406 can implement various data processing and analysis techniques to select preferred shot strategies during a game of golf or during golf training. The illustrated shot strategy generation system 1406 includes a data store 1510, a modeling section 1502 that may include machine learning (ML) model(s) 1520 and/or communicate with external ML model(s), a user interface 1508, an input processor 1512, an output section 1504, and an output processor 1506. In various implementations, the modeling section 1502, the user interface 1508, the input processor 1512, the output section 1504, and/or the output processor 1506 can be implemented as software components that program hardware (e.g., processors) to perform respective functions.

In some implementations, the user interface 1508 is configured to generate user interface data that may be rendered on the end user devices 1402, such as to receive a request to perform a shot strategy selection procedure based on course data and golfer data, an initial user input, as well as later user input that may be used to initiate further data processing. In some implementations, the functionality discussed with reference to the user interface 1508, and/or any other user interface functionality discussed herein, may be performed by a device or service integrated with or outside of the shot strategy generation system 1406 and/or the user interface 1508 may be part of or outside of the shot strategy generation system 1406. Example features related to user interfaces are described in greater detail below with reference to FIGS. 8A-D, 9A-D, 10A-D, 11A-C, and 12A-B.

In some implementations, the input processor 1512 is configured to access course data stored in the course data store(s) 1410 and access golfer data stored in the golfer data store(s) 1412. The input processor 1512 may provide the accessed course data and golfer data to the modeling section 1502 for analyzing potential shot strategies and for determining predicted shot dispersions. The input processor 1512 can also access other data from a network computing system 1414 and provide such data to the modeling section 1502.

In certain implementations, the modeling section 1502 receives data and instructions from the input processor 1512 and processes the data and instructions to generate data used in a shot strategy selection procedure performed by the output section 1504. In certain implementations, the modeling section 1502 receives or generates predicted shot dispersions usable by the shot strategy selection procedure. Predicted shot dispersions can be collected from end user devices 1402, the network computing system 1414, or other sources of dispersion data. In some implementations, shot dispersions are determined using a process that includes prompting a ML model 1520 with at least a portion of the golfer data and receiving a response from the ML model 1520 that includes predicted shot dispersion data. The modeling section 1502 is described in further detail with reference to FIGS. 5 and 6.

In some implementations, the output section 1504 receives model data from the modeling section 1502 and executes one or more shot strategy selection procedures to determine a preferred shot strategy. The one or more shot strategy selection procedures can account for course data, golfer data, and other data (e.g., weather conditions) in determining the preferred shot strategy. The output section 1504 is described in further detail with reference to FIGS. 5 and 7.

In some implementations, output(s) from the output section 1504 may be processed by the output processor 1506. The output processor 1506 may provide the entire output from the output section 1504 to the end user devices 1402 through the user interface 1508, automatically modify or correct output(s) from the output section 1504 before providing to the end user devices 1402, or may trigger the modeling section 1502 to generate further data for the output section 1504 to determine an alternative preferred shot strategy (e.g., by providing more detailed instructions or information about certain aspects of the course section, the golfer, the weather, etc.). Output(s) from the output processor 1506 to the user interface 1508 and/or the end user devices 1402 may include text (including, for example, a description of the preferred shot strategy), images, maps, interactive graphical user interfaces, datasets, database items, audio, animations, videos, actions, three-dimensional renderings, or other types or formats of information. In some implementations, actions may include requiring a user to provide additional or corrected information, writing to datasets (e.g., adding or updating rows of a table, editing or updating an object type, updating parameter values for an object instance, generating a new object instance), implementing integrated applications (e.g., an email or SMS application), communicating with external application programming interfaces (APIs), and/or any other functions that communicate with other external or internal components. For example, output(s) provided to the end user device 1402 (e.g., via the user interface 1508) may include a message indicating that updated location data is required, that a pin cup location is required, or that more information or clarification is needed to process a request for a preferred shot strategy.

In some implementations, the output processor 1506 may coordinate with the modeling section 1502 and the output section 1504 to administer various testing flows to benchmark or compare results generated by the shot strategy generation system 1406 against pre-determined results for reducing erroneous outputs and increasing accuracy of the system. Optionally, testing flows may be administered, defined, or developed by users of the system through one or more Application Programming Interfaces (API). In some examples, testing flows may include performing one or more shot strategy selection procedures on a selected set of course data with a chosen set of golfer data multiple times or repeatedly. The selected set of course data may include data for many different courses and course segments (e.g., hundreds or thousands course segments), and a predetermined preferred shot strategy may be already obtained by the system for each of the selected sets of course data. Advantageously, comparing results generated by the system with predetermined results can help verify and maintain the accuracy of the system.

The data store 1510 may be any computer-readable storage medium and/or device (or collection of data storage mediums and/or devices). The data store 1510 may be used to store any data or information related to operations and/or services provided by the shot strategy generation system 1406, such as performing shot strategy selection procedures based on different course data, golfer data, and other data. Examples of the data store 1510 include, but are not limited to, optical disks (e.g., CD-ROM, DVD-ROM, and the like), magnetic disks (e.g., hard disks, floppy disks, and the like), memory circuits (e.g., solid state drives, random-access memory (RAM), and the like), and/or the like.

Example System Functionality and Interactions

FIG. 5 is a schematic diagram of an illustrative embodiment of a system for generating shot strategies. The system can include a Quick Dispersion Module 546, a Curvature & Dispersion Module 504, a “Play Like” Distance Module 522, a Short Side Module 510, a GPP Module 524, an Optimization Engine Module 534, and a Risk Vector Module 552. The system can generate Shot Strategies 538. The system can be broken down into two portions, a Modeling Section 542 and an Output Section 544. In some embodiments, the Risk Vector Module 552 and its functionality can be contained within the Optimization Engine Module 534.

FIG. 6 is a schematic diagram of an illustrative embodiment of the Modeling Section 542. The Modeling Section 542 can include a Quick Dispersion Module 546, a Curvature & Dispersion Module 504, Short Side Module 510, “Play Like” Distance Module 522, GPP Module 524, and Scan data 548 These modules can interact with Geolocation Information 506, Environmental Factors 520, Demographic Information 502, pin cup location 508, Shot Distance and Curve Data 518, Polygon Representations 516, Shot Dispersion Area data 514, and Short Sides data 512.

Demographic Information 502 (which may also be referred to as golfer data herein) can include a golfer's gender, age, handicap, shot distances with one or more clubs, shot shape, and/or shot dispersion. Demographic Information 502 can be entered autonomously or semi-autonomously by the Quick Dispersion Module 546. In some embodiments, the Quick Dispersion Module 546 can be a repository for Demographic Information 502.

In one embodiment, a Quick Dispersion Module 546 can process Demographic Information 502 and pass a corresponding list of clubs, shot carry, shot roll, shot total, and dimensions of a shot dispersion area (corresponding to a length, width, and angle of rotation) to the Curvature & Dispersion Module 504. The list of clubs can include one or more golf clubs corresponding to the shot carry, shot roll, shot total, and shot dimensions. The one or more golf clubs can include a wedge, a driver, an iron, among others. Shot carry can include a horizontal distance a golf ball travels while in air during a corresponding golf shot. Shot roll can include a distance a golf ball traverses by rolling on ground after traversing through air and landing on the ground. Shot total can include a combined horizontal distance traversed by a golf ball during a corresponding golf shot, wherein the combined horizontal distance can include horizontal components of shot carry and shot roll. A shot total can correspond to a shot total location, comprised of a location on a golf hole where a golf ball corresponding to a golf shot comes to rest after landing and rolling. Dimensions of the shot dispersion area can include a length and width defining an oval-shaped region and a rotation of the oval-shaped region, wherein the length corresponds to a dimension of the oval-shaped region which is (prior to application of the angle of rotation) perpendicular to a golfer; wherein the width corresponds to a dimension of the oval-shaped region which is (prior to application of the angle of rotation) parallel to the golfer; and wherein the angle of rotation can include a degree that the oval-shaped region is rotated with respect to a corresponding golf shot. For example, a golf shot may correspond to a straight ball path (e.g., a golf shot with little or no curve). In this example, if an angle of rotation is thirty degrees, a corresponding oval-shaped region can be rotated thirty degrees clockwise in relation to the ball path. Angle of rotation can be dependent upon an associated shot shape, wherein a shape of a shot curve can cause a dispersion area angle to increase or decrease. A shot dispersion area can refer to a bounded region containing a distribution of points overlaying a plurality of grid positions on a GPP grid at which a golf shot is predicted to contact ground.

In some embodiments, a plurality of shot totals can be included in a shot total dispersion, wherein the shot total dispersion can be a shot dispersion area which has been expanded to include shot roll distances, wherein grid positions within the shot total dispersion can correspond to locations which a golf ball rolls to after landing. In some embodiments, generating a roll risk vector can include applying a shot total dispersion. A roll risk vector may be associated with a magnitude. The magnitude may correspond to a risk of the shot roll encountering an environmental factor (e.g., a water feature, bunker, out of bound region, tall grass, mud, standing water, etc.).

In some embodiments, a shot dispersion area can be referred to as a landing dispersion, wherein the landing dispersion can include a distribution of landing location in an oval-shaped region.

In some embodiments, a shot dispersion area can correspond to a uniform distribution, referring to how a likelihood of a golf shot intersecting ground at a location within the shot dispersion area can be treated as equal to all other locations within the shot dispersion area.

In some embodiments, a shot dispersion area can correspond to a normal distribution, referring to how a likelihood of a golf shot coming to rest at a location within the shot dispersion area can be treated as greatest at a center point of the shot dispersion area and lowest at locations within the shot dispersion area furthest from the center point, wherein locations between the center point and locations furthest from the center point can have corresponding likelihoods which decrease as distance from the center point increases.

Alternatively, Shot Dispersion Area data 514 and Shot Distance and Shot Curve data 518 can be manually 550 entered into the Curvature & Dispersion Module 504, after which the Curvature & Dispersion Module 504 can pass on the Shot Dispersion Area data 514 and Shot Distance and Shot Curve data 518 to corresponding modules. Manual 550 entry can involve: a user interacting with a manual dispersion data entry interface on a computer device—whether via a computer mouse, a keyboard, a touchscreen, a smart watch, or any other medium to interact with a computer—to enter alphabetic, numeric, and/or any other type of information describing Shot Dispersion Area data 514 and Shot Distance and Shot Curve data 518; a computer using a visual detection capability to scan a document containing Shot Dispersion Area data 514 and Shot Distance and Shot Curve data 518; or any other method to send Shot Dispersion Arca data 514 and Shot Distance and Shot Curve data 518 to the Curvature & Dispersion Module 504. In some embodiments, the manual dispersion data entry interface can be a graphical user interface which can include functionality which allows a user to manually enter shot dispersion data.

Shot Dispersion Arca data 514 and Shot Distance and Shot Curve data 518 can encompass data derived from shot dispersion data.

Shot Dispersion Area data 514 can include an oval-shaped shot dispersion area, associated with a corresponding golf club and shot total, comprised of an analysis region defined by a length, width, and angle of rotation, and within which there can exist a range of distances from a center of the dispersion area where a plurality of landing locations associated with a shot vector can exist. A shot dispersion area can be a probabilistic region in which a golf ball contacts ground after being struck by a golf club, wherein the probabilistic region can be a distribution with corresponding values which predict a likelihood of a golf ball landing in a corresponding location. In some embodiments, the distribution can be uniform, with each location within an associated shot dispersion area having an equal likelihood of a golf ball landing. In some embodiments, the distribution can be normal, with locations at a center of the distribution having a higher likelihood of a golf ball landing, locations at an outer boundary of the distribution having a low likelihood of a golf ball landing, and locations in between the center and outer boundary having an intermediate likelihood of a golf ball landing, with the intermediate likelihood decreasing as distance from the center of the distribution increases.

Shot Distance and Shot Curve data 518 can include a shot total value corresponding to a horizontal distance a golf ball travels when the golf ball is hit with the at least one golf club associated with a shot vector; a carry distance corresponding to a distance a golf ball travels through the air; a shot roll corresponding to a horizontal distance a golf ball travels when a golf ball lands and rolls on ground; a shot shape value corresponding to a golf ball curving while in air (corresponding to shot fade, draw, straight, hook, or slice) when a shot is taken with the at least one golf club.

In one embodiment, the Curvature & Dispersion Module 504 can be autonomously updated to account for the difference between a preferred shot strategy and an actual landing location of a corresponding shot taken by a user. In this embodiment, Geolocation Information 506 can be received which corresponds to the actual landing location. In this embodiment, when the Curvature & Dispersion Module 504 is updated, the update can include modifying a predictive model applied to shot total, shot carry, shot roll, and/or the length, width, and/or angle of rotation of shot dispersions when generating Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514. In one embodiment, the shot distances data can include driver distance and 7-iron distance. Shot distances associated with any or all other clubs in a golfer's club collection can also be included in the shot distances data.

A Curvature & Dispersion Module 504 can receive Demographic Information 502 and produce Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514. The Curvature & Dispersion Module 504 can use a predictive model, such as a machine learning model, a comparison chart, or another method of producing Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514. In an embodiment, Demographic Information 502 can be applied to a comparison chart to generate shot carry; wherein the shot carry can be applied to a first machine learning model to produce shot roll; wherein the shot roll and shot carry can be applied to: a second machine learning model to produce a length associated with a dispersion area, a third machine learning model to produce a width associated with a dispersion area, and a fourth machine learning model to produce an angle of rotation associated with a dispersion area.

the Curvature & Dispersion Module 504 can apply a predictive model to shot total, shot carry, shot height, and dimensions of shot dispersion to generate the Shot Distance and Shot Curve data 518 and Shot Dispersion Arca data 514.

In one embodiment, to receive Demographic Information 502, a user can be presented with a series of questions relating to their Demographic Information 502. For example, a user can be presented with questions inquiring about the user's gender, age, level of handicap, driver distance, 7-iron distance, a user's dominant hand, and shot shape.

In one embodiment, after Shot Dispersion Arca data 514 and Shot Distance and Shot Curve data 518 have been generated, a user can edit a corresponding shot total, shot carry, shot roll, shot height (corresponding to a description of vertical distance achieved by an associated golf shot), and/or a length, width and angle of rotation of shot dispersions.

In one embodiment, the Curvature & Dispersion Module 504 can comprise a machine learning model trained on Demographic Information 502 from a plurality of users with corresponding Shot Distance and Shot Curve data 518 and Shot Dispersion Arca data 514 to serve as a heuristic to guide the training. In this embodiment, when Demographic Information 502 is provided to the trained machine learning model, predicted Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514 can be produced.

In another embodiment, the Curvature & Dispersion Module 504 can comprise a comparison chart which can provide input comparisons to produce Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514. In this embodiment, the comparison chart can have a system of values against which Demographic Information 502 is compared and corresponding Shot Distance and Shot Curve data 518 and Shot Dispersion Area data 514 can be determined.

In another embodiment, the Curvature & Dispersion Module 504 can comprise a combination of one or more comparison charts and one or more machine learning models used to produce Shot Distance and Shot Curve Data 518 and Shot Dispersion Arca data 514 from, at least, Demographic Information 502 applied to the one or more comparison charts and one or more machine learning models. In this embodiment, the comparison chart can be used to generate shot carry from Demographic information 502; wherein the shot carry can be used with Demographic Information 502 by a first machine learning model to generate shot roll; and wherein the shot carry and shot roll can be used with Demographic Information 502 by a second, third, and fourth machine learning model to generate a length, width, and angle of rotation (respectively) associated with a shot dispersion.

In one embodiment, a machine learning model associated with the Curvature & Dispersion Module 504 can include gradient boosting, a process of sequentially training a plurality of machine learning models to improve predictive accuracy. Gradient boosting can be achieved by training sequential machine learning models to predict output errors of prior machine learning models; prediction errors of each machine learning model can be predicted by each consecutive model, generating a “chain” of machine learning models. Phrased differently, sequential models can be trained to predict each prior machine learning model's incorrect predictions.

In one embodiment, gradient boosting can be applied to produce a gradient boosted trees machine learning model, which can be composed of a plurality of decision trees sequentially trained to predict classification errors of previous decision trees. A decision tree can include a machine learning model that can make predictions by “traversing” a set of attribute-based analyses, wherein each analysis can include comparing and selecting from data attributes which maximize data entropy. Gradient boosting, when applied to decision trees, can include sequentially added decision trees which can assist the machine learning model, while training, in decreasing the machine learning model's error rate in a process called gradient descent. Gradient descent can include a method of modifying parameters of a machine learning model by analyzing a derivative of the machine learning model's error equation, which can be an equation that describes a difference between predicted values and actual values. To decrease error of the machine learning model, the training method can seek regions within the error equation's derivative which lie at a minimum value (whether local or global). For gradient boosted trees, each sequential decision tree can be trained to predict each prior decision tree's incorrect predictions. In this way, each sequential decision tree can assist in lowering overall error of the model. In some embodiments, decision trees within a gradient boosted trees model are “weak models,” composed of decision trees with intentionally limited functionality whose predictive capabilities are similarly limited. By sequentially training weak models to predict errors of each previous weak model, a resulting prediction from an ensemble of all weak models can have a high level of accuracy.

Environmental Factors 520 can comprise atmospheric conditions, comprising temperature, elevation, elevation changes, slope, aspect, humidity, and wind vectors. Wind vectors can comprise wind having a perpendicular velocity component 536 and/or wind having a parallel velocity component, wherein velocity components are measured in relation to a travel path of a golf ball. Wind velocity having a parallel velocity component can be used to adjust travel distance of a shot and wind velocity having a perpendicular velocity component 536 can be used to adjust the travel path and perpendicular landing location of the shot, wherein the perpendicular landing location comprises how far left and right a shot drifts due to wind.

In some embodiments, environmental factors 520 can include atmospheric conditions, comprising temperature, elevation, slope, aspect, humidity, and wind vectors for a golf course.

A pin cup location 508 can indicate the target location or pin cup on a Polygon Representation 516 of a selected hole. The target location can be the position towards which the method generates shot strategies to advance a golf ball. The pin cup location 508 can be used during the generation of Short Sides data 512 and can be used by the “Play Like” Distance Module 522 while generating Distance for Each Club data 528.

Geolocation Information 506 can comprise a latitudinal, a longitudinal location, and an elevation and can be processed by a “Play Like” Distance Module 522 and a Risk Vector Module 552. Within the “Play Like” Distance Module 522, the Geolocation Information 506 can be utilized with Environmental Factors 520 and pin cup location 508 to produce a Distance for Each Club data 528. The Geolocation information 506 can be utilized by a Risk Vector Module 552, with Shot Dispersion Area data 514 and Distance for Each Club data 528, to generate Risk Vector.

Geolocation Information can be received from a plurality of sources, comprising: a geolocation device, comprising a device which performs geolocation, manually entered values, receiving geolocation information corresponding to a selected hole of golf, or any other source.

In some embodiments a golf hole can be identified by obtaining geolocation information and associating the geolocation information with a golf course and a specific course segment of the golf course associated with the golf hole. The geolocation information can include a latitudinal location, a longitudinal location, and a corresponding elevation.

A Short Side Module 510 can implement a method that can receive a pin cup location 508 and Polygon Representations 516 and generate Short Sides data 512. The term “short side” refers to an area of the golf hole that is closest to the pin cup when a player's ball is lying off the green. If the player misses the green and their ball lands on the side where the hole is located, with less green between the ball and the hole, they are said to have missed on the “short side.” Short siding increases the difficulty of the next shot and can lead to higher scores.

Short Sides data 512 and Polygon Representations 516 can be utilized by a GPP Module 524 to generate a GPP Grid 530, which can include a positional grid overlaying a representation of a selected hole, as described herein. The GPP Grid 530 can include probabilistic values associated with the grid locations that are indicative of golf performance at each grid location.

In one embodiment, a lidar device can generate Scan data 548. In some implementations, scan data can include geospatial information for a course or one or more course portions, including a selected hole. The geospatial information can be used to update and/or confirm the veracity of polygon representations 516. In one embodiment, the Scan data 548 can be used to confirm the angle and size of a hill or other elevation change on the selected hole.

In one embodiment, geospatial information can be received from an ultrasonic sensor, a visual sensor, or any other device or method. The geospatial information can be used to confirm elevation, elevation changes, and dimensions or geospatial features.

FIG. 7 is a schematic diagram of an illustrative embodiment of the Output Section 544. The Output Section 544 can include an Optimization Engine Module 534 and a Risk Vector Module 552.

The Optimization Engine Module 534 can receive a Distance for Each Club data 528, a Perpendicular Wind Vector Component 536, a GPP Grid 530, Risk Vectors and can generate preferred shot strategies 538.

Distance for Each Club data 528 can comprise a combination of Shot Dispersion Area data 514; Shot Distance and Shot Curve data 518; Geolocation Information 506, which can include a ball location; Environmental Factors 520; and Scan data 548. A ball location can correspond to geolocation information associated with a position on a golf hole from where a shot strategy can be generated in relation to.

The Perpendicular Wind Vector Component 536 can be a component of environmental factors 520 (FIG. 6), which can include wind velocity (including wind speed in the perpendicular direction of travel to a shot) and other data that can be used to select a preferred shot strategy.

The GPP Grid 530 can be a positional grid overlaying a representation of a selected hole, as described herein. The GPP Grid 530 can include probabilistic values associated with the grid locations that are indicative of golf performance at each grid location.

The Optimization Engine Module 534 can apply the Distance for Each Club data 528 to the GPP Grid 530 to generate a shot vector, a modified golf performance value, and select a preferred shot strategy 538.

A shot vector can be comprised of a shot angle for a golf shot and a corresponding golf club, wherein the shot angle can be measured in relation to a ball location and a pin cup location. For example, a shot angle of zero degrees can correspond to directing a shot vector directly towards the pin cup location and a shot angle of fifteen degrees can correspond to directing a shot vector fifteen degrees towards a rightward direction from the pin cup location. A shot vector can be associated with a ball location, a ball path, and a landing location.

A ball location can be an initial location of a golf ball of a golf course, from where shot vectors can be generated in relation to.

A ball path can be a path (both vertical and horizontal aspects) traveled through the air by a golf ball subjected to a shot vector, wherein a ball path can account for Shot Dispersion Area data 514, Shot Distance and Shot Curve data 518, and perpendicular wind vectors 536. Shot Distance and Shot Curve data 518 is comprised of at least one shot curve, comprising horizontal aspects of a ball path; and a shot distance, comprised of a vertical aspect of the ball path.

A landing location can be a position on a GPP Grid that corresponds to a point at which a ball path associated with a shot vector intersects ground of a golf hole. From a ball location, a center of a shot dispersion area can be positioned in line with the shot angle and at a distance corresponding to a shot distance (which can comprise the Shot Distance and Shot Curve data 518), wherein the center of the shot dispersion area is the landing location.

A shot curve (which can be included in Shot Distance and Shot Curve data 518) can include a horizontal, left and right, component of a ball path and can be influenced by a perpendicular wind vector 536. For example, if a golf shot is initially aimed directly at a pin cup location, a perpendicular wind vector 536 can push a corresponding ball path away from the pin cup location, moving a corresponding landing location. The system can account for a perpendicular wind vector 536 by adjusting a shot angle towards the source of the perpendicular wind vector 536. The left and right components of a ball path can correspond to shot shapes such as fade, draw, straight, hook, or slice, wherein fade can refer to a golf path moving from left to right a relatively small amount; draw can refer to a golf path moving from right to left a relatively small amount; straight can refer to a golf path having no left or right movement; hook can refer to a golf path moving from right to left a relatively large amount; and slice can refer to a ball path moving from left to right a relatively large amount. In some embodiments, shot shape can impact shot roll. For example, a fade (corresponding to a relatively small movement from left to right) can cause shot roll to include a greater component in a rightward direction compared to a straight shot. In another example, a draw (corresponding to a relatively small movement from right to left) can cause shot roll to include a greater component in a leftward direction compared to a straight shot.

A golf performance value corresponding to the landing location can be determined by applying one or more factors, including a grid value corresponding to the landing location, a grid value corresponding to the ball location, and an averaged grid value. In some embodiments, the application of the one or more factors can be summarized by a mathematical equation, which can be:

Golf ⁢ Performance ⁢ Value = ( Avg_Grid ⁢ _Val ⁢ or ⁢ Grid ⁢ Value ) - Grid_Val ⁢ _at ⁢ _Ball ⁢ _Loc )

The above equation can be read as taking the average grid value or the grid value at the landing location and subtract the grid value at the ball location. The golf performance value can be a probabilistic representation of the static conditions of a golf hole: distance between a grid position and a pin cup location, and geospatial factors (wherein geospatial factors correspond to geospatial information).

In some embodiments, the golf performance value can probabilistically represents golf performance metrics in terms of estimated strokes to par or an estimated number of strokes to reach a pin cup location from a shot total location.

Risk Vectors can be applied to golf performance values to generate modified golf performance values. Risk vectors scores can be representations of a likelihood that a golf shot corresponding to a shot vector will come in to contact with one or more trees and/or the existence of water along a shot roll, wherein shot rolls can have a corresponding direction of travel which corresponds to a shot vector and shot shape.

In one embodiment, risk vectors can be generated by checking for the existence of obstacles along a ball path corresponding to a shot vector, wherein an obstacle can be a tree or another type of vegetation, a hill, or any other physical hazard. These risk vectors can be referred to as a carry risk vectors. If an obstacle is found along the ball path, a numerical value can be assigned to the ball path which probabilistically describes a likelihood of a golf ball encountering the obstacle. For example, a ball path can encounter a cluster of densely packed trees. A numerical value of 0.9 can be assigned to the ball path to represent a high likelihood of a corresponding golf ball encountering at least one of the trees. In another example, a ball path can encounter a cluster of loosely packed trees. A numerical value of 0.1 can be assigned to the ball path to represent a low likelihood of a corresponding golf ball encountering at least one tree.

In some embodiments, vegetation, water, and other hazards can be referred to as risk factors.

In one embodiment, risk vectors can be generated by checking whether a shot roll corresponding to a shot vector intersects water, wherein the water can be a river, a pond, a lake, or any other body of water. If water is found along the shot roll, a numerical value can be assigned to the shot roll which probabilistically describes a likelihood of a golf ball encountering water. These risk vectors can be referred to as a roll risk vectors. For example, a numerical value of 5 can be assigned to the shot roll to represent a high likelihood of a corresponding golf ball encountering water.

Applying the risk vectors to golf performance values can include applying a mathematical formula that incorporates at least a risk vector and a golf performance value. In some embodiments, the mathematical formula can be:

Mod_Golf ⁢ _Perform ⁢ _Val = Golf_Performance ⁢ _Value + Risk_Vectors + 1

The above equation can be read as taking a golf performance value and adding the sum of one or more risk vectors and the number one, which can generate a modified golf performance value.

In some embodiments, when both the mathematical formula to generate golf performance values and the mathematical formula to generate modified golf performance values are applied, a resulting mathematical formula can be:

Mod_Golf ⁢ _Perfor ⁢ _Val = Avg_Grid ⁢ _Val + Risk_Vectors + 1

The above equation can be read as an averaged grid value being added to the sum of risk vectors and the number one, to generate a modified golf performance value. The process of generating shot vectors and modified golf performance values can be repeated with different angles comprising the shot vectors and different corresponding landing locations, to generate a plurality of shot vectors. Selecting a preferred shot vector can include identifying a shot vector which satisfies a preferred shot selection criterion. In some embodiments, the preferred shot selection criterion can include selecting a shot vector with a lowest modified golf performance value.

In one embodiment, application of risk vectors can be disabled, which can be done to account for a user's desire to ignore hazards associated with the risk vectors. For example, if a golf hole has a large concentration of trees, the system can generate a risk vector which severely discourages selecting a shot vector corresponding to a ball path that exists near the trees. However, a user may feel confident that they can successfully place a golf shot above the trees. The user may disable risk vectors so as to allow the system to select a shot vector which corresponds to a ball path above or through the trees.

In one embodiment, application of risk vectors can be modified to cause shot vectors associated with hazards to be considered not feasible when they otherwise might be selected for recommendation. For example, if a golf hole has a small concentration of trees in a region of the golf hole, the system can generate a risk vector corresponding to a shot vector associated with a ball path that traverses near or through the trees. The risk vector can allow selection of the shot vector despite a user not feeling confident that they cannot successfully make a corresponding golf shot. In this embodiment, the user can cause the system to regard the corresponding shot vector as not feasible, disqualifying the shot vector from recommendation.

In some embodiments, the process of generating shot vectors and modified performance values can be repeated to generate shot sequences, wherein shot sequences are comprised of two more sequential shot vectors which use a shot total location associated with a previous shot vector as a ball location. In some embodiments, a plurality of shot sequences can be generated, which can include multiple potentially branching sequences of shot vectors.

In some embodiments, the process of generating shot vectors and modified performance values can be repeated until each shot sequence contains a shot vector associated with a landing location positioned on a green of a golf hole or some other predefined metric.

Selecting a preferred shot strategy from a plurality of shot sequences can include selecting a shot sequence which satisfies a preferred shot selection criterion. In some embodiments, the preferred shot selection criterion can be selecting a shot sequence score with a lowest value, wherein a shot sequence score can be an aggregation of each modified golf performance value associated with a shot sequence.

In some aspects, generating shot strategies in a golf game can include, as implemented by computer program instructions executed by one or more computer processors: receiving a ball location within a layout of a golf hole; receiving a Golf Performance Prediction Grid (GPP Grid) of the golf hole, wherein the GPP Grid includes a positional grid including a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, wherein each of the plurality of grid positions is associated with a geospatial location within the layout of the golf hole, and wherein each grid position has a midpoint reference comprised of a midpoint, wherein the midpoint is a location at the center of a grid position and is used as a reference location for the grid position on the GPP grid; receiving and updating the GPP Grid to account for a short side area; selecting a preferred shot strategy by a shot strategy selection process including: (a) determining a landing location associated with a shot vector and the ball location; (b) determining the grid value associated with the landing location from the GPP Grid; (c) determining an averaged grid value within a shot dispersion area corresponding to the landing location; (d) determining a risk vector associated with the existence of vegetation along the shot vector; (c) performing a roll-out check to identify water features at the landing location and/or within a predefined distance (corresponding to a shot roll) of the landing location, and, if a water feature is identified, removing from consideration the corresponding shot vector; (f) applying the averaged grid value and the risk vector to the golf performance value associated with the landing location to produce a modified golf performance value associated with the landing location; (g) repeating steps (a) through (f) for a plurality of shot vectors; (h) treating each landing location associated with the plurality of shot vectors as initial ball locations and repeating steps (a) through (g), for a plurality of shot sequences, until each shot sequence reaches a green, until each shot sequence contains a predefined number of shot vectors, or another metric; and (i) selecting the shot sequence of the plurality of shot sequences that satisfies a preferred selection criterion; and transmitting the preferred shot strategy; wherein the preferred shot strategy includes one or more shots for a golfer to advance a golf ball from the ball location to a pin cup location in a statistically preferential path.

In some embodiments, a shot strategy can be generated and presented to a user via audio message. For example, a user can interact with a user interface (whether through graphical, tactile, or auditory methods) to initiate generation of a shot strategy. Once generated, the system can generate data for providing the shot strategy to the user via an audio reproduction device such as a loudspeaker or headphones. In some implementations, a user can interact with one or more end user devices (such as, for example, a smart watch, a wearable electronic device, or an implantable electronic device) which is connected via a wireless communications interface to a network to generate inputs to and receive outputs from a shot strategy generation system. For example, the data generated by the system can result in annunciation of an audible phrase such as, for example: “The optimal shot is a 258-yard shot to the left side of the fairway and clearing the sand trap.”

In some embodiments, generating a shot strategy can include generating a plurality of remaining route values (RRVs). RRVs can be generated by identifying, for each grid position on an associated GPP grid, a preferred shot vector via the aforementioned method (applying shot dispersion areas at a plurality of grid positions, calculating an average grid value, generating shot vectors, and generating modified golf performance values at the plurality of grid positions). A RRV can be the modified golf performance value. Once each grid position has an associated shot vector, a method can begin at a pin cup location and search for an optimal shot vector or plurality of shot vectors (a shot sequence) which can reach the pin cup location.

A preferred shot vector can be selected by identifying a selected grid position, which can be a grid position with an associated shot vector which can reach the pin cup location, and which has a lowest value resulting by adding an average RRV and corresponding shot vectors (both for shot carry and shot roll). An average RRV can be generated by applying to a grid position a corresponding a shot dispersion area and averaging all RRVs contained within an associated oval-shaped region-shot vectors can be generated by the aforementioned methods. A selected grid position with a lowest resulting value can correspond to the preferred shot vector.

If the selected grid position with the lowest value is not a tee shot location, the method can be repeated, treating the selected grid position as a pin cup location. Phrased differently, when a preferred shot vector does not correspond with a tee shot location, a ball location associated with the preferred shot vector can be treated as a landing location, wherein all shot vectors which can reach the landing location can be analyzed and selected from to generate a sequential preferred shot vector. If a plurality of selected grid positions are identified while reaching the tee shot location, a plurality of sequential preferred shot vectors can compose a shot sequence which can be a preferred shot strategy.

Example Methods for Generating a GPP Grid

When a routine described herein (i.e., routines 100, 200, 300, and 400) is initiated, a set of executable program instructions stored on one or more non-transitory computer-readable media (e.g., hard drive, flash memory, removable media, etc.) may be loaded into memory (e.g., random access memory or RAM) of a computing device, such as the computing device 1300 shown in FIG. 13, and executed by one or more processors. In some embodiments, the routines 100, 200, 300, and 400 or portions thereof may be implemented on multiple processors, serially or in parallel. In some embodiments, the routines 100, 200, 300, and 400 or portions thereof may be implemented on a shot strategy generation system 500, 1406 described with reference to FIGS. 5, 14, and 15.

FIG. 1 is a flow diagram of an illustrative routine 100 for generating a GPP grid, according to some embodiments of the present disclosure. The routine 100 may be implemented, for example, by the GPP Module 524 of FIG. 5. The routine 100 may allow the shot strategy generation system 500 to probabilistically account for golf performance at various ball locations on a selected hole.

The routine 100 begins at block 102, where the shot strategy generation system receives a selected hole of a golf course. The selected hole can be received, for example, via user interaction with a hole selection interface, via reference to location data associated with a mobile device carried by a golfer, via tracking of the golfer playing holes of the golf course in sequence, or via other techniques. In some embodiments, the system generates a display of a polygon representation corresponding to the selected hole, uses geolocation information to determine the selected hole, and/or generates display data for a user interface to identify the selected hole.

At block 104, the shot strategy generation system receives a polygon representation of the selected hole. The polygon representation can be received via an application programming interface (API) or another source. Receiving a polygon representation can comprise receiving a polygon representation from an API, from another user of the system and method, or from another source. Receiving a polygon representation from an API can comprise interacting with the API by sending a request for the polygon representation corresponding to a selected hole. Receiving a polygon representation from a source other than an API can comprise receiving a polygon representation from another user. The polygon representation can comprise a graphical representation of geospatial information corresponding to a selected golf hole, wherein the graphical representation can be composed of coded geometric shapes—each geometric shape being color-coded according to corresponding geospatial information—overlaying a representation of the golf hole. The geospatial information can comprise representations of the topographical characteristics of the selected hole; regions within the selected hole that correspond to hazards, comprised of rough; bunker regions; regions within or surrounding the selected hole that correspond to out-of-bounds regions and corresponding boundary characteristics of the golf hole, wherein boundary characteristics include out-of-bounds regions near the golf hole; and obstacle characteristics, which can include vegetation type and vegetation location and the existence and characteristics of water features of the selected hole. Topographic characteristics can comprise locations and sizes of one or more bodies of water and a material consistency of a land surface within or on the selected hole, wherein the material consistency of land can comprise the existence and density of sand, gravel, soil, or rocks. Regions corresponding to hazards can include bunkers (depressions in the earth that can be filled with materials such as gravel, sand, soil, rocks, and/or dirt) and water hazards, for example. Out-of-bounds regions can include one or more geographic areas which can be treated as inaccessible to golfers. Vegetation can comprise plant type, density of plants, and plant location. In some embodiments, vegetation features can include trees and green speed (e.g., the length of grass and a corresponding effect on a distance that a golf ball will roll after contact with the green).

In some embodiments, receiving a polygon representation can comprise receiving an edited polygon representation. Edited polygon representations can be generated via user interaction with a user interface that allows an unedited polygon representation to be modified by direct or indirect manipulation. Additional details for generating edited polygon representations are described herein.

At block 106, the shot strategy generation system associates geospatial information with each grid position. For example, a value of 5 can be assigned to a geometric shape representing a fairway, and a value of 10 can be assigned to a geometric shape representing rough. In one embodiment, a polygon representation can be received from an API and used to generate an edited polygon representation. The geospatial information can be represented by geometric shapes comprising a plurality of colors, each color corresponding to a different topographical characteristic, vegetation, hazard, or out-of-bounds region. The geometric shapes corresponding to geospatial information can correspond to how difficult it is to advance a golf ball from a region containing the specific geospatial information to the green. The geometric information can be used to determine which equation will be applied to generate grid values.

At block 108, the system receives a pin cup location, corresponding to a target on the green of the selected hole which can be treated as the location to advance a golf ball towards. Receiving a pin cup location corresponding to a location on a green of the selected hole can comprise a user selecting a pin cup location, a user selecting a pin cup location from among a plurality of potential pin cup locations, receiving a pin cup location from an API, receiving a pin cup location from another user, or receiving a default pin cup location in a middle location of the green.

In one embodiment, a golfer can interact with a user interface to place the pin cup location at a location on the green. In another embodiment, a golfer can be presented with a plurality of potential pin cup locations located and the green, wherein the golfer can interact with a user interface to select a pin cup location of the plurality of potential pin cup locations. In another embodiment, if a user does not select a pin cup location, a default pin cup location can be placed in the center of the green.

At block 112, the system receives or generates a positional grid, which can include a coordinate system comprised of grid positions corresponding to geospatial locations within the selected hole and dimensions corresponding to the selected hole. Generating a positional grid can include receiving a selected hole of golf and overlaying a coordinate system with dimensions corresponding to the selected hole. Overlaying a coordinate system atop the selected hole can include associating each grid position comprising the coordinate system with a location related with the selected hole. Each grid position can be of a predefined size. In some embodiments, the predefined size can be a numeric fraction of the dimensions of the selected hole. In some embodiments, the coordinate system for the grid positions can be two-dimensional or three-dimensional.

At block 114, the system generates position scores for the grid positions, wherein the position scores correspond to the distance between each grid position and a pin cup location. The distance can be straight-line, Manhattan distance, or any other distance metric.

At block 116, the system generates a short side area, wherein the short side area is the region off within a predefined distance from a pin cup location and off a circumference of a green. The short side area can be assigned a value corresponding to its disadvantageous nature. The short side can be generated by any of the methods described herein.

At block 118, the system produces a grid value for each grid position based on a transformation associated with a particular course feature, which can include the geospatial information, the positional scores, and the short side.

In some embodiments, the transformation can include using equations correlated with geospatial features and distance from a pin cup location. One embodiment of the equations is shown below. Application of the equations can produce a grid value at each of the grid positions to account for the advantageous or disadvantageous nature of having a golf ball positioned in each grid position. The equations shown below are illustrative of the transformations that can be applied to values associated with different course segment features in a GPP grid:

Base Equation:

Value = 0.0043 * distance + 2.3766 + Lie_Adjustment

Lie Adjustments:

    • Fairway=0
    • Rough=+0.20
    • Sand=+0.50
    • Trees=+0.70
    • Water=+1.20
    • Out-of-Bound=+2.20
      In another embodiment, the equations used to produce grid values can be:

Green_ ⁢ Value = 0.39 * LN ⁢ ( distance ^ 3 ) + 0.6512 ⁢ Fairway_Value = ( 0 . 0 ⁢ 000000000336854016 * distance ^ 4 ) - ( 0. 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 3 ⁢ 9 ⁢ 1515668 * x ^ 3 ) + ( 0.0000136376217 * distance ^ 2 ) + ( 0.00312174915 * x ) + 2.33355742 ⁢ Rough_Value = ( 0 . 0 ⁢ 0432752 * distance ) + 2.56459829 ⁢ Sand_Value = ( 0 . 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0025403357 * distance ^ 4 ) - ( 0. 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 0 ⁢ 4 ⁢ 5 ⁢ 0092196 * x ^ 3 ) + ( 0.0000271615874 * distance ^ 2 ) - ( 0. 0 ⁢ 0 ⁢ 1 ⁢ 40596179 ⁢ Water_Value = Sand_Value + 1 ⁢ Out - of - Bounds_Value → Rough_Value + 2 ⁢ Trees_Value = Rough_Value + 0. 5

In the above equations, the variable distance can correspond to the distance (in yards) between the pin cup location and a grid position on the course segment. Applying the transformations to each grid position generates a type of GPP grid 530 that can be called an ESTF grid. An ESTF grid is a positional grid that includes grid positions with assigned values that represent the estimated number of strokes to advance a golf ball from each corresponding grid location on the selected hole to the pin cup location.

Example Methods for Editing a Polygon Representation

Providing accurate geospatial information that correlates with a selected hole of golf can improve the performance of Shot Strategies 538 described herein. If any of the geospatial information is inaccurate or incomplete, a preferred shot strategy generated by the system may be unrepresentative of the actual conditions of a selected hole, resulting in the preferred shot strategy being suboptimal. To address this issue, a system for generating an edited polygon representation can be used to refine the course data.

For example, in one embodiment, a user can receive a polygon representation that has a geometric shape placed in a position that does not accurately represent a water hazard on a selected hole. In this embodiment, the user can choose to delete the incorrectly placed geometric shape and add a new geometric shape. The user can then add or delete another geometric shape or accept their changes.

FIG. 2 depicts a flow diagram of an illustrative routine 200 for editing a polygon representation of a course portion.

The routine 200 begins at block 208, where the shot strategy generation system receives a selected hole. The selected hole can be received in the same or a different manner compared to the one described with reference to block 102 of FIG. 1.

At block 210, the system receives a polygon representation of a course segment. The polygon representation can be received in the same or a different manner compared to the one described with reference to block 104 of FIG. 1. In some embodiments, the polygon representation can be an edited polygon representation. An edited polygon representation can be received from an application program interface (API).

At block 202, the system receives an indication of an intent to modify the polygon representation. The system can generate data to display a user interface that allows the polygon representation to be modified by direct or indirect manipulation. In some implementations, the user can select the polygon to be edited by clicking or tapping it. Once selected, the polygon can be highlighted, and its vertices can become visible, indicating it is ready for editing. A selection tool or lasso tool can allow the user to draw a shape around multiple polygons to select them simultaneously. Editing mode can be activated by simple selection of the polygons or by an additional step, such as double-clicking or tapping on a selected polygon, or by selecting an editing control toggle.

At block 204, the system receives proposed modifications to the polygon representation of a golf course segment. The polygon representation can indicate areas such as the tec box, fairway, green, hazards, rough, and out of bounds. The system can generate data for a user interface that allows control over the creation and adjustment of polygons corresponding to these areas. The user interface can include a canvas area where the golf course segment is displayed. The canvas can allow for zooming and panning to enable detailed editing on various parts of the course. A toolbar or control interface can be contained in the user interface. It can contain tools for creating and editing polygons, such as tools to select and move existing polygons, draw new polygons, edit vertices or sides of existing polygons for precise shaping, and remove selected polygons or vertices. When a polygon is selected, a property panel can appear or be updated to allow the user to specify or edit the type of course segment the polygon represents. The panel can also allow the user to edit other properties, such as the name of the area, a difficulty rating, a vegetation height or density value, or specific rules (e.g., drop zones for hazards). The user interface can include a layer control to manage different layers for various parts of the course segment and controls for undoing or redoing actions to facilitate easy correction of mistakes. Receiving proposed modifications to the polygon representation can include receiving geometric shapes that have been modified by a user and receiving an indication that the modified geometric shapes should be committed. Proposed modifications can include addition, resizing, editing, and/or deletion of geometric shapes comprising the polygon representation. In one embodiment, the user can interact with a touch-screen device to identify which locations on the polygon representation are to be modified. In another embodiment, a user can interact with a virtual-reality device, mixed reality device, and/or an augmented reality device to identify which locations on the polygon representation are to be modified. After the proposed modifications are received, the system can generate data to display the proposed modifications for a user to review, after which, via user interaction with a modification confirmation interface, confirmation that the proposed modifications are to be committed can be received.

At block 206, an edited polygon representation can be generated which accounts for committed changes. Generating an edited polygon representation can include selecting between the geometric shapes in the polygon representation and the geometric shapes in the proposed modifications specified by the user. In some implementations, when selecting between the geometric shapes, when there is a difference between geometric shapes corresponding to the modifications and the geometric shapes within the polygon representation, the geometric shapes with a more disadvantageous nature can be selected. In this way, the system will select the “worst” feature for each golf hole.

Once the edited polygon representation has been generated, the edited polygon representation can be transmitted to a data store and/or distributed to other users via an API or any other method. Edited polygon representations that have been distributed to other users can be used as polygon representations in the method of generating shot strategies.

In some embodiments, an edited polygon representation which has been transmitted to an API can be ranked by users interacting with the API, wherein ranking can include assigning a numerical value to an edited polygon representation which corresponds to how accurate, useful, or preferred by users the polygon representation is.

In one embodiment, an edited polygon representation can be uploaded to a web portal, comprising a website wherein users can access and/or download edited polygon representations and rank polygon representations.

In some embodiments, a user can select an edited polygon representation which has been downloaded to be used to generate a GPP grid instead of a default polygon representation.

In some embodiments, a user can select a top ranked edited polygon representation to be used to generate a GPP grid instead of a default polygon representation, wherein the top ranked edited polygon representation can be an edited polygon representation which has received a highest ranking. The top ranked edited polygon representation can be an edited polygon representation which, collectively, users believe to be most representative of a corresponding golf hole or is most useful when generating shot strategies for the corresponding golf hole.

Example Methods for Determining Short Sides Data

FIG. 3 is a flow diagram of an illustrative routine 300 for determining short sides data.

A shot strategy can be improved when it accounts for short side areas of a golf hole. Short sides data can define an area of a golf hole that is off the green and within a predefined radial distance to where the pin cup is positioned on the green. An edge of the green within the predefined distance to the pin cup can be called a “short side.” When a golfer's ball lands just off the green in the short side area, it means they have less green surface between their ball and the pin cup to work with for their next shot. Generally, a landing spot in the short side area can be disadvantageous for a golfer. Thus, when generating a shot strategy, accounting for the locations of the short side areas can be useful.

A short side area of a golf hole refers to a specific zone located near but not within the green itself. This area is defined by its proximity to the green's edge, particularly on the side where the distance between the edge of the green and surrounding hazards or rough is minimal. The short side area begins at the short side boundary, which is the edge of the green closest to the pin cup and extends outward from the green for a distance that can be predefined. The distance can be a fixed distance or a variable distance. This distance is determined by the layout of the hole, the positioning and shape of the green, user selection, and strategic considerations of the course design.

A routine 300 for determining a short side area can begin at block 306, where the system receives a selected hole. The selected hole can be received in the same or a similar manner compared to the one described with reference to block 102 of FIG. 1. In some implementations, when a pin cup location is selected, a corresponding selected hole of golf and polygon representation can be automatically identified.

At block 308, the system generates a GPP Grid of the selected hole. The GPP Grid can be generated in the same or a similar manner compared to the one with reference to routine 100.

At block 302, the system receives a pin cup location. The pin cup location can be received from a course data store, from a network computing system, via an API, and/or via user interaction with a pin cup location selection interface. In certain implementations, the pin cup location selection interface can indicate potential pin cup locations, which can be autonomously generated or predetermined. A plurality of potential pin cup locations can be generated on a graphical representation of the green. A user can interact with the pin cup location selection interface to select one of the potential pin cup locations. The pin cup location selection interface can be configured to receive a user selection of one of the potential pin cup locations and/or receive a user selection of a default pin cup location. In some implementations, the pin cup location selection interface allows a user to specify the pin cup location at any position on a representation of the green of the selected hole. In some embodiments, a pin cup location can be received from another user. In some embodiments, a pin cup location can be received from another user by a user directly sharing a pin cup location or a user saving a pin location to a server, an API, or any other computer storage method or device, and another user downloading the pin cup location.

At block 304, the system determines an area just off the or near the green that corresponds to the short side. The short side can be determined using a process that identifies the short side area through the spatial relationship between the pin cup, the perimeter of the green, and a predefined radial distance from the pin cup. The process can use a predefined or adaptable radial distance that corresponds to the boundary of the short side area. If the radial distance from the pin cup location is shorter than the distance between the pin cup location and the boundary of the green, a short side area will not be generated. The process can include determining that a portion of the green perimeter that is within the predefined radial distance to the pin cup location corresponds to the short side boundary, which can also be called the short side portion of the green perimeter. The process can include identifying an area bounded by at least: a first line segment that extends a predefined distance away from the pin cup location along a line that intersects the a first edge of the short side boundary, a second line segment that extends a predefined length away from the pin cup location along a line that intersects the pin cup location and a second edge of the short side boundary, the short side boundary, and an outer boundary that connects the outer ends of the first and second line segments along a circular path. The short side boundary can be located on any side of the pin cup location and can be broken into two or more sections.

For example, the shot side area can be thought of as a circle placed around the pin cup location. The area of the circle extending past the boundary of the green can be the short side area. However, portions of the short side area that have a large amount of fairway behind them are not removed from the short side area. The amount of corresponding fairway necessary to exclude a portion from the short side can vary depending on user preference, the landscape of the golf hole, or any number of factors.

The precise delineation of the short side area can vary depending on several factors, including the day's pin placement, the natural contours of the land, and the layout of the surrounding hazards. Generally, it is considered to be the area beyond the green's edge and within a predefined distance from the pin cup, corresponding to an area where the golfer would have a relatively unobstructed and more manageable shot onto the green. By way of example and without limitation, this predefined distance can be from 10 yards to 20 yards for holes with a lesser degree of difficulty, from 20 yards to 40 yards for holes that present a moderate challenge and can be from 40 yards to 50 yards for holes with increased difficulty. The width of the short side area can vary within or near any of the ranges identified herein and depends on the design of the golf hole and surrounding terrain. In some implementations, the width of the short side area depends on geospatial features in the vicinity of the short side boundary. In certain implementations, at least a portion of the short side area extends to a boundary of the golf hole. In some scenarios, a golf hole has a collar that can be considered on the green, part of the edge of the green, or just off the green depending on the geospatial characteristics of the collar. Short side area determinations can account for sloped areas of the green, the collar, and course sections just off the green.

In some embodiments, the predefined distance can be between 30 yards and 50 yards.

At block 310, the system assigns a short side penalty value to a short side area of the golf hole. Assigning a short side penalty value to the short side area can include generating a geometric shape which occupies the short side area, similar to the polygon representations discussed elsewhere herein, and assigning one or more values that discount a grid value based on the disadvantageous nature of golf shots that land in the area. The grid value from the GPP Grid can be transformed by, for example, multiplying (or adding) the grid value associated with a landing location by the assigned value when the ball is predicted to come to rest in or near the short side area. Because landing in a short side area is disadvantageous, the discounted value would typically be a value that would result in a worse grid value (e.g., a higher estimated strokes to finish or ESTF value) for shot vectors that have a landing location close to or inside of the short side area.

In some embodiment, the short side penalty value can be vary depending upon a distance from a pin cup location, with smaller distance corresponding to a greater penalty value. For example, a location 10 yards from a pin cup location can corresponding to a short side penalty of 0.5, whereas a location 30 yards from a pin cup location can correspond to a short side penalty value of 0.25, and whereas a location 50 yards from a pin cup location can correspond to a short side penalty value of 0.1.

Example Methods for Generating Preferred Shot Strategies

FIG. 4 depicts a flow diagram of an illustrative routine 400 for generating preferred shot strategies.

A routine 400 for generating shot strategies can include receiving an initial ball location on a selected hole; receiving golfer data corresponding to a golfer whose shot strategy is to be generated; receiving a GPP Grid; generating shot vectors; generating risk vectors; performing a roll-out check; repeating the process until all sequences of shot vectors reach a green are analyzed or until a predefined metric has been achieved; and determining a preferred shot strategy.

The routine 400 can begin at block 402, where the system receives a selected hole. The selected hole can be received in the same or a different manner compared to the one described with reference to block 102 of FIG. 1.

At block 404, the system receives a ball location on the selected hole. The ball location can be determined in a number of ways. For example, the system can receive location data from a mobile device carried by the golfer. If the mobile device is near the ball, the location data from the mobile device can be used to approximate the location of the ball. Some dedicated golf geolocation devices can be attached to a golf bag or cart, and the ball location can be received from such a geolocation device. Some golf balls or golf clubs may incorporate a geolocation tag (e.g., an RFID or NFC tag) or other sensor that can allow for tracking of the ball's location. The system can receive ball location data from the geolocation tag or sensor, providing an initial location for the ball before the shot. A camera on an augmented reality headset, mixed reality headset, and/or mobile device, can use image recognition or computer vision algorithms to detect and track the golf ball's location on the course. Drones equipped with cameras can provide aerial views of the course and use image recognition to track the ball's position. Beacons placed around the course can interact with mobile devices, geolocation tags, or sensors to triangulate the ball position. The system can provide a ball location selection interface that allows the golfer to manually 550 input the ball's location. The ball location can be the location from which shot strategies are generated to advance a golf ball towards the pin cup.

At block 406, the system receives golfer information. Such information can be retrieved autonomously, entered manually 550, or received through a combination of methods. Golfer information can include demographic information (e.g., gender and age), handicap, club hitting distance, shot shape, dominant hand, and/or dispersion data. In some embodiments, the club hitting distance and shot shape can correspond to a driver, a 7-iron, and/or other clubs. In certain embodiments, the club distance and shot shape can correspond to any golf club or combination of golf clubs. Club hitting distance can include one or more distances corresponding to the distance traveled by a golf ball when hit with one or more golf clubs. Shot shape can include a description of whether a golfer's typical shot shape is fade, draw, straight, hook, or slice, wherein fade can refer to a golf path moving from left to right a relatively small distance; draw can refer to a golf path moving from right to left a relatively small distance; straight can refer to a golf path having no left or right movement; hook can refer to a golf path moving from right to left a relatively large distance; and slice can refer to a ball path moving from left to right a relatively large distance. The aforementioned shot shapes can correspond to a right-handed golfer. In one embodiment, direction of movement corresponding to shot shape can be reversed if a golfer's dominant hand is left.

Golfer information can be used to generate a plurality of shot distances, shot curve, shot carry, shot height, and shot dispersions. Shot distances can be predicted distances that golf balls corresponding to potential shots will travel. Shot curve can include predicted lateral movements a golf ball will make when struck by a golfer with a golf club (corresponding to fade, slice, draw, straight, or hook). Shot carry can include a horizontal distance a golf ball travels through the air. Shot height can include a vertical distance a golf ball travels through the air. Shot dispersion areas describe where golf balls corresponding to potential shots are likely to intersect a corresponding golf hole; a shot dispersion area can be a range of potential locations where golf balls corresponding to golf shots can make contact with ground. Shot distances, shot curves, shot carry, shot height, and shot dispersions can be influenced by the geospatial information and other course data corresponding to a golf hole.

In some embodiments, shot curve can include incremental variations. For example, a shot curve could be large slice, medium draw, or small fade, with the descriptors “big,” “medium,” and “small” being applicable to any and all shot curve types.

For example, if the hole includes obstacles such as hills or tall vegetation, the obstacles can act as a barrier to reduce shot distances, alter shot curves, and/or modify shot dispersions. In this example, if a landing location is on a hill that is sloped towards the north side of a golf hole, a corresponding shot dispersion area can be stretched and/or translocated northward; the slope of a hill can increase, decrease, and/or redirect a golf shot vector. In another example, geospatial information corresponding to a concave region of land which focuses into a single point can cause shot distributions to focus into a smaller point than would be present on flat ground. In another example, if course data indicates the presence of sand, gravel, or rough, the distance a ball is predicted to roll on the ground can be reduced, corresponding to a reduced shot distance. The shot curve for the subsequent shot from the rough terrain may also be affected. In another example, if a tree is within the path of a predicted shot curve, there is a risk that the shot curve and shot distance can be substantially impacted. Course data can include information describing certain topographical characteristics of the selected hole, including but not limited to locations and sizes of bodies of water and a groundcover consistency of a land surface. The groundcover consistency can include the existence and density of sand, gravel, soil, or rocks; regions within the selected hole of golf that correspond to hazards such as sand traps; regions within or surrounding the selected hole of golf that correspond to out-of-bounds regions; and vegetation of a selected hole. The vegetation data can include vegetation type, vegetation height, vegetation density, vegetation location, and the like. Course data can include green speed, which is associated with the length, type, and density of grass in the green, all of which may modify the way the ball will roll and move when it impacts or rolls across the green. Course data can include any other criteria that describe the forms and locations of one or more plants or other obstacles on a selected hole.

In some embodiments, a shot dispersion area can be scaled up or down depending on a lie of a golf ball, wherein lie can refer to a location on a golf hole that a golf ball is positioned at and what topographical feature exist at the location. For locations which exist on topographical features that are hazardous, dispersion areas can be scaled up to accommodate less certainty and control over where a corresponding golf shot places a golf ball. For example, if a lie corresponds to a sand trap, a corresponding shot dispersion can be expanded in all directions to accommodate less certainty as to where a corresponding landing location will be. In another example, if a lie corresponds to a fairway, a corresponding shot dispersion can remain unchanged or can be reduced in size, corresponding to a comparatively increased level of certainty as to where a corresponding landing location will be.

Shot distances, shot curves, and shot dispersions can be generated to account for the effect of Environmental Factors 520. Environmental Factors 520 can include atmospheric conditions, including temperature, elevation, slope, aspect, relative humidity, and parallel wind vectors. Parallel wind vectors can increase or decrease shot distance by applying a force either with or against a golf ball as the golf ball travels. Velocity components can be measured in relation to a travel path of a golf ball. Wind velocity having a parallel velocity component can be used to adjust travel distance of a shot, and wind velocity having a perpendicular velocity component 536 can be used to adjust the travel path, perpendicular landing location of the shot, and shot dispersion. The perpendicular landing location can reference how far left or right a shot drifts due to wind.

Each Environmental Factor 520 can be applied to the generation of shot distances, shot curves, and shot dispersions. Shot distances can be either increased or decreased to account for a parallel velocity component of wind and/or moved in a perpendicular direction to account for a perpendicular velocity component 536. A shot curve or ball path can similarly be stretched or shrunk, and shot dispersions can have their attributes similarly adjusted.

At block 408, the system can receive or generate a GPP Grid. The process for generating a GPP Grid can be similar to or the same in many respects to the routine 100 described with reference to FIG. 1.

At block 410, the system can generate shot vectors from a data set which can include shot distances (alternatively referred to as “target shot distances”), shot curves, and shot dispersion areas to a GPP Grid, with environmental factors, to obtain landing locations (alternatively referred to as “target landing locations”). Shot vectors can be composed of a shot angle and a corresponding golf club and can be associated with an initial ball location, a landing location, and a ball path corresponding to a golf shot. A shot landing location can be determined by placing a shot dispersion area at a location on the GPP Grid that corresponds to a distance from an initial ball location equal to a corresponding shot distance, while accounting for a corresponding shot curve, a perpendicular wind vector 536 (which can modify horizontal movement), and shot roll. To generate a plurality of shot landing locations, the same process can be applied in a circular pattern around the ball location. For example, assuming no influence of environmental factors or geospatial factors, a shot dispersion can be applied at a constant radial distance from an initial ball location and rotated around the initial ball location. The center location of each instance of the shot dispersion will be an additional landing location. Each central location can correspond to a single grid position on the GPP Grid. A path taken by a golf ball from a ball location to a landing location can be a ball path. In some embodiments, each ball path can be a straight line or a curved line traversing through the two-dimensional or three-dimensional coordinate system correlated with the GPP Grid 530.

Shot vectors can be assigned golf performance values that represent the static aspects of a golf hole, wherein the static aspects can include distance between each grid position and a pin cup location and geospatial features. Golf performance values can be generated with at least a grid position value of a landing location. In some embodiments, a golf performance value can be generated with an averaged grid value, a summation of each grid position within a shot dispersion area corresponding to a landing location, and a grid position of a ball location.

At block 412, the system generates risk vectors. This can be done by receiving shot vectors; determining if corresponding ball paths intersect trees, other vegetation, or other obstacles; and assigning values correlated with the density and/or existence of obstacles to each shot vector. Determining if ball paths intersect one or more obstacles can include verifying if any grid position the ball path intersects is assigned to geospatial information indicating the existence of one or more obstacles at the intersected grid position. If one or more obstacles are found in one or more grid positions intersected by a ball path, a risk factor can be assigned to the associated shot vector. A risk vector can be a value indicating that a ball path is blocked or a value signifying the risk that a ball path corresponding to a shot vector will be affected by an obstacle.

For example, if a shot vector is associated with a ball path that intersects a thick assortment of trees, a risk vector of 0.9 can be assigned. Instead, if the shot vector is associated with a ball path that intersects a thin assortment of trees, a risk vector of 0.05 can be used.

Risk vector can also be used to generate a modified golf performance value. Risk vectors can adjust golf performance values to account for the aforementioned geospatial features. In this way, the risk vector can weight grid position values to reflect the risk that vegetation, hazards, or other obstacles will interfere with a shot strategy.

Risk vectors can be used to generate modified golf performance values, which can represent the static and dynamic aspects of a golf hole, wherein the dynamic aspects of a golf hole can include obstacles. A modified golf performance value can be generated with at least a golf performance value and a risk vector.

At block 414, the system can perform a rollout check and remove selected shot vectors from consideration or discount a golf performance value of a selected shot vector. Performing a rollout check can include analyzing a ball path associated with a shot vector for the existence of water and water-related hazards. In some embodiments, if water is located at any point along a shot roll or a corresponding landing location, a risk vector can be generated which corresponds to a disadvantageous nature of the corresponding landing location.

At block 416, in some embodiments, the aforementioned steps can be repeated to generate a plurality of shot vectors.

In one embodiment, a plurality of shot vectors can include shot sequences, which can be composed of a plurality of sequential shot vectors, wherein each sequential shot vector uses a previous shot vector's associated landing location as a ball location. Generation of shot sequences can be repeated until each shot sequence contains a shot vector with an associated landing location that lies atop a green on a golf hole or until a predetermined criterion is met. In some embodiments, the predetermined criterion can be a number of shot vectors contained within a shot sequence.

At block 418, the system can determine a preferred shot strategy. Determining the preferred shot strategy can include identifying a shot vector which satisfies a preferred shot selection criterion. In some embodiments, the preferred shot selection criterion includes identifying a shot vector with a lowest modified golf performance value.

In some embodiments, determining a preferred shot strategy can include identifying a shot sequence of a plurality of shot sequences which satisfies a preferred shot selection criterion. In some embodiments, the preferred shot selection criterion includes identifying a shot sequence with a lowest shot sequence score, where in a shot sequence score can be a summation of each modified golf performance value contained within a shot sequence.

If there is a plurality of shot sequences which have the same combined modified golf performance value, a single sequence can be selected through methods that apply metrics, such as: selecting the shot sequence that has a lowest average grid position value associated with a last shot vector in the shot sequence; selecting the shot sequence which makes use of the smallest number of clubs; selecting the shot sequence which makes the most use of a desired club; or randomly selecting among the remaining shot sequences. The selected shot sequence can be the preferred shot strategy.

When a preferred shot strategy has been generated, it can be displayed on a GUI as a line or a series of arrows overlaid on a visual representation of a golf hole to represent the proposed shot vectors and their corresponding landing locations and ball paths. Assorted colors or styles of lines can indicate different shots (e.g., drive, approach, putt, etc.). Preferred landing zones for each shot can be highlighted with semi-transparent overlays that can indicate the ideal areas to aim for, factoring in the golfer and course data. In some implementations, areas with higher risk (like hazards or challenging rough areas) can be highlighted or color-coded to inform the golfer's decision-making process. In certain implementations, the GUI can include a feature that simulates different scenarios based on user adjustments, showing potential outcomes of each shot strategy. In some implementations, the GUI can display a visual and/or analytical comparison of the hypothetical shot or the actual shot taken by the golfer and the preferred shot strategy.

In some embodiments, a plurality of Shot Strategies 538, corresponding to the plurality of holes of golf of a golf course, can be generated simultaneously, at the beginning of a golf game, and/or at any point during a golf game or a golf training.

Example Implementations Related to Golf Training or Instruction

In some implementations, methods of generating shot strategies can be applied to the context of golf instruction or training. Training or instruction can help a golfer make improved shot strategy decisions. Such methods can include receiving a selected hole or course section; receiving a ball location; generating a preferred shot strategy for advancing a golf ball from the ball position to a pin cup location 508 on the hole or course section in a minimum number of strokes; generating data to display a graphical user interface showing the hole or course section and the ball position; prompting a user to select a training shot for advancing the golf ball to a subsequent ball position; determining a score or other analytical comparison comparing the training shot and the preferred shot strategy; and transmitting the score or analytical comparison.

Receiving a selected hole or a course segment can include receiving an indication generated via user interaction with a course segment selection interface. The user interface can be on a mobile phone, a tablet, a desktop computer, a laptop, a virtual reality headset, an augmented reality headset, a mixed reality headset, or any other computing device capable of receiving user inputs and generating outputs that can be perceived by a user. The selected hole can also be received using a routine similar to or the same as the one described with reference to block 102 of FIG. 1.

Receiving a ball location (e.g., an initial ball location or a subsequent ball location) can include a user selecting an initial ball location on a graphical user interface, receiving an initial ball location autonomously generated, receiving an initial ball location generated by a second user, or any other suitable method. The ball location can also be received or determined using a routine similar to or the same as any of those described with reference to block 404 of FIG. 4.

A preferred shot strategy can be generated using a routine similar to or the same as any of those described with reference to FIG. 4. The shot strategy can include recommended or preferred shots to advance a golf ball from the initial ball location to a pin cup location 508. The pin cup location 508 can be received or determined using a routine similar to or the same as any of those described with reference to block 308 of FIG. 3.

In some embodiments, determining a pin cup location can include identifying a green on a selected hole of golf, identifying a boundary of the green, and selecting a random location within the boundary of the green as the pin cup location.

Generating data to display a training shot selection interface of the golf hole and the ball position can include displaying a graphical representation of the selected hole of golf and a graphical representation of the ball position. The graphical representations can be generated for displaying to the user. The GUI can include a scalable map or aerial view of the golf hole, including the tee box, fairway, green, hazards (bunkers, water), and rough areas. The view can be a realistic rendering or a stylized representation. In some implementations, the user is able to zoom in or out and pan across the hole to view different sections, providing better understanding of the preferred shot strategy in context.

Prompting a user to select a training shot can comprise prompting a user to interact with a training shot selection interface in a manner which communicates a training shot, which can be a hypothetical shot or an actual shot within a real or a virtual golf hole. A user selects a training shot which is optimal based on the user's knowledge and skill. In some implementations, the user can adjust a proposed shot path or landing zones using the GUI. This can be accomplished by direct or indirect manipulation of a shot path shown in the viewport through, e.g., drag-and-drop interactions, and the GUI can automatically update the shot details and view to reflect changes.

The training shot communicated from the user can be compared against the preferred shot strategy, and a score or other analytical comparison can be generated which characterizes the difference between the training shot and the preferred shot strategy. The score can be numeric, alpha-numeric, or any combination of letters, number, symbols, visual, audio, or haptic ques. When it is time to display the preferred shot strategy in the GUI, a line or a series of arrows can be overlaid on the map to represent the proposed path of the shot, including the starting point, trajectory, and intended landing area. Different colors or styles of lines can indicate different shots (e.g., drive, approach, putt, etc.). Preferred landing zones for each shot can be highlighted with semi-transparent overlays that can indicate the ideal areas to aim for, factoring in the golfer and course data. In some implementations, areas with higher risk (like hazards or challenging rough areas) can be highlighted or color-coded to inform the golfer's decision-making process. In certain implementations, the GUI can include a feature that simulates different scenarios based on user adjustments, showing potential outcomes of each shot strategy. In some implementations, the GUI can display a visual and/or analytical comparison of the hypothetical shot or the actual shot taken by the golfer and the preferred shot strategy.

Transmitting the score or other analytical comparison can include generating data to display the analytical comparison to the user via the GUI or transmitting the analytical comparison to second computing device. The analytical comparison can be used to adjust the user's future shots and train the user to make better shot strategy decisions.

Environmental Factors

Accurate environmental factors 520 can assist in generating an improved shot strategy. If wind velocity, humidity, temperature, or any other environmental factors 520 are inaccurate, generated shot strategies 538 may be inappropriate or suboptimal.

In some embodiments, environmental factors 520 can be tracked by receiving a selected hole of golf; receiving a first set of atmospheric conditions corresponding to a selected hole of golf; receiving modifications to the first set of atmospheric conditions; and determining a second set of atmospheric conditions, wherein the second set of atmospheric conditions are based at least on the first set of atmospheric conditions and the modifications to the first set of atmospheric conditions.

Receiving a first set of atmospheric conditions can comprise interacting with an API to receive a set of atmospheric conditions which have been generated via one of a plurality of methods comprising: autonomously retrieving a set of atmospheric conditions (e.g., from the network computing system 1414 of FIG. 14) or receiving a set of atmospheric conditions generated by a user.

Receiving modifications to the first set of atmospheric conditions can comprise a user interacting with a user interface to record changes in temperature, elevation, humidity, precipitation, and wind velocity. Wind velocity can include a perpendicular component and a parallel component in relation to a travel path of a golf ball.

A second set of atmospheric conditions can be determined by applying the modifications to the first set of atmospheric conditions by, for example, averaging the corresponding values or adjusting the first set of atmospheric conditions according to the some or all of the received modifications.

Generating a GPP Grid

FIGS. 8A-D are graphical representations of a golf hole and a corresponding coordinate system. The graphical representations in FIGS. 8A-D will be referenced to describe illustrative routines for generating a type of GPP Grid called an ESTF Grid 530.

FIG. 8A depicts a golf hole 800 and a coordinate system 806 which can be overlayed atop a Polygon Representation 516 (FIG. 8B) of the golf hole to produce a positional grid 804 (FIG. 8C). The coordinate system 806 has grid positions with spacing that can be predefined or defined at the time the ESTF Grid is generated. The spacing of the grid positions can be correlated with the granularity of a resulting ESTF Grid 530 (FIG. 8D)—increases in grid spacing will result in decreased ESTF Grid granularity and decreases in grid spacing will result in increased ESTF Grid granularity. The coordinate system 806 can be generated based on course data received by any method described herein. Geographical dimensions of the golf hole can be determined, and the coordinate system 806 can be generated to overlap the geographical dimensions.

FIG. 8B depicts a polygon representation 802 of the golf hole 800 shown in FIG. 8A. The polygon representation 802 includes geometric shapes that correspond to geospatial information of the golf hole 800. The geospatial information can include, for example, out-of-bounds regions 808, hazard regions 810 (e.g., water features or sand/gravel traps), a pin cup location 508, trees 812, and fairway 814. The features reflected in the geospatial information can be assigned one of a plurality of formulas that can be used to generate a corresponding grid value, wherein the plurality of formulas can correspond to a grid position being more or less difficult to play a golf ball through.

FIG. 8C is a graphical representation 816 of a positional grid 804, which includes a coordinate system 806 overlaying a Polygon Representation 516. The positional grid 804 has grid positions that can contain values associated with the geospatial information of the golf hole, the distance between each grid position and a corresponding pin cup location, and (potentially) a short side area.

FIG. 8D is a graphical representation 818 of a GPP Grid 530. The overlayed positional grid 804 of FIG. 8C can contain values derived in accordance with routines described with reference to FIG. 1 or in accordance with other techniques described herein. The values can summarize the geospatial information at each grid position, the distance between each grid position and the pin cup location 508, and a short side area, to produce values that estimate how advantageous each grid position is towards the goal of advancing a golf ball from an initial ball location to the pin cup location 508. The GPP Grid 530 can have different colors assigned to certain grid positions, the colors corresponding to different geospatial information represented by each grid position.

Editing Polygon Representations

FIGS. 9A-D are graphical representations of an illustrative graphical user interface (GUI) that can be used to edit Polygon Representations 516.

FIG. 9A is a representation of an aerial view of a golf hole. The representation comprises the geospatial information of the selected hole of golf, as well as other physical features in out-of-bounds areas, like houses and roads.

FIG. 9B is a graphical representation of the illustrative GUI displaying a polygon manipulation interface with course sections labeled that can be represented by a polygon representation. The polygon representation includes a plurality of geometric shapes 904 908 910 912 918 that define boundaries between course portions that correspond to different geospatial information of the golf hole, such as trees 904, water 908, fairway 910, tee location 912, green 918, rough 920, out-of-bounds 922, and pin cup location 508. A user can interact with the user interface to generate modifications by adding, resizing, and/or deleting one or more geometric shapes, wherein the modifications can include a user-generated polygon representation with one or more geometric shapes that have been added or deleted. The modifications can be processed with the polygon representation to create an edited polygon representation. An edited polygon representation can be created by selecting, at each grid position, a geospatial feature corresponding to the polygon representation or the modifications which has a largest corresponding grid value. In this way, grid positions of the edited polygon representation can be assigned a least advantageous geospatial feature assigned to either the polygon representation or the modifications. The methods of editing the polygon representation include those described with reference to FIG. 2.

FIG. 9C is a graphical representation of one embodiment of a polygon manipulation interface displaying available additions of geometric shapes on a polygon representation. The interface contains a menu 924 from which a plurality of colors corresponding to a plurality of geospatial features can be selected, enabling a user to add one or more geometric shapes to modifications. In some embodiments, adding geometric shapes can include a user interacting with a touch-screen device (or using any other method for interacting with a device performing the aforementioned method) to draw geometric shapes, of a variety of dimensions, in one or more locations on a polygon representation. For example, a user can select from the menu 924 a color associated with fairway and can draw one or more shapes on a touch screen device which correspond to dimensions of fairway on a golf hole.

FIG. 9D is a graphical representation of one embodiment of a polygon manipulation interface displaying a geometric shape 914 selected for deletion. In FIG. 9D, the geometric shape 914 selected for deletion is outlined by a dashed line.

In one embodiment, a user can upload an edited polygon representation to an application programming interface for use by other users of the method and/or apply the edited polygon representation to the method for planning multi-shot paths in golf strategies.

In one embodiment, an edited polygon representation that has been uploaded to an application programming interface can be ranked by users, wherein ranking can include assigning a numerical value an edited polygon representation which corresponds to how accurate or useful the polygon representation is.

In one embodiment, an edited polygon representation can be uploaded to a web portal, comprising a website wherein users can access and/or download edited polygon representations and rank polygon representations.

In some embodiments, a user can select an edited polygon representations which has been downloaded to be used to generate a GPP grid instead of a default polygon representation.

Pin Cup Location Selection and Short Sides Determination

FIG. 10A-B are graphical representations of an illustrative GUI displaying a polygon representation and icons to allow selection of a pin cup location 508.

FIG. 10A depicts a green 1000 of a golf hole having a polygon representation, an interactive pin cup location 508 which can be relocated by a user, and markers 1002 1004 showing distances in yards from a boundary of a green and the pin cup location.

FIG. 10B depicts the green 1000 of FIG. 10A with a pin cup location 1006 having been placed at a location on the green which differs from the pin cup location 508 of FIG. 10A.

FIG. 10C depicts a green of a golf hole having a polygon representation with a pin cup location 1008 selected and used to generate short sides data. The short side corresponds to an area off the green of the selected hole of golf which is less advantageous for a shot to land in and is bounded by a short side boundary of the green that is close to the pin cup location 1008 and a circular outline 1012 centered on a pin cup location. The process of generating the short sides data can be similar to or the same as any of the routines described with reference to FIG. 3.

FIG. 10D depicts a green of a golf hole having a polygon representation with a pin cup location 1008 selected and used to generate a shot side area 1010, bound by a circular outline 1012 and a boundary of the green.

In some implementations, a user can select any location on a green for use as the pin cup location. Any routines that are the same as or similar to those described with reference to block 108 of FIG. 1 can be used to receive or determine a pin cup location. After receiving or determining the pin cup location, the system can generate short sides data. The generated shot sides data can include two or more disconnected areas. Evaluation of Shot Vectors

FIGS. 11A-C are graphical representations of an ESTF Grid and potential shot vectors. The graphical representations in FIGS. 11A-C will be referenced to describe illustrative routines for generating Shot Strategies 538.

FIG. 11A depicts an ESTF Grid 530 corresponding to a selected hole of golf. An illustrative routine can include searching for and analyzing shot vectors with landing zones within a shot dispersion area 1104 located at a range of shot distances 1102 from an initial ball location 1114.

FIG. 11B depicts an ESTF Grid 530 with a plurality of visualized ball paths 1106. An illustrative routine can include checking the ESTF Grid 530 for one or more trees or other obstacles 1108 and water hazards located along the ball paths 1106.

FIG. 11C depicts a polygon representation of a golf hole 1110 with a ball path 1116 intersecting a geometric shape representing an obstacle 1108, in this instance a tree. When analyzing the shot vector associated with the illustrated ball path 1116, one or more potential obstacles 1108 are identified. In the illustrated scenario, the location and density of trees or other obstacles intersected by the ball path can be used to generate a Risk Vector.

An illustrative routine can also check for water hazards located along a ball path 1106. If water is found at a landing location or a shot roll associated with the landing location, a shot vector corresponding to the existence of water can be generated. The risk vector associated with water can be a relatively large value so as to represent an unacceptable risk that a corresponding golf ball will fall into water.

In some embodiments, regions with trees, water, or other physical impediments can be described as “obstacle regions.”

Selecting Shot Strategies

FIG. 12A-B are graphical representations of shot dispersions and ball paths. The graphical representations in FIGS. 12A-B will be referenced to describe illustrative routines for selecting shot strategies.

FIG. 12A is depicts shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226. Shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 include arrangements of predicted shot landing locations 1230 for a particular club. When Demographic Information 502 is received, club total, shot carry, and dimensions of a shot dispersion area can used to produce shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226. The shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 can be generated in various ways, including: comparing club total, shot carry, and dimensions of a shot dispersion area with the values contained in a chart with corresponding values that define the shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226; utilizing a machine learning model trained on a dataset comprising examples of club total, shot carry, and dimensions of a shot dispersion area and corresponding shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226, to predict shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 corresponding to new Demographic Information 502; or any other method.

Alternatively, information describing shot dispersions (length, width, and angle of rotation) can be manually 550 entered, wherein the information can include the location of every shot landing location 1230 that makes up shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226.

FIG. 12B depicts shot distances 1232 and corresponding shot trajectories 1228, which can include ball paths and shot shapes, that are generated from analysis of Demographic Information 502. Similar to the calculation of shot dispersions 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226, shot distances 1232 and shot trajectories 1228 can be generated in various ways, including, for example: comparing Demographic Information 502 with the values contained in a chart with corresponding values that generate predicted shot distances 1232 and shot trajectories 1228; training a machine learning model on a dataset containing examples of Demographic Information 502 and corresponding shot distances 1232 and shot trajectories 1228 and using the trained machine learning model to predict shot distances 1232 and shot trajectories 1228.

Execution Environment

FIG. 13 depicts an example architecture of a computing device (e.g., method for generating Shot Strategies 538 in a golf game) that can be used to perform one or more of the techniques described herein or illustrated in FIGS. 1-12. The general architecture of the system for generating shot strategies in a golf game depicted in FIG. 13 includes an arrangement of computer hardware and software modules that may be used to implement one or more aspects of the present disclosure. The system for generating shot strategies in a golf game may include many more (or fewer) elements than those shown in FIG. 13. It is not necessary, however, that all of these elements be shown in order to provide an enabling disclosure.

In some embodiments, the computing device 1300 may be implemented using any of a variety of computing devices, such as server computing devices, desktop computing devices, personal computing devices, mobile computing devices, mainframe computing devices, midrange computing devices, host computing devices, or some combination thereof.

In some embodiments, the features and services provided by the computing device 1300 may be implemented as web services consumable via one or more communication networks. In further embodiments, the computing device 1300 is provided by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and released computing resources, such as computing devices, networking devices, and/or storage devices. A hosted computing environment may also be referred to as a “cloud” computing environment.

In some embodiments, as shown, a computing device 1300 may include: one or more computer processors 1302, such as physical central processing units (“CPUs”); one or more network and input/output interfaces 1304, such as network interface cards (“NICs”), wireless network interfaces (such as, for example, Wi-Fi or Bluetooth interfaces); one or more computer-readable medium 1306, such as hard disk drives (“HDDs”), solid state drives (“SSDs”), flash drives, and/or other persistent non-transitory computer readable media; and one or more data stores 1308; a memory 1310 that includes an operating system 1312, a shot strategy generation service 1314, a shot distance, shot curve, & shot dispersion service 1316, a short-side generation service 1318, and a polygon representation editing service 1320.

The processor 1302 may communicate with memory 1310. The memory 1310 may contain computer program instructions (grouped as modules or units in some embodiments) that the processor 1302 executes in order to implement one or more aspects of the present disclosure. The memory 1310 may include random access memory (RAM), read only memory (ROM), and/or other persistent, auxiliary, or non-transitory computer-readable media. Additionally, the memory 1310 can be implemented using any suitable memory technology (e.g., one or more of cache, static random access memory (SRAM), DRAM, RDRAM, EDO RAM, DDR 10 RAM, synchronous dynamic RAM (SDRAM), Rambus RAM, EEPROM, non-volatile/Flash-type memory, or any other type of memory). The memory 1310 may store an operating system (not shown in FIG. 13) that provides computer program instructions for use by the processor 1302 in the general administration and operation of the shot strategy generation service 1314, shot distance, shot curve, & shot dispersion service, the short side generation service, and the polygon representation editing service.

Additionally, the memory 1310 may further include computer program instructions and other information for implementing one or more aspects of the present disclosure, including but not limited to the data store 1308, the shot strategy generation service 1314, the shot distance, shot curve, & shot dispersion service 1316, the short side generation service 1318, and the polygon representation service 1320. The processor 1302 may execute the instructions or program code stored in the memory 1310 to execute shot strategy selection procedures as described herein based on input data. In some embodiments, parts or all of the shot strategy generation service 1314, the shot distance, shot curve, & shot dispersion service 1316, the short side generation service 1318, and the polygon representation service 1320 may be implemented by hardware circuitry, firmware, software, or a combination thereof.

The network and input/output interface 1304 may commonly support one or more wireless networking protocols (e.g., Wi-Fi/IEEE 802.11, or another wireless networking standard). However, in various embodiments, network and input/output interface 1304 may support communication via any suitable wired or wireless general data networks, such as other types of Ethernet networks, for example. Additionally, network and input/output interface 1304 may support communication via telecommunications/telephony networks such as analog voice networks or digital fiber communications networks, via storage area networks such as Fibre Channel SANs, or via any other suitable type of network and/or protocol.

The computer-readable medium 1306 may include computer program instructions that one or more processors 1302 execute and/or data that the one or more processors 1302 use in order to implement one or more embodiments.

Terminology

Any of the methods and tasks described herein may be performed and fully automated by a computer system. The computer system may, in some cases, include multiple distinct computers or computing devices (e.g., physical servers, workstations, storage arrays, cloud computing resources, etc.) that communicate and interoperate over a network to perform the described functions. Each such computing device typically includes a hardware processor (or multiple processors) that executes program instructions or modules stored in a memory or other non-transitory computer-readable storage medium or device (e.g., solid state storage devices, disk drives, etc.). The various functions disclosed herein may be embodied in such program instructions or may be implemented in application-specific circuitry (e.g., ASICs or FPGAs) of the computer system. Where the computer system includes multiple computing devices, these devices may, but need not, be co-located. The results of the disclosed methods and tasks may be persistently stored by transforming physical storage devices, such as solid-state memory chips or magnetic disks, into a different state. In some embodiments, the computer system may be a cloud-based computing system whose processing resources are shared by multiple distinct business entities or other users.

Depending on the embodiment, certain acts, events, or functions of any of the processes or algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described operations or events are necessary for the practice of the algorithm). Moreover, in certain embodiments, operations or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially.

The various illustrative logical blocks, modules, routines, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, or combinations of electronic hardware and computer software, which can be collectively referred to as computer-implemented methods. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware, or as software that runs on hardware, depends upon the particular application and design conditions imposed on the overall system. The described functionality can be implemented in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosure.

Moreover, the various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a processor device, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor device can be a microprocessor, but in the alternative, the processor device can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor device can include electrical circuitry configured to process computer-executable instructions. In another embodiment, a processor device includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor device can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor device may also include primarily analog components. For example, some or all of the algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.

The elements of a method, process, routine, or algorithm described in connection with the embodiments disclosed herein can be embodied directly in hardware, in a software module executed by a processor device, or in a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of a non-transitory computer-readable storage medium. An exemplary storage medium can be coupled to the processor device such that the processor device can read information from, and write information to, the storage medium. In the alternative, the storage medium can be integral to the processor device. The processor device and the storage medium can reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor device and the storage medium can reside as discrete components in a user terminal.

Conditional language used herein, such as, among others, “can,” “could,” “might,” “may,” “e.g.,” and the like, unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without other input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list.

Disjunctive language such as the phrase “at least one of X, Y, Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.

Unless otherwise explicitly stated, articles such as “a” or “an” should generally be interpreted to include one or more described items. Accordingly, phrases such as “a device configured to” are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, “a processor configured to carry out recitations A, B and C” can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.

While the above detailed description has shown, described, and pointed out novel features as applied to various embodiments, it can be understood that various omissions, substitutions, and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure. As can be recognized, certain embodiments described herein can be embodied within a form that does not provide all of the features and benefits set forth herein, as some features can be used or practiced separately from others. The scope of certain embodiments disclosed herein is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1. A method for generating shot strategies in a golf game, the method comprising:

as implemented by computer program instructions executed by one or more computer processors:

receiving or generating a golf performance prediction grid (GPP grid) of a golf hole, wherein the GPP grid comprises a positional grid comprising a plurality of grid positions, wherein each of the plurality of grid positions has a grid value, and wherein each of the plurality of grid positions is associated with a geospatial location within a layout of the golf hole;

selecting a preferred shot strategy by a shot strategy selection process comprising:

(a) receiving a ball location within the layout of the golf hole;

(b) determining a landing location associated with a shot vector and the ball location;

(c) determining a golf performance value based at least on the grid value associated with the landing location from the GPP grid;

(d) determining a carry risk vector associated with the shot vector, wherein the carry risk vector corresponds to a risk of a ball path associated with the shot vector intersecting an obstacle along the ball path;

(e) modifying the golf performance value based at least in part on the carry risk vector to generate a modified golf performance value;

(f) repeating steps (a) through (e) for a plurality of shot vectors; and

(g) selecting the shot vector of the plurality of shot vectors that satisfies a preferred shot selection criterion as at least a portion of the preferred shot strategy; and

transmitting the preferred shot strategy;

wherein the preferred shot strategy comprises one or more shots, corresponding to one or more shot vectors, for a golfer to advance a golf ball from the ball location to a pin cup location.

2. The method of claim 1, wherein the preferred shot selection criterion is a lowest modified golf performance value.

3. The method of claim 1, wherein the shot strategy selection process further comprises:

determining a shot roll and a roll risk vector associated with the shot vector, wherein the roll risk vector has a magnitude corresponding to a risk of the shot roll encountering a water feature; and

modifying the golf performance value based at least in part on the roll risk vector to generate the modified golf performance value.

4. The method of claim 1, wherein the plurality of shot vectors comprises a shot sequence associated with a plurality of sequential shot vectors, wherein each ball location of each of the plurality of sequential shot vectors is a shot total location of a previous shot vector, and wherein the shot total location is a grid position where the golf ball comes to rest after traversing a distance corresponding to a shot carry and a shot roll.

5. The method of claim 4, wherein the shot strategy selection process comprises aggregating modified golf performance values of each shot vector in the shot sequence to generate a shot sequence score.

6. The method of claim 5, wherein the shot strategy selection process comprises selecting the shot sequence that satisfies the preferred shot selection criterion as at least a portion of the preferred shot strategy.

7. The method of claim 6, wherein selecting the shot sequence comprises selecting the shot sequence associated with the shot sequence score having a minimum value.

8. The method of claim 1, wherein the shot strategy selection process further comprises:

determining an averaged grid value associated with the landing location or a shot total location, wherein the averaged grid value is determined by averaging grid values within a shot dispersion area surrounding the landing location; and

determining the grid value at the ball location.

9. The method of claim 8, wherein determining the golf performance value is additionally based on the averaged grid value and the grid value at the ball location.

10. The method of claim 1, further comprising:

receiving shot dispersion data associated with the golfer and at least one golf club; and

selecting at least one of the plurality of shot vectors by searching for shot vectors within an analysis region located within a range of shot distances from the ball location, wherein the range of shot distances is derived from the shot dispersion data.

11. The method of claim 10, wherein the shot dispersion data comprises a list of clubs, a shot carry, a shot roll, a shot total, and dimensions of a shot dispersion area.

12. The method of claim 10, wherein receiving the shot dispersion data comprises prompting a predictive model with golfer data and receiving a result from the predictive model,

wherein the predictive model is sequentially trained using a plurality of machine learning models to improve a predictive accuracy of prior machine learning models through training sequential machine learning models to predict each prior machine learning model's incorrect predictions.

13. The method of claim 10, wherein the shot dispersion data comprises:

an identifier for the at least one golf club;

a shot carry corresponding to a horizontal distance the golf ball travels through air when the golf ball is hit with the at least one golf club;

a shot roll corresponding to a distance the golf ball travels on ground when the golf ball is hit with the at least one golf club;

a shot total comprising the shot carry and the shot roll;

a shot shape value corresponding to a curvature of a golf shot; and

a shot dispersion area comprising a length, a width, and an angle of rotation, wherein the shot dispersion area corresponds to a probabilistic region in which the golf ball contacts the ground after being struck by the at least one golf club.

14. The method of claim 10, wherein receiving the shot dispersion data comprises receiving data entered via user interaction with a manual dispersion data entry interface.

15. The method of claim 1, wherein the plurality of shot vectors are generated from a data set comprising:

a plurality of target shot distances derived from shot dispersion data for the golfer and the layout of the golf hole;

a plurality of target landing locations derived from shot dispersion areas associated with the plurality of target shot distances; and

environmental factors corresponding to the golf hole.

16. (canceled)

17. (canceled)

18. (canceled)

19. (canceled)

20. (canceled)