Skip to content

Instantly share code, notes, and snippets.

@QuLogic
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save QuLogic/62d585a6a67876aa84f0 to your computer and use it in GitHub Desktop.
Save QuLogic/62d585a6a67876aa84f0 to your computer and use it in GitHub Desktop.
Cartopy issue 579 test
from __future__ import (absolute_import, division, print_function)
import sys
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
LON_START = -180
LON_END = 180
LON_SKIP = 1
LAT_START = -90
LAT_END = 90
LAT_SKIP = 1
# If similarity less than this, it's incorrect.
# REL_THRESHOLD = 0.9
# How many white pixels should exist.
ABS_THRESHOLD = 10
feat = cfeature.NaturalEarthFeature("physical", "ocean", "110m",
edgecolor="None", facecolor="#CCCCCC")
old = None
fig = plt.figure(figsize=(5, 5))
for lat in range(LAT_START, LAT_END, LAT_SKIP):
for lon in range(LON_START, LON_END, LON_SKIP):
print('Latitude: %+3d, Longitude: %+4d' % (lat, lon), end='\r')
sys.stdout.flush()
fig.clear()
ax = plt.axes(projection=ccrs.Orthographic(
central_latitude=lat,
central_longitude=lon))
ax.set_global()
ax.add_feature(feat)
ax.coastlines(resolution="110m", color="#222222")
fig.canvas.draw()
data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
data = data.reshape(fig.canvas.get_width_height()[::-1] + (3, ))
# Greyscale, so only need one component
data = data[:, :, 0]
if lat == LAT_START and lon == LON_START:
old = data
continue
diff = np.sum(data == old) / old.size
white = np.sum(data == 255)
# if diff < REL_THRESHOLD or white < ABS_THRESHOLD:
if white < ABS_THRESHOLD:
print('Latitude: %+3d, Longitude: %+4d FAIL %f %d' % (
lat,
lon,
diff,
white))
old = data
Latitude: -80, Longitude: -33 FAIL 0.893487 0
Latitude: -68, Longitude: -170 FAIL 0.910650 0
Latitude: -67, Longitude: +62 FAIL 0.884787 0
Latitude: -67, Longitude: +179 FAIL 0.909537 0
Latitude: -66, Longitude: -177 FAIL 0.910694 0
Latitude: -63, Longitude: -84 FAIL 0.897581 0
Latitude: -62, Longitude: -115 FAIL 0.905600 0
Latitude: -62, Longitude: +54 FAIL 0.879531 0
Latitude: -62, Longitude: +160 FAIL 0.907169 0
Latitude: -61, Longitude: -171 FAIL 0.913981 0
Latitude: -60, Longitude: +55 FAIL 0.877669 0
Latitude: -54, Longitude: -165 FAIL 0.918675 0
Latitude: -53, Longitude: -165 FAIL 0.919362 0
Latitude: -51, Longitude: -164 FAIL 0.920488 0
Latitude: -48, Longitude: +40 FAIL 0.861794 0
Latitude: -48, Longitude: +60 FAIL 0.863569 0
Latitude: -46, Longitude: +61 FAIL 0.860413 0
Latitude: -45, Longitude: -137 FAIL 0.918344 0
Latitude: -45, Longitude: -17 FAIL 0.857806 0
Latitude: -45, Longitude: +61 FAIL 0.858962 0
Latitude: -43, Longitude: +62 FAIL 0.856012 0
Latitude: -42, Longitude: -50 FAIL 0.872919 0
Latitude: -42, Longitude: +62 FAIL 0.854206 0
Latitude: -41, Longitude: +133 FAIL 0.892794 0
Latitude: -40, Longitude: +132 FAIL 0.891650 0
Latitude: -37, Longitude: -9 FAIL 0.846169 0
Latitude: -35, Longitude: -8 FAIL 0.843381 0
Latitude: -34, Longitude: -7 FAIL 0.841987 0
Latitude: -27, Longitude: -71 FAIL 0.878069 0
Latitude: -26, Longitude: -99 FAIL 0.893475 0
Latitude: -26, Longitude: -98 FAIL 0.967519 0
Latitude: -25, Longitude: -96 FAIL 0.891319 0
Latitude: -25, Longitude: -59 FAIL 0.868300 0
Latitude: -25, Longitude: +172 FAIL 0.920663 0
Latitude: -25, Longitude: +173 FAIL 0.962544 0
Latitude: -25, Longitude: +174 FAIL 0.962706 0
Latitude: -24, Longitude: -111 FAIL 0.901744 0
Latitude: -24, Longitude: -96 FAIL 0.890931 0
Latitude: -24, Longitude: +173 FAIL 0.921919 0
Latitude: -23, Longitude: -115 FAIL 0.904831 0
Latitude: -23, Longitude: -96 FAIL 0.890463 0
Latitude: -23, Longitude: -47 FAIL 0.856269 0
Latitude: -23, Longitude: +159 FAIL 0.907681 0
Latitude: -23, Longitude: +160 FAIL 0.958662 0
Latitude: -22, Longitude: +156 FAIL 0.902300 0
Latitude: -22, Longitude: +157 FAIL 0.957588 0
Latitude: -22, Longitude: +158 FAIL 0.957831 0
Latitude: -22, Longitude: +159 FAIL 0.958387 0
Latitude: -21, Longitude: -155 FAIL 0.934688 0
Latitude: -21, Longitude: +122 FAIL 0.867625 0
Latitude: -20, Longitude: -125 FAIL 0.914244 0
Latitude: -20, Longitude: -99 FAIL 0.890856 0
Latitude: -20, Longitude: -52 FAIL 0.858169 0
Latitude: -19, Longitude: -128 FAIL 0.917162 0
Latitude: -18, Longitude: -131 FAIL 0.920037 0
Latitude: -18, Longitude: -41 FAIL 0.846150 0
Latitude: -18, Longitude: +142 FAIL 0.884813 0
Latitude: -18, Longitude: +143 FAIL 0.953206 0
Latitude: -18, Longitude: +144 FAIL 0.953381 0
Latitude: -17, Longitude: -154 FAIL 0.935087 0
Latitude: -17, Longitude: +3 FAIL 0.818244 0
Latitude: -17, Longitude: +140 FAIL 0.881812 0
Latitude: -17, Longitude: +141 FAIL 0.952412 0
Latitude: -16, Longitude: -119 FAIL 0.906644 0
Latitude: -16, Longitude: -117 FAIL 0.904925 0
Latitude: -16, Longitude: +4 FAIL 0.816744 0
Latitude: -15, Longitude: +4 FAIL 0.815494 0
Latitude: -14, Longitude: -141 FAIL 0.926681 0
Latitude: -14, Longitude: -137 FAIL 0.923269 0
Latitude: -14, Longitude: -136 FAIL 0.969163 0
Latitude: -14, Longitude: -135 FAIL 0.968994 0
Latitude: -14, Longitude: +5 FAIL 0.814006 0
Latitude: -14, Longitude: +167 FAIL 0.911531 0
Latitude: -13, Longitude: -153 FAIL 0.934144 0
Latitude: -13, Longitude: -145 FAIL 0.929669 0
Latitude: -13, Longitude: -143 FAIL 0.928125 0
Latitude: -13, Longitude: -142 FAIL 0.968750 0
Latitude: -13, Longitude: -75 FAIL 0.871625 0
Latitude: -13, Longitude: -74 FAIL 0.961581 0
Latitude: -13, Longitude: -73 FAIL 0.961506 0
Latitude: -13, Longitude: -71 FAIL 0.868769 0
Latitude: -13, Longitude: -22 FAIL 0.825269 0
Latitude: -13, Longitude: +5 FAIL 0.812750 0
Latitude: -12, Longitude: -153 FAIL 0.934056 0
Latitude: -12, Longitude: -145 FAIL 0.929531 0
Latitude: -12, Longitude: -104 FAIL 0.890700 0
Latitude: -12, Longitude: -103 FAIL 0.965875 0
Latitude: -12, Longitude: -102 FAIL 0.965638 0
Latitude: -12, Longitude: -101 FAIL 0.965300 0
Latitude: -12, Longitude: -21 FAIL 0.823231 0
Latitude: -12, Longitude: -20 FAIL 0.953063 0
Latitude: -12, Longitude: +6 FAIL 0.811281 0
Latitude: -11, Longitude: -147 FAIL 0.930713 0
Latitude: -11, Longitude: -140 FAIL 0.925125 0
Latitude: -11, Longitude: +6 FAIL 0.810200 0
Latitude: -11, Longitude: +130 FAIL 0.864175 0
Latitude: -11, Longitude: +131 FAIL 0.947900 0
Latitude: -11, Longitude: +132 FAIL 0.948700 0
Latitude: -11, Longitude: +133 FAIL 0.949081 0
Latitude: -10, Longitude: -169 FAIL 0.931306 0
Latitude: -10, Longitude: -168 FAIL 0.964250 0
Latitude: -10, Longitude: -167 FAIL 0.964300 0
Latitude: -10, Longitude: -158 FAIL 0.934356 0
Latitude: -10, Longitude: -157 FAIL 0.966556 0
Latitude: -10, Longitude: -156 FAIL 0.966800 0
Latitude: -10, Longitude: -130 FAIL 0.914719 0
Latitude: -10, Longitude: -129 FAIL 0.967612 0
Latitude: -10, Longitude: -62 FAIL 0.858487 0
Latitude: -10, Longitude: +6 FAIL 0.808906 0
Latitude: -10, Longitude: +90 FAIL 0.810856 0
Latitude: -10, Longitude: +91 FAIL 0.942050 0
Latitude: -10, Longitude: +92 FAIL 0.941944 0
Latitude: -10, Longitude: +93 FAIL 0.942013 0
Latitude: -10, Longitude: +101 FAIL 0.825131 0
Latitude: -10, Longitude: +102 FAIL 0.942731 0
Latitude: -10, Longitude: +103 FAIL 0.942644 0
Latitude: -9, Longitude: -164 FAIL 0.932475 0
Latitude: -9, Longitude: -163 FAIL 0.964675 0
Latitude: -9, Longitude: -162 FAIL 0.965113 0
Latitude: -9, Longitude: -161 FAIL 0.965588 0
Latitude: -9, Longitude: -160 FAIL 0.965950 0
Latitude: -9, Longitude: -142 FAIL 0.926481 0
Latitude: -9, Longitude: -137 FAIL 0.921581 0
Latitude: -9, Longitude: -136 FAIL 0.968313 0
Latitude: -9, Longitude: -135 FAIL 0.968156 0
Latitude: -9, Longitude: -134 FAIL 0.967381 0
Latitude: -9, Longitude: -54 FAIL 0.849581 0
Latitude: -9, Longitude: -50 FAIL 0.845119 0
Latitude: -9, Longitude: +7 FAIL 0.807275 0
Latitude: -9, Longitude: +86 FAIL 0.804694 0
Latitude: -9, Longitude: +87 FAIL 0.941987 0
Latitude: -8, Longitude: -166 FAIL 0.931425 0
Latitude: -8, Longitude: -165 FAIL 0.964313 0
Latitude: -8, Longitude: -164 FAIL 0.963731 0
Latitude: -8, Longitude: -160 FAIL 0.933475 0
Latitude: -8, Longitude: -159 FAIL 0.965788 0
Latitude: -8, Longitude: -143 FAIL 0.927031 0
Latitude: -8, Longitude: -142 FAIL 0.968231 0
Latitude: -8, Longitude: -138 FAIL 0.922462 0
Latitude: -8, Longitude: -47 FAIL 0.840900 0
Latitude: -8, Longitude: -46 FAIL 0.955531 0
Latitude: -8, Longitude: +7 FAIL 0.806113 0
Latitude: -8, Longitude: +82 FAIL 0.799081 0
Latitude: -8, Longitude: +83 FAIL 0.941869 0
Latitude: -7, Longitude: -169 FAIL 0.929475 0
Latitude: -7, Longitude: -168 FAIL 0.963938 0
Latitude: -7, Longitude: -35 FAIL 0.827925 0
Latitude: -7, Longitude: -29 FAIL 0.822712 0
Latitude: -7, Longitude: +8 FAIL 0.804475 0
Latitude: -7, Longitude: +74 FAIL 0.790281 0
Latitude: -7, Longitude: +78 FAIL 0.793425 0
Latitude: -7, Longitude: +79 FAIL 0.941581 0
Latitude: -6, Longitude: -173 FAIL 0.927000 0
Latitude: -6, Longitude: -160 FAIL 0.932081 0
Latitude: -6, Longitude: -31 FAIL 0.823031 0
Latitude: -6, Longitude: -27 FAIL 0.820075 0
Latitude: -6, Longitude: +8 FAIL 0.803262 0
Latitude: -6, Longitude: +75 FAIL 0.788800 0
Latitude: -6, Longitude: +93 FAIL 0.807550 0
Latitude: -5, Longitude: -164 FAIL 0.930006 0
Latitude: -5, Longitude: -27 FAIL 0.818706 0
Latitude: -5, Longitude: -26 FAIL 0.950194 0
Latitude: -5, Longitude: -24 FAIL 0.816519 0
Latitude: -5, Longitude: +9 FAIL 0.801713 0
Latitude: -5, Longitude: +71 FAIL 0.784231 0
Latitude: -4, Longitude: -168 FAIL 0.927756 0
Latitude: -4, Longitude: -30 FAIL 0.819775 0
Latitude: -4, Longitude: -23 FAIL 0.814219 0
Latitude: -4, Longitude: -22 FAIL 0.949231 0
Latitude: -4, Longitude: -21 FAIL 0.949037 0
Latitude: -4, Longitude: +9 FAIL 0.800312 0
Latitude: -3, Longitude: -172 FAIL 0.924881 0
Latitude: -3, Longitude: -27 FAIL 0.815963 0
Latitude: -3, Longitude: -26 FAIL 0.949006 0
Latitude: -3, Longitude: -19 FAIL 0.809969 0
Latitude: -3, Longitude: -18 FAIL 0.948144 0
Latitude: -2, Longitude: -176 FAIL 0.920381 0
Latitude: -2, Longitude: -23 FAIL 0.811350 0
Latitude: -2, Longitude: -22 FAIL 0.948406 0
Latitude: -2, Longitude: -16 FAIL 0.806856 0
Latitude: -2, Longitude: -15 FAIL 0.948044 0
Latitude: -2, Longitude: +170 FAIL 0.905950 0
Latitude: -1, Longitude: -19 FAIL 0.807250 0
Latitude: -1, Longitude: -18 FAIL 0.947775 0
Latitude: -1, Longitude: -13 FAIL 0.803588 0
Latitude: -1, Longitude: -11 FAIL 0.802562 0
Latitude: -1, Longitude: +165 FAIL 0.898800 0
Latitude: +0, Longitude: -15 FAIL 0.803369 0
Latitude: +0, Longitude: -10 FAIL 0.800956 0
Latitude: +0, Longitude: +177 FAIL 0.911687 0
Latitude: +1, Longitude: -8 FAIL 0.798631 0
Latitude: +1, Longitude: -3 FAIL 0.796456 0
Latitude: +1, Longitude: +12 FAIL 0.793169 0
Latitude: +1, Longitude: +172 FAIL 0.905031 0
Latitude: +2, Longitude: -82 FAIL 0.861469 0
Latitude: +2, Longitude: -5 FAIL 0.795619 0
Latitude: +2, Longitude: +100 FAIL 0.804675 0
Latitude: +2, Longitude: +169 FAIL 0.900262 0
Latitude: +3, Longitude: -83 FAIL 0.861163 0
Latitude: +3, Longitude: -2 FAIL 0.793250 0
Latitude: +3, Longitude: +101 FAIL 0.804450 0
Latitude: +3, Longitude: +163 FAIL 0.891750 0
Latitude: +4, Longitude: -84 FAIL 0.860731 0
Latitude: +4, Longitude: +102 FAIL 0.804719 0
Latitude: +5, Longitude: -114 FAIL 0.887119 0
Latitude: +5, Longitude: +103 FAIL 0.804906 0
Latitude: +6, Longitude: -108 FAIL 0.879787 0
Latitude: +6, Longitude: +104 FAIL 0.804987 0
Latitude: +7, Longitude: +142 FAIL 0.859625 0
Latitude: +7, Longitude: +143 FAIL 0.947831 0
Latitude: +8, Longitude: -40 FAIL 0.810869 0
Latitude: +8, Longitude: +14 FAIL 0.781131 0
Latitude: +8, Longitude: +33 FAIL 0.770931 0
Latitude: +8, Longitude: +120 FAIL 0.826481 0
Latitude: +8, Longitude: +121 FAIL 0.940731 0
Latitude: +8, Longitude: +138 FAIL 0.852700 0
Latitude: +8, Longitude: +139 FAIL 0.946362 0
Latitude: +8, Longitude: +140 FAIL 0.946981 0
Latitude: +8, Longitude: +152 FAIL 0.871506 0
Latitude: +9, Longitude: +39 FAIL 0.765300 0
Latitude: +9, Longitude: +106 FAIL 0.803700 0
Latitude: +9, Longitude: +109 FAIL 0.808219 0
Latitude: +9, Longitude: +114 FAIL 0.815813 0
Latitude: +9, Longitude: +115 FAIL 0.938312 0
Latitude: +9, Longitude: +116 FAIL 0.939100 0
Latitude: +9, Longitude: +117 FAIL 0.939619 0
Latitude: +9, Longitude: +126 FAIL 0.833931 0
Latitude: +9, Longitude: +134 FAIL 0.845387 0
Latitude: +9, Longitude: +135 FAIL 0.945119 0
Latitude: +10, Longitude: +15 FAIL 0.777769 0
Latitude: +10, Longitude: +19 FAIL 0.776325 0
Latitude: +10, Longitude: +40 FAIL 0.762687 0
Latitude: +10, Longitude: +46 FAIL 0.758994 0
Latitude: +10, Longitude: +108 FAIL 0.805087 0
Latitude: +10, Longitude: +109 FAIL 0.937831 0
Latitude: +10, Longitude: +110 FAIL 0.937131 0
Latitude: +10, Longitude: +111 FAIL 0.938475 0
Latitude: +10, Longitude: +118 FAIL 0.820400 0
Latitude: +10, Longitude: +124 FAIL 0.829588 0
Latitude: +10, Longitude: +130 FAIL 0.838469 0
Latitude: +11, Longitude: -90 FAIL 0.858413 0
Latitude: +11, Longitude: +39 FAIL 0.761731 0
Latitude: +11, Longitude: +108 FAIL 0.803594 0
Latitude: +12, Longitude: -91 FAIL 0.858456 0
Latitude: +12, Longitude: +16 FAIL 0.774206 0
Latitude: +12, Longitude: +41 FAIL 0.758531 0
Latitude: +12, Longitude: +42 FAIL 0.941606 0
Latitude: +12, Longitude: +66 FAIL 0.751156 0
Latitude: +12, Longitude: +67 FAIL 0.934519 0
Latitude: +12, Longitude: +68 FAIL 0.934544 0
Latitude: +12, Longitude: +86 FAIL 0.767025 0
Latitude: +12, Longitude: +87 FAIL 0.933244 0
Latitude: +12, Longitude: +88 FAIL 0.933194 0
Latitude: +12, Longitude: +109 FAIL 0.803362 0
Latitude: +13, Longitude: -92 FAIL 0.857962 0
Latitude: +13, Longitude: +35 FAIL 0.760606 0
Latitude: +13, Longitude: +44 FAIL 0.754794 0
Latitude: +13, Longitude: +45 FAIL 0.940519 0
Latitude: +13, Longitude: +61 FAIL 0.749444 0
Latitude: +13, Longitude: +62 FAIL 0.935956 0
Latitude: +13, Longitude: +63 FAIL 0.935575 0
Latitude: +14, Longitude: -93 FAIL 0.857888 0
Latitude: +14, Longitude: +17 FAIL 0.770200 0
Latitude: +14, Longitude: +36 FAIL 0.758062 0
Latitude: +14, Longitude: +37 FAIL 0.942219 0
Latitude: +14, Longitude: +158 FAIL 0.870225 0
Latitude: +14, Longitude: +159 FAIL 0.949925 0
Latitude: +15, Longitude: -94 FAIL 0.856669 0
Latitude: +15, Longitude: +38 FAIL 0.754781 0
Latitude: +15, Longitude: +39 FAIL 0.941469 0
Latitude: +15, Longitude: +67 FAIL 0.746912 0
Latitude: +16, Longitude: -176 FAIL 0.894088 0
Latitude: +16, Longitude: +18 FAIL 0.766150 0
Latitude: +16, Longitude: +40 FAIL 0.751912 0
Latitude: +16, Longitude: +41 FAIL 0.940213 0
Latitude: +18, Longitude: -95 FAIL 0.854437 0
Latitude: +18, Longitude: +19 FAIL 0.761969 0
Latitude: +18, Longitude: +62 FAIL 0.741600 0
Latitude: +18, Longitude: +63 FAIL 0.934419 0
Latitude: +19, Longitude: -96 FAIL 0.854413 0
Latitude: +19, Longitude: +54 FAIL 0.740569 0
Latitude: +19, Longitude: +55 FAIL 0.935725 0
Latitude: +19, Longitude: +66 FAIL 0.741131 0
Latitude: +19, Longitude: +140 FAIL 0.838525 0
Latitude: +20, Longitude: +20 FAIL 0.757687 0
Latitude: +20, Longitude: +61 FAIL 0.738250 0
Latitude: +21, Longitude: -178 FAIL 0.882075 0
Latitude: +21, Longitude: +54 FAIL 0.737681 0
Latitude: +21, Longitude: +55 FAIL 0.934925 0
Latitude: +21, Longitude: +72 FAIL 0.740569 0
Latitude: +21, Longitude: +73 FAIL 0.931200 0
Latitude: +21, Longitude: +74 FAIL 0.931306 0
Latitude: +21, Longitude: +78 FAIL 0.744969 0
Latitude: +22, Longitude: -71 FAIL 0.826838 0
Latitude: +22, Longitude: +54 FAIL 0.736088 0
Latitude: +22, Longitude: +57 FAIL 0.735563 0
Latitude: +22, Longitude: +58 FAIL 0.933319 0
Latitude: +23, Longitude: +95 FAIL 0.764344 0
Latitude: +23, Longitude: +96 FAIL 0.931431 0
Latitude: +23, Longitude: +97 FAIL 0.931769 0
Latitude: +23, Longitude: +98 FAIL 0.931944 0
Latitude: +23, Longitude: +107 FAIL 0.783225 0
Latitude: +23, Longitude: +108 FAIL 0.933688 0
Latitude: +23, Longitude: +109 FAIL 0.934169 0
Latitude: +23, Longitude: +110 FAIL 0.934281 0
Latitude: +24, Longitude: +122 FAIL 0.804163 0
Latitude: +25, Longitude: +69 FAIL 0.733788 0
Latitude: +25, Longitude: +123 FAIL 0.803887 0
Latitude: +26, Longitude: +25 FAIL 0.743000 0
Latitude: +28, Longitude: +26 FAIL 0.738875 0
Latitude: +29, Longitude: +27 FAIL 0.736662 0
Latitude: +30, Longitude: -54 FAIL 0.796669 0
Latitude: +30, Longitude: +157 FAIL 0.837300 0
Latitude: +31, Longitude: +28 FAIL 0.732712 0
Latitude: +32, Longitude: -53 FAIL 0.793219 0
Latitude: +33, Longitude: +169 FAIL 0.843294 0
Latitude: +34, Longitude: -52 FAIL 0.789156 0
Latitude: +35, Longitude: +172 FAIL 0.842231 0
Latitude: +36, Longitude: -51 FAIL 0.785025 0
Latitude: +37, Longitude: +149 FAIL 0.814462 0
Latitude: +38, Longitude: -50 FAIL 0.780844 0
Latitude: +39, Longitude: -49 FAIL 0.778744 0
Latitude: +39, Longitude: +140 FAIL 0.801044 0
Latitude: +45, Longitude: -45 FAIL 0.766687 0
Latitude: +45, Longitude: +159 FAIL 0.809425 0
Latitude: +46, Longitude: -44 FAIL 0.764056 0
Latitude: +47, Longitude: -44 FAIL 0.762706 0
Latitude: +47, Longitude: -43 FAIL 0.929556 0
Latitude: +48, Longitude: -42 FAIL 0.759525 0
Latitude: +49, Longitude: -41 FAIL 0.757269 0
Latitude: +51, Longitude: -122 FAIL 0.831331 0
Latitude: +51, Longitude: +16 FAIL 0.714256 0
Latitude: +52, Longitude: -122 FAIL 0.829325 0
Latitude: +52, Longitude: -38 FAIL 0.751487 0
Latitude: +53, Longitude: -37 FAIL 0.749344 0
Latitude: +53, Longitude: +15 FAIL 0.713806 0
Latitude: +54, Longitude: -123 FAIL 0.825412 0
Latitude: +54, Longitude: +15 FAIL 0.713600 0
Latitude: +54, Longitude: +149 FAIL 0.784512 0
Latitude: +55, Longitude: -124 FAIL 0.823181 0
Latitude: +55, Longitude: -34 FAIL 0.745400 0
Latitude: +56, Longitude: -124 FAIL 0.820875 0
Latitude: +57, Longitude: -31 FAIL 0.741450 0
Latitude: +57, Longitude: +142 FAIL 0.773962 0
Latitude: +57, Longitude: +143 FAIL 0.927531 0
Latitude: +59, Longitude: +137 FAIL 0.767331 0
Latitude: +61, Longitude: +9 FAIL 0.715612 0
Latitude: +61, Longitude: +74 FAIL 0.717481 0
Latitude: +61, Longitude: +129 FAIL 0.758856 0
Latitude: +61, Longitude: +130 FAIL 0.925087 0
Latitude: +62, Longitude: +79 FAIL 0.720387 0
Latitude: +62, Longitude: +80 FAIL 0.921550 0
Latitude: +62, Longitude: +123 FAIL 0.753081 0
Latitude: +62, Longitude: +124 FAIL 0.924556 0
Latitude: +63, Longitude: +86 FAIL 0.724800 0
Latitude: +63, Longitude: +87 FAIL 0.921800 0
Latitude: +63, Longitude: +116 FAIL 0.746769 0
Latitude: +63, Longitude: +117 FAIL 0.924456 0
Latitude: +63, Longitude: +118 FAIL 0.924306 0
Latitude: +64, Longitude: +97 FAIL 0.732250 0
Latitude: +64, Longitude: +98 FAIL 0.922656 0
Latitude: +64, Longitude: +99 FAIL 0.922663 0
Latitude: +64, Longitude: +103 FAIL 0.736762 0
Latitude: +64, Longitude: +104 FAIL 0.923238 0
Latitude: +64, Longitude: +105 FAIL 0.923181 0
Latitude: +64, Longitude: +106 FAIL 0.923362 0
Latitude: +66, Longitude: +3 FAIL 0.719356 0
Latitude: +67, Longitude: +47 FAIL 0.713244 0
@pelson
Copy link

