Distances#
Distance objects can by initiated with an existing trajectory object or by loading saved distance data from earlier calculations. We will use the Traj object from earlier.
Parameter r is a cut-off radius to limit computational cost of distance calculations and k is the scaling parameter (vertical distances will be scaled by k). Both can be changed later on, too.
from datetime import datetime
from GeoCS import Dist
D = Dist(data_path=start_date.strftime("./dists/%Y%m%d_%H/"), r=1e5, k=15, traj_data=T)
D.r = 1e4
Since distance calculations scale quadratically (worst-case) with the number of points, you can either calculate/load the distance and save them as an attribute or only calculate/load them once required. The calc_or_load function calculates the point-wise distances only if there is no data saved for the respective timestep. You can call it with an integer (timestep) or with a datetime (date).
D_mat = D.calc_or_load(timestep=0)
D.save_mat(D_mat, D.mat_paths[0])
To calculate/load all data at once, simply do
D.save()
D.load()
D.mats
The defaul plot option is a 2d histogram as a heatmap, showing the frequency of distances across the timesteps.
D.plot()