Recommending targeted locations and optimal experience time

In an approach for recommending locations to visit at an optimal experience time and optimal spot to take a photo and/or a video of a location, a processor determines a geographic location where a user is located. A processor identifies a plurality of targeted locations within a pre-defined distance of the geographic location of the user. A processor determines an optimal time to visit the plurality of targeted locations. A processor determines an optimal weather condition to experience the plurality of targeted locations. A processor determines an optimal spot to capture at least one of a photo and a video of the plurality of targeted locations. A processor assigns a ranking to the plurality of targeted locations based on a set of factors in a user profile of the user. A processor outputs a recommendation with at least one of the plurality of targeted locations as an alert notification.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of data processing, and more particularly to a system and method for recommending locations to visit at an optimal experience time and optimal spot to take a photo and/or a video of a location.

SUMMARY

Aspects of an embodiment of the present invention disclose a method, computer program product, and computer system for recommending at least one of the plurality of targeted locations along with an optimal time to visit each of the plurality of targeted locations, an optimal weather condition to experience each of the plurality of targeted locations, and an optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. A processor determines a geographic location where a user is located. A processor identifies a plurality of targeted locations within a pre-defined distance of the geographic location of the user. A processor determines an optimal time to visit each of the plurality of targeted locations. A processor determines an optimal weather condition to experience each of the plurality of targeted locations. A processor determines an optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. A processor assigns a ranking to each of the plurality of targeted locations based on a set of factors in a user profile of the user. A processor outputs a recommendation with at least one of the plurality of targeted locations as an alert notification.

In some aspects of an embodiment of the present invention, subsequent to outputting the recommendation with at least one of the plurality of targeted locations as the alert notification, a processor requests feedback from the user. A processor receives feedback from the user based on the recommendation with at least one of the plurality of targeted locations. A processor adjusts future recommendations based on the received feedback on the recommendation. A processor stores the received feedback.

In some aspects of an embodiment of the present invention, a processor scrapes population density data for the geographical location of the user from a network-based cell phone carrier or scrapes data from social media posts in which the plurality of targeted locations is the subject.

In some aspects of an embodiment of the present invention, a processor scrapes data from one or more social media posts with high engagement on a social media platform. A processor selects a second photo from the data scraped from the one or more social media posts. A processor determines whether the second photo has a date stamp and a time stamp. Responsive to determining the second photo does not have the date stamp and the time stamp, a processor determines a date and a time the second photo was taken.

In some aspects of an embodiment of the present invention, a processor uses a solar cycle involving a known path of travel of the sun or uses a lunar cycle.

In some aspects of an embodiment of the present invention, a processor determines whether a weather condition is ascertainable from the second photo. Responsive to determining the weather condition is not ascertainable from the second photo, a processor determines what the weather condition is at the targeted location.

In some aspects of an embodiment of the present invention, a processor determines whether the second photo has a set of Global Positioning System (GPS) coordinates associated with the second photo. Responsive to determining the second photo does not have the set of GPS coordinates associated, a processor assigns the set of GPS coordinates to the second photo and calculates a heading.

In some aspects of an embodiment of the present invention, a processor uses the set of GPS coordinates captured when the second photo was taken and stored as data in Exchangeable Image File format by at least one of a phone of the user and a camera of the user and uses geo-spatial information extracted from the second photo from the data scraped from the one or more social media posts.

In some aspects of an embodiment of the present invention, a processor uses a doppler effect when comparing data received from a Global Navigation Satellite System (GNSS) or a GPS with the movement of an object receiving data.

In some aspects of an embodiment of the present invention, the set of factors comprises a user interest, the pre-defined distance of the geographic location of the user, a route to travel to and from the plurality of targeted locations, popularity of the plurality of targeted locations, a limited crowd size, a time of day, a weather condition, an advertisement from a local business, an incentive offered by the local business, a targeted location that is compliant with the Americans with Disabilities Act, a tourism service, and a targeted location that provides facilities including a restroom, a vending machine, or a water fountain.

In some aspects of an embodiment of the present invention, a processor identifies that the user input at least one of the plurality of targeted locations into the user profile of the user. A processor monitors for data. A processor determines whether a pre-defined threshold is met. Responsive to determining the pre-defined threshold is met, a processor outputs a recommendation with the one or more targeted locations as an alert notification.

In some aspects of an embodiment of the present invention, the pre-defined threshold is at least one of a peak experience time when the current conditions of the one or more targeted locations match the historically highest rated conditions of the one or more targeted locations and a rare occurrence.

In some aspects of an embodiment of the present invention, the historically highest rated conditions are the optimal time to visit each of the plurality of targeted locations and the optimal weather condition to experience each of the plurality of targeted locations.

In some aspects of an embodiment of the present invention, the recommendation comprises the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that mobile travel applications (“apps”) can be highly valuable for helping travelers save both time and money, while also making the travel experience much less stressful. Current mobile travel apps, however, fall short of providing travelers with the most optimal experience because current mobile travel apps fail to provide travelers with information on local experiences and hidden gems that travelers don't often get to see. Instead, current mobile travel apps focus on the well-known and highly visited attractions. Additionally, current mobile travel apps offer predictive weather recommendations based on seasonal averages for a given location but fail to offer current real-time weather recommendations.

Embodiments of the present invention provide a system and method to identify a plurality of targeted locations for the user to visit. Embodiments of the present invention identify the plurality of targeted locations by scraping population density data for the geographical location of the user from a network-based cell phone carrier and/or by scraping data from social media posts in which the plurality of targeted locations is the subject.

Embodiments of the present invention provide a system and method to determine when is the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations.

Embodiments of the present invention create a dataset that includes, but is not limited to, the calculated distance between the current location of the user and the targeted location, the anticipated popularity of the targeted location at a specific date and/or time of day, the expected weather pattern at a specific date and/or time of day, and the approximate geographical location from where the traveler can capture at least one of a photo and a video of the targeted location.

For a first data point of the dataset, embodiments of the present invention calculate the distance between the current location of the user and the targeted location by mapping one or more routes the user can travel by one or more modes of transportation.

For a second data point of the dataset, embodiments of the present invention determine the anticipated popularity of the targeted location at a specific date and/or time of day by scraping at least one photo from at least one social media post. If provided, embodiments of the present invention use the date stamp and the time stamp on the photo to determine on what day and at what time the photo was taken. If the date stamp is present on the photo, but the time stamp is missing, embodiments of the present invention use the solar and/or the lunar cycle to determine what time the photo was taken.

For a third data point of the dataset, embodiments of the present invention determine when the weather patterns (e.g., sunny, cloudy, windy, snowy, and rainy) will be optimal to view the targeted location by using the current and the forecasted weather data.

