1. A method, comprising: receiving phenomenon data for at least one moving phenomenon that affects travel on at least one roadway; based on the phenomenon data, determining an impact distribution for the phenomenon over a plurality of phenomenon cells and generating corresponding phenomenon impact distribution data; storing the phenomenon impact distribution data to a functional data structure; for at least one vehicle, determining a plurality of candidate routes for the vehicle to reach an intended destination and, for each of the plurality of candidate routes: determining whether the candidate route intersects with at least one of the plurality of phenomenon cells impacted by the phenomenon; responsive to determining that the candidate route intersects with at least one of the plurality of phenomenon cells impacted by the phenomenon, initializing a vehicle simulation agent for that vehicle and that candidate route, the vehicle simulation agent simulating travel of the vehicle on the candidate route at each of a plurality of future time intervals; using the vehicle simulation agent, for each of the plurality of future time intervals in which the vehicle is predicted to be in a respective cell impacted by the phenomenon, determining, using a processor, an impact of the phenomenon on the vehicle based on the phenomenon impact distribution data; aggregating data indicating the impact of the phenomenon on the vehicle in each of a plurality of phenomenon cells with which the candidate route intersects; generating normalized phenomenon impact data by normalizing the aggregated data to a value within a particular range between a minimum value and a maximum value; and outputting the normalized phenomenon impact data indicating the impact of the phenomenon on travel of the vehicle if the vehicle were to travel along the respective the route.