version 1.0 (svn revision 8531) * don't force adjustable='box' so Basemap is compatible with AxesGrid. Added fcstmaps_axesgrid.py example. * add support for plotting on unstructured grids using keyword 'tri' in pcolor,contour,contourf methods (which then forward to tripcolor, tricontour, tricontourf axes methods). examples/ploticos.py added. * let continents that fill the whole map be filled. * 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 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. * geos-3.1.1 now required. 3.2.0 source included (instead of 2.2.3). * 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 (this prevents contourf from erroneously filling entire map). * added 'nightshade' method to shade night regions on a map. 'daynight.py' example added to illustrate usage. * 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. * 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 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). * 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 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. 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 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/warpimage: pass kwargs to imshow, return Image instance. version 0.99.2 (svn revision 6541) * fix drawlsmask method so that it works for cylindrical projections with limits outside (-180,180). * added 'scale' keyword to bluemarble and warpimage methods to downsample image background. * Made lat_ts default to 0 for mercator. * Now can specify just lon_0 for all cylindrical projections (to produce global map centered on lon_0). * Added save_background.py example, showing how to re-use a map background without redrawing coastlines. * Added embedding_map_in_wx.py example (courtesy of Mauro Cavalcanti). * Added masked array support to shiftgrid function (thanks to Jesper Larsen). * defer import of netcdf stuff till it is needed (in NetCDFFile function). * Added McBryde-Thomas Flat Polar Quartic (projection = 'mbtfpq'), Gall Stereographic Cylindrical (projection = 'gall') and van der Grinten (projection = 'vandg'). * fix bugs in warpimage and bluemarble methods for several projections. * bugfix patch for rotate_vector from David Huard. David also contributed the beginnings of a test suite. * make sure scatter method sets pyplot color mappable. * added cubed_sphere example. * updated NetCDFFile to use pupynere 1.0.2 (now can write as well as read!). * now works with geos version 3. * added "proj4string" Basemap instance variable. * testgdal example now uses gdal to read topo data from a raster DEM file and ogr to read state boundaries from a shape file. * warpimage method can now handle gray-scale images, and images specifed as URLs (for example, the Blue Marble images from http://earthobservatory.nasa.gov/Newsroom/BlueMarble/BlueMarble_monthlies.html). version 0.99.1 (svn revision 5961) * geos-2.2.3 patched for compatibility with gcc 4.3. * added "barbs" method to draw wind barbs on the map. * added "tissot" method for generating Tissot's indicatrix (see example plot_tissot.py). * fixed processing of coastlines for gnomonic projection. * don't try to use PyNIO in NetCDFFile (it was causing too many suprises). * start of improved documentation using Sphinx/docutils. Can be viewed at http://matplotlib.sf.net/basemap/doc/html * change default behaviour of num2date and date2num to be the same as matplotlib counterparts. version 0.99 (svn revision 5344) * fix to warpimage method for API change in matplotlib 0.98.0. * updated pyproj to 1.8.6. * fixed bug in NetCDFFile creating masked arrays when both _FillValue and missing_value exist. * drawparallels and drawmeridians return a dictionary containing the Line2D and Text instances associated with each lat or lon. * drawcoastlines, drawcountries and friends now have PatchCollection return values. * make sure '_nolabel_' set on coastlines, countries, states, rivers, parallels and meridians so they are not included in a legend. * added drawmapscale method to create a map scale bar similar to that available with the GMT's psbasemap. * Now lives in mpl_toolkits.basemap. Instead of 'from matplotlib.toolkits.basemap import Basemap', use 'from mpl_toolkits.basemap import Basemap'. All examples changed. Uses matplotlib mpl_toolkits namespace package, so basemap can now be installed if matplotlib is installed as an egg. Python 2.3 support re-enabled. * changed _geos to _geoslib, so as not to conflict with the python module bundled with the GEOS library. * some fixes/enhancements for omerc projection (added 'no_rot' flag). * added warpimage method for displaying an image background. Default is NASA's blue marble image, which is included. version 0.9.9.1 (svn revision 4808) * require python 2.4 (really only needed for building). Once namespace packages are re-enabled in matplotlib, python 2.3 should work again. version 0.9.9 (svn revision 4799) * updated proj4 sources to version 4.6.0. * removed hidden dependency on setuptools (in dap module). * fixed exception handling bug in code that looks for intersection between boundary feature and map projection region. * setup.py now looks for GEOS library in a few standard places (/usr/local, /opt, $HOME, /sw) if the GEOS_DIR environment variable not set. This is a workaround for a new Leopard 'feature' (sudo does not inherit enviroment variables). * added support for reading Point and MultiPoint shapes from ESRI shapefiles. * now automatically draws figure if running in interactive mode (so draw() does not need to be called explicitly in ipython). * added num2date and date2num functions, which use included netcdftime module. version 0.9.8 (svn revision 4526) * fixes for filling continents in orthographic projection. * added 'maskandscale' kwarg to NetCDFFile to optionally turn off automatic masking and rescaling of variable data. * NetCDFFile will try to use PyNIO if it installed and the file cannot be read with pupynere. This allows GRIB1,GRIB2,HDF4 and HDFEOS2 files to be read. * 'fmt' kwarg to drawparallels and drawmeridians can now be a custom string formatting function (example customticks.py demonstrates usage). * remove 'linestyle' kwarg from drawparallels and drawmeridians (it never did anything anyway since it was overridden by the 'dashes' kwarg). * modify NetCDFFile to use dap module to read remote datasets over http. Include dap and httplib2 modules. * modify NetCDFFile to automatically apply scale_factor and add_offset, and return masked arrays masked where data == missing_value or _FillValue. * add 'fill_color' option to drawmapboundary, to optionally fill the map projection background a certain color. * added 'sstanom' colormap from http://www.ghrsst-pp.org/GHRSST-PP-Data-Tools.html version 0.9.7 (svn revision 4422) * fixed bug in drawlsmask for 'moll','robin' and 'sinu' projections. * added lake_color keyword to fillcontinents. * fixed a bug in the 'tmerc' projection. * added pure python NetCDFFile reader from Roberto De Almeida to basemap namespace (from matplotlib.toolkits.basemap import NetCDFFile). * added support for full-resolution boundaries (will be a separate download). Full-res files (totaling around 100 mb) available in SVN. * high-resolution boundaries now included. * postpone processing of countries, states and river boundaries until a draw is requested. Only the coastlines are processed in __init__. * use a Pyrex/Cython interface to the GEOS library (http://geos.refractions.net - LGPL license) to find geometries that are within map projection region. This speeds up instance creation for small map regions and high resolution coastlines. Boundary datasets now in binary format (I/O is faster). Requires GEOS version 2.2.3, source code included. * remove all numerix imports. * fix rotate_vector so it works in S. Hem and for non-orthogonal grids. Support for masked velocity vectors also added. (EF) * numpification. (EF) version 0.9.6 (svn revision 3888) * fix addcyclic function so it handles masked arrays. * labelling of meridians and parallels now works with very small map regions (less than 0.2 degrees square). * Subregions of the globe may be specified with llcrnrlat, llcrnrlon,urcrnrlat,urcrnrlon keywords for 'ortho' and 'geos'. (illustrated by examples/geos_demo_2.py). * Added "labelstyle" keyword to drawparallels and drawmeridians. If set to "+/-", labels are given prefixed by "+" or "-", instead of suffixed with "N","S","E" or "W". Useful for astronomical plots, where the is no such thing and north, south east or west. * Added support for geostationary satellite projection (projection='geos'), contributed by Scott Sinclair. Illustrated by examples/geos_demo.py. * added a bunch of extra colormaps (mostly from GMT), and a script to plot them (examples/show_colormaps.py). To import new colormaps, use 'from matplotlib.toolkits.basemap import cm' * orthographic projection only defined for perfect sphere - raise an error if user tries to use an ellipsoid. * print a warning in contour, contourf in situations that may result in a screwy looking plot (x not monotonically increasing, because the data wraps around the edge of the plot). The warning suggests using the shiftgrid function to recenter the data on the map projection region. * fixed setup.py so it works properly with python 2.3, and on Windows. * added zorder keyword to drawmeridians, drawparallels, drawcoastlines, drawstates, drawcountries, drawrivers, readshapefile and fillcontinents. * numpy now required. * added 'srs' (spatial reference system) instance variable. * updated pyproj to version 1.8.3. Now uses pyproj.Geod for Great Circle calculations. proj.4 data files now included. * make sure axes ticks are always turned off, unless noticks=False set when creating Basemap instance. 20070314: version 0.9.5 (svn revision 3083) * fixed examples to conform to 'one show() per script' rule. * intermediate coastlines now installed by default. basemap-data is no longer a separate package (couldn't figure out how to manage the egg). If the 'h' res boundaries are needed, the data files must be manually put in place by the user. BASEMAP_DATA_PATH env var no longer used. * reorganized data files so that bdist_egg includes the data. setup-data.py now used to install the high-res data files. * make sure proj returns 1.e30 instead of HUGE_VAL for undefined transformations (HUGE_VAL is inf on most platforms, which gets embedded in the postscript, resulting in a un-renderable file) * typedef Py_ssize_t if necessary - ADS * rename pyproj.so _pyproj.so, added a python wrapper pyproj.py, moved pyproj into matplotlib.toolkits.basemap. 20061117: version 0.9.4 * added "Tissot's indicatrix" example. * 'extent' keyword was erroneously being passed to pcolor. * update proj4 source files to version 4.5.0. * updated pyproj to version 1.8.0 (better error handling). 20061017: version 0.9.3 * update pyproj.c to be compatible with python 2.5. * added new example ccsm_popgrid.py (contributed by Ivan Lima). 20060831: version 0.9.2 * fixed several bugs in drawlsmask method. * removed buggy optimizations for cylindrical projections not crossing the Greenwich meridian. * can now specify map projection region by setting width and height in projection coordinates (in meters) instead of specifying lat/lon of upper right and lower left corners. 20060727: version 0.9.1 * make sure llcrnrlat and llcrnrlon are not at poles for mercator. * use Eric Firing's new quiver in Basemap quiver method. * interp functions now work with masked arrays. * added some sanity checks for projection parameters. * change from classic to new-style classes. * removed deprecated 'createfigure' method. * fixed some creeping numpy'isms (which caused breakage when numarray or Numeric were used). 20060609: version 0.9: * updated for new matplotlib aspect ratio handling. Now maps will always have the correct aspect ratio. * if resolution keyword is set to None when Basemap instance is created, no boundary data sets are needed (methods to draw boundaries, like drawcoastlines, will raise an exception). * update to proj4 module - renamed pyproj to avoid conflicts with proj4 module from CDAT. * createfigure method deprecated, since maps will now automatically have the correct aspect ratio. * Added new projections Xpstere, Xplaea, Xpaeqd (where X can be n or s). These are special-case, polar-centric versions of the stereographic, lambert azimuthal equal area and azimuthal equidistant projections that don't require you specify the lat/lon values of the lower-left and upper-right corners. * fixed bugs in plot, scatter and mapboundary methods for miller, cylindrical and mercator projections. * 'crude' and 'low' resolution boundary datasets now installed by default. basemap_data package now only needed for to get 'intermediate' and 'high' resolution datasets. * moved all packages under single lib/ directory so setuptools' "develop" command works properly. * Added sinusoidal projection. * bilinear interpolation routines can return masked arrays with values outside range of data coordinates masked. * New examples (warpimage.py - warping an image to different map projections, polarmaps.py - simplified polar projections, garp.py - 'World According to Garp' maps). * pcolormesh method added. * drawlsmask method added for masking oceans and/or land areas. 5 minute land-sea mask dataset added. 20060222: version 0.8.2: Minor bug fixes, mostly in examples. 20060203: version 0.8.1: Huge speedups for numpy (no significant differences for Numeric and numarray). 20060114: version 0.8: added numpy compatibility 20051118: version 0.7.2.1: There was a problem running examples that read pickle files. The pickle files were created with numarray, and the data would not be read correctly using Numeric. Fixed so that pickles are created with Numeric and Numeric is used to read them. 20051018: version 0.7.2: * No longer requires numarray (interp function no longer uses numarray.nd_image). * Modified to work with the new ContourSet returned by contour and contourf. * Axes frame turned off by default for non-rectangular projections ('ortho','robin' and 'moll'). * Added createfigure method to create a figure with the same aspect ratio as the map using pylab.figure. * Resets subplot.params defaults so that default axes rectangle will have both a width and height of 0.9 (this ensures that the figure size determines that aspect ratio of the plot). * readshapefile method raises an exception if the vertices look like they are not in geographic (lat/lon) coordinates. 20050921: version 0.7.1: Fixed several bugs in meridian/parallel labelling and Cylindrical projections that crossed greenwich were not being handled properly. Added 'fmt' keyword arg to drawmeridians and drawparallels (default is '%g'). Fixed bug in 'readshapefile' that prevented boundaries from being drawn for 'cyl','merc' or 'miller' projections when the map region did not cross the greenwich meridian. Modified imshow method so 'origin' keyword is accepted (it was always set to 'lower' previously). Added testgdal.py example showing how to plot raster geospatial data with gdal module (gdal.maptools.org). Meridians and parallels labelled correctly when rcParams['text.usetext']=True. 20050914: version 0.7: Optimizations to reduce the time it takes to create a Basemap class instance - now nearly 4 times faster when using resolution='i'. Added 'h' (high) resolution boundary data. Added datasets for major rivers, "drawrivers" class method. Fixed some errors in boundaries datasets. Boundary datasets now installed in a separate package. Should now handle Numeric to numarray conversions internally, so removed warning when rcParams['numerix'] != 'numarray'. Changed default area_thresh so it depends on coastline resolution (10000 for 'c' declining to 10 for 'h'). 20050901: version 0.6.2: Warning issued if numerix = 'Numeric' (a user reported crashes due to botched Numeric --> numarray conversions). Changes to proj4 wrapper to make Basemap instances pickle-able. 20050814: version 0.6.1: Added hurrtracks.py example (plot hurricane tracks from shapefile). Now includes pyshapelib (extracted from Thuban source). 20050811: version 0.6: sf bug #1254163 (make sure lat/lon limits of projection are floats) wiki_example.py and plotclimdiv.py examples added. Added 'readshapefile' method for reading and plotting data from ESRI shapefiles (requires pyshapelib from Thuban). plotclimdiv.py is an example that illustrates this. 20050628: version 0.5.2: fixed bug in meridian labelling when lon > 360 or lon < -180. Now fully "pylab free" if 'ax' keyword is used in Basemap.__init__ or all of the Basemap methods that do drawing. 20050626: version 0.5.1: Added ability to specify an existing axis instance in all Basemap methods (instead of just using current one). Default is still to use current axis instance. Full control of font properties for parallel and meridian labels (now uses unicode instead of mathtext for degree symbol). 20050602: version 0.5 Added Orthographic, Mollweide and Robinson projections. Added 'drawmapboundary' method to draw a line around the map projection region. Added 'suppress_ticks' keyword to Basemap.__init__ It's True by default, but can be set to False if you want to label ticks in native map projection coordinates. Added 'rotate_vector' method to rotate vectors to map projection coordinates (without interpolation, as in 'transform_vector' method). Modified pcolor, contour, contourf methods to use masked arrays. Now requires matplotlib-0.81 drawparallels and drawmeridians methods now take optional keyword arguments 'xoffset' and 'yoffset', which control how far from the edge of the map labels are drawn. 20050511: version 0.4.3 Added Oblique Mercator. great circle calculations now use vincenty's equations for an ellipsoid. 20050510: version 0.4.2 transform_vector now does a simple rotation of the vector from geographic to map coordinates, preserving the vector magnitude (removed 'preserve_magnitude' keyword). Minor bugs in Miller and Mercator projections fixed. Added Gnomonic, Cassini-Soldner and Polyconic projections (now 13 projections supported). 20050509: version 0.4.1 Miller projection was erroneously referred to by the name 'miller' (instead of 'mill') - fixed. Added the ability to specify the major and minor sphere radii by specifying the 'rsphere' keyword in __init__ to be a tuple instead of a scalar. 20050505: version 0.4 added support for miller cylindrical, equidistant conic, and azimuthal equidistant projections. Bugs fixed in coastline drawing and continent filling methods. 20050427: version 0.3.3 fillcontinents modified to not fill lakes (they are actually still filled, but with axis background color). 20050420: version 0.3.2 - code cleanups and docstring typo fixes. env var BASEMAP_DATA_PATH can now be used to point to data files in a non-standard install (i.e using --prefix or --home). 20050415: version 0.3 Added transform_scalar and transform_vector methods for interpolating scalar and vector fields to a map projection grid. Added shiftgrid and addcyclic convenience functions. Added quiver_demo.py example illustrating how to plot wind vectors on a map. Updated examples to use transform_scalar instead of calling interp directly. Mercator x coordinate units changed from degrees to meters setup.py now installs data in python-version-numbered directory. (so you can have separate copies for different python versions). Fixed aspect ratio of mercator plots. Added set_axes_limits,plot,scatter,contourf,contour, pcolor and quiver methods. axes instance no longer a method argument (API change). 20050410: version 0.2.1 - add gcpoints and drawgreatcircles methods. Added intermediate resolution coastline and political boundary databases. Fixed bug in filling continents, and another bug in drawing parallels/meridians. Added 'ireland.py' example. 20050404: version 0.2 - drawparallels and drawmeridians can now draw labels at edge of map. 20050331: version 0.1.2 - now can handle negative longitudes (patch from Michael Brady). basemap.interp can now handle irregular (but still rectilinear) lat/lon grids. 20050203: version 0.1 released on SF. 20050202: Changed LineCollections.color to set_color in a try/except block. (color was a typo in 0.71 and is deprecated). 20050130: no user visible changes. Uses new pyrex generated C extension interface to proj.4 which is twice as fast as the Thuban one. 20050124: some code reorg, fixed bugs in S. Hem. projections. xmin,xmax,ymin,ymax Basemap instance variables renamed to llcrnrx,urcrnrx,llcrnry,urcrnry. Added __call__ and makegrid methods to Basemap class. 20050121: proj.4 is now called via a C-library interface, instead of using the proj command-line tool via os.popen. 20050119: fixed glitches in drawing of parallels and meridians.