For a fourth data point of the dataset, embodiments of the present invention determine the approximate geographical location from where the traveler can capture at least one of a photo and a video of the targeted location. Embodiments of the present invention use the set of GPS coordinates that were captured by a user's phone and/or camera when a photo was taken and stored as data in Exchangeable Image File (EXIF) format to determine the approximate geographical information. Embodiments of the present invention also use geo-spatial information extracted from a photo scraped from a social media post to determine the approximate geographical location. The photo scraped from the social media post is considered to have been captured from the optimal location with the optimal light exposure and at the optimal angle and distance. Embodiments of the present invention use geo-spatial information extracted from the scraped photo that is based on celestial information, including, but not limited to, the elevation of the sun, and time information.

In short, the elevation of the sun is estimated indirectly by measuring the relative length of objects in the scraped photo and their shadows. The estimated sun elevation and the creation time of the scraped photo is then input into a celestial model to estimate the approximate geographical location where the photo was captured.

In long, given an object with a height H and a shadow with length L, the elevation e of the sun is defined as:

e=tan-1(HL).
The relationship between the elevation of the sun e and the geographical location of the observer is given by:
sine=sin δ sin φ+cos δ cos φ cos ω;
where φ is the latitude of the observer, ω is the sun angle of the observer, and δ is the declination of the sun at the given date, which can be approximated by:

