|
From: <js...@us...> - 2008-12-13 14:43:06
|
Revision: 6596
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6596&view=rev
Author: jswhit
Date: 2008-12-13 14:43:02 +0000 (Sat, 13 Dec 2008)
Log Message:
-----------
make sure fillcontinents returns a list of *all* Polygon instances
(not just the last one).
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-13 06:20:28 UTC (rev 6595)
+++ trunk/toolkits/basemap/Changelog 2008-12-13 14:43:02 UTC (rev 6596)
@@ -1,4 +1,6 @@
version 0.99.3 (not yet released)
+ * fillcontinents was returning just last Polygon instance.
+ Now returns a list of all Polygon instances.
* bluemarble: pass kwargs to imshow, return Image instance.
version 0.99.2 (svn revision 6541)
* fix drawlsmask method so that it works for cylindrical
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 06:20:28 UTC (rev 6595)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 14:43:02 UTC (rev 6596)
@@ -1305,6 +1305,7 @@
# get axis background color.
axisbgc = ax.get_axis_bgcolor()
npoly = 0
+ polys = []
for x,y in self.coastpolygons:
xa = np.array(x,np.float32)
ya = np.array(y,np.float32)
@@ -1334,10 +1335,11 @@
if zorder is not None:
poly.set_zorder(zorder)
ax.add_patch(poly)
+ polys.append(poly)
npoly = npoly + 1
# set axes limits to fit map region.
self.set_axes_limits(ax=ax)
- return poly
+ return polys
def drawcoastlines(self,linewidth=1.,color='k',antialiased=1,ax=None,zorder=None):
"""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-13 15:12:00
|
Revision: 6598
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6598&view=rev
Author: jswhit
Date: 2008-12-13 15:11:57 +0000 (Sat, 13 Dec 2008)
Log Message:
-----------
make sure drawmapscale returns a list of plot objects.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-13 14:46:30 UTC (rev 6597)
+++ trunk/toolkits/basemap/Changelog 2008-12-13 15:11:57 UTC (rev 6598)
@@ -1,4 +1,6 @@
version 0.99.3 (not yet released)
+ * make sure drawmapscale method returns a list of objects that
+ can be iterated over to remove them from the plot.
* fillcontinents was returning just last Polygon instance.
Now returns a list of all Polygon instances.
* bluemarble: pass kwargs to imshow, return Image instance.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 14:46:30 UTC (rev 6597)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 15:11:57 UTC (rev 6598)
@@ -3043,6 +3043,8 @@
is used.
Extra keyword ``ax`` can be used to override the default axis instance.
+
+ returns a matplotlib.image.AxesImage instance.
"""
# convert land and ocean colors to integer rgba tuples with
# values between 0 and 255.
@@ -3162,7 +3164,7 @@
\**kwargs passed on to :meth:`imshow`.
- returns an matplotlib.image.AxesImage instance.
+ returns a matplotlib.image.AxesImage instance.
"""
if ax is not None:
return self.warpimage(image='bluemarble',ax=ax,scale=scale,**kwargs)
@@ -3191,7 +3193,7 @@
\**kwargs passed on to :meth:`imshow`.
- returns an matplotlib.image.AxesImage instance.
+ returns a matplotlib.image.AxesImage instance.
"""
try:
from PIL import Image
@@ -3433,6 +3435,7 @@
raise KeyError("labelstyle must be 'simple' or 'fancy'")
# default y offset is 2 percent of map height.
if yoffset is None: yoffset = 0.02*(self.ymax-self.ymin)
+ rets = [] # will hold all plot objects generated.
# 'fancy' style
if barstyle == 'fancy':
#we need 5 sets of x coordinates (in map units)
@@ -3449,62 +3452,63 @@
ybottom = yc-yoffset/2
ytick = ybottom - yoffset/2
ytext = ytick - yoffset/2
- self.plot([x1,x4],[ytop,ytop],color=fontcolor)
+ rets.append(self.plot([x1,x4],[ytop,ytop],color=fontcolor)[0])
#plot bottom line
- self.plot([x1,x4],[ybottom,ybottom],color=fontcolor)
+ rets.append(self.plot([x1,x4],[ybottom,ybottom],color=fontcolor)[0])
#plot left edge
- self.plot([x1,x1],[ybottom,ytop],color=fontcolor)
+ rets.append(self.plot([x1,x1],[ybottom,ytop],color=fontcolor)[0])
#plot right edge
- self.plot([x4,x4],[ybottom,ytop],color=fontcolor)
+ rets.append(self.plot([x4,x4],[ybottom,ytop],color=fontcolor)[0])
#make a filled black box from left edge to 1/4 way across
- ax.fill([x1,x2,x2,x1,x1],[ytop,ytop,ybottom,ybottom,ytop],\
- ec=fontcolor,fc=fillcolor1)
+ rets.append(ax.fill([x1,x2,x2,x1,x1],[ytop,ytop,ybottom,ybottom,ytop],\
+ ec=fontcolor,fc=fillcolor1)[0])
#make a filled white box from 1/4 way across to 1/2 way across
- ax.fill([x2,xc,xc,x2,x2],[ytop,ytop,ybottom,ybottom,ytop],\
- ec=fontcolor,fc=fillcolor2)
+ rets.append(ax.fill([x2,xc,xc,x2,x2],[ytop,ytop,ybottom,ybottom,ytop],\
+ ec=fontcolor,fc=fillcolor2)[0])
#make a filled white box from 1/2 way across to 3/4 way across
- ax.fill([xc,x3,x3,xc,xc],[ytop,ytop,ybottom,ybottom,ytop],\
- ec=fontcolor,fc=fillcolor1)
+ rets.append(ax.fill([xc,x3,x3,xc,xc],[ytop,ytop,ybottom,ybottom,ytop],\
+ ec=fontcolor,fc=fillcolor1)[0])
#make a filled white box from 3/4 way across to end
- ax.fill([x3,x4,x4,x3,x3],[ytop,ytop,ybottom,ybottom,ytop],\
- ec=fontcolor,fc=fillcolor2)
+ rets.append(ax.fill([x3,x4,x4,x3,x3],[ytop,ytop,ybottom,ybottom,ytop],\
+ ec=fontcolor,fc=fillcolor2)[0])
#plot 3 tick marks at left edge, center, and right edge
- self.plot([x1,x1],[ytick,ybottom],color=fontcolor)
- self.plot([xc,xc],[ytick,ybottom],color=fontcolor)
- self.plot([x4,x4],[ytick,ybottom],color=fontcolor)
+ rets.append(self.plot([x1,x1],[ytick,ybottom],color=fontcolor)[0])
+ rets.append(self.plot([xc,xc],[ytick,ybottom],color=fontcolor)[0])
+ rets.append(self.plot([x4,x4],[ytick,ybottom],color=fontcolor)[0])
#label 3 tick marks
- ax.text(x1,ytext,'%d' % (0),\
+ rets.append(ax.text(x1,ytext,'%d' % (0),\
horizontalalignment='center',\
verticalalignment='top',\
- fontsize=fontsize,color=fontcolor)
- ax.text(xc,ytext,'%d' % (0.5*lenlab),\
+ fontsize=fontsize,color=fontcolor))
+ rets.append(ax.text(xc,ytext,'%d' % (0.5*lenlab),\
horizontalalignment='center',\
verticalalignment='top',\
- fontsize=fontsize,color=fontcolor)
- ax.text(x4,ytext,'%d' % (lenlab),\
+ fontsize=fontsize,color=fontcolor))
+ rets.append(ax.text(x4,ytext,'%d' % (lenlab),\
horizontalalignment='center',\
verticalalignment='top',\
- fontsize=fontsize,color=fontcolor)
+ fontsize=fontsize,color=fontcolor))
#put units, scale factor on top
- ax.text(xc,ytop+yoffset/2,labelstr,\
+ rets.append(ax.text(xc,ytop+yoffset/2,labelstr,\
horizontalalignment='center',\
verticalalignment='bottom',\
- fontsize=fontsize,color=fontcolor)
+ fontsize=fontsize,color=fontcolor))
# 'simple' style
elif barstyle == 'simple':
- self.plot([x1,x4],[yc,yc],color=fontcolor)
- self.plot([x1,x1],[yc-yoffset,yc+yoffset],color=fontcolor)
- self.plot([x4,x4],[yc-yoffset,yc+yoffset],color=fontcolor)
- ax.text(xc,yc-yoffset,'%d' % lenlab,\
+ rets.append(self.plot([x1,x4],[yc,yc],color=fontcolor)[0])
+ rets.append(self.plot([x1,x1],[yc-yoffset,yc+yoffset],color=fontcolor)[0])
+ rets.append(self.plot([x4,x4],[yc-yoffset,yc+yoffset],color=fontcolor)[0])
+ rets.append(ax.text(xc,yc-yoffset,'%d' % lenlab,\
verticalalignment='top',horizontalalignment='center',\
- fontsize=fontsize,color=fontcolor)
+ fontsize=fontsize,color=fontcolor))
#put units, scale factor on top
- ax.text(xc,yc+yoffset,labelstr,\
+ rets.append(ax.text(xc,yc+yoffset,labelstr,\
horizontalalignment='center',\
verticalalignment='bottom',\
- fontsize=fontsize,color=fontcolor)
+ fontsize=fontsize,color=fontcolor))
else:
raise KeyError("barstyle must be 'simple' or 'fancy'")
+ return rets
### End of Basemap class
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-13 18:03:13
|
Revision: 6600
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6600&view=rev
Author: jswhit
Date: 2008-12-13 18:03:10 +0000 (Sat, 13 Dec 2008)
Log Message:
-----------
append LineCollection tuple to readshapefile return tuple.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-13 17:45:00 UTC (rev 6599)
+++ trunk/toolkits/basemap/Changelog 2008-12-13 18:03:10 UTC (rev 6600)
@@ -1,4 +1,6 @@
version 0.99.3 (not yet released)
+ * if readshapefile is called with drawbounds=True, a
+ LineCollection object is appended to the returned tuple.
* make sure drawmapscale method returns a list of objects that
can be iterated over to remove them from the plot.
* fillcontinents was returning just last Polygon instance.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 17:45:00 UTC (rev 6599)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-13 18:03:10 UTC (rev 6600)
@@ -1586,7 +1586,8 @@
the SHPT* constants defined in the shapelib module, see
http://shapelib.maptools.org/shp_api.html) and min and
max are 4-element lists with the minimum and maximum values of the
- vertices.
+ vertices. If ``drawbounds=True`` a
+ matplotlib.patches.LineCollection object is appended to the tuple.
"""
# open shapefile, read vertices for each object, convert
# to map projection coordinates (only works for 2D shape types).
@@ -1664,6 +1665,7 @@
ax.add_collection(lines)
# set axes limits to fit map region.
self.set_axes_limits(ax=ax)
+ info = info + (lines,)
# save segments/polygons and shape attribute dicts as class attributes.
self.__dict__[name]=shpsegs
self.__dict__[name+'_info']=shpinfo
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-17 12:59:55
|
Revision: 6646
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6646&view=rev
Author: jswhit
Date: 2008-12-17 12:59:50 +0000 (Wed, 17 Dec 2008)
Log Message:
-----------
look for data in BASEMAPDATA
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/src/pj_open_lib.c
Added Paths:
-----------
trunk/toolkits/basemap/src/pj_open_lib.c.orig
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-17 12:54:24 UTC (rev 6645)
+++ trunk/toolkits/basemap/Changelog 2008-12-17 12:59:50 UTC (rev 6646)
@@ -1,4 +1,7 @@
version 0.99.3 (not yet released)
+ * Basemap will now look for it's data in BASEMAPDATA.
+ If that env var not set, it will fall back to it's
+ default location.
* if readshapefile is called with drawbounds=True, a
LineCollection object is appended to the returned tuple.
* make sure drawmapscale method returns a list of objects that
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-17 12:54:24 UTC (rev 6645)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-17 12:59:50 UTC (rev 6646)
@@ -39,7 +39,14 @@
import _geoslib, netcdftime
# basemap data files now installed in lib/matplotlib/toolkits/basemap/data
-basemap_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
+# check to see if environment variable BASEMAPDATA set to a directory,
+# and if so look for the data there.
+if 'BASEMAPDATA' in os.environ:
+ basemap_datadir = os.environ['BASEMAPDATA']
+ if not os.path.isdir(basemap_datadir):
+ raise RuntimeError('Path in environment BASEMAPDATA not a directory')
+else:
+ basemap_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
__version__ = '0.99.3'
Modified: trunk/toolkits/basemap/src/pj_open_lib.c
===================================================================
--- trunk/toolkits/basemap/src/pj_open_lib.c 2008-12-17 12:54:24 UTC (rev 6645)
+++ trunk/toolkits/basemap/src/pj_open_lib.c 2008-12-17 12:59:50 UTC (rev 6646)
@@ -60,8 +60,8 @@
static int path_count = 0;
static char **search_path = NULL;
static char * proj_lib_name =
-#ifdef PROJ_LIB
-PROJ_LIB;
+#ifdef BASEMAPDATA
+BASEMAPDATA;
#else
0;
#endif
@@ -153,8 +153,8 @@
else if( pj_finder != NULL && pj_finder( name ) != NULL )
sysname = pj_finder( name );
- /* or is environment PROJ_LIB defined */
- else if ((sysname = getenv("PROJ_LIB")) || (sysname = proj_lib_name)) {
+ /* or is environment BASEMAPDATA defined */
+ else if ((sysname = getenv("BASEMAPDATA")) || (sysname = proj_lib_name)) {
(void)strcpy(fname, sysname);
fname[n = strlen(fname)] = DIR_CHAR;
fname[++n] = '\0';
Added: trunk/toolkits/basemap/src/pj_open_lib.c.orig
===================================================================
--- trunk/toolkits/basemap/src/pj_open_lib.c.orig (rev 0)
+++ trunk/toolkits/basemap/src/pj_open_lib.c.orig 2008-12-17 12:59:50 UTC (rev 6646)
@@ -0,0 +1,191 @@
+/******************************************************************************
+ * $Id: pj_open_lib.c,v 1.9 2007/07/06 14:58:03 fwarmerdam Exp $
+ *
+ * Project: PROJ.4
+ * Purpose: Implementation of pj_open_lib(), and pj_set_finder(). These
+ * provide a standard interface for opening projections support
+ * data files.
+ * Author: Gerald Evenden, Frank Warmerdam <war...@po...>
+ *
+ ******************************************************************************
+ * Copyright (c) 1995, Gerald Evenden
+ * Copyright (c) 2002, Frank Warmerdam <war...@po...>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ******************************************************************************
+ *
+ * $Log: pj_open_lib.c,v $
+ * Revision 1.9 2007/07/06 14:58:03 fwarmerdam
+ * improve searchpath clearning with pj_set_searchpath()
+ *
+ * Revision 1.8 2007/03/11 17:03:18 fwarmerdam
+ * support drive letter prefixes on win32 and related fixes (bug 1499)
+ *
+ * Revision 1.7 2006/11/17 22:16:30 mloskot
+ * Uploaded PROJ.4 port for Windows CE.
+ *
+ * Revision 1.6 2004/09/16 15:14:01 fwarmerdam
+ * * src/pj_open_lib.c: added pj_set_searchpath() provided by Eric Miller.
+ *
+ * Revision 1.5 2002/12/14 20:15:30 warmerda
+ * updated headers
+ *
+ */
+
+#define PJ_LIB__
+#include <projects.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+
+PJ_CVSID("$Id: pj_open_lib.c,v 1.9 2007/07/06 14:58:03 fwarmerdam Exp $");
+
+static const char *(*pj_finder)(const char *) = NULL;
+static int path_count = 0;
+static char **search_path = NULL;
+static char * proj_lib_name =
+#ifdef PROJ_LIB
+PROJ_LIB;
+#else
+0;
+#endif
+
+/************************************************************************/
+/* pj_set_finder() */
+/************************************************************************/
+
+void pj_set_finder( const char *(*new_finder)(const char *) )
+
+{
+ pj_finder = new_finder;
+}
+
+/************************************************************************/
+/* pj_set_searchpath() */
+/* */
+/* Path control for callers that can't practically provide */
+/* pj_set_finder() style callbacks. Call with (0,NULL) as args */
+/* to clear the searchpath set. */
+/************************************************************************/
+
+void pj_set_searchpath ( int count, const char **path )
+{
+ int i;
+
+ if (path_count > 0 && search_path != NULL)
+ {
+ for (i = 0; i < path_count; i++)
+ {
+ pj_dalloc(search_path[i]);
+ }
+ pj_dalloc(search_path);
+ path_count = 0;
+ search_path = NULL;
+ }
+
+ if( count > 0 )
+ {
+ search_path = pj_malloc(sizeof *search_path * count);
+ for (i = 0; i < count; i++)
+ {
+ search_path[i] = pj_malloc(strlen(path[i]) + 1);
+ strcpy(search_path[i], path[i]);
+ }
+ }
+
+ path_count = count;
+}
+
+/************************************************************************/
+/* pj_open_lib() */
+/************************************************************************/
+
+FILE *
+pj_open_lib(char *name, char *mode) {
+ char fname[MAX_PATH_FILENAME+1];
+ const char *sysname;
+ FILE *fid;
+ int n = 0;
+ int i;
+#ifdef WIN32
+ static const char dir_chars[] = "/\\";
+#else
+ static const char dir_chars[] = "/";
+#endif
+
+#ifndef _WIN32_WCE
+
+ /* check if ~/name */
+ if (*name == '~' && strchr(dir_chars,name[1]) )
+ if (sysname = getenv("HOME")) {
+ (void)strcpy(fname, sysname);
+ fname[n = strlen(fname)] = DIR_CHAR;
+ fname[++n] = '\0';
+ (void)strcpy(fname+n, name + 1);
+ sysname = fname;
+ } else
+ return NULL;
+
+ /* or fixed path: /name, ./name or ../name */
+ else if (strchr(dir_chars,*name)
+ || (*name == '.' && strchr(dir_chars,name[1]))
+ || (!strncmp(name, "..", 2) && strchr(dir_chars,name[2]))
+ || (name[1] == ':' && strchr(dir_chars,name[2])) )
+ sysname = name;
+
+ /* or try to use application provided file finder */
+ else if( pj_finder != NULL && pj_finder( name ) != NULL )
+ sysname = pj_finder( name );
+
+ /* or is environment PROJ_LIB defined */
+ else if ((sysname = getenv("PROJ_LIB")) || (sysname = proj_lib_name)) {
+ (void)strcpy(fname, sysname);
+ fname[n = strlen(fname)] = DIR_CHAR;
+ fname[++n] = '\0';
+ (void)strcpy(fname+n, name);
+ sysname = fname;
+ } else /* just try it bare bones */
+ sysname = name;
+
+ if (fid = fopen(sysname, mode))
+ errno = 0;
+
+ /* If none of those work and we have a search path, try it */
+ if (!fid && path_count > 0)
+ {
+ for (i = 0; fid == NULL && i < path_count; i++)
+ {
+ sprintf(fname, "%s%c%s", search_path[i], DIR_CHAR, name);
+ sysname = fname;
+ fid = fopen (sysname, mode);
+ }
+ if (fid)
+ errno = 0;
+ }
+
+ if( getenv( "PROJ_DEBUG" ) != NULL )
+ fprintf( stderr, "pj_open_lib(%s): call fopen(%s) - %s\n",
+ name, sysname,
+ fid == NULL ? "failed" : "succeeded" );
+
+ return(fid);
+#else
+ return NULL;
+#endif /* _WIN32_WCE */
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-18 20:20:21
|
Revision: 6678
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6678&view=rev
Author: jswhit
Date: 2008-12-18 20:20:18 +0000 (Thu, 18 Dec 2008)
Log Message:
-----------
check for already installed pyshapelib
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/README
trunk/toolkits/basemap/setup.cfg
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-18 19:40:26 UTC (rev 6677)
+++ trunk/toolkits/basemap/Changelog 2008-12-18 20:20:18 UTC (rev 6678)
@@ -1,4 +1,6 @@
version 0.99.3 (not yet released)
+ * have setup.py check for already installed pyshapelib (just
+ like it does for httplib2 and pydap).
* Basemap will now look for it's data in BASEMAPDATA.
If that env var not set, it will fall back to it's
default location.
Modified: trunk/toolkits/basemap/README
===================================================================
--- trunk/toolkits/basemap/README 2008-12-18 19:40:26 UTC (rev 6677)
+++ trunk/toolkits/basemap/README 2008-12-18 20:20:18 UTC (rev 6678)
@@ -100,11 +100,11 @@
by running "from mpl_toolkits.basemap import Basemap" at the python
prompt.
-Basemap includes two auxilliary packages, pydap (http://pydap.org, just
-the client is included) and httplib2. By default, setup.py checks to
+Basemap includes three auxilliary packages, pydap (http://pydap.org, just
+the client is included), httplib2 and pyshapelib. By default, setup.py checks to
see if these are already installed, and if so does not try to overwrite
them. If you get import errors related to either of these two packages,
-edit setup.cfg and set pydap and/or httplib2 to True to force
+edit setup.cfg and set pydap, httplib2 and/or pyshapelib to True to force
installation of the included versions.
4) To test, cd to the examples directory and run 'python simpletest.py'.
Modified: trunk/toolkits/basemap/setup.cfg
===================================================================
--- trunk/toolkits/basemap/setup.cfg 2008-12-18 19:40:26 UTC (rev 6677)
+++ trunk/toolkits/basemap/setup.cfg 2008-12-18 20:20:18 UTC (rev 6678)
@@ -2,9 +2,10 @@
# By default, basemap checks for a few dependencies and
# installs them if missing. This feature can be turned off
# by uncommenting the following lines. Acceptible values are:
-# True: install, overwrite an existing installation
+# auto: install, overwrite an existing installation
# False: do not install
# auto: install only if the package is unavailable. This
# is the default behavior
pydap = auto
httplib2 = auto
+pyshapelib = auto
Modified: trunk/toolkits/basemap/setup.py
===================================================================
--- trunk/toolkits/basemap/setup.py 2008-12-18 19:40:26 UTC (rev 6677)
+++ trunk/toolkits/basemap/setup.py 2008-12-18 20:20:18 UTC (rev 6678)
@@ -99,25 +99,6 @@
include_dirs=geos_include_dirs,
libraries=['geos_c','geos']))
-# install shapelib and dbflib.
-packages = packages + ['shapelib','dbflib']
-package_dirs['shapelib'] = os.path.join('lib','shapelib')
-package_dirs['dbflib'] = os.path.join('lib','dbflib')
-extensions = extensions + \
- [Extension("shapelibc",
- ["pyshapelib/shapelib_wrap.c",
- "pyshapelib/shapelib/shpopen.c",
- "pyshapelib/shapelib/shptree.c"],
- include_dirs = ["pyshapelib/shapelib"]),
- Extension("shptree",
- ["pyshapelib/shptreemodule.c"],
- include_dirs = ["pyshapelib/shapelib"]),
- Extension("dbflibc",
- ["pyshapelib/dbflib_wrap.c",
- "pyshapelib/shapelib/dbfopen.c"],
- include_dirs = ["pyshapelib/shapelib"],
- define_macros = dbf_macros()) ]
-
# check setup.cfg file to see how to install auxilliary packages.
options = {}
if os.path.exists("setup.cfg"):
@@ -128,10 +109,14 @@
except: options['provide_pydap'] = 'auto'
try: options['provide_httplib2'] = config.getboolean("provide_packages", "httplib2")
except: options['provide_httplib2'] = 'auto'
+ try: options['provide_pyshapelib'] = config.getboolean("provide_packages", "pyshapelib")
+ except: options['provide_pyshapelib'] = 'auto'
else:
options['provide_pydap'] = 'auto'
options['provide_httplib2'] = 'auto'
+ options['provide_pyshapelib'] = 'auto'
+
provide_pydap = options['provide_pydap']
if provide_pydap == 'auto': # install pydap stuff if not already available.
# only the client is installed (not the server).
@@ -171,16 +156,65 @@
except ImportError:
print 'httplib2 not installed, will be installed'
packages = packages + ['httplib2']
- package_dirs['httlib2'] = os.path.join('lib','httplib2')
+ package_dirs['httplib2'] = os.path.join('lib','httplib2')
else:
print 'httplib2 installed'
elif provide_httplib2: # force install of httplib2
print 'forcing install of included httplib2'
packages = packages + ['httplib2']
- package_dirs['httlib2'] = os.path.join('lib','httplib2')
+ package_dirs['httplib2'] = os.path.join('lib','httplib2')
else:
print 'will not install httplib2'
+provide_pyshapelib = options['provide_pyshapelib']
+if provide_pyshapelib == 'auto':
+ print 'checking to see if pyshapelib installed ..'
+ try:
+ import shapelib
+ import dbflib
+ except ImportError:
+ print 'shapelib/dbflib not installed, will be installed'
+ packages = packages + ['shapelib','dbflib']
+ package_dirs['shapelib'] = os.path.join('lib','shapelib')
+ package_dirs['dbflib'] = os.path.join('lib','dbflib')
+ extensions = extensions + \
+ [Extension("shapelibc",
+ ["pyshapelib/shapelib_wrap.c",
+ "pyshapelib/shapelib/shpopen.c",
+ "pyshapelib/shapelib/shptree.c"],
+ include_dirs = ["pyshapelib/shapelib"]),
+ Extension("shptree",
+ ["pyshapelib/shptreemodule.c"],
+ include_dirs = ["pyshapelib/shapelib"]),
+ Extension("dbflibc",
+ ["pyshapelib/dbflib_wrap.c",
+ "pyshapelib/shapelib/dbfopen.c"],
+ include_dirs = ["pyshapelib/shapelib"],
+ define_macros = dbf_macros()) ]
+ else:
+ print 'pyshapelib installed'
+elif provide_pyshapelib: # force install of shapelib
+ print 'forcing install of included pyshapelib'
+ packages = packages + ['shapelib','dbflib']
+ package_dirs['shapelib'] = os.path.join('lib','shapelib')
+ package_dirs['dbflib'] = os.path.join('lib','dbflib')
+ extensions = extensions + \
+ [Extension("shapelibc",
+ ["pyshapelib/shapelib_wrap.c",
+ "pyshapelib/shapelib/shpopen.c",
+ "pyshapelib/shapelib/shptree.c"],
+ include_dirs = ["pyshapelib/shapelib"]),
+ Extension("shptree",
+ ["pyshapelib/shptreemodule.c"],
+ include_dirs = ["pyshapelib/shapelib"]),
+ Extension("dbflibc",
+ ["pyshapelib/dbflib_wrap.c",
+ "pyshapelib/shapelib/dbfopen.c"],
+ include_dirs = ["pyshapelib/shapelib"],
+ define_macros = dbf_macros()) ]
+else:
+ print 'will not install pyshapelib'
+
# Specify all the required mpl data
pyproj_datafiles = ['data/epsg', 'data/esri', 'data/esri.extra', 'data/GL27', 'data/nad.lst', 'data/nad27', 'data/nad83', 'data/ntv2_out.dist', 'data/other.extra', 'data/pj_out27.dist', 'data/pj_out83.dist', 'data/proj_def.dat', 'data/README', 'data/td_out.dist', 'data/test27', 'data/test83', 'data/testntv2', 'data/testvarious', 'data/world','data/bmng.jpg','data/bmng_low.jpg']
boundaryfiles = []
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-31 14:37:48
|
Revision: 6719
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6719&view=rev
Author: jswhit
Date: 2008-12-31 14:37:44 +0000 (Wed, 31 Dec 2008)
Log Message:
-----------
whole world aeqd added
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2008-12-31 13:20:50 UTC (rev 6718)
+++ trunk/toolkits/basemap/Changelog 2008-12-31 14:37:44 UTC (rev 6719)
@@ -1,4 +1,7 @@
version 0.99.3 (not yet released)
+ * if upper right/lower left corners nor width/height given for
+ azimuthal equidistant ('aeqd') the whole world is drawn in
+ a circle (only works for perfect spheres, not ellipsoids).
* have setup.py check for already installed pyshapelib (just
like it does for httplib2 and pydap).
* Basemap will now look for it's data in BASEMAPDATA.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-31 13:20:50 UTC (rev 6718)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-31 14:37:44 UTC (rev 6719)
@@ -625,10 +625,17 @@
raise ValueError, 'must specify lat_0 and lon_0 for Azimuthal Equidistant basemap'
if not using_corners:
if width is None or height is None:
- raise ValueError, 'must either specify lat/lon values of corners (llcrnrlon,llcrnrlat,ucrnrlon,urcrnrlat) in degrees or width and height in meters'
+ self._fulldisk = True
+ llcrnrlon = -180.
+ llcrnrlat = -90.
+ urcrnrlon = 180
+ urcrnrlat = 90.
+ else:
+ self._fulldisk = False
if lon_0 is None or lat_0 is None:
raise ValueError, 'must specify lon_0 and lat_0 when using width, height to specify projection region'
- llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat = _choosecorners(width,height,**projparams)
+ if not self._fulldisk:
+ llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat = _choosecorners(width,height,**projparams)
self.llcrnrlon = llcrnrlon; self.llcrnrlat = llcrnrlat
self.urcrnrlon = urcrnrlon; self.urcrnrlat = urcrnrlat
elif projection in _cylproj:
@@ -1046,12 +1053,8 @@
if self.projection in ['ortho','geos']:
# circular region.
thetas = np.linspace(0.,2.*np.pi,2*nx*ny)[:-1]
- if self.projection == 'ortho':
- rminor = self.rmajor
- rmajor = self.rmajor
- else:
- rminor = self._height
- rmajor = self._width
+ rminor = self._height
+ rmajor = self._width
x = rmajor*np.cos(thetas) + rmajor
y = rminor*np.sin(thetas) + rminor
b = np.empty((len(x),2),np.float64)
@@ -1075,6 +1078,16 @@
projparms['x_0']=-llcrnrx
projparms['y_0']=-llcrnry
maptran = pyproj.Proj(projparms)
+ elif self.projection == 'aeqd' and self._fulldisk:
+ # circular region.
+ thetas = np.linspace(0.,2.*np.pi,2*nx*ny)[:-1]
+ rminor = self._height
+ rmajor = self._width
+ x = rmajor*np.cos(thetas) + rmajor
+ y = rminor*np.sin(thetas) + rminor
+ b = np.empty((len(x),2),np.float64)
+ b[:,0]=x; b[:,1]=y
+ boundaryxy = _geoslib.Polygon(b)
elif self.projection in _pseudocyl:
# quasi-elliptical region.
lon_0 = self.projparams['lon_0']
@@ -1188,11 +1201,10 @@
elif ax is None and self.ax is not None:
ax = self.ax
limb = None
- if self.projection == 'ortho':
- limb = Circle((self.rmajor,self.rmajor),self.rmajor)
- elif self.projection == 'geos':
+ if self.projection in ['ortho','geos'] or (self.projection=='aeqd' and\
+ self._fulldisk):
limb = Ellipse((self._width,self._height),2.*self._width,2.*self._height)
- if self.projection in ['ortho','geos'] and self._fulldisk:
+ if self.projection in ['ortho','geos','aeqd'] and self._fulldisk:
# elliptical region.
ax.add_patch(limb)
if fill_color is None:
@@ -1822,7 +1834,7 @@
linecolls[circ] = (lines,[])
# draw labels for parallels
# parallels not labelled for fulldisk orthographic or geostationary
- if self.projection in ['ortho','geos','vandg'] and max(labels):
+ if self.projection in ['ortho','geos','vandg','aeqd'] and max(labels):
if self.projection == 'vandg' or self._fulldisk:
print 'Warning: Cannot label parallels on %s basemap' % _projnames[self.projection]
labels = [0,0,0,0]
@@ -2068,9 +2080,12 @@
if self.projection in ['sinu','moll','vandg'] and max(labels):
print 'Warning: Cannot label meridians on %s basemap' % _projnames[self.projection]
labels = [0,0,0,0]
- if self.projection in ['ortho','geos'] and max(labels):
+ if self.projection in ['ortho','geos','aeqd'] and max(labels):
if self._fulldisk:
- print 'Warning: Cannot label meridians on full-disk Geostationary or Orthographic basemap'
+ print dedent(
+ """'Warning: Cannot label meridians on full-disk
+ Geostationary, Orthographic or Azimuthal equidistant basemap
+ """)
labels = [0,0,0,0]
# search along edges of map to see if parallels intersect.
# if so, find x,y location of intersection and draw a label there.
@@ -2535,7 +2550,7 @@
# turn off axes frame for non-rectangular projections.
if self.projection in _pseudocyl:
ax.set_frame_on(False)
- if self.projection in ['ortho','geos'] and self._fulldisk:
+ if self.projection in ['ortho','geos','aeqd'] and self._fulldisk:
ax.set_frame_on(False)
# make sure aspect ratio of map preserved.
# plot is re-centered in bounding rectangle.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2008-12-31 13:20:50 UTC (rev 6718)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2008-12-31 14:37:44 UTC (rev 6719)
@@ -1,6 +1,7 @@
import numpy as np
import pyproj
import math
+from matplotlib.cbook import dedent
__version__ = '1.2.2'
_dg2rad = math.radians(1.)
@@ -70,19 +71,18 @@
self.esq = (self.rmajor**2 - self.rminor**2)/self.rmajor**2
self.llcrnrlon = llcrnrlon
self.llcrnrlat = llcrnrlat
- if self.projection not in ['ortho','geos','cyl'] + _pseudocyl:
- self._proj4 = pyproj.Proj(projparams)
- llcrnrx, llcrnry = self(llcrnrlon,llcrnrlat)
- elif self.projection == 'cyl':
+ if self.projection == 'cyl':
llcrnrx = llcrnrlon
llcrnry = llcrnrlat
- elif self.projection == 'ortho':
+ elif self.projection in 'ortho':
if (llcrnrlon == -180 and llcrnrlat == -90 and
urcrnrlon == 180 and urcrnrlat == 90):
self._fulldisk = True
self._proj4 = pyproj.Proj(projparams)
llcrnrx = -self.rmajor
llcrnry = -self.rmajor
+ self._width = 0.5*(self.rmajor+self.rminor)
+ self._height = 0.5*(self.rmajor+self.rminor)
urcrnrx = -llcrnrx
urcrnry = -llcrnry
else:
@@ -91,6 +91,22 @@
llcrnrx, llcrnry = self(llcrnrlon,llcrnrlat)
if llcrnrx > 1.e20 or llcrnry > 1.e20:
raise ValueError(_lower_left_out_of_bounds)
+ elif self.projection == 'aeqd' and\
+ (llcrnrlon == -180 and llcrnrlat == -90 and urcrnrlon == 180 and\
+ urcrnrlat == 90):
+ self._fulldisk = True
+ self._proj4 = pyproj.Proj(projparams)
+ if self.ellipsoid:
+ msg = dedent("""
+ full disk (whole world) Azimuthal Equidistant projection can
+ only be drawn for a perfect sphere""")
+ raise ValueError(msg)
+ llcrnrx = -0.5*(self.rmajor+self.rminor)
+ llcrnry = -0.5*(self.rmajor+self.rminor)
+ self._width = -llcrnrx
+ self._height = -llcrnry
+ urcrnrx = -llcrnrx
+ urcrnry = -llcrnry
elif self.projection == 'geos':
self._proj4 = pyproj.Proj(projparams)
# find major and minor axes of ellipse defining map proj region.
@@ -129,6 +145,10 @@
urcrnrx,xtmp = self(projparams['lon_0']+180.,0)
llcrnrx = -urcrnrx
llcrnry = -urcrnry
+ else:
+ self._proj4 = pyproj.Proj(projparams)
+ llcrnrx, llcrnry = self(llcrnrlon,llcrnrlat)
+ if self.projection == 'aeqd': self._fulldisk=False
# compute x_0, y_0 so ll corner of domain is x=0,y=0.
# note that for 'cyl' x,y == lon,lat
self.projparams['x_0']=-llcrnrx
@@ -144,18 +164,10 @@
if urcrnrislatlon:
self.urcrnrlon = urcrnrlon
self.urcrnrlat = urcrnrlat
- if self.projection not in ['ortho','geos'] + _pseudocyl:
+ if self.projection not in ['ortho','geos','aeqd'] + _pseudocyl:
urcrnrx,urcrnry = self(urcrnrlon,urcrnrlat)
- elif self.projection == 'ortho':
+ elif self.projection in ['ortho','geos','aeqd']:
if self._fulldisk:
- urcrnrx = 2.*self.rmajor
- urcrnry = 2.*self.rmajor
- else:
- urcrnrx,urcrnry = self(urcrnrlon,urcrnrlat)
- if urcrnrx > 1.e20 or urcrnry > 1.e20:
- raise ValueError(_upper_right_out_of_bounds)
- elif self.projection == 'geos':
- if self._fulldisk:
urcrnrx = 2.*self._width
urcrnry = 2.*self._height
else:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2008-12-31 18:49:12
|
Revision: 6724
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6724&view=rev
Author: jswhit
Date: 2008-12-31 18:49:07 +0000 (Wed, 31 Dec 2008)
Log Message:
-----------
fix bluemarble for full-disk aeqd, update garp.py example.
Modified Paths:
--------------
trunk/toolkits/basemap/examples/garp.py
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/examples/garp.py
===================================================================
--- trunk/toolkits/basemap/examples/garp.py 2008-12-31 17:10:51 UTC (rev 6723)
+++ trunk/toolkits/basemap/examples/garp.py 2008-12-31 18:49:07 UTC (rev 6724)
@@ -17,17 +17,38 @@
location = raw_input('name of location:')
m = Basemap(resolution='c',projection='aeqd',lat_0=lat_0,lon_0=lon_0)
-# fill background.
-m.drawmapboundary(fill_color='aqua')
-# draw coasts and fill continents.
-m.drawcoastlines(linewidth=0.5)
-m.fillcontinents(color='coral',lake_color='aqua')
-# 20 degree graticule.
+
+# draw coastlines and fill continents.
+# **it's easy to make this fail with global aeqd plots.
+# For example, if the center point is at the North Pole,
+# the continent filling routines get confused and fills
+# the outside of Antartica instead of the inside**
+
+#m.drawmapboundary(fill_color='white')
+#m.drawcoastlines(linewidth=0.5)
+#m.fillcontinents(color='black',lake_color='white')
+#m.drawparallels(np.arange(-80,81,20))
+#m.drawmeridians(np.arange(-180,180,20))
+
+# draw lsmask instead of drawing continents (slower, but more robust).
+
+m.drawlsmask(land_color='black',ocean_color='white',lakes=True)
m.drawparallels(np.arange(-80,81,20))
m.drawmeridians(np.arange(-180,180,20))
-# draw a black dot at the center.
+m.drawmapboundary()
+
+# blue marble background (pretty, but slow).
+
+#m.bluemarble(scale=0.5)
+#m.drawparallels(np.arange(-80,81,20),color='0.5')
+#m.drawmeridians(np.arange(-180,180,20),color='0.5')
+#m.drawmapboundary(color='0.5')
+
+# draw a red dot at the center.
xpt, ypt = m(lon_0, lat_0)
-m.plot([xpt],[ypt],'ko')
+m.plot([xpt],[ypt],'ro')
+
# draw the title.
plt.title('The World According to Garp in '+location)
+
plt.show()
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-31 17:10:51 UTC (rev 6723)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008-12-31 18:49:07 UTC (rev 6724)
@@ -3317,7 +3317,8 @@
self.transform_scalar(self._bm_rgba[:,:,k],\
self._bm_lons,self._bm_lats,nx,ny,returnxy=True)
# for ortho,geos mask pixels outside projection limb.
- if self.projection in ['geos','ortho']:
+ if self.projection in ['geos','ortho'] or \
+ (self.projection == 'aeqd' and self._fulldisk):
lonsr,latsr = self(x,y,inverse=True)
mask = ma.zeros((ny,nx,4),np.int8)
mask[:,:,0] = np.logical_or(lonsr>1.e20,latsr>1.e30)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-01-16 16:25:36
|
Revision: 6789
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6789&view=rev
Author: jswhit
Date: 2009-01-16 16:25:28 +0000 (Fri, 16 Jan 2009)
Log Message:
-----------
upped version number to 0.99.4
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-01-16 16:22:16 UTC (rev 6788)
+++ trunk/toolkits/basemap/Changelog 2009-01-16 16:25:28 UTC (rev 6789)
@@ -1,3 +1,6 @@
+version 0.99.4 (not yet released)
+ * added more informative error message in readshapefile when
+ one of the shapefile components can't be found.
version 0.99.3 (svn revision 6780)
* if upper right/lower left corners nor width/height given for
azimuthal equidistant ('aeqd') the whole world is drawn in
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-01-16 16:22:16 UTC (rev 6788)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-01-16 16:25:28 UTC (rev 6789)
@@ -48,7 +48,7 @@
else:
basemap_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
-__version__ = '0.99.3'
+__version__ = '0.99.4'
# supported map projections.
_projnames = {'cyl' : 'Cylindrical Equidistant',
Modified: trunk/toolkits/basemap/setup.py
===================================================================
--- trunk/toolkits/basemap/setup.py 2009-01-16 16:22:16 UTC (rev 6788)
+++ trunk/toolkits/basemap/setup.py 2009-01-16 16:25:28 UTC (rev 6789)
@@ -225,7 +225,7 @@
package_data = {'mpl_toolkits.basemap':pyproj_datafiles+basemap_datafiles}
setup(
name = "basemap",
- version = "0.99.3",
+ version = "0.99.4",
description = "Plot data on map projections with matplotlib",
long_description = """
An add-on toolkit for matplotlib that lets you plot data
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-01-25 14:29:37
|
Revision: 6825
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6825&view=rev
Author: jswhit
Date: 2009-01-25 14:29:31 +0000 (Sun, 25 Jan 2009)
Log Message:
-----------
added maskoceans function and example.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/MANIFEST.in
trunk/toolkits/basemap/examples/README
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Added Paths:
-----------
trunk/toolkits/basemap/examples/maskoceans.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-01-25 12:56:39 UTC (rev 6824)
+++ trunk/toolkits/basemap/Changelog 2009-01-25 14:29:31 UTC (rev 6825)
@@ -1,4 +1,5 @@
version 0.99.4 (not yet released)
+ * added 'maskoceans' function.
* update pupynere to version 1.0.8 (supports writing large files).
* added more informative error message in readshapefile when
one of the shapefile components can't be found.
Modified: trunk/toolkits/basemap/MANIFEST.in
===================================================================
--- trunk/toolkits/basemap/MANIFEST.in 2009-01-25 12:56:39 UTC (rev 6824)
+++ trunk/toolkits/basemap/MANIFEST.in 2009-01-25 14:29:31 UTC (rev 6825)
@@ -70,6 +70,7 @@
include examples/plotprecip.py
include examples/nws_precip_conus_20061222.nc
include examples/NetCDFFile_tst.py
+include examples/maskoceans.py
include examples/README
include lib/mpl_toolkits/__init__.py
include lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/examples/README
===================================================================
--- trunk/toolkits/basemap/examples/README 2009-01-25 12:56:39 UTC (rev 6824)
+++ trunk/toolkits/basemap/examples/README 2009-01-25 14:29:31 UTC (rev 6825)
@@ -123,3 +123,5 @@
save_background.py shows how to save a map background and reuse it in another
figure (without having to redraw coastlines).
+
+maskoceans.py shows how to mask 'wet' areas on a plot.
Added: trunk/toolkits/basemap/examples/maskoceans.py
===================================================================
--- trunk/toolkits/basemap/examples/maskoceans.py (rev 0)
+++ trunk/toolkits/basemap/examples/maskoceans.py 2009-01-25 14:29:31 UTC (rev 6825)
@@ -0,0 +1,46 @@
+from mpl_toolkits.basemap import Basemap, shiftgrid, maskoceans, interp
+import numpy as np
+import matplotlib.pyplot as plt
+import matplotlib.mlab as mlab
+
+topodatin = mlab.load('etopo20data.gz')
+lonsin = mlab.load('etopo20lons.gz')
+latsin = mlab.load('etopo20lats.gz')
+
+# shift data so lons go from -180 to 180 instead of 20 to 380.
+topoin,lons1 = shiftgrid(180.,topodatin,lonsin,start=False)
+lats1 = latsin
+
+fig=plt.figure()
+# setup basemap
+m=Basemap(resolution='l',projection='lcc',lon_0=-100,lat_0=40,width=8.e6,height=6.e6)
+lons, lats = np.meshgrid(lons1,lats1)
+x, y = m(lons, lats)
+# interpolate land/sea mask to topo grid, mask ocean values.
+topo = maskoceans(lons, lats, topoin, inlands=False)
+# make contour plot (ocean values will be masked)
+#CS=m.contourf(x,y,topo,np.arange(-300,3001,50),cmap=plt.cm.jet,extend='both')
+im=m.pcolormesh(x,y,topo,cmap=plt.cm.jet,vmin=-300,vmax=3000)
+# draw coastlines.
+m.drawcoastlines()
+plt.title('ETOPO data with marine areas masked (original grid)')
+
+fig=plt.figure()
+# interpolate topo data to higher resolution grid (to better match
+# the land/sea mask).
+nlats = 3*topoin.shape[0]
+nlons = 3*topoin.shape[1]
+lons = np.linspace(-180,180,nlons)
+lats = np.linspace(-90,90,nlats)
+lons, lats = np.meshgrid(lons, lats)
+topo = interp(topoin,lons1,lats1,lons,lats,order=1)
+x, y = m(lons, lats)
+# interpolate land/sea mask to topo grid, mask ocean values.
+topo = maskoceans(lons, lats, topo, inlands=False)
+# make contour plot (ocean values will be masked)
+#CS=m.contourf(x,y,topo,np.arange(-300,3001,50),cmap=plt.cm.jet,extend='both')
+im=m.pcolormesh(x,y,topo,cmap=plt.cm.jet,vmin=-300,vmax=3000)
+# draw coastlines.
+m.drawcoastlines()
+plt.title('ETOPO data with marine areas masked (data on finer grid)')
+plt.show()
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-01-25 12:56:39 UTC (rev 6824)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-01-25 14:29:31 UTC (rev 6825)
@@ -8,6 +8,8 @@
:func:`interp`: bilinear interpolation between rectilinear grids.
+:func:`maskoceans`: mask 'wet' points of an input array.
+
:func:`shiftgrid`: shifts global lat/lon grids east or west.
:func:`addcyclic`: Add cyclic (wraparound) point in longitude.
@@ -3113,20 +3115,8 @@
# read in.
if self.lsmask is None:
# read in land/sea mask.
- lsmaskf = open(os.path.join(basemap_datadir,'5minmask.bin'),'rb')
- nlons = 4320; nlats = nlons/2
- delta = 360./float(nlons)
- lsmask = np.reshape(np.fromstring(lsmaskf.read(),np.uint8),(nlats,nlons))
- lsmask_lons = np.arange(-180,180.,delta)
- lsmask_lats = np.arange(-90.,90+0.5*delta,delta)
- # add cyclic point in longitude
- lsmask, lsmask_lons = addcyclic(lsmask, lsmask_lons)
- nlons = nlons + 1; nlats = nlats + 1
- # add North Pole point (assumed water)
- tmparr = np.zeros((nlats,nlons),lsmask.dtype)
- tmparr[0:nlats-1,0:nlons] = lsmask
- lsmask = tmparr
- lsmaskf.close()
+ lsmask_lons, lsmask_lats, lsmask = _readlsmask()
+
# instance variable lsmask is set on first invocation,
# it contains the land-sea mask interpolated to the native
# projection grid. Further calls to drawlsmask will not
@@ -3950,3 +3940,53 @@
"""
cdftime = netcdftime.utime(units,calendar=calendar)
return cdftime.date2num(dates)
+
+def maskoceans(lonsin,latsin,datain,inlands=False):
+ """
+ mask data (``datain``), defined on a grid with latitudes ``latsin``
+ longitudes ``lonsin`` so that points over water will not be plotted.
+
+ .. tabularcolumns:: |l|L|
+
+ ============== ====================================================
+ Arguments Description
+ ============== ====================================================
+ lonsin, latsin rank-2 arrays containing longitudes and latitudes of
+ grid.
+ datain rank-2 input array on grid defined by ``lonsin`` and
+ ``latsin``.
+ inlands if False, mask only ocean points. If True, mask
+ ocean points and points over inland water bodies.
+ Default False.
+ ============== ====================================================
+
+ returns a masked array the same shape as datain with "wet" points masked.
+ """
+ # read in land/sea mask.
+ lsmask_lons, lsmask_lats, lsmask = _readlsmask()
+ # nearest-neighbor interpolation to output grid.
+ lsmasko = interp(lsmask,lsmask_lons,lsmask_lats,lonsin,latsin,masked=True,order=0)
+ # mask input data.
+ if inlands: # mask inland water bodies.
+ mask = np.logical_or(lsmasko==0,lsmasko==2)
+ else: # mask just marine areas.
+ mask = lsmasko == 0
+ return ma.masked_array(datain,mask=mask)
+
+def _readlsmask():
+ # read in land/sea mask.
+ lsmaskf = open(os.path.join(basemap_datadir,'5minmask.bin'),'rb')
+ nlons = 4320; nlats = nlons/2
+ delta = 360./float(nlons)
+ lsmask = np.reshape(np.fromstring(lsmaskf.read(),np.uint8),(nlats,nlons))
+ lsmask_lons = np.arange(-180,180.,delta)
+ lsmask_lats = np.arange(-90.,90+0.5*delta,delta)
+ # add cyclic point in longitude
+ lsmask, lsmask_lons = addcyclic(lsmask, lsmask_lons)
+ nlons = nlons + 1; nlats = nlats + 1
+ # add North Pole point (assumed water)
+ tmparr = np.zeros((nlats,nlons),lsmask.dtype)
+ tmparr[0:nlats-1,0:nlons] = lsmask
+ lsmask = tmparr
+ lsmaskf.close()
+ return lsmask_lons, lsmask_lats, lsmask
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-01-26 20:02:03
|
Revision: 6833
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6833&view=rev
Author: jswhit
Date: 2009-01-26 20:01:58 +0000 (Mon, 26 Jan 2009)
Log Message:
-----------
fix URL in fcstmaps.py example, update Changelog.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/examples/pnganim.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-01-26 19:51:34 UTC (rev 6832)
+++ trunk/toolkits/basemap/Changelog 2009-01-26 20:01:58 UTC (rev 6833)
@@ -1,4 +1,5 @@
version 0.99.4 (not yet released)
+ * added date2index function.
* added 'maskoceans' function.
* update pupynere to version 1.0.8 (supports writing large files).
* added more informative error message in readshapefile when
Modified: trunk/toolkits/basemap/examples/pnganim.py
===================================================================
--- trunk/toolkits/basemap/examples/pnganim.py 2009-01-26 19:51:34 UTC (rev 6832)
+++ trunk/toolkits/basemap/examples/pnganim.py 2009-01-26 20:01:58 UTC (rev 6833)
@@ -20,24 +20,15 @@
raise ValueError,'dates must be in same year'
# set OpenDAP server URL.
-URLbase="http://nomad3.ncep.noaa.gov:9090/dods/reanalyses/reanalysis-2/6hr/pgb/"
-URL=URLbase+'pres'
-URLu=URLbase+'wind'
-URLv=URLbase+'wind'
+URL="http://nomad1.ncep.noaa.gov:9090/dods/reanalyses/reanalysis-2/6hr/pgb/pgb"
print URL
-print URLu
-print URLv
try:
data = NetCDFFile(URL)
- datau = NetCDFFile(URLu)
- datav = NetCDFFile(URLv)
except:
raise IOError, 'opendap server not providing the requested data'
# read lats,lons,times.
print data.variables.keys()
-print datau.variables.keys()
-print datav.variables.keys()
latitudes = data.variables['lat'][:]
longitudes = data.variables['lon'][:].tolist()
times = data.variables['time']
@@ -55,8 +46,8 @@
raise ValueError,'date2 must be greater than date1'
# get sea level pressure and 10-m wind data.
slpdata = data.variables['presmsl']
-udata = datau.variables['ugrdprs']
-vdata = datau.variables['vgrdprs']
+udata = data.variables['ugrdprs']
+vdata = data.variables['vgrdprs']
# mult slp by 0.01 to put in units of millibars.
slpin = 0.01*slpdata[ntime1:ntime2+1,:,:]
uin = udata[ntime1:ntime2+1,0,:,:]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-03-06 19:13:56
|
Revision: 6958
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6958&view=rev
Author: jswhit
Date: 2009-03-06 19:13:45 +0000 (Fri, 06 Mar 2009)
Log Message:
-----------
add fix_aspect kwarg - when False, plot will not be forced
to match aspect ratio of map region.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-03-05 13:22:26 UTC (rev 6957)
+++ trunk/toolkits/basemap/Changelog 2009-03-06 19:13:45 UTC (rev 6958)
@@ -1,4 +1,8 @@
version 0.99.4 (not yet released)
+ * add fix_aspect kwarg to Basemap.__init__, when true
+ axes.set_aspect is set to 'auto' instead of default 'equal'.
+ Can be used to make plot fill whole plot region, even if the
+ plot region doesn't match the aspect ratio of the map region.
* added date2index function, updated netcdftime to 0.7.1.
* added maskoceans function.
* update pupynere to version 1.0.8 (supports writing large files).
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-03-05 13:22:26 UTC (rev 6957)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-03-06 19:13:45 UTC (rev 6958)
@@ -242,6 +242,8 @@
formatter, or if you want to let matplotlib label
the axes in meters using map projection
coordinates.
+ fix_aspect fix aspect ratio of plot to match aspect ratio
+ of map projection region (default True).
anchor determines how map is placed in axes rectangle
(passed to axes.set_aspect). Default is ``C``,
which means map is centered.
@@ -434,10 +436,14 @@
suppress_ticks=True,
satellite_height=35786000,
boundinglat=None,
+ fix_aspect=True,
anchor='C',
ax=None):
# docstring is added after __init__ method definition
+ # fix aspect to ratio to match aspect ratio of map projection
+ # region
+ self.fix_aspect = fix_aspect
# where to put plot in figure (default is 'C' or center)
self.anchor = anchor
# map projection.
@@ -2566,7 +2572,10 @@
# make sure aspect ratio of map preserved.
# plot is re-centered in bounding rectangle.
# (anchor instance var determines where plot is placed)
- ax.set_aspect('equal',adjustable='box',anchor=self.anchor)
+ if self.fix_aspect:
+ ax.set_aspect('equal',adjustable='box',anchor=self.anchor)
+ else:
+ ax.set_aspect('auto',adjustable='box',anchor=self.anchor)
ax.apply_aspect()
# make sure axis ticks are turned off.
if self.noticks:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-03-07 21:52:38
|
Revision: 6962
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6962&view=rev
Author: jswhit
Date: 2009-03-07 21:52:21 +0000 (Sat, 07 Mar 2009)
Log Message:
-----------
add new example showing how to plot H's and L's on a pressure map (uses scipy)
Modified Paths:
--------------
trunk/toolkits/basemap/MANIFEST.in
trunk/toolkits/basemap/examples/README
trunk/toolkits/basemap/examples/run_all.py
Added Paths:
-----------
trunk/toolkits/basemap/examples/plothighsandlows.py
Modified: trunk/toolkits/basemap/MANIFEST.in
===================================================================
--- trunk/toolkits/basemap/MANIFEST.in 2009-03-07 19:32:39 UTC (rev 6961)
+++ trunk/toolkits/basemap/MANIFEST.in 2009-03-07 21:52:21 UTC (rev 6962)
@@ -11,6 +11,7 @@
include setup.cfg
include setupegg.py
include src/*
+include examples/plothighsandlows.py
include examples/save_background.py
include examples/embedding_map_in_wx.py
include examples/cubed_sphere.py
Modified: trunk/toolkits/basemap/examples/README
===================================================================
--- trunk/toolkits/basemap/examples/README 2009-03-07 19:32:39 UTC (rev 6961)
+++ trunk/toolkits/basemap/examples/README 2009-03-07 21:52:21 UTC (rev 6962)
@@ -125,3 +125,6 @@
figure (without having to redraw coastlines).
maskoceans.py shows how to mask 'wet' areas on a plot.
+
+plothighsandlows.py shows to plot H's and L's at the local extrema of a pressure map
+(requires scipy).
Added: trunk/toolkits/basemap/examples/plothighsandlows.py
===================================================================
--- trunk/toolkits/basemap/examples/plothighsandlows.py (rev 0)
+++ trunk/toolkits/basemap/examples/plothighsandlows.py 2009-03-07 21:52:21 UTC (rev 6962)
@@ -0,0 +1,89 @@
+"""
+plot H's and L's on a sea-level pressure map
+"""
+import numpy as np
+import matplotlib.pyplot as plt
+import sys
+from mpl_toolkits.basemap import Basemap, NetCDFFile, addcyclic
+from scipy.ndimage.filters import minimum_filter, maximum_filter
+
+def extrema(mat,mode='wrap',window=10):
+ mn = minimum_filter(mat, size=window, mode=mode)
+ mx = maximum_filter(mat, size=window, mode=mode)
+ # (mat == mx) true if pixel is equal to the local max
+ # The next computation suppresses responses where
+ # the function is flat.
+ local_maxima = ((mat == mx) & (mat != mn))
+ local_minima = ((mat == mn) & (mat != mx))
+ # Get the indices of the maxima, minima
+ return np.nonzero(local_minima), np.nonzero(local_maxima)
+
+if len(sys.argv) < 2:
+ print 'enter date to plot (YYYYMMDDHH) on command line'
+ raise SystemExit
+
+# get date from command line.
+YYYYMMDDHH = sys.argv[1]
+
+# open OpenDAP dataset.
+data=NetCDFFile("http://nomad1.ncep.noaa.gov:9090/dods/gdas/rotating/gdas"+YYYYMMDDHH)
+
+# read lats,lons.
+lats = data.variables['lat'][:]
+lons1 = data.variables['lon'][:]
+nlats = len(lats)
+nlons = len(lons1)
+# read prmsl, convert to hPa (mb).
+prmsl = 0.01*data.variables['prmslmsl'][0]
+# the window parameter controls the number of highs and lows detected.
+# (higher value, fewer highs and lows)
+local_min, local_max = extrema(prmsl, mode='wrap', window=25)
+# create Basemap instance.
+m = Basemap(llcrnrlon=0,llcrnrlat=-65,urcrnrlon=360,urcrnrlat=65,projection='merc')
+# add wrap-around point in longitude.
+prmsl, lons = addcyclic(prmsl, lons1)
+# contour levels
+clevs = np.arange(900,1100.,5.)
+# find x,y of map projection grid.
+lons, lats = np.meshgrid(lons, lats)
+x, y = m(lons, lats)
+# create figure.
+fig=plt.figure(figsize=(12,6))
+cs = m.contour(x,y,prmsl,clevs,colors='k',linewidths=1.)
+m.drawcoastlines(linewidth=1.25)
+m.fillcontinents(color='0.8')
+m.drawparallels(np.arange(-80,81,20))
+m.drawmeridians(np.arange(0,360,60))
+xlows = x[local_min]; xhighs = x[local_max]
+ylows = y[local_min]; yhighs = y[local_max]
+lowvals = prmsl[local_min]; highvals = prmsl[local_max]
+# plot lows as blue L's, with min pressure value underneath.
+xyplotted = []
+# don't plot if there is already a L or H within dmin meters.
+dmin = 500000
+for x,y,p in zip(xlows, ylows, lowvals):
+ if x < m.xmax and x > m.xmin and y < m.ymax and y > m.ymin:
+ dist = [np.sqrt((x-x0)**2+(y-y0)**2) for x0,y0 in xyplotted]
+ if not dist or min(dist) > dmin:
+ plt.text(x,y,'L',fontsize=14,fontweight='bold',
+ horizontalalignment='center',
+ verticalalignment='center',color='blue')
+ plt.text(x,y-400000,repr(int(p)),fontsize=9,
+ horizontalalignment='center',
+ verticalalignment='top',color='blue')
+ xyplotted.append((x,y))
+# plot highs as red H's, with max pressure value underneath.
+xyplotted = []
+for x,y,p in zip(xhighs, yhighs, highvals):
+ if x < m.xmax and x > m.xmin and y < m.ymax and y > m.ymin:
+ dist = [np.sqrt((x-x0)**2+(y-y0)**2) for x0,y0 in xyplotted]
+ if not dist or min(dist) > dmin:
+ plt.text(x,y,'H',fontsize=14,fontweight='bold',
+ horizontalalignment='center',
+ verticalalignment='center',color='red')
+ plt.text(x,y-400000,repr(int(p)),fontsize=9,
+ horizontalalignment='center',
+ verticalalignment='top',color='red')
+ xyplotted.append((x,y))
+plt.title('Mean Sea-Level Pressure (with Highs and Lows) %s' % YYYYMMDDHH)
+plt.show()
Modified: trunk/toolkits/basemap/examples/run_all.py
===================================================================
--- trunk/toolkits/basemap/examples/run_all.py 2009-03-07 19:32:39 UTC (rev 6961)
+++ trunk/toolkits/basemap/examples/run_all.py 2009-03-07 21:52:21 UTC (rev 6962)
@@ -6,7 +6,8 @@
test_files.remove('pnganim.py')
test_files.remove('geos_demo_2.py')
test_files.remove('plotsst.py')
-test_files.remove('embedding_map_in_wx.py')
+test_files.remove('embedding_map_in_wx.py') # requires wx
+test_files.remove('plothighsandlows.py') # requires scipy
print test_files
py_path = os.environ.get('PYTHONPATH')
if py_path is None:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-03-14 13:53:42
|
Revision: 6977
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6977&view=rev
Author: jswhit
Date: 2009-03-14 13:53:24 +0000 (Sat, 14 Mar 2009)
Log Message:
-----------
added shaded relief plot example.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/MANIFEST.in
trunk/toolkits/basemap/examples/README
Added Paths:
-----------
trunk/toolkits/basemap/examples/plotmap_shaded.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-03-14 13:49:09 UTC (rev 6976)
+++ trunk/toolkits/basemap/Changelog 2009-03-14 13:53:24 UTC (rev 6977)
@@ -1,4 +1,5 @@
version 0.99.4 (not yet released)
+ * added new example "plotmap_shaded.py" (shaded relief plot).
* added new example "plothighsandlows.py".
* add fix_aspect kwarg to Basemap.__init__, when False
axes.set_aspect is set to 'auto' instead of default 'equal'.
Modified: trunk/toolkits/basemap/MANIFEST.in
===================================================================
--- trunk/toolkits/basemap/MANIFEST.in 2009-03-14 13:49:09 UTC (rev 6976)
+++ trunk/toolkits/basemap/MANIFEST.in 2009-03-14 13:53:24 UTC (rev 6977)
@@ -40,6 +40,7 @@
include examples/plotmap.py
include examples/plotmap_oo.py
include examples/plotmap_masked.py
+include examples/plotmap_shaded.py
include examples/contour_demo.py
include examples/customticks.py
include examples/quiver_demo.py
Modified: trunk/toolkits/basemap/examples/README
===================================================================
--- trunk/toolkits/basemap/examples/README 2009-03-14 13:49:09 UTC (rev 6976)
+++ trunk/toolkits/basemap/examples/README 2009-03-14 13:53:24 UTC (rev 6977)
@@ -20,6 +20,9 @@
in test.py) which shows the ETOPO topography as an image on a Lambert
Conformal projection (using imshow).
+plotmap_shaded.py shows how to make a 'shaded relief' plot by specifying
+the location of a lightsource.
+
plotmap_oo.py is a version of plotmap.py that does not import pylab - it uses
the matplotlib OO interface instead.
Added: trunk/toolkits/basemap/examples/plotmap_shaded.py
===================================================================
--- trunk/toolkits/basemap/examples/plotmap_shaded.py (rev 0)
+++ trunk/toolkits/basemap/examples/plotmap_shaded.py 2009-03-14 13:53:24 UTC (rev 6977)
@@ -0,0 +1,48 @@
+# make shaded relief plot of etopo bathymetry/topography data on
+# lambert conformal conic map projection.
+
+# the data is interpolated to the native projection grid.
+
+from mpl_toolkits.basemap import Basemap, shiftgrid
+import numpy as np
+import matplotlib.pyplot as plt
+import matplotlib.mlab as mlab
+from matplotlib.colors import lightsource
+
+# read in topo data (on a regular lat/lon grid)
+# longitudes go from 20 to 380.
+topoin = mlab.load('etopo20data.gz')
+lons = mlab.load('etopo20lons.gz')
+lats = mlab.load('etopo20lats.gz')
+# shift data so lons go from -180 to 180 instead of 20 to 380.
+topoin,lons = shiftgrid(180.,topoin,lons,start=False)
+
+# setup of basemap ('lcc' = lambert conformal conic).
+# use major and minor sphere radii from WGS84 ellipsoid.
+m = Basemap(llcrnrlon=-145.5,llcrnrlat=1.,urcrnrlon=-2.566,urcrnrlat=46.352,\
+ rsphere=(6378137.00,6356752.3142),\
+ resolution='l',area_thresh=1000.,projection='lcc',\
+ lat_1=50.,lon_0=-107.)
+# transform to nx x ny regularly spaced native projection grid
+nx = int((m.xmax-m.xmin)/40000.)+1; ny = int((m.ymax-m.ymin)/40000.)+1
+topodat,x,y = m.transform_scalar(topoin,lons,lats,nx,ny,returnxy=True)
+ls = lightsource(azdeg = 90, altdeg = 20)
+print topodat.shape
+rgb = ls.shade(topodat, plt.cm.jet)
+# create the figure.
+fig=plt.figure(figsize=(8,8))
+# plot image over map with imshow.
+im = m.imshow(rgb)
+# draw coastlines and political boundaries.
+m.drawcoastlines()
+m.drawcountries()
+# draw parallels and meridians.
+# label on left, right and bottom of map.
+parallels = np.arange(0.,80,20.)
+m.drawparallels(parallels,labels=[1,1,0,1])
+meridians = np.arange(10.,360.,30.)
+m.drawmeridians(meridians,labels=[1,1,0,1])
+# set title.
+plt.title('ETOPO Shaded Relief - Lambert Conformal Conic')
+#plt.savefig('plotmap.pdf')
+plt.show()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-03-30 22:57:50
|
Revision: 7013
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7013&view=rev
Author: jswhit
Date: 2009-03-30 22:57:31 +0000 (Mon, 30 Mar 2009)
Log Message:
-----------
added latmax kwarg to drawparallels and drawmeridians (patch from Chris Murphy).
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/README
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-03-29 03:43:49 UTC (rev 7012)
+++ trunk/toolkits/basemap/Changelog 2009-03-30 22:57:31 UTC (rev 7013)
@@ -1,4 +1,6 @@
version 0.99.4 (not yet released)
+ * added latmax kwarg to drawparallels and drawmeridians
+ (patch from Chris Murphy).
* added new example "plotmap_shaded.py" (shaded relief plot).
* added new example "plothighsandlows.py".
* add fix_aspect kwarg to Basemap.__init__, when False
Modified: trunk/toolkits/basemap/README
===================================================================
--- trunk/toolkits/basemap/README 2009-03-29 03:43:49 UTC (rev 7012)
+++ trunk/toolkits/basemap/README 2009-03-30 22:57:31 UTC (rev 7013)
@@ -132,5 +132,6 @@
Ryan May
David Huard
Mauro Cavalcanti
+Chris Murphy
for valuable contributions.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-03-29 03:43:49 UTC (rev 7012)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-03-30 22:57:31 UTC (rev 7013)
@@ -1711,7 +1711,8 @@
def drawparallels(self,circles,color='k',linewidth=1.,zorder=None, \
dashes=[1,1],labels=[0,0,0,0],labelstyle=None, \
- fmt='%g',xoffset=None,yoffset=None,ax=None,**kwargs):
+ fmt='%g',xoffset=None,yoffset=None,ax=None,latmax=None,
+ **kwargs):
"""
Draw and label parallels (latitude lines) for values (in degrees)
given in the sequence ``circles``.
@@ -1748,6 +1749,8 @@
(default is 0.01 times height of map in map
projection coordinates).
ax axes instance (overrides default axes instance)
+ latmax absolute value of latitude to which meridians are drawn
+ (default is 80).
\**kwargs additional keyword arguments controlling text
for labels that are passed on to
the text method of the axes instance (see
@@ -1769,7 +1772,7 @@
elif ax is None and self.ax is not None:
ax = self.ax
# don't draw meridians past latmax, always draw parallel at latmax.
- latmax = 80.
+ if latmax is None: latmax = 80.
# offset for labels.
if yoffset is None:
yoffset = (self.urcrnry-self.llcrnry)/100.
@@ -1968,7 +1971,8 @@
def drawmeridians(self,meridians,color='k',linewidth=1., zorder=None,\
dashes=[1,1],labels=[0,0,0,0],labelstyle=None,\
- fmt='%g',xoffset=None,yoffset=None,ax=None,**kwargs):
+ fmt='%g',xoffset=None,yoffset=None,ax=None,latmax=None,
+ **kwargs):
"""
Draw and label meridians (longitude lines) for values (in degrees)
given in the sequence ``meridians``.
@@ -2005,6 +2009,8 @@
(default is 0.01 times height of map in map
projection coordinates).
ax axes instance (overrides default axes instance)
+ latmax absolute value of latitude to which meridians are drawn
+ (default is 80).
\**kwargs additional keyword arguments controlling text
for labels that are passed on to
the text method of the axes instance (see
@@ -2026,7 +2032,7 @@
elif ax is None and self.ax is not None:
ax = self.ax
# don't draw meridians past latmax, always draw parallel at latmax.
- latmax = 80. # not used for cyl, merc or miller projections.
+ if latmax is None: latmax = 80. # unused w/ cyl, merc or miller proj.
# offset for labels.
if yoffset is None:
yoffset = (self.urcrnry-self.llcrnry)/100.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-08-24 20:31:24
|
Revision: 7556
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7556&view=rev
Author: jswhit
Date: 2009-08-24 20:31:17 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
add new daynight.py example.
Modified Paths:
--------------
trunk/toolkits/basemap/MANIFEST.in
trunk/toolkits/basemap/examples/README
trunk/toolkits/basemap/examples/daynight.py
Modified: trunk/toolkits/basemap/MANIFEST.in
===================================================================
--- trunk/toolkits/basemap/MANIFEST.in 2009-08-24 19:03:32 UTC (rev 7555)
+++ trunk/toolkits/basemap/MANIFEST.in 2009-08-24 20:31:17 UTC (rev 7556)
@@ -19,6 +19,7 @@
include examples/hires.py
include examples/simpletest_oo.py
include examples/randompoints.py
+include examples/daynight.py
include examples/test.py
include examples/us_25m.dem
include examples/testgdal.py
Modified: trunk/toolkits/basemap/examples/README
===================================================================
--- trunk/toolkits/basemap/examples/README 2009-08-24 19:03:32 UTC (rev 7555)
+++ trunk/toolkits/basemap/examples/README 2009-08-24 20:31:17 UTC (rev 7556)
@@ -131,3 +131,5 @@
plothighsandlows.py shows to plot H's and L's at the local extrema of a pressure map
(requires scipy).
+
+daynight.py shows how to shade the regions of a map where the sun has set.
Modified: trunk/toolkits/basemap/examples/daynight.py
===================================================================
--- trunk/toolkits/basemap/examples/daynight.py 2009-08-24 19:03:32 UTC (rev 7555)
+++ trunk/toolkits/basemap/examples/daynight.py 2009-08-24 20:31:17 UTC (rev 7556)
@@ -3,6 +3,9 @@
import matplotlib.pyplot as plt
from datetime import datetime
+# example showing how to compute the day/night terminator and shade nightime
+# areas on a map.
+
def epem(date):
"""
input: date - datetime object (assumed UTC)
@@ -56,7 +59,7 @@
daynight[:,nlon] = np.where(lats2[:,nlon]>lats[nlon],0,daynight[:,nlon])
return lons2,lats2,daynight
-# now, in UTC time.
+# current time in UTC.
d = datetime.utcnow()
# miller projection
@@ -66,6 +69,7 @@
map.drawparallels(np.arange(-90,90,30),labels=[1,0,0,0])
map.drawmeridians(np.arange(-180,180,60),labels=[0,0,0,1])
# create grid of day=0, night=1
+# 1441 means use a 0.25 degree grid.
lons,lats,daynight = daynightgrid(d,1441)
x,y = map(lons, lats)
# contour this grid with 1 contour level, specifying colors.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-08-26 01:12:49
|
Revision: 7571
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7571&view=rev
Author: jswhit
Date: 2009-08-26 01:12:32 +0000 (Wed, 26 Aug 2009)
Log Message:
-----------
added nightshade method
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/examples/daynight.py
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/setup.py
Added Paths:
-----------
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/solar.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-08-25 20:06:13 UTC (rev 7570)
+++ trunk/toolkits/basemap/Changelog 2009-08-26 01:12:32 UTC (rev 7571)
@@ -1,3 +1,6 @@
+version 0.99.5 (not yet released)
+ * added 'nightshade' method to shade night regions on a map.
+ * added lonmin, lonmax instance variables.
version 0.99.4 (svn revision 7332)
* ax.frame replaced with ax.spines to maintain compatibility
with matplotlib spines support.
Modified: trunk/toolkits/basemap/examples/daynight.py
===================================================================
--- trunk/toolkits/basemap/examples/daynight.py 2009-08-25 20:06:13 UTC (rev 7570)
+++ trunk/toolkits/basemap/examples/daynight.py 2009-08-26 01:12:32 UTC (rev 7571)
@@ -1,93 +1,16 @@
import numpy as np
-from mpl_toolkits.basemap import Basemap, netcdftime
+from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from datetime import datetime
-from numpy import ma
# example showing how to compute the day/night terminator and shade nightime
# areas on a map.
-
-def epem(date):
- """
- input: date - datetime object (assumed UTC)
- ouput: gha - Greenwich hour angle, the angle between the Greenwich
- meridian and the meridian containing the subsolar point.
- dec - solar declination.
- """
- dg2rad = np.pi/180.
- rad2dg = 1./dg2rad
- # compute julian day from UTC datetime object.
- jday = netcdftime.JulianDayFromDate(date)
- jd = np.floor(jday) # truncate to integer.
- # utc hour.
- ut = date.hour + date.minute/60. + date.second/3600.
- # calculate number of centuries from J2000
- t = (jd + (ut/24.) - 2451545.0) / 36525.
- # mean longitude corrected for aberration
- l = (280.460 + 36000.770 * t) % 360
- # mean anomaly
- g = 357.528 + 35999.050 * t
- # ecliptic longitude
- lm = l + 1.915 * np.sin(g*dg2rad) + 0.020 * np.sin(2*g*dg2rad)
- # obliquity of the ecliptic
- ep = 23.4393 - 0.01300 * t
- # equation of time
- eqtime = -1.915*np.sin(g*dg2rad) - 0.020*np.sin(2*g*dg2rad) \
- + 2.466*np.sin(2*lm*dg2rad) - 0.053*np.sin(4*lm*dg2rad)
- # Greenwich hour angle
- gha = 15*ut - 180 + eqtime
- # declination of sun
- dec = np.arcsin(np.sin(ep*dg2rad) * np.sin(lm*dg2rad)) * rad2dg
- return gha, dec
-
-def daynightgrid(date, nlons):
- """
- date is datetime object (assumed UTC).
- nlons is # of longitudes used to compute terminator."""
- dg2rad = np.pi/180.
- lons = np.linspace(-180,180,nlons).astype(np.float32)
- # compute greenwich hour angle and solar declination
- # from datetime object (assumed UTC).
- tau, dec = epem(date)
- # compute day/night terminator from hour angle, declination.
- longitude = lons + tau
- lats = np.arctan(-np.cos(longitude*dg2rad)/np.tan(dec*dg2rad))/dg2rad
- # create day/night grid (1 for night, 0 for day)
- nlats = ((nlons-1)/2)+1
- lons2 = np.linspace(-180,180,nlons).astype(np.float32)
- lats2 = np.linspace(-90,90,nlats).astype(np.float32)
- lons2, lats2 = np.meshgrid(lons2,lats2)
- lats = lats[np.newaxis,:]*np.ones((nlats,nlons),dtype=np.float32)
- daynight = np.ones(lons2.shape, np.int8)
- daynight = np.where(lats2>lats,0,daynight)
- daynight = ma.array(daynight,mask=1-daynight) # mask day areas.
- return lons2,lats2,daynight
-
-class Basemap2(Basemap):
- def nightshade(self,date,color="k",nlons=1441,alpha=0.5,zorder=None):
- # create grid of day=0, night=1
- # 1441 means use a 0.25 degree grid.
- lons,lats,daynight = daynightgrid(date,nlons)
- x,y = self(lons,lats)
- # contour the day-night grid, coloring the night area
- # with the specified color and transparency.
- CS = map.contourf(x,y,daynight,1,colors=[color],alpha=alpha)
- # set zorder on ContourSet collections show night shading
- # is on top.
- for c in CS.collections:
- if zorder is None:
- c.set_zorder(c.get_zorder()+1)
- else:
- c.set_zorder(zorder)
- return CS
-
-
# miller projection
-map = Basemap2(projection='mill',lon_0=0)
+map = Basemap(projection='mill',lon_0=180)
# plot coastlines, draw label meridians and parallels.
map.drawcoastlines()
map.drawparallels(np.arange(-90,90,30),labels=[1,0,0,0])
-map.drawmeridians(np.arange(-180,180,60),labels=[0,0,0,1])
+map.drawmeridians(np.arange(map.lonmin,map.lonmax+30,60),labels=[0,0,0,1])
# fill continents 'coral' (with zorder=0), color wet areas 'aqua'
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='coral',lake_color='aqua')
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-08-25 20:06:13 UTC (rev 7570)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-08-26 01:12:32 UTC (rev 7571)
@@ -53,7 +53,7 @@
else:
basemap_datadir = os.sep.join([os.path.dirname(__file__), 'data'])
-__version__ = '0.99.4'
+__version__ = '0.99.5'
# supported map projections.
_projnames = {'cyl' : 'Cylindrical Equidistant',
@@ -3421,6 +3421,42 @@
raise KeyError("barstyle must be 'simple' or 'fancy'")
return rets
+ def nightshade(self,date,color="k",delta=0.25,alpha=0.5,ax=None,zorder=2):
+ """
+ Shade the regions of the map that are in darkness at the time
+ specifed by ``date``. ``date`` is a datetime instance,
+ assumed to be UTC.
+
+ .. tabularcolumns:: |l|L|
+
+ ============== ====================================================
+ Keywords Description
+ ============== ====================================================
+ color color to shade night regions (default black).
+ delta day/night terminator is computed with a
+ a resolution of ``delta`` degrees (default 0.25).
+ alpha alpha transparency for shading (default 0.5, so
+ map background shows through).
+ zorder zorder for shading (default 2).
+ ============== ====================================================
+
+ Extra keyword ``ax`` can be used to override the default axis instance.
+
+ returns a matplotlib.contour.ContourSet instance.
+ """
+ from solar import daynight_grid
+ # create grid of day=0, night=1
+ lons,lats,daynight = daynight_grid(date,delta,self.lonmin,self.lonmax)
+ x,y = self(lons,lats)
+ # contour the day-night grid, coloring the night area
+ # with the specified color and transparency.
+ CS = self.contourf(x,y,daynight,1,colors=[color],alpha=alpha,ax=ax)
+ # set zorder on ContourSet collections show night shading
+ # is on top.
+ for c in CS.collections:
+ c.set_zorder(zorder)
+ return CS
+
def _check_ax(self):
"""
Returns the axis on which to draw.
Added: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/solar.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/solar.py (rev 0)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/solar.py 2009-08-26 01:12:32 UTC (rev 7571)
@@ -0,0 +1,66 @@
+# some simple functions to calculate solar position, day-night terminator
+import numpy as np
+from numpy import ma
+import netcdftime
+
+def epem(date):
+ """
+ input: date - datetime object (assumed UTC)
+ ouput: gha - Greenwich hour angle, the angle between the Greenwich
+ meridian and the meridian containing the subsolar point.
+ dec - solar declination.
+ """
+ dg2rad = np.pi/180.
+ rad2dg = 1./dg2rad
+ # compute julian day from UTC datetime object.
+ jday = netcdftime.JulianDayFromDate(date)
+ jd = np.floor(jday) # truncate to integer.
+ # utc hour.
+ ut = date.hour + date.minute/60. + date.second/3600.
+ # calculate number of centuries from J2000
+ t = (jd + (ut/24.) - 2451545.0) / 36525.
+ # mean longitude corrected for aberration
+ l = (280.460 + 36000.770 * t) % 360
+ # mean anomaly
+ g = 357.528 + 35999.050 * t
+ # ecliptic longitude
+ lm = l + 1.915 * np.sin(g*dg2rad) + 0.020 * np.sin(2*g*dg2rad)
+ # obliquity of the ecliptic
+ ep = 23.4393 - 0.01300 * t
+ # equation of time
+ eqtime = -1.915*np.sin(g*dg2rad) - 0.020*np.sin(2*g*dg2rad) \
+ + 2.466*np.sin(2*lm*dg2rad) - 0.053*np.sin(4*lm*dg2rad)
+ # Greenwich hour angle
+ gha = 15*ut - 180 + eqtime
+ # declination of sun
+ dec = np.arcsin(np.sin(ep*dg2rad) * np.sin(lm*dg2rad)) * rad2dg
+ return gha, dec
+
+def daynight_terminator(date, delta, lonmin, lonmax):
+ """
+ date is datetime object (assumed UTC).
+ nlons is # of longitudes used to compute terminator."""
+ dg2rad = np.pi/180.
+ lons = np.arange(lonmin,lonmax+0.5*delta,delta,dtype=np.float32)
+ # compute greenwich hour angle and solar declination
+ # from datetime object (assumed UTC).
+ tau, dec = epem(date)
+ # compute day/night terminator from hour angle, declination.
+ longitude = lons + tau
+ lats = np.arctan(-np.cos(longitude*dg2rad)/np.tan(dec*dg2rad))/dg2rad
+ return lons, lats
+
+def daynight_grid(date, delta, lonmin, lonmax):
+ """
+ date is datetime object (assumed UTC).
+ delta is the grid interval (in degrees) used to compute terminator."""
+ lons, lats = daynight_terminator(date, delta, lonmin, lonmax)
+ # create day/night grid (1 for night, 0 for day)
+ lats2 = np.arange(-90,90+0.5*delta,delta,dtype=np.float32)
+ nlons = len(lons); nlats = len(lats2)
+ lons2, lats2 = np.meshgrid(lons,lats2)
+ lats = lats[np.newaxis,:]*np.ones((nlats,nlons),dtype=np.float32)
+ daynight = np.ones(lons2.shape, np.int8)
+ daynight = np.where(lats2>lats,0,daynight)
+ daynight = ma.array(daynight,mask=1-daynight) # mask day areas.
+ return lons2,lats2,daynight
Modified: trunk/toolkits/basemap/setup.py
===================================================================
--- trunk/toolkits/basemap/setup.py 2009-08-25 20:06:13 UTC (rev 7570)
+++ trunk/toolkits/basemap/setup.py 2009-08-26 01:12:32 UTC (rev 7571)
@@ -225,7 +225,7 @@
package_data = {'mpl_toolkits.basemap':pyproj_datafiles+basemap_datafiles}
setup(
name = "basemap",
- version = "0.99.4",
+ version = "0.99.5",
description = "Plot data on map projections with matplotlib",
long_description = """
An add-on toolkit for matplotlib that lets you plot data
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-10-17 13:02:46
|
Revision: 7890
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7890&view=rev
Author: jswhit
Date: 2009-10-17 13:02:30 +0000 (Sat, 17 Oct 2009)
Log Message:
-----------
remove restriction that cyclic point be included in shiftgrid function
(patch from Eric Bruning). Add unit tests for shiftgrid in test.py
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/README
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/test.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-10-16 17:31:42 UTC (rev 7889)
+++ trunk/toolkits/basemap/Changelog 2009-10-17 13:02:30 UTC (rev 7890)
@@ -1,4 +1,6 @@
version 0.99.5 (not yet released)
+ * shiftgrid no longer requires a cyclic point to be present
+ (patch from Eric Bruning).
* fix date2index bugs.
* update date2index function with a bug-fix from netcdf4-python.
* in contourf method, mask data outside map projection region
Modified: trunk/toolkits/basemap/README
===================================================================
--- trunk/toolkits/basemap/README 2009-10-16 17:31:42 UTC (rev 7889)
+++ trunk/toolkits/basemap/README 2009-10-17 13:02:30 UTC (rev 7890)
@@ -140,5 +140,6 @@
Chris Murphy
Pierre Gerard-Marchant
Christoph Gohlke
+Eric Bruning
for valuable contributions.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-10-16 17:31:42 UTC (rev 7889)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-10-17 13:02:30 UTC (rev 7890)
@@ -3677,10 +3677,9 @@
dataout = np.where(xymask,masked,dataout)
return dataout
-def shiftgrid(lon0,datain,lonsin,start=True):
+def shiftgrid(lon0,datain,lonsin,start=True,cyclic=360.0):
"""
Shift global lat/lon grid east or west.
- assumes wraparound (or cyclic point) is included.
.. tabularcolumns:: |l|L|
@@ -3702,15 +3701,21 @@
start if True, lon0 represents the starting longitude
of the new grid. if False, lon0 is the ending
longitude. Default True.
+ cyclic width of periodic domain (default 360)
============== ====================================================
returns ``dataout,lonsout`` (data and longitudes on shifted grid).
"""
- if np.fabs(lonsin[-1]-lonsin[0]-360.) > 1.e-4:
- raise ValueError, 'cyclic point not included'
+ if np.fabs(lonsin[-1]-lonsin[0]-cyclic) > 1.e-4:
+ # Use all data instead of raise ValueError, 'cyclic point not included'
+ start_idx = 0
+ else:
+ # If cyclic, remove the duplicate point
+ start_idx = 1
if lon0 < lonsin[0] or lon0 > lonsin[-1]:
raise ValueError, 'lon0 outside of range of lonsin'
i0 = np.argmin(np.fabs(lonsin-lon0))
+ i0_shift = len(lonsin)-i0
if hasattr(datain,'mask'):
dataout = ma.zeros(datain.shape,datain.dtype)
else:
@@ -3720,15 +3725,15 @@
else:
lonsout = np.zeros(lonsin.shape,lonsin.dtype)
if start:
- lonsout[0:len(lonsin)-i0] = lonsin[i0:]
+ lonsout[0:i0_shift] = lonsin[i0:]
else:
- lonsout[0:len(lonsin)-i0] = lonsin[i0:]-360.
- dataout[:,0:len(lonsin)-i0] = datain[:,i0:]
+ lonsout[0:i0_shift] = lonsin[i0:]-cyclic
+ dataout[:,0:i0_shift] = datain[:,i0:]
if start:
- lonsout[len(lonsin)-i0:] = lonsin[1:i0+1]+360.
+ lonsout[i0_shift:] = lonsin[start_idx:i0+start_idx]+cyclic
else:
- lonsout[len(lonsin)-i0:] = lonsin[1:i0+1]
- dataout[:,len(lonsin)-i0:] = datain[:,1:i0+1]
+ lonsout[i0_shift:] = lonsin[start_idx:i0+start_idx]
+ dataout[:,i0_shift:] = datain[:,start_idx:i0+start_idx]
return dataout,lonsout
def addcyclic(arrin,lonsin):
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/test.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/test.py 2009-10-16 17:31:42 UTC (rev 7889)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/test.py 2009-10-17 13:02:30 UTC (rev 7890)
@@ -1,10 +1,12 @@
-from mpl_toolkits.basemap import Basemap
+from mpl_toolkits.basemap import Basemap, shiftgrid
import numpy as np
# beginnings of a test suite.
-from numpy.testing import NumpyTestCase,assert_almost_equal
-class TestRotateVector(NumpyTestCase):
+from numpy.testing import TestCase,assert_almost_equal
+
+class TestRotateVector(TestCase):
+
def make_array(self):
lat = np.array([0, 45, 75, 90])
lon = np.array([0,90,180,270])
@@ -17,7 +19,6 @@
B = Basemap()
u,v,lat,lon=self.make_array()
ru, rv = B.rotate_vector(u,v, lon, lat)
-
# Check that the vectors are identical.
assert_almost_equal(ru, u)
assert_almost_equal(rv, v)
@@ -37,20 +38,74 @@
B=Basemap(projection='npstere', boundinglat=50., lon_0=0.)
u,v,lat,lon=self.make_array()
v = np.ones((len(lat), len(lon)))
-
ru, rv = B.rotate_vector(u,v, lon, lat)
-
assert_almost_equal(ru[2, :],[1,-1,-1,1], 6)
assert_almost_equal(rv[2, :],[1,1,-1,-1], 6)
+class TestShiftGrid(TestCase):
+
+ def make_data_cyc(self):
+ loncyc = np.array([0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300,\
+ 330, 360],dtype=np.float)
+ gridcyc = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,\
+ 11, 0]],dtype=np.float)
+ lonoutcyc = np.array([-180, -150, -120, -90, -60, -30, 0, 30,60,90,\
+ 120, 150, 180],dtype=np.float)
+ gridoutcyc = np.array([[ 6, 7, 8, 9, 10, 11, 0, 1, 2,3,\
+ 4, 5, 6]],dtype=np.float)
+ return loncyc, gridcyc, lonoutcyc, gridoutcyc
+
+ def make_data_nocyc(self):
+ lonnocyc = np.array([0, 30, 60, 90, 120, 150, 180, 210, 240, 270,\
+ 300, 330],dtype=np.float)
+ gridnocyc = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\
+ 10, 11]],dtype=np.float)
+ lonoutnocyc = np.array([-180, -150, -120, -90, -60, -30, 0, 30, 60,\
+ 90, 120, 150],dtype=np.float)
+ gridoutnocyc = np.array([[ 6, 7, 8, 9, 10, 11, 0, 1, 2,\
+ 3, 4, 5]],dtype=np.float)
+ return lonnocyc, gridnocyc, lonoutnocyc, gridoutnocyc
+
+ def make_data_nocyc2(self):
+ lonnocyc2 = np.array([15, 45, 75, 105, 135, 165, 195, 225, 255, 285,\
+ 315, 345],dtype=np.float)
+ gridnocyc2 = np.array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\
+ 10, 11]],dtype=np.float)
+ lonoutnocyc2 = np.array([-165, -135, -105, -75, -45, -15, 15,45,75,\
+ 105, 135, 165],dtype=np.float)
+ gridoutnocyc2 = np.array([[ 6, 7, 8, 9, 10, 11, 0, 1, 2,\
+ 3, 4, 5]],dtype=np.float)
+ return lonnocyc2, gridnocyc2, lonoutnocyc2, gridoutnocyc2
+
+ def test_cyc(self):
+ lonin, gridin, lonout, gridout = self.make_data_cyc()
+ grid, lon = shiftgrid(lonin[len(lonin)/2], gridin, lonin, start=False)
+ assert (lon==lonout).all()
+ assert (grid==gridout).all()
+
+ def test_no_cyc(self):
+ lonin, gridin, lonout, gridout = self.make_data_nocyc()
+ grid, lon = shiftgrid(lonin[len(lonin)/2], gridin, lonin, start=False)
+ assert (lon==lonout).all()
+ assert (grid==gridout).all()
+
+ def test_no_cyc2(self):
+ lonin, gridin, lonout, gridout = self.make_data_nocyc2()
+ grid, lon = shiftgrid(lonin[len(lonin)/2], gridin, lonin, start=False)
+ assert (lon==lonout).all()
+ assert (grid==gridout).all()
+
+
def test():
"""
Run some tests.
"""
import unittest
- suite = unittest.makeSuite(TestRotateVector,'test')
+ rotatevector_suite = unittest.makeSuite(TestRotateVector,'test')
+ shiftgrid_suite = unittest.makeSuite(TestShiftGrid,'test')
runner = unittest.TextTestRunner()
- runner.run(suite)
+ runner.run(rotatevector_suite)
+ runner.run(shiftgrid_suite)
if __name__ == '__main__':
test()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-11-02 17:38:06
|
Revision: 7913
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7913&view=rev
Author: jswhit
Date: 2009-11-02 17:32:09 +0000 (Mon, 02 Nov 2009)
Log Message:
-----------
add geos 3.1.1 source
Added Paths:
-----------
trunk/toolkits/basemap/geos-3.1.1/
trunk/toolkits/basemap/geos-3.1.1/AUTHORS
trunk/toolkits/basemap/geos-3.1.1/COPYING
trunk/toolkits/basemap/geos-3.1.1/ChangeLog
trunk/toolkits/basemap/geos-3.1.1/INSTALL
trunk/toolkits/basemap/geos-3.1.1/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/NEWS
trunk/toolkits/basemap/geos-3.1.1/README
trunk/toolkits/basemap/geos-3.1.1/TODO
trunk/toolkits/basemap/geos-3.1.1/aclocal.m4
trunk/toolkits/basemap/geos-3.1.1/acsite.m4
trunk/toolkits/basemap/geos-3.1.1/build/
trunk/toolkits/basemap/geos-3.1.1/build/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/README
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/README
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos.sln
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos.vsprops
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_c_dll/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_c_dll/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_c_dll/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_c_dll/geos_c_dll.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_lib/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_lib/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_lib/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_lib/geos_lib.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_python/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_python/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_python/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_python/geos_python.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_ruby/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_ruby/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_ruby/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_ruby/geos_ruby.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_unit/
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_unit/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_unit/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc80/geos_unit/geos_unit.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/README
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos.sln
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos.vsprops
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_c_dll/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_c_dll/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_c_dll/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_c_dll/geos_c_dll.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_lib/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_lib/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_lib/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_lib/geos_lib.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_python/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_python/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_python/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_python/geos_python.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_ruby/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_ruby/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_ruby/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_ruby/geos_ruby.vcproj
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_unit/
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_unit/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_unit/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/build/msvc90/geos_unit/geos_unit.vcproj
trunk/toolkits/basemap/geos-3.1.1/capi/
trunk/toolkits/basemap/geos-3.1.1/capi/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/capi/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/capi/geos_c.cpp
trunk/toolkits/basemap/geos-3.1.1/capi/geos_c.h
trunk/toolkits/basemap/geos-3.1.1/capi/geos_c.h.in
trunk/toolkits/basemap/geos-3.1.1/capi/geos_ts_c.cpp
trunk/toolkits/basemap/geos-3.1.1/config.guess
trunk/toolkits/basemap/geos-3.1.1/config.sub
trunk/toolkits/basemap/geos-3.1.1/configure
trunk/toolkits/basemap/geos-3.1.1/configure.in
trunk/toolkits/basemap/geos-3.1.1/depcomp
trunk/toolkits/basemap/geos-3.1.1/doc/
trunk/toolkits/basemap/geos-3.1.1/doc/Doxyfile
trunk/toolkits/basemap/geos-3.1.1/doc/Doxyfile.in
trunk/toolkits/basemap/geos-3.1.1/doc/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/doc/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/doc/README
trunk/toolkits/basemap/geos-3.1.1/doc/example.cpp
trunk/toolkits/basemap/geos-3.1.1/install-sh
trunk/toolkits/basemap/geos-3.1.1/ltmain.sh
trunk/toolkits/basemap/geos-3.1.1/macros/
trunk/toolkits/basemap/geos-3.1.1/macros/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/macros/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/macros/ac_pkg_swig.m4
trunk/toolkits/basemap/geos-3.1.1/macros/ac_python_devel.m4
trunk/toolkits/basemap/geos-3.1.1/macros/geos.m4
trunk/toolkits/basemap/geos-3.1.1/macros/python.m4
trunk/toolkits/basemap/geos-3.1.1/macros/ruby.m4
trunk/toolkits/basemap/geos-3.1.1/makefile.vc
trunk/toolkits/basemap/geos-3.1.1/missing
trunk/toolkits/basemap/geos-3.1.1/py-compile
trunk/toolkits/basemap/geos-3.1.1/source/
trunk/toolkits/basemap/geos-3.1.1/source/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/Makefile.vc
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/CGAlgorithms.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/CentroidArea.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/CentroidLine.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/CentroidPoint.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/ConvexHull.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/HCoordinate.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/InteriorPointArea.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/InteriorPointLine.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/InteriorPointPoint.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/LineIntersector.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/MCPointInRing.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/MinimumDiameter.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/NotRepresentableException.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/PointLocator.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/RayCrossingCounter.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/RobustDeterminant.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/SIRtreePointInRing.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/SimplePointInRing.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/IndexedPointInAreaLocator.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/PointOnGeometryLocator.cpp
trunk/toolkits/basemap/geos-3.1.1/source/algorithm/locate/SimplePointInAreaLocator.cpp
trunk/toolkits/basemap/geos-3.1.1/source/dirlist.mk
trunk/toolkits/basemap/geos-3.1.1/source/geom/
trunk/toolkits/basemap/geos-3.1.1/source/geom/Coordinate.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/CoordinateArraySequence.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/CoordinateArraySequenceFactory.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/CoordinateSequence.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Dimension.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Envelope.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Geometry.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/GeometryCollection.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/GeometryComponentFilter.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/GeometryFactory.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/GeometryList.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/IntersectionMatrix.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/LineSegment.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/LineString.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/LinearRing.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Location.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/geom/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/geom/MultiLineString.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/MultiPoint.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/MultiPolygon.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Point.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Polygon.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/PrecisionModel.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/Triangle.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/AbstractPreparedPolygonContains.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/BasicPreparedGeometry.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedGeometry.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedGeometryFactory.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedLineString.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedLineStringIntersects.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPoint.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygon.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygonContains.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygonContainsProperly.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygonCovers.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygonIntersects.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/prep/PreparedPolygonPredicate.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/ComponentCoordinateExtracter.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/CoordinateOperation.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/GeometryCombiner.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/GeometryEditor.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/GeometryTransformer.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/geom/util/ShortCircuitedGeometryVisitor.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Depth.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/DirectedEdge.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/DirectedEdgeStar.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Edge.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeEnd.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeEndStar.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeIntersection.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeIntersectionList.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeList.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeNodingValidator.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/EdgeRing.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/GeometryGraph.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/GraphComponent.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Label.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Node.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/NodeFactory.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/NodeMap.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/PlanarGraph.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Position.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/Quadrant.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/TopologyLocation.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/MonotoneChainEdge.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/MonotoneChainIndexer.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SegmentIntersector.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SimpleEdgeSetIntersector.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SimpleMCSweepLineIntersector.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SimpleSweepLineIntersector.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SweepLineEvent.cpp
trunk/toolkits/basemap/geos-3.1.1/source/geomgraph/index/SweepLineSegment.cpp
trunk/toolkits/basemap/geos-3.1.1/source/headers/
trunk/toolkits/basemap/geos-3.1.1/source/headers/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/config.h.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/CGAlgorithms.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/CentralEndpointIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/CentroidArea.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/CentroidLine.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/CentroidPoint.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/ConvexHull.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/ConvexHull.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/HCoordinate.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/InteriorPointArea.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/InteriorPointLine.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/InteriorPointPoint.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/LineIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/MCPointInRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/MinimumDiameter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/NotRepresentableException.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/PointInRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/PointLocator.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/RayCrossingCounter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/RobustDeterminant.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/SIRtreePointInRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/SimplePointInRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/IndexedPointInAreaLocator.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/PointOnGeometryLocator.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/algorithm/locate/SimplePointInAreaLocator.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/BinaryOp.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Coordinate.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Coordinate.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateArraySequence.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateArraySequenceFactory.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateArraySequenceFactory.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateFilter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateList.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateSequence.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/CoordinateSequenceFactory.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Dimension.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Envelope.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Envelope.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Geometry.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Geometry.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryCollection.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryCollection.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryComponentFilter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryFactory.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryFactory.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryFilter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/GeometryList.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/IntersectionMatrix.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/LineSegment.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/LineSegment.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/LineString.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/LinearRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Location.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/MultiLineString.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/MultiLineString.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/MultiPoint.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/MultiPolygon.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/MultiPolygon.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Point.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Polygon.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/PrecisionModel.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/PrecisionModel.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/Triangle.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/AbstractPreparedPolygonContains.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/BasicPreparedGeometry.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedGeometry.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedGeometryFactory.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedLineString.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedLineStringIntersects.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPoint.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygon.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygonContains.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygonContainsProperly.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygonCovers.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygonIntersects.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/prep/PreparedPolygonPredicate.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/ComponentCoordinateExtracter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/CoordinateOperation.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/GeometryCombiner.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/GeometryEditor.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/GeometryEditorOperation.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/GeometryTransformer.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/LinearComponentExtracter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/PointExtracter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/PolygonExtracter.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom/util/ShortCircuitedGeometryVisitor.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geom.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomUtil.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Depth.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/DirectedEdge.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/DirectedEdge.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/DirectedEdgeStar.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Edge.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeEnd.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeEndStar.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeIntersection.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeIntersectionList.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeList.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeNodingValidator.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/EdgeRing.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/GeometryGraph.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/GeometryGraph.inl
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/GraphComponent.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Label.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Node.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/NodeFactory.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/NodeMap.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/PlanarGraph.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Position.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/Quadrant.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/TopologyLocation.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/EdgeSetIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/MonotoneChain.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/MonotoneChainEdge.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/MonotoneChainIndexer.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SegmentIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SimpleEdgeSetIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SimpleMCSweepLineIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SimpleSweepLineIntersector.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SweepLineEvent.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SweepLineEventObj.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph/index/SweepLineSegment.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraph.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geomgraphindex.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/geosAlgorithm.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/ItemVisitor.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/SpatialIndex.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Bintree.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Interval.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Key.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Node.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/NodeBase.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/bintree/Root.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/MonotoneChain.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/MonotoneChainBuilder.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/MonotoneChainOverlapAction.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/chain/MonotoneChainSelectAction.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/IntervalRTreeBranchNode.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/IntervalRTreeLeafNode.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/IntervalRTreeNode.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/Makefile.in
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/intervalrtree/SortedPackedIntervalRTree.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/DoubleBits.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/IntervalSize.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/Key.h
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/Makefile.am
trunk/toolkits/basemap/geos-3.1.1/source/headers/geos/index/quadtree/Makefile.in
trunk/toolk...
[truncated message content] |
|
From: <js...@us...> - 2009-11-02 17:47:14
|
Revision: 7914
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7914&view=rev
Author: jswhit
Date: 2009-11-02 17:46:59 +0000 (Mon, 02 Nov 2009)
Log Message:
-----------
use geos 3.1.1 instead of 2.2.3
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/MANIFEST.in
trunk/toolkits/basemap/README
trunk/toolkits/basemap/setup.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-11-02 17:32:09 UTC (rev 7913)
+++ trunk/toolkits/basemap/Changelog 2009-11-02 17:46:59 UTC (rev 7914)
@@ -1,4 +1,5 @@
version 0.99.5 (not yet released)
+ * geos-3.1.1 now required. 3.1.1 source included (instead of 2.2.3).
* shiftgrid no longer requires a cyclic point to be present
(patch from Eric Bruning).
* fix date2index bugs.
Modified: trunk/toolkits/basemap/MANIFEST.in
===================================================================
--- trunk/toolkits/basemap/MANIFEST.in 2009-11-02 17:32:09 UTC (rev 7913)
+++ trunk/toolkits/basemap/MANIFEST.in 2009-11-02 17:46:59 UTC (rev 7914)
@@ -94,7 +94,7 @@
include doc/make.py
include doc/conf.py
include doc/index.rst
-recursive-include geos-2.2.3 *
+recursive-include geos-3.1.1 *
recursive-include lib/dap *
recursive-include lib/httplib2 *
recursive-include lib/dbflib *
Modified: trunk/toolkits/basemap/README
===================================================================
--- trunk/toolkits/basemap/README 2009-11-02 17:32:09 UTC (rev 7913)
+++ trunk/toolkits/basemap/README 2009-11-02 17:46:59 UTC (rev 7914)
@@ -11,8 +11,8 @@
numpy 1.1 (or higher)
-The GEOS (Geometry Engine - Open Source) library (version 2.2.3 or higher).
-Source code is included in the geos-2.2.3 directory.
+The GEOS (Geometry Engine - Open Source) library (version 3.1.1 or higher).
+Source code is included in the geos-3.1.1 directory.
PIL (http://pythonware.com/products/pil) is optional (only
needed for Basemap warpimage and bluemarble methods).
@@ -28,7 +28,7 @@
'src' directory under the terms given in LICENSE_proj4.
source code for the GEOS library is
-included in the 'geos-2.2.3' directory under the terms given in
+included in the 'geos-3.1.1' directory under the terms given in
LICENSE_geos.
pyshapelib by Bernhard Herzog is included in the 'pyshapelib' directory
@@ -93,7 +93,7 @@
Then go to step (3). If you don't have it, you can build it from
the source code included with basemap by following these steps:
- > cd geos-2.2.3
+ > cd geos-3.1.1
> export GEOS_DIR=<where you want the libs and headers to go>
A reasonable choice on a Unix-like system is /usr/local, or
if you don't have permission to write there, your home directory.
Modified: trunk/toolkits/basemap/setup.py
===================================================================
--- trunk/toolkits/basemap/setup.py 2009-11-02 17:32:09 UTC (rev 7913)
+++ trunk/toolkits/basemap/setup.py 2009-11-02 17:46:59 UTC (rev 7914)
@@ -45,11 +45,11 @@
if GEOS_dir is None:
# if GEOS_dir not set, check a few standard locations.
- GEOS_dirs = ['/usr','/usr/local','/sw','/opt','/opt/local',os.path.expanduser('~')]
+ GEOS_dirs = [os.path.expanduser('~'),'/usr','/usr/local','/sw','/opt','/opt/local']
for direc in GEOS_dirs:
geos_version = checkversion(direc)
print 'checking for GEOS lib in %s ....' % direc
- if geos_version < '"2.2.3"':
+ if geos_version < '"3.1.1"':
continue
else:
print 'GEOS lib (version %s) found in %s' % (geos_version[1:-1],direc)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-11-04 16:07:33
|
Revision: 7932
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7932&view=rev
Author: jswhit
Date: 2009-11-04 16:07:22 +0000 (Wed, 04 Nov 2009)
Log Message:
-----------
added is_land method to check if a point is over land or water.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-11-03 21:17:48 UTC (rev 7931)
+++ trunk/toolkits/basemap/Changelog 2009-11-04 16:07:22 UTC (rev 7932)
@@ -1,4 +1,6 @@
version 0.99.5 (not yet released)
+ * add "is_land" method to check whether a point is over land or
+ water.
* geos-3.1.1 now required. 3.1.1 source included (instead of 2.2.3).
* shiftgrid no longer requires a cyclic point to be present
(patch from Eric Bruning).
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-03 21:17:48 UTC (rev 7931)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-04 16:07:22 UTC (rev 7932)
@@ -801,6 +801,20 @@
else:
coastsegs.append(seg)
self.coastsegs = coastsegs
+ # create geos Polygon structures for land areas.
+ # currently only used in is_land method.
+ self.landpolygons=[]
+ self.lakepolygons=[]
+ #self.islandinlakepolygons=[]
+ #self.lakeinislandinlakepolygons=[]
+ x, y = zip(*self.coastpolygons)
+ for x,y,type in zip(x,y,self.coastpolygontypes):
+ b = np.asarray([x,y]).T
+ if type == 1: self.landpolygons.append(_geoslib.Polygon(b))
+ if type == 2: self.lakepolygons.append(_geoslib.Polygon(b))
+ #if type == 3: self.islandinlakepolygons.append(_geoslib.Polygon(b))
+ #if type == 4: self.lakeinislandinlakepolygons.append(_geoslib.Polygon(b))
+
# set __init__'s docstring
__init__.__doc__ = _Basemap_init_doc
@@ -1537,6 +1551,23 @@
self.set_axes_limits(ax=ax)
return rivers
+ def is_land(self,xpt,ypt):
+ """
+ Returns True if the given x,y point (in projection coordinates) is
+ over land, False otherwise. The definition of land is based upon
+ the GSHHS coastline polygons associated with the class instance.
+ Points over lakes inside land regions are not counted as land points.
+ """
+ landpt = False
+ for poly in self.landpolygons:
+ landpt = _geoslib.Point((xpt,ypt)).within(poly)
+ if landpt: break
+ lakept = False
+ for poly in self.lakepolygons:
+ lakept = _geoslib.Point((xpt,ypt)).within(poly)
+ if lakept: break
+ return landpt and not lakept
+
def readshapefile(self,shapefile,name,drawbounds=True,zorder=None,
linewidth=0.5,color='k',antialiased=1,ax=None):
"""
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2009-11-04 16:26:17
|
Revision: 7934
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7934&view=rev
Author: jswhit
Date: 2009-11-04 16:26:06 +0000 (Wed, 04 Nov 2009)
Log Message:
-----------
updated proj4 source to 4.7.0, pyproj to 1.8.6
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/README
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/epsg
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/td_out.dist
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/testvarious
trunk/toolkits/basemap/src/PJ_aea.c
trunk/toolkits/basemap/src/PJ_aeqd.c
trunk/toolkits/basemap/src/PJ_airy.c
trunk/toolkits/basemap/src/PJ_aitoff.c
trunk/toolkits/basemap/src/PJ_august.c
trunk/toolkits/basemap/src/PJ_bacon.c
trunk/toolkits/basemap/src/PJ_bipc.c
trunk/toolkits/basemap/src/PJ_boggs.c
trunk/toolkits/basemap/src/PJ_bonne.c
trunk/toolkits/basemap/src/PJ_cass.c
trunk/toolkits/basemap/src/PJ_cc.c
trunk/toolkits/basemap/src/PJ_cea.c
trunk/toolkits/basemap/src/PJ_chamb.c
trunk/toolkits/basemap/src/PJ_collg.c
trunk/toolkits/basemap/src/PJ_crast.c
trunk/toolkits/basemap/src/PJ_denoy.c
trunk/toolkits/basemap/src/PJ_eck1.c
trunk/toolkits/basemap/src/PJ_eck2.c
trunk/toolkits/basemap/src/PJ_eck3.c
trunk/toolkits/basemap/src/PJ_eck4.c
trunk/toolkits/basemap/src/PJ_eck5.c
trunk/toolkits/basemap/src/PJ_eqc.c
trunk/toolkits/basemap/src/PJ_eqdc.c
trunk/toolkits/basemap/src/PJ_fahey.c
trunk/toolkits/basemap/src/PJ_fouc_s.c
trunk/toolkits/basemap/src/PJ_gall.c
trunk/toolkits/basemap/src/PJ_geos.c
trunk/toolkits/basemap/src/PJ_gins8.c
trunk/toolkits/basemap/src/PJ_gn_sinu.c
trunk/toolkits/basemap/src/PJ_gnom.c
trunk/toolkits/basemap/src/PJ_goode.c
trunk/toolkits/basemap/src/PJ_hammer.c
trunk/toolkits/basemap/src/PJ_hatano.c
trunk/toolkits/basemap/src/PJ_imw_p.c
trunk/toolkits/basemap/src/PJ_krovak.c
trunk/toolkits/basemap/src/PJ_labrd.c
trunk/toolkits/basemap/src/PJ_laea.c
trunk/toolkits/basemap/src/PJ_lagrng.c
trunk/toolkits/basemap/src/PJ_larr.c
trunk/toolkits/basemap/src/PJ_lask.c
trunk/toolkits/basemap/src/PJ_lcc.c
trunk/toolkits/basemap/src/PJ_lcca.c
trunk/toolkits/basemap/src/PJ_loxim.c
trunk/toolkits/basemap/src/PJ_lsat.c
trunk/toolkits/basemap/src/PJ_mbt_fps.c
trunk/toolkits/basemap/src/PJ_mbtfpp.c
trunk/toolkits/basemap/src/PJ_mbtfpq.c
trunk/toolkits/basemap/src/PJ_merc.c
trunk/toolkits/basemap/src/PJ_mill.c
trunk/toolkits/basemap/src/PJ_mod_ster.c
trunk/toolkits/basemap/src/PJ_moll.c
trunk/toolkits/basemap/src/PJ_nell.c
trunk/toolkits/basemap/src/PJ_nell_h.c
trunk/toolkits/basemap/src/PJ_nocol.c
trunk/toolkits/basemap/src/PJ_nsper.c
trunk/toolkits/basemap/src/PJ_nzmg.c
trunk/toolkits/basemap/src/PJ_ob_tran.c
trunk/toolkits/basemap/src/PJ_ocea.c
trunk/toolkits/basemap/src/PJ_oea.c
trunk/toolkits/basemap/src/PJ_omerc.c
trunk/toolkits/basemap/src/PJ_ortho.c
trunk/toolkits/basemap/src/PJ_poly.c
trunk/toolkits/basemap/src/PJ_putp2.c
trunk/toolkits/basemap/src/PJ_putp3.c
trunk/toolkits/basemap/src/PJ_putp4p.c
trunk/toolkits/basemap/src/PJ_putp5.c
trunk/toolkits/basemap/src/PJ_putp6.c
trunk/toolkits/basemap/src/PJ_robin.c
trunk/toolkits/basemap/src/PJ_rpoly.c
trunk/toolkits/basemap/src/PJ_sconics.c
trunk/toolkits/basemap/src/PJ_somerc.c
trunk/toolkits/basemap/src/PJ_stere.c
trunk/toolkits/basemap/src/PJ_sterea.c
trunk/toolkits/basemap/src/PJ_sts.c
trunk/toolkits/basemap/src/PJ_tcc.c
trunk/toolkits/basemap/src/PJ_tcea.c
trunk/toolkits/basemap/src/PJ_tmerc.c
trunk/toolkits/basemap/src/PJ_tpeqd.c
trunk/toolkits/basemap/src/PJ_urm5.c
trunk/toolkits/basemap/src/PJ_urmfps.c
trunk/toolkits/basemap/src/PJ_vandg.c
trunk/toolkits/basemap/src/PJ_vandg2.c
trunk/toolkits/basemap/src/PJ_vandg4.c
trunk/toolkits/basemap/src/PJ_wag2.c
trunk/toolkits/basemap/src/PJ_wag3.c
trunk/toolkits/basemap/src/PJ_wag7.c
trunk/toolkits/basemap/src/PJ_wink1.c
trunk/toolkits/basemap/src/PJ_wink2.c
trunk/toolkits/basemap/src/_geod.c
trunk/toolkits/basemap/src/_geod.pyx
trunk/toolkits/basemap/src/_proj.c
trunk/toolkits/basemap/src/_proj.pyx
trunk/toolkits/basemap/src/_pyproj.pxi
trunk/toolkits/basemap/src/aasincos.c
trunk/toolkits/basemap/src/adjlon.c
trunk/toolkits/basemap/src/bch2bps.c
trunk/toolkits/basemap/src/bchgen.c
trunk/toolkits/basemap/src/biveval.c
trunk/toolkits/basemap/src/dmstor.c
trunk/toolkits/basemap/src/emess.c
trunk/toolkits/basemap/src/gen_cheb.c
trunk/toolkits/basemap/src/geocent.c
trunk/toolkits/basemap/src/geod.c
trunk/toolkits/basemap/src/geod_for.c
trunk/toolkits/basemap/src/geod_inv.c
trunk/toolkits/basemap/src/geod_set.c
trunk/toolkits/basemap/src/mk_cheby.c
trunk/toolkits/basemap/src/nad_cvt.c
trunk/toolkits/basemap/src/nad_init.c
trunk/toolkits/basemap/src/nad_intr.c
trunk/toolkits/basemap/src/p_series.c
trunk/toolkits/basemap/src/pj_apply_gridshift.c
trunk/toolkits/basemap/src/pj_auth.c
trunk/toolkits/basemap/src/pj_datum_set.c
trunk/toolkits/basemap/src/pj_datums.c
trunk/toolkits/basemap/src/pj_deriv.c
trunk/toolkits/basemap/src/pj_ell_set.c
trunk/toolkits/basemap/src/pj_ellps.c
trunk/toolkits/basemap/src/pj_errno.c
trunk/toolkits/basemap/src/pj_factors.c
trunk/toolkits/basemap/src/pj_fwd.c
trunk/toolkits/basemap/src/pj_gauss.c
trunk/toolkits/basemap/src/pj_geocent.c
trunk/toolkits/basemap/src/pj_gridinfo.c
trunk/toolkits/basemap/src/pj_gridlist.c
trunk/toolkits/basemap/src/pj_init.c
trunk/toolkits/basemap/src/pj_inv.c
trunk/toolkits/basemap/src/pj_latlong.c
trunk/toolkits/basemap/src/pj_list.c
trunk/toolkits/basemap/src/pj_list.h
trunk/toolkits/basemap/src/pj_malloc.c
trunk/toolkits/basemap/src/pj_mlfn.c
trunk/toolkits/basemap/src/pj_msfn.c
trunk/toolkits/basemap/src/pj_open_lib.c
trunk/toolkits/basemap/src/pj_param.c
trunk/toolkits/basemap/src/pj_phi2.c
trunk/toolkits/basemap/src/pj_pr_list.c
trunk/toolkits/basemap/src/pj_qsfn.c
trunk/toolkits/basemap/src/pj_release.c
trunk/toolkits/basemap/src/pj_strerrno.c
trunk/toolkits/basemap/src/pj_transform.c
trunk/toolkits/basemap/src/pj_tsfn.c
trunk/toolkits/basemap/src/pj_units.c
trunk/toolkits/basemap/src/pj_utils.c
trunk/toolkits/basemap/src/pj_zpoly1.c
trunk/toolkits/basemap/src/proj_api.h
trunk/toolkits/basemap/src/proj_mdist.c
trunk/toolkits/basemap/src/proj_rouss.c
trunk/toolkits/basemap/src/projects.h
trunk/toolkits/basemap/src/rtodms.c
trunk/toolkits/basemap/src/vector1.c
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-11-04 16:18:11 UTC (rev 7933)
+++ trunk/toolkits/basemap/Changelog 2009-11-04 16:26:06 UTC (rev 7934)
@@ -1,4 +1,5 @@
version 0.99.5 (not yet released)
+ * updated proj4 source to version 4.7.0, pyproj to 1.8.6.
* add "is_land" method to check whether a point is over land or
water.
* geos-3.1.1 now required. 3.1.1 source included (instead of 2.2.3).
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/README
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/README 2009-11-04 16:18:11 UTC (rev 7933)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/README 2009-11-04 16:26:06 UTC (rev 7934)
@@ -1,5 +1,72 @@
-To install the 'h' (high) resolution data files, manually copy them
-to basmap's data directory. To find out where this is, run
+ @(#)README 4.4 93/09/26 GIE REL"
-python -c "from matplotlib.toolkits.basemap import basemap_datadir; print basemap_datadir"
+The files in this directory are support data for PROJ.4 programs
+as well as test scripts for testing proj installation.
+File Contents:
+
+README --- This file
+
+proj_def.dat --- basic default file used by proj.
+
+epsg --- Translation of EPSG GCS/PCS codes into PROJ.4 via init= mechanism.
+
+epsg-deprecated --- EPSG definitions that have been deprecated. They are
+ not part of 'epsg' anymore, but may have been delivered
+ with earlier versions of 'epsg'.
+ Thus, they might occur e.g. in WMS (Web Mapping Services)
+ running with old EPSG definitions.
+ This file is not complete at all - it contains just
+ definitions that were individually reported.
+
+nad27 --- North American Datum 1927 for "init=" definition of
+ State Plane Coordinate Systems (SPCS).
+
+nad83 --- North American Datum 1983 for "init=" definition of SPCS.
+
+GL27 --- Great Lakes Survey grids, NAD27
+
+world --- Proj specifications for several international grid systems.
+
+nad.lst --- Reference list of SPCS States and NGS datum identifiers
+
+IGNF --- Translation of French Mapping Agency codes into PROJ.4 via init= mechanism.
+
+nad2bin.c --- C program to convert above ASCII files into binary
+ files usable by program nad2nad. Compiled and used in
+ install script only.
+
+install --- Unix shell (sh) script to install nad2nad file and proj
+ init files. Read beginning for usage instructions.
+
+test27 --- Unix shell (sh) scripts to test installation of
+test83 proj and nad27/nad83 init files. These scripts
+ expect release 4 proj to reside in ../src.
+
+pj_out27 --- Comparison files for above test procedures.
+pj_out83
+
+The following NADCON conversion files are distributed in separate,
+uncompressed distibution file(s).
+
+ Ascii source (in delta format) of grid data to convert geographic
+ coordinates from NAD27 to NAD83
+alaska.lla.Z --- Alaska
+conus.lla.Z --- Conterminous U.S.
+hawaii.lla.Z --- Hawaii
+prvi.lla.Z --- Puerto Rico, Virgin Is.
+stgeorge.lla.Z --- St. George Is, Alaska
+stlrnc.lla.Z --- St. Lawrence Is., Alaska
+stpaul.lla.Z --- St. Paul Is., Alaska
+
+ Ascii source (in delta format) of grid data for high precision
+ conversion of geographic coordinates from NAD83 to NAD83
+FL.lla.Z --- Florida
+MD.lla.Z --- Maryland
+TN.lla.Z --- Tennessee
+WI.lla.Z --- Wisconsin
+WO.lla.Z --- Washington, Oregon, N. California
+
+ Other grid shift files
+ntv1_can.dat --- Canadian NTv1 grid shift file (NAD27-->NAD83)
+ntf_r93.gsb --- French NTv2 grid shift file (NTF-->RGF93)
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/epsg
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/epsg 2009-11-04 16:18:11 UTC (rev 7933)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/data/epsg 2009-11-04 16:26:06 UTC (rev 7934)
@@ -1,7 +1,17 @@
+# HD1909
+<3819> +proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs <>
+# TWD67
+<3821> +proj=longlat +ellps=aust_SA +no_defs <>
+# TWD97
+<3824> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# IGRS
+<3889> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# MGI 1901
+<3906> +proj=longlat +ellps=bessel +no_defs <>
# Unknown datum based upon the Airy 1830 ellipsoid
<4001> +proj=longlat +ellps=airy +no_defs <>
# Unknown datum based upon the Airy Modified 1849 ellipsoid
-<4002> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <>
+<4002> +proj=longlat +ellps=mod_airy +no_defs <>
# Unknown datum based upon the Australian National Spheroid
<4003> +proj=longlat +ellps=aust_SA +no_defs <>
# Unknown datum based upon the Bessel 1841 ellipsoid
@@ -15,7 +25,7 @@
# Unknown datum based upon the Clarke 1866 ellipsoid
<4008> +proj=longlat +ellps=clrk66 +no_defs <>
# Unknown datum based upon the Clarke 1866 Michigan ellipsoid
-<4009> +proj=longlat +a=6378450.047548897 +b=6356826.621488445 +no_defs <>
+<4009> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs <>
# Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid
<4010> +proj=longlat +a=6378300.789 +b=6356566.435 +no_defs <>
# Unknown datum based upon the Clarke 1880 (IGN) ellipsoid
@@ -23,7 +33,7 @@
# Unknown datum based upon the Clarke 1880 (RGS) ellipsoid
<4012> +proj=longlat +ellps=clrk80 +no_defs <>
# Unknown datum based upon the Clarke 1880 (Arc) ellipsoid
-<4013> +proj=longlat +a=6378249.145 +b=6356514.966398754 +no_defs <>
+<4013> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <>
# Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid
<4014> +proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs <>
# Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid
@@ -40,6 +50,8 @@
<4021> +proj=longlat +a=6378160 +b=6356774.50408554 +no_defs <>
# Unknown datum based upon the International 1924 ellipsoid
<4022> +proj=longlat +ellps=intl +no_defs <>
+# MOLDREF99
+<4023> +proj=longlat +ellps=GRS80 +no_defs <>
# Unknown datum based upon the Krassowsky 1940 ellipsoid
<4024> +proj=longlat +ellps=krass +no_defs <>
# Unknown datum based upon the NWL 9D ellipsoid
@@ -47,7 +59,7 @@
# Unknown datum based upon the Plessis 1817 ellipsoid
<4027> +proj=longlat +a=6376523 +b=6355862.933255573 +no_defs <>
# Unknown datum based upon the Struve 1860 ellipsoid
-<4028> +proj=longlat +a=6378298.300000001 +b=6356657.142669562 +no_defs <>
+<4028> +proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs <>
# Unknown datum based upon the War Office ellipsoid
<4029> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs <>
# Unknown datum based upon the WGS 84 ellipsoid
@@ -57,9 +69,9 @@
# Unknown datum based upon the OSU86F ellipsoid
<4032> +proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs <>
# Unknown datum based upon the OSU91A ellipsoid
-<4033> +proj=longlat +a=6378136.300000001 +b=6356751.616592147 +no_defs <>
+<4033> +proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs <>
# Unknown datum based upon the Clarke 1880 ellipsoid
-<4034> +proj=longlat +ellps=clrk80 +no_defs <>
+<4034> +proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs <>
# Unknown datum based upon the Authalic Sphere
<4035> +proj=longlat +a=6371000 +b=6371000 +no_defs <>
# Unknown datum based upon the GRS 1967 ellipsoid
@@ -67,13 +79,15 @@
# Unknown datum based upon the Average Terrestrial System 1977 ellipsoid
<4041> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs <>
# Unknown datum based upon the Everest (1830 Definition) ellipsoid
-<4042> +proj=longlat +a=6377299.36559538 +b=6356098.357204818 +no_defs <>
+<4042> +proj=longlat +a=6377299.36559538 +b=6356098.359005156 +no_defs <>
# Unknown datum based upon the WGS 72 ellipsoid
<4043> +proj=longlat +ellps=WGS72 +no_defs <>
# Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid
<4044> +proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs <>
# Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid
-<4045> +proj=longlat +a=6377299.151000001 +b=6356098.145120133 +no_defs <>
+<4045> +proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs <>
+# RGRDC 2005
+<4046> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Unspecified datum based upon the GRS 1980 Authalic Sphere
<4047> +proj=longlat +a=6371007 +b=6371007 +no_defs <>
# Unspecified datum based upon the Clarke 1866 Authalic Sphere
@@ -82,14 +96,20 @@
<4053> +proj=longlat +a=6371228 +b=6371228 +no_defs <>
# Unspecified datum based upon the Hughes 1980 ellipsoid
<4054> +proj=longlat +a=6378273 +b=6356889.449 +no_defs <>
+# Popular Visualisation CRS
+<4055> +proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# SREF98
+<4075> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# REGCAN95
+<4081> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Greek
<4120> +proj=longlat +ellps=bessel +no_defs <>
# GGRS87
-<4121> +proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs <>
+<4121> +proj=longlat +ellps=GRS80 +datum=GGRS87 +no_defs <>
# ATS77
<4122> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs <>
# KKJ
-<4123> +proj=longlat +ellps=intl +towgs84=-96.0617,-82.4278,-121.743,4.80107,0.34543,-1.37646,1.4964 +no_defs <>
+<4123> +proj=longlat +ellps=intl +no_defs <>
# RT90
<4124> +proj=longlat +ellps=bessel +no_defs <>
# Samboja
@@ -110,7 +130,7 @@
<4132> +proj=longlat +ellps=clrk80 +no_defs <>
# EST92
<4133> +proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defs <>
-# PDO Survey Datum 1993
+# PSD93
<4134> +proj=longlat +ellps=clrk80 +no_defs <>
# Old Hawaiian
<4135> +proj=longlat +ellps=clrk66 +no_defs <>
@@ -135,7 +155,7 @@
# Kalianpur 1962
<4145> +proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs <>
# Kalianpur 1975
-<4146> +proj=longlat +a=6377299.151000001 +b=6356098.145120133 +towgs84=295,736,257,0,0,0,0 +no_defs <>
+<4146> +proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defs <>
# Hanoi 1972
<4147> +proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defs <>
# Hartebeesthoek94
@@ -179,10 +199,10 @@
# NZGD2000
<4167> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Accra
-<4168> +proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +no_defs <>
+<4168> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs <>
# American Samoa 1962
<4169> +proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defs <>
-# SIRGAS
+# SIRGAS 1995
<4170> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# RGF93
<4171> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
@@ -197,9 +217,9 @@
# Australian Antarctic
<4176> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Pulkovo 1942(83)
-<4178> +proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs <>
+<4178> +proj=longlat +ellps=krass +no_defs <>
# Pulkovo 1942(58)
-<4179> +proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs <>
+<4179> +proj=longlat +ellps=krass +no_defs <>
# EST97
<4180> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Luxembourg 1930
@@ -237,7 +257,7 @@
# Egypt 1930
<4199> +proj=longlat +ellps=intl +no_defs <>
# Pulkovo 1995
-<4200> +proj=longlat +ellps=krass +no_defs <>
+<4200> +proj=longlat +ellps=krass +towgs84=24.82,-131.21,-82.66,-0,-0,0.16,-0.12 +no_defs <>
# Adindan
<4201> +proj=longlat +ellps=clrk80 +no_defs <>
# AGD66
@@ -255,7 +275,7 @@
# Aratu
<4208> +proj=longlat +ellps=intl +no_defs <>
# Arc 1950
-<4209> +proj=longlat +a=6378249.145 +b=6356514.966398754 +no_defs <>
+<4209> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <>
# Arc 1960
<4210> +proj=longlat +ellps=clrk80 +no_defs <>
# Batavia
@@ -269,7 +289,7 @@
# Belge 1950
<4215> +proj=longlat +ellps=intl +no_defs <>
# Bermuda 1957
-<4216> +proj=longlat +ellps=clrk66 +towgs84=-73,213,296,0,0,0,0 +no_defs <>
+<4216> +proj=longlat +ellps=clrk66 +no_defs <>
# Bogota 1975
<4218> +proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 +no_defs <>
# Bukit Rimpah
@@ -279,11 +299,11 @@
# Campo Inchauspe
<4221> +proj=longlat +ellps=intl +no_defs <>
# Cape
-<4222> +proj=longlat +a=6378249.145 +b=6356514.966398754 +no_defs <>
+<4222> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <>
# Carthage
-<4223> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <>
+<4223> +proj=longlat +a=6378249.2 +b=6356515 +datum=carthage +no_defs <>
# Chua
-<4224> +proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs <>
+<4224> +proj=longlat +ellps=intl +no_defs <>
# Corrego Alegre
<4225> +proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs <>
# Cote d'Ivoire
@@ -306,7 +326,7 @@
<4234> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <>
# Guyane Francaise
<4235> +proj=longlat +ellps=intl +no_defs <>
-# Hu Tzu Shan
+# Hu Tzu Shan 1950
<4236> +proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs <>
# HD72
<4237> +proj=longlat +ellps=GRS67 +no_defs <>
@@ -317,11 +337,11 @@
# Indian 1975
<4240> +proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs <>
# Jamaica 1875
-<4241> +proj=longlat +ellps=clrk80 +no_defs <>
+<4241> +proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs <>
# JAD69
<4242> +proj=longlat +ellps=clrk66 +no_defs <>
# Kalianpur 1880
-<4243> +proj=longlat +a=6377299.36559538 +b=6356098.357204818 +no_defs <>
+<4243> +proj=longlat +a=6377299.36559538 +b=6356098.359005156 +no_defs <>
# Kandawala
<4244> +proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +no_defs <>
# Kertau 1968
@@ -371,7 +391,7 @@
# NAD27
<4267> +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs <>
# NAD27 Michigan
-<4268> +proj=longlat +a=6378450.047548897 +b=6356826.621488445 +no_defs <>
+<4268> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs <>
# NAD83
<4269> +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs <>
# Nahrwan 1967
@@ -389,7 +409,7 @@
# NSWC 9Z-2
<4276> +proj=longlat +ellps=WGS66 +no_defs <>
# OSGB 1936
-<4277> +proj=longlat +datum=OSGB36 +no_defs <>
+<4277> +proj=longlat +ellps=airy +datum=OSGB36 +no_defs <>
# OSGB70
<4278> +proj=longlat +ellps=airy +no_defs <>
# OS(SN)80
@@ -431,9 +451,9 @@
# Timbalai 1948
<4298> +proj=longlat +ellps=evrstSS +no_defs <>
# TM65
-<4299> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <>
+<4299> +proj=longlat +ellps=mod_airy +datum=ire65 +no_defs <>
# TM75
-<4300> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <>
+<4300> +proj=longlat +ellps=mod_airy +no_defs <>
# Tokyo
<4301> +proj=longlat +ellps=bessel +no_defs <>
# Trinidad 1903
@@ -455,14 +475,14 @@
# Zanderij
<4311> +proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defs <>
# MGI
-<4312> +proj=longlat +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +no_defs <>
+<4312> +proj=longlat +ellps=bessel +datum=hermannskogel +no_defs <>
# Belge 1972
<4313> +proj=longlat +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +no_defs <>
# DHDN
<4314> +proj=longlat +ellps=bessel +datum=potsdam +no_defs <>
# Conakry 1905
<4315> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defs <>
-# Dealul Piscului 1933
+# Dealul Piscului 1930
<4316> +proj=longlat +ellps=intl +no_defs <>
# Dealul Piscului 1970
<4317> +proj=longlat +ellps=krass +no_defs <>
@@ -571,7 +591,7 @@
# Grand Comoros
<4646> +proj=longlat +ellps=intl +no_defs <>
# Reykjavik 1900
-<4657> +proj=longlat +a=6377019.27 +b=6355762.539100001 +towgs84=-28,199,5,0,0,0,0 +no_defs <>
+<4657> +proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defs <>
# Hjorsey 1955
<4658> +proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defs <>
# ISN93
@@ -600,9 +620,9 @@
<4670> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Voirol 1879
<4671> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <>
-# CI1971
+# Chatham Islands 1971
<4672> +proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defs <>
-# CI1979
+# Chatham Islands 1979
<4673> +proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defs <>
# SIRGAS 2000
<4674> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
@@ -645,9 +665,9 @@
# Nakhl-e Ghanem
<4693> +proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defs <>
# POSGAR 94
-<4694> +proj=longlat +ellps=GRS80 +no_defs <>
+<4694> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Katanga 1955
-<4695> +proj=longlat +ellps=clrk66 +no_defs <>
+<4695> +proj=longlat +ellps=clrk66 +towgs84=-103.746,-9.614,-255.95,0,0,0,0 +no_defs <>
# Kasai 1953
<4696> +proj=longlat +ellps=clrk80 +no_defs <>
# IGC 1962 6th Parallel South
@@ -712,7 +732,7 @@
<4726> +proj=longlat +ellps=clrk66 +no_defs <>
# Midway 1961
<4727> +proj=longlat +ellps=intl +no_defs <>
-# Pico de la Nieves
+# Pico de las Nieves 1984
<4728> +proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defs <>
# Pitcairn 1967
<4729> +proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defs <>
@@ -737,12 +757,12 @@
# Hong Kong 1963(67)
<4739> +proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defs <>
# PZ-90
-<4740> +proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0 +no_defs <>
+<4740> +proj=longlat +a=6378136 +b=6356751.361745712 +no_defs <>
# FD54
<4741> +proj=longlat +ellps=intl +no_defs <>
# GDM2000
<4742> +proj=longlat +ellps=GRS80 +no_defs <>
-# Karbala 1979 (Polservice)
+# Karbala 1979
<4743> +proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defs <>
# Nahrwan 1934
<4744> +proj=longlat +ellps=clrk80 +no_defs <>
@@ -778,6 +798,16 @@
<4759> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# WGS 66
<4760> +proj=longlat +ellps=WGS66 +no_defs <>
+# HTRS96
+<4761> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# BDA2000
+<4762> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# Pitcairn 2006
+<4763> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# RSRGD2000
+<4764> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
+# Slovenia 1996
+<4765> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
# Bern 1898 (Bern)
<4801> +proj=longlat +ellps=bessel +pm=bern +no_defs <>
# Bogota 1975 (Bogota)
@@ -818,12 +848,12 @@
<4820> +proj=longlat +ellps=bessel +pm=jakarta +no_defs <>
# Voirol 1879 (Paris)
<4821> +proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs <>
-# ATF (Paris)
-<4901> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs <>
+# unnamed ellipse
+<4901> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +no_defs <>
# NDG (Paris)
<4902> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs <>
# Madrid 1870 (Madrid)
-<4903> +proj=longlat +a=6378298.300000001 +b=6356657.142669562 +pm=madrid +no_defs <>
+<4903> +proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defs <>
# Lisbon 1890 (Lisbon)
<4904> +proj=longlat +ellps=bessel +pm=lisbon +no_defs <>
# Anguilla 1957 / British West Indies Grid
@@ -899,7 +929,7 @@
# NAD27(CGQ77) / UTM zone 21N
<2035> +proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs <>
# NAD83(CSRS98) / New Brunswick Stereo (deprecated)
-<2036> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.9999119999999999 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
+<2036> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
# NAD83(CSRS98) / UTM zone 19N (deprecated)
<2037> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
# NAD83(CSRS98) / UTM zone 20N (deprecated)
@@ -949,9 +979,9 @@
# Unable to translate coordinate system EPSG:2055 into PROJ.4 format.
#
# CH1903+ / LV95
-<2056> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs <>
+<2056> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs <>
# Rassadiran / Nakhl e Taqi
-<2057> +proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.9998959340000001 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs <>
+<2057> +proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs <>
# ED50(ED77) / UTM zone 38N
<2058> +proj=utm +zone=38 +ellps=intl +units=m +no_defs <>
# ED50(ED77) / UTM zone 39N
@@ -961,7 +991,7 @@
# ED50(ED77) / UTM zone 41N
<2061> +proj=utm +zone=41 +ellps=intl +units=m +no_defs <>
# Madrid 1870 (Madrid) / Spain
-<2062> +proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293000001 +x_0=600000 +y_0=600000 +a=6378298.300000001 +b=6356657.142669562 +pm=madrid +units=m +no_defs <>
+<2062> +proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defs <>
# Dabola 1981 / UTM zone 28N (deprecated)
<2063> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs <>
# Dabola 1981 / UTM zone 29N (deprecated)
@@ -1006,14 +1036,14 @@
<2083> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs <>
# Hito XVIII 1963 / UTM zone 19S
<2084> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs <>
-# NAD27 / Cuba Norte
+# NAD27 / Cuba Norte (deprecated)
<2085> +proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <>
-# NAD27 / Cuba Sur
+# NAD27 / Cuba Sur (deprecated)
<2086> +proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <>
# ELD79 / TM 12 NE
<2087> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <>
# Carthage / TM 11 NE
-<2088> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs <>
+<2088> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +datum=carthage +units=m +no_defs <>
# Yemen NGN96 / UTM zone 38N
<2089> +proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
# Yemen NGN96 / UTM zone 39N
@@ -1037,7 +1067,7 @@
# Qatar 1948 / Qatar Grid
<2099> +proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defs <...
[truncated message content] |
|
From: <js...@us...> - 2009-11-06 13:05:26
|
Revision: 7939
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7939&view=rev
Author: jswhit
Date: 2009-11-06 13:05:13 +0000 (Fri, 06 Nov 2009)
Log Message:
-----------
patch for drawmapscale from Stephane Raynaud.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/README
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2009-11-04 20:22:35 UTC (rev 7938)
+++ trunk/toolkits/basemap/Changelog 2009-11-06 13:05:13 UTC (rev 7939)
@@ -1,4 +1,6 @@
version 0.99.5 (not yet released)
+ * patch from Stephane Raynaud to pass format string to
+ drawmapscale, and allow units='m'.
* updated proj4 source to version 4.7.0, pyproj to 1.8.6.
* add "is_land" method to check whether a point is over land or
water.
Modified: trunk/toolkits/basemap/README
===================================================================
--- trunk/toolkits/basemap/README 2009-11-04 20:22:35 UTC (rev 7938)
+++ trunk/toolkits/basemap/README 2009-11-06 13:05:13 UTC (rev 7939)
@@ -141,5 +141,6 @@
Pierre Gerard-Marchant
Christoph Gohlke
Eric Bruning
+Stephane Raynaud
for valuable contributions.
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-04 20:22:35 UTC (rev 7938)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-06 13:05:13 UTC (rev 7939)
@@ -3319,7 +3319,8 @@
def drawmapscale(self,lon,lat,lon0,lat0,length,barstyle='simple',\
units='km',fontsize=9,yoffset=None,labelstyle='simple',\
- fontcolor='k',fillcolor1='w',fillcolor2='k',ax=None):
+ fontcolor='k',fillcolor1='w',fillcolor2='k',ax=None,\
+ format='%d'):
"""
Draw a map scale at ``lon,lat`` of length ``length``
representing distance in the map
@@ -3343,6 +3344,8 @@
displayed on the top of the scale bar. For
``simple``, just the units are display on top
and the distance below the scale bar.
+ If equal to False, plot an empty label.
+ format a string formatter to format numeric values
yoffset yoffset controls how tall the scale bar is,
and how far the annotations are offset from the
scale bar. Default is 0.02 times the height of
@@ -3360,17 +3363,15 @@
if self.projection == 'cyl':
raise ValueError("cannot draw map scale for projection='cyl'")
# convert length to meters
+ lenlab = length
if units == 'km':
- lenlab = length
length = length*1000
elif units == 'mi':
- lenlab = length
length = length*1609.344
elif units == 'nmi':
- lenlab = length
length = length*1852
- else:
- msg = "units must be 'km' (kilometers), "\
+ elif units != 'm':
+ msg = "units must be 'm' (meters), 'km' (kilometers), "\
"'mi' (miles) or 'nmi' (nautical miles)"
raise KeyError(msg)
# reference point and center of scale.
@@ -3411,6 +3412,8 @@
labelstr = units
elif labelstyle == 'fancy':
labelstr = units+" (scale factor %4.2f at %s)"%(scalefact,lonlatstr)
+ elif labelstyle == False:
+ labelstr = ''
else:
raise KeyError("labelstyle must be 'simple' or 'fancy'")
# default y offset is 2 percent of map height.
@@ -3456,15 +3459,15 @@
rets.append(self.plot([xc,xc],[ytick,ybottom],color=fontcolor)[0])
rets.append(self.plot([x4,x4],[ytick,ybottom],color=fontcolor)[0])
#label 3 tick marks
- rets.append(ax.text(x1,ytext,'%d' % (0),\
+ rets.append(ax.text(x1,ytext,format % (0),\
horizontalalignment='center',\
verticalalignment='top',\
fontsize=fontsize,color=fontcolor))
- rets.append(ax.text(xc,ytext,'%d' % (0.5*lenlab),\
+ rets.append(ax.text(xc,ytext,format % (0.5*lenlab),\
horizontalalignment='center',\
verticalalignment='top',\
fontsize=fontsize,color=fontcolor))
- rets.append(ax.text(x4,ytext,'%d' % (lenlab),\
+ rets.append(ax.text(x4,ytext,format % (lenlab),\
horizontalalignment='center',\
verticalalignment='top',\
fontsize=fontsize,color=fontcolor))
@@ -3478,7 +3481,7 @@
rets.append(self.plot([x1,x4],[yc,yc],color=fontcolor)[0])
rets.append(self.plot([x1,x1],[yc-yoffset,yc+yoffset],color=fontcolor)[0])
rets.append(self.plot([x4,x4],[yc-yoffset,yc+yoffset],color=fontcolor)[0])
- rets.append(ax.text(xc,yc-yoffset,'%d' % lenlab,\
+ rets.append(ax.text(xc,yc-yoffset,format % lenlab,\
verticalalignment='top',horizontalalignment='center',\
fontsize=fontsize,color=fontcolor))
#put units, scale factor on top
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2010-02-11 13:03:03
|
Revision: 8125
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8125&view=rev
Author: jswhit
Date: 2010-02-11 13:02:50 +0000 (Thu, 11 Feb 2010)
Log Message:
-----------
initial support for near-sided perspective satellite projection.
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py
Added Paths:
-----------
trunk/toolkits/basemap/examples/nsper_demo.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2010-02-10 16:00:15 UTC (rev 8124)
+++ trunk/toolkits/basemap/Changelog 2010-02-11 13:02:50 UTC (rev 8125)
@@ -1,4 +1,6 @@
version 0.99.5 (not yet released)
+ * added "near-sided perspective" projection for a satellite
+ view at an arbitrary altitude.
* patch from Stephane Raynaud to pass format string to
drawmapscale, and allow units='m'.
* updated proj4 source to version 4.7.0, pyproj to 1.8.6.
Added: trunk/toolkits/basemap/examples/nsper_demo.py
===================================================================
--- trunk/toolkits/basemap/examples/nsper_demo.py (rev 0)
+++ trunk/toolkits/basemap/examples/nsper_demo.py 2010-02-11 13:02:50 UTC (rev 8125)
@@ -0,0 +1,25 @@
+from mpl_toolkits.basemap import Basemap
+import numpy as np
+import matplotlib.pyplot as plt
+
+# create Basemap instance for Near-Sided Perspective (satellite view) projection.
+lon_0 = float(raw_input('enter reference longitude (lon_0):'))
+lat_0 = float(raw_input('enter reference longitude (lat_0):'))
+h = float(raw_input('enter altitude of camera in km (h):'))
+h=h*1000.
+
+# map with continents drawn and filled.
+fig = plt.figure()
+m = Basemap(projection='nsper',lon_0=lon_0,lat_0=lat_0,satellite_height=h,resolution='l')
+m.drawcoastlines()
+m.drawmapboundary(fill_color='aqua')
+m.fillcontinents(color='coral',lake_color='aqua')
+m.drawcountries()
+m.drawstates()
+# draw parallels and meridians.
+m.drawparallels(np.arange(-90.,120.,10.))
+m.drawmeridians(np.arange(0.,420.,20.))
+m.drawmapboundary()
+plt.title('Near-Sided Perspective Map Centered on Lon=%s, Lat=%s, H=%g' %\
+ (lon_0,lat_0,h),fontsize=10)
+plt.show()
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-10 16:00:15 UTC (rev 8124)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-11 13:02:50 UTC (rev 8125)
@@ -78,6 +78,7 @@
'poly' : 'Polyconic',
'ortho' : 'Orthographic',
'geos' : 'Geostationary',
+ 'nsper' : 'Near-Sided Perspective',
'sinu' : 'Sinusoidal',
'moll' : 'Mollweide',
'robin' : 'Robinson',
@@ -116,6 +117,7 @@
'poly' : 'lon_0,lat_0',
'ortho' : 'lon_0,lat_0,llcrnrx,llcrnry,urcrnrx,urcrnry,no width/height',
'geos' : 'lon_0,satellite_height,llcrnrx,llcrnry,urcrnrx,urcrnry,no width/height',
+ 'nsper' : 'lon_0,satellite_height,llcrnrx,llcrnry,urcrnrx,urcrnry,no width/height',
'sinu' : 'lon_0,lat_0,no corners or width/height',
'moll' : 'lon_0,lat_0,no corners or width/height',
'robin' : 'lon_0,lat_0,no corners or width/height',
@@ -189,10 +191,10 @@
For the cylindrical projections (``cyl``, ``merc``, ``mill`` and ``gall``),
the default is to use
llcrnrlon=-180,llcrnrlat=-90, urcrnrlon=180 and urcrnrlat=90). For all other
- projections except ``ortho`` and ``geos``, either the lat/lon values of the
+ projections except ``ortho``, ``geos`` and ``nsper``, either the lat/lon values of the
corners or width and height must be specified by the user.
- For ``ortho`` and ``geos``, the lat/lon values of the corners may be specified,
+ For ``ortho``, ``geos`` and ``nsper``, the lat/lon values of the corners may be specified,
or the x/y values of the corners (llcrnrx,llcrnry,urcrnrx,urcrnry) in the
coordinate system of the global projection (with x=0,y=0 at the center
of the global projection). If the corners are not specified,
@@ -311,8 +313,9 @@
latitude circle boundinglat is tangent to the edge
of the map at lon_0.
satellite_height height of satellite (in m) above equator -
- only relevant for geostationary projections
- (``geos``). Default 35,786 km.
+ only relevant for geostationary
+ and near-sided perspective (``geos`` or ``nsper``)
+ projections. Default 35,786 km.
================ ====================================================
Useful instance variables:
@@ -475,7 +478,7 @@
_insert_validated(projparams, lon_0, 'lon_0', -360, 720)
_insert_validated(projparams, lon_1, 'lon_1', -360, 720)
_insert_validated(projparams, lon_2, 'lon_2', -360, 720)
- if projection == 'geos':
+ if projection in ['geos','nsper']:
projparams['h'] = satellite_height
# check for sane values of projection corners.
using_corners = (None not in [llcrnrlon,llcrnrlat,urcrnrlon,urcrnrlat])
@@ -601,6 +604,24 @@
self._fulldisk = False
self.llcrnrlon = llcrnrlon; self.llcrnrlat = llcrnrlat
self.urcrnrlon = urcrnrlon; self.urcrnrlat = urcrnrlat
+ elif projection == 'nsper':
+ if not projparams.has_key('R'):
+ raise ValueError, 'near-sided perspective projection only works for perfect spheres - not ellipsoids'
+ if lat_0 is None or lon_0 is None:
+ msg='must specify lon_0 and lat_0 for near-sided perspective Basemap'
+ raise ValueError(msg)
+ if width is not None or height is not None:
+ print 'warning: width and height keywords ignored for %s projection' % _projnames[self.projection]
+ if not using_corners:
+ llcrnrlon = -180.
+ llcrnrlat = -90.
+ urcrnrlon = 180
+ urcrnrlat = 90.
+ self._fulldisk = True
+ else:
+ self._fulldisk = False
+ self.llcrnrlon = llcrnrlon; self.llcrnrlat = llcrnrlat
+ self.urcrnrlon = urcrnrlon; self.urcrnrlat = urcrnrlat
elif projection in _pseudocyl:
if lon_0 is None:
raise ValueError, 'must specify lon_0 for %s projection' % _projnames[self.projection]
@@ -723,7 +744,7 @@
self.aspect = (self.urcrnrlat-self.llcrnrlat)/(self.urcrnrlon-self.llcrnrlon)
else:
self.aspect = (proj.ymax-proj.ymin)/(proj.xmax-proj.xmin)
- if projection in ['geos','ortho'] and \
+ if projection in ['geos','ortho','nsper'] and \
None not in [llcrnrx,llcrnry,urcrnrx,urcrnry]:
self.llcrnrx = llcrnrx+0.5*proj.xmax
self.llcrnry = llcrnry+0.5*proj.ymax
@@ -764,7 +785,7 @@
self.latmax = self.urcrnrlat
self.lonmin = self.llcrnrlon
self.lonmax = self.urcrnrlon
- elif self.projection in ['ortho','geos'] + _pseudocyl:
+ elif self.projection in ['ortho','geos','nsper'] + _pseudocyl:
self.latmin = -90.
self.latmax = 90.
self.lonmin = self.llcrnrlon
@@ -906,12 +927,12 @@
if containsPole and\
self.projection in _cylproj + _pseudocyl + ['geos']:
raise ValueError('%s projection cannot cross pole'%(self.projection))
- # make sure orthographic or gnomonic projection has containsPole=True
+ # make sure some projections have has containsPole=True
# we will compute the intersections in stereographic
- # coordinates, then transform to orthographic. This is
+ # coordinates, then transform back. This is
# because these projections are only defined on a hemisphere, and
# some boundary features (like Eurasia) would be undefined otherwise.
- if self.projection in ['ortho','gnom'] and name == 'gshhs':
+ if self.projection in ['ortho','gnom','nsper'] and name == 'gshhs':
containsPole = True
lon_0=self.projparams['lon_0']
lat_0=self.projparams['lat_0']
@@ -922,7 +943,7 @@
lat0 = 90.*(np.around(lat_0/90.))
if np.abs(int(lat0)) == 90: lon0=0.
maptran = pyproj.Proj(proj='stere',lon_0=lon0,lat_0=lat0,R=re)
- # boundary polygon for ortho/gnom projection
+ # boundary polygon for ortho/gnom/nsper projection
# in stereographic coorindates.
b = self._boundarypolyll.boundary
blons = b[:,0]; blats = b[:,1]
@@ -1030,9 +1051,10 @@
else:
# transform coordinates from lat/lon
# to map projection coordinates.
- # special case for ortho/gnom, compute coastline polygon
+ # special case for ortho/gnom/nsper, compute coastline polygon
# vertices in stereographic coords.
- if name == 'gshhs' and self.projection in ['ortho','gnom']:
+ if name == 'gshhs' and self.projection in\
+ ['ortho','gnom','nsper']:
b[:,0], b[:,1] = maptran(b[:,0], b[:,1])
else:
b[:,0], b[:,1] = self(b[:,0], b[:,1])
@@ -1046,10 +1068,10 @@
# in this map projection.
bx = np.compress(goodmask, b[:,0])
by = np.compress(goodmask, b[:,1])
- # for ortho/gnom projection, all points
+ # for ortho/gnom/nsper projection, all points
# outside map projection region are eliminated
# with the above step, so we're done.
- if self.projection in ['ortho','gnom']:
+ if self.projection in ['ortho','gnom','nsper']:
polygons.append(zip(bx,by))
polygon_types.append(type)
continue
@@ -1073,22 +1095,22 @@
# iterate over geometries in intersection.
for psub in geoms:
b = psub.boundary
- # if projection in ['ortho','gnom'],
+ # if projection in ['ortho','gnom','nsper'],
# transform polygon from stereographic
- # to ortho/gnom coordinates.
- if self.projection in ['ortho','gnom']:
+ # to ortho/gnom/nsper coordinates.
+ if self.projection in ['ortho','gnom','nsper']:
# if coastline polygon covers more than 99%
# of map region for fulldisk projection,
# it's probably bogus, so skip it.
areafrac = psub.area()/boundarypolyxy.area()
- if self.projection == 'ortho':
+ if self.projection == ['ortho','nsper']:
if name == 'gshhs' and\
self._fulldisk and\
areafrac > 0.99: continue
# inverse transform from stereographic
# to lat/lon.
b[:,0], b[:,1] = maptran(b[:,0], b[:,1], inverse=True)
- # orthographic/gnomonic.
+ # orthographic/gnomonic/nsper.
b[:,0], b[:,1]= self(b[:,0], b[:,1])
polygons.append(zip(b[:,0],b[:,1]))
polygon_types.append(type)
@@ -1102,7 +1124,7 @@
if self.projection == 'vandg':
nx = 10*nx; ny = 10*ny
maptran = self
- if self.projection in ['ortho','geos']:
+ if self.projection in ['ortho','geos','nsper']:
# circular region.
thetas = np.linspace(0.,2.*np.pi,2*nx*ny)[:-1]
rminor = self._height
@@ -1246,10 +1268,10 @@
# get current axes instance (if none specified).
ax = ax or self._check_ax()
limb = None
- if self.projection in ['ortho','geos'] or (self.projection=='aeqd' and\
+ if self.projection in ['ortho','geos','nsper'] or (self.projection=='aeqd' and\
self._fulldisk):
limb = Ellipse((self._width,self._height),2.*self._width,2.*self._height)
- if self.projection in ['ortho','geos','aeqd'] and self._fulldisk:
+ if self.projection in ['ortho','geos','nsper','aeqd'] and self._fulldisk:
# elliptical region.
ax.add_patch(limb)
if fill_color is None:
@@ -1301,7 +1323,7 @@
except AttributeError:
for spine in ax.spines.itervalues():
spine.set_linewidth(linewidth)
- if self.projection not in ['geos','ortho']:
+ if self.projection not in ['geos','ortho','nsper']:
if fill_color is not None:
ax.axesPatch.set_facecolor(fill_color)
try:
@@ -1876,7 +1898,7 @@
linecolls[circ] = (lines,[])
# draw labels for parallels
# parallels not labelled for fulldisk orthographic or geostationary
- if self.projection in ['ortho','geos','vandg','aeqd'] and max(labels):
+ if self.projection in ['ortho','geos','nsper','vandg','aeqd'] and max(labels):
if self.projection == 'vandg' or self._fulldisk:
print 'Warning: Cannot label parallels on %s basemap' % _projnames[self.projection]
labels = [0,0,0,0]
@@ -2118,7 +2140,7 @@
if self.projection in ['sinu','moll','vandg'] and max(labels):
print 'Warning: Cannot label meridians on %s basemap' % _projnames[self.projection]
labels = [0,0,0,0]
- if self.projection in ['ortho','geos','aeqd'] and max(labels):
+ if self.projection in ['ortho','geos','nsper','aeqd'] and max(labels):
if self._fulldisk:
print dedent(
"""'Warning: Cannot label meridians on full-disk
@@ -2572,7 +2594,7 @@
# turn off axes frame for non-rectangular projections.
if self.projection in _pseudocyl:
ax.set_frame_on(False)
- if self.projection in ['ortho','geos','aeqd'] and self._fulldisk:
+ if self.projection in ['ortho','geos','nsper','aeqd'] and self._fulldisk:
ax.set_frame_on(False)
# make sure aspect ratio of map preserved.
# plot is re-centered in bounding rectangle.
@@ -3298,7 +3320,7 @@
self.transform_scalar(self._bm_rgba[:,:,k],\
self._bm_lons,self._bm_lats,nx,ny,returnxy=True)
# for ortho,geos mask pixels outside projection limb.
- if self.projection in ['geos','ortho'] or \
+ if self.projection in ['geos','ortho','nsper'] or \
(self.projection == 'aeqd' and self._fulldisk):
lonsr,latsr = self(x,y,inverse=True)
mask = ma.zeros((ny,nx,4),np.int8)
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2010-02-10 16:00:15 UTC (rev 8124)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2010-02-11 13:02:50 UTC (rev 8125)
@@ -147,6 +147,38 @@
llcrnrx, llcrnry = self(llcrnrlon,llcrnrlat)
if llcrnrx > 1.e20 or llcrnry > 1.e20:
raise ValueError(_lower_left_out_of_bounds)
+ elif self.projection == 'nsper':
+ self._proj4 = pyproj.Proj(projparams)
+ # find major and minor axes of ellipse defining map proj region.
+ # h is measured from surface of earth at equator.
+ h = projparams['h'] + self.rmajor
+ # latitude of horizon on central meridian
+ lonmax = 90.-(180./np.pi)*np.arcsin(self.rmajor/h)
+ # longitude of horizon on equator
+ latmax = 90.-(180./np.pi)*np.arcsin(self.rmajor/h)
+ # truncate to nearest hundredth of a degree (to make sure
+ # they aren't slightly over the horizon)
+ latmax = int(100*latmax)/100.
+ lonmax = int(100*lonmax)/100.
+ # width and height of visible projection
+ P = pyproj.Proj(proj='nsper',a=self.rmajor,\
+ b=self.rminor,lat_0=0,lon_0=0,h=projparams['h'])
+ x1,y1 = P(0.,latmax); x2,y2 = P(lonmax,0.)
+ width = x2; height = y1
+ self._height = height
+ self._width = width
+ if (llcrnrlon == -180 and llcrnrlat == -90 and
+ urcrnrlon == 180 and urcrnrlat == 90):
+ self._fulldisk = True
+ llcrnrx = -width
+ llcrnry = -height
+ urcrnrx = -llcrnrx
+ urcrnry = -llcrnry
+ else:
+ self._fulldisk = False
+ llcrnrx, llcrnry = self(llcrnrlon,llcrnrlat)
+ if llcrnrx > 1.e20 or llcrnry > 1.e20:
+ raise ValueError(_lower_left_out_of_bounds)
elif self.projection in _pseudocyl:
self._proj4 = pyproj.Proj(projparams)
xtmp,urcrnry = self(projparams['lon_0'],90.)
@@ -172,9 +204,9 @@
if urcrnrislatlon:
self.urcrnrlon = urcrnrlon
self.urcrnrlat = urcrnrlat
- if self.projection not in ['ortho','geos','aeqd'] + _pseudocyl:
+ if self.projection not in ['ortho','geos','nsper','aeqd'] + _pseudocyl:
urcrnrx,urcrnry = self(urcrnrlon,urcrnrlat)
- elif self.projection in ['ortho','geos','aeqd']:
+ elif self.projection in ['ortho','geos','nsper','aeqd']:
if self._fulldisk:
urcrnrx = 2.*self._width
urcrnry = 2.*self._height
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2010-02-25 15:53:38
|
Revision: 8154
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8154&view=rev
Author: jswhit
Date: 2010-02-25 15:53:30 +0000 (Thu, 25 Feb 2010)
Log Message:
-----------
added order=3 option to interp
Modified Paths:
--------------
trunk/toolkits/basemap/Changelog
trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
Modified: trunk/toolkits/basemap/Changelog
===================================================================
--- trunk/toolkits/basemap/Changelog 2010-02-24 20:48:26 UTC (rev 8153)
+++ trunk/toolkits/basemap/Changelog 2010-02-25 15:53:30 UTC (rev 8154)
@@ -1,4 +1,6 @@
version 0.99.5 (not yet released)
+ * added option for cubic spline interpolation in interp function
+ (order=3) using scipy.ndimage.
* added "near-sided perspective" projection for a satellite
view at an arbitrary altitude.
* patch from Stephane Raynaud to pass format string to
Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py
===================================================================
--- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-24 20:48:26 UTC (rev 8153)
+++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2010-02-25 15:53:30 UTC (rev 8154)
@@ -3639,7 +3639,7 @@
y, 2nd dimension x.
xin, yin rank-1 arrays containing x and y of
datain grid in increasing order.
- xout, yout arrays containing x and y of desired output grid.
+ xout, yout rank-2 arrays containing x and y of desired output grid.
============== ====================================================
.. tabularcolumns:: |l|L|
@@ -3660,7 +3660,8 @@
points outside the range of xin and yin will be
set to that number. Default False.
order 0 for nearest-neighbor interpolation, 1 for
- bilinear interpolation (default 1).
+ bilinear interpolation, 3 for cublic spline
+ (default 1). order=3 requires scipy.ndimage.
============== ====================================================
.. note::
@@ -3746,8 +3747,15 @@
xcoordsi = np.around(xcoords).astype(np.int32)
ycoordsi = np.around(ycoords).astype(np.int32)
dataout = datain[ycoordsi,xcoordsi]
+ elif order == 3:
+ try:
+ from scipy.ndimage import map_coordinates
+ except ImportError:
+ raise ValueError('scipy.ndimage must be installed if order=3')
+ coords = [ycoords,xcoords]
+ map_coordinates(datain,coords,order=3,mode='constant')
else:
- raise ValueError,'order keyword must be 0 or 1'
+ raise ValueError,'order keyword must be 0, 1 or 3'
if masked and isinstance(masked,bool):
dataout = ma.masked_array(dataout)
newmask = ma.mask_or(ma.getmask(dataout), xymask)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2010-03-01 15:51:43
|
Revision: 8164
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8164&view=rev
Author: jswhit
Date: 2010-03-01 15:51:19 +0000 (Mon, 01 Mar 2010)
Log Message:
-----------
add geos-3.2.0
Added Paths:
-----------
trunk/toolkits/basemap/geos-3.2.0/
trunk/toolkits/basemap/geos-3.2.0/AUTHORS
trunk/toolkits/basemap/geos-3.2.0/COPYING
trunk/toolkits/basemap/geos-3.2.0/ChangeLog
trunk/toolkits/basemap/geos-3.2.0/INSTALL
trunk/toolkits/basemap/geos-3.2.0/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/NEWS
trunk/toolkits/basemap/geos-3.2.0/README
trunk/toolkits/basemap/geos-3.2.0/TODO
trunk/toolkits/basemap/geos-3.2.0/aclocal.m4
trunk/toolkits/basemap/geos-3.2.0/acsite.m4
trunk/toolkits/basemap/geos-3.2.0/autogen.bat
trunk/toolkits/basemap/geos-3.2.0/build/
trunk/toolkits/basemap/geos-3.2.0/build/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/README
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/README
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos.sln
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_c_dll/
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_c_dll/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_c_dll/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_c_dll/geos_c_dll.vcxproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_c_dll/geos_c_dll.vcxproj.filters
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_lib/
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_lib/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_lib/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_lib/geos_lib.vcxproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_lib/geos_lib.vcxproj.filters
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_unit/
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_unit/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_unit/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_unit/geos_unit.vcxproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_unit/geos_unit.vcxproj.filters
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_xmltester/
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_xmltester/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_xmltester/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_xmltester/geos_xmltester.vcxproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc10/geos_xmltester/geos_xmltester.vcxproj.filters
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/README
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos.sln
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos.vsprops
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_c_dll/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_c_dll/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_c_dll/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_c_dll/geos_c_dll.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_lib/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_lib/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_lib/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_lib/geos_lib.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_python/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_python/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_python/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_python/geos_python.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_ruby/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_ruby/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_ruby/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_ruby/geos_ruby.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_unit/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_unit/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_unit/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_unit/geos_unit.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_xmltester/
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_xmltester/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_xmltester/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc80/geos_xmltester/geos_xmltester.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/README
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos.sln
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos.vsprops
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_c_dll/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_c_dll/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_c_dll/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_c_dll/geos_c_dll.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_lib/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_lib/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_lib/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_lib/geos_lib.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_python/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_python/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_python/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_python/geos_python.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_ruby/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_ruby/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_ruby/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_ruby/geos_ruby.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_unit/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_unit/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_unit/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_unit/geos_unit.vcproj
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_xmltester/
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_xmltester/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_xmltester/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/build/msvc90/geos_xmltester/geos_xmltester.vcproj
trunk/toolkits/basemap/geos-3.2.0/capi/
trunk/toolkits/basemap/geos-3.2.0/capi/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/capi/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/capi/geos_c.cpp
trunk/toolkits/basemap/geos-3.2.0/capi/geos_c.h
trunk/toolkits/basemap/geos-3.2.0/capi/geos_c.h.in
trunk/toolkits/basemap/geos-3.2.0/capi/geos_ts_c.cpp
trunk/toolkits/basemap/geos-3.2.0/config.guess
trunk/toolkits/basemap/geos-3.2.0/config.sub
trunk/toolkits/basemap/geos-3.2.0/configure
trunk/toolkits/basemap/geos-3.2.0/configure.in
trunk/toolkits/basemap/geos-3.2.0/depcomp
trunk/toolkits/basemap/geos-3.2.0/doc/
trunk/toolkits/basemap/geos-3.2.0/doc/Doxyfile
trunk/toolkits/basemap/geos-3.2.0/doc/Doxyfile.in
trunk/toolkits/basemap/geos-3.2.0/doc/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/doc/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/doc/README
trunk/toolkits/basemap/geos-3.2.0/doc/example.cpp
trunk/toolkits/basemap/geos-3.2.0/install-sh
trunk/toolkits/basemap/geos-3.2.0/ltmain.sh
trunk/toolkits/basemap/geos-3.2.0/macros/
trunk/toolkits/basemap/geos-3.2.0/macros/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/macros/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/macros/ac_pkg_swig.m4
trunk/toolkits/basemap/geos-3.2.0/macros/ac_python_devel.m4
trunk/toolkits/basemap/geos-3.2.0/macros/geos.m4
trunk/toolkits/basemap/geos-3.2.0/macros/libtool.m4
trunk/toolkits/basemap/geos-3.2.0/macros/ltoptions.m4
trunk/toolkits/basemap/geos-3.2.0/macros/ltsugar.m4
trunk/toolkits/basemap/geos-3.2.0/macros/ltversion.m4
trunk/toolkits/basemap/geos-3.2.0/macros/lt~obsolete.m4
trunk/toolkits/basemap/geos-3.2.0/macros/python.m4
trunk/toolkits/basemap/geos-3.2.0/macros/ruby.m4
trunk/toolkits/basemap/geos-3.2.0/makefile.vc
trunk/toolkits/basemap/geos-3.2.0/missing
trunk/toolkits/basemap/geos-3.2.0/nmake.opt
trunk/toolkits/basemap/geos-3.2.0/py-compile
trunk/toolkits/basemap/geos-3.2.0/source/
trunk/toolkits/basemap/geos-3.2.0/source/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/Makefile.vc
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/Angle.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/BoundaryNodeRule.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/CGAlgorithms.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/CentroidArea.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/CentroidLine.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/CentroidPoint.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/ConvexHull.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/HCoordinate.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/InteriorPointArea.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/InteriorPointLine.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/InteriorPointPoint.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/LineIntersector.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/MCPointInRing.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/MinimumDiameter.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/NotRepresentableException.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/PointLocator.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/RayCrossingCounter.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/RobustDeterminant.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/SIRtreePointInRing.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/SimplePointInRing.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/distance/
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/distance/DiscreteHausdorffDistance.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/distance/DistanceToPoint.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/distance/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/distance/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/IndexedPointInAreaLocator.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/PointOnGeometryLocator.cpp
trunk/toolkits/basemap/geos-3.2.0/source/algorithm/locate/SimplePointInAreaLocator.cpp
trunk/toolkits/basemap/geos-3.2.0/source/dirlist.mk
trunk/toolkits/basemap/geos-3.2.0/source/geom/
trunk/toolkits/basemap/geos-3.2.0/source/geom/Coordinate.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/CoordinateArraySequence.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/CoordinateArraySequenceFactory.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/CoordinateSequence.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/CoordinateSequenceFactory.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Dimension.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Envelope.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Geometry.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/GeometryCollection.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/GeometryComponentFilter.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/GeometryFactory.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/GeometryList.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/IntersectionMatrix.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/LineSegment.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/LineString.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/LinearRing.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Location.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/geom/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/geom/MultiLineString.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/MultiPoint.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/MultiPolygon.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Point.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Polygon.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/PrecisionModel.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/Triangle.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/AbstractPreparedPolygonContains.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/BasicPreparedGeometry.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedGeometry.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedGeometryFactory.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedLineString.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedLineStringIntersects.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPoint.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygon.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygonContains.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygonContainsProperly.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygonCovers.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygonIntersects.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/prep/PreparedPolygonPredicate.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/ComponentCoordinateExtracter.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/CoordinateOperation.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/GeometryCombiner.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/GeometryEditor.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/GeometryTransformer.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/geom/util/ShortCircuitedGeometryVisitor.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Depth.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/DirectedEdge.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/DirectedEdgeStar.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Edge.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeEnd.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeEndStar.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeIntersection.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeIntersectionList.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeList.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeNodingValidator.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/EdgeRing.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/GeometryGraph.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/GraphComponent.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Label.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Node.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/NodeFactory.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/NodeMap.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/PlanarGraph.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Position.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/Quadrant.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/TopologyLocation.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/MonotoneChainEdge.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/MonotoneChainIndexer.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SegmentIntersector.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SimpleEdgeSetIntersector.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SimpleMCSweepLineIntersector.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SimpleSweepLineIntersector.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SweepLineEvent.cpp
trunk/toolkits/basemap/geos-3.2.0/source/geomgraph/index/SweepLineSegment.cpp
trunk/toolkits/basemap/geos-3.2.0/source/headers/
trunk/toolkits/basemap/geos-3.2.0/source/headers/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/config.h.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/Angle.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/BoundaryNodeRule.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/CGAlgorithms.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/CentralEndpointIntersector.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/CentroidArea.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/CentroidLine.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/CentroidPoint.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/ConvexHull.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/ConvexHull.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/HCoordinate.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/InteriorPointArea.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/InteriorPointLine.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/InteriorPointPoint.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/LineIntersector.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/MCPointInRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/MinimumDiameter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/NotRepresentableException.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/PointInRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/PointLocator.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/RayCrossingCounter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/RobustDeterminant.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/SIRtreePointInRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/SimplePointInRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/DiscreteHausdorffDistance.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/DistanceToPoint.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/distance/PointPairDistance.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/IndexedPointInAreaLocator.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/PointOnGeometryLocator.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/algorithm/locate/SimplePointInAreaLocator.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/export.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/BinaryOp.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Coordinate.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Coordinate.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateArraySequence.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateArraySequenceFactory.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateArraySequenceFactory.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateFilter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateList.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateSequence.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateSequenceFactory.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/CoordinateSequenceFilter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Dimension.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Envelope.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Envelope.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Geometry.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Geometry.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryCollection.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryCollection.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryComponentFilter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryFactory.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryFactory.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryFilter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/GeometryList.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/IntersectionMatrix.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/LineSegment.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/LineSegment.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/LineString.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/LinearRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Location.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/MultiLineString.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/MultiLineString.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/MultiPoint.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/MultiPolygon.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/MultiPolygon.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Point.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Polygon.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/PrecisionModel.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/PrecisionModel.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/Triangle.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/AbstractPreparedPolygonContains.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/BasicPreparedGeometry.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedGeometry.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedGeometryFactory.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedLineString.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedLineStringIntersects.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPoint.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygon.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygonContains.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygonContainsProperly.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygonCovers.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygonIntersects.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/prep/PreparedPolygonPredicate.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/ComponentCoordinateExtracter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/CoordinateOperation.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/GeometryCombiner.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/GeometryEditor.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/GeometryEditorOperation.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/GeometryTransformer.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/LinearComponentExtracter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/PointExtracter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/PolygonExtracter.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom/util/ShortCircuitedGeometryVisitor.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geom.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomUtil.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Depth.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/DirectedEdge.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/DirectedEdge.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/DirectedEdgeStar.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Edge.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeEnd.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeEndStar.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeIntersection.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeIntersectionList.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeList.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeNodingValidator.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/EdgeRing.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/GeometryGraph.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/GeometryGraph.inl
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/GraphComponent.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Label.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Makefile.am
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Makefile.in
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Node.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/NodeFactory.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/NodeMap.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/PlanarGraph.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Position.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/Quadrant.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/TopologyLocation.h
trunk/toolkits/basemap/geos-3.2.0/source/headers/geos/geomgraph/index/
trunk/toolkits/base...
[truncated message content] |