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 <jason.swa...@gmail.com>
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
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
------------------------------------------------------------------------------
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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users