(26) General vertical perspective projection

Next, we present a extension to the Orthographic projection option which allows the user to specify a particular altitude (this was always at infinity before), as well as several further parameters to limit the view from the chosen vantage point. In this example we show a view of the eastern continental US from a height of 160 km. Below we add a view with a specific tilt of 55 and azimuth 210; here we have chosen a boresight twist of 45. We view the land from New York towards Washington, D.C.

At this point the full projection has not been properly optimized and the map annotations will need additional work. Also, note that the projection is only implemented in coast and grdimage. We hope to refine this further and extend the availability of the full projection to all of the GMT mapping programs.

using GMT

lat = 41.5; lon = -74;  alt = 160;  tilt = 0; azim = 0; twist = 0;  width = 0;  height = 0;
coast(region=:global360, proj=(name=:ortho, center=[lon, lat], parallels=[alt, azim, tilt, twist, width, height]), xshift=2.5, frame=(annot=5, grid=5), land=:lightbrown, water=:lightblue, shore=true, borders=((level=1,pen=(1,:red)), (level=2, pen=0.5)), figsize=10, yshift=12)

# Now point from an altitude of 160 km with a specific tilt and azimuth and with a wider restricted
# view and a boresight twist of 45 degrees
tilt=55;  azim=210; twist=45; width=30; height=30;
coast!(proj=(name=:ortho, center=[lon, lat], parallels=[alt, azim, tilt, twist, width, height]), frame=:same, 
       land=:lightbrown, water=:lightblue, shore=true, rivers=(level=:a, pen=:blue), res=:intermediate,
       borders=:a, figsize=12, xshift=2.5, yshift=-10, show=true)