DIGITAL PLATFORM FOR ARTIFICIAL INTELLIGENCE BASED GOLF SHOT STRATEGY

Information

  • Patent Application
  • 20250235774
  • Publication Number
    20250235774
  • Date Filed
    January 08, 2025
    6 months ago
  • Date Published
    July 24, 2025
    3 days ago
  • Inventors
    • WILLIAMS; Matt (Leawood, KS, US)
    • REED; Alex (Leawood, KS, US)
    • BUONOPANE; Paul (Boston, MA, US)
    • COLLINS; Sam (Overland Park, KS, US)
  • Original Assignees
Abstract
Implementations described and claimed herein provide systems and methods for a cloud-based or other computing-based system for utilizing statistical distribution patterns derived from ball flight data collected from golf simulators or launch monitors to generate and provide one or more shot recommendations to a user during play. Such a system may analyze a player's personal shot history and statistical tendencies with each club and calculate or otherwise determine the probability of hitting various areas on the course, including target areas of the course such as fairways and greens, as well as penalty areas like bunkers and water hazards. The invention provides real-time, personalized club and aim recommendations, optimizing shot selection based on data rather than guesswork. The system may include a mobile device in communication with a cloud-based computing system for providing the determined recommendations.
Description
FIELD

Aspects of the present disclosure relate generally to systems and methods for a platform for an artificial intelligent system for generating and providing one or more recommendations corresponding to a golf shot. More particularly, the present disclosure provides for utilizing statistical distribution patterns derived from ball flight data collected from golf simulators or launch monitors to recommend a club, a shot aim, and a probability distribution for a player.


BACKGROUND

Golfers, both amateur and professional, often rely on subjective judgment or generalized guidance when selecting clubs and determining the best aim point during a round. The same can be said about players in other similar sports, such as ultimate frisbee or the like. These decisions typically consider factors such as distance, wind conditions, and hazards but rarely incorporate the player's personal shot tendencies or historical performance data with different clubs. In fact, many players are unaware of their swing or throwing tendencies. Existing solutions like GPS rangefinders and course management apps provide basic yardages and hazard locations but lack the capability to offer data-driven club and aim recommendations tailored to each golfer's unique shot patterns and based on measured data. As a result, golfers are often left making strategic decisions based on incomplete information, which can lead to suboptimal outcomes on the course.


It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed.


SUMMARY

Implementations described and claimed herein address the foregoing problems by providing systems and methods for processing golf shot data. One particular implementation may include a system comprising a communication interface receiving shot data corresponding to at least one golf shot of a user generated by a simulator device, one or more data processors, and a non-transitory computer-readable storage medium containing instructions which, when executed by the one or more data processors. The instructions may cause the one or more data processors to receive, via a user interface in communication with the system via the communication interface, a geolocation of the user associated with the shot data, generate, based on the shot data, a dispersion pattern corresponding to the user associated with the shot data, and determine, based on geolocations of one or more aspects of a selected course, a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course. The instructions may also cause the one or more data processors to select, based on the likelihood value and a recommendation setting, a recommended club and transmit, for display on a mobile device executing the user interface, the generated dispersion pattern and recommended club.


In another implementation, a computer-implemented method for processing golf shot data is provided. The method may include the operations of communicating, via a communication interface, shot data corresponding to at least one golf shot of a user generated by a simulator device and a geolocation of the user associated with the shot data and generating, based on the shot data, a dispersion pattern corresponding to the user associated with the shot data. The operations may also include determining, based on geolocations of one or more aspects of a selected course, a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course, selecting, based on the likelihood value and a recommendation setting, a recommended club, and transmitting, for display on a mobile device executing the user interface, the generated dispersion pattern and recommended club.


Other implementations are also described and recited herein. Further, while multiple implementations are disclosed, still other implementations of the presently disclosed technology will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative implementations of the presently disclosed technology. As will be realized, the presently disclosed technology is capable of modifications in various aspects, all without departing from the spirit and scope of the presently disclosed technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not limiting.





BRIEF DESCRIPTION OF THE DRAWINGS

The various features and advantages of the technology of the present disclosure will be apparent from the following description of particular embodiments of those technologies, as illustrated in the accompanying drawings. It should be noted that the drawings are not necessarily to scale; however, the emphasis instead is being placed on illustrating the principles of the technological concepts. The drawings depict only typical embodiments of the present disclosure and, therefore, are not to be considered limiting in scope.



FIG. 1 shows an example network environment that may implement various systems and methods discussed herein.



FIG. 2 shows an example block diagram of a shot selection strategy platform for recommending an optimal equipment and shot selection based on user conditions.



FIG. 3 show an example flowchart of a method for exporting user shot data to a shot selection strategy platform.



FIGS. 4A-4C illustrate example screenshots of a user interface of the shot selection strategy platform for exporting shot data to the system for analysis.



FIGS. 5A and 5B show an example flowchart of a method for a shot selection strategy platform to provide a best fit shot selection to a user.



FIGS. 6A-6C illustrate example screenshots of a user interface of the shot selection strategy platform for displaying a best fit shot selection for a user.



FIG. 7 is a block diagram illustrating an example inputs to a shot selection strategy platform.



FIG. 8 shows an example computing system that may implement various systems and methods discussed herein.



FIG. 9 illustrates a dispersion pattern for one or more aspects of a course hole and a simulated dispersion pattern for a single club as determined from the user's shot data.



FIG. 10 illustrates an example fitted dispersion pattern modeled with a 2-D Gaussian process.



FIG. 11 illustrated a transformation both the shot model and course areas into a diagonalized space.





DETAILED DESCRIPTION

Aspects of the present disclosure involve systems and methods for a cloud-based or other computing-based system for utilizing statistical distribution patterns derived from ball flight data collected from golf simulators or launch monitors to generate and provide one or more shot recommendations to a user during play. Such a system may analyze a player's personal shot history and statistical tendencies with each club and calculate or otherwise determine the probability of hitting various areas on the course, including target areas of the course such as fairways and greens, as well as penalty areas like bunkers and water hazards. The invention provides real-time, personalized club and aim recommendations, optimizing shot selection based on data rather than guesswork. This approach enables golfers to make more informed decisions, improving their course management and overall performance. These and other advantages may become apparent from the discussion included herein.


To begin a detailed discussion of an example seizure management system 100, reference is made to FIG. 1. In particular, FIG. 1 illustrates an example network environment for implementing the various systems and methods, as described herein. As depicted, a network 104 is used by one or more computing or data storage devices for implementing the systems and methods for a shot strategy platform for recommending aspects of a golf shot based on player statistics and measure tendencies. In one implementation, various components of the shot strategy platform 102, one or more user devices 106, one or more databases 110, other network components or computing devices, and/or one or more user mobile devices 112 described herein are communicatively connected to the network 104. Examples of the user devices 106 include a terminal, personal computer, a tablet, a mobile computer, a workstation, and/or the like. Examples of mobile devices 112 may include a smart-phone or other type of mobile computing device. These and other examples of other components of the network 100 are described in more detail below.


A server 108 may, in some instances, host the system. In one implementation, the server 108 also hosts a website or an application that users may visit to access the network environment, including the shot strategy platform 102. The server 108 may be one single server, a plurality of servers with each such server being a physical server or a virtual machine, or a collection of both physical servers and virtual machines. In another implementation, a cloud hosts one or more components of the system. For example, cloud services 116 may be offered by the network 104 to host any aspect of the operation and/or component of a mobile-executed application or shot strategy platform 102, such as storage capabilities, compute capabilities, networking capabilities, and the like. Cloud services 116 may host a portion or all of the varied components of the shot strategy platform 102 to provide a cloud-based solution. The shot strategy platform 102, the user devices 106, the server 108, the mobile devices 112, and other resources connected to the network 104 may access one or more additional servers for access to one or more websites, applications, web services interfaces, etc. that are used for executing the systems and methods described herein.


