# import numpy as np # FillValue=np.nan IntFillValue=999999 # # Overlap with the the lat/lon box. The function only tests if there is a potential overlap. # The default answer is that there is an overlap, unless we find it impossible. # def potoverlap(refpoly, testpoly) : po = True if np.max(np.array(testpoly)[:,0]) < np.min(np.array(refpoly)[:,0]) and np.min(np.array(testpoly)[:,0]) > np.max(np.array(refpoly)[:,0]) : po = False if np.max(np.array(testpoly)[:,1]) < np.min(np.array(refpoly)[:,1]) and np.min(np.array(testpoly)[:,1]) > np.max(np.array(refpoly)[:,1]) : po = False return po # # Routine to generate a square polygone around the centre point # def boxit(cent, dlon, dlat) : polyres=8 boxll=[] loninc = dlon/polyres latinc = dlat/polyres # Side 1 for pts in range(polyres) : boxll.append([cent[0]-dlon/2.0+loninc*pts, cent[1]+dlat/2.0]) # Side 2 for pts in range(polyres) : boxll.append([cent[0]+dlon/2.0, cent[1]+dlat/2.0-latinc*pts]) # Side 3 for pts in range(polyres) : boxll.append([cent[0]+dlon/2.0-loninc*pts, cent[1]-dlat/2.0]) # Side 4 for pts in range(polyres) : boxll.append([cent[0]-dlon/2.0, cent[1]-dlat/2.0+latinc*pts]) # Close boxll.append(boxll[0]) return boxll