cf-plot 3.2.22__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.22/cf_plot.egg-info → cf-plot-3.3.0}/PKG-INFO +1 -1
  2. {cf-plot-3.2.22 → cf-plot-3.3.0/cf_plot.egg-info}/PKG-INFO +1 -1
  3. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/__init__.py +2 -2
  4. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/cfplot.py +72 -86
  5. {cf-plot-3.2.22 → cf-plot-3.3.0}/setup.py +1 -1
  6. {cf-plot-3.2.22 → cf-plot-3.3.0}/LICENSE.txt +0 -0
  7. {cf-plot-3.2.22 → cf-plot-3.3.0}/MANIFEST.in +0 -0
  8. {cf-plot-3.2.22 → cf-plot-3.3.0}/README.md +0 -0
  9. {cf-plot-3.2.22 → cf-plot-3.3.0}/README.txt +0 -0
  10. {cf-plot-3.2.22 → cf-plot-3.3.0}/cf_plot.egg-info/SOURCES.txt +0 -0
  11. {cf-plot-3.2.22 → cf-plot-3.3.0}/cf_plot.egg-info/dependency_links.txt +0 -0
  12. {cf-plot-3.2.22 → cf-plot-3.3.0}/cf_plot.egg-info/requires.txt +0 -0
  13. {cf-plot-3.2.22 → cf-plot-3.3.0}/cf_plot.egg-info/top_level.txt +0 -0
  14. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/3gauss.rgb +0 -0
  15. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/3saw.rgb +0 -0
  16. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BkBlAqGrYeOrReViWh200.rgb +0 -0
  17. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlAqGrYeOrRe.rgb +0 -0
  18. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlAqGrYeOrReVi200.rgb +0 -0
  19. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlGrYeOrReVi200.rgb +0 -0
  20. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlRe.rgb +0 -0
  21. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlWhRe.rgb +0 -0
  22. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueDarkOrange18.rgb +0 -0
  23. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueDarkRed18.rgb +0 -0
  24. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueGreen14.rgb +0 -0
  25. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueRed.rgb +0 -0
  26. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueRedGray.rgb +0 -0
  27. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueWhiteOrangeRed.rgb +0 -0
  28. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BlueYellowRed.rgb +0 -0
  29. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BrBG.rgb +0 -0
  30. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/BrownBlue12.rgb +0 -0
  31. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/Cat12.rgb +0 -0
  32. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/GHRSST_anomaly.rgb +0 -0
  33. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/GrayWhiteGray.rgb +0 -0
  34. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/GreenMagenta16.rgb +0 -0
  35. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/GreenYellow.rgb +0 -0
  36. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/OceanLakeLandSnow.rgb +0 -0
  37. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/StepSeq25.rgb +0 -0
  38. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/ViBlGrWhYeOrRe.rgb +0 -0
  39. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhBlGrYeRe.rgb +0 -0
  40. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhBlReWh.rgb +0 -0
  41. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhViBlGrYeOrRe.rgb +0 -0
  42. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhViBlGrYeOrReWh.rgb +0 -0
  43. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteBlue.rgb +0 -0
  44. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteBlueGreenYellowRed.rgb +0 -0
  45. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteGreen.rgb +0 -0
  46. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/WhiteYellowOrangeRed.rgb +0 -0
  47. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/__init__.py +0 -0
  48. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/amwg.rgb +0 -0
  49. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/amwg256.rgb +0 -0
  50. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/amwg_blueyellowred.rgb +0 -0
  51. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/arctic.rgb +0 -0
  52. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_b2r.rgb +0 -0
  53. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_flux.rgb +0 -0
  54. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/cmp_haxby.rgb +0 -0
  55. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/colombia.rgb +0 -0
  56. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/colournames.txt +0 -0
  57. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/cosam.rgb +0 -0
  58. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/cosam12.rgb +0 -0
  59. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/default.rgb +0 -0
  60. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/detail.rgb +0 -0
  61. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/extrema.rgb +0 -0
  62. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/gray.rgb +0 -0
  63. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/gui_default.rgb +0 -0
  64. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/helix.rgb +0 -0
  65. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/helix1.rgb +0 -0
  66. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/hlu_default.rgb +0 -0
  67. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/hotcold_18lev.rgb +0 -0
  68. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/hotcolr_19lev.rgb +0 -0
  69. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/hotres.rgb +0 -0
  70. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl0.rgb +0 -0
  71. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl1.rgb +0 -0
  72. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl10.rgb +0 -0
  73. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl11.rgb +0 -0
  74. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl12.rgb +0 -0
  75. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl13.rgb +0 -0
  76. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl14.rgb +0 -0
  77. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl15.rgb +0 -0
  78. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl16.rgb +0 -0
  79. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl17.rgb +0 -0
  80. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl18.rgb +0 -0
  81. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl19.rgb +0 -0
  82. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl2.rgb +0 -0
  83. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl20.rgb +0 -0
  84. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl21.rgb +0 -0
  85. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl22.rgb +0 -0
  86. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl23.rgb +0 -0
  87. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl24.rgb +0 -0
  88. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl25.rgb +0 -0
  89. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl26.rgb +0 -0
  90. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl27.rgb +0 -0
  91. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl28.rgb +0 -0
  92. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl29.rgb +0 -0
  93. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl3.rgb +0 -0
  94. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl30.rgb +0 -0
  95. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl31.rgb +0 -0
  96. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl32.rgb +0 -0
  97. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl33.rgb +0 -0
  98. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl34.rgb +0 -0
  99. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl35.rgb +0 -0
  100. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl36.rgb +0 -0
  101. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl37.rgb +0 -0
  102. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl38.rgb +0 -0
  103. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl39.rgb +0 -0
  104. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl4.rgb +0 -0
  105. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl5.rgb +0 -0
  106. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl6.rgb +0 -0
  107. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl7.rgb +0 -0
  108. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl8.rgb +0 -0
  109. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/idl9.rgb +0 -0
  110. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/inferno.rgb +0 -0
  111. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/magma.rgb +0 -0
  112. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_hot.rgb +0 -0
  113. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_hsv.rgb +0 -0
  114. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_jet.rgb +0 -0
  115. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/matlab_lines.rgb +0 -0
  116. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/mch_default.rgb +0 -0
  117. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/ncl_default.rgb +0 -0
  118. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/ncview_default.rgb +0 -0
  119. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/nrl_sirkes.rgb +0 -0
  120. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/nrl_sirkes_nowhite.rgb +0 -0
  121. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/nrwc.rgb +0 -0
  122. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/os250kmetres.rgb +0 -0
  123. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/parula.rgb +0 -0
  124. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/perc2_9lev.rgb +0 -0
  125. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/percent_11lev.rgb +0 -0
  126. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/plasma.rgb +0 -0
  127. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/posneg_1.rgb +0 -0
  128. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/posneg_2.rgb +0 -0
  129. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_1.rgb +0 -0
  130. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_2.rgb +0 -0
  131. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/prcp_3.rgb +0 -0
  132. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip2_15lev.rgb +0 -0
  133. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip2_17lev.rgb +0 -0
  134. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip3_16lev.rgb +0 -0
  135. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip4_11lev.rgb +0 -0
  136. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip4_diff_19lev.rgb +0 -0
  137. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip_11lev.rgb +0 -0
  138. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip_diff_12lev.rgb +0 -0
  139. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/precip_diff_1lev.rgb +0 -0
  140. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/radar.rgb +0 -0
  141. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/radar_1.rgb +0 -0
  142. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow.rgb +0 -0
  143. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_gray.rgb +0 -0
  144. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_white.rgb +0 -0
  145. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/rainbow_white_gray.rgb +0 -0
  146. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/rh_19lev.rgb +0 -0
  147. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale1.rgb +0 -0
  148. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale10.rgb +0 -0
  149. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale11.rgb +0 -0
  150. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale12.rgb +0 -0
  151. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale13.rgb +0 -0
  152. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale14.rgb +0 -0
  153. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale15.rgb +0 -0
  154. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale16.rgb +0 -0
  155. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale17.rgb +0 -0
  156. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale18.rgb +0 -0
  157. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale19.rgb +0 -0
  158. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale2.rgb +0 -0
  159. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale20.rgb +0 -0
  160. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale21.rgb +0 -0
  161. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale22.rgb +0 -0
  162. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale23.rgb +0 -0
  163. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale24.rgb +0 -0
  164. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale25.rgb +0 -0
  165. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale26.rgb +0 -0
  166. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale27.rgb +0 -0
  167. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale28.rgb +0 -0
  168. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale29.rgb +0 -0
  169. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale3.rgb +0 -0
  170. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale30.rgb +0 -0
  171. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale31.rgb +0 -0
  172. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale32.rgb +0 -0
  173. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale33.rgb +0 -0
  174. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale34.rgb +0 -0
  175. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale35.rgb +0 -0
  176. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale36.rgb +0 -0
  177. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale37.rgb +0 -0
  178. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale38.rgb +0 -0
  179. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale39.rgb +0 -0
  180. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale4.rgb +0 -0
  181. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale40.rgb +0 -0
  182. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale41.rgb +0 -0
  183. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale42.rgb +0 -0
  184. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale43.rgb +0 -0
  185. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale44.rgb +0 -0
  186. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale5.rgb +0 -0
  187. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale6.rgb +0 -0
  188. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale7.rgb +0 -0
  189. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale8.rgb +0 -0
  190. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/scale9.rgb +0 -0
  191. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/seaice_1.rgb +0 -0
  192. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/seaice_2.rgb +0 -0
  193. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/so4_21.rgb +0 -0
  194. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/so4_23.rgb +0 -0
  195. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/spread_15lev.rgb +0 -0
  196. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/sunshine_9lev.rgb +0 -0
  197. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/sunshine_diff_12lev.rgb +0 -0
  198. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/t2m_29lev.rgb +0 -0
  199. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbrAvg1.rgb +0 -0
  200. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbrStd1.rgb +0 -0
  201. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbrVar1.rgb +0 -0
  202. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_240_300.rgb +0 -0
  203. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_stdev_0_30.rgb +0 -0
  204. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/tbr_var_0_500.rgb +0 -0
  205. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/temp_19lev.rgb +0 -0
  206. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/temp_diff_18lev.rgb +0 -0
  207. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/temp_diff_1lev.rgb +0 -0
  208. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/testcmap.rgb +0 -0
  209. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/thelix.rgb +0 -0
  210. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/topo_15lev.rgb +0 -0
  211. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/vcs.rgb +0 -0
  212. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/viridis.rgb +0 -0
  213. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wgne15.rgb +0 -0
  214. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wh_bl_gr_ye_re.rgb +0 -0
  215. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_1_0_2.rgb +0 -0
  216. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_1_0_3.rgb +0 -0
  217. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_2_0.rgb +0 -0
  218. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wiki_2_0_reduced.rgb +0 -0
  219. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wind_17lev.rgb +0 -0
  220. {cf-plot-3.2.22 → cf-plot-3.3.0}/cfplot/colourmaps/wxpEnIR.rgb +0 -0
  221. {cf-plot-3.2.22 → 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.22
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.22
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__ = '12th Sep 2023'
14
- __version__ = '3.2.22'
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,24 +404,25 @@ 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
 
407
+
417
408
  # Subset the data if a user map is set
418
409
  # This is use to speed up the plotting
410
+ # myfield is used for calculating the contour levels
411
+ # myfield_extended is used to make the contour plot
419
412
  if plotvars.user_mapset:
420
413
  if plotvars.proj == 'npstere':
421
414
  f = f.subspace(Y = cf.wi(plotvars.boundinglat, 90.0))
422
415
 
423
416
  if plotvars.proj == 'spstere':
424
417
  f = f.subspace(Y = cf.wi(-90.0, plotvars.boundinglat))
425
-
426
- if plotvars.lonmin != -180 or plotvars.lonmax != 180 or \
427
- plotvars.latmin != -90 or plotvars.latmax != 90:
428
- f = f.subspace(X = cf.wi(plotvars.lonmin, plotvars.lonmax), Y = cf.wi(plotvars.latmin, plotvars.latmax))
418
+
419
+
429
420
 
430
-
421
+ # Extract the data
431
422
  field, x, y, ptype, colorbar_title, xlabel, ylabel, xpole, ypole =\
432
423
  cf_data_assign(f, colorbar_title, verbose=verbose)
433
424
 
434
-
425
+
435
426
  if user_xlabel is not None:
436
427
  xlabel = user_xlabel
437
428
  if user_ylabel is not None:
@@ -487,6 +478,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
487
478
  # Set contour line styles
488
479
  matplotlib.rcParams['contour.negative_linestyle'] = negative_linestyle
489
480
 
481
+
490
482
  # Set contour lines off on block plots
491
483
  if blockfill:
492
484
  fill = False
@@ -513,7 +505,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
513
505
  raise TypeError(errstr)
514
506
 
515
507
  # Turn off colorbar if fill is turned off
516
- if not fill and not blockfill and not blockfill_irregular:
508
+ if not fill and not blockfill and not blockfill_ugrid:
517
509
  colorbar = False
518
510
 
519
511
  # Revert to default colour scale if cscale_flag flag is set
@@ -550,24 +542,14 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
550
542
  spacing = level_spacing
551
543
 
552
544
  if plotvars.levels is None:
545
+
546
+ if isinstance(f, cf.Field):
547
+ field, x, y, ptype, colorbar_title, xlabel, ylabel, xpole, ypole =\
548
+ cf_data_assign(f, colorbar_title, verbose=verbose)
553
549
  clevs, mult, fmult = calculate_levels(field=field,
554
550
  level_spacing=spacing,
555
551
  verbose=verbose)
556
552
 
557
- # If a cyclindrical map has been set then try to subspace the data and make a new set of levels
558
- myfield = None
559
- if ptype == 1 and plotvars.user_mapset and isinstance(f, cf.Field):
560
- if plotvars.proj == 'cyl':
561
- try:
562
- myfield = f.subspace(X=cf.wi(plotvars.lonmin, plotvars.lonmax),
563
- Y=cf.wi(plotvars.latmin, plotvars.latmax))
564
- except:
565
- pass
566
-
567
- if myfield is not None:
568
- clevs, mult, fmult = calculate_levels(field=myfield, level_spacing=spacing,\
569
- verbose=verbose)
570
-
571
553
  else:
572
554
  clevs = plotvars.levels
573
555
  mult = 0
@@ -752,7 +734,6 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
752
734
  else:
753
735
  cscale(plotvars.cs_user, ncols=nlevs)
754
736
 
755
-
756
737
 
757
738
  ##################
758
739
  # Map contour plot
@@ -791,9 +772,8 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
791
772
  else:
792
773
  mapset(lonmin=mylonmin, lonmax=mylonmax, latmin=mylatmin, latmax=mylatmax,
793
774
  user_mapset=0, resolution=resolution_orig)
794
- set_map()
795
-
796
775
 
776
+ set_map()
797
777
 
798
778
 
799
779
  mymap = plotvars.mymap
@@ -803,8 +783,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
803
783
 
804
784
 
805
785
 
806
-
807
- if not blockfill_irregular and not blockfill_2d:
786
+ if not blockfill_ugrid and not blockfill_2d:
808
787
  if not irregular:
809
788
  if lonrange > 350 and np.ndim(y) == 1:
810
789
  # Add cyclic information if missing.
@@ -877,7 +856,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
877
856
  # in polar plots. Subsample the latitudes to remove this problem
878
857
 
879
858
  if plotvars.proj == 'npstere' and np.ndim(y) == 1:
880
- if not blockfill_irregular and not blockfill_2d:
859
+ if not blockfill_ugrid and not blockfill_2d:
881
860
  if irregular:
882
861
  pts = np.where(lats_irregular > plotvars.boundinglat - 5)
883
862
  pts = np.array(pts).flatten()
@@ -891,7 +870,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
891
870
  field = field[myypos:, :]
892
871
 
893
872
  if plotvars.proj == 'spstere' and np.ndim(y) == 1:
894
- if not blockfill_irregular and not blockfill_2d:
873
+ if not blockfill_ugrid and not blockfill_2d:
895
874
  if irregular:
896
875
  pts = np.where(lats_irregular_real < plotvars.boundinglat + 5)
897
876
  lons_irregular_real = lons_irregular_real[pts]
@@ -984,7 +963,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
984
963
  zorder=zorder)
985
964
 
986
965
  # Block fill
987
- if blockfill:
966
+ if blockfill and not blockfill_ugrid:
988
967
  if verbose:
989
968
  print('con - adding blockfill')
990
969
 
@@ -1029,10 +1008,10 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
1029
1008
  lonlat=True, bound=0, alpha=alpha, fast=blockfill_fast, zorder=zorder)
1030
1009
 
1031
1010
  # Block fill for irregular
1032
- if blockfill_irregular and not blockfill_2d:
1011
+ if blockfill_ugrid and not blockfill_2d:
1033
1012
  if verbose:
1034
1013
  print('con - adding blockfill for irregular')
1035
- bfill_irregular(f=field_orig * fmult, face_lons=face_lons_array,
1014
+ bfill_ugrid(f=field_orig * fmult, face_lons=face_lons_array,
1036
1015
  face_lats=face_lats_array,
1037
1016
  face_connectivity=face_connectivity_array, clevs=clevs,
1038
1017
  alpha=alpha, zorder=zorder)
@@ -1073,7 +1052,7 @@ def con(f=None, x=None, y=None, fill=global_fill, lines=global_lines, line_label
1073
1052
 
1074
1053
 
1075
1054
  # Add a irregular mask if there is one
1076
- 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:
1077
1056
  if np.size(field_irregular_nan) > 0:
1078
1057
  cmap_white = matplotlib.colors.ListedColormap([1.0, 1.0, 1.0])
1079
1058
  mymap.tricontourf(lons_irregular_nan, lats_irregular_nan, field_irregular_nan , [0.5, 1.5],
@@ -3604,28 +3583,28 @@ def cf_data_assign(f=None, colorbar_title=None, verbose=None, rotated_vect=False
3604
3583
  c = f.coord(mycoord)
3605
3584
  if c.X:
3606
3585
  if verbose:
3607
- print(vs + 'lons -', mydim)
3586
+ print('lons -', mydim)
3608
3587
  lons = np.squeeze(f.construct(mycoord).array)
3609
3588
  if np.size(lons) > 1:
3610
3589
  has_lons = True
3611
3590
 
3612
3591
  if c.Y:
3613
3592
  if verbose:
3614
- print(vs + 'lats -', mydim)
3593
+ print('lats -', mydim)
3615
3594
  lats = np.squeeze(f.construct(mycoord).array)
3616
3595
  if np.size(lats) > 1:
3617
3596
  has_lats = True
3618
3597
 
3619
3598
  if c.Z:
3620
3599
  if verbose:
3621
- print(vs + 'height -', mydim)
3600
+ print('height -', mydim)
3622
3601
  height = np.squeeze(f.construct(mycoord).array)
3623
3602
  if np.size(height) > 1:
3624
3603
  has_height = True
3625
3604
 
3626
3605
  if c.T:
3627
3606
  if verbose:
3628
- print(vs + 'time -', mydim)
3607
+ print('time -', mydim)
3629
3608
  time = np.squeeze(f.construct(mycoord).array)
3630
3609
  if np.size(time) > 1:
3631
3610
  has_time = True
@@ -5994,7 +5973,7 @@ def set_map():
5994
5973
  |
5995
5974
  """
5996
5975
 
5997
-
5976
+
5998
5977
  # Return if mymap is already set
5999
5978
  if plotvars.mymap is not None:
6000
5979
  return
@@ -6017,6 +5996,7 @@ def set_map():
6017
5996
  if lonmax - lonmin == 360.0:
6018
5997
  lonmax = lonmax + 0.01
6019
5998
 
5999
+
6020
6000
  if plotvars.proj == 'merc':
6021
6001
  min_latitude = -80.0
6022
6002
  if plotvars.lonmin > min_latitude:
@@ -6111,7 +6091,6 @@ def set_map():
6111
6091
  extent = True
6112
6092
 
6113
6093
 
6114
-
6115
6094
  # Add a plot containing the projection
6116
6095
  if plotvars.plot_xmin:
6117
6096
  delta_x = plotvars.plot_xmax - plotvars.plot_xmin
@@ -6121,6 +6100,7 @@ def set_map():
6121
6100
  delta_x, delta_y],
6122
6101
  projection=proj)
6123
6102
  else:
6103
+
6124
6104
  mymap = plotvars.master_plot.add_subplot(plotvars.rows,
6125
6105
  plotvars.columns,
6126
6106
  plotvars.pos,
@@ -7594,7 +7574,7 @@ def regression_tests():
7594
7574
  """
7595
7575
  | Test for cf-plot regressions
7596
7576
  | Run through some standard levs, gvals, lon and lat labelling
7597
- | Make all the gallery plots and use Imagemaick to display them
7577
+ | Make all the gallery plots and use Imagemagick to display them
7598
7578
  | alongside a reference plot
7599
7579
  |
7600
7580
  |
@@ -10151,11 +10131,11 @@ def stream(u=None, v=None, x=None, y=None, density=None, linewidth=None,
10151
10131
  mapset(resolution=resolution_orig)
10152
10132
 
10153
10133
 
10154
- 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,
10155
10135
  alpha=None, zorder=None):
10156
10136
 
10157
10137
  """
10158
- | bfill_irregular - block fill a irregular field with colour rectangles
10138
+ | bfill_ugrid - block fill a irregular field with colour rectangles
10159
10139
  | This is an internal routine and is not generally used by the user.
10160
10140
  |
10161
10141
  | f=None - field
@@ -10206,38 +10186,44 @@ def bfill_irregular(f=None, face_lons=None, face_lats=None, face_connectivity=No
10206
10186
  plotargs = {'transform': ccrs.PlateCarree()}
10207
10187
 
10208
10188
  coords_all = []
10189
+
10190
+ nfaces = np.shape(face_connectivity)[0]
10209
10191
 
10210
- for iface in np.arange(len(face_connectivity)):
10211
- lons = np.array([face_lons[i] for i in face_connectivity[iface]])
10212
- lats = np.array([face_lats[i] for i in face_connectivity[iface]])
10213
-
10214
- coords = [(lons[i], lats[i]) for i in np.arange(len(lons))]
10215
-
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
10216
10198
  if (np.max(lons) - np.min(lons)) > 100:
10217
10199
  if np.max(lons) > 180:
10218
- for i in np.arange(len(lons)):
10219
- lons[i] = (lons[i] + 180) % 360 - 180
10220
-
10200
+ for j in np.arange(len(lons)):
10201
+ lons[j] = (lons[j] + 180) % 360 - 180
10221
10202
  else:
10222
- for i in np.arange(len(lons)):
10223
- lons[i] = lons[i] % 360
10224
-
10225
- 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
10226
10205
 
10206
+ nverts = len(lons)
10207
+
10227
10208
  # Add extra verticies if any of the points are at the north or south pole
10228
10209
  if np.max(lats) == 90 or np.min(lats) == -90:
10229
- 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)])
10230
10212
  geom_cyl = ccrs.PlateCarree().project_geometry(geom, ccrs.Geodetic())
10231
10213
 
10232
10214
  # Original method for shapely < 2.0
10233
- #coords = geom_cyl[0].exterior.coords[:]
10215
+ # coords = geom_cyl[0].exterior.coords[:]
10234
10216
 
10235
10217
  # New method for shapely 2.0 +
10236
10218
  poly_mapped = sgeom.mapping(geom_cyl.geoms[0])
10219
+
10237
10220
  coords = list(poly_mapped['coordinates'][0])
10238
-
10221
+ else:
10222
+ coords = [(lons[k], lats[k]) for k in np.arange(nverts)]
10223
+
10239
10224
  coords_all.append(coords)
10240
-
10225
+
10226
+
10241
10227
  plotvars.mymap.add_collection(PolyCollection(coords_all, facecolors=cols, edgecolors=None,
10242
10228
  alpha=alpha, zorder=zorder, **plotargs))
10243
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.22",
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