cf-plot 3.2.23__tar.gz → 3.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. {cf-plot-3.2.23/cf_plot.egg-info → cf-plot-3.3.0}/PKG-INFO +1 -1
  2. {cf-plot-3.2.23 → cf-plot-3.3.0/cf_plot.egg-info}/PKG-INFO +1 -1
  3. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/__init__.py +2 -2
  4. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/cfplot.py +64 -138
  5. {cf-plot-3.2.23 → cf-plot-3.3.0}/setup.py +1 -1
  6. {cf-plot-3.2.23 → cf-plot-3.3.0}/LICENSE.txt +0 -0
  7. {cf-plot-3.2.23 → cf-plot-3.3.0}/MANIFEST.in +0 -0
  8. {cf-plot-3.2.23 → cf-plot-3.3.0}/README.md +0 -0
  9. {cf-plot-3.2.23 → cf-plot-3.3.0}/README.txt +0 -0
  10. {cf-plot-3.2.23 → cf-plot-3.3.0}/cf_plot.egg-info/SOURCES.txt +0 -0
  11. {cf-plot-3.2.23 → cf-plot-3.3.0}/cf_plot.egg-info/dependency_links.txt +0 -0
  12. {cf-plot-3.2.23 → cf-plot-3.3.0}/cf_plot.egg-info/requires.txt +0 -0
  13. {cf-plot-3.2.23 → cf-plot-3.3.0}/cf_plot.egg-info/top_level.txt +0 -0
  14. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/3gauss.rgb +0 -0
  15. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/3saw.rgb +0 -0
  16. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BkBlAqGrYeOrReViWh200.rgb +0 -0
  17. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlAqGrYeOrRe.rgb +0 -0
  18. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlAqGrYeOrReVi200.rgb +0 -0
  19. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlGrYeOrReVi200.rgb +0 -0
  20. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlRe.rgb +0 -0
  21. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlWhRe.rgb +0 -0
  22. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueDarkOrange18.rgb +0 -0
  23. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueDarkRed18.rgb +0 -0
  24. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueGreen14.rgb +0 -0
  25. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueRed.rgb +0 -0
  26. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueRedGray.rgb +0 -0
  27. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueWhiteOrangeRed.rgb +0 -0
  28. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BlueYellowRed.rgb +0 -0
  29. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BrBG.rgb +0 -0
  30. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/BrownBlue12.rgb +0 -0
  31. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/Cat12.rgb +0 -0
  32. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/GHRSST_anomaly.rgb +0 -0
  33. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/GrayWhiteGray.rgb +0 -0
  34. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/GreenMagenta16.rgb +0 -0
  35. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/GreenYellow.rgb +0 -0
  36. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/OceanLakeLandSnow.rgb +0 -0
  37. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/StepSeq25.rgb +0 -0
  38. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/ViBlGrWhYeOrRe.rgb +0 -0
  39. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhBlGrYeRe.rgb +0 -0
  40. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhBlReWh.rgb +0 -0
  41. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhViBlGrYeOrRe.rgb +0 -0
  42. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhViBlGrYeOrReWh.rgb +0 -0
  43. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteBlue.rgb +0 -0
  44. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteBlueGreenYellowRed.rgb +0 -0
  45. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteGreen.rgb +0 -0
  46. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteYellowOrangeRed.rgb +0 -0
  47. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/__init__.py +0 -0
  48. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/amwg.rgb +0 -0
  49. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/amwg256.rgb +0 -0
  50. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/amwg_blueyellowred.rgb +0 -0
  51. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/arctic.rgb +0 -0
  52. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_b2r.rgb +0 -0
  53. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_flux.rgb +0 -0
  54. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_haxby.rgb +0 -0
  55. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/colombia.rgb +0 -0
  56. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/colournames.txt +0 -0
  57. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/cosam.rgb +0 -0
  58. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/cosam12.rgb +0 -0
  59. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/default.rgb +0 -0
  60. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/detail.rgb +0 -0
  61. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/extrema.rgb +0 -0
  62. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/gray.rgb +0 -0
  63. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/gui_default.rgb +0 -0
  64. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/helix.rgb +0 -0
  65. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/helix1.rgb +0 -0
  66. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/hlu_default.rgb +0 -0
  67. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/hotcold_18lev.rgb +0 -0
  68. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/hotcolr_19lev.rgb +0 -0
  69. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/hotres.rgb +0 -0
  70. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl0.rgb +0 -0
  71. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl1.rgb +0 -0
  72. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl10.rgb +0 -0
  73. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl11.rgb +0 -0
  74. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl12.rgb +0 -0
  75. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl13.rgb +0 -0
  76. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl14.rgb +0 -0
  77. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl15.rgb +0 -0
  78. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl16.rgb +0 -0
  79. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl17.rgb +0 -0
  80. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl18.rgb +0 -0
  81. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl19.rgb +0 -0
  82. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl2.rgb +0 -0
  83. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl20.rgb +0 -0
  84. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl21.rgb +0 -0
  85. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl22.rgb +0 -0
  86. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl23.rgb +0 -0
  87. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl24.rgb +0 -0
  88. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl25.rgb +0 -0
  89. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl26.rgb +0 -0
  90. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl27.rgb +0 -0
  91. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl28.rgb +0 -0
  92. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl29.rgb +0 -0
  93. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl3.rgb +0 -0
  94. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl30.rgb +0 -0
  95. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl31.rgb +0 -0
  96. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl32.rgb +0 -0
  97. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl33.rgb +0 -0
  98. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl34.rgb +0 -0
  99. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl35.rgb +0 -0
  100. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl36.rgb +0 -0
  101. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl37.rgb +0 -0
  102. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl38.rgb +0 -0
  103. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl39.rgb +0 -0
  104. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl4.rgb +0 -0
  105. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl5.rgb +0 -0
  106. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl6.rgb +0 -0
  107. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl7.rgb +0 -0
  108. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl8.rgb +0 -0
  109. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/idl9.rgb +0 -0
  110. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/inferno.rgb +0 -0
  111. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/magma.rgb +0 -0
  112. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_hot.rgb +0 -0
  113. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_hsv.rgb +0 -0
  114. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_jet.rgb +0 -0
  115. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_lines.rgb +0 -0
  116. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/mch_default.rgb +0 -0
  117. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/ncl_default.rgb +0 -0
  118. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/ncview_default.rgb +0 -0
  119. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/nrl_sirkes.rgb +0 -0
  120. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/nrl_sirkes_nowhite.rgb +0 -0
  121. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/nrwc.rgb +0 -0
  122. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/os250kmetres.rgb +0 -0
  123. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/parula.rgb +0 -0
  124. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/perc2_9lev.rgb +0 -0
  125. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/percent_11lev.rgb +0 -0
  126. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/plasma.rgb +0 -0
  127. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/posneg_1.rgb +0 -0
  128. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/posneg_2.rgb +0 -0
  129. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_1.rgb +0 -0
  130. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_2.rgb +0 -0
  131. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_3.rgb +0 -0
  132. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip2_15lev.rgb +0 -0
  133. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip2_17lev.rgb +0 -0
  134. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip3_16lev.rgb +0 -0
  135. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip4_11lev.rgb +0 -0
  136. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip4_diff_19lev.rgb +0 -0
  137. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip_11lev.rgb +0 -0
  138. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip_diff_12lev.rgb +0 -0
  139. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/precip_diff_1lev.rgb +0 -0
  140. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/radar.rgb +0 -0
  141. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/radar_1.rgb +0 -0
  142. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow.rgb +0 -0
  143. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_gray.rgb +0 -0
  144. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_white.rgb +0 -0
  145. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_white_gray.rgb +0 -0
  146. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/rh_19lev.rgb +0 -0
  147. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale1.rgb +0 -0
  148. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale10.rgb +0 -0
  149. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale11.rgb +0 -0
  150. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale12.rgb +0 -0
  151. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale13.rgb +0 -0
  152. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale14.rgb +0 -0
  153. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale15.rgb +0 -0
  154. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale16.rgb +0 -0
  155. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale17.rgb +0 -0
  156. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale18.rgb +0 -0
  157. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale19.rgb +0 -0
  158. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale2.rgb +0 -0
  159. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale20.rgb +0 -0
  160. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale21.rgb +0 -0
  161. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale22.rgb +0 -0
  162. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale23.rgb +0 -0
  163. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale24.rgb +0 -0
  164. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale25.rgb +0 -0
  165. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale26.rgb +0 -0
  166. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale27.rgb +0 -0
  167. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale28.rgb +0 -0
  168. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale29.rgb +0 -0
  169. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale3.rgb +0 -0
  170. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale30.rgb +0 -0
  171. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale31.rgb +0 -0
  172. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale32.rgb +0 -0
  173. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale33.rgb +0 -0
  174. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale34.rgb +0 -0
  175. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale35.rgb +0 -0
  176. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale36.rgb +0 -0
  177. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale37.rgb +0 -0
  178. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale38.rgb +0 -0
  179. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale39.rgb +0 -0
  180. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale4.rgb +0 -0
  181. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale40.rgb +0 -0
  182. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale41.rgb +0 -0
  183. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale42.rgb +0 -0
  184. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale43.rgb +0 -0
  185. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale44.rgb +0 -0
  186. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale5.rgb +0 -0
  187. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale6.rgb +0 -0
  188. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale7.rgb +0 -0
  189. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale8.rgb +0 -0
  190. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/scale9.rgb +0 -0
  191. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/seaice_1.rgb +0 -0
  192. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/seaice_2.rgb +0 -0
  193. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/so4_21.rgb +0 -0
  194. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/so4_23.rgb +0 -0
  195. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/spread_15lev.rgb +0 -0
  196. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/sunshine_9lev.rgb +0 -0
  197. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/sunshine_diff_12lev.rgb +0 -0
  198. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/t2m_29lev.rgb +0 -0
  199. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbrAvg1.rgb +0 -0
  200. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbrStd1.rgb +0 -0
  201. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbrVar1.rgb +0 -0
  202. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_240_300.rgb +0 -0
  203. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_stdev_0_30.rgb +0 -0
  204. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_var_0_500.rgb +0 -0
  205. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/temp_19lev.rgb +0 -0
  206. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/temp_diff_18lev.rgb +0 -0
  207. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/temp_diff_1lev.rgb +0 -0
  208. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/testcmap.rgb +0 -0
  209. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/thelix.rgb +0 -0
  210. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/topo_15lev.rgb +0 -0
  211. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/vcs.rgb +0 -0
  212. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/viridis.rgb +0 -0
  213. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wgne15.rgb +0 -0
  214. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wh_bl_gr_ye_re.rgb +0 -0
  215. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_1_0_2.rgb +0 -0
  216. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_1_0_3.rgb +0 -0
  217. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_2_0.rgb +0 -0
  218. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_2_0_reduced.rgb +0 -0
  219. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wind_17lev.rgb +0 -0
  220. {cf-plot-3.2.23 → cf-plot-3.3.0}/cfplot/colourmaps/wxpEnIR.rgb +0 -0
  221. {cf-plot-3.2.23 → cf-plot-3.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cf-plot
3
- Version: 3.2.23
3
+ Version: 3.3.0
4
4
  Summary: Climate contour, vector and line plots in Python
5
5
  Home-page: http://ajheaps.github.io/cf-plot
6
6
  Author: Andy Heaps
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cf-plot
3
- Version: 3.2.23
3
+ Version: 3.3.0
4
4
  Summary: Climate contour, vector and line plots in Python
5
5
  Home-page: http://ajheaps.github.io/cf-plot
6
6
  Author: Andy Heaps
@@ -10,8 +10,8 @@ See the cf-plot home page http://ajheaps.github.io/cf-plot for a gallery of plot
10
10
  '''
11
11
 
12
12
  __author__ = 'Andy Heaps - andy.heaps@ncas.ac.uk'
13
- __date__ = '21st Sep 2023'
14
- __version__ = '3.2.23'
13
+ __date__ = '15th Jan 2024'
14
+ __version__ = '3.3.0'
15
15
 
16
16
  from .cfplot import *
17
17
 
@@ -1,6 +1,6 @@
1
1
  """
2
2
  Climate contour/vector plots using cf-python, matplotlib and cartopy.
3
- Andy Heaps NCAS-CMS June 2023
3
+ Andy Heaps NCAS-CMS November 2023
4
4
  """
5
5
  import numpy as np
6
6
  import subprocess
@@ -347,7 +347,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
347
347
  None
348
348
 
349
349
  """
350
-
350
+
351
351
  # Turn off divide warning in contour routine which is a numpy issue
352
352
  old_settings = np.seterr(all='ignore')
353
353
  np.seterr(divide='ignore')
@@ -359,32 +359,24 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
359
359
  # Set blockfill to True if blockfill_fast is not None
360
360
  if blockfill_fast is not None:
361
361
  blockfill=True
362
-
363
- # Extract data for faces if a UGRID blockplot
364
- blockfill_irregular = False
365
- if face_lons and face_lats and face_connectivity:
366
- blockfill_irregular = True
367
- fill = False
368
- irregular = True
369
- if isinstance(f, cf.Field):
370
- field = f.array
371
- else:
372
- field = f
373
- field_orig = deepcopy(field)
374
- if isinstance(face_lons, cf.Field):
375
- face_lons_array = face_lons.array
376
- else:
377
- face_lons_array = face_lons
378
362
 
379
- if isinstance(face_lats, cf.Field):
380
- face_lats_array = face_lats.array
381
- else:
382
- face_lats_array = face_lats
363
+
364
+ # Check if the field is a CF ugrid field with cell faces
365
+ blockfill_ugrid = False
366
+ if isinstance(f, cf.Field) and blockfill:
367
+ if f.domain_topologies():
368
+ if f.domain_topology('cell:face', default=None) is not None:
369
+ face_lons_array = f.aux('X').bounds.array
370
+ face_lats_array = f.aux('Y').bounds.array
371
+ face_connectivity_array = f.domain_topology('cell:face').array
372
+ blockfill_ugrid = True
373
+ fill = False
374
+ lines = False
375
+ irregular = True
376
+ else:
377
+ errstr = '\n\nError - field does not contain the UGRID face information to plot a blockfill plot\n\n\n'
378
+ raise TypeError(errstr)
383
379
 
384
- if isinstance(face_connectivity, cf.Field):
385
- face_connectivity_array = face_connectivity.array
386
- else:
387
- face_connectivity_array = face_connectivity
388
380
 
389
381
  # Set blockfill_2d if blockfill and x and y are 2D
390
382
  blockfill_2d = False
@@ -392,8 +384,6 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
392
384
  if np.ndim(x) == 2 and np.ndim(y) == 2:
393
385
  blockfill_2d = True
394
386
 
395
-
396
-
397
387
  # Call gpos(1) if not already called
398
388
  if plotvars.rows > 1 or plotvars.columns > 1:
399
389
  if plotvars.gpos_called is False:
@@ -414,7 +404,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
414
404
  if verbose:
415
405
  print('con - calling cf_data_assign')
416
406
 
417
-
407
+
418
408
  # Subset the data if a user map is set
419
409
  # This is use to speed up the plotting
420
410
  # myfield is used for calculating the contour levels
@@ -425,56 +415,14 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
425
415
 
426
416
  if plotvars.proj == 'spstere':
427
417
  f = f.subspace(Y = cf.wi(-90.0, plotvars.boundinglat))
428
-
429
- #if plotvars.lonmin != -180 or plotvars.lonmax != 180 or \
430
- # plotvars.latmin != -90 or plotvars.latmax != 90:
431
-
432
- #if plotvars.user_mapset:
433
- # if plotvars.proj == 'cyl':
434
- # myfield = f
435
- # try:
436
- # myfield.cyclic('X')
437
- # except:
438
- # pass
439
-
440
- # # Field within the boundaries to calculate contours if needed
441
- # lonmin = plotvars.lonmin
442
- # lonmax = plotvars.lonmax
443
- # latmin = plotvars.latmin
444
- # latmax = plotvars.latmax
445
-
446
- # myfield = None
447
- # try:
448
- # myfield = f.subspace(X=cf.wi(lonmin, lonmax), Y=cf.wi(latmin, latmax))
449
- # except:
450
- # pass
451
-
452
- # # Extended field to cover beyond the map boundaries
453
- # lonmin = plotvars.lonmin - 5
454
- # lonmax = plotvars.lonmax + 5
455
- # latmin = plotvars.latmin - 5
456
- # latmax = plotvars.latmax + 5
457
- # if latmin < -90:
458
- # latmin = -90
459
- # if latmax > 90:
460
- # latmax = 90
461
-
462
- # myfield_extended = None
463
- # try:
464
- # myfield_extended = f.subspace(X=cf.wi(lonmin, lonmax), Y=cf.wi(latmin, latmax))
465
- # except:
466
- # pass
467
-
468
-
469
- # if myfield_extended is not None:
470
- # f = myfield_extended
418
+
471
419
 
472
420
 
473
421
  # Extract the data
474
422
  field, x, y, ptype, colorbar_title, xlabel, ylabel, xpole, ypole =\
475
423
  cf_data_assign(f, colorbar_title, verbose=verbose)
476
424
 
477
-
425
+
478
426
  if user_xlabel is not None:
479
427
  xlabel = user_xlabel
480
428
  if user_ylabel is not None:
@@ -530,6 +478,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
530
478
  # Set contour line styles
531
479
  matplotlib.rcParams['contour.negative_linestyle'] = negative_linestyle
532
480
 
481
+
533
482
  # Set contour lines off on block plots
534
483
  if blockfill:
535
484
  fill = False
@@ -556,7 +505,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
556
505
  raise TypeError(errstr)
557
506
 
558
507
  # Turn off colorbar if fill is turned off
559
- if not fill and not blockfill and not blockfill_irregular:
508
+ if not fill and not blockfill and not blockfill_ugrid:
560
509
  colorbar = False
561
510
 
562
511
  # Revert to default colour scale if cscale_flag flag is set
@@ -594,8 +543,6 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
594
543
 
595
544
  if plotvars.levels is None:
596
545
 
597
-
598
-
599
546
  if isinstance(f, cf.Field):
600
547
  field, x, y, ptype, colorbar_title, xlabel, ylabel, xpole, ypole =\
601
548
  cf_data_assign(f, colorbar_title, verbose=verbose)
@@ -603,31 +550,6 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
603
550
  level_spacing=spacing,
604
551
  verbose=verbose)
605
552
 
606
- #print('clevs are ', clevs)
607
-
608
- ## If a cyclindrical map has been set then try to subspace the data and make a new set of levels
609
- #myfield = None
610
- #if ptype == 1 and plotvars.user_mapset and isinstance(f, cf.Field):
611
- # if plotvars.proj == 'cyl':
612
- # myfield = f
613
- # try:
614
- # myfield.cyclic('X')
615
- # except:
616
- # pass
617
- #
618
- # try:
619
- # myfield = f.subspace(X=cf.wi(plotvars.lonmin, plotvars.lonmax),
620
- # Y=cf.wi(plotvars.latmin, plotvars.latmax))
621
- # except:
622
- # pass
623
- #
624
- # print(myfield.coord('X').dump())
625
- #
626
- #if myfield is not None:
627
- #
628
- # clevs, mult, fmult = calculate_levels(field=myfield, level_spacing=spacing,\
629
- # verbose=verbose)
630
-
631
553
  else:
632
554
  clevs = plotvars.levels
633
555
  mult = 0
@@ -812,7 +734,6 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
812
734
  else:
813
735
  cscale(plotvars.cs_user, ncols=nlevs)
814
736
 
815
-
816
737
 
817
738
  ##################
818
739
  # Map contour plot
@@ -851,9 +772,8 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
851
772
  else:
852
773
  mapset(lonmin=mylonmin, lonmax=mylonmax, latmin=mylatmin, latmax=mylatmax,
853
774
  user_mapset=0, resolution=resolution_orig)
854
- set_map()
855
-
856
775
 
776
+ set_map()
857
777
 
858
778
 
859
779
  mymap = plotvars.mymap
@@ -863,8 +783,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
863
783
 
864
784
 
865
785
 
866
-
867
- if not blockfill_irregular and not blockfill_2d:
786
+ if not blockfill_ugrid and not blockfill_2d:
868
787
  if not irregular:
869
788
  if lonrange > 350 and np.ndim(y) == 1:
870
789
  # Add cyclic information if missing.
@@ -937,7 +856,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
937
856
  # in polar plots. Subsample the latitudes to remove this problem
938
857
 
939
858
  if plotvars.proj == 'npstere' and np.ndim(y) == 1:
940
- if not blockfill_irregular and not blockfill_2d:
859
+ if not blockfill_ugrid and not blockfill_2d:
941
860
  if irregular:
942
861
  pts = np.where(lats_irregular > plotvars.boundinglat - 5)
943
862
  pts = np.array(pts).flatten()
@@ -951,7 +870,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
951
870
  field = field[myypos:, :]
952
871
 
953
872
  if plotvars.proj == 'spstere' and np.ndim(y) == 1:
954
- if not blockfill_irregular and not blockfill_2d:
873
+ if not blockfill_ugrid and not blockfill_2d:
955
874
  if irregular:
956
875
  pts = np.where(lats_irregular_real < plotvars.boundinglat + 5)
957
876
  lons_irregular_real = lons_irregular_real[pts]
@@ -1044,7 +963,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
1044
963
  zorder=zorder)
1045
964
 
1046
965
  # Block fill
1047
- if blockfill:
966
+ if blockfill and not blockfill_ugrid:
1048
967
  if verbose:
1049
968
  print('con - adding blockfill')
1050
969
 
@@ -1089,10 +1008,10 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
1089
1008
  lonlat=True, bound=0, alpha=alpha, fast=blockfill_fast, zorder=zorder)
1090
1009
 
1091
1010
  # Block fill for irregular
1092
- if blockfill_irregular and not blockfill_2d:
1011
+ if blockfill_ugrid and not blockfill_2d:
1093
1012
  if verbose:
1094
1013
  print('con - adding blockfill for irregular')
1095
- bfill_irregular(f=field_orig * fmult, face_lons=face_lons_array,
1014
+ bfill_ugrid(f=field_orig * fmult, face_lons=face_lons_array,
1096
1015
  face_lats=face_lats_array,
1097
1016
  face_connectivity=face_connectivity_array, clevs=clevs,
1098
1017
  alpha=alpha, zorder=zorder)
@@ -1133,7 +1052,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
1133
1052
 
1134
1053
 
1135
1054
  # Add a irregular mask if there is one
1136
- if irregular and not blockfill_irregular and not orca and not blockfill_2d:
1055
+ if irregular and not blockfill_ugrid and not orca and not blockfill_2d:
1137
1056
  if np.size(field_irregular_nan) > 0:
1138
1057
  cmap_white = matplotlib.colors.ListedColormap([1.0, 1.0, 1.0])
1139
1058
  mymap.tricontourf(lons_irregular_nan, lats_irregular_nan, field_irregular_nan , [0.5, 1.5],
@@ -3664,28 +3583,28 @@ def cf_data_assign(f=None, colorbar_title=None, verbose=None, rotated_vect=False
3664
3583
  c = f.coord(mycoord)
3665
3584
  if c.X:
3666
3585
  if verbose:
3667
- print(vs + 'lons -', mydim)
3586
+ print('lons -', mydim)
3668
3587
  lons = np.squeeze(f.construct(mycoord).array)
3669
3588
  if np.size(lons) > 1:
3670
3589
  has_lons = True
3671
3590
 
3672
3591
  if c.Y:
3673
3592
  if verbose:
3674
- print(vs + 'lats -', mydim)
3593
+ print('lats -', mydim)
3675
3594
  lats = np.squeeze(f.construct(mycoord).array)
3676
3595
  if np.size(lats) > 1:
3677
3596
  has_lats = True
3678
3597
 
3679
3598
  if c.Z:
3680
3599
  if verbose:
3681
- print(vs + 'height -', mydim)
3600
+ print('height -', mydim)
3682
3601
  height = np.squeeze(f.construct(mycoord).array)
3683
3602
  if np.size(height) > 1:
3684
3603
  has_height = True
3685
3604
 
3686
3605
  if c.T:
3687
3606
  if verbose:
3688
- print(vs + 'time -', mydim)
3607
+ print('time -', mydim)
3689
3608
  time = np.squeeze(f.construct(mycoord).array)
3690
3609
  if np.size(time) > 1:
3691
3610
  has_time = True
@@ -6054,7 +5973,7 @@ def set_map():
6054
5973
  |
6055
5974
  """
6056
5975
 
6057
-
5976
+
6058
5977
  # Return if mymap is already set
6059
5978
  if plotvars.mymap is not None:
6060
5979
  return
@@ -6077,6 +5996,7 @@ def set_map():
6077
5996
  if lonmax - lonmin == 360.0:
6078
5997
  lonmax = lonmax + 0.01
6079
5998
 
5999
+
6080
6000
  if plotvars.proj == 'merc':
6081
6001
  min_latitude = -80.0
6082
6002
  if plotvars.lonmin > min_latitude:
@@ -6171,7 +6091,6 @@ def set_map():
6171
6091
  extent = True
6172
6092
 
6173
6093
 
6174
-
6175
6094
  # Add a plot containing the projection
6176
6095
  if plotvars.plot_xmin:
6177
6096
  delta_x = plotvars.plot_xmax - plotvars.plot_xmin
@@ -6181,6 +6100,7 @@ def set_map():
6181
6100
  delta_x, delta_y],
6182
6101
  projection=proj)
6183
6102
  else:
6103
+
6184
6104
  mymap = plotvars.master_plot.add_subplot(plotvars.rows,
6185
6105
  plotvars.columns,
6186
6106
  plotvars.pos,
@@ -7654,7 +7574,7 @@ def regression_tests():
7654
7574
  """
7655
7575
  | Test for cf-plot regressions
7656
7576
  | Run through some standard levs, gvals, lon and lat labelling
7657
- | Make all the gallery plots and use Imagemaick to display them
7577
+ | Make all the gallery plots and use Imagemagick to display them
7658
7578
  | alongside a reference plot
7659
7579
  |
7660
7580
  |
@@ -10211,11 +10131,11 @@ def stream(u=None, v=None, x=None, y=None, density=None, linewidth=None,
10211
10131
  mapset(resolution=resolution_orig)
10212
10132
 
10213
10133
 
10214
- def bfill_irregular(f=None, face_lons=None, face_lats=None, face_connectivity=None, clevs=None,
10134
+ def bfill_ugrid(f=None, face_lons=None, face_lats=None, face_connectivity=None, clevs=None,
10215
10135
  alpha=None, zorder=None):
10216
10136
 
10217
10137
  """
10218
- | bfill_irregular - block fill a irregular field with colour rectangles
10138
+ | bfill_ugrid - block fill a irregular field with colour rectangles
10219
10139
  | This is an internal routine and is not generally used by the user.
10220
10140
  |
10221
10141
  | f=None - field
@@ -10266,38 +10186,44 @@ def bfill_irregular(f=None, face_lons=None, face_lats=None, face_connectivity=No
10266
10186
  plotargs = {'transform': ccrs.PlateCarree()}
10267
10187
 
10268
10188
  coords_all = []
10189
+
10190
+ nfaces = np.shape(face_connectivity)[0]
10269
10191
 
10270
- for iface in np.arange(len(face_connectivity)):
10271
- lons = np.array([face_lons[i] for i in face_connectivity[iface]])
10272
- lats = np.array([face_lats[i] for i in face_connectivity[iface]])
10273
-
10274
- coords = [(lons[i], lats[i]) for i in np.arange(len(lons))]
10275
-
10192
+ coords_all = []
10193
+ for iface in np.arange(nfaces):
10194
+ lons = face_lons[iface, :]
10195
+ lats = face_lats[iface, :]
10196
+
10197
+ # Wrapping in longitude
10276
10198
  if (np.max(lons) - np.min(lons)) > 100:
10277
10199
  if np.max(lons) > 180:
10278
- for i in np.arange(len(lons)):
10279
- lons[i] = (lons[i] + 180) % 360 - 180
10280
-
10200
+ for j in np.arange(len(lons)):
10201
+ lons[j] = (lons[j] + 180) % 360 - 180
10281
10202
  else:
10282
- for i in np.arange(len(lons)):
10283
- lons[i] = lons[i] % 360
10284
-
10285
- coords = [(lons[i], lats[i]) for i in np.arange(len(lons))]
10203
+ for j in np.arange(len(lons)):
10204
+ lons[j] = lons[j] % 360
10286
10205
 
10206
+ nverts = len(lons)
10207
+
10287
10208
  # Add extra verticies if any of the points are at the north or south pole
10288
10209
  if np.max(lats) == 90 or np.min(lats) == -90:
10289
- geom = sgeom.Polygon([(face_lons[i], face_lats[i]) for i in face_connectivity[iface]])
10210
+
10211
+ geom = sgeom.Polygon([(lons[k], lats[k]) for k in np.arange(nverts)])
10290
10212
  geom_cyl = ccrs.PlateCarree().project_geometry(geom, ccrs.Geodetic())
10291
10213
 
10292
10214
  # Original method for shapely < 2.0
10293
- #coords = geom_cyl[0].exterior.coords[:]
10215
+ # coords = geom_cyl[0].exterior.coords[:]
10294
10216
 
10295
10217
  # New method for shapely 2.0 +
10296
10218
  poly_mapped = sgeom.mapping(geom_cyl.geoms[0])
10219
+
10297
10220
  coords = list(poly_mapped['coordinates'][0])
10298
-
10221
+ else:
10222
+ coords = [(lons[k], lats[k]) for k in np.arange(nverts)]
10223
+
10299
10224
  coords_all.append(coords)
10300
-
10225
+
10226
+
10301
10227
  plotvars.mymap.add_collection(PolyCollection(coords_all, facecolors=cols, edgecolors=None,
10302
10228
  alpha=alpha, zorder=zorder, **plotargs))
10303
10229
 
@@ -19,7 +19,7 @@ package_data = [f for f in find_package_data_files('cfplot/colourmaps')]
19
19
 
20
20
  setup(
21
21
  name = "cf-plot",
22
- version = "3.2.23",
22
+ version = "3.3.0",
23
23
  author = "Andy Heaps",
24
24
  author_email = "andy.heaps@ncas.ac.uk",
25
25
  packages = ["cfplot"],
File without changes
File without changes
File without changes
File without changes