The data transferred to and from various devices in operating environment 100 can include secure data. Therefore, it can be desirable to protect transmissions of such data using secure network protocols and encryption and to protect the integrity of the data when stored on the various computing devices within the software deployment system. For example, a file-based integration scheme or a service-based integration scheme can be utilized for transmitting data between the various computing devices. Data can be transmitted using various network communication protocols. Secure data transmission protocols and/or encryption can be used in file transfers to protect the integrity of the data, for example, File Transfer Protocol (FTP), Secure File Transfer Protocol (SFTP), and/or Pretty Good Privacy (PGP) encryption. In many implementations, one or more web services can be implemented within the various computing devices. Web services can be accessed by authorized external devices and users to support input, extraction, and manipulation of data between the various computing devices in the operating environment 100. Web services built to support a personalized display system can be cross-domain and/or cross-platform and can be built for enterprise use. Such web services can be developed in accordance with various web service standards, such as the Web Service Interoperability (WS-I) guidelines. Data can be transmitted using the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocol to provide secure connections between the computing devices. Web services can be implemented using the WS-Security standard, which provides for secure SOAP messages using XML encryption. In still other examples, a security and integration layer can include specialized hardware for providing secure web services. For example, secure network appliances can include built-in features such as hardware-accelerated SSL and HTTPS, WS-Security, and/or firewalls. Such specialized hardware can be installed and configured in the operating environment 100 in front of one or more computing devices describe herein such that any external devices can communicate directly with the specialized hardware.


It will be appreciated that the network connections shown are illustrative and other means of establishing a communications link between the computers can be used. The existence of any of various network protocols such as TCP/IP, Ethernet, FTP, HTTP and the like, and of various wireless communication technologies such as GSM, CDMA, WiFi, and WiMAX, is presumed, and the various computing devices described herein can be configured to communicate using any of these network protocols or technologies.



FIG. 2 shows an example block diagram of a shot selection strategy system 200 for determining aspects of a golf shot based on a player's measured mechanics and tendencies according to the present disclosure. In general, the system 200 may include a shot selection strategy platform 206. In one implementation, the shot selection strategy platform 206 may be a part of the shot strategy platform 102 of FIG. 1. As shown in FIG. 2, the shot selection strategy platform 206 may be in communication with a computing device 228 providing a user interface 205. The computing device 228 may be, in one particular implementation, a mobile device such as a smartphone or a tablet device configured to render the user interface 205. As explained in more detail below, the shot selection strategy platform 206 may be accessible to various users via the user interface 205 to provide shot selection recommendations and/or any other sports related services. In some instances, access to the shot selection strategy platform 206 may occur through the user interface 205 executed on the computing device 228. In some instances, the user interface 205 may be utilized on multiple computing devices 228, including both mobile and non-mobile computing devices, to access the features and services provided by the shot selection strategy platform 206.


The shot selection strategy platform 206 may include a shot selection application 212 executed to perform one or more of the operations described herein. The shot selection application 212 may be stored in a computer readable media 210 (e.g., memory) and executed on a processing system 208 of the shot selection strategy platform 206 or other type of computing system, such as that described below. For example, the shot selection application 212 may include instructions that may be executed in an operating system environment, such as a Microsoft Windows™ operating system, a Linux operating system, or a UNIX operating system environment. By way of example and not limitation, non-transitory computer readable medium 210 comprises computer storage media, such as non-transient storage memory, volatile media, nonvolatile media, removable media, and/or non-removable media implemented in a method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.


The shot selection application 212 may also utilize a data source 228 of the computer readable media 210 for storage of data and information associated with the shot selection strategy platform 206. For example and as explained in more detail below, the shot selection application 212 may store received data or inputs, processing details, and/or output information, and the like associated with any aspect of determining an aspect of a shot recommendation or analysis. As described in more detail below, data associated with a player's shot data, data corresponding to a course, environmental data, shot dispersion data, and the like may be stored and accessed via the user interface 205, among many other types of data. Data stored in the data source 228 may include any type of data associated with the shot selection strategy platform 206, including shot data, video files, audio files, logging information, image files, and the like.


The shot selection strategy system 200 includes methodology and components that allow for the display of recommended aspects of a golf shot in a mobile application, the aspects including aim line, suggested club, dispersion of likely shot locations, and the like based on shot data associated with a player. Several of the components of the shot selection strategy system 200 are illustrated in the block diagram of FIG. 2. However, it should be appreciated that the displayed components are just some of the potential components used by the shot selection strategy platform 206 and more or fewer such components may be included. More details concerning the operations of the various components of the shot selection strategy system 200 are discussed in greater detail below.


In one implementation, the shot selection application 212 of the shot selection strategy platform 206 may include a shot data ingestor 214 to receive shot data 230 corresponding to a user of the platform. In general, shot data may include any measurable aspect of shot data associated with the user and obtained from a sensor device. For example, a shot simulator device may be utilized to measure aspects of shot data for one or more types of golf clubs. The simulator may include one or more sensors for measuring various aspects of the the movement of the golf ball after being struck with the club. To obtain these measurements, the simulator may include any optical sensor device, such as radar-based sensors, lidar-based sensors, cameras, laser-based sensors, or any other type of sensor utilized to capture the movement of an object. The shot simulator device may also process these measurements to calculate or otherwise determine aspects of the user's shot. For example, the simulator may determine an estimated distance of flight of the ball, a total distance traveled (determined based on a spin of the ball), a right or left carry of the ball in flight, a spin rate of the ball, an axis of spin for the ball, an estimated peak height of the ball, and the like. In other implementations, the shot data may include aspects of the user's swing dynamics when swinging one or more of the user's clubs. For example, the simulator may capture the movement of the user while swinging a club and generate measurements of the captured movement, including the movement and orientation of the user and/or the club. Such information may be included in the shot data associated with the user.


The above calculations, and others, may be obtained for each of a plurality of clubs of the user. For example, the user may select a first club and provide an input to the simulator device that indicates the club selected (such as a “driver” for a driver-type club or “5-Iron” for a 5-Iron club). Once the club is selected, the user may hit or more balls in the simulator and aspects of the ball movement, user movement, and/or club movement may be captured by the simulator. The collected data may be processed to determine one or aspects of the flight of the ball for the selected club. The simulator may also store the determined aspects or data along with the indication of the selected club. In this manner, shot data for each club used by the user may be collected by and stored by the simulator. As explained in more detail below, this data may be utilized by the shot selection application 212 for determining shot strategy when on a golf course.


In one implementation, the shot data 230 may be ingested into the shot selection application 212 through the shot data ingestor 214. FIG. 3 illustrates an example flowchart of a method 300 for exporting user shot data 130 to a shot selection strategy platform 206. In some instances, one or more of the operations of the method 300 may be executed by the shot data ingestor 214 of the shot selection application 212. However, other components of the shot selection application 212 or other computing devices may also perform operations of the method 300.


Beginning in operation 302, shot data as described above may be collected for one or more of a plurality of clubs of the user from a simulator device. In some instances, the shot data for the user may be obtained through the simulator device as described above. Further, a computing device in communication with the simulator may store the shot data for each club of the user. In operation 304, it may be determined if the user has a cloud account for storing shot data. If the user does not have a cloud account, the shot data may be converted from the simulator to a data file in operation 306. In general, the shot data may be in any data form, including text data or image data. For example, the shot data may be exported to a spreadsheet file or other text-based data file. In another example, the user may take an image or photo of the shot data displayed by the simulator device to export the data to an image file. Regardless of the type of data file, the shot data may be exported to the user's mobile device 112 through the exporting of the shot data to the data file. For example, the mobile device 112 may be in communication with the simulator device, either through a wired or wireless connection, to upload the data file to the mobile device. In another example, a camera or other optical sensor may capture an image of a display screen of the simulator device to transfer the shot data to the mobile device via the image file. It should be appreciated that components of the shot selection strategy platform 206 may be instituted in the user's mobile device. For example, the shot data ingestor 214 of the platform 206 may be executed by a mobile application on the mobile device 112 to export the shot data 230 from the data file. As such, the operations of the method 300 of FIG. 3 may be performed by any computing device of the network environment 100 described above.


In operation 308, a shot selector application executed on the mobile device 112 or other computing device may be initiated and an option to upload the shot data from the data file may be selected and, in operation 310, the shot selector application may export the user's shot data from the data file into the application. FIGS. 4A-4C illustrate example screenshots 402-406 of a user interface of the shot selection strategy platform for exporting shot data to the system for analysis. User interface 402 may be accessed through the mobile application executed on the user's mobile device 112 through which an option to upload data 408 is provided. Upon selection of the upload option 408, user interface 404 may be displayed on the mobile device 112 through which the data file containing the shot data may be selected. Once exported into the mobile application, the uploaded shot data may be reviewed through user interface 406. Other user interfaces may also be displayed during the process of uploading the shot data to the mobile application. Further, the shot data 230 may be transmitted or otherwise provided to the shot selection strategy platform 206, via the shot data ingestor 214, for further processing by the platform. Thus, the mobile device 112 may be in communication with the shot selection strategy platform 206, such as through the network environment 100 described above.


In some instances, the mobile application may be configured to analyze the data file through an optical character recognition (OCR) process to extract the shot data from the data file. For example, in instances in which the data file is an image file, the mobile application may process the data of the image file through one or more OCR processes to obtain the shot data 230 from the image file. In a similar manner, a text-based data file may be processed through the one or more OCR processes to extract the relevant shot data from the data file. For example, the data file may include one or more columns and/or rows of types of shot data generated or otherwise determined by the simulation device. The OCR process of the mobile application may analyze the rows and/or columns of the shot data in the text file and obtain portions of the shot data, including types of clubs identified and the corresponding shot data for the included clubs. In general, however, the shot data from the data file may be uploaded to the mobile device and/or the shot selection strategy platform 206 for use in providing shot selection recommendations.


Returning to FIG. 3, it may be determined that the user has a cloud account in operation 304 for receiving shot data gathered by the simulator device. In such circumstances, the shot data may be uploaded to the user's cloud account in operation 312 for storage. In operation 314, the user may access the application executed by the mobile device 112 and select to obtain the shot data 230 from the user's cloud account. The mobile application may determine, in operation 316, if an application programming interface (API) for the cloud account is available for user's cloud storage device or system. If yes, the mobile application may access the cloud storage device in operation 320 and request the shot data 230 from the cloud storage. If the mobile application does not have an API to access the cloud storage device, the shot data may be converted to an image file by the cloud storage device or another computing device and exported into the mobile application in operation 318 in a similar manner as described above, such as through one or more OCR processes. Once the shot data 230 is uploaded to the mobile application, the data may be provided to the shot selection strategy platform 206, via the shot data ingestor 214, for further processing by the platform.


With the shot data 230 for the user, the shot selection strategy platform 206 may be available for providing shot recommendation data to the user through the platform. In particular, the user may access an application executed by the mobile device 112 while playing a round of golf to aid the user in selecting certain aspects of a golf shot, such as a club selection recommendation, an aim line or direction to hit the golf ball, and the like. Such recommendations may be based on the shot data 230 received at the shot selection application 212 as determined by the simulator device. Thus, the shot selection application 212 may receive data corresponding to each club of the user that provides insight into the user's real-world tendencies and mechanics when hitting a golf ball with each of the clubs. As explained in more detail below, this information may be used to calculate and display shot dispersion graphs for the user and provide various shot recommendations during the round of play through the user's mobile device.



FIGS. 5A and 5B illustrate an example flowchart of a method 500 for a shot selection strategy platform to provide a best fit shot selection to a user of the platform. Although the operations of the method 500 are described herein as performed by components of the shot selection strategy platform 206 and/or the shot selection application 212, it should be appreciated that one or more of the operations may be executed by other computing devices of the network environment 100, including the mobile device 112. Thus, one or more of the components of the shot selection application 212 may be embodied in or otherwise executed by the mobile device 112 or the other computing devices of the network 100.


Beginning in operation 502, the shot selection application 212 may receive course selection information. In one implementation, a golf course being played or intended to be played by a user of the mobile device 112 may be selected, perhaps through the executed mobile application. Once selected, the mobile application may provide some indication of the selected course to the shot selection application 212 through the network environment 100, such as through a wireless communication network. In response to the selected golf course, the shot selection application 212 may obtain one or more course feature data from a course database in operation 504. In one implementation, a course data ingestor 216 of the shot selection application 212 may obtain course data 232 from one or more course databases. Course data may include any features or aspects of a golf course, such as hole layouts, geolocations of the features of the golf course (such as green placements, sand traps, hole boundaries, tee placements, water hazards, tree placements, etc.). The course data 232 may be gathered and stored in one or more public databases of course data and provided to the shot selection application 212. Thus, the course data ingestor 216 may access such databases, perhaps through an API or by providing some identifying information to the databases. Once accessed, the shot selection application 212 may provide an indicator of the selected golf course to the databases to receive the course data 232. In general, any course layout or geolocation information of aspects of the selected golf course may be obtained from the course databases by the course data ingestor 216.


Similarly, in operation 506, the shot selection application 212 may obtain one or more environmental data from an environmental database. In general, environmental data 234 may include any data or information of the environment around or near the selected golf course, such as temperature, wind speed, wind direction, precipitation, humidity, forecasts of future weather events, or any other environmental data that may affect the flight of a struck golf ball. The environmental data 234 may be gathered and stored in one or more public databases and provided to the shot selection application 212 upon request. In one implementation, an environment data ingestor 218 may access such databases, perhaps through an API or by providing some identifying location information to the databases, and request the stored environmental data 234 for the golf course location.


In operation 508, the shot selection application 212 may identify the geolocation of the user. For example, the mobile application and/or mobile device 112 may include a global positioning system (GPS) device to geolocate the mobile device. The geolocation of the mobile device may then be provided to the shot selection application 212 to determine the location of the user on the golf course. For example, FIGS. 6A-6C illustrate example screenshots of a user interface of the shot selection strategy platform for displaying a best fit shot selection for a user. As shown in the user interface 602 of FIG. 6A, an overhead view of the selected golf course may be displayed. More particularly, the user interface 602 displays an overhead view of a particular hole of the selected golf course. The shot selection application 212 and/or mobile application may determine which hole of the course the user is located based on the geolocation of the mobile device 112 that is transmitted to the shot selection application 212 by the mobile device. In some instances, the displayed overhead view of the hole at which the user is located may be obtained or otherwise based on the course data 232 received at the shot selection application 212. For example, the shot selection application 212 may receive the geolocation of the user from the mobile device 112 and correlate that location with a particular hole of the course identified in the course data 232. From that information, the user interface 602 may display or otherwise indicate the hole associated with the user's location.


In addition, the shot selection application 212 may adjust the baseline shot data 230 received from the simulator device in response to the environmental data 234 at operation 510. For example, the shot selection application 212 may determine a geolocation of player and a relative direction of the player's current hole. In addition, the environmental data 234 may provide a wind speed and a direction of the wind. With this information, the shot selection application 212 may determine a direction and speed of the wind relative to the player's position and direction of the player's next golf shot to assess the wind's effect on the flight of the golf ball. For example, a golf shot hit directly into a high wind may travel a shorter distance than the same golf shot without wind. Similarly, a cross-wind may push a golf shot to the left or the right, depending on the direction of the wind relative to the player. The shot selection application 212 may therefore adjust the baseline shot data for the user based on the player location, the hole direction, and the environmental data 234. For example, a user's shot data 230 may indicate that a driver shot is likely to travel 200 yards in normal conditions. However, in a circumstance in which the environmental data indicates a headwind condition, the shot selection application 212 may reduce the expected travel distance of the ball. In a similar manner, the baseline shot data 230 may be adjusted for other environmental conditions, such as humidity, temperature, barometric pressure, elevation, and any other environmental condition that may affect the flight of a struck golf ball. As the adjustment to the baseline shot data 230 may be dependent upon a location of the user and/or the likely direction of flight of the golf ball, the adjustment to the baseline shot data 230 may occur for each suggested shot provided by the mobile application and/or shot selection application 212, as explained in more detail below.


In operation 512, the shot selection application 212 may continue preparing a display of recommendations for a golf shot strategy by building a plurality of dispersion patterns for the user based on the adjusted shot data and user information. In one implementation, a shot dispersion generator 220 of the shot selection application 212 may generate a dispersion pattern for each club associated with the user as determined by the shot data 230 of the user. Each dispersion pattern represents a statistical dispersion of a likelihood for the resting place of the golf ball after being struck by the user with the corresponding club, given the user's shot data, geolocation, and/or the environmental data 230. Initially, the dispersion patterns for each club of the user may be generated in an 180-degree circle around the user's location. In general, however, the dispersion patterns may be generated in any direction from the user's geolocation. For example, to reduce the computational requirement on the shot selection application 212, the dispersion pattern may be generated for each club in a 90-degree arc from the user's location. As described in more detail below, the dispersion generator 220 may generate the dispersion patterns to represent some likelihood of the user landing the golf ball within the dispersion pattern. For example, the dispersion pattern may indicate an area of 90+% likelihood in which the golf ball will come to rest, an area of 75+% likelihood in which the golf ball will come to rest, an area of 50+% likelihood in which the golf ball will come to rest, etc. in any direction from the user's location.


To apply the generated dispersion patterns to the particular selected course, the shot selection application 212 may map the dispersion patterns to the course data based on the geolocation of the user in operation 514. In particular, the shot selection application 212 may center each of the generated circular dispersion patterns for each club on the geolocation of the user and overlay those dispersion patterns onto the course map data 232, including the geolocation data for features of the golf course, including out-of-bounds areas, water hazards, sand traps, fairways, tee boxes, greens, etc. In this manner, the shot selection application 212 may determine the geolocations of aspects of the dispersion patterns relative to the golf course and/or the user location.


The method 500 for a shot selection strategy platform to provide a best fit shot selection to a user of the platform continues in FIG. 5B. At operation 516, shot selection application 212 may include a shot odds generator 222 to determine a likelihood that portions of the dispersion patterns overlap with the one or more features of the hole of the golf course. For example, the shot selection application 212 may generate a shot dispersion for a driver hit from the tee box of the hole. The overlay of the shot dispersion for the driver may indicate that the user has a 30% chance of landing on the fairway and a 15% chance of landing out of bounds. Similar odds may be determined for other aspects of the course, such as water hazards, bunkers, rough, greens, and the like. Some of the aspects of the shot dispersion patterns may be associated with 100% of a course feature. For example, the shot selection application 212 may generate the dispersion patterns for each club in a 180-degree circle from the user's location. However, once the dispersion pattern is overlayed on the map of the course, a majority of the dispersion pattern may overlap with the out-of-bounds area from the player's hole (such as if the player were to hit the ball in the opposite direction away from the green). In these portions of the dispersion pattern, the determined odds may indicate a 100% chance of the ball landing in the out-of-bounds area and 0% for any other features of the hole. However, the portions of the dispersion patterns that cross the length of the hole may generate varying odds determinations as the likelihood of the shot landing on the features of the hole increases when the shot is aimed in the direction of the green.


With the determined odds for each of the portions of the shot dispersions, the shot selection application 212 may determine a best fit shot dispersion in operation 518 based on the generated odds and one or more configurable settings of the system. In general, one or more course features and/or upper or lower limits of odds of landing on those features may be configurable through the mobile application executed on the mobile device 112 or the shot selection application 212. In one example, the shot selection application 212 may be configured to minimize the distance to the green while keeping the odds of hitting a penalty area (out-of-bounds or a water hazard) at less than 5%. In another example, the shot selection application 212 may be configured to set the odds of landing on the fairway at more than 75% with the longest distance from the location of the shot. In yet another example, the user may only care about hitting the ball as far as possible, regardless of the odds for the ball landing in any noted feature of the course hole. In general, any parameters of the shot selection application 212 may be configurable to provide the best fit shot dispersion for the user's interest in the next golf shot. In some instances, the shot selection application 212 may include one or more default settings of dispersion odds for determining a shot strategy for the user, which may or may not be configurable through the mobile device 112.


With the configurable settings, the shot selection application 212 may determine a particular dispersion pattern of the generated patterns that best fits the user's selections. For example, a user may configure the settings of the shot selection application 212 to provide the dispersion that is closest to the green, regardless of the odds for landing on any feature of the course. With such settings, the shot selection application 212 may determine that a driver club is best fit club for the user, as the driver is the most likely to have the longest distance. Thus, the shot selection application 212 may return, in operation 520, a recommendation to use the driver from the tee box. However, as the user gets closer to the green on subsequent shots, the recommended club may adjust to recommending other clubs as the determined dispersion pattern for the driver exceeds the distance to the green. In a similar manner, the shot selection application 212 may be configured to only recommend a club that provides a likelihood of hitting a penalty area of less than 5%. In such instances, the driver may not be the best club to hit as the dispersion pattern for the driver may increase the odds of hitting a penalty area above the 5% threshold. Thus, the shot selection application 212 may then determine and recommend hitting a shorter club, such as a 3-iron, if the dispersion pattern for the 3-iron indicates that the odds of hitting a penalty area with that club is less than 5%. In this manner, the shot selection application 212 may analyze the various dispersion patterns generated for the user and based on the user's geolocation (and environmental data) to determine which portions of the dispersion patterns best fits the configurable criteria of the shot selection application.


In addition to determining the best fit club selection for the shot selection application 212 settings, the shot selection application may also determine an aim line for hitting the golf ball, such as through an aim line generator 224 component of the shot selection application. The aim line generator 224 may, in general, generate a straight, aim line suggestion for hitting the ball based on the determined best fit dispersion pattern. In general, the generated aim line may not necessarily be a straight line through the center of the best fit dispersion pattern, but may be based on the shape of the best fit dispersion pattern to provide the user an aim line that may result in the highest likelihood of fulfilling the determined dispersion pattern odds. For example, the aim line may take into consideration the environmental data 234 when generating the aim line for the user. In another example, the user shot data 230 may indicate that the player has a tendency to hit the ball right of center, also known as a “slice”. In such instances, the shot selection application 212 may generate the aim line left of the center of the best fit dispersion pattern to adjust the aim line for the player's slice tendency. In general, however, the aim line may be based on the selected best fit dispersion pattern and the shot data of the user to provide a recommended direction for the user to hit the golf ball.


Also in operation 520, the shot selection application 212 may transmit the determined best fit dispersion pattern, aim line, recommended club, and/or other recommendations to the mobile device 112 of the user for display by the mobile device. In general, however, the shot selection application 212 may transmit various information or data during execution of method 500 to the mobile device for display to the user via the user interface. For example, FIGS. 6A-6C illustrate example screenshots 602-606 of a user interface of the shot selection strategy platform for displaying a best fit shot selection for a user, along with other images and data generated by the shot selection application 212. In some instances, the shot selection application 212 may include a device communicator 226 component to communicate with the mobile device 112 or any other computing device 204. The device communicator 226 may therefore generate and transmit one or more communications for the computing device 204 through the network environment 100. The computing device 204 may process the received communications to generate one or more displays through the user interface 205 of the computing device. In addition, the device communicator 226 may receive communications from the computing device 204, such as inputs provided to the mobile application by the user during play.


As illustrated in the user interface 602 of FIG. 6A, the display device of the user's mobile device 112 may provide an overhead view 612 of a hole of a golf course. The displayed overhead view 612 may correspond to the selected golf course and/or the user's geolocation as determined by shot selection application 212. Once the location of the user is determined, the overhead view 612 may be obtained from a database, such as the database of course data 232, and displayed within the mobile application. The user interface 602 may also include other course and/or user information, such as the par for the hole, the user's handicap, and the next shot for the user in portion 614 of the user interface and/or a determined distance to the green from the user's location in portion 616 of the interface. In general, any of the obtained or determined information of the course and/or the user may be presented through the user interface. For example, the environmental data 234 obtained by the shot selection application 212 may also be displayed in the user interface in portion 618 of user interface 604 of FIG. 6B.


In addition to the above, the user interface 606 may also display the shot recommendation information, as illustrated in FIG. 6C. For example, the determined best fit dispersion pattern 608 determined by the shot selection application 212 above may be displayed as an overlay onto the overhead view 612 of the user's current hole. The displayed dispersion pattern 608 provides a visual indicator to the user of the determined likelihood for the golf ball to land within the best fit dispersion pattern. In some instances, the dispersion pattern 608 may include various colors to indicate areas of higher likelihood and lower likelihood. The user interface 606 may also illustrate the determined aim line 610 for the user as determined above by the shot selection application 212. The dispersion pattern 608 and aim line 610 may provide visual aids to the user on a direction to aim the user's next shot. In some instances, the mobile device 112 may comprise a headset, virtual reality (VR) glasses, augmented reality (AR) devices, or any other mobile device with a display such that display of the dispersion pattern may appear in a VR or AR environment.


The user interface 606 may also include an indicator of the determined odds 620 for landing within the various features of the hole. For example, the odds indicator 620 may include a list of features of the hole, including the green, fairway, penalty areas, bunkers, rough, water hazards, and the like. For one or all of the noted features, the determined likelihood or odds that the user's next shot will land in one of the noted features may also be displayed. As noted above, the shot selection application 212 may determine the odds for landing in each of the features based on the dispersion pattern for the user's clubs and the best fit determination. As such, the user interface 606 may also display an indication of the club 622 determined by the shot selection application 212 to provide highest likelihood of satisfying the bet fit criteria or settings. In this manner, the user interface 606 may provide the user with one or more recommendations on shot strategy, including a club selection 622, an aim line 610, a dispersion pattern 608, and one or more determined odds 620 that the user's ball will land on a feature of the course hole. These displayed recommendations are based on the user's measured mechanism and tendencies and are optimized to provide the distance and location requested by the user through the shot selection application 212 settings.


The user may also interact with the user interface 606 to adjust the aim line 610 and customize the user's intended shot. For example, the user may utilize the “Target Aim” button 624 to adjust the aim line 610 left or right. An indication of the adjustment to the aim line 610 by the user may be transmitted from the mobile device to the shot selection application 212 which may, in response, re-calculate the dispersion pattern as outlined above. The new dispersion pattern for the moved aim line 610 may then be transmitted to the mobile device 112 for display in the user interface 606. In some instances, moving of the aim line 610 may cause the odds correlated to the re-calculated dispersion pattern to exceed one or more of the configurable settings for the user. For example, by moving the aim line 610, the odds of landing in a water hazard may exceed a threshold value set by the user. The newly calculated odds may be displayed on the mobile device 112 to inform the user of the likelihoods associated with the adjusted aim line.


In other circumstances, the user may select a club different than the recommended club through the mobile device 112. The shot selection application 212 may, in response to the selection of the club, calculate and display the shot dispersion and likelihood values for the newly selected club as described above. This new club selection, dispersion pattern, and aim line corresponding to the selected club may be displayed in the user interface 606 as discussed above in response to the user club selection within the interface.



FIG. 7 is a block diagram 700 illustrating example inputs to the shot selection strategy platform 102. Many of the inputs illustrated in FIG. 7 are discussed above and may be obtained from any number of databases or sources. For example, course geolocation data 702 and/or course feature data 706 may be obtained from one or more third-party course information databases. Similarly, real-time or historical environmental data 704 may be obtained from one or more environmental databases. As explained above, the course data 702, 706 and/or environmental data 704 may be used by the shot strategy platform 102 to generate the dispersion patterns, club recommendations, or any other information for use by the mobile application.


As also explained above, baseline shot data 708 of the user may be obtained by a simulation device and transmitted to the shot strategy platform 102. The geolocation data 710 of the user may also be provided to the shot strategy platform 102, perhaps by a mobile device 112 using a GPS component. In addition, the shot strategy platform 102 may also receive ball lie 712 information or data, in some instances of the platform. The ball lie 712 information may be received at the shot strategy platform 102 from the user's mobile device 112 and used to adjust one or more aspects of the shot recommendation discussed above. For example, during a round of golf, the user may take a digital photo of the player's ball lie 712 and upload the photo to the shot strategy platform 102. The shot strategy platform 102 may include an algorithm or other method to analyze the photo and determine a lie of the ball. Further, one or more aspects of the shot selection application 212 may be adjusted in response to the determined lie of the ball. For example, a portion of the user's shot data 230 may correspond to a ball lie, such as hitting from a sand trap, hitting from the rough, hitting from the fairway, etc. Once the ball lie is determined from the photograph, the shot selection application 212 may adjust the baseline shot data in response to the determined ball lie and generate new the dispersion patterns for the user's next shot, similar to the adjustment to the shot data performed in response to the environmental data discussed above. Thus, in addition to the dispersion patterns being based on the clubs of the user, the patterns may be based on a determined ball lie.


In some instances, the algorithms and methods utilized by the shot strategy platform 206 may incorporate one or more machine-learning or artificial intelligent processes. For example, portions of the shot selection strategy platform 200 may utilize feedback data to alter one or more of the operations discussed above to generate and/or optimize the platform. Such operations may be performed by a computing device configured to execute any machine learning or artificial intelligent algorithm, including deep learning techniques. In one implementation, a computing device of the network 100 discussed above may iteratively train multiple models, based on received feedback data, to generate an adaptive model. In particular, the shot selection strategy platform 206 may receive feedback data, such as from the mobile device 204 or other computing devices, corresponding to the accuracy of the model outputs, such as the shot dispersion, recommended club, and/or aim line. In some instances, the feedback data may be provided by a user of the computing device. In other instance, the feedback data may include a geolocation of the ball after being hit. Such feedback data may be provided to a model generation and/or model optimization system. The model generation system may use artificial intelligence technology to generate one or more models using the processed feedback data. In addition, the shot selection strategy platform 200 may use the model optimization system to train the one or more generated models to provide more accurate results. This iterative process of model generation and/or optimization may be repeated thousands of times to enable models with different parameters (aspects unique to the architecture of the model) to be trained and tested. The resulting best model according to standard regression metrics may then be chosen and output as an optimized prediction model.


Referring to FIG. 8, a detailed description of an example computing system 800 having one or more computing units that may implement various systems and methods discussed herein is provided. The computing system 800 may be applicable to the shot strategy platform 102 of FIG. 1, the system 100, and other computing or network devices. It will be appreciated that specific implementations of these devices may be of differing possible specific computing architectures not all of which are specifically discussed herein but will be understood by those of ordinary skill in the art.


The computer system 800 may be a computing system is capable of executing a computer program product to execute a computer process. Data and program files may be input to the computer system 800, which reads the files and executes the programs therein. Some of the elements of the computer system 800 are shown in FIG. 8, including one or more hardware processors 802, one or more data storage devices 804, one or more memory devices 806, and/or one or more ports 808-810. Additionally, other elements that will be recognized by those skilled in the art may be included in the computing system 800 but are not explicitly depicted in FIG. 8 or discussed further herein. Various elements of the computer system 800 may communicate with one another by way of one or more communication buses, point-to-point communication paths, or other communication means not explicitly depicted in FIG. 8.


The processor 802 may include, for example, a central processing unit (CPU), a microprocessor, a microcontroller, a digital signal processor (DSP), and/or one or more internal levels of cache. There may be one or more processors 802, such that the processor 802 comprises a single central-processing unit, or a plurality of processing units capable of executing instructions and performing operations in parallel with each other, commonly referred to as a parallel processing environment.


The computer system 800 may be a conventional computer, a distributed computer, or any other type of computer, such as one or more external computers made available via a cloud computing architecture. The presently described technology is optionally implemented in software stored on the data stored device(s) 804, stored on the memory device(s) 806, and/or communicated via one or more of the ports 808-810, thereby transforming the computer system 800 in FIG. 8 to a special purpose machine for implementing the operations described herein. Examples of the computer system 800 include personal computers, terminals, workstations, mobile phones, tablets, laptops, personal computers, multimedia consoles, gaming consoles, set top boxes, and the like.


The one or more data storage devices 804 may include any non-volatile data storage device capable of storing data generated or employed within the computing system 800, such as computer executable instructions for performing a computer process, which may include instructions of both application programs and an operating system (OS) that manages the various components of the computing system 800. The data storage devices 804 may include, without limitation, magnetic disk drives, optical disk drives, solid state drives (SSDs), flash drives, and the like. The data storage devices 804 may include removable data storage media, non-removable data storage media, and/or external storage devices made available via a wired or wireless network architecture with such computer program products, including one or more database management products, web server products, application server products, and/or other additional software components. Examples of removable data storage media include Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc Read-Only Memory (DVD-ROM), magneto-optical disks, flash drives, and the like. Examples of non-removable data storage media include internal magnetic hard disks, SSDs, and the like. The one or more memory devices 806 may include volatile memory (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.) and/or non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.).


Computer program products containing mechanisms to effectuate the systems and methods in accordance with the presently described technology may reside in the data storage devices 804 and/or the memory devices 806, which may be referred to as machine-readable media. It will be appreciated that machine-readable media may include any tangible non-transitory medium that is capable of storing or encoding instructions to perform any one or more of the operations of the present disclosure for execution by a machine or that is capable of storing or encoding data structures and/or modules utilized by or associated with such instructions. Machine-readable media may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more executable instructions or data structures.


In some implementations, the computer system 800 includes one or more ports, such as an input/output (I/O) port 808 and a communication port 810, for communicating with other computing, network, or reservoir development devices. It will be appreciated that the ports 808-810 may be combined or separate and that more or fewer ports may be included in the computer system 800.


The I/O port 808 may be connected to an I/O device, or other device, by which information is input to or output from the computing system 800. Such I/O devices may include, without limitation, one or more input devices, output devices, and/or environment transducer devices.


In one implementation, the input devices convert a human-generated signal, such as, human voice, physical movement, physical touch or pressure, and/or the like, into electrical signals as input data into the computing system 800 via the I/O port 808. Similarly, the output devices may convert electrical signals received from computing system 800 via the I/O port 808 into signals that may be sensed as output by a human, such as sound, light, and/or touch. The input device may be an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processor 802 via the I/O port 808. The input device may be another type of user input device including, but not limited to: direction and selection control devices, such as a mouse, a trackball, cursor direction keys, a joystick, and/or a wheel; one or more sensors, such as a camera, a microphone, a positional sensor, an orientation sensor, a gravitational sensor, an inertial sensor, and/or an accelerometer; and/or a touch-sensitive display screen (“touchscreen”). The output devices may include, without limitation, a display, a touchscreen, a speaker, a tactile and/or haptic output device, and/or the like. In some implementations, the input device and the output device may be the same device, for example, in the case of a touchscreen.


The environment transducer devices convert one form of energy or signal into another for input into or output from the computing system 800 via the I/O port 808. For example, an electrical signal generated within the computing system 800 may be converted to another type of signal, and/or vice-versa. In one implementation, the environment transducer devices sense characteristics or aspects of an environment local to or remote from the computing device 800, such as, light, sound, temperature, pressure, magnetic field, electric field, chemical properties, physical movement, orientation, acceleration, gravity, and/or the like. Further, the environment transducer devices may generate signals to impose some effect on the environment either local to or remote from the example computing device 800, such as, physical movement of some object (e.g., a mechanical actuator), heating or cooling of a substance, adding a chemical substance, and/or the like.


In one implementation, a communication port 810 is connected to a network by way of which the computer system 800 may receive network data useful in executing the methods and systems set out herein as well as transmitting information and network configuration changes determined thereby. Stated differently, the communication port 810 connects the computer system 800 to one or more communication interface devices configured to transmit and/or receive information between the computing system 800 and other devices by way of one or more wired or wireless communication networks or connections. Examples of such networks or connections include, without limitation, Universal Serial Bus (USB), Ethernet, Wi-Fi, Bluetooth®, Near Field Communication (NFC), Long-Term Evolution (LTE), and so on. One or more such communication interface devices may be utilized via the communication port 810 to communicate one or more other machines, either directly over a point-to-point communication path, over a wide area network (WAN) (e.g., the Internet), over a local area network (LAN), over a cellular (e.g., third generation (3G) or fourth generation (4G) or fifth generation (5G) network), or over another communication means. Further, the communication port 810 may communicate with an antenna or other link for electromagnetic signal transmission and/or reception.


The system set forth in FIG. 8 is but one possible example of a computer system that may employ or be configured in accordance with aspects of the present disclosure. It will be appreciated that other non-transitory tangible computer-readable storage media storing computer-executable instructions for implementing the presently disclosed technology on a computing system may be utilized


The shot selection strategy platform 200 may provide the various outputs (aim line, shot odds, shot dispersion, club recommendation, etc.) for display in the mobile device through any number of processes of methods. In one example, the outputs may be determined by the shot selection strategy platform 200 from a probabilistic standpoint. Described below are four aspects of the shot selection strategy platform 200 and an example process for each, including the processes of projecting GPS coordinates to a two-dimensional (2D) space, selection of a dispersion model and a maximum likelihood fitting, probability evaluation over closed irregular shapes and club recommendation.


Beginning with the projection of three-dimensional GPS coordinates (such as the geolocation of the aspects of the selected golf course and/or the user) to a 2D space, shot selection strategy platform 200 utilize an equirectangular projection method. In general, this transformation maps north-south meridians to vertical lines with constant spacing and circles of latitude to horizontal lines with constant spacing. While this transformation is common in cartography for thematic mapping, it is not conformal and therefore results in some distortion between the spherical and linear representations. However, for the relatively small spherical areas that each hole spans, these distortions may be negligible. The forward projection from GPS to 2D or X-Y coordinates may be defined as:






x
=


R

(

λ
-

λ
0


)


cos



ϕ
1








y
=

R

(

ϕ
-

ϕ
0


)





where Δ and ϕ are the longitude and latitude, respectively, of the coordinate set in question, R is the radius of the Earth, ϕ0 is the central parallel of the map, λ0 is the central meridian of the map, and ϕ1 is any central parallel where the transformation is true. For simplicity, ϕ10. The reverse projection takes XY coordinates into GPS coordinates via:






λ
=


x

R

cos


ϕ
1



+

λ
0








ϕ
=


y
R

+

ϕ
0






There may be two different types of coordinates available for the transformation. In one example, the location at which a golf shot lands may be transformed respect to an arbitrary origin point. This point is represented in yards and each different shot (regardless of true origin) is associated to a common origin e.g. (0, 0). The length of the shot is then denoted as the total or carry distance and the lateral drift is denoted as the offside. In one example of the shot selection strategy platform 200, the vertical coordinate is defined as the carry distance. The set, or distribution, of these shots is referred to as the shot dispersion pattern. The dispersion pattern can be fit with a model that represents the probabilistic distribution of where a shot will land given a specific club. A second type of coordinate may be the real-world GPS coordinates of sub-areas. A sub-area is the point outline of an aspect of the course or hole (bunker, fairway, green, etc.) with points represented by latitude and longitude. An illustration of a dispersion pattern and example course areas are shown in FIG. 9. In particular, FIG. 9 illustrates a dispersion pattern for one or more aspects of a course hole in graph 902 and a simulated dispersion pattern for a single club as determined from the user's shot data in graph 904.


These two sets of coordinates, dispersions and course aspects, are initially incompatible in their original frame of reference. Thus, transformations may be applied to place both systems into a common reference frame, which then allows for the calculation of the probability for a shot to encounter a course aspect. To perform this transformation, two reference frames may be defined: the dispersion frame and the course frame. The dispersion frame may include each of the shots for a given club such that any shot (from anywhere in real world coordinates) can be integrated into the common dispersion frame when calculated with respect to the user's position as an origin (0, 0). The dispersion frame can be transformed and overlaid onto any real course such that there is a proper definitions of the axes within the course. This leads to the course frame definition, which is constructed around the target axis for a particular hole. In general, the target axis is the line from the user's position (commonly tee-box center) to the hole. The transformation from dispersion to course frame from dispersion vector {right arrow over (X)} to course frame vector {right arrow over (X′)} is as follows:








R

(
θ
)



X



=


X








where R is a 2×2 rotation matrix and θ denotes the angle between the dispersion and course frame. To transform from the dispersion frame to course frame the dispersion system is rotated to align with the target axis of the course frame.


Following the projecting of the GPS coordinates to 2D coordinates, the dispersion patterns for the user may be determined. In general, dispersion patterns in golf follow generally elliptical patterns and may include such characteristics as lateral (offside) and vertical (carry/total) coordinates, localization at/centered on a point in space, symmetric spread around a center, and a pattern not necessarily aligned with lateral-vertical coordinate system. In one implementation, the offside value of a shot may be made to correspond to the x-axis of the 2D plane and the carry to be the y-axis. The choice and transformation of coordinate system has already been discussed. A generic probability model that captures all these aspects of the dispersion patterns is a two-dimensional Gaussian, or normal, probability density function (PDF), defined as:








(

x




"\[LeftBracketingBar]"


μ
,
Σ



)


=


1


2


π
2





"\[LeftBracketingBar]"

Σ


"\[RightBracketingBar]"