δ=-0.4⁢0⁢9⁢2⁢797⁢cos⁡(2⁢π3⁢6⁢5⁢(M+10)).
The declination of the sun is represented in radians and M denotes the day of the year. The constant 0.4092797 represents the maximum declination angle of the sun, or earth tilt, in radians) (23.45° that occurs during the two solstices. The longitude λ of the observer is related to the solar time tsunas follows:

tsun=tutc-1⁢2π⁢λ;
and solar time tsunis related to the sun angle ω as follows:

ω=1⁢8⁢01⁢2⁢(tsun-12).
Given an elevation measurement e1at UTC time t1, one can find the approximate geographical location where the photo was captured with the given sun elevation for the given time.

For the fourth data point of the dataset, embodiments of the present invention also determine the heading of the approximate geographical location from where the optimal photo should be captured using the Doppler effect when comparing data received from a GNSS and/or GPS with the movement of an object receiving the data.

Heading is one of three rotational degrees of freedom, which is natural to define for land, sea, and air navigation, due to the direction of gravity. Heading means the orientation about the vertical direction vector, where vertical is defined as the normal to the reference ellipsoid. Heading can be represented in several ways, e.g., as a scalar, such as in the Euler angles roll, pitch, and yaw. Heading can also be represented by a rotation matrix or quaternion containing the full orientation. The vector, a coordinate free/geometrical vector, used to find heading is denoted by {right arrow over (x)}. The vector must have a known or measurable direction relative to the Earth (E) and a known length, such that xEis known.

Vehicle (B) represents a moving object capable of receiving GNSS and/or GPS data. The vector relative to the vehicle is denoted by xB. The relation between these vectors is
xE=REBxB;
where REBis the vehicle orientation.

To find the heading, the velocity vector {right arrow over (v)}EBcan be used when the vehicle has a non-zero horizontal component, i.e.,
xhorizontal≠{right arrow over (0)}.
Finding {right arrow over (v)}EBBcan be done using a Doppler sensor, such as an underwater acoustic Doppler velocity log, or a Doppler radar. One or more cameras can also be used, where the optical flow of Earth-fixed features is tracked. Sensors that measure velocity relative to water or air may also be used if the sea current or wind is known (or small relative to {right arrow over (v)}EB). Finally, vEBBcan also be found from knowledge of the vehicle movement, e.g., a vehicle on rails or wheels may have a restricted movement such that

vE_⁢BB≈[x00];
where x is the forward speed (and hence the course equals the heading). For vehicles in air/water, an aerodynamic/hydrodynamic model may be used to calculate velocity relative to the surrounding air/water. For this method to work, vEBBis needed and can be obtained from GNSS. If position measurements (pEBE) are available, vEBBcan in theory be found by direct differentiation.

Essentially, heading is calculated using the Doppler effect to compare data received from the GNSS and/or GPS to the movement of an object receiving the data. The Doppler effect is produced by a moving source of waves when there is an apparent upward shift in frequency for observers towards whom the source is approaching and an apparent downward shift in frequency for observers from whom the source is receding. Thus, the Doppler effect is the apparent difference between the frequency at which sound or light waves leave a source and that at which they reach an observer, caused by relative motion of the observer and the wave source.

For example, as one approaches a blowing horn, the perceived pitch is higher until the horn is reached and then becomes lower as the blowing horn is passed. In another example, the light from a star, observed from the Earth, shifts toward the red end of the spectrum (lower frequency or longer wavelength) if the Earth and the star are receding from each other and toward the violet end of the spectrum (higher frequency or shorter wavelength) if they are approaching each other.

In another example particular to this application, a traveler is located at (2, 2) on a cartesian graph that overlays a map. The traveler knows that the traveler's velocity is 1, however, the traveler does not know in which direction the traveler is traveling. The traveler moves to (2, 3) on the cartesian graph. After receiving a second set of GNSS and/or GPS data, the traveler can determine that the traveler has moved one unit in the positive y direction or north on a traditional map.

Embodiments of the present invention provide a system and method that ranks the plurality of targeted locations using a number of factors and then sends the ranked targeted locations and the corresponding datasets as an alert notification. Embodiments of the present invention store the ranked targeted locations and the corresponding datasets for future iterative feedback in a public, crowd-sourced, cloud-based database.

Implementation of embodiments of the invention may take a variety of forms, and exemplary implementation details are discussed subsequently with reference to the Figures.

FIG. 1is a functional block diagram illustrating a distributed data processing environment, generally designated100, for recommending targeted locations and optimal times to experience the targeted locations, in accordance with one embodiment of the present invention. In the depicted embodiment, distributed data processing environment100includes server120and user device computing device130, interconnected over network110. Distributed data processing environment100may include additional servers, computers, computing devices, IoT sensors, and other devices not shown.FIG. 1provides only an illustration of one embodiment of the present invention and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

Network110operates as a computing network that can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of the three, and can include wired, wireless, or fiber optic connections. Network110can include one or more wired and/or wireless networks capable of receiving and transmitting data, voice, and/or video signals, including multimedia signals that include voice, data, and video information. In general, network110can be any combination of connections and protocols that will support communications between server120, user computing device130, and other computing devices (not shown) within distributed data processing environment100.

Server120operates to run optimal experience program122and to send and/or store data in database124. In an embodiment, server120can send data from database124to user computing device130. In an embodiment, server120can receive data in database124from user computing device130. In one or more embodiments, server120can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In one or more embodiments, server120can be a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that act as a single pool of seamless resources when accessed within distributed data processing environment100, such as in a cloud computing environment. In one or more embodiments, server120can be a laptop computer, a tablet computer, a netbook computer, a personal computer, a desktop computer, a personal digital assistant, a smart phone, or any programmable electronic device capable of communicating with user computing device130and other computing devices (not shown) within distributed data processing environment100via network110. Server120may include internal and external hardware components, as depicted and described in further detail inFIG. 6.

Optimal experience program122operates to identify a plurality of targeted locations for a user to visit and to determine an optimal time to visit each of the plurality of targeted locations, an optimal weather condition to experience each of the plurality of targeted locations, and an optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. In the depicted embodiment, optimal experience program122is a standalone program. In another embodiment, optimal experience program122may be integrated into another software product, such as a travel agent or travel management software. In an embodiment, a user opts-in to optimal experience program122and sets up a user profile with optimal experience program122. The setup component of optimal experience program122is depicted and described in further detail with respect toFIG. 2. The two main components of optimal experience program122, the pull and push components, are depicted and described in further detail with respect toFIGS. 3 and 4. The operational steps of dataset creation step340of the pull component of optimal experience program122and of dataset creation step415of the push component of optimal experience program122are depicted and described in further detail with respect toFIG. 5. In the depicted embodiment, optimal experience program122resides on server120. In other embodiments, optimal experience program122may reside on user computing device130or on another computing device (not shown), provided that optimal experience program122has access to network110.

Database124operates as a public, crowd-sourced, cloud-based repository for data received, used, and/or generated by optimal experience program122. A database is an organized collection of data. Data includes, but is not limited to, a plurality of user profiles with information input by users during setup about the respective current location of the user and about the locations where the respective user intends to travel to or would like to travel to; user preferences, alert notification preferences, and travel preferences; and any other data received, used, and/or generated by optimal experience program122.

Database124can be implemented with any type of device capable of storing data and configuration files that can be accessed and utilized by server120, such as a hard disk drive, a database server, or a flash memory. In an embodiment, database124is accessed by optimal experience program122to store and/or to access the data. In the depicted embodiment, database124resides on server120. In another embodiment, database124may reside on another computing device, server, cloud server, or spread across multiple devices elsewhere (not shown) within distributed data processing environment100, provided that optimal experience program122has access to database124.

The present invention may contain various accessible data sources, such as database124, that may include personal and/or confidential company data, content, or information the user wishes not to be processed. Processing refers to any operation, automated or unautomated, or set of operations such as collecting, recording, organizing, structuring, storing, adapting, altering, retrieving, consulting, using, disclosing by transmission, dissemination, or otherwise making available, combining, restricting, erasing, or destroying personal and/or confidential company data. Optimal experience program122enables the authorized and secure processing of personal data.

Optimal experience program122provides informed consent, with notice of the collection of personal and/or confidential company data, allowing the user to opt-in or opt-out of processing personal and/or confidential company data. Consent can take several forms. Opt-in consent can impose on the user to take an affirmative action before personal and/or confidential company data is processed. Alternatively, opt-out consent can impose on the user to take an affirmative action to prevent the processing of personal and/or confidential company data before personal and/or confidential company data is processed. Optimal experience program122provides information regarding personal and/or confidential company data and the nature (e.g., type, scope, purpose, duration, etc.) of the processing. Optimal experience program122provides the user with copies of stored personal and/or confidential company data. Optimal experience program122allows the correction or completion of incorrect or incomplete personal and/or confidential company data. Optimal experience program122allows for the immediate deletion of personal and/or confidential company data.

User computing device130operates to run user interface132and is associated with a user. In an embodiment, user computing device130may be an electronic device, such as a laptop computer, a tablet computer, a netbook computer, a personal computer, a desktop computer, a smart phone, or any programmable electronic device capable of running user interface132and communicating (i.e., sending data to and receiving data from) with optimal experience program122via network110. In the depicted embodiment, user computing device130includes an instance of user interface132. User computing device130may include components as described in further detail inFIG. 6.

User interface132operates as a local user interface between optimal experience program122on server120and a user of user computing device130. In some embodiments, user interface132is a graphical user interface (GUI), a web user interface (WUI), and/or a voice user interface (VUI) that can display (i.e., visually) or present (i.e., audibly) text, documents, web browser windows, user options, application interfaces, and instructions for operations sent from optimal experience program122to a user via network110. User interface132can also display or present alert notifications including information (e.g., graphics, text, and/or sound) sent from optimal experience program122to a user via network110. In an embodiment, user interface132is capable of sending and receiving data (i.e., to and from optimal experience program122via network110, respectively).

Through user interface132, a user can opt-in to optimal experience program122; create a user profile; set user preferences, alert notification preferences, and travel preferences; input information about the current location of the user, information about where the user intends to travel to, and information about targeted locations the user would like to visit; request a search be conducted to determine what is the optimal targeted location to visit, when is the optimal time to visit the targeted location, and where is the optimal spot to capture at least one of a photo and a video of the targeted location; and receive automatic alert notifications about recommended targeted locations.

A user preference is a setting that can be customized for a particular user. A set of default user preferences is assigned to each user of optimal experience program122. A user preference editor can be used by the user to update values to set the user preferences. User preferences that can be customized to include, but are not limited to, general user system settings, specific user profile settings for optimal experience program122, alert notification settings, and machine-learned data collection/storage settings. Machine-learned data includes, but is not limited to, data regarding past results of iterations of optimal experience program122and a user's previous response to a notification sent by optimal experience program122. Machine-learned data comes from optimal experience program122self-learning what are appropriate recommendations to make to the user and what will the user's response to the recommendations be through tracked user activity for the purpose of improving each iteration of optimal experience program122to better coincide with how the user would react to each individual alert notification.

FIG. 2is a flowchart, generally designated200, depicting the operational steps for a setup component of optimal experience program122in distributed data processing environment100ofFIG. 1, in accordance with an embodiment of the present invention. In an embodiment, optimal experience program122completes a one-time setup with a user who is looking to visit a targeted location at the optimal time in the optimal weather conditions and to capture at least one of a photo and a video of the targeted location from the optimal spot. The one-time step allows for optimal experience program122to capture relevant information about the user to create a user profile. In an embodiment, optimal experience program122receives a request from the user to opt-in. In an embodiment, optimal experience program122requests information from the user. In an embodiment, optimal experience program122receives the requested information from the user. In an embodiment, optimal experience program122creates a user profile. In an embodiment, optimal experience program122stores the user's profile. It should be appreciated that the process depicted inFIG. 2illustrates one possible iteration of optimal experience program122, which may be repeated for each opt-in request received by optimal experience program122.

In step210, optimal experience program122receives a request from the user to opt-in. In an embodiment, optimal experience program122receives a request from the user to opt-in to optimal experience program122. In an embodiment, optimal experience program122receives a request from the user to opt-in to optimal experience program122through user interface132of user computing device130. By opting-in, the user agrees to share data with database124. For example, traveler A sends a request to opt-in to optimal experience program122through user interface132of user computing device130.

In step220, optimal experience program122requests information from the user. In an embodiment, optimal experience program122requests information from the user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122receiving the request from the user to opt-in, optimal experience program122requests information from the user.

Information requested from the user includes, but is not limited to, information about user preferences (e.g., general user system settings regarding alert notifications, such as for user computing device130); frequency of alert notifications preferences (e.g., an alert notification is sent at a set interval or an alert notification is sent every time optimal experience program122determines it is the optimal time to visit a targeted location); location services preferences (e.g., requesting permission to enable location services on user's computing device to access user's location whether that be limited access to user's location data “while in use” (i.e., only when the user is using the app or approximate location) or full access to user's location data “when it is in the background” (i.e., even when the user is not using the app or precise location); information about points of interest (e.g., restaurants, bars, coffee houses, food trucks, small local neighborhood businesses, malls, clubs, theaters, concert halls, arenas, art galleries, museums, historic landmarks, internationally recognized landmarks, memorials, gardens, parks, zoos, rivers, oceans, other bodies of water, etc.); points of interest preferences (e.g., user indicated five points of interests and must see all five during the user's trip or the user indicated five points of interests but is willing to miss three of the points of interest in order to capture photos of events that only happen at certain times of the day at two of the points of interests); mode of transportation preferences (e.g., foot, bicycle, motorcycle, car, taxi, bus, train, ferry, airplane, etc.); number of travelers with the user; information about the relationship between travelers; and information about the user's budget.

In step230, optimal experience program122receives the requested information from the user. In an embodiment, optimal experience program122receives the requested information from the user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122requesting information from the user, optimal experience program122receives the information from the user.

In step240, optimal experience program122creates a user profile. In an embodiment, optimal experience program122creates a user profile for the user. In an embodiment, optimal experience program122creates a user profile with information input by users during setup regarding the user, as well as user preferences and alert notification preferences. In an embodiment, responsive to optimal experience program122receiving the information from the user, optimal experience program122creates a user profile for the user.

In step250, optimal experience program122stores the user profile. In an embodiment, optimal experience program122stores the user profile in a database, e.g., a public, crowdsourced, cloud-based database, e.g., database124. In an embodiment, responsive to optimal experience program122creating the user profile for the user, optimal experience program122stores the user profile in a database.

FIG. 3is a flowchart, generally designated300, depicting the operational steps for a pull component of optimal experience program122, in accordance with an embodiment of the present invention. In an embodiment, the pull component of optimal experience program122identifies a plurality of targeted location to visit and determines the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. It should be appreciated that the process depicted inFIG. 3illustrates one possible iteration of the process flow, which can be repeated for each request received from a user.

In step310, optimal experience program122receives a request from the user. In an embodiment, optimal experience program122receives a request from the user to conduct a search to identify a plurality of targeted locations to visit and to determine the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. In an embodiment, optimal experience program122receives a request from the user through user interface132of user computing device130. For example, traveler A is visiting the Washington, D.C. area and is planning on sight-seeing. Traveler A sends a request to optimal experience program122to identify a plurality of targeted locations to visit and to determine the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations through user interface132of user computing device130.

In step320, optimal experience program122determines the current location of the user. In an embodiment, optimal experience program122determines the current location of the user using the user's shared real-time location. In an embodiment, responsive to optimal experience program122receiving a request from the user to conduct a search, optimal experience program122determines the current location of the user.

In one or more embodiments, optimal experience program122determines the current location of the user using mobile positioning, a location-based service on user computing device130, that employs information from cellular (i.e., cell tower locations), Wi-Fi® (i.e., crowd-sourced Wi-Fi® hotspot locations), and/or GPS networks. For example, optimal experience program122collects data sent from user computing device130to the cell tower closest to user computing device130in order to determine the current location of the user. For example, optimal experience program122collects data sent from user computing device130to databases of known Wi-Fi® hotspots in order to determine the current location of the user.

The examples of optimal experience program122determining the current location of the user are described herein with individual methods, but it should be noted that optimal experience program122may determine the current location of the user via one or more combinations of the above embodiments.

In step330, optimal experience program122identifies a plurality of targeted locations. In an embodiment, responsive to optimal experience program122determining the current location of the user, optimal experience program122identifies a plurality of targeted locations. In an embodiment, optimal experience program122identifies a plurality of targeted locations for the user to visit by scraping population density data for a given geographical location from a network-based cell phone carrier (i.e., data on the number of users of a given cellular network which is composed of a cell or a geographical zone around a cell phone tower). In an embodiment, optimal experience program122determines how populated a targeted location is based on current population density data and how populated a targeted location will be based on future forecasted population density data. In an embodiment, a geographical location may be represented in terms including, but not limited to, latitude, longitude, and altitude.

For example, traveler A sends a request to optimal experience program122to determine what is the optimal targeted location to visit, when is the optimal time to visit the targeted location, and where is the optimal spot to capture at least one of a photo and a video of the targeted location. In response to this request, optimal experience program122determines the current location of traveler A is Washington, D.C. Optimal experience program122scrapes population density data for the Washington, D.C. area (i.e., 38.9072° N, 77.0369° W). In doing so, optimal experience program122identifies a plurality of targeted locations around the Washington, D.C. area, including the Lincoln Memorial (i.e., 38.8893° N, 77.0502° W), the Lincoln Memorial Reflecting Pool (i.e., 38.8893° N, 77.0447° W), the Washington Monument (i.e., 38.8895° N, 77.0353° W), and the Thomas Jefferson Memorial (i.e., 38.8814° N, 77.0365° W). Further, optimal experience program122determines how populated each of these targeted locations currently are and how populated these targeted locations will be and makes a recommendation to traveler on whether to visit a targeted location now or during a future visit.

In one or more embodiments, optimal experience program122identifies a plurality of targeted locations for the user to visit by scraping data from social media posts in which the plurality of targeted locations are the subject. For example, optimal experience program122scraped a photo traveler A captured of the Lincoln Memorial Reflecting Pool and uploaded to traveler A's social media account.

The examples of optimal experience program122identifying a plurality of targeted locations are described herein with individual methods, but it should be noted that optimal experience program122may identify a plurality of targeted locations via one or more combinations of the above embodiments.

In step340, optimal experience program122creates a dataset for each of the targeted locations identified. The dataset created includes, but is not limited to, the calculated distance between the current location of the user and the targeted location, the anticipated popularity of the targeted location at a specific date and time, the current and forecasted weather at the targeted location, and a set of GPS coordinates and a heading for the optimal photo set up of the targeted location. Step340is described in further detail with respect to flowchart500inFIG. 5. In an embodiment, responsive to optimal experience program122identifying a plurality of targeted locations, optimal experience program122creates a dataset for each of the targeted locations identified.

In step350, optimal experience program122ranks the plurality of targeted locations. In an embodiment, optimal experience program122ranks the plurality of targeted locations using a set of factors, which are weighted based on user preferences. The set of factors used to rank the targeted locations include, but are not limited to, user interest, distance from the current location of the user, route to travel to and from the targeted location, popularity of targeted location, corresponding crowd size, time of day, weather, local business advertising and/or incentives, ADA compliance of targeted location, tourism services, and/or facilities provided by the targeted location (e.g., restrooms, vending machines, water fountains). In an embodiment, responsive to optimal experience program122creating the dataset for each of the targeted locations identified, optimal experience program122ranks the plurality of targeted locations.

In step360, optimal experience program122outputs the plurality of ranked targeted locations and the corresponding datasets as an alert notification. Alert notifications include, but are not limited to, system alert notifications, push notifications, and chat messages. In an embodiment, optimal experience program122outputs the alert notification through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122ranking the plurality of targeted locations, optimal experience program122outputs the plurality of ranked targeted locations and the corresponding datasets as an alert notification.

In step370, optimal experience program122requests feedback from the user. In an embodiment, optimal experience program122requests feedback from the user through user interface132of user computing device130. In an embodiment, optimal experience program122requests feedback regarding the output of the plurality of ranked targeted locations and the corresponding datasets to the user in step360. In an embodiment, responsive to outputting the plurality of ranked targeted locations and the corresponding datasets to the user, optimal experience program122requests feedback from the user.

In step380, optimal experience program122receives feedback from the user. In an embodiment, optimal experience program122receives feedback from the user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122requesting feedback from the user, optimal experience program122receives the feedback from the user.

In step390, optimal experience program122stores the feedback. In an embodiment, optimal experience program122stores the feedback received from the user. In an embodiment, optimal experience program122stores the feedback in a database, e.g., database124. In an embodiment, optimal experience program122uses the feedback to improve optimal experience program122in identifying locations in step330. In an embodiment, optimal experience program122improves optimal experience program122using a recommendation system. Recommendation systems include, but are not limited to, reinforcement learning, machine learning, collaborative filtering, matrix decomposition, clustering, and/or any deep learning approach. In an embodiment, responsive to optimal experience program122receiving feedback from the user, optimal experience program122stores the feedback.

In some embodiments, optimal experience program122may perform steps370,380, and390as optional steps. Through tracked user activity and user responses to requests sent in step370, optimal experience program122utilizes reinforcement learning to improve with each iteration of optimal experience program122to better coincide with how the user would react to each individual alert notification.

FIG. 4is a flowchart, generally designated400, depicting the operational steps for a push component of optimal experience program122, in accordance with an embodiment of the present invention. In an embodiment, the push component of optimal experience program122identifies a plurality of targeted location to visit and determines the optimal time to visit each of the plurality of targeted locations, the optimal weather condition to experience each of the plurality of targeted locations, and the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations. In an embodiment, optimal experience program122runs iteratively as the user travels to new locations and/or as the public, crowdsourced, cloud-based database is updated with new data. It should be appreciated that the process depicted inFIG. 4illustrates one possible iteration of the process flow.

In step405, optimal experience program122determines the current location of the user. In an embodiment, optimal experience program122determines the current location of the user using the user's shared real-time location.

In one or more embodiments, optimal experience program122determines the current location of the user using mobile positioning, a location-based service on user computing device130, that employs information from cellular (i.e., cell tower locations), Wi-Fi® (i.e., crowd-sourced Wi-Fi® hotspot locations), and/or GPS networks. For example, optimal experience program122collects data sent from user computing device130to the cell tower closest to user computing device130in order to determine the current location of the user. For example, optimal experience program122collects data sent from user computing device130to databases of known Wi-Fi® hotspots in order to determine the current location of the user.

The examples of optimal experience program122determining the current location of the user are described herein with individual methods, but it should be noted that optimal experience program122may determine the current location of the user via one or more combinations of the above embodiments.

In decision410, optimal experience program122determines whether the user input one or more points of interest preferences. In an embodiment, optimal experience program122determines whether the user input one or more points of interest preferences in step230ofFIG. 2by checking the user profile for the user. In an embodiment, optimal experience program122determines whether the user input one or more points of interest preferences including, but not limited to, information about the point(s) of interest the user would like to visit while in a particular area and information on how important it is that the user visit each point of interest. In an embodiment, responsive to optimal experience program122determining the user's location, optimal experience program122determines whether the user input points of interest preferences.

If optimal experience program122determines the user input one or more points of interest preferences (decision410, YES branch), then optimal experience program122creates a dataset for each of the point(s) of interest (also referred to as “targeted location(s)) (step415).

In step415, optimal experience program122creates a dataset for a targeted location. The dataset created includes, but is not limited to, the calculated distance between the current location of the user and the targeted location, the anticipated popularity of the targeted location at a specific date or time, the current and forecasted weather at the targeted location, and a set of GPS coordinates and a heading for the optimal photo set up of the targeted location. Step415is described in further detail with respect to flowchart500inFIG. 5. In an embodiment, responsive to optimal experience program122determining the user input points of interest preferences, optimal experience program122creates a dataset.

In step420, optimal experience program122monitors for data. In an embodiment, optimal experience program122monitors for data including, but not limited to, the distance between the current location of the user and the targeted location, the current and anticipated popularity of the targeted location, and/or the current and forecasted weather at the targeted location. In an embodiment, optimal experience program122stores any collected data in a database, e.g., database124. In an embodiment, responsive to optimal experience program122creating a dataset, optimal experience program122monitors for data.

In decision425, optimal experience program122determines whether a pre-set threshold has been met. In an embodiment, optimal experience program122determines whether a pre-set threshold for outputting the targeted location and the corresponding dataset to the user has been met. In an embodiment, optimal experience program122determines whether a pre-set threshold has been met by assessing the data collected in step420. In some embodiments, the threshold for outputting the targeted location and the corresponding dataset to the user is pre-configured by the user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122monitoring for data, optimal experience program122determines whether a pre-set threshold has been met.

In one or more embodiments, optimal experience program122pre-configures the threshold for outputting the targeted location and the corresponding dataset to the user to be triggered prior to a peak experience time. In an embodiment, optimal experience program122pre-configures the threshold for outputting the targeted location and the corresponding dataset to the user to be triggered prior to a peak experience time when the current conditions of the targeted location match the historically highest rated conditions (i.e., optimal weather condition, optimal time of day, etc.) of the targeted location and when the user is located within a set distance from the targeted location. For example, the weather at the Golden Gate Bridge is often extremely foggy, a sub-optimal weather condition. The threshold for optimal experience program122outputting an alert notification is pre-configured to be triggered when the current and/or the forecasted weather data for Golden Gate Bridge shows little to no fog, an optimal weather condition, and when the user is located in the San Francisco area of California.

In one or more embodiments, optimal experience program122pre-configures the threshold for outputting the targeted location and the corresponding dataset to the user to be triggered prior to a rare occurrence. For example, optimal viewing of the Northern Lights in Iceland occurs when there are more hours of darkness in a day and when there is more solar activity in the sky. The threshold for optimal experience program122outputting an alert notification is pre-configured to be triggered when the current and/or the forecasted weather data shows that these optimal conditions will occur in the near future.

If optimal experience program122determines the pre-set threshold has been met (decision425, YES branch), then optimal experience program122outputs the targeted location and the corresponding dataset as an alert notification (step430). If optimal experience program122determines the pre-set threshold has not been met (decision425, NO branch), then optimal experience program122continues to monitor for data (step420).

In step430, optimal experience program122outputs the targeted location and the corresponding dataset as an alert notification. Alert notifications include, but are not limited to, system alert notifications, push notifications, and chat messages. In an embodiment, optimal experience program122outputs the alert notification to a user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122determining a pre-set threshold has been met, optimal experience program122outputs the targeted location and the corresponding dataset as an alert notification.

Returning to decision410, if optimal experience program122determines the user has not set one or more points of interest preferences (decision410, NO branch), then optimal experience program122identifies a plurality of targeted locations for the user to visit (step435).

In step435, optimal experience program122identifies a plurality of targeted locations. In an embodiment, optimal experience program122identifies a plurality of targeted locations for the user to visit. In an embodiment, responsive to optimal experience program122determining whether the user input point of interest preferences, optimal experience program122identifies a plurality of targeted locations. In an embodiment, optimal experience program122identifies a plurality of targeted locations for the user to visit by scraping population density data for a given geographical location from a network-based cell phone carrier. In an embodiment, optimal experience program122determines how populated a targeted location is based on current population density data and how populated a targeted location will be based on future forecasted population density data. In an embodiment, a geographical location may be represented in terms including, but not limited to, latitude, longitude, and altitude.

For example, traveler A sends a request to optimal experience program122to determine what is the optimal targeted location to visit, when is the optimal time to visit the targeted location, and where is the optimal spot to capture at least one of a photo and a video of the targeted location. In response to this request, optimal experience program122determines the current location of traveler A is Washington, D.C. Optimal experience program122scrapes population density data for the Washington, D.C. area (i.e., 38.9072° N, 77.0369° W). In doing so, optimal experience program122identifies a plurality of targeted locations around the Washington, D.C. area, including the Lincoln Memorial (i.e., 38.8893° N, 77.0502° W), the Lincoln Memorial Reflecting Pool (i.e., 38.8893° N, 77.0447° W), the Washington Monument (i.e., 38.8895° N, 77.0353° W), and the Thomas Jefferson Memorial (i.e., 38.8814° N, 77.0365° W). Further, optimal experience program122determines how populated each of these targeted locations currently are and how populated these targeted locations will be and makes a recommendation to traveler on whether to visit a targeted location now or during a future visit.

In one or more embodiments, optimal experience program122identifies a plurality of targeted locations for the user to visit by scraping data from social media posts in which the plurality of targeted locations are the subject. For example, optimal experience program122scraped a photo traveler A captured of the Lincoln Memorial Reflecting Pool and uploaded to traveler A's social media account.

The examples of optimal experience program122identifying a plurality of targeted locations are described herein with individual methods, but it should be noted that optimal experience program122may identify a plurality of targeted locations via one or more combinations of the above embodiments.

In step440, optimal experience program122creates a dataset for each of the targeted locations identified. The dataset created includes, but is not limited to, the calculated distance between the current location of the user and the targeted location, the anticipated popularity of the targeted location at a specific date or time, the current and forecasted weather at the targeted location, and a set of GPS coordinates and a heading for the optimal photo set up of the targeted location. Step440is described in further detail with respect to flowchart500inFIG. 5. In an embodiment, responsive to optimal experience program122identifying a plurality of targeted locations, optimal experience program122creates a dataset.

In step445, optimal experience program122ranks the plurality of targeted locations. In an embodiment, optimal experience program122ranks the plurality of targeted locations using a set of factors, which are weighted based on user preferences. The set of factors used to rank the targeted locations include, but are not limited to, user interest, distance from the current location of the user, route to travel to and from the targeted location, popularity of targeted location, corresponding crowd size, time of day, weather, local business advertising and/or incentives, ADA compliance of targeted location, and tourism services and/or facilities provided by the targeted location (e.g., restrooms, vending machines, water fountains). In an embodiment, responsive to optimal experience program122creating a dataset for each of the targeted locations identified, optimal experience program122ranks the plurality of targeted locations.

In step450, optimal experience program122outputs the plurality of ranked targeted locations and the corresponding datasets as an alert notification. Alert notifications include, but are not limited to, system alert notifications, push notifications, and chat messages. In an embodiment, optimal experience program122outputs the alert notification through user interface132of user computing device130. In an embodiment, responsive to optimal experience program122determining a pre-set threshold has been met, optimal experience program122outputs the plurality of ranked targeted locations and the corresponding datasets as an alert notification.

In step455, optimal experience program122requests feedback from the user. In an embodiment, optimal experience program122requests feedback from the user through user interface132of user computing device130. In an embodiment, optimal experience program122requests feedback regarding the output of the plurality of ranked targeted locations and the corresponding datasets sent to the user in step350. In an embodiment, responsive to optimal experience program122outputting the plurality of ranked targeted locations and the corresponding datasets to the user as an alert notification, optimal experience program122requests feedback from the user. In another embodiment, responsive to optimal experience program122outputting the targeted location and the corresponding dataset to the user as an alert notification, optimal experience program122requests feedback from the user.

In step460, optimal experience program122receives feedback from the user. In an embodiment, optimal experience program122receives feedback from the user through user interface132of user computing device130. In an embodiment, responsive to optimal experience program requesting feedback from the user, optimal experience program122receives the feedback from the user.

In step465, optimal experience program122stores the feedback. In an embodiment, optimal experience program122stores the feedback received from the user. In an embodiment, optimal experience program122stores the feedback received in a database, e.g., database124. In an embodiment, optimal experience program122uses the feedback to improve optimal experience program122in identifying locations in step430. In an embodiment, optimal experience program122improves optimal experience program122using a recommendation system. Recommendation systems include, but are not limited to, reinforcement learning, machine learning, collaborative filtering, matrix decomposition, clustering, and/or any deep learning approach. In an embodiment, responsive to optimal experience program122receiving feedback from the user, optimal experience program122stores the feedback.

In some embodiments, optimal experience program122may perform steps455,460, and465as optional steps. Through tracked user activity and user responses to requests sent in step455, optimal experience program122can improve with each iteration of optimal experience program122to better coincide with how the user would react to each individual alert notification.

FIG. 5is a flowchart, generally designated500, depicting, in greater detail, the operational steps of dataset creation step340of the pull component of optimal experience program122and of dataset creation step415of the push component of optimal experience program122in distributed data processing environment100, in accordance with an embodiment of the present invention. In the depicted embodiment, dataset creation step340and dataset creation step415operate to create a dataset for each identified targeted location that includes, but is not limited to, the calculated distance between the current location of the user and the targeted location, the anticipated popularity of the targeted location at a specific date and/or time of day, the expected weather pattern at a specific date and/or time of day, and the approximate geographical location from where the traveler can capture at least one of a photo and a video of the targeted location. It should be appreciated that the process depicted inFIG. 5illustrates one possible iteration of the possible iteration of the process flow.

In step505, optimal experience program122calculates the distance between the current location of the user and each of the plurality of targeted locations. In an embodiment, optimal experience program122calculates the distance between the current location of the user and each of the plurality of targeted locations by mapping one or more routes the user can travel by one or more modes of transportation, including, but not limited to, foot, bicycle, motorcycle, car, taxi, ride share, bus, train, ferry, and airplane. In an embodiment, optimal experience program122calculates the distance between the current location of the user and each of the plurality of targeted locations by mapping one or more routes the user can travel, including, but not limited to, the route with the shortest travel time, the route with the shortest distance traveled, the route avoiding toll roads, the route avoiding freeways, the route avoiding ferries, and the route avoiding difficult intersections. In an embodiment, optimal experience program122calculates the distance between the current location of the user and each of the plurality of targeted locations in units of length including, but not limited to, kilometers, miles, nautical miles, and the initial compass heading angle between the origin and the destination.

In step510, optimal experience program122scrapes data from social media posts associated with the targeted location. In an embodiment, optimal experience program122scrapes data from social media posts in which the targeted location is the subject. In an embodiment, optimal experience program122scrapes data from social media posts with high engagement. In an embodiment, optimal experience program122scrapes data from social media posts on social media platforms, including, but not limited to, social networking sites, micro blogging sites, photo sharing sites, and video sharing sites. In an embodiment, optimal experience program122scrapes data from social media posts using a scraping tool that is capable of extracting data. Extracted data includes, but is not limited to, images, videos, and text. In an embodiment, responsive to optimal experience program122calculating the distance between the current location of the user and one of the plurality of targeted locations, optimal experience program122scrapes data from social media posts associated with the targeted locations.

In step515, optimal experience program122selects one of a plurality of extracted photos. In an embodiment, optimal experience program122selects one of a plurality of extracted photos that was captured at the optimal time of day in the optimal weather conditions and from the optimal distance and angle to capture the optimal photo of the targeted location (i.e., the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations). In an embodiment, optimal experience program122selects one of a plurality of extracted photos from which dataset points of the optimal spot to capture at least one of a photo and a video of each of the plurality of targeted locations can be obtained. In an embodiment, responsive to optimal experience program scraping data from social media posts, optimal experience program122selects one of a plurality of extracted photos.

In decision520, optimal experience program122determines whether the photo selected in decision520has a date stamp and a time stamp. For example, traveler B captured a photo of the Lincoln Memorial Reflecting Pool at 6:30 P.M. on Jun. 30, 2020, uploaded the photo to traveler B's social media account, and added a location tag as being at the Lincoln Memorial Reflecting Pool. Responding to traveler A's request, optimal experience program122scrapes traveler B's photo from traveler B's social media account. Optimal experience program122determines the photo traveler B captured is date stamped Jun. 30, 2020 and time stamped 6:30 P.M.

If optimal experience program122determines the photo has a date stamp and a time stamp (decision520, YES branch), then optimal experience program122proceeds to decision530, during which it is decided whether the weather conditions are ascertainable from the selected photo. If optimal experience program122determines the photo does not have a date stamp and a time stamp (decision520, NO branch), then optimal experience program122proceeds to step525during which optimal experience program122determines the date and the time the photo was selected.

In step525, optimal experience program122determines the date and the time the selected photo was taken. In an embodiment, optimal experience program122determines the date and the time the selected photo was taken from a date stamp and a time stamp on the photo. For example, traveler B captured a photo of the Lincoln Memorial Reflecting Pool at 6:30 P.M. on Jun. 30, 2020, uploaded the photo to traveler B's social media account, and added a location tag as being at the Lincoln Memorial Reflecting Pool. While responding to traveler A's request, optimal experience program122scrapes traveler B's photo from traveler B's social media account and determines the date and the time traveler B's photo was taken from a date stamp and a time stamp on the photo.

In one or more embodiments, optimal experience program122determines the time the selected photo was taken using the lunar cycle when the date the photo was taken is known. For example, traveler B captured a photo of the Lincoln Memorial Reflecting Pool, uploaded the photo to traveler B's social media account, and tagged the Lincoln Memorial Reflecting Pool. The photo traveler B captured is date stamped Jun. 30, 2020 but is not time stamped. Responding to traveler A's request, optimal experience program122scrapes traveler B's photo from traveler B's social media account. Using the date stamped on the photo scraped from traveler A's social media account, optimal experience program122determines that, on this day, the moon was in a Waxing Gibbous phase and nearly 74% of the moon was illuminated. It is known that in this phase, the moon rose in the east at 3:56 P.M., was at meridian at 9:27 P.M., and set in the eastern sky at 2:17 A.M. Using this information, optimal experience program122determines traveler B's photo was captured on Jun. 30, 2020 around 6:30 P.M.

In one or more embodiments, optimal experience program122determines the time the selected photo was taken using the solar cycle (i.e., the known path of travel of the sun) when the date the photo was taken is known. For example, traveler B captured a photo of the Lincoln Memorial Reflecting Pool, uploaded the photo to traveler B's social media account, and tagged the Lincoln Memorial Reflecting Pool. The photo traveler B captured is date stamped Jan. 20, 2021 but is not time stamped. Responding to traveler A's request, optimal experience program122scrapes traveler B's photo from traveler B's social media account. Using the date stamped on the photo scraped from traveler A's social media account, optimal experience program122determines that, on this day, the sun was close to or at its culmination (i.e., its highest point) in Washington, D.C. on Jan. 20, 2021 at 12:19 P.M.

The examples of optimal experience program122determining the date and the time the selected photo was taken are described herein with individual methods, but it should be noted that optimal experience program122may determine the date and the time the selected photo was taken via one or more combinations of the above embodiments.

In decision530, optimal experience program122determines whether the weather conditions are ascertainable from the selected photo. If optimal experience program122determines the weather conditions are ascertainable from the selected photo (decision530, YES branch), then optimal experience program122proceeds to decision540, during which it is determined whether the selected photo has GPS coordinates associated with it. If optimal experience program122determines the weather conditions are not ascertainable from the selected photo (decision530, NO branch), then optimal experience program122proceeds to step535, during which optimal experience program122determines the current and forecasted weather data of the targeted location.

In step535, optimal experience program122determines the weather conditions for the targeted location. Weather conditions includes, but are not limited to, current, forecasted, and seasonal weather conditions. In an embodiment, optimal experience program122determines current and forecasted weather conditions for the targeted location from known weather data sources. Weather conditions include, but are not limited to, real-time observational data and remotely sensed imagery data of air temperature, atmospheric (barometric) pressure, humidity, precipitation, solar radiation, and wind. Weather data sources include, but are not limited to, the National Weather Service (NWS), the Meteorological Simulation Data Ingest System (MADIS), and the Parameter-Elevation Regressions on Independent Slopes Model (PRISM).

In an embodiment, optimal experience program122determines seasonal weather conditions for the targeted location from photos scraped from social media posts in which the targeted location is the subject. In an embodiment, optimal experience program122scrapes photos from social media posts in which the targeted location is the subject. In an embodiment, optimal experience program122categorizes the scraped photos that have date stamps into weather conditions (e.g., sunny, cloudy, windy, snowy, and rainy). In an embodiment, optimal experience program122stores the scraped and categorized photos in a database, e.g., database124.

In decision540, optimal experience program122determines whether the selected photo has GPS coordinates associated with it. If optimal experience program122determines the selected photo has GPS coordinates associated with it (decision540YES branch), then optimal experience program122stores the dataset in a database, e.g., database124(step555). If optimal experience program122determines the selected photo does not have GPS coordinates associated with it (decision540, NO branch), then optimal experience program122proceeds to step545, during which optimal experience program122assigns a set of GPS coordinates to the selected photo.

In step545, optimal experience program122assigns a set of GPS coordinates to the selected photo. In an embodiment, optimal experience program122assigns the set of GPS coordinates that were captured when the selected photo was taken and stored as data in EXIF format by the user's phone and/or camera. For example, traveler B captured a photo of the Lincoln Memorial Reflecting Pool while standing on the steps of the Lincoln Memorial. Along with the photo, traveler B's phone captured the date and time of when the photo was taken and the GPS coordinates of where traveler B was located when taking the photo. Traveler B's phone stored this data in EXIF format. Accordingly, optimal experience program122assigned the GPS coordinates of traveler B, 38.8893° N, 77.0502° W, to traveler B's photo.

In one or more embodiments, optimal experience program122assigns a set of GPS coordinates to the selected photo using geo-spatial information extracted from the scraped photo. The geo-spatial information is based on celestial information, including, but not limited to, the elevation of the sun and time information.

The examples of optimal experience program122assigning a set of GPS coordinates to the selected photo are described herein with individual methods, but it should be noted that optimal experience program122may assign a set of GPS coordinates to the selected photo via one or more combinations of the above embodiments.

In step550, optimal experience program122calculates the heading of the approximate geographical location of the selected photo. In an embodiment, optimal experience program122calculates the heading of the approximate geographical location of the selected photo using the Doppler effect when comparing data received from a GNSS and/or GPS with the movement of an object receiving the data.

In step555, optimal experience program122stores the dataset. In an embodiment, optimal experience program122stores the dataset in a database, e.g., database124. In an embodiment, responsive to optimal experience program122creating the dataset, optimal experience program122uses the dataset to create a list of ranked targeted locations inFIG. 3step340and inFIG. 4step415.

In decision560, optimal experience program122determines whether a dataset needs to be created for another targeted location. If optimal experience program122determines a dataset needs to be created for another targeted location (decision560, YES branch), then optimal experience program122proceeds to step505. If optimal experience program122determines a dataset does not need to be created for another targeted location (decision560, NO branch), then optimal experience program122ends.

FIG. 6is a block diagram of the components of computing device600, suitable for server120and/or user computing device130within distributed data processing environment100ofFIG. 1, in accordance with an embodiment of the present invention. It should be appreciated thatFIG. 6provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments can be implemented. Many modifications to the depicted environment can be made.

Computing device600includes communications fabric602, which provides communications between cache616, memory606, persistent storage608, communications unit610, and input/output (I/O) interface(s)612. Communications fabric602can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric602can be implemented with one or more buses or a crossbar switch.

Memory606and persistent storage608are computer readable storage media. In this embodiment, memory606includes random access memory (RAM). In general, memory606can include any suitable volatile or non-volatile computer readable storage media. Cache616is a fast memory that enhances the performance of computer processor(s)604by holding recently accessed data, and data near accessed data, from memory606.

Programs may be stored in persistent storage608and in memory606for execution and/or access by one or more of the respective computer processors604via cache616. In an embodiment, persistent storage608includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage608can include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

Communications unit610, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit610includes one or more network interface cards. Communications unit610may provide communications through the use of either or both physical and wireless communications links. Programs may be downloaded to persistent storage608through communications unit610.

I/O interface(s)612allows for input and output of data with other devices that may be connected to server120and/or user computing device130. For example, I/O interface612may provide a connection to external devices618such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External devices618can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention can be stored on such portable computer readable storage media and can be loaded onto persistent storage608via I/O interface(s)612. I/O interface(s)612also connect to a display620.