![]() ![]() Buildings arranged on a ‘checkerboard’ grid with smaller contiguous open spaces, a configuration with some open space on one of the sides of the roadway at all locations, resulted in the lowest average concentrations for almost all wind directions. ![]() Holding volume/surface area constant, tall buildings clustered together with larger open spaces between buildings resulted in substantially lower pollutant concentrations than buildings in rows. We found that ground-level open space reduces street-level pollutant concentrations. We evaluated the effects of several built environment designs, changing building heights and spacing while holding total built environment volumes constant. The model was capable of reasonably reproducing the complex ensemble mean 3D air flow patterns and pollutant concentrations in urban areas at fine spatial scale. We examined the effects of different built environment designs on the concentrations of street-level ultrafine particles (UFP) at the scale of several blocks using the Quick Urban and Industrial Complex (QUIC) numerical modeling system. The design of the built environment plays a critical role in the dispersion of pollutants at street level after normalizing for traffic, differences of a factor of ~5 have been observed between urban neighborhoods with different built environment characteristics. Simulating multiple random walks in the same 3D space # Define parameters for the walk dims = 3 n_runs = 10 step_n = 1000 step_set = runs = np.arange(n_runs) step_shape = (step_n,dims) # Plot fig = plt.figure(figsize=(10,10),dpi=250) ax = fig.add_subplot(111, projection=’3d’) ax.grid(False) ax. = ax. = ax. = False ax.set_xlabel(‘X’) ax.set_ylabel(‘Y’) ax.set_zlabel(‘Z’) for i, col in zip(runs, colors): # Simulate steps in 3D origin = np.random.randint(low=-10,high=10,size=(1,dims)) steps = np.random.choice(a=step_set, size=step_shape) path = np.concatenate().cumsum(0) start = path stop = path # Plot the path ax.scatter3D(path, path, path, c=col,alpha=0.15,s=1) ax.plot3D(path, path, path, c=col, alpha=0.25,lw=0.25) ax.plot3D(start, start, start, c=col, marker=’+’) ax.plot3D(stop, stop, stop, c=col, marker=’o’) plt.title(‘3D Random Walk - Multiple runs’) plt.savefig(‘plots/random_walk_3d_multiple_runs.Traffic-related pollutant concentrations are typically much higher in near-roadway microenvironments, and pedestrian and resident exposures to air pollutants can be substantially increased by the short periods of time spent on and near roadways. An interesting aspect of 3 dimensional random walk is that even though the starting points are close together, as time progresses, the objects spread out. Ī few cells/particles moving without any sustained directional force would show a trajectory like this. ![]() Each random walk represents motion of a point source starting out at the same time with starting point set at points chosen from (x, y, z) ⋲. Now we simulate multiple random walks in 3D. # Define parameters for the walk dims = 3 step_n = 1000 step_set = origin = np.zeros((1,dims)) # Simulate steps in 3D step_shape = (step_n,dims) steps = np.random.choice(a=step_set, size=step_shape) path = np.concatenate().cumsum(0) start = path stop = path # Plot the path fig = plt.figure(figsize=(10,10),dpi=200) ax = fig.add_subplot(111, projection=’3d’) ax.grid(False) ax. = ax. = ax. = False ax.set_xlabel(‘X’) ax.set_ylabel(‘Y’) ax.set_zlabel(‘Z’) ax.scatter3D(path, path, path, c=’blue’, alpha=0.25,s=1) ax.plot3D(path, path, path, c=’blue’, alpha=0.5, lw=0.5) ax.plot3D(start, start, start, c=’red’, marker=’+’) ax.plot3D(stop, stop, stop, c=’black’, marker=’o’) plt.title(‘3D Random Walk’) plt.savefig(‘plots/random_walk_3d.png’,dpi=250) A particle moving on the surface of a fluid exhibits 2D random walk and shows a trajectory like below. We start at origin (x=0,y=0) and take random steps in each direction giving us 9 possible directions for movement at each step (∆x, ∆y ) ⋲ : # Define parameters for the walk dims = 1 step_n = 10000 step_set = origin = np.zeros((1,dims)) # Simulate steps in 1D step_shape = (step_n,dims) steps = np.random.choice(a=step_set, size=step_shape) path = np.concatenate().cumsum(0) start = path stop = path # Plot the path fig = plt.figure(figsize=(8,4),dpi=200) ax = fig.add_subplot(111) ax.scatter(np.arange(step_n+1), path, c=’blue’,alpha=0.25,s=0.05) ax.plot(path,c=’blue’,alpha=0.5,lw=0.5,ls=’ - ‘,) ax.plot(0, start, c=’red’, marker=’+’) ax.plot(step_n, stop, c=’black’, marker=’o’) plt.title(‘1D Random Walk’) plt.tight_layout(pad=0) plt.savefig(‘plots/random_walk_1d.png’,dpi=250) ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |