#/AGOS/PROGRAMS/ANT/Versions/26.04.2015/shapefiles/aus.shp" t0 = dt.datetime.now() #----------------------------------------------------------------------------- # INITIALISE CLASS STATES #----------------------------------------------------------------------------- # Generate InShape class SHAPE = InShape(shape_path) # Create shapely polygon from imported shapefile UNIQUE_SHAPE = SHAPE.shape_poly() print type(UNIQUE_SHAPE) # Generate InPoly class INPOLY = InPoly(shape_path) GEODESIC = Geodesic() COORDS = Coordinates() INPOLY = InPoly(shape_path) POLY_NODES = INPOLY.poly_nodes() # decluster the points to desired specifications. coords = COORDS.decluster(inputs=coords, degree_dist=0.5) lonmin, lonmax = np.floor(min(coords[:, 0])), np.ceil(max(coords[:, 0])) latmin, latmax = np.floor(min(coords[:, 1])), np.ceil(max(coords[:, 1])) print lonmin, lonmax, latmin, latmax plt.figure() plt.scatter(coords[:, 0], coords[:, 1]) plt.show()
if show: plt.figure() plt.scatter(lons, lats) plt.show() #----------------------------------------------------------------------------- # GENERATE SECOND SET OF VARIABLES AND STATES #----------------------------------------------------------------------------- lonmin, lonmax = np.floor(min(coords[:, 0])), np.ceil(max(coords[:, 0])) latmin, latmax = np.floor(min(coords[:, 1])), np.ceil(max(coords[:, 1])) print lonmin, lonmax, latmin, latmax kappa = [np.vstack([[coord1[0],coord1[1],coord2[0],coord2[1]]\ for coord2 in coords]) for coord1 in coords] GEODESIC = Geodesic(km_point=km_points) def spread_paths(coord_list): return GEODESIC.fast_paths(coord_list) t0 = datetime.datetime.now() pool = mp.Pool() paths = pool.map(spread_paths, kappa) pool.close() pool.join() t1 = datetime.datetime.now() print t1 - t0 paths = GEODESIC.combine_paths(paths)
#plt.show() #----------------------------------------------------------------------------- # GENERATE SECOND SET OF VARIABLES AND STATES #----------------------------------------------------------------------------- ideal_path = 'ideal_coordinates.pickle' #if no paths have been done before, start afresh! #if dataless: # coords = Dataless.locs_from_dataless(dataless_path) # original_coords = coords #elif os.path.exists(ideal_path): # f = open(name=ideal_path, mode='rb') # coords = pickle.load(f) # f.close() GEOD = Geodesic() coords = cluster_points lons, lats = coords[:,0], coords[:,1] dists = [] for lon1, lat1 in zip(lons, lats): for lon2, lat2 in zip(lons, lats): dists.append(GEOD.haversine(lon1, lat1, lon2, lat2)) for i in dists: print i print "Min. Interstation Distance: ", np.min(dists)
coords = pickle.load(f) f.close() coords=cluster_points lonmin, lonmax = np.floor(min(coords[:,0])), np.ceil(max(coords[:,0])) latmin, latmax = np.floor(min(coords[:,1])), np.ceil(max(coords[:,1])) print lonmin,lonmax,latmin,latmax kappa = [np.vstack([[coord1[0],coord1[1],coord2[0],coord2[1]]\ for coord2 in coords]) for coord1 in coords] GEODESIC = Geodesic() def spread_paths(coord_list): return GEODESIC.fast_paths(coord_list) t0 = datetime.datetime.now() pool = mp.Pool() paths = pool.map(spread_paths, kappa) pool.close() pool.join() t1 = datetime.datetime.now() print t1-t0 counter, counter2 = 0, 0 #cd Desktop/Link\ to\ SIMULATIONS/Network_Tracks/smarter_model/
#plt.show() #----------------------------------------------------------------------------- # GENERATE SECOND SET OF VARIABLES AND STATES #----------------------------------------------------------------------------- ideal_path = 'ideal_coordinates.pickle' #if no paths have been done before, start afresh! #if dataless: # coords = Dataless.locs_from_dataless(dataless_path) # original_coords = coords #elif os.path.exists(ideal_path): # f = open(name=ideal_path, mode='rb') # coords = pickle.load(f) # f.close() GEOD = Geodesic() coords = cluster_points lons, lats = coords[:, 0], coords[:, 1] dists = [] for lon1, lat1 in zip(lons, lats): for lon2, lat2 in zip(lons, lats): dists.append(GEOD.haversine(lon1, lat1, lon2, lat2)) for i in dists: print i print "Min. Interstation Distance: ", np.min(dists) print "Avg. Interstation Distance: ", np.average(dists) print "Max. Interstation Distance: ", np.max(dists)