if __name__ == "__main__": print("Visualization of correlation between neighbors 1.0") print("Loading data ...") gf = GeoField() gf.load("data/pres.mon.mean.nc", 'pres') gf.transform_to_anomalies() gf.slice_date_range(date(1948, 1, 1), date(2012, 1, 1)) gf.slice_spatial(None, [20, 89]) # initialize a parallel pool pool = Pool(POOL_SIZE) # get the correlation num_lats, num_lons = gf.spatial_dims() num_gpoints = num_lats * num_lons dfC = np.zeros([1, (num_lats - 1) * 2, num_lons], dtype = np.float64) # compute the neighbor correlations y = np.ones(shape=(num_gpoints, num_gpoints)) * 10e6 Clats = [] for lat in range(num_lats - 1): Clats.append(gf.lats[lat]) Clats.append(0.5 * (gf.lats[lat] + gf.lats[lat+1])) for lon in range(num_lons): pt_1 = lat * num_lons + lon pt_2 = lat * num_lons + lon + 1 lon1 = (lon + 1) % num_lons cc = np.corrcoef(gf.d[:, lat, lon], gf.d[:, lat, lon1], rowvar = 0)[0,1]