e


-

1
2





(

x
-
μ

)

r




Σ

-
1


(

x
-
μ

)








This PDF is parameterized by its sufficient statistics, its center μ (2×1) and its covariance matrix Σ (2×2). The center can be anywhere on the given 2D real plane such that μ∈R2. Similarly, for the covariance matrix, Σ∈R2×2. However, there are additional requirements for the covariance-namely that it must be symmetric and positive semi-definite (its eigenvalues≥0). These properties not only match the ones outlined earlier for dispersion patterns, but will also allow the Gaussian PDF to be easily visualized as ellipses.


The shot selection strategy platform 200 may obtain a model, a PDF, that describes the dispersion data probabilistically and continuously throughout all space. For example, one chosen functional form is a 2D Gaussian, so that the shot selection strategy platform 200 may obtain the parameters of this PDF. In order to estimate our parameters, some metric is selected to be optimized. The standard procedure for obtaining estimators may come from maximizing the likelihood of the generated model. The likelihood of a model may be considered as the probability of observing the data seen, x, given this data was generated from an underlying model parameterized by θ. This statement can be mathematically expressed as P(x|θ) with \hat {\theta} representing the unique set of parameters that maximize this likelihood to find the model that best fits the given data, or maximizes the probability that the data was sampled from the estimated distribution. In order to obtain the maximum likelihood estimates of the parameters, the derivative of the function from the PDF with respect to the parameter may be estimated and set to 0. Then one may solve for that parameter. Often, to simplify the equations to solve, the log of the likelihood is maximized to cancel exponents and make multiplications into additions. This approach still finds the maximum likelihood solution because the log function is continuous and monotonically increasing, so the values that maximize the likelihood will also maximize the log-likelihood.


For the Gaussian distribution, the maximum likelihood estimate (MLE) of the parameters (denoted by e′) are straightforward to calculate (another reason to choose this PDF to model the data). From solving the derivative equations, the center of the distribution {circumflex over (μ)} is the arithmetic, or sample, mean of the data and the covariance {circumflex over (Σ)} is the sample covariance of the data, giving:







μ
^

=


1
n





i


x
i










Σ
jk

=


1

n
-
1






i



(


X
ij

-

μ

j
,
1



)



(


X
ik

-

μ

k
,
1



)








for Xij being the data matrix of n entries, indexed by i, and dimension j such that j=k. Here, {circumflex over (μ)} is a k×1 vector and {circumflex over (Σ)} is a k×k matrix. Thus, our model becomes:







𝒩

(

x




"\[LeftBracketingBar]"



μ
^

,

Σ
^




)

=


1


2


π
2





"\[LeftBracketingBar]"


Σ
^



"\[RightBracketingBar]"







e


-

1
2





(

x
-

μ
^


)

r





Σ
^


-
1


(

x
-

μ
^


)








Every golf club creates a dispersion pattern and each may be treated as independent. The shot data that populates each dispersion may be modeled with a 2-D Gaussian. An example fitted dispersion is shown in the graph 1002 of FIG. 10. In general, the club model and how it intersects course aspects yields the total probability that a shot will land in a given course area. The course frame fitted dispersion pattern can then be rotated in dip angles with respect to the target axis to find the optimal shot angles that maximize a desired probability.


To evaluate the probability inside a course aspect shape a common lower point may be defined between the top and bottom of the shape. The area difference between the top and bottom gives the area inside the shape. In order to define the top and bottom of the shape, the points may be ordered clockwise or counter-clockwise and the top or bottom is defined based on the sign of the traversal across the x-coordinates. In one example, the process for probability integration may be as follows: for a shape C with a set of ordered points C∈{(x0, y0), . . . , (xn, yn)}, evaluate a sub-integral of a Gaussian function G(x, y) between pairs of point (xi, yi) and (xi+1, yi+1). The two points and a common line ylow<yi form a trapezoid where the upper side is represented by line f(x)=mxi+b between the two y coordinates. The probability inside the trapezoid is then/where:






I
=






x
i





x

i
+
1








y
low




y
max





G

(

x
,
y

)


dydx







As there are cross terms present in G(x, y), that is x and y are correlated, the evaluation of the integral may be very complicated and computationally expensive. To simplify the above equation and make the integral tractable, the x-y dependence may be broken through the diagonalization of the covariance matrix Σ in G(x, y). The stacked eigenvectors of Σ provide a change of basis, or transformation matrix, to translate both the shot model and course areas into a diagonalized space. This 2×2 transformation matrix may be dented by VΣ and apply transformations like the following:











V
Σ

(



x




y



)

=

(




x







y





)









V
Σ

(




μ
x






μ
y




)

=

(




μ
x







μ
y





)









V
Σ
T


Σ



V
Σ


=

Σ









This transformation can be thought of as a rotation in the 2D plane, and an example of this transformation is illustrated in FIG. 11. In particular, a dispersion model in an original course frame is illustrated in graph 1102 and the same dispersion model in a diagnolized frame with zero covariance is illustrated in graph 1104. In this rotated space, the 2D Gaussian can be broken up into two, independent 1D Gaussian PDFs, since, by construction, the covariance (off-diagonal) terms in the covariance matrix are 0 in this space. As such, the integrals for the sub-intervals can be analytically calculated. Another way to think about zero covariance is that the model is aligned with the x-y axes of the given coordinate system. The absolute values of the integrals are invariant under any rotation, including this transformation.


With both the model and course area transformed into the ‘primed’ diagonalized space, the above equation can be simplified to:






I
=






x
i





x

i
+
1






G

(
x
)


dx





y
low




y
max





G

(
y
)


dy








The cost of making the Gaussian separable is a loss of resolution in the integration bounds. Note that the trapezoid integration have been reduced to a rectangular one to maintain the independence in x and y. Thus, ymax may be defined as the maximum between yi and yi+1. This bounds adjustment introduces a significant error in the sub integral with respect to the trapezoidal integration if the distance between the two points is large. To overcome this issue, additional points are interpolated along f(x) and each sub-integral is evaluated between the interpolated points rather than between the original points. The spacing chosen between points in the interpolation is a tunable parameter which is a function σx and Σy. The integral estimates maintain precision for interpolation widths less than σ.


After one sub-integral has been computed, the rest may be found by computing (xi+1, yi+1) with (xi+2, yi+2) and so on until the shape is closed with the final point pair (xn, yn) and (x0, y0). The total probability may be the sum (or difference) of sub-integral probabilities based on the traversal direction. This total probability P for a shot to land in the area may thus be defined by:






P
=




j


x
i

<

x

i
+
1





I
j


-



k


x
i

>

x

i
+
1





I
k







The computational performance of early implementations of the above processes fell short of desired a total desired runtime of less than 3 seconds, with (machine dependent) sub-integrals taking several seconds, a full course evaluation taking several minutes, and the course sweep taking over an hour when evaluating all club models. However, two developments make possible drastic improvements in the performance: (1) The simplification of the problem by diagonalization and (2) the added implementation of integral evaluation with compiled C++ code. In one implementation, the overall workflow may be constructed in python, but evaluation of probabilities, the course coordinate point management, diagonalization, sub-integral evaluation, and probability calculation are all handled in a compiled C++ module that is embedded in the python workflow. The performance of the C++ module far exceeds the previous implementation with sub integral performance on order micro seconds. With this improvement, the shot selection strategy platform 200 can perform higher precision integration (from interpolation) and increased sweep resolution (by a factors of ˜10-100) and have the total computation time to be approximately 2 seconds or less in full deployment.


In order to decrease computational time, probability integrations may be saved by the shot selection strategy platform 200 only for course shapes that are close enough to a specified dispersion to yield a non-negligible probability. For this prioritization, one heuristic is to only integrate course aspects that are at least 3Σmajor away from the center of the dispersion model, where Σmajor is defined as the length of the major axis for a given model. This ensures that at least roughly 1% of the dispersion model lies at or within a given course aspect.


For club recommendation, prioritization may be included to reduce the computational time as well as the logical selection of the recommended club. In one implementation, each club may be ordered based on a mean distance from the hole, where the smallest distance yields the highest priority. The strategy for determining priority is as follows: find the distance D from the player position to the hole, find the absolute residual distance Δyi with D and course frame i-th club μγ and sort by ascending Δyi.


Another degree of freedom that may be considered in addition to recommending a club is recommending an aim line or aim point. The aim line is defined as the line, or vector, from the origin to the hole (approximated as the green center) for the dispersion model in the original course frame. For example, the player's dispersion pattern may pull right or left of the hole, so the “optimal” shot would be to aim for off the hole by a certain amount of yards. To provide this recommendation, an angle sweep may be conducted, which rotates the dispersion model across a larger angle interval, [−θmax, θmax], in smaller angle sub-intervals, Δθ.


The sub-interval Δθ will change based on the distance of the dispersion model center from the player position, or (0, 0). For example, an angle sub-interval of 10 degrees for a Driver club, whose dispersion model corresponds to a total distance of 400 yards, will cover less area than a PW club, whose dispersion model corresponds to a total distance of 50 yards. To uniformize the “yard resolution”, r, of each angle, this is resolution may be specified first and approximated as the arc length of the angle swept out in the sub-interval such that:






r
=

d

Δθ





where d is defined as the distance of the dispersion model from (0, 0) in the XY plane. Inverting this equation, given a yard resolution r and distance d, the Δθ for each dispersion model may be calculated. From here, the aim line may be determined, which is a vector that rotates with the dispersion model for a given Δθ. In some instances, θmax may be set to 45 degrees to capture a wide range of possible aim points.


The continuous, 2D Gaussian probability distribution fit to the dispersion data may be visualized as concentric ellipses to demarcate certain areas of probability corresponding to different “sigma” levels. An ellipse or an ellipsoid (a n-dimensional ellipse) can be represented as the set of points x that satisfy the following relationship in n-dimensional space:









(

x
-
m

)

T



A

(

x
-
m

)


=
1




Because the model is 2D, the x and m may be expressed as 2×1 vectors and the matrix A as 2×2. The ellipse produced from this equation is centered at m with its principal axes characterized by the eigenvectors of A, v0 and v1 (normalized). The eigenvalues of A correspond to the reciprocals of the squares of this axes, a−2 and b−2, such that:







x

(
t
)

=

m
+


av
0



cos

(
t
)


+


bv
1



sin

(
t
)







The form in the equations may be similar to the exponent of a Gaussian, (x−μ)τΣ−1(x−μ), and as such we can visualize a 2D Gaussian as a continuous elliptic field centered at u with its axes set by the eigenvectors and eigenvalues of Σ. This intuitively makes sense since u centers the Gaussian and Σ dictates the width and orientation of the Gaussian through the variances and covariance, respectively. Since in the Gaussian form, the covariance matrix Σ is already inverted, the ellipse axis lengths are the square root of the eigenvalues of Σ. The eigenvectors of Σ correspond to one σ width, so multiplying the second and third terms by s gives the so ellipse. Points t on the interval of [0, 2π] may be generated to give to the above equation to generate the points x to be plotted. This may be done for the 1σ and 2σ ellipses, capturing roughly 68% and 95% of the probability distribution, respectively.


In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.


The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.


While the present disclosure has been described with reference to various implementations, it will be understood that these implementations are illustrative and that the scope of the present disclosure is not limited to them. Many variations, modifications, additions, and improvements are possible. More generally, embodiments in accordance with the present disclosure have been described in the context of particular implementations. Functionality may be separated or combined in blocks differently in various embodiments of the disclosure or described with different terminology. These and other variations, modifications, additions, and improvements may fall within the scope of the disclosure as defined in the claims that follow.

Claims
  • 1. A system for processing golf shot data, the system comprising: a communication interface receiving shot data corresponding to at least one golf shot of a user generated by a simulator device;one or more data processors; anda non-transitory computer-readable storage medium containing instructions which, when executed by the one or more data processors, cause the one or more data processors to: receive, via a user interface in communication with the system via the communication interface, a geolocation of the user associated with the shot data;generate, based on the shot data, a dispersion pattern corresponding to the user associated with the shot data;determine, based on geolocations of one or more aspects of a selected course, a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course;select, based on the likelihood value and a recommendation setting, a recommended club; andtransmit, for display on a mobile device executing the user interface, the generated dispersion pattern for the recommended club.
  • 2. The system of claim 1, the instructions further causing the one or more data processors to: receive environmental data corresponding to a geolocation of the selected course; and adjust the shot data based on the environmental data.
  • 3. The system of claim 2, wherein generating the dispersion pattern is based on the adjusted shot data.
  • 4. The system of claim 2, wherein the environmental data comprises at least one of a temperature, a wind speed, a wind direction, a precipitation, or a humidity associated with the geolocation of the selected course.
  • 5. The system of claim 1, wherein the shot data comprises data corresponding to a plurality of clubs associated with the user and wherein the instructions further cause the one or more data processors to: generate a plurality of dispersion patterns, each dispersion pattern corresponding to one of the plurality of clubs associated with the user.
  • 6. The system of claim 5, wherein determining a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course comprises determining a likelihood value for each of the plurality of dispersion patterns.
  • 7. The system of claim 6, wherein selection of the recommended club comprises determining a best fit of the plurality of dispersion patterns based on the likelihood value for each of the plurality of dispersion patterns and the recommendation setting.
  • 8. The system of claim 1, the instructions further causing the one or more data processors to: determine, based on the recommended club, an aim line for hitting the recommended club.
  • 9. The system of claim 8, the instructions further causing the one or more data processors to: transmit, for display on a mobile device executing the user interface, the aim line.
  • 10. The system of claim 1, wherein the shot data comprises at least one of an estimated distance of flight of a struck ball, a total distance traveled of the struck ball, a right or left carry of the struck ball in flight, a spin rate of the struck ball, an axis of spin for the struck ball, or an estimated peak height of the struck ball.
  • 11. The system of claim 1, wherein display of the generated dispersion pattern comprises overlaying a dispersion pattern indicator on an aerial view of the selected course and display of an indication of the recommended club.
  • 12. The system of claim 1, wherein the one or more aspects of the selected course comprise at least one of a green, a fairway, a penalty area, a bunker, a rough area, or a water hazard.
  • 13. A computer-implemented method for processing golf shot data, the computer-implemented method comprising: receiving, via a communication interface, shot data corresponding to at least one golf shot of a user generated by a simulator device and a geolocation of the user associated with the shot data;generating, based on the shot data, a dispersion pattern corresponding to the user associated with the shot data;determining, based on geolocations of one or more aspects of a selected course, a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course;selecting, based on the likelihood value and a recommendation setting, a recommended club; andtransmitting, for display on a mobile device executing the user interface, the generated dispersion pattern for the recommended club.
  • 14. The computer-implemented method of claim 13, further comprising: receiving environmental data corresponding to a geolocation of the selected course;and adjust the shot data based on the environmental data.
  • 15. The computer-implemented method of claim 14, wherein generating the dispersion pattern is based on the adjusted shot data.
  • 16. The computer-implemented method of claim 13, wherein the shot data comprises data corresponding to a plurality of clubs associated with the user, the method further comprising: generating a plurality of dispersion patterns, each dispersion pattern corresponding to one of the plurality of clubs associated with the user.
  • 17. The computer-implemented method of claim 16, wherein determining a likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course comprises determining a likelihood value for each of the plurality of dispersion patterns.
  • 18. The computer-implemented method of claim 17, wherein selection of the recommended club comprises determining a best fit of the plurality of dispersion patterns based on the likelihood value for each of the plurality of dispersion patterns and the recommendation setting.
  • 19. The computer-implemented method of claim 13, wherein the recommendation setting comprises a threshold value corresponding to the likelihood value for the dispersion pattern to overlap with the geolocation of one of the one or more aspects of a selected course.
  • 20. The computer-implemented method of claim 19, wherein the recommended club comprising comparing the threshold value to the likelihood value for the dispersion pattern to overlap with the geolocations of the one or more aspects of a selected course.
CROSS-REFERENCE TO RELATED APPLICATION

This application is related to and claims priority under 35 U.S.C. § 119 (e) from U.S. Patent Application No. 63/623,082, filed Jan. 19, 2024, titled “System and Method for Advising Golfers Based on Personalized Historical Data,” the entire contents of which is incorporated herein by reference for all purposes.

Provisional Applications (1)
Number Date Country
63623082 Jan 2024 US