ncv 0.0.1__py3-none-any.whl

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 (249) hide show
  1. ncv/__init__.py +58 -0
  2. ncv/__main__.py +35 -0
  3. ncv/app.py +1757 -0
  4. ncv/dimensions.py +172 -0
  5. ncv/images/Accent.png +0 -0
  6. ncv/images/Blues.png +0 -0
  7. ncv/images/BrBG.png +0 -0
  8. ncv/images/BuGn.png +0 -0
  9. ncv/images/BuPu.png +0 -0
  10. ncv/images/CMRmap.png +0 -0
  11. ncv/images/Dark2.png +0 -0
  12. ncv/images/GnBu.png +0 -0
  13. ncv/images/Grays.png +0 -0
  14. ncv/images/Greens.png +0 -0
  15. ncv/images/Greys.png +0 -0
  16. ncv/images/OrRd.png +0 -0
  17. ncv/images/Oranges.png +0 -0
  18. ncv/images/PRGn.png +0 -0
  19. ncv/images/Paired.png +0 -0
  20. ncv/images/Pastel1.png +0 -0
  21. ncv/images/Pastel2.png +0 -0
  22. ncv/images/PiYG.png +0 -0
  23. ncv/images/PuBu.png +0 -0
  24. ncv/images/PuBuGn.png +0 -0
  25. ncv/images/PuOr.png +0 -0
  26. ncv/images/PuRd.png +0 -0
  27. ncv/images/Purples.png +0 -0
  28. ncv/images/RdBu.png +0 -0
  29. ncv/images/RdGy.png +0 -0
  30. ncv/images/RdPu.png +0 -0
  31. ncv/images/RdYlBu.png +0 -0
  32. ncv/images/RdYlGn.png +0 -0
  33. ncv/images/Reds.png +0 -0
  34. ncv/images/Set1.png +0 -0
  35. ncv/images/Set2.png +0 -0
  36. ncv/images/Set3.png +0 -0
  37. ncv/images/Spectral.png +0 -0
  38. ncv/images/Wistia.png +0 -0
  39. ncv/images/YlGn.png +0 -0
  40. ncv/images/YlGnBu.png +0 -0
  41. ncv/images/YlOrBr.png +0 -0
  42. ncv/images/YlOrRd.png +0 -0
  43. ncv/images/afmhot.png +0 -0
  44. ncv/images/autumn.png +0 -0
  45. ncv/images/berlin.png +0 -0
  46. ncv/images/binary.png +0 -0
  47. ncv/images/bone.png +0 -0
  48. ncv/images/brg.png +0 -0
  49. ncv/images/bwr.png +0 -0
  50. ncv/images/cividis.png +0 -0
  51. ncv/images/cool.png +0 -0
  52. ncv/images/coolwarm.png +0 -0
  53. ncv/images/copper.png +0 -0
  54. ncv/images/cubehelix.png +0 -0
  55. ncv/images/flag.png +0 -0
  56. ncv/images/gist_earth.png +0 -0
  57. ncv/images/gist_gray.png +0 -0
  58. ncv/images/gist_grey.png +0 -0
  59. ncv/images/gist_heat.png +0 -0
  60. ncv/images/gist_ncar.png +0 -0
  61. ncv/images/gist_rainbow.png +0 -0
  62. ncv/images/gist_stern.png +0 -0
  63. ncv/images/gist_yarg.png +0 -0
  64. ncv/images/gist_yerg.png +0 -0
  65. ncv/images/gnuplot.png +0 -0
  66. ncv/images/gnuplot2.png +0 -0
  67. ncv/images/gray.png +0 -0
  68. ncv/images/grey.png +0 -0
  69. ncv/images/hot.png +0 -0
  70. ncv/images/hsv.png +0 -0
  71. ncv/images/inferno.png +0 -0
  72. ncv/images/jet.png +0 -0
  73. ncv/images/magma.png +0 -0
  74. ncv/images/managua.png +0 -0
  75. ncv/images/ncvue_icon.ico +0 -0
  76. ncv/images/ncvue_icon.png +0 -0
  77. ncv/images/nipy_spectral.png +0 -0
  78. ncv/images/ocean.png +0 -0
  79. ncv/images/pink.png +0 -0
  80. ncv/images/plasma.png +0 -0
  81. ncv/images/prism.png +0 -0
  82. ncv/images/rainbow.png +0 -0
  83. ncv/images/seismic.png +0 -0
  84. ncv/images/spring.png +0 -0
  85. ncv/images/summer.png +0 -0
  86. ncv/images/tab10.png +0 -0
  87. ncv/images/tab20.png +0 -0
  88. ncv/images/tab20b.png +0 -0
  89. ncv/images/tab20c.png +0 -0
  90. ncv/images/terrain.png +0 -0
  91. ncv/images/turbo.png +0 -0
  92. ncv/images/twilight.png +0 -0
  93. ncv/images/twilight_shifted.png +0 -0
  94. ncv/images/vanimo.png +0 -0
  95. ncv/images/viridis.png +0 -0
  96. ncv/images/winter.png +0 -0
  97. ncv/ncvcontour.py +981 -0
  98. ncv/ncvmain.py +226 -0
  99. ncv/ncvmap.py +1758 -0
  100. ncv/ncvmethods.py +1253 -0
  101. ncv/ncvscatter.py +1345 -0
  102. ncv/ncvscreen.py +147 -0
  103. ncv/ncvutils.py +1166 -0
  104. ncv/ncvwidgets.py +860 -0
  105. ncv/qt_compat.py +21 -0
  106. ncv/session.py +147 -0
  107. ncv/themes/azure-2.0/Dark screenshot.png +0 -0
  108. ncv/themes/azure-2.0/LICENSE +21 -0
  109. ncv/themes/azure-2.0/Light screenshot.png +0 -0
  110. ncv/themes/azure-2.0/README.md +109 -0
  111. ncv/themes/azure-2.0/azure.tcl +89 -0
  112. ncv/themes/azure-2.0/example.py +306 -0
  113. ncv/themes/azure-2.0/theme/dark/box-accent.png +0 -0
  114. ncv/themes/azure-2.0/theme/dark/box-basic.png +0 -0
  115. ncv/themes/azure-2.0/theme/dark/box-hover.png +0 -0
  116. ncv/themes/azure-2.0/theme/dark/box-invalid.png +0 -0
  117. ncv/themes/azure-2.0/theme/dark/button-hover.png +0 -0
  118. ncv/themes/azure-2.0/theme/dark/card.png +0 -0
  119. ncv/themes/azure-2.0/theme/dark/check-accent.png +0 -0
  120. ncv/themes/azure-2.0/theme/dark/check-basic.png +0 -0
  121. ncv/themes/azure-2.0/theme/dark/check-hover.png +0 -0
  122. ncv/themes/azure-2.0/theme/dark/check-tri-accent.png +0 -0
  123. ncv/themes/azure-2.0/theme/dark/check-tri-basic.png +0 -0
  124. ncv/themes/azure-2.0/theme/dark/check-tri-hover.png +0 -0
  125. ncv/themes/azure-2.0/theme/dark/circle-accent.png +0 -0
  126. ncv/themes/azure-2.0/theme/dark/circle-basic.png +0 -0
  127. ncv/themes/azure-2.0/theme/dark/circle-hover.png +0 -0
  128. ncv/themes/azure-2.0/theme/dark/combo-button-basic.png +0 -0
  129. ncv/themes/azure-2.0/theme/dark/combo-button-focus.png +0 -0
  130. ncv/themes/azure-2.0/theme/dark/combo-button-hover.png +0 -0
  131. ncv/themes/azure-2.0/theme/dark/down-accent.png +0 -0
  132. ncv/themes/azure-2.0/theme/dark/down.png +0 -0
  133. ncv/themes/azure-2.0/theme/dark/empty.png +0 -0
  134. ncv/themes/azure-2.0/theme/dark/hor-accent.png +0 -0
  135. ncv/themes/azure-2.0/theme/dark/hor-basic.png +0 -0
  136. ncv/themes/azure-2.0/theme/dark/hor-hover.png +0 -0
  137. ncv/themes/azure-2.0/theme/dark/notebook.png +0 -0
  138. ncv/themes/azure-2.0/theme/dark/off-basic.png +0 -0
  139. ncv/themes/azure-2.0/theme/dark/on-accent.png +0 -0
  140. ncv/themes/azure-2.0/theme/dark/on-basic.png +0 -0
  141. ncv/themes/azure-2.0/theme/dark/outline-basic.png +0 -0
  142. ncv/themes/azure-2.0/theme/dark/outline-hover.png +0 -0
  143. ncv/themes/azure-2.0/theme/dark/radio-accent.png +0 -0
  144. ncv/themes/azure-2.0/theme/dark/radio-basic.png +0 -0
  145. ncv/themes/azure-2.0/theme/dark/radio-hover.png +0 -0
  146. ncv/themes/azure-2.0/theme/dark/radio-tri-accent.png +0 -0
  147. ncv/themes/azure-2.0/theme/dark/radio-tri-basic.png +0 -0
  148. ncv/themes/azure-2.0/theme/dark/radio-tri-hover.png +0 -0
  149. ncv/themes/azure-2.0/theme/dark/rect-accent-hover.png +0 -0
  150. ncv/themes/azure-2.0/theme/dark/rect-accent.png +0 -0
  151. ncv/themes/azure-2.0/theme/dark/rect-basic.png +0 -0
  152. ncv/themes/azure-2.0/theme/dark/rect-hover.png +0 -0
  153. ncv/themes/azure-2.0/theme/dark/right.png +0 -0
  154. ncv/themes/azure-2.0/theme/dark/scale-hor.png +0 -0
  155. ncv/themes/azure-2.0/theme/dark/scale-vert.png +0 -0
  156. ncv/themes/azure-2.0/theme/dark/separator.png +0 -0
  157. ncv/themes/azure-2.0/theme/dark/size.png +0 -0
  158. ncv/themes/azure-2.0/theme/dark/tab-basic.png +0 -0
  159. ncv/themes/azure-2.0/theme/dark/tab-disabled.png +0 -0
  160. ncv/themes/azure-2.0/theme/dark/tab-hover.png +0 -0
  161. ncv/themes/azure-2.0/theme/dark/tick-hor-accent.png +0 -0
  162. ncv/themes/azure-2.0/theme/dark/tick-hor-basic.png +0 -0
  163. ncv/themes/azure-2.0/theme/dark/tick-hor-hover.png +0 -0
  164. ncv/themes/azure-2.0/theme/dark/tick-vert-accent.png +0 -0
  165. ncv/themes/azure-2.0/theme/dark/tick-vert-basic.png +0 -0
  166. ncv/themes/azure-2.0/theme/dark/tick-vert-hover.png +0 -0
  167. ncv/themes/azure-2.0/theme/dark/tree-basic.png +0 -0
  168. ncv/themes/azure-2.0/theme/dark/tree-pressed.png +0 -0
  169. ncv/themes/azure-2.0/theme/dark/up-accent.png +0 -0
  170. ncv/themes/azure-2.0/theme/dark/up.png +0 -0
  171. ncv/themes/azure-2.0/theme/dark/vert-accent.png +0 -0
  172. ncv/themes/azure-2.0/theme/dark/vert-basic.png +0 -0
  173. ncv/themes/azure-2.0/theme/dark/vert-hover.png +0 -0
  174. ncv/themes/azure-2.0/theme/dark.tcl +537 -0
  175. ncv/themes/azure-2.0/theme/light/box-accent.png +0 -0
  176. ncv/themes/azure-2.0/theme/light/box-basic.png +0 -0
  177. ncv/themes/azure-2.0/theme/light/box-hover.png +0 -0
  178. ncv/themes/azure-2.0/theme/light/box-invalid.png +0 -0
  179. ncv/themes/azure-2.0/theme/light/button-hover.png +0 -0
  180. ncv/themes/azure-2.0/theme/light/card.png +0 -0
  181. ncv/themes/azure-2.0/theme/light/check-accent.png +0 -0
  182. ncv/themes/azure-2.0/theme/light/check-basic.png +0 -0
  183. ncv/themes/azure-2.0/theme/light/check-hover.png +0 -0
  184. ncv/themes/azure-2.0/theme/light/check-tri-accent.png +0 -0
  185. ncv/themes/azure-2.0/theme/light/check-tri-basic.png +0 -0
  186. ncv/themes/azure-2.0/theme/light/check-tri-hover.png +0 -0
  187. ncv/themes/azure-2.0/theme/light/circle-accent.png +0 -0
  188. ncv/themes/azure-2.0/theme/light/circle-basic.png +0 -0
  189. ncv/themes/azure-2.0/theme/light/circle-hover.png +0 -0
  190. ncv/themes/azure-2.0/theme/light/combo-button-basic.png +0 -0
  191. ncv/themes/azure-2.0/theme/light/combo-button-focus.png +0 -0
  192. ncv/themes/azure-2.0/theme/light/combo-button-hover.png +0 -0
  193. ncv/themes/azure-2.0/theme/light/down-accent.png +0 -0
  194. ncv/themes/azure-2.0/theme/light/down.png +0 -0
  195. ncv/themes/azure-2.0/theme/light/empty.png +0 -0
  196. ncv/themes/azure-2.0/theme/light/hor-accent.png +0 -0
  197. ncv/themes/azure-2.0/theme/light/hor-basic.png +0 -0
  198. ncv/themes/azure-2.0/theme/light/hor-hover.png +0 -0
  199. ncv/themes/azure-2.0/theme/light/notebook.png +0 -0
  200. ncv/themes/azure-2.0/theme/light/off-basic.png +0 -0
  201. ncv/themes/azure-2.0/theme/light/off-hover.png +0 -0
  202. ncv/themes/azure-2.0/theme/light/on-accent.png +0 -0
  203. ncv/themes/azure-2.0/theme/light/on-basic.png +0 -0
  204. ncv/themes/azure-2.0/theme/light/on-hover.png +0 -0
  205. ncv/themes/azure-2.0/theme/light/outline-basic.png +0 -0
  206. ncv/themes/azure-2.0/theme/light/outline-hover.png +0 -0
  207. ncv/themes/azure-2.0/theme/light/radio-accent.png +0 -0
  208. ncv/themes/azure-2.0/theme/light/radio-basic.png +0 -0
  209. ncv/themes/azure-2.0/theme/light/radio-hover.png +0 -0
  210. ncv/themes/azure-2.0/theme/light/radio-tri-accent.png +0 -0
  211. ncv/themes/azure-2.0/theme/light/radio-tri-basic.png +0 -0
  212. ncv/themes/azure-2.0/theme/light/radio-tri-hover.png +0 -0
  213. ncv/themes/azure-2.0/theme/light/rect-accent-hover.png +0 -0
  214. ncv/themes/azure-2.0/theme/light/rect-accent.png +0 -0
  215. ncv/themes/azure-2.0/theme/light/rect-basic.png +0 -0
  216. ncv/themes/azure-2.0/theme/light/rect-hover.png +0 -0
  217. ncv/themes/azure-2.0/theme/light/right.png +0 -0
  218. ncv/themes/azure-2.0/theme/light/scale-hor.png +0 -0
  219. ncv/themes/azure-2.0/theme/light/scale-vert.png +0 -0
  220. ncv/themes/azure-2.0/theme/light/separator.png +0 -0
  221. ncv/themes/azure-2.0/theme/light/size.png +0 -0
  222. ncv/themes/azure-2.0/theme/light/tab-basic.png +0 -0
  223. ncv/themes/azure-2.0/theme/light/tab-disabled.png +0 -0
  224. ncv/themes/azure-2.0/theme/light/tab-hover.png +0 -0
  225. ncv/themes/azure-2.0/theme/light/tick-hor-accent.png +0 -0
  226. ncv/themes/azure-2.0/theme/light/tick-hor-basic.png +0 -0
  227. ncv/themes/azure-2.0/theme/light/tick-hor-hover.png +0 -0
  228. ncv/themes/azure-2.0/theme/light/tick-vert-accent.png +0 -0
  229. ncv/themes/azure-2.0/theme/light/tick-vert-basic.png +0 -0
  230. ncv/themes/azure-2.0/theme/light/tick-vert-hover.png +0 -0
  231. ncv/themes/azure-2.0/theme/light/tree-basic.png +0 -0
  232. ncv/themes/azure-2.0/theme/light/tree-pressed.png +0 -0
  233. ncv/themes/azure-2.0/theme/light/up-accent.png +0 -0
  234. ncv/themes/azure-2.0/theme/light/up.png +0 -0
  235. ncv/themes/azure-2.0/theme/light/vert-accent.png +0 -0
  236. ncv/themes/azure-2.0/theme/light/vert-basic.png +0 -0
  237. ncv/themes/azure-2.0/theme/light/vert-hover.png +0 -0
  238. ncv/themes/azure-2.0/theme/light.tcl +537 -0
  239. ncv/themes/customtkinter/blue.json +155 -0
  240. ncv/themes/customtkinter/dark-blue.json +155 -0
  241. ncv/themes/customtkinter/green.json +155 -0
  242. ncv/themes/customtkinter/ncvue-blue.json +169 -0
  243. ncv/tooltip.py +196 -0
  244. ncv-0.0.1.dist-info/LICENSE +674 -0
  245. ncv-0.0.1.dist-info/METADATA +25 -0
  246. ncv-0.0.1.dist-info/RECORD +249 -0
  247. ncv-0.0.1.dist-info/WHEEL +5 -0
  248. ncv-0.0.1.dist-info/entry_points.txt +2 -0
  249. ncv-0.0.1.dist-info/top_level.txt +1 -0
ncv/__init__.py ADDED
@@ -0,0 +1,58 @@
1
+ """
2
+ ncv: a quick NetCDF viewer.
3
+
4
+ The public API is Qt-first. Legacy Tk modules remain in the source tree during
5
+ the port, but they are not imported eagerly so optional dependencies such as
6
+ Cartopy cannot break ``import ncv``.
7
+ """
8
+ from __future__ import annotations
9
+
10
+ from .ncvutils import DIMMETHODS
11
+ from .ncvutils import add_cyclic, has_cyclic
12
+ from .ncvutils import format_coord_contour, format_coord_map
13
+ from .ncvutils import format_coord_scatter, get_slice, get_slice_values
14
+ from .ncvutils import get_standard_name, get_units
15
+ from .ncvutils import list_intersection, parse_entry, selvar, set_axis_label
16
+ from .ncvutils import set_miss, spinbox_values, vardim2var
17
+ from .ncvutils import xzip_dim_name_length, zip_dim_name_length
18
+ from .session import HAVE_XARRAY, NcvSession
19
+
20
+ try:
21
+ from ._version import __version__
22
+ except ImportError: # pragma: no cover
23
+ __version__ = "0.0.0.dev0"
24
+
25
+ __author__ = "Matthias Cuntz"
26
+
27
+
28
+ def ncv(ncfile=None, miss=None, usex=False):
29
+ """Launch the Qt ncv application."""
30
+ from .app import ncv as _ncv
31
+
32
+ return _ncv(ncfile=ncfile, miss=miss, usex=usex)
33
+
34
+
35
+ __all__ = [
36
+ "DIMMETHODS",
37
+ "HAVE_XARRAY",
38
+ "NcvSession",
39
+ "add_cyclic",
40
+ "format_coord_contour",
41
+ "format_coord_map",
42
+ "format_coord_scatter",
43
+ "get_slice",
44
+ "get_slice_values",
45
+ "get_standard_name",
46
+ "get_units",
47
+ "has_cyclic",
48
+ "list_intersection",
49
+ "ncv",
50
+ "parse_entry",
51
+ "selvar",
52
+ "set_axis_label",
53
+ "set_miss",
54
+ "spinbox_values",
55
+ "vardim2var",
56
+ "xzip_dim_name_length",
57
+ "zip_dim_name_length",
58
+ ]
ncv/__main__.py ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env python3
2
+ """Command line entry point for ncv."""
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+
7
+ import numpy as np
8
+
9
+ from .app import ncv
10
+
11
+
12
+ def main():
13
+ parser = argparse.ArgumentParser(
14
+ formatter_class=argparse.RawDescriptionHelpFormatter,
15
+ description="A minimal GUI for a quick view of netcdf files.",
16
+ )
17
+ parser.add_argument(
18
+ "-m", "--miss", action="store", type=float,
19
+ default=np.nan, dest="miss", metavar="missing_value",
20
+ help="Set value to missing value (default: numpy.nan)",
21
+ )
22
+ parser.add_argument(
23
+ "-x", "--xarray", action="store_true",
24
+ default=False, dest="usex", help="Use xarray to read input files",
25
+ )
26
+ parser.add_argument(
27
+ "ncfile", nargs="*", default=None, metavar="netcdf_file",
28
+ help="netcdf file",
29
+ )
30
+ args = parser.parse_args()
31
+ return ncv(ncfile=args.ncfile, miss=args.miss, usex=args.usex)
32
+
33
+
34
+ if __name__ == "__main__":
35
+ raise SystemExit(main())