Hello, I'm trying to cycle over some vectors (lat,lon,emissions) of irregularly spaced lat/lon spots, and values. I need to sum the values each contributing to grid on a regular lat lon grid.
This is what I have presently, but it is too slow. Is there a more efficient way to do this? I would prefer not to create an external module (f2py, cython) unless there is really no way to make this more efficient... it's the looping through the grid I guess that takes so long. Thanks, john def grid_emissions(lon,lat,emissions,grid.dx, grid.dy, grid.outlat0, grid.outlon0, grid.nxmax, grid.nymax): """ sample the emissions into a grid to fold into model output """ dx = grid.dxout dy = grid.dyout # Generate a regular grid to fill with the sum of emissions xi = np.linspace(grid.outlon0, grid.outlon0+(grid.nxmax*grid.d), grid.nxmax) yi = np.linspace(grid.outlat0, grid.outlat0+(grid.nymax*grid.dy), grid.nymax) X, Y = np.meshgrid(yi, xi) Z = np.zeros(X.shape) for i,x in enumerate(xi): for j,y in enumerate(yi): Z[i,j] = np.sum( emissions[\ np.where(((lat>y-dy) & (lat<y+dy)) & ((lon>x-dx) & (lon<x+dx)))[0]]) return Z _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion