From: Benjamin R. <ben...@ou...> - 2014-06-27 14:23:37
|
actually, that is technically incorrect. That only works for monotonically increasing series, but not monotonically decreasing series. diffs = np.diff(lon) if np.all(diffs <= 0): return True if np.all(diffs >= 0): return True return False provided that len(lon) >= 2, obviously (and it doesn't work right for 2 or more dimensions). Ben Root On Fri, Jun 27, 2014 at 10:03 AM, Jason Swails <jas...@gm...> wrote: > On Thu, 2014-06-26 at 23:14 -0700, billyi wrote: > > Oh my, it WAS the meshgrid! Thank you so much! > > When reading the coordinates like: > > lat = FB.variables['lat'][:,:] > > lon = FB.variables['lon'][:,:] > > > > And plotting (without meshgrid!): > > m.pcolormesh(lon, lat, masked_fb, latlon=True) > > > > it works! Now I feel stupid. > > And I think the longitudes and latitudes are not monotonic, but I don't > know > > the way to check this, other than checking the array like lon[:] in > > terminal. Is there a better way? > > Yes. Consider: > > py> all(lon[:-1] <= lon[1:]) > > If True, then lon is monotonically increasing. Otherwise it's not. > > Description: > > lon[:-1] is a slice that takes every element of lon except the last one. > lon[1:] is a slice that takes every element of lon except the first one. > The comparison operator will create a bool numpy array whose elements > will be True for each element "i" if the i'th element is less than or > equal to the i+1'th element. Applying the "all" (or numpy.all) > functions to this bool array will return True if every element is true > and False otherwise. > > Faster, easier, and less error-prone than printing out the array and > checking it yourself. Of course you could do something more explicit: > > py> monotonic = True > py> for i in range(len(lon)-1): > py> if lon[i] > lon[i+1]: > py> monotonic = False > py> break > > HTH, > Jason > > > > ------------------------------------------------------------------------------ > Open source business process management suite built on Java and Eclipse > Turn processes into business applications with Bonita BPM Community Edition > Quickly connect people, data, and systems into organized workflows > Winner of BOSSIE, CODIE, OW2 and Gartner awards > http://p.sf.net/sfu/Bonitasoft > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |