basemap icon indicating copy to clipboard operation
basemap copied to clipboard

tissot going over the North Pole

Open floglass opened this issue 6 years ago • 1 comments

Sorry if this is a known bug, but I could not find it in this repository, I think I might have seen it in Matplotlib:

When using tissot to plot the theoretical field of view of a satellite looking down to Earth, a ValueError is encountered if the tissot polygon crosses the North Pole. It does not happen on the South Pole.

ValueError: undefined inverse geodesic (may be an antipodal point)

Code snipplet below. I installed Basemap (v1.2.0) through pip.

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import math

earth_radius = 6371000.  # m
fig = plt.figure()
m = Basemap(projection='cyl', resolution='l',
            llcrnrlat=-90, urcrnrlat=90,
            llcrnrlon=-180, urcrnrlon=180)

# define the position of the satellite
position = [300000., 75., 0.]  # altitude, latitude, longitude

# radius needed by the tissot method
radius = math.degrees(math.acos(earth_radius / (earth_radius + position[0])))
m.tissot(position[2], position[1], radius, 100, facecolor='tab:blue', alpha=0.3)  # longitude, latitude
m.scatter(position[2], position[1], marker='*', c='tab:red')

plt.show()

floglass avatar Jan 15 '19 17:01 floglass