What’s new in cartopy 0.12
Release: | 0.12.0 |
Date: | 14th April 2015 |
Features
We are very pleased to announce that Elliott Sales de Andrade was added to the cartopy
core development team. Elliott has added several new projections in this release, as well
as setting up cartopy’s Python 3 testing on TravisCI and generally improving the cartopy
codebase.
Installing cartopy became much easier for conda users. A scitools channel has been
added which makes getting cartopy and all of its dependencies on Linux, OSX and
Windows possible with:
conda install -c scitools cartopy
Support for Python 3, specifically 3.3 and 3.4, has been added. Some features that depend
on OWSLib will not be available as it does not support Python 3.
Two new projections, AzimuthalEquidistant and
AlbersEqualArea have been added. See the Cartopy projection list
for the full list of projections now available in cartopy.
The Web Map Service (WMS) interface has been extended to support on-the-fly reprojection
of imagery if the service does not support the projection of the map being drawn.
The following example demonstrates the process by adding WMS imagery to an Interrupted
Goode Homolosine map - unsurprisingly this WMS service does not provide IGH imagery, so
cartopy has had to reproject them from a projection the WMS does support:
Peter Killick added an interface for accessing MapBox tiles using the MapBox
Developer API. A MapBox client can be created with,
MapboxTiles and as with the other imagery from a simple URL
based imagery service, it can be added to a GeoAxes with the
add_image() method. The following example demonstrates the
interface for another source of imagery:
Some improvements were made to the geometry transformation algorithm to improve
the stability of geometry winding. Several cases of geometries being incorrectly
inverted when transformed have now been resolved. (PR #545)
Mark Hedley added the central_rotated_longitude keyword to
cartopy.crs.RotatedPole, which is particularly useful for limited area
rotated pole models in areas such as New Zealand:
A new method has been added to the GeoAxes to
allow control of the neatline of a map drawn with the matplotlib interface.
The method, set_boundary(), takes a
matplotlib Path object, which means that
arbitrary shaped edges can be achieved:
A new SRTM3 RasterSource has been implemented allowing interactive pan/zoom
of 3 arc-second elevation data from the Shuttle Radar Topography Mission.
The SRTM example has also been updated to use the
new interface.
New additions to the gallery:
Deprecations
- The SRTM module has been re-factored for simplicity and to take advantage
of the new raster source interface. Some
methods have therefore been deprecated and will be removed in future
releases. The function cartopy.io.srtm.srtm() has been replaced with
the cartopy.io.srtm.SRTM3Source.single_tile() method. Similarly,
cartopy.io.srtm.srtm_composite() and
cartopy.io.srtm.SRTM3_retrieve() have been replaced with the
cartopy.io.srtm.SRTM3Source.combined() and
cartopy.io.srtm.SRTM3Source.srtm_fname() methods respectively.
- The cartopy.io.RasterSource.fetch_raster interface has been
changed such that a sequence of cartopy.io.LocatedImage must be
returned, rather than a single image and its associated extent.
- The secant_latitudes keyword in cartopy.crs.LambertConformal has
been deprecated in favour of standard_parallels.
What’s new in cartopy 0.11
Release: | 0.11.0 |
Date: | 19 June 2014 |
- Richard Hattersley added epsg() support for generating
a Cartopy projection at run-time based on the EPSG code of a projected
coordinate system. This mechanism utilises http://epsg.io/ as a coordinate
system resource and employs EPSG request caching using
pyepsg
- Phil Elson added WMSRasterSource which
provides interactive pan and zoom OGC web services support for a Web Map
Service (WMS) aware axes. This capability may be added to an axes via the
add_wms() method. Generic interactive
slippy map panning and zooming capability is managed through the new
SlippyImageArtist and use of the
add_raster() method.
- WMTSRasterSource was added by Richard
Hattersley to provide interactive pan and zoom OGC web services support for
a Web Map Tile Service (WMTS) aware axes, which is available through the
add_wmts() method. This includes support
for the Google Mercator projection and efficient WTMS tile caching. This new
capability determines how to match up the available tiles projections
with the target projection and chooses the zoom level to best match the pixel
density in the rendered image.
(Source code)
- Thomas Lecocq added functionality to cartopy.io.srtm allowing
intelligent filling of missing elevation data, as well as a function to
compute elevation shading for relief style mapping. An example has been added
which uses both of these functions to produce a grayscale shaded relief map:
(Source code)
- Lion Krischer extended the capability of
GoogleTiles to allow support for street,
satellite, terrain and street_only style Google Map tiles.
- Nat Wilson’s contribution brought us a major step closer to Python 3 compatibility.
- Support for the UTM projection was added by Mark Hedley.
- Andrew Dawson has added a new convenience utility function
add_cyclic_point() to add a cyclic point to an array and
optionally to a corresponding 1D coordinate.
- Andrew Dawson added formatters for producing longitude/latitude tick labels for
rectangular projections. The formatters are customizable and can be used to produce
nice tick labels in a variety of styles:
(Source code)
What’s new in cartopy 0.10
Release: | 0.10.0 |
Date: | 17 January 2014 |
We are very pleased to announce that Andrew Dawson was added to the cartopy
core development team. In this release Andrew has single-handedly
implemented comprehensive vector transformation and visualisation
capabilities, including:
- The ability to transform vector fields between different coordinate
reference systems via the transform_vectors()
CRS method.
- GeoAxes.quiver and
GeoAxes.barbs for arrow and
barb plotting. More information is available at Vector plotting.
- A regridding function for “regularising” a vector field in the target
coordinate system. See also
cartopy.vector_transform.vector_scalar_to_grid(). Both
quiver() and
barbs() accept the regrid_shape
keyword to trigger this behaviour automatically.
- GeoAxes.streamplot adds
the ability to draw streamlines in any projection from a vector field in
any other projection.
(Source code)
What’s new in cartopy 0.9
Release: | 0.9.0 |
Date: | 12 September 2013 |
We are very pleased to announce that Bill Little was added to the cartopy
core development team. Bill has made some excellent contributions to cartopy,
and his presentation at EuroScipy‘13 on
“Iris & Cartopy”
was voted best talk of the conference.
Other talks and tutorials during this release cycle include Phil Elson’s talk at SciPy‘13
(with video),
Thomas Lecocq’s tutorial at EuroSciPy
and a forthcoming talk at FOSS4G.
Christoph Gohlke updated cartopy to support Windows 7.
The Plate Carree projection was updated to fully handle arbitrary globe definitions.
Peter Killick updated the Mercator class’ default globe to WGS84. His refactor paved the way
for some follow on work to fully implement the Google Spherical Mercator (EPSG:3857) projection.
The TransverseMercator class saw a tidy up to include several common arguments (ticket)
Bill Little added the Geostationary projection to allow geolocation of satellite imagery.
Byron Blay added the Lambert conformal conic projection.
What’s new in cartopy 0.8
Release: | 0.8.0 |
Date: | 3 June 2013 |
- Bill Little added support for the OSNI projection and enhanced the image nest capability. (PR #263)
- cartopy.io.img_nest.Img has been extended to include a
cartopy.io.img_nest.Img.from_world_file() static method for
easier loading of georeferenced images.
- Phil Elson added a major performance improvement when plotting data from PlateCarree onto a
PlateCarree map. (PR #260)
- Byron Blay and Richard Hattersley added a cartopy.crs.Globe class to encapsulate ellipsoid and optionally
datum information for CRSs. Globe handling in many projections, including Stereographic, has been added.
What’s new in cartopy 0.7
Release: | 0.7.0 |
Date: | 21 Mar 2013 |
This is a quick release which targets two very specific requirements. The goals outlined in the development plan at
v0.6 still remain the primary target for v0.8 and beyond.
What’s new in cartopy 0.6
Release: | 0.6.0 |
Date: | 19 Feb 2013 |
- Patrick Peglar added the ability to draw ticks for some limited projections
when using the gridlines() method on an Axes.
- Phil Elson and Carwyn Pelley extended the cartopy documentation to include
new tutorials such as Using the cartopy shapereader.
- Ian Edwards added a new example to create a favicon for cartopy.
- Phil Elson added a new example to show polygon analysis
and visualisation with Shapely and cartopy.
- Edward Campbell added a new cartopy.crs.EuroPP projection for UTM zone 32.
- Andrew Dawson added a central_longitude keyword for the Stereographic family of projections.
- Phil Elson added a Downloader class which allows
automatic downloading of shapefiles (currently from Natural Earth and GSHHS).
The extension requires no user action and can be configured via the cartopy.config dictionary.
Development plans for cartopy 0.7 and beyond
- Improve the projection definitions to support better control over datum definitions
and consider adding WKT support (ticket).
- Begin work on vector field support (barbs, quiver, streamlines etc.).
- Continue identifying and implementing performance enhancements (particularly in contour drawing).
- Extend the number of projections for which it is possible to draw tick marks.
What’s new in cartopy 0.5
Release: | 0.5.0 |
Date: | 7 Dec 2012 |
This document explains the new/changed features of cartopy in version 0.5.
Release 0.5 of cartopy continues the work to expand the feature-set of
cartopy to encompass common operations, and provide performance
improvements.
Cartopy 0.5 features
A summary of the main features added with version 0.5:
- An improved feature API to support future expansion and
sophistication, and a wider range of pre-defined Natural Earth
datasets.
Incompatible changes
None
Deprecations
- The method Axes.natural_earth_shp() has been replaced by the
method Axes.add_feature() and the cartopy.feature
module.
Feature API
A new features api is now available, see Using the cartopy shapereader.
import cartopy
import matplotlib.pyplot as plt
def main():
ax = plt.axes(projection=cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.LAND)
ax.add_feature(cartopy.feature.OCEAN)
ax.add_feature(cartopy.feature.COASTLINE)
ax.add_feature(cartopy.feature.BORDERS, linestyle=':')
ax.add_feature(cartopy.feature.LAKES, alpha=0.5)
ax.add_feature(cartopy.feature.RIVERS)
ax.set_extent([-20, 60, -40, 40])
plt.show()
if __name__ == '__main__':
main()
(Source code)