Revision: 4082
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4082&view=rev
Author:   jswhit
Date:     2007-11-01 05:05:30 -0700 (Thu, 01 Nov 2007)

Log Message:
-----------
fix antarctica

Modified Paths:
--------------
    trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py

Modified: 
trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py
===================================================================
--- trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py   
2007-11-01 07:21:00 UTC (rev 4081)
+++ trunk/toolkits/basemap-testing/lib/matplotlib/toolkits/basemap/basemap.py   
2007-11-01 12:05:30 UTC (rev 4082)
@@ -747,20 +747,36 @@
             if area < 0.: area = 1.e30
             useit = self.latmax>=south and self.latmin<=north and 
area>self.area_thresh
             # skip Antartica for now.
-            if name == 'gshhs' and south < -60.: useit=False
             if useit:
                 offsetbytes = int(linesplit[4])
                 bytecount = int(linesplit[5])
                 bdatfile.seek(offsetbytes,0)
                 polystring = bdatfile.read(bytecount)
                 poly = wkb.loads(polystring)
+                # close Antarctica for cylindrical projections
+
+                if name == 'gshhs' and self.projection in 
['cyl','merc','mill']:
+                    b = npy.asarray(poly.boundary)
+                    lons = b[:,0].tolist()
+                    lats = b[:,1].tolist()
+                    if (math.fabs(lons[0]-360.) < 1.e-5 or 
+                        math.fabs(lons[0]+360.) or 
+                        math.fabs(lons[0]-0.) < 1.e-5) and lats[-1] < -68.:
+                        lons = lons[:-2]
+                        lats = lats[:-2]
+                        lonstart,latstart = lons[0], lats[0]
+                        lonend,latend = lons[-1], lats[-1]
+                        lons.insert(0,lonstart)
+                        lats.insert(0,-90.)
+                        lons.append(lonend)
+                        lats.append(-90.)
+                    if south < -68:
+                        poly = PolygonShape(zip(lons,lats))
+                        #b = npy.asarray(poly.boundary)
+                        #import pylab
+                        #pylab.fill(b[:,0],b[:,1],'b')
+                        #pylab.show()
                 if poly.intersects(self._boundarypoly):
-                    #a = npy.asarray(self._boundarypoly.boundary)
-                    #b = npy.asarray(poly.boundary)
-                    #import pylab
-                    #pylab.fill(a[:,0],a[:,1],'r')
-                    #pylab.fill(b[:,0],b[:,1],'b')
-                    #pylab.show()
                     poly = poly.intersection(self._boundarypoly)
                     if hasattr(poly,'geoms'): 
                         geoms = poly.geoms


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to