pelson commented Mar 9, 2015

Another option (should be quicker):

import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import numpy as np
import shapely.geometry as sgeom

import datetime

print 'Start:', datetime.datetime.now()

shpfilename = shpreader.natural_earth(resolution='110m',
                                      category='physical',
                                      name='ocean')
oceans = list(shpreader.Reader(shpfilename).geometries())

for central_lon in np.arange(-180, 181, 1):
    for central_lat in np.arange(-90, 91, 1):
        crs = ccrs.Orthographic(central_longitude=central_lon, central_latitude=central_lat)

        # We add together the areas of each of the oceans projected (in the
        # same way that the Feature functionality does), and will compute the
        # fraction of the visible area which is ocean.
        total_area = 0

        geoms = []
        for ocean in oceans:
            projected = crs.project_geometry(ocean, ccrs.PlateCarree())
            if not projected.is_empty:
                geoms.append(projected)
            total_area += projected.area

        full_disk_area = sgeom.Polygon(crs.boundary).area
        actual_area = (total_area / full_disk_area) * 100.
        if actual_area > 95:
            print('Problem at lon0 {} lat0 {} encountered (area {:.1f}%).'
                  ''.format(central_lon, central_lat, actual_area))
    print 'Completed central_lon ', central_lon

print 'End:', datetime.datetime.now()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment