Systems and methods for smart golf club gapping with atmospheric corrections
The system addresses the challenge of predicting golf club performance by using a physics-based model with atmospheric data and individual golfer characteristics, offering accurate and accessible predictions without costly equipment.
Patent Information
- Authority / Receiving Office
- US · United States
- Patent Type
- Applications(United States)
- Current Assignee / Owner
- EDH US LLC
- Filing Date
- 2026-01-14
- Publication Date
- 2026-07-23
AI Technical Summary
Conventional golf club fitting systems require expensive equipment or extensive on-course testing to account for atmospheric conditions affecting ball flight, failing to provide accurate predictions for individual golfer performance due to variations in physical strength, technique, and environmental factors.
A method and system that uses a physics-based ball flight model to estimate launch parameters and carry distances by integrating geographical altitude and atmospheric data, allowing golfers to predict performance across their full set of clubs without sophisticated measurement equipment, incorporating meteorological data and personalizing calculations based on individual swing characteristics.
Enables accurate and accessible golf club performance predictions by applying atmospheric corrections and individual golfer data, reducing the need for expensive equipment and providing practical insights for club selection and configuration.
Smart Images

Figure US20260208022A1-D00000_ABST
Abstract
Description
CLAIM OF PRIORITY
[0001] This patent application claims the benefit of priority, under 35 U.S.C. Section 119(e), to Henri Johnson et al, U.S. Provisional Patent Application Ser. No. 63 / 747,297, entitled “SYSTEMS AND METHODS FOR GOLF CLUB GAPPING,” filed on Jan. 20, 2025 (Attorney Docket No. 3179.018PRV), which is hereby incorporated by reference herein in its entirety.BACKGROUND
[0002] In the game of golf, players rely heavily on their ability to achieve consistent and predictable carry distances with each club in their bag. However, even when using identical clubs, two golfers may achieve markedly different carry distances due to individual differences such as physical strength, technique, and skill execution. These differences may arise from multiple factors, including physical abilities like strength and flexibility, athletic coordination for efficient swing mechanics, and skills developed to achieve optimal launch conditions.
[0003] A typical golf bag contains a range of clubs designed to achieve different distances and trajectories, from drivers and fairway woods through to irons and wedges. Each club is designed with specific characteristics that influence the ball's launch parameters such as speed, launch angle, and spin rate. The flight path of a golf ball is influenced by various atmospheric conditions, with air density being a primary factor that impacts both drag and lift forces on the ball. Air density itself varies based on several environmental factors, including geographical altitude, temperature, and relative humidity, with altitude having the most significant impact at approximately 65-70% of atmospheric influence. However, conventional systems do not provide a simple way for golfers to understand and predict how these atmospheric conditions affect their shot distances across their full set of clubs without requiring extensive testing or sophisticated measurement equipment.BRIEF SUMMARY
[0004] The present disclosure provides a method for estimating launch parameters and carry distances across a golfer's full set of clubs based on their known performance with one or more clubs at their home location. Most golfers with experience know their typical carry distance with certain clubs, such as their driver or 6-iron, which serves as a starting point for the estimation process.
[0005] The method applies a physical ball flight model that accounts for atmospheric conditions, particularly air density, which varies based on geographical altitude, temperature, and humidity. Air density is 5-10 times more influential than air viscosity on golf ball flight, with altitude having the most significant impact-accounting for approximately 65-70% of atmospheric influence. Air density typically decreases by about 12% per 1,000 meters of altitude gain, 1-2% per 10° C. temperature increase, and less than 0.5% across typical humidity ranges.
[0006] The system uses a reference table containing typical launch parameters for a full set of golf clubs. When a golfer inputs their known carry distance and home location, the system retrieves the altitude and atmospheric data for that location. The golfer also indicates their general launch angle and spin rate tendencies compared to the average golfer.
[0007] Using this information, the system calculates adjusted launch parameters specific to that golfer and determines the ball speed required to achieve their known carry distance under their home location's atmospheric conditions. This creates a speed modification factor that can be applied across their full set of clubs to estimate performance.
[0008] The system then calculates personalized launch parameters and estimated carry distances for each club by applying the speed modification factor and launch parameter adjustments. The results provide golfers with a practical understanding of their expected performance across their full set without requiring sophisticated measurement equipment.
[0009] The technology can incorporate additional factors such as wind effects and elevation changes between release and landing positions. For golfers who know their carry distances with multiple clubs, the system can perform more precise interpolation of launch parameters across their set.
[0010] Thus, in one example, a method for estimating golf club performance parameters includes receiving a reference or home location input for a golfer and retrieving altitude data and atmospheric condition data associated with the reference home location from a remotely accessible meteorological data source; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving inputs indicating the golfer's launch angle style and ball spin style relative to reference values; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0011] In another example, a system for estimating golf club performance parameters includes processors and a memory storing instructions that, when executed by at least one processor among the processors, cause the system to perform operations comprising: receiving a reference or home location input for a golfer; retrieving altitude and atmospheric data for the reference or home location from a geographical database; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving inputs indicating the golfer's launch angle style and ball spin style relative to reference values; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0012] In a further example, a machine-readable medium comprising instructions that, when read by a machine, cause the machine to perform operations comprising: receiving a reference or home location input for a golfer; retrieving altitude and atmospheric data for the reference or home location from a meteorological data source; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving inputs indicating the golfer's launch angle style and ball spin style relative to reference values; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0013] The systems and methods disclosed herein provide specific technological improvements to the field of golf club fitting and performance analysis by solving concrete technical problems that have long challenged golfers, club fitters, and equipment manufacturers. Traditional approaches to club fitting and gapping analysis require either expensive launch monitor equipment or extensive on-course testing under various atmospheric conditions—resources unavailable to most recreational golfers. The present disclosure provides a practical solution by applying a physics-based ball flight model that accounts for atmospheric density variations in a computationally efficient manner not previously available.
[0014] The disclosed technology improves upon conventional golf performance estimation in several specific ways. First, the iterative ball flight calculation technique applies aerodynamic principles to back-calculate ball speed from known carry distances under specific atmospheric conditions, enabling personalized club performance predictions without requiring direct measurement of launch parameters. This represents a significant advancement over generic distance charts that fail to account for individual golfer characteristics or environmental factors. Second, the system integrates geographical altitude data with atmospheric databases to automatically determine air density conditions, eliminating the need for manual atmospheric measurements or calculations. Third, the discrete adjustment methodology for launch angle and spin rate style inputs provides a computationally efficient means of personalizing reference data to individual golfer swing characteristics, producing more accurate predictions than one-size-fits-all approaches.
[0015] The unconventional technical approach of examples of the present disclosure lies in its combination of: (1) reverse-engineering ball speed from achieved carry distance using an iterative ball flight model with atmospheric corrections; (2) applying a speed modification factor across an entire club set based on single-club input data; and (3) integrating real-time meteorological data to automatically adjust calculations for environmental conditions. This specific combination of computational techniques and data integration has not been previously applied to golf club performance estimation and produces results that are demonstrably more accurate and accessible than prior methods.
[0016] In some examples, the claimed subject matter operates through specific hardware components including processors executing specialized algorithms, meteorological data sources providing location-based altitude data, meteorological data sources providing atmospheric condition data, and aerodynamic coefficient databases containing golf ball flight characteristics. The ball flight model iteratively processes these multiple data sources through computational steps that calculate air density, adjust launch parameters, determine ball speeds, and estimate carry distances—operations that cannot be performed mentally or with pen and paper given the complexity of the aerodynamic calculations and the volume of database queries required. The system outputs this information through electronic displays, graphical user interfaces, and data communication components that enable practical application of the results.
[0017] In some examples, the practical applications of this technology extend beyond abstract data processing. The system enables golfers to optimize their club selection and configuration without access to expensive launch monitors, assists club fitters in making evidence-based recommendations for clients, helps golf retailers provide value-added services to customers, and allows equipment manufacturers to better understand how their products perform across different user profiles and environmental conditions. These real-world applications address concrete problems in the golf industry and provide tangible benefits to users.
[0018] The disclosed technology further represents an improvement in computer functionality itself. By integrating atmospheric measurement capabilities (FIGS. 1-6) with golf club performance estimation (FIGS. 7-11) in some examples, the system creates a specialized computing tool that processes environmental sensor data, geographical information, and aerodynamic modeling in a coordinated manner not previously achieved. The efficient iterative calculation methodology reduces computational requirements compared to brute-force trajectory simulation approaches, enabling implementation on consumer devices such as smartphones and tablets while maintaining accuracy sufficient for practical golf club fitting applications.
[0019] In some examples, retrieving the atmospheric data comprises retrieving temperature and humidity data for the reference or home location from the geographical database.
[0020] In some examples, the launch angle style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0021] In some examples, the ball spin style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0022] In some examples, calculating the adjusted launch angle and ball spin rate values comprises applying discrete adjustment steps based on the launch angle style and ball spin style inputs.
[0023] In some examples, the ball flight model accounts for air density effects based on the altitude of the reference or home location.
[0024] In some examples, the method further comprises receiving wind speed and wind direction inputs and calculating the ball speed value based on the ball flight model and these wind inputs.
[0025] In some examples, the method further comprises receiving elevation difference information between ball release and landing positions and incorporating this information into the ball flight model calculation of the ball speed value.
[0026] In some examples, receiving the input specifying at least one golf club comprises receiving inputs for multiple specified golf clubs and corresponding achieved carry distances, and calculating estimated launch parameters for other golf clubs comprises interpolating between speed modification factors calculated for the multiple specified golf clubs.
[0027] In some examples, generating the output comprises displaying a table showing ball speed, launch angle, spin rate and carry distance values for each club in the set of golf clubs.
[0028] In some examples, the speed modification factor may be calculated using an alternative carry distance ratio methodology. Rather than calculating a speed modification factor directly from the determined ball speed, the system may calculate a carry distance ratio as the ratio of the golfer's achieved carry distance to the reference carry distance for the specified club from the reference table. The system then modifies the reference carry distances for non-specified clubs by multiplying each reference carry distance with the carry distance ratio. Using the ball flight model, the system back-calculates determined ball speeds for the non-specified clubs based on these modified reference carry distances. This alternative approach can provide a more even distribution of carry distances across the club set and may produce more accurate results for certain golfer profiles.
[0029] In some examples, the system may utilize multiple reference tables calibrated for different skill levels rather than a single reference table for an average golfer. The golfer may provide a skill level input indicating their handicap, and the system selects an appropriate reference table from a plurality of reference tables based on the golfer's handicap. For example, the plurality of reference tables may include a first reference table calibrated for low-handicap golfers (e.g., handicaps of 0-10), a second reference table for mid-handicap golfers (e.g., handicaps of 11-20), and a third reference table for high-handicap golfers (e.g., handicaps above 20). Each reference table contains launch parameters that better reflect the typical performance characteristics of golfers within that skill level range, including different ball speed ranges, launch angle tendencies, and spin rate patterns. This skill-level stratification improves the accuracy of estimated performance parameters by starting with baseline reference data more closely matched to the individual golfer's abilities.
[0030] In some examples, the system may incorporate artificial intelligence algorithms to improve the accuracy of estimated launch parameters over time by learning from user feedback and actual performance data. The AI algorithm may receive feedback data indicating actual carry distances achieved by the golfer with one or more clubs during subsequent play or practice sessions. The system compares the actual carry distances to the previously estimated carry distances and identifies differences between the actual and estimated values. Based on these differences, the AI algorithm adjusts calculation parameters such as reference table values, adjustment factors, speed modification calculations, or ball flight model coefficients. The system applies these adjusted calculation parameters to subsequent performance estimations for that golfer, creating increasingly personalized and accurate predictions over time. The machine learning functionality may operate at the individual golfer level, creating user-specific profiles, or may aggregate data across multiple users to improve general reference tables and calculation methodologies. This continuous learning capability enables the system to adapt to individual golfer characteristics that may not be fully captured by the initial style inputs alone.
[0031] In some examples, rather than inputting only carry distance for a specified club, the golfer or system may receive known launch parameters comprising ball speed, launch angle, and ball spin rate for a specified club. This data may be obtained from previous launch monitor sessions, club fitting appointments, or other measurement sources. When such direct launch parameter data is available, the system calculates estimated launch parameters for other golf clubs by proportionally modifying reference table parameters based on the known launch parameters. For example, if the known ball speed for a 6-iron is 10% higher than the reference table value, the system applies this same 10% increase to the reference ball speeds for all other clubs. Similarly, launch angle and spin rate differences are applied proportionally across the club set.
[0032] In some examples, the golfer may provide known launch parameters for multiple specified clubs rather than a single club. The system then calculates estimated launch parameters for non-specified clubs by interpolating between the known launch parameters of the specified clubs. For instance, if a golfer provides complete launch data for a driver, 7-iron, and pitching wedge, the system interpolates the parameters for clubs positioned between these specified clubs in the reference table's ordered list. The interpolation may use linear interpolation, polynomial interpolation, spline interpolation, or other appropriate mathematical methods. This multi-club input approach provides greater accuracy for the full club set by anchoring the estimations at multiple known data points rather than extrapolating from a single reference club.
[0033] In some examples, the system for estimating golf club performance parameters may be integrated with or comprise the atmospheric measurement components described with reference to FIGS. 1-6. Such an integrated system includes an air temperature and humidity meter for measuring atmospheric temperature and relative humidity, a barometer for measuring atmospheric pressure, and a processor configured to execute both the effective altitude determination methodology and the ball flight model for golf club performance estimation. The system further includes a geographical database storing altitude data for locations, a meteorological database storing atmospheric condition data, and a ball aerodynamic coefficients database storing lift and drag coefficients. An input device receives golfer inputs including location data, club specifications, and achieved carry distances, while an output device displays calculated performance parameters. Memory stores instructions that, when executed by the processor, cause the system to determine effective altitude based on measured atmospheric conditions, retrieve reference launch parameters for golf clubs, calculate adjusted launch parameters based on golfer style inputs, iteratively determine ball speeds using the ball flight model, and generate estimated performance parameters for a complete set of golf clubs.
[0034] In some examples, the system may include an anemometer for measuring wind speed and direction, and the ball flight model incorporates wind effects in trajectory calculations. The wind measurements may be used in both the initial ball speed determination for the specified club and in the carry distance calculations for all clubs in the set. Similarly, the system may receive elevation difference data indicating a height difference between a ball release position and a landing position, and the system adjusts carry distance calculations based on this elevation difference data. These environmental adjustments provide more accurate performance estimates for golfers who regularly play on courses with significant elevation changes or consistent wind conditions.
[0035] In some examples, the processor is further configured to interface with third-party systems via data communications to export calculated performance parameters. The exported data may include complete performance tables, individual club specifications, or formatted reports suitable for use by club fitting software, golf instruction applications, equipment retail systems, or personal golf tracking applications. The system may support various data formats and communication protocols to enable seamless integration with existing golf technology ecosystems.
[0036] The methods and operations described herein may be embodied in machine-readable media comprising instructions that, when executed by a machine, cause the machine to perform the disclosed operations. Such implementations may include receiving user selection of a skill-level-specific reference table from a plurality of reference tables based on a golfer's handicap, retrieving baseline launch parameters from the selected reference table, receiving atmospheric condition data for a specified location, calculating air density based on the atmospheric condition data, receiving at least one known performance data point for the golfer, determining personalized adjustment factors by comparing the known performance data point to the baseline launch parameters, applying the personalized adjustment factors to calculate estimated performance parameters for a full set of golf clubs, and displaying the estimated performance parameters through a graphical user interface. The operations may further include receiving user feedback indicating actual performance achieved with one or more clubs, applying machine learning algorithms to refine the personalized adjustment factors based on the user feedback, and storing the refined adjustment factors for future calculations. These machine-readable medium implementations enable deployment of the disclosed technology across various computing platforms including smartphones, tablets, desktop computers, cloud-based systems, and specialized golf technology devices.BRIEF DESCRIPTION OF THE DRAWINGS
[0037] FIG. 1 is a schematic view of components of a system 100 for determining an effective altitude in relation to atmospheric conditions, which may be incorporated into or used in conjunction with the golf club gapping systems described herein, in accordance with some examples.
[0038] FIG. 2 is a flow chart depicting example operations in a method 200 of determining an effective altitude for atmospheric conditions, which may be used to provide atmospheric data for the golf club gapping systems described herein, in accordance with an example.
[0039] FIG. 3 is a block diagram illustrating a networked system architecture that may be used to implement the atmospheric measurement and golf club gapping systems described herein, according to some examples.
[0040] FIG. 4 is a block diagram showing some details of a system for determining an effective altitude and / or implementing golf club gapping functionality, according to some examples.
[0041] FIG. 5 is a block diagram illustrating representative software architecture, which may be used in conjunction with various hardware architectures to implement the atmospheric measurement and golf club gapping systems described herein.
[0042] FIG. 6 is a block diagram illustrating components of a machine, according to some examples, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein, including effective altitude determination and golf club gapping operations.
[0043] FIG. 7 is a block diagram illustrating a system for estimating golf club performance parameters using atmospheric data, according to some examples.
[0044] FIG. 8 is a flow chart depicting example operations in a method for estimating golf club performance parameters based on atmospheric conditions and golfer inputs, according to some examples.
[0045] FIG. 9 illustrates a user interface for entering carry distance data for different golf clubs, according to some examples.
[0046] FIG. 10 illustrates a user interface for selecting launch angle and spin rate adjustments, according to some examples.
[0047] FIG. 11 illustrates a user interface showing a gapping results table with calculated ball speed, launch angle, spin rate, and carry distance values for each club in a set, according to some examples.DETAILED DESCRIPTION
[0048] The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative examples of the disclosure. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide an understanding of various examples of the inventive subject matter. It will be evident, however, to those skilled in the art, that examples of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.
[0049] In some examples, the golf club gapping systems and methods disclosed herein account for atmospheric conditions that significantly affect ball flight, particularly air density variations caused by altitude, temperature, and humidity. To provide accurate atmospheric adjustments, the disclosed systems may incorporate or interface with atmospheric measurement and processing technologies that determine effective altitude values for reference atmospheres. FIGS. 1-6 illustrate example system components and methodologies for measuring atmospheric conditions and calculating effective altitude values, which may be utilized as part of the broader golf club gapping system described herein. These atmospheric measurement capabilities enable the golf club gapping system to accurately model ball flight under varying environmental conditions. In some examples, the effective altitude determination functionality described with reference to FIGS. 1-6 may be integrated directly into the golf club gapping system of FIGS. 7-11. In other examples, the golf club gapping system may retrieve atmospheric data from external meteorological data sources or databases without requiring the complete atmospheric measurement apparatus described in FIGS. 1-6. The following description first addresses the atmospheric measurement and effective altitude determination aspects (FIGS. 1-6), followed by a detailed description of how these atmospheric factors are applied within the golf club gapping system (FIGS. 7-11).
[0050] FIG. 1 is a schematic view of components of a system 100 for determining an effective altitude in relation to a moving object or projectile, or an environment in which the object or projectile moves, in accordance with some examples. Although examples of the present subject matter are discussed in relation to sports activities (sports objects and projectiles), it will be appreciated that other applications are possible where applicable.
[0051] An example system 100 includes environmental sensing and processing components. The environmental sensing and processing components may include components such as an air temperature and humidity meter 1, a barometer 2, a numerical processor 3, a computer program 4, an input device 5, an output device 6, an anemometer 7, and preset values (presets) of temperature and relative humidity of a reference atmosphere 8. Projectile tracking components for tracking a sports object may be associated with or exchange data with the system 100. Tracking components may include devices such as radar guns, doppler sensors, and boresight antennae.
[0052] In some examples, the air temperature and humidity meter 1 is used to measure the temperature and relative humidity of an atmosphere of interest. The barometer 2 is used to measure the air pressure of the atmosphere of interest at approximately the same time and place. The measurements are entered into the numerical processor 3 by means of the input device 5. The numerical processor 3 is programmed with a computer program 4 that performs calculations to determine an effective altitude for a reference atmosphere for the preset values of temperature and relative humidity 8. The resulting effective altitude is presented as an output on the output device 6.
[0053] In some examples, measurements of wind speed and direction from an anemometer 7 can be input to the numerical processor 4 through the input device 5. Wind speed and direction can be used by the computer program 5 to calculate the effect of wind on the flight of the object, in addition to the effect of only air density. Other system components to derive other variables or input values are possible. Measured or known temperature, pressure and humidity values of an atmosphere of interest can be used to calculate an effective altitude for a reference atmosphere.
[0054] Some examples of the present subject matter may include methods. With reference to FIG. 2, example operations (steps) in a method 200 for determining an effective altitude in relation to a moving object or projectile, or an environment (or atmosphere) in or through which the object or projectile moves, are shown. These operations may be performed iteratively, or in other order.
[0055] In Step 1 the air temperature, air pressure, and relative humidity of the environment of interest are determined. These values may be determined or derived by the environmental monitoring components of the tracking system 100 of FIG. 1. In other examples, the values may be derived from devices embedded in electronic devices such as smart phones or tablet computers. Other examples may include internet-based weather data sources that provide location specific atmospheric conditions.
[0056] Step 2 calculates the air density for the temperature, relative humidity, and air pressure of the environment of interest. This result of this calculation is “Air Density 1”. The numerical relations between the variables may be determined, in some examples, in accordance with techniques described in the Manual of the ICAO standard atmosphere calculations by the NACA, document number NACA-TN-3182, first published on May 1, 1954. In this publication, the relations between the atmospheric variables, as applicable to the lower atmosphere (troposphere) can be found.
[0057] In Step 3 an altitude value for the reference atmosphere is chosen or set (“Altitude 1”).
[0058] Step 4 uses the value of Altitude 1 to calculate a related Air Pressure. An example relation that can be used for this calculation is: Air Pressure=A * exp (−Altitude * B), where Air Pressure is in Pascal's and Altitude is in meters, and A and B are empirical constants. Values for A and B can be found, for example in educational publications such as 1728 Software Systems. In some examples, a relation between Altitude and Air Pressure does not have to be precise as long as the chosen relation is used consistently.
[0059] Step 5 takes the calculated Air Pressure from Step 4 as well as a preset reference atmosphere temperature (for example be 15 degrees Celsius) and a preset relative humidity (for example 50%), and use the same relationships or calculator used in Step 1, to calculate the Air Density for this set of values. The result of this step is “Air Density 2”.
[0060] Step 6 compares the values of Air Density1 and Air Density 2. If the absolute value of the difference is larger than an arbitrary small amount (E), which can be a preset comparison value (or preset amount E), the process returns to Step 3. In Step 3 the value of Altitude 1 can be either increased or decreased by a finite amount, and Steps 4, 5, and 6 repeated. This process is repeated iteratively with the aim of finding a value for Altitude 1 where the absolute value of the difference between Air density 1 and Air Density 2 is equal to or smaller than the preset amount E. When this condition is reached, Step 7 is performed where the value of Altitude 1 is assigned to the effective altitude for the atmosphere of interest and is presented as the output.
[0061] Some example methods 200 include programming a numerical processor, equipped with suitable input and output devices, with a computer program that is designed to allow entry of measured or known atmospheric values of temperature, humidity and pressure. The computer program is in addition programmed with the relevant scientific relationships to convert atmospheric values to air pressure. In addition, the computer program configures the processor to calculate the air pressure related to a specific altitude, using a suitable scientific relationship. The computer program reads the preset stored values of the reference atmosphere and perform calculations in an iterative way to find the altitude for the reference atmosphere where the air temperature is near enough the same as the air pressure calculated for the atmosphere of interest, as specified by the input atmospheric values. This altitude (i.e., the effective altitude) is the desired result which can be output on the numerical processor's output device.
[0062] In some example systems 100, at least the following components are provided: a numerical processor (3), computer program (4), input device (5), output device (6), and stored preset reference atmosphere data (8). In some example systems 100, optional components may include a temperature and humidity meter (1), barometer (2), and anemometer (7). In some examples, temperature, humidity and air pressure data can be obtained from external systems including online weather data, so that measuring instruments are not essential. Wind speed and direction data, if desired, can also be obtained from external weather data sources. In some examples, the computer program can be adapted to include wind speed and direction, being movement of the air medium, in the calculation of an object's flight in addition to the effects of air density. While not related to atmospheric conditions, other information of potential significance to the sportsperson such as the height difference between the object's release position and the expected or desired landing position can also be input to and calculated by the computer program and provide a corresponding output.
[0063] Thus, in some examples, a system 100 operator (typically a sportsperson or coach engaging with the output device 6) can calculate or be shown an effective altitude for an atmosphere of interest. When practicing, the sportsperson can relate his or her performance to a single, simple variable. When practicing or competing in different atmospheric conditions, he or she can relate their performance to the prevailing atmosphere by determining the effective altitude of the prevailing conditions and using their skill and experience to apply this knowledge of the effective altitude to improve their performance. In some examples, the disclosed technology can be incorporated into a computerized training aid for sportspeople. Some examples include a computerized tactical aid that a sportsperson can use at a competitive event.
[0064] With reference to FIG. 3, an example of a high-level SaaS network architecture 300 is shown. A networked system 316 provides server-side functionality via a network 310 (e.g., the Internet or wide area network (WAN)) to a client device 308. A web client 302 and a programmatic client, in the example form of an application 304 are hosted and execute on the client device 308. The networked system 316 includes an application server 322, which in turn hosts a system 306 (for example the system 100 of FIG. 1) that provides a number of functions and services to the application 304 that accesses the networked system 316. The application 304 also provides a number of interfaces described herein, which present output of the tracking and analysis operations to a user of the client device 308. An interface for presenting such output may be included in the output device 6 of FIG. 1.
[0065] The client device 308 enables a user to access and interact with the networked system 316. For instance, the user provides input (e.g., touch screen input or alphanumeric input) to the client device 308, and the input is communicated to the networked system 316 via the network 310. In this instance, the networked system 316, in response to receiving the input from the user, communicates information back to the client device 308 via the network 310 to be presented to the user.
[0066] An Application Program Interface (API) server 318 and a web server 320 are coupled to, and provide programmatic and web interfaces respectively, to the application server 322. The application server 322 hosts a system 306, which includes components or applications. The application server 322 is, in turn, shown to be coupled to a database server 324 that facilitates access to information storage repositories (e.g., a database 326). In some examples, the database 326 includes storage devices that store information accessed and generated by the system 306.
[0067] Additionally, a third-party application 314, executing on a third-party server 312, is shown as having programmatic access to the networked system 316 via the programmatic interface provided by the Application Program Interface (API) server 318. For example, the third-party application 314, using information retrieved from the networked system 316, may support one or more features or functions on a website hosted by the third-party.
[0068] Turning now specifically to the applications hosted by the client device 308, the web client 302 may access the various systems (e.g., system 306) via the web interface supported by the web server 320. Similarly, the application 304 (e.g., an “app”) accesses the various services and functions provided by the system 306 via the programmatic interface provided by the Application Program Interface (API) server 318. The application 304 may, for example, be an “app” executing on a client device 308, such as an iOS or Android OS application to enable user to access and input data on the networked system 316 in an off-line manner, and to perform batch-mode communications between the programmatic client application 304 and the networked system 316.
[0069] Further, while the SaaS network architecture 300 shown in FIG. 3 employs a client-server architecture, the present inventive subject matter is of course not limited to such architecture, and could equally well find application in a distributed, or peer-to-peer, architecture system, for example. The system 306 could also be implemented as a standalone software program, which do not necessarily have networking capabilities.
[0070] FIG. 4 is a block diagram showing for the architectural details of a system 306, according to some examples. Specifically, the system 306 is shown to include an interface component 410 by which the system 306 communicates (e.g., over the network 408) with other systems within the SaaS network architecture 300. The interface component 410 is collectively coupled to a Tracking component 406 that operates to perform one or more operations of the methods described herein.
[0071] FIG. 5 is a block diagram illustrating an example software architecture 506, which may be used in conjunction with various hardware architectures herein described. FIG. 5 is a non-limiting example of a software architecture and it will be appreciated that many other architectures may be implemented to facilitate the functionality described herein. The software architecture 506 may execute on hardware such as machine 600 of FIG. 6 that includes, among other things, processors 604, memory 614, and I / O components 618. A representative hardware layer 552 is illustrated and can represent, for example, the machine 600 of FIG. 6. The representative hardware layer 552 includes a processing unit 554 having associated executable instructions 504. Executable instructions 504 represent the executable instructions of the software architecture 506, including implementation of the methods, components and so forth described herein. The hardware layer 552 also includes memory and / or storage modules memory / storage 556, which also have executable instructions 504. The hardware layer 552 may also comprise other hardware 558.
[0072] In the example architecture of FIG. 5, the software architecture 506 may be conceptualized as a stack of layers where each layer provides particular functionality. For example, the software architecture 506 may include layers such as an operating system 502, libraries 520, applications 516 and a presentation layer 514. Operationally, the applications 516 and / or other components within the layers may invoke application programming interface (API) API calls 508 through the software stack and receive a response as in response to the API calls 508. The layers illustrated are representative in nature and not all software architectures have all layers. For example, some mobile or special purpose operating systems may not provide a frameworks / middleware 518, while others may provide such a layer. Other software architectures may include additional or different layers.
[0073] The operating system 502 may manage hardware resources and provide common services. The operating system 502 may include, for example, a kernel 522, services 524 and drivers 526. The kernel 522 may act as an abstraction layer between the hardware and the other software layers. For example, the kernel 522 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on. The services 524 may provide other common services for the other software layers. The drivers 526 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 526 include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth depending on the hardware configuration.
[0074] The libraries 520 provide a common infrastructure that is used by the applications 516 and / or other components and / or layers. The libraries 520 provide functionality that allows other software components to perform tasks in an easier fashion than to interface directly with the underlying operating system 502 functionality (e.g., kernel 522, services 524 and / or drivers 526). The libraries 520 may include system libraries 544 (e.g., C standard library, and OpenCV libraries) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 520 may include API libraries 546 such as media libraries (e.g., libraries to support presentation and manipulation of various media format such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D in a graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), web libraries (e.g., WebKit that may provide web browsing functionality), and the like. The libraries 520 may also include a wide variety of other libraries 548 to provide many other APIs to the applications 516 and other software components / modules.
[0075] The frameworks frameworks / middleware 518 (also sometimes referred to as middleware) provide a higher-level common infrastructure that may be used by the applications 516 and / or other software components / modules. For example, the frameworks / middleware 518 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth. The frameworks / middleware 518 may provide a broad spectrum of other APIs that may be utilized by the applications 516 and / or other software components / modules, some of which may be specific to a particular operating system or platform.
[0076] The applications 516 include built-in applications 538 and / or third-party applications 540. Examples of representative built-in applications 538 may include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, and / or a game application. Third-party applications 540 may include any an application developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform and may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or other mobile operating systems. The third-party applications 540 may invoke the API calls 508 provided by the mobile operating system (such as operating system 502) to facilitate functionality described herein.
[0077] The applications 516 may use built in operating system functions (e.g., kernel 522, services 524 and / or drivers 526), libraries 520, and frameworks / middleware 518 to create user interfaces to interact with users of the system. Alternatively, or additionally, in some systems interactions with a user may occur through a presentation layer, such as presentation layer 514. In these systems, the application / component “logic” can be separated from the aspects of the application / component that interact with a user.
[0078] Some software architectures use virtual machines. In the example of FIG. 5, this is illustrated by a virtual machine 510. The virtual machine 510 creates a software environment where applications / components can execute as if they were executing on a hardware machine (such as the machine 600 of FIG. 6, for example). The virtual machine 510 is hosted by a host operating system (operating system (OS) 536 in FIG. 5) and typically, although not always, has a virtual machine monitor 560, which manages the operation of the virtual machine as well as the interface with the host operating system (i.e., operating system 502). A software architecture executes within the virtual machine 510 such as an operating system operating system (OS) 536, libraries 534, frameworks 532, applications 530 and / or presentation layer 528. These layers of software architecture executing within the virtual machine 510 can be the same as corresponding layers previously described or may be different.
[0079] FIG. 6 is a block diagram illustrating components of a machine 600, according to some examples, able to read instructions from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more of the methodologies discussed herein. Specifically, FIG. 6 shows a diagrammatic representation of the machine 600 in the example form of a computer system, within which instructions 610(e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine 600 to perform any one or more of the methodologies discussed herein may be executed. As such, the instructions may be used to implement modules or components described herein. The instructions transform the general, non-programmed machine into a particular machine programmed to carry out the described and illustrated functions in the manner described. In alternative examples, the machine 600 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 600 may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 600 may comprise, but not be limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular telephone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions 610, sequentially or otherwise, that specify actions to be taken by machine 600. Further, while only a single machine 600 is illustrated, the term “machine” shall also be taken to include a collection of machines that individually or jointly execute the instructions 610 to perform any one or more of the methodologies discussed herein.
[0080] The machine 600 may include processors 604, memory memory / storage 606, and I / O components 618, which may be configured to communicate with each other such as via a bus 602. The memory / storage 606 may include a memory 614, such as a main memory, or other memory storage, and a storage unit 616, both accessible to the processors 604 such as via the bus 602. The storage unit 616 and memory 614 store the instructions 610 embodying any one or more of the methodologies or functions described herein. The instructions 610 may also reside, completely or partially, within the memory 614, within the storage unit 616, within at least one of the processors 604 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 600. Accordingly, the memory 614, the storage unit 616, and the memory of processors 604 are examples of machine-readable media.
[0081] The I / O components 618 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I / O components 618 that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I / O components 618 may include many other components that are not shown in FIG. 6. The I / O components 618 are grouped according to functionality merely for simplifying the following discussion and the grouping is in no way limiting. In various examples, the I / O components 618 may include output components 626 and input components 628. The output components 626 may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. The input components 628 may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or other pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and / or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.
[0082] In further examples, the I / O components 618 may include biometric components 630, motion components 634, environmental environment components 636, or position components 638 among a wide array of other components. For example, the biometric components 630 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like. The motion components 634 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environment components 636 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometer that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components 638 may include location sensor components (e.g., a Global Position System (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
[0083] Communication may be implemented using a wide variety of technologies. The I / O components 618 may include communication components 640 operable to couple the machine 600 to a network 632 or devices 620 via coupling 622 and coupling 624, respectively. For example, the communication components 640 may include a network interface component or other suitable device to interface with the network 632. In further examples, communication components 640 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, Ultra-Wideband (UWB), or other short-range wireless communication protocols to provide communication via other modalities. The devices 620 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a Universal Serial Bus (USB)).
[0084] Moreover, the communication components 640 may detect identifiers or include components operable to detect identifiers. For example, the communication components processors communication components 640 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 640, such as, location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting a NFC beacon signal that may indicate a particular location, and so forth.
[0085] The computer-based data processing systems and methods described above are for purposes of example only and may be implemented in any type of computer system or programming or processing environment, or in a computer program, alone or in conjunction with hardware. The present inventive subject matter may also be implemented in software stored on a computer-readable medium and executed as a computer program on a general purpose or special purpose computer. For clarity, only those aspects of the system germane to the invention are described, and product details well known in the art are omitted. For the same reason, the computer hardware is not described in further detail. It should thus be understood that the present subject matter is not limited to any specific computer language, program, or computer. It is further contemplated that the present subject matter may be run on a stand-alone computer system or may be run from a server computer system that can be accessed by a plurality of client computer systems interconnected over an intranet network, or that is accessible to clients over the Internet. In addition, some examples of the present subject matter may have application to a wide range of industries. To the extent the present application discloses a system, the method implemented by that system, as well as software stored on a computer-readable medium and executed as a computer program to perform the method on a general purpose or special purpose computer, are within the scope of the present invention. Further, to the extent the present application discloses a method, a system of apparatuses configured to implement the method are within the scope of the present subject matter. The atmospheric measurement and effective altitude determination capabilities described above with reference to FIGS. 1-6 may be incorporated into or used in conjunction with golf club performance estimation systems, as now described with reference to FIGS. 7-11. It should be understood, of course, that the foregoing relates to some examples of the inventive subject matter and that modifications may be made without departing from the scope of this disclosure as set forth in the claims further below.
[0086] FIG. 7 is a block diagram illustrating a system 700 for estimating golf club performance parameters, according to some examples. The system 700 may include components that work together to process inputs and generate club performance. The systems and components of FIGS. 1-6 described above may also be adapted and / or used to perform any one or more of the smart gapping operations described herein, in addition to or in conjunction with performing any one or more the operations relating to determining an effective altitude described above.
[0087] The Processor 1001 executing a Computer Program 9500 may serve as a central processing unit of the system 700. The Processor 1001 may execute calculations using data from multiple sources, including the Geographic Information System 9001, a climate database system, such as a Meteorological Database system 9002, and Ball Aerodynamic Coefficients database 9100. Processor 1001 may perform air density calculations, launch parameter adjustments, ball speed determinations, and carry distance estimations. The Computer Program 9500 may contain algorithms for interpolating between known values and applying atmospheric corrections to the calculations.
[0088] The Input Device 1003 may provide a user interface through which golfers may enter their information into the system 700. Through Input Device 1003, users may input their home location for altitude determination, specify one or more golf clubs and their known carry distances, and indicate their launch angle and ball spin preferences relative to average values. Input Device 1003 may include touch screens, keyboards, or other input mechanisms that allow users to interact with the user interfaces shown in FIG. 9 and FIG. 10.
[0089] The Output Device 1004 may display the calculated results through a graphical user interface. Output Device 1004 may present the estimated performance parameters in various formats, including the tabular format shown in FIG. 11 with ball speeds, launch angles, spin rates and carry distances for each club. Output Device 1004 may also provide data visualization options and allow users to export or save their results. The display may include screens, monitors, or other visual output mechanisms that can present the information in a clear and organized manner.
[0090] The Data Communications 1005 may manage information flow between all system components. Data Communications 1005 may retrieve altitude data from Geographic Information System 9001, atmospheric data from Meteorological Database System 9002, and aerodynamic coefficients from Ball Aerodynamic Coefficients database 9100. Data Communications 1005 may also enable data export to Third Party System 9003 and handle all internal data transfers between the processor, memory, input and output devices.
[0091] The Memory 1002 may store data and instructions for the system 700. Memory 1002 may contain temporary and permanent storage capabilities, and may store the reference data, user inputs, calculated results, and program instructions. Memory 1002 may interface with Processor 1001 through data bus connections to provide rapid access to stored information.
[0092] The Geographic Information System 9001 may provide location-based altitude data. When a user enters a location, Geographic Information System 9001 may query databases to determine the corresponding altitude. Geographic Information System 9001 may account for variations in terrain and may provide altitude data that affects approximately 65-70% of atmospheric influence on ball flight.
[0093] The Meteorological Database System 9002 may maintain and provide atmospheric data for locations. Meteorological Database System 9002 may store temperature data that may affect air density by approximately 1-2% per 10° C. change, and humidity data that may affect air density by less than 0.5%. Meteorological Database System 9002 may provide either current or historical average atmospheric conditions.
[0094] The Third-Party System 9003 may enable data exchange with external applications and platforms. Third Party System 9003 may receive data from the main system, store information, process results, and integrate with other golf-related software. Third Party System 9003 may support various communication protocols and data formats.
[0095] The Ball Aerodynamic Coefficients database 9100 may contain lift and drag coefficients for golf ball flight calculations. Ball Aerodynamic Coefficients database 9100 may provide data used by the ball flight model to calculate trajectories based on launch conditions and atmospheric factors. Ball Aerodynamic Coefficients database 9100 may include data for different types and models of golf balls.
[0096] The Reference Table for Average Golfer 9005 may maintain baseline launch parameters for golf clubs. Reference Table for Average Golfer 9005 may include typical ball speeds, launch angles, and spin rates for each club type. For example, Reference Table for Average Golfer 9005 may specify that a driver may produce launch angles around 12 degrees with spin rates of 2500 rpm, while a lob wedge may generate launch angles around 42 degrees with varying spin rates.
[0097] FIG. 8 is a flow chart depicting example operations in a method 800 for estimating golf club performance parameters, according to some examples. Although the described flow diagram below can show operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed. A process may correspond to a method, a procedure, an algorithm, etc. The operations of methods may be performed in whole or in part, may be performed in conjunction with some or all of the operations in other methods, and may be performed by any number of different systems, such as the systems described herein, or any portion thereof, such as a processor included in any of the systems. In some instances, an operation or physical element may be referred to by the same numeral, depending on the context. In some instances, the numbering is not necessarily indicative of a sequence, or order of events.
[0098] In step 2005, the system 700 may receive a reference or home location input (the Reference or Home Location
[2005] ) from a golfer through Input Device 1003. The reference or home location may be entered in various forms including a physical address, GPS coordinates, or other location identifiers that allow the system to determine the geographical position where the golfer typically plays.
[0099] In step 2006, using the Reference or Home Location
[2005] , the system 700 may query a database, which could in one instance be an online geographical information system, but can also be in any other available practical form (the Geographical Database
[9001] ) to find the approximate altitude of where the golfer usually plays (the Reference or Home Altitude
[2006] ).
[0100] In steps 2007, 2008, and 2009, the same or another database may be interrogated to find the average air temperature (the Reference or Home Temperature
[2007] ), the average relative humidity (the Reference or Home Humidity
[2008] ), and other atmospheric factors of the reference or home location (the Other Home Atmospheric Factors
[2009] ). If such data is not available, nominal values of temperature, humidity and any other factors can also be used.
[0101] In step 2001, the system 700 may receive an input specifying at least one golf club (the Specified Club
[2001] ) through Input Device 1003. The Reference Table
[9005] contains data for individual clubs such as a No.1 Driver, a 6 iron, a Lob Wedge, etc. It is possible to group clubs together in club groups if such clubs have very similar typical launch parameters being ball speed, launch angle, and ball spin rate.
[0102] In step 2002, the system 700 may receive through Input Device 1003 the achieved carry distance that the golfer typically achieves with the specified club when playing at their home location. In some examples, this known carry distance provides the baseline performance data that will be used to calculate launch parameters and distances for other clubs.
[0103] In step 2010, the system 700 may receive an input indicating the golfer's Launch Angle Style
[2010] relative to reference values through Input Device 1003. A golfer will know, or can reasonably estimate, if his style of playing generally causes lower or higher ball launch angles, compared to an average golfer. The input may, in one instance, be one of a selection between “None / Unknown, About Average, Somewhat lower, Much lower, Somewhat higher, Much higher”, or be indicated in another form.
[0104] In step 2020, the system 700 may receive an input indicating the golfer's Spin Style relative to reference values through Input Device 1003. A golfer will know, or can reasonably estimate, if his style of playing generally causes lower or higher ball spin rates, compared to an average golfer. The input may, in one instance, be one of a selection between “None / Unknown, About Average, Somewhat lower, Much lower, Somewhat higher, Much higher”, or be indicated in another form.
[0105] In step 2030, the ball launch angle for the Specified Club
[2001] is looked up from the Reference Table
[9005] . Then, the golfer's inputs in relation to his Launch Angle Style
[2010] are used to adjust, by either increasing or decreasing the launch angle obtained from the reference table for the Specified Club
[2001] . These adjustments can be made in discrete steps, following the degree indicated by the golfer. The amount of an adjustment can be in one of many forms, including a fixed value adjustment, a fixed percentage adjustment, according to a lookup table, or according to an algorithm, or any other means without limitation.
[0106] In step 2040, as a first step, the ball spin rate for the Specified Club
[2001] is looked up from the Reference Table
[9005] . Then, the golfer's inputs in relation to his Spin Style
[2020] are used to adjust, by either increasing or decreasing the ball spin rate obtained from the reference table for the Specified Club
[2001] . These adjustments can be made in discrete steps, following the degree indicated by the golfer. The amount of an adjustment can be in one of many forms, including a fixed value adjustment, a fixed percentage adjustment, according to a lookup table, or according to an algorithm, or any other means without limitation.
[0107] In step 2003, the system 700 may determine a ball speed value by using the Adjusted Launch Angle
[2031] and Adjusted Ball Spin Rate
[2041] for the Specified Club
[2001] , together with the Achieved Carry Distance
[2002] , to calculate, in an iterative manner, and using a numerical ball flight model (the Ball Flight Model
[9500] ) assuming wind free conditions and with air density related to the Reference or Home Altitude
[2006] and other home atmospheric data, to estimate the ball launch speed that achieves the carry distance input by the golfer (the Determined Launch Speed
[2003] ). The Ball Flight Model
[9500] may include formulas for golf ball lift and drag, dynamic motion, and assumed, published, or experimentally determined lift and drag coefficients for golf balls traveling in an air medium.
[0108] In step 2050, the system 700 may calculate a Speed Modification Factor
[2050] which is the ratio of the iteratively Determined Ball Speed
[2003] , divided by the ball speed for the Specified Club
[2001] from the Reference Table
[9005] .
[0109] In step 2060, the system 700 may calculate ball speeds for other clubs by multiplying the Reference Table's
[9005] ball speeds for all other clubs or club groups by the Speed Modification Factor
[2050] to obtain a Determined Ball Speed
[2060] for each club, or club groups, representing the ball speeds the golfer is estimated to achieve with each of the clubs.
[0110] In step 2030 for other clubs, the system 700 may calculate adjusted launch angles by applying the ball launch angles from the Reference Table for all other clubs or club groups adjusted by the same factor that was used to adapt the launch angle of the Specified Club
[2001] , calculating the Adjusted Launch Angle
[2030] for all clubs or club groups, representing what the golfer can be expected to achieve with each of the clubs.
[0111] In step 2040 for other clubs, the system 700 may calculate adjusted ball spin rates by applying the ball spin rates from the Reference Table for all other clubs or club groups adjusted by the same factor that was used to adapt the ball spin rate of the Specified Club
[2001] , calculating the Adjusted Ball Spin Rate
[2040] for all clubs or club groups, representing what the golfer can be expected to achieve with each of the clubs.
[0112] In step 2070, the system 700 may calculate estimated carry distances by using the values of Determined Ball Speed
[2060] , Adjusted Launch Angle
[2030] , and Adjusted Ball Spin Rate
[2040] with the Ball Flight Model
[9500] to calculate the Estimated Carry Distances achievable for each club or club group.
[0113] In step 1004, the system 700 may output the Determined Ball Speed
[2060] , Adjusted Launch Angle
[2030] , Adjusted Ball Spin Rate
[2040] , and Estimated Carry Distance
[2070] for any or all clubs through Output Device 1004. The Output Device
[1004] can be an electronic display, a hardcopy print, or a graphical image.
[0114] In step 1002, the system 700 may store the calculated data in Memory 1002. The Determined Ball Speed
[2060] , Adjusted Launch Angle
[2030] , Adjusted Ball Spin Rate
[2040] , and Estimated Carry Distance
[2070] represent the estimates of what the golfer achieves for all clubs and club groups.
[0115] In step 1005, the system 700 may transmit the data through Data Communications 1005. The aforementioned data can be stored in an electronic memory, database, or be transmitted by electronic Data Communications
[1005] to an independent Third-Party System able to receive, store, output, or process this data. In summary, the inputs provided by a golfer for one club only can be converted to a useful, representative set of launch parameters and carry distances, without a need for extensive testing or access to sophisticated technology such as a launch monitor.
[0116] In an alternative example of step 2050, instead of calculating a Speed Modification Factor, a Carry Distance Ratio can be calculated as the ratio of Achieved Carry Distance to the carry distance from the Reference Table for the Specified Club. The Reference carry distances for the non-specified clubs can then be modified by multiplying with the Carry Distance Ratio, and from these the Ball Flight Model can be used to calculate the Determined Ball Speeds for the other clubs or club groups. This example can ensure a more even distribution of carry distances for the range of clubs.
[0117] In another example, steps 2001 and 2002 may allow the golfer to specify more than one Specified Club and corresponding Achieved Distance. The Adjusted Launch Angles and Adjusted Ball Spin Rates are calculated based on the Launch Angle Style and Ball Spin Style inputs as before. Using the Reference or Home Altitude and other Home Atmospheric Data with the appropriate adjusted parameters for each Specified Club, the Ball Flight Model calculates a Determined Ball Speed and corresponding Speed Modification Factor for each Specified Club. Speed Modification Factors for non-specified clubs are determined by interpolating between the factors of the specified clubs immediately above and below them in the Reference Table's ordered list. The interpolation may use linear or other appropriate methods.
[0118] In another example, in step 2001, the golfer may specify one club and its launch parameters (Ball Speed, Launch Angle, and Ball Spin Rate). The ball speeds, launch angles, and ball spin rates from the Reference Table are then modified proportionally to these input parameters to provide Determined Ball Speeds, Adjusted Launch Angles, and Adjusted Ball Spin Rates for all non-specified clubs.
[0119] In yet another example, steps 2001 and 2002 may allow the golfer to specify multiple clubs with their known launch parameters. The Reference Table parameters are modified proportionally to calculate the adjusted values for all non-specified clubs.
[0120] In another example, different Reference Tables may be used based on skill level rather than a single table for an “average golfer”. The golfer may indicate their skill level by inputting their golf handicap to use a Reference Table better matched to their ability.
[0121] In a further example, an Artificial Intelligence algorithm may be embedded or connected to improve the system over time through learning. One or more artificial intelligence systems may perform any one or more of the operations described herein.
[0122] Without wishing to be bound by theory, some examples of the present disclosure are based on one or more aspects of the scientific theories discussed below:
[0123] Air density can vary by 10-15% under different atmospheric conditions (temperature, humidity, altitude), significantly altering ball flight.
[0124] Air viscosity changes by less than 2% across typical weather conditions and has a much smaller impact on drag.
[0125] Air density is 5 to 10 times more influential than air viscosity on golf ball flight. Changes in density directly impact drag and lift forces, whereas changes in viscosity only subtly affect boundary layer behavior and are largely mitigated by the ball's dimples.
[0126] The impact of geographical altitude, air temperature, and relative humidity on air pressure may vary significantly in magnitude. Here is how they compare in relative importance:1. Geographical Altitude (Most Significant Impact)
[0127] Air pressure decreases exponentially with altitude. There is less air above to exert pressure at higher elevations. For every 1,000 meters (3,280 feet) of altitude gain, air pressure drops by approximately 12%. At sea level, the standard pressure is 101.3 kPa (14.7 psi), but at 2,000 meters (6,561 feet), it is around 80 kPa. Therefore, geographic altitude is the most significant because it causes large and consistent pressure changes.2. Air Temperature (Moderate Impact)
[0128] Warmer air expands, becoming less dense and lowering air pressure. Cooler air contracts, increasing air pressure. A temperature increase of 10° C. (18° F.) can decrease air pressure by about 1.2% (at constant altitude). Hot summer air reduces pressure compared to cooler winter air. Therefore, air temperature has a moderate impact, as it is less impactful than altitude but more impactful than humidity.3. Relative Humidity (Least Significant Impact)
[0129] Humid air is less dense because water vapor molecules (H2O) are lighter than nitrogen (N2) and oxygen (O2). Changing humidity from 0% to 100% reduces air pressure by less than 0.5%. Even in very humid conditions, the reduction in air pressure is minor. Therefore, relative humidity has the least significant impact compared to altitude and temperature.
[0130] In summary, the relative importance to air density is as follows:
[0131] Altitude→Major effect on air pressure (largest contributor)
[0132] Temperature→Moderate effect
[0133] Humidity→Minimal effect
[0134] In practical terms, moving to a higher altitude has the greatest impact on air pressure, followed by temperature changes, while humidity has a relatively minor influence.
[0135] The statement that “air density is 5 to 10 times more influential than air viscosity on golf ball flight” reflects both the physical impact of these properties on flight dynamics and the greater variation in air density due to environmental factors. Here is a breakdown of how these effects combine:1. Inherent Physical Influence (Independent of Variation)
[0136] Air Density directly affects drag and lift forces, both of which are crucial for golf ball flight. Air Viscosity influences the boundary layer behavior (laminar vs. turbulent flow), which indirectly affects drag. However, golf ball dimples are designed to minimize the impact of viscosity by promoting favorable airflow, making viscosity inherently less important. Therefore, even if air density and viscosity stayed constant, air density would still have a much greater influence on flight dynamics.2. Sensitivity to Environmental Changes (Variability in Conditions)
[0137] Air Density changes significantly with altitude, temperature, and humidity: altitude: decreases by ~12% per 1,000 meters; temperature drops about 1-2% per 10° C. increase; and humidity changes by less than 0.5%. Air Viscosity changes very little under typical atmospheric conditions: the air viscosity increases by only about 2% for every 10° C. rise in temperature and is nearly unaffected by humidity and altitude. Therefore, the much greater variability in air density further amplifies its dominant role compared to viscosity.3. Combined Effect
[0138] The 5 to 10 times greater influence of air density results from: its direct and dominant role in determining drag and lift and its greater susceptibility to environmental variations (altitude, temperature, humidity). Viscosity has a smaller inherent effect and changes minimally with the environment. Therefore, the dominance of air density is due to both its stronger physical influence and its larger natural variation. Both the inherent physical dominance of air density in affecting golf ball flight and the fact that air density varies much more with environmental changes than air viscosity. The effect is combined, not separate.
[0139] To quantitatively compare the influence of altitude to all other atmospheric factors (temperature, humidity, and air viscosity) on air pressure and golf ball flight, their relative impacts on air density and how that translates into drag and lift forces can be analyzed as follows:1. Quantifying Altitude's Impact on Air Density
[0140] Air density decreases exponentially with altitude: 12% per 1,000 meters (3,280 feet) of elevation gain. At 2,000 meters (6,561 feet), air density drops by about 24%. This directly reduces drag and lift forces by the same proportion.2. Quantifying Other Factors'Combined Impact
[0141] Temperature: A 10° C. increase lowers air density by about 3-4%. From 0° C. to 40° C., the total effect is roughly 12-15%.
[0142] Humidity: From 0% to 100% relative humidity, air density drops by only 0.5-1%.
[0143] Air Viscosity: Increases by about 2% for every 10° C. rise, but its impact on drag is minimal due to the ball's dimple design.3. Comparing Altitude to All Other Factors
[0144] Two scenarios:
[0145] High Altitude (~2,000 m): ~24% decrease in air density.
[0146] Extreme Combined Conditions (Hot+Humid):
[0147] 40° C. temperature increase→~12-15% reduction.
[0148] 100% humidity→0.5-1% reduction.
[0149] Total combined effect: 13-16% reduction in air density.4. Relative Influence of Altitude
[0150] Relative Impact=Altitude Effect / Combined Other Effects=24% / 15%≈1.6
[0151] Altitude's impact on air density (and thus golf ball flight) is approximately 1.5 to 2 times greater than the combined effects of temperature, humidity, and air viscosity. This makes altitude the dominant factor when compared to all other atmospheric influences.
[0152] At moderate altitudes (~2,000 meters), altitude alone has a 60-100% greater effect on air density and golf ball flight than all other factors combined.
[0153] FIG. 9 illustrates an example user interface 900 for entering carry distance data for different golf clubs, according to some examples. The user interface 900 shown in FIG. 9 represents one example implementation for entering carry distance data. Other user interface layouts, designs, input mechanisms, and arrangements may be used without departing from the scope of protection sought. The specific arrangement of input fields, buttons, dropdown menus, and other interface elements shown in FIG. 9 is provided for illustration purposes only and shall not be construed as limiting. Alternative interface designs that enable users to input carry distance data for different golf clubs may fall within the scope of protection of the present application.
[0154] The user interface 900 may include a unit selection dropdown menu at the top of the screen where users may select metric units for entering distances. Below this, the interface may display an input field for entering the reference or home altitude in meters, with minus and plus buttons for adjusting the value. The user interface 900 may alternatively allow the user to enter an address of the reference or home location and the system 700 may query a database to obtain the altitude of the reference or home location.
[0155] The interface 900 may provide a comprehensive set of input fields for entering carry distances in meters for the complete set of golf clubs. At the top, fields may be provided for woods and hybrids, including the driver, 3-wood, 5-wood / 3-hybrid / 3-iron combination, and 7-wood / 4-hybrid / 4-iron combination. The middle section may contain fields for irons 5 through 9, followed by fields for the wedges including pitching wedge (PW), gap wedge (GW), sand wedge (SW), and lob wedge (LW).
[0156] Each carry distance input field in interface 900 may display an initial value of 0.00 meters. Users may adjust these values using the minus (−) and plus (+) buttons positioned to the right of each field, allowing for precise distance entries. The interface may maintain consistent spacing and alignment between all input fields for clear organization.
[0157] At the bottom of interface 900, a “Next” button may be provided that allows users to proceed to the next step of the process after entering their carry distances. This button may become active once the required distance information has been entered.
[0158] FIG. 10 illustrates an example user interface 1000 for selecting launch angle and spin rate adjustments, according to some examples. The user interface 1000 shown in FIG. 10 represents one example implementation for selecting launch angle and spin rate adjustments. Other user interface layouts, designs, input mechanisms, and arrangements may be used without departing from the scope of protection sought. The specific arrangement of sliders, buttons, and other interface elements shown in FIG. 10 is provided for illustration purposes only and shall not be construed as limiting. Alternative interface designs that enable users to input launch angle and spin rate adjustments may fall within the scope of protection of the present application.
[0159] The user interface 1000 may provide two adjustment sliders-one for Launch Angle Adjustment and one for Spin Rate Adjustment.
[0160] The Launch Angle Adjustment slider may allow users to select values between −0.20 and 0.20, with 0.00 as the default center position. The slider may include a movable indicator that users can drag to their desired adjustment value.
[0161] The Spin Rate Adjustment slider may similarly allow values between −0.20 and 0.20, with 0.00 as the default center position. Like the launch angle slider, it may include a movable indicator for selecting the desired adjustment value.
[0162] The interface 1000 may include a “Next” button at the bottom that allows users to proceed to the next step after making their launch angle and spin rate adjustment selections.
[0163] FIG. 11 illustrates an example user interface 1100 showing a gapping results table with calculated ball speed, launch angle, spin rate, and carry distance values for each club in a set, according to some examples. The user interface 1100 shown in FIG. 11 represents one example implementation for displaying gapping results. Other user interface layouts, designs, table formats, and arrangements may be used without departing from the scope of protection sought. The specific arrangement of columns, rows, buttons, and other interface elements shown in FIG. 11 is provided for illustration purposes only and shall not be construed as limiting. Alternative interface designs that enable users to view calculated golf club performance parameters may fall within the scope of protection of the present application.
[0164] The user interface 1100 may include a “Gapping Results Table” that displays calculated performance parameters for each golf club.
[0165] The table may include columns for Club, Ball Speed (mph), Launch Angle (deg), Spin (rpm), and Carry Distance (m). Each row may contain the calculated values for a specific club, starting with the driver and progressing through the set to the lob wedge.
[0166] The interface 1100 may include three buttons at the bottom: a “Back” button to return to previous screens, an “Export” button to save or export the results, and a “Finish” button to complete the process.Benefit of Present Disclosure1. Optimizing Distance and Accuracy
[0167] Ball Speed reflects how efficiently energy is transferred from the club to the ball. Higher ball speed generally leads to longer carry distances. Launch Angle affects the trajectory. An optimal launch angle ensures the ball achieves maximum carry without ballooning or diving. Backspin influences lift and control. The right amount of spin helps the ball stay airborne longer and land softly, improving distance and accuracy. Fine-tuning these parameters allows a golfer to maximize carry distance and improve shot consistency.2. Club and Swing Optimization
[0168] Understanding these metrics helps identify whether a golfer's swing mechanics or club characteristics are limiting performance. For example, too low a launch angle or excessive spin might indicate the need for a shaft change or swing adjustment. The present disclosure enables custom club fitting and targeted swing adjustments for optimal performance.3. Better Course Management
[0169] Knowing how each club performs under different conditions helps golfers choose the right club for each shot. For example, a golfer can adjust club selection based on wind, slope, or desired shot shape. The present disclosure improves decision-making and shot selection on the course.4. Tracking Progress and Improvement
[0170] Monitoring changes in ball speed, launch angle, and spin over time provides objective feedback on swing changes, fitness improvements, or equipment upgrades. The present disclosure helps golfers measure progress and identify areas for continuous improvement.5. Adapting to Environmental Conditions
[0171] Understanding how these parameters react to weather changes (e.g., wind, altitude, temperature) allows for smarter adjustments. The present disclosure increases the golfer's ability to adapt to different playing conditions, improving overall performance.
[0172] “CARRIER SIGNAL” in this context refers to any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Instructions may be transmitted or received over the network using a transmission medium via a network interface device and using any one of a number of well-known transfer protocols.
[0173] “CLIENT DEVICE” in this context refers to any machine that interfaces to a communications network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, desktop computer, laptop, portable digital assistants (PDAs), smart phones, tablets, ultra-books, netbooks, laptops, multi-processor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user may use to access a network.
[0174] “COMMUNICATIONS NETWORK” in this context refers to one or more portions of a network that may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, a network or a portion of a network may include a wireless or cellular network and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1xRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, third Generation Partnership Project (3GPP) including 3G, fourth generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) standard, others defined by various standard setting organizations, other long range protocols, or other data transfer technology.
[0175] “COMPONENT” in this context refers to a device, physical entity or logic having boundaries defined by function or subroutine calls, branch points, application program interfaces (APIs), or other technologies that provide for the partitioning or modularization of particular processing or control functions. Components may be combined via their interfaces with other components to carry out a machine process. A component may be a packaged functional hardware unit designed for use with other components and a part of a program that usually performs a particular function of related functions. Components may constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. A “hardware component” is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware component that operates to perform certain operations as described herein. A hardware component may also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware component may be a special-purpose processor, such as a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC). A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware components become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware component mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations. Accordingly, the phrase “hardware component”(or “hardware-implemented component”) should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering examples in which hardware components are temporarily configured (e.g., programmed), each of the hardware components need not be configured or instantiated at any one instance in time. For example, where a hardware component comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware components) at different times. Software accordingly configures a particular processor or processors, for example, to constitute a particular hardware component at one instance of time and to constitute a different hardware component at a different instance of time. Hardware components can provide information to, and receive information from, other hardware components. Accordingly, the described hardware components may be regarded as being communicatively coupled. Where multiple hardware components exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware components. In some examples in which multiple hardware components are configured or instantiated at different times, communications between such hardware components may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware components have access. For example, one hardware component may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware component may then, at a later time, access the memory device to retrieve and process the stored output. Hardware components may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, “processor-implemented component” refers to a hardware component implemented using one or more processors. Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components. Moreover, the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an Application Program Interface (API)). The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some examples, the processors or processor-implemented components may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other examples, the processors or processor-implemented components may be distributed across a number of geographic locations.
[0176] “MACHINE-READABLE MEDIUM” in this context refers to a component, device or other tangible media able to store instructions and data temporarily or permanently and may include, but is not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage (e.g., Erasable Programmable Read-Only Memory (EEPROM)) and / or any suitable combination thereof. The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions. The term “machine-readable medium” shall also be taken to include any medium, or combination of multiple media, that is capable of storing instructions (e.g., code) for execution by a machine, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methodologies described herein. Accordingly, a “machine-readable medium” refers to a single storage apparatus or device, as well as “cloud-based” storage systems or storage networks that include multiple storage apparatus or devices. The term “machine-readable medium” excludes signals per se.
[0177] “PROCESSOR” in this context refers to any circuit or virtual circuit (a physical circuit emulated by logic executing on an actual processor) that manipulates data values according to control signals (e.g., “commands”, “op codes”, “machine code”, etc.) and which produces corresponding output signals that are applied to operate a machine. A processor may, for example, be a Central Processing Unit (CPU), a Reduced Instruction Set Computing (RISC) processor, a Complex Instruction Set Computing (CISC) processor, a Graphics Processing Unit (GPU), a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC) or any combination thereof. A processor may further be a multi-core processor having two or more independent processors (sometimes referred to as “cores”) that may execute instructions contemporaneously.
[0178] A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings that form a part of this document: Copyright 2019-2026, EDH US LLC, All Rights Reserved.EXAMPLES
[0179] In view of the above-described implementations of subject matter this application discloses the following list of examples, wherein one feature of an example in isolation or more than one feature of an example, taken in combination and, optionally, in combination with one or more features of one or more further examples are further examples also falling within the disclosure of this application.
[0180] Example 1 includes a method for estimating golf club performance parameters, the method comprising: receiving a reference or home location input for a golfer; retrieving altitude and atmospheric data for the reference or home location from a geographical or meteorological data source; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving an inputs indicating a golfer's launch angle style and a ball spin style relative to a reference value; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0181] Example 2 includes the method of example 1, wherein retrieving the atmospheric data comprises retrieving temperature and humidity data for the reference or home location.
[0182] Example 3 includes the method of example 1 or example 2, wherein the launch angle style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0183] Example 4 includes the method of any one of examples 1-3, wherein the ball spin style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0184] Example 5 includes the method of any one of examples 1-4, wherein calculating the adjusted launch angle and ball spin rate values comprises applying discrete adjustment steps based on the launch angle style and ball spin style inputs.
[0185] Example 6 includes the method of any one of examples 1-5, wherein a ball flight model accounts for air density effects based on the altitude of the reference or home location.
[0186] Example 7 includes the method of any one of examples 1-6, further comprising:
[0187] receiving wind speed and direction inputs; and incorporating the wind inputs into the ball flight model in the calculation of the ball speed value.
[0188] Example 8 includes the method of any one of examples 1-7, further comprising: receiving elevation difference information between ball release and landing positions; and incorporating the elevation difference into the ball flight model calculation of the ball speed value.
[0189] Example 9 includes the method of any one of examples 1-8, wherein: receiving the input specifying at least one golf club comprises receiving inputs for multiple specified golf clubs and corresponding achieved carry distances; and calculating estimated launch parameters for other golf clubs comprises interpolating between speed modification factors calculated for the multiple specified golf clubs.
[0190] Example 10 includes the method of any one of examples 1-9, wherein generating the output comprises displaying a table showing ball speed, launch angle, spin rate and carry distance values for each club in the set of golf clubs.
[0191] Example 11 includes a system for estimating golf club performance parameters, the system including: processors; and a memory storing instructions that, when executed by at least one processor among the processors, cause the system to perform operations comprising: receiving a reference or home location input for a golfer; retrieving altitude and atmospheric data for the reference or home location from a geographical or meteorological data source; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving an input indicating a golfer's launch angle style and a ball spin style relative to a reference value; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0192] Example 12 includes the system of example 11, wherein retrieving the atmospheric data comprises retrieving temperature and humidity data for the reference or home location.
[0193] Example 13 includes the system of example 11 or example 12, wherein the launch angle style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0194] Example 14 includes the system of any one of examples 11-13, wherein the ball spin style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
[0195] Example 15 includes the system of any one of examples 11-14, wherein calculating the adjusted launch angle and ball spin rate values comprises applying discrete adjustment steps based on the launch angle style and ball spin style inputs.
[0196] Example 16 includes the system of any one of examples 11-15, wherein a ball flight model accounts for air density effects based on the altitude of the reference or home location.
[0197] Example 17 includes the system of any one of examples 11-16, further comprising: receiving wind speed and wind direction inputs; and calculating the estimated launch parameters based on the ball flight model and the wind speed and wind direction inputs.
[0198] Example 18 includes the system of any one of examples 11-17, further comprising: receiving elevation difference information between ball release and landing positions; and calculating the estimated launch parameters based on the ball flight model and the elevation difference information.
[0199] Example 19 includes the system of any one of examples 11-18, wherein: receiving the input specifying at least one golf club comprises receiving inputs for multiple specified golf clubs and corresponding achieved carry distances; and calculating estimated launch parameters for other golf clubs comprises interpolating between speed modification factors calculated for the multiple specified golf clubs.
[0200] Example 20 includes a machine-readable medium comprising instructions that, when read by a machine, cause the machine to perform operations comprising, at least: receiving a reference or home location input for a golfer; retrieving altitude and atmospheric data for the reference or home location from a geographical database; receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer; receiving an input indicating a golfer's launch angle style and a ball spin style relative to reference values; calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs; determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location; calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values; calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
[0201] Although the subject matter has been described with reference to specific examples, it will be evident that various modifications and changes may be made to these examples without departing from the broader scope of the disclosed subject matter. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, shown by way of illustration, and not of limitation, specific examples in which the subject matter may be practiced. The examples illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other examples may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This description, therefore, is not to be taken in a limiting sense, and the scope of various examples is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
[0202] Such examples of the inventive subject matter may be referred to herein, individually and / or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific examples have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific examples shown. This disclosure is intended to cover any and all adaptations or variations of various examples. Combinations of the above examples, and other examples not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
Claims
1. A method for estimating golf club performance parameters, the method comprising:receiving a reference or home location input for a golfer;retrieving altitude and atmospheric data for the reference or home location from a geographical or meteorological data source;receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer;receiving an inputs indicating a golfer's launch angle style and a ball spin style relative to a reference value;calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs;determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location;calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values;calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; andgenerating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
2. The method of claim 1, wherein retrieving the atmospheric data comprises retrieving temperature and humidity data for the reference or home location.
3. The method of claim 1, wherein the launch angle style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
4. The method of claim 1, wherein the ball spin style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
5. The method of claim 1, wherein calculating the adjusted launch angle and ball spin rate values comprises applying discrete adjustment steps based on the launch angle style and ball spin style inputs.
6. The method of claim 1, wherein a ball flight model accounts for air density effects based on the altitude of the reference or home location.
7. The method of claim 1, further comprising:receiving wind speed and direction inputs; andincorporating the wind inputs into the ball flight model in the calculation of the ball speed value.
8. The method of claim 1, further comprising:receiving elevation difference information between ball release and landing positions; andincorporating the elevation difference into the ball flight model calculation of the ball speed value.
9. The method of claim 1, wherein:receiving the input specifying at least one golf club comprises receiving inputs for multiple specified golf clubs and corresponding achieved carry distances; andcalculating estimated launch parameters for other golf clubs comprises interpolating between speed modification factors calculated for the multiple specified golf clubs.
10. The method of claim 1, wherein generating the output comprises displaying a table showing ball speed, launch angle, spin rate and carry distance values for each club in the set of golf clubs.
11. A system for estimating golf club performance parameters, the system including:processors; anda memory storing instructions that, when executed by at least one processor among the processors, cause the system to perform operations comprising:receiving a reference or home location input for a golfer;retrieving altitude and atmospheric data for the reference or home location from a geographical or meteorological data source;receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer;receiving an input indicating a golfer's launch angle style and a ball spin style relative to a reference value;calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs;determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location;calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values;calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; andgenerating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.
12. The system of claim 11, wherein retrieving the atmospheric data comprises retrieving temperature and humidity data for the reference or home location.
13. The system of claim 11, wherein the launch angle style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
14. The system of claim 11, wherein the ball spin style input comprises one of: somewhat lower, much lower, about average, somewhat higher, or much higher relative to an average golfer.
15. The system of claim 11, wherein calculating the adjusted launch angle and ball spin rate values comprises applying discrete adjustment steps based on the launch angle style and ball spin style inputs.
16. The system of claim 11, wherein a ball flight model accounts for air density effects based on the altitude of the reference or home location.
17. The system of claim 11, further comprising:receiving wind speed and wind direction inputs; andcalculating the estimated launch parameters based on the ball flight model and the wind speed and wind direction inputs.
18. The system of claim 11, further comprising:receiving elevation difference information between ball release and landing positions; andcalculating the estimated launch parameters based on the ball flight model and the elevation difference information.
19. The system of claim 11, wherein:receiving the input specifying at least one golf club comprises receiving inputs for multiple specified golf clubs and corresponding achieved carry distances; andcalculating estimated launch parameters for other golf clubs comprises interpolating between speed modification factors calculated for the multiple specified golf clubs.
20. A machine-readable medium comprising instructions that, when read by a machine, cause the machine to perform operations comprising, at least:receiving a reference or home location input for a golfer;retrieving altitude and atmospheric data for the reference or home location from a geographical database;receiving an input specifying at least one golf club and a corresponding achieved carry distance for the golfer;receiving an input indicating a golfer's launch angle style and a ball spin style relative to reference values;calculating adjusted launch angle and ball spin rate values for the specified golf club based on the launch angle style and ball spin style inputs;determining a ball speed value for the specified golf club by iteratively applying a ball flight model using the adjusted launch angle and ball spin rate values to match the achieved carry distance under the altitude and atmospheric data for the reference or home location;calculating a speed modification factor based on the determined ball speed value relative to reference ball speed values;calculating estimated launch parameters for other golf clubs in a set by applying the speed modification factor and launch parameter adjustments to reference values for the other golf clubs; and generating an output indicating the estimated launch parameters and carry distances for the set of golf clubs.