0
# Geographic Projections
1
2
Extended collection of cartographic projections beyond matplotlib and cartopy defaults, with specialized polar projections and support for custom coordinate reference systems. Proplot provides additional projections and enhanced geographic plotting capabilities.
3
4
## Capabilities
5
6
### Custom Projection Classes
7
8
```python { .api }
9
class Aitoff:
10
"""Aitoff projection for world maps."""
11
12
class Hammer:
13
"""Hammer projection for world maps."""
14
15
class KavrayskiyVII:
16
"""Kavrayskiy VII projection."""
17
18
class WinkelTripel:
19
"""Winkel tripel (Winkel III) projection."""
20
21
class NorthPolarAzimuthalEquidistant:
22
"""North polar azimuthal equidistant projection."""
23
24
class SouthPolarAzimuthalEquidistant:
25
"""South polar azimuthal equidistant projection."""
26
27
class NorthPolarGnomonic:
28
"""North polar gnomonic projection."""
29
30
class SouthPolarGnomonic:
31
"""South polar gnomonic projection."""
32
33
class NorthPolarLambertAzimuthalEqualArea:
34
"""North polar Lambert azimuthal equal area projection."""
35
36
class SouthPolarLambertAzimuthalEqualArea:
37
"""South polar Lambert azimuthal equal area projection."""
38
```
39
40
### Projection Constructor
41
42
```python { .api }
43
def Proj(*args, **kwargs):
44
"""
45
Construct projection instances from specifications.
46
47
Parameters:
48
- proj (str): Projection name or specification
49
- **kwargs: Projection-specific parameters
50
51
Supported Projections:
52
- All cartopy projections (platecarree, mercator, lambert, etc.)
53
- Custom proplot projections (aitoff, hammer, winkel3, etc.)
54
- Polar projections (npaeqd, spaeqd, nplaea, etc.)
55
56
Returns:
57
Projection: Cartopy projection instance
58
"""
59
```
60
61
## Usage Examples
62
63
```python
64
import proplot as pplt
65
66
# Custom projections
67
fig, axes = pplt.subplots(ncols=3, proj=['aitoff', 'hammer', 'winkel3'])
68
for ax in axes:
69
ax.format(land=True, coast=True)
70
71
# Polar projections
72
fig, ax = pplt.subplots(proj='npaeqd')
73
ax.format(boundinglat=60, land=True, coast=True)
74
```