Commit 6d6e2879 authored by Bas Couwenberg's avatar Bas Couwenberg

New upstream version 0.17.0+dfsg

parent 1331b37c
......@@ -23,6 +23,8 @@ env-run: &env-setup
# a separate environment.
name: Setup conda environment
command: |
# Update conda to fix https://github.com/conda/conda/issues/6811
conda install -n base conda
conda config --set always_yes yes --set changeps1 no --set show_channel_urls yes
conda create -n test-environment python=$PYTHON_VERSION
conda config --add channels conda-forge
......@@ -44,8 +46,9 @@ deps-run: &deps-install
requests \
pyepsg \
owslib \
$EXTRA_PACKAGES
conda install --quiet --file docs/doc-requirements.txt
pykdtree \
$EXTRA_PACKAGES \
--file docs/doc-requirements.txt
conda list
cp-run: &cp-install
......
* Ask usage questions on [StackOverflow](https://stackoverflow.com/questions/tagged/cartopy).
* For less well defined questions, ideas, general discussion or announcements of related projects use the [Google Group](https://groups.google.com/forum/#!forum/scitools-iris).
* Report bugs, suggest features or view the source code on [GitHub](https://github.com/SciTools/cartopy).
......@@ -2,6 +2,8 @@
*.py[co]
build
docs/build
dist
.pytest_cache/
# cartopy build files
lib/cartopy/trace.cpp
......@@ -31,6 +33,8 @@ lib/cartopy/data/shapefiles
lib/cartopy/tests/.pep8_test_exclude.txt
lib/cartopy/siteconfig.py
cartopy_test_output
# pydev files
.project
.pydevproject
......@@ -41,12 +45,16 @@ lib/cartopy/siteconfig.py
\.\#*
*.swp
.ipynb_checkpoints/
.idea/
# Operating system files
\.DS_Store
.cache/
__pycache__/
# PyTest cache files
.pytest_cache
# Egg that gets created with 'pip install -v -e .'
lib/Cartopy.egg-info/
*.egg-info/
.eggs/
......@@ -4,19 +4,17 @@ env:
matrix:
# These ancient versions are linked to an old libgfortran, but that version
# isn't pinned in the package metadata
# Forcing build 3 for numpy pulls in the packages from defaults, which
# is needed in order to work with libgfortran 1
- PYTHON_VERSION=2.7
PACKAGES="numpy=1.9.3=py27_3 matplotlib=1.4.3 nose scipy=0.16.0 libgfortran=1 mock"
PACKAGES="numpy=1.10.0 matplotlib=1.5.1 nose proj4=4.9.1 scipy=0.16.0 libgfortran=1 mock"
- PYTHON_VERSION=3.5
PACKAGES="numpy=1.9.3=py35_3 matplotlib=1.4.3 nose scipy=0.16.0 libgfortran=1"
# New FreeType causes changes in text output.
PACKAGES="numpy=1.10.0 matplotlib=1.5.1 nose proj4=4.9.1 scipy=0.16.0 libgfortran=1"
PYTHONHASHSEED=0 # So pytest-xdist works.
- NAME="Latest everything."
PYTHON_VERSION=3.6
PACKAGES="numpy matplotlib freetype<2.8 scipy"
PACKAGES="numpy matplotlib-base proj4 pykdtree scipy"
- NAME="Latest everything (py2k)."
PYTHON_VERSION=2
PACKAGES="numpy matplotlib freetype<2.8 scipy mock"
PACKAGES="numpy matplotlib proj4 scipy mock"
sudo: false
......@@ -40,19 +38,22 @@ install:
# Create the basic testing environment
# ------------------------------------
- conda config --set always_yes yes --set changeps1 no --set show_channel_urls yes
- conda update conda
- conda create -n test-environment python=$PYTHON_VERSION
- source activate test-environment
- ENV_NAME="test-environment"
- conda create -n $ENV_NAME python=$PYTHON_VERSION
- source activate $ENV_NAME
# Customise the testing environment
# ---------------------------------
- conda config --add channels conda-forge
- PACKAGES="$PACKAGES cython pillow pytest pep8 proj4 pyshp shapely six requests pyepsg owslib"
- conda config --add channels conda-forge/label/testing
- PACKAGES="$PACKAGES cython pillow pytest pytest-xdist filelock pep8 pyshp shapely six requests pyepsg owslib"
- conda install --quiet $PACKAGES
# Conda debug
# -----------
- conda list
- conda list -n $ENV_NAME
- conda list -n $ENV_NAME --explicit
- conda info -a
- MPL_CONFIG_DIR=~/.config/matplotlib
- mkdir -p $MPL_CONFIG_DIR
......@@ -71,11 +72,24 @@ script:
- python $TRAVIS_BUILD_DIR/tools/feature_download.py gshhs physical --dry-run
- if [[ "$NAME" == "Latest everything"* ]]; then
CARTOPY_GIT_DIR=$TRAVIS_BUILD_DIR pytest --doctest-modules --pyargs cartopy;
CARTOPY_GIT_DIR=$TRAVIS_BUILD_DIR pytest -n 4 --doctest-modules --pyargs cartopy;
else
CARTOPY_GIT_DIR=$TRAVIS_BUILD_DIR pytest --pyargs cartopy;
CARTOPY_GIT_DIR=$TRAVIS_BUILD_DIR pytest -n 4 --pyargs cartopy;
fi
after_failure:
- source activate test-environment
- source activate $ENV_NAME
- python -c "from __future__ import print_function; import cartopy.tests.mpl; print(cartopy.tests.mpl.failed_images_html())"
deploy:
- provider: pypi
user: scitools-cartopy
# travis encrypt <password>
password:
secure: Wbc/NQkcEsWVGn3hTemLbaDond6dtAO46Q6PVSS0GiL9RU0bH6QIpLq34JV5hKRuhooFp8WaU49OJsH71iMB4Utrr1y8olkwpTuq7BBsuZGSHtStX0T4UKUCAHynlLnCEqIyBBDIWFsIy6OnLZDnKmPkqLW8IdQfk0aWl0mDv5w=
distributions: sdist
upload_docs: false
on:
repo: SciTools/cartopy
condition: $NAME == "Latest everything"*
tags: true
......@@ -40,17 +40,17 @@ These external packages are required to install Cartopy or gain access to
significant Cartopy functionality.
Many of these packages are available in Linux package managers
such as aptitude and yum. For example, it may be possible to install
such as aptitude and yum. For example, it may be possible to install
Numpy using::
apt-get install python-numpy
If you are installing dependencies with a package manager on Linux,
you may need to install the development packages (look for a "-dev"
suffix) in addition to the core packages.
If you are installing dependencies with a package manager on Linux,
you may need to install the development packages (look for a "-dev"
suffix) in addition to the core packages.
Many of these dependencies are built as part of Cartopy's conda distribution.
The recipes for these can be found at `https://github.com/conda-forge/feedstocks`_.
The recipes for these can be found at https://github.com/conda-forge/feedstocks.
**Python** 2.7 or later (https://www.python.org/)
......@@ -58,7 +58,7 @@ The recipes for these can be found at `https://github.com/conda-forge/feedstocks
**Cython** 0.15.1 or later (https://pypi.python.org/pypi/Cython/)
**NumPy** 1.6 or later (http://www.numpy.org/)
**NumPy** 1.10 or later (http://www.numpy.org/)
Python package for scientific computing including a powerful N-dimensional
array object.
......@@ -73,7 +73,7 @@ The recipes for these can be found at `https://github.com/conda-forge/feedstocks
**pyshp** 1.1.4 or later (https://pypi.python.org/pypi/pyshp)
Pure Python read/write support for ESRI Shapefile format.
**PROJ.4** 4.9.0 or later (http://proj4.org/)
**PROJ** 4.9.0 or later (https://proj4.org/)
Cartographic Projections library.
**six** 1.3.0 or later (https://pypi.python.org/pypi/six)
......@@ -85,7 +85,7 @@ Optional Dependencies
These are optional packages which you may want to install to enable
additional Cartopy functionality.
**matplotlib** 1.3.0 or later (https://matplotlib.org/)
**Matplotlib** 1.5.1 or later (https://matplotlib.org/)
Python package for 2D plotting. This package is required for any
graphical capability.
......@@ -99,6 +99,10 @@ additional Cartopy functionality.
**pyepsg** 0.2.0 or later (https://github.com/rhattersley/pyepsg)
A simple Python interface to https://epsg.io
**pykdtree** 1.2.2 or later (https://github.com/storpipfugl/pykdtree)
Fast kd-tree implementation in Python; used for faster warping of images in
preference to SciPy.
**SciPy** 0.10 or later (https://www.scipy.org/)
Python package for scientific computing.
......@@ -106,19 +110,23 @@ additional Cartopy functionality.
Python package for client programming with Open Geospatial Consortium
(OGC) web service. Gives access to cartopy ogc clients.
**Fiona** 1.0 or later (https://github.com/Toblerity/Fiona)
Python package for reading shapefiles faster than the default (pyshp).
Testing Dependencies
~~~~~~~~~~~~~~~~~~~~
These packages are required for the full Cartopy test suite to run.
**filelock** (https://filelock.readthedocs.io/)
A platform independent file lock for Python.
**mock** 1.0.1 (https://pypi.python.org/pypi/mock/)
Python mocking and patching package for testing. Note that this package
is only required to support the Cartopy unit tests.
**pytest** 3.0.0 or later (https://docs.pytest.org/en/latest/)
**pytest** 3.1.0 or later (https://docs.pytest.org/en/latest/)
Python package for software testing.
**pep8** 1.3.3 or later (https://pypi.python.org/pypi/pep8)
**pep8** 1.3.3 or later (https://pypi.python.org/pypi/pep8)
Python package for software testing.
......@@ -3,9 +3,11 @@ include CHANGES
include COPYING*
include INSTALL
include README.rst
include pyproject.toml
include requirements/*.txt
include lib/cartopy/data/*
include lib/cartopy/io/srtm.npz
include lib/cartopy/tests/lakes_shapefile/*
recursive-include lib *.py
recursive-include lib *.pyx *.pxd *.h
include versioneer.py
![Cartopy logo](http://scitools.org.uk/cartopy/docs/latest/_static/cartopy.png)
<h1 align="center" style="margin:1em;">
<a href="http://scitools.org.uk/cartopy/docs/latest/">
<img src="http://scitools.org.uk/cartopy/docs/latest/_static/cartopy.png"
alt="Cartopy"></a>
</h1>
Cartopy
-------
[![Build Status](https://api.travis-ci.org/repositories/SciTools/cartopy.svg?branch=master)](https://travis-ci.org/SciTools/cartopy/branches)
<h4 align="center">
Cartopy is a Python package designed to make drawing maps for
data analysis and visualisation easy.
</h4>
Cartopy is a Python package designed to make drawing maps for data analysis and visualisation easy.
<p align="center">
<!-- https://shields.io/ is a good source of these -->
<a href="https://anaconda.org/conda-forge/cartopy">
<img src="https://img.shields.io/conda/dn/conda-forge/cartopy.svg"
alt="conda-forge downloads" /></a>
<a href="https://github.com/SciTools/cartopy/releases">
<img src="https://img.shields.io/github/tag/SciTools/cartopy.svg"
alt="Latest version" /></a>
<a href="https://github.com/SciTools/cartopy/commits/master">
<img src="https://img.shields.io/github/commits-since/SciTools/cartopy/latest.svg"
alt="Commits since last release" /></a>
<a href="https://github.com/SciTools/cartopy/graphs/contributors">
<img src="https://img.shields.io/github/contributors/SciTools/cartopy.svg"
alt="# contributors" /></a>
<a href="https://travis-ci.org/SciTools/cartopy/branches">
<img src="https://api.travis-ci.org/repositories/SciTools/cartopy.svg?branch=master"
alt="Travis-CI" /></a>
<a href="https://zenodo.org/badge/latestdoi/5282596">
<img src="https://zenodo.org/badge/5282596.svg"
alt="zenodo" /></a>
<a href="https://gitter.im/SciTools/cartopy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge">
<img src="https://badges.gitter.im/SciTools/cartopy.svg" alt="Gitter Chat" /></a>
</p>
<br>
# Table of contents
<!--
NOTE: toc auto-generated with https://github.com/jonschlinkert/markdown-toc
$> markdown-toc -i --bullets='-' README.md
NOTE: This entire README can be markdown linted with
https://github.com/igorshubovych/markdownlint-cli
$ echo '{"no-inline-html": false}' > .markdownrc
$ markdownlint README.md
-->
<!-- toc -->
- [Overview](#overview)
- [Get in touch](#get-in-touch)
- [License and copyright](#license-and-copyright)
<!-- tocstop -->
## Overview
Cartopy is a Python package designed to make drawing maps for data
analysis and visualisation easy.
It features:
* object oriented projection definitions
* point, line, polygon and image transformations between projections
* integration to expose advanced mapping in Matplotlib with a simple and intuitive interface
* powerful vector data handling by integrating shapefile reading with Shapely capabilities
- object oriented projection definitions
- point, line, polygon and image transformations between projections
- integration to expose advanced mapping in Matplotlib with a simple and
intuitive interface
- powerful vector data handling by integrating shapefile reading with Shapely
capabilities
Documentation can be found at <http://scitools.org.uk/cartopy/docs/latest/>.
## Get in touch
- Ask usage questions on
[StackOverflow](https://stackoverflow.com/questions/tagged/cartopy).
- For less well defined questions, ideas, general discussion or announcements
of related projects use the
[Google Group](https://groups.google.com/forum/#!forum/scitools-iris).
- Report bugs, suggest features or view the source code on
[GitHub](https://github.com/SciTools/cartopy).
- To chat with developers and other users you can use the
[Gitter Chat](https://gitter.im/SciTools/cartopy)
## License and copyright
Cartopy is licensed under GNU Lesser General Public License (LGPLv3).
Development occurs on GitHub at <https://github.com/SciTools/cartopy>, with a
contributor's license agreement (CLA) that can be found at
<http://scitools.org.uk/governance.html>.
Licence
-------
Cartopy is licenced under GNU Lesser General Public License (LGPLv3).
(C) British Crown Copyright, Met Office
=======
Cartopy
=======
.. image:: http://scitools.org.uk/cartopy/docs/latest/_static/cartopy.png
Cartopy is a Python package designed to make drawing maps for data analysis and visualisation easy.
It features:
* object oriented projection definitions
* point, line, polygon and image transformations between projections
* integration to expose advanced mapping in Matplotlib with a simple and intuitive interface
* powerful vector data handling by integrating shapefile reading with Shapely capabilities
Documentation can be found at http://scitools.org.uk/cartopy/docs/latest/.
----
Code
----
Cartopy is licenced under GNU Lesser General Public License (LGPLv3).
Development occurs at https://github.com/SciTools/cartopy.
......@@ -3,5 +3,5 @@ netCDF4
iris
iris-sample-data
cf_units
sphinx-gallery =0.1.12
sphinx-gallery =0.2.0
beautifulsoup4
# (C) British Crown Copyright 2011 - 2017, Met Office
# (C) British Crown Copyright 2011 - 2018, Met Office
#
# This file is part of cartopy.
#
......@@ -16,22 +16,59 @@
# along with cartopy. If not, see <https://www.gnu.org/licenses/>.
from __future__ import (absolute_import, division, print_function)
import os
import inspect
import textwrap
import numpy as np
import cartopy.crs as ccrs
SPECIAL_CASES = {
ccrs.PlateCarree: [{}, {'central_longitude': 180}],
ccrs.RotatedPole: [{'pole_longitude': 177.5, 'pole_latitude': 37.5}],
ccrs.UTM: [{'zone': 30}],
ccrs.AzimuthalEquidistant: [{'central_latitude': 90}],
ccrs.NearsidePerspective: [{
#: A dictionary to allow examples to use non-default parameters to the CRS
#: constructor.
SPECIFIC_PROJECTION_KWARGS = {
ccrs.RotatedPole: {'pole_longitude': 177.5, 'pole_latitude': 37.5},
ccrs.AzimuthalEquidistant: {'central_latitude': 90},
ccrs.NearsidePerspective: {
'central_longitude': -3.53, 'central_latitude': 50.72,
'satellite_height': 10.0e6}],
'satellite_height': 10.0e6},
}
def plate_carree_plot():
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
nplots = 2
fig = plt.figure(figsize=(6, 6))
for i in range(0, nplots):
central_longitude = 0 if i == 0 else 180
ax = fig.add_subplot(
nplots, 1, i+1,
projection=ccrs.PlateCarree(central_longitude=central_longitude))
ax.coastlines(resolution='110m')
ax.gridlines()
def utm_plot():
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
nplots = 60
fig = plt.figure(figsize=(10, 3))
for i in range(0, nplots):
ax = fig.add_subplot(1, nplots, i+1,
projection=ccrs.UTM(zone=i+1,
southern_hemisphere=True))
ax.coastlines(resolution='110m')
ax.gridlines()
MULTI_PLOT_CASES = {
ccrs.PlateCarree: plate_carree_plot,
ccrs.UTM: utm_plot,
}
......@@ -39,15 +76,19 @@ COASTLINE_RESOLUTION = {ccrs.OSNI: '10m',
ccrs.OSGB: '50m',
ccrs.EuroPP: '50m'}
PRJ_SORT_ORDER = {'PlateCarree': 1,
'Mercator': 2, 'Mollweide': 2, 'Robinson': 2,
'TransverseMercator': 2, 'LambertCylindrical': 2,
'LambertConformal': 2, 'Stereographic': 2, 'Miller': 2,
'LambertConformal': 2, 'EquidistantConic': 2,
'Stereographic': 2, 'Miller': 2,
'Orthographic': 2, 'UTM': 2, 'AlbersEqualArea': 2,
'AzimuthalEquidistant': 2, 'Sinusoidal': 2,
'InterruptedGoodeHomolosine': 3, 'RotatedPole': 3,
'OSGB': 4, 'EuroPP': 5,
'Geostationary': 6, 'NearsidePerspective': 7}
'Geostationary': 6, 'NearsidePerspective': 7,
'EckertI': 8.1, 'EckertII': 8.2, 'EckertIII': 8.3,
'EckertIV': 8.4, 'EckertV': 8.5, 'EckertVI': 8.6}
def find_projections():
......@@ -58,6 +99,25 @@ def find_projections():
yield o
def create_instance(prj_cls, instance_args):
name = prj_cls.__name__
# Format instance arguments into strings
instance_params = ',\n '.join(
'{}={}'.format(k, v)
for k, v in sorted(instance_args.items()))
if instance_params:
instance_params = '\n ' \
+ instance_params
instance_creation_code = '{}({})'.format(name, instance_params)
prj_inst = prj(**instance_args)
return prj_inst, instance_creation_code
if __name__ == '__main__':
fname = os.path.join(os.path.dirname(__file__), 'source',
'crs', 'projections.rst')
......@@ -75,8 +135,7 @@ if __name__ == '__main__':
=======================
"""
for line in notes.split('\n'):
table.write(line.strip() + '\n')
table.write(textwrap.dedent(notes))
def prj_class_sorter(cls):
return (PRJ_SORT_ORDER.get(cls.__name__, 100),
......@@ -90,31 +149,47 @@ if __name__ == '__main__':
table.write('.. autoclass:: cartopy.crs.%s\n' % name)
for instance_args in SPECIAL_CASES.get(prj, [{}]):
prj_inst = prj(**instance_args)
if prj not in MULTI_PLOT_CASES:
# Get instance arguments and number of plots
instance_args = SPECIFIC_PROJECTION_KWARGS.get(prj, {})
prj_inst, instance_repr = create_instance(prj, instance_args)
aspect = (np.diff(prj_inst.x_limits) /
np.diff(prj_inst.y_limits))[0]
width = 3 * aspect
width = '{:.4f}'.format(width).rstrip('0').rstrip('.')
instance_params = ',\n '.join(
'{}={}'.format(k, v)
for k, v in sorted(instance_args.items()))
if instance_params:
instance_params = '\n ' + instance_params
instance_creation_code = '{}({})'.format(name, instance_params)
code = """
.. plot::
# Generate plotting code
code = textwrap.dedent("""
.. plot::
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
plt.figure(figsize=({width}, 3))
ax = plt.axes(projection=ccrs.{proj_constructor})
ax.coastlines(resolution={coastline_resolution!r})
ax.gridlines()
""").format(width=width,
proj_constructor=instance_repr,
coastline_resolution=COASTLINE_RESOLUTION.get(prj,
'110m'))
else:
func = MULTI_PLOT_CASES[prj]
lines = inspect.getsourcelines(func)
func_code = "".join(lines[0][1:])
code = textwrap.dedent("""
.. plot::
plt.figure(figsize=({width}, 3))
ax = plt.axes(projection=ccrs.{proj_constructor})
ax.coastlines(resolution={coastline_resolution!r})
ax.gridlines()
{func_code}
\n""".format(width=width, proj_constructor=instance_creation_code,
coastline_resolution=COASTLINE_RESOLUTION.get(prj, '110m'))
""").format(func_code=func_code)
table.write(code)
table.write(code)
Geodesic calculations
=====================
This module defines the Geodesic class which can interface with the Proj
geodesic functions. See the `Proj geodesic page`_ for more background
information.
.. _Proj geodesic page: https://proj4.org/geodesic.html
.. autoclass:: cartopy.geodesic.Geodesic
:members:
LinearRing/LineString projection
================================
.. automodule:: cartopy.trace
:members:
......@@ -60,7 +60,7 @@ Copyright note
Since basemap data is taken from external sources, it is advised to cite and credit the data provider accordingly.
Some data providers request or at least recommend to include a corresponding note along with the map.
Depending on the policy, this may either be only the data source and licese or terms of use.
Depending on the policy, this may either be only the data source and license or terms of use.
The corresponding information for the data providers included in cartopy is listed in the :ref:`data_copyright_table`:
......
......@@ -98,10 +98,12 @@ version = cartopy.__version__
release = cartopy.__version__
# Sphinx gallery configuration
from sphinx_gallery.sorting import ExampleTitleSortKey
sphinx_gallery_conf = {
'examples_dirs': ['../../lib/cartopy/examples'],
'filename_pattern': '^((?!sgskip).)*$',
'gallery_dirs': ['gallery'],
'within_subsection_order': ExampleTitleSortKey,
'doc_module': ('cartopy',),
'reference_url': {'cartopy': None},
'backreferences_dir': '../build/backrefs',
......@@ -122,7 +124,7 @@ sphinx_gallery_conf = {
exclude_patterns = []
# The reST default role (used for this markup: `text`) to use for all documents.
# default_role = None
default_role = 'py:obj'
# If true, '()' will be appended to :func: etc. cross-reference text.
# add_function_parentheses = True
......@@ -345,7 +347,8 @@ epub_copyright = u'2012, Philip Elson, Richard Hattersley'
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'python': ('https://docs.python.org/3', None),
'matplotlib': ('https://matplotlib.org', None),
'shapely': ('https://toblerity.org/shapely', None), }
'numpy': ('https://docs.scipy.org/doc/numpy/', None),
'shapely': ('http://toblerity.org/shapely', None), }
......
......@@ -10,7 +10,7 @@ cartopy was born. From such simple beginnings cartopy has grown into a community
package with exciting scientific geospatial visualisation capabilities and a simple, pythonic
interface.
The following people have dedicated their time and effort to deliver
The following people have dedicated their time and effort to deliver
new functionality, fix bugs, review code and provide support for, cartopy, without whom
the package wouldn't be as rich or diverse as it is today:
......@@ -37,7 +37,7 @@ the package wouldn't be as rich or diverse as it is today:
* Crispian Batstone
* Daryl Herzmann
* Robert Redl
* Greg Lucas
Thank you!
......@@ -45,4 +45,3 @@ Thank you!
.. note::
If you have been excluded from the list, please add yourself and submit a pull request.
......@@ -5,7 +5,7 @@ The :class:`cartopy.crs.CRS` class is the very core of cartopy, all coordinate r
in cartopy have :class:`~cartopy.crs.CRS` as a parent class, meaning all projections have
the interface described below.
.. autoclass:: cartopy.crs.CRS()
.. autoclass:: cartopy.crs.CRS
:members:
.. data:: globe
......@@ -17,7 +17,7 @@ The :class:`~cartopy.crs.Globe` class is used to encapsulate the underlying sphe
All CRSs have an associated :class:`~cartopy.crs.Globe`, though often it is just the default :class:`~cartopy.crs.Globe`
which represents the reference ellipsoid (i.e. "wgs84").
.. autoclass:: cartopy.crs.Globe(datum=None, ellipse='WGS84', semimajor_axis=None, semiminor_axis=None, flattening=None, inverse_flattening=None, towgs84=None)
.. autoclass:: cartopy.crs.Globe
:members:
:exclude-members: to_proj4_params
......@@ -34,9 +34,9 @@ all projections in the :ref:`cartopy_projections`.
There are a few non-:class:`~cartopy.crs.Projection` subclasses. These represent
coordinate reference systems which are 3 dimensional and could not be drawn directly on a piece of paper.
.. autoclass:: cartopy.crs.Geodetic(globe=None)
.. autoclass:: cartopy.crs.Geodetic
.. autoclass:: cartopy.crs.Geocentric(globe=None)
.. autoclass:: cartopy.crs.Geocentric
.. autoclass:: cartopy.crs.RotatedGeodetic
......
......@@ -9,7 +9,6 @@
Cartopy projection list
=======================