datalab-platform 0.0.1.dev0__py3-none-any.whl → 1.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 (496) hide show
  1. datalab/__init__.py +35 -2
  2. datalab/adapters_metadata/__init__.py +31 -0
  3. datalab/adapters_metadata/base_adapter.py +316 -0
  4. datalab/adapters_metadata/common.py +422 -0
  5. datalab/adapters_metadata/geometry_adapter.py +98 -0
  6. datalab/adapters_metadata/table_adapter.py +84 -0
  7. datalab/adapters_plotpy/__init__.py +54 -0
  8. datalab/adapters_plotpy/annotations.py +124 -0
  9. datalab/adapters_plotpy/base.py +110 -0
  10. datalab/adapters_plotpy/converters.py +86 -0
  11. datalab/adapters_plotpy/factories.py +80 -0
  12. datalab/adapters_plotpy/objects/__init__.py +0 -0
  13. datalab/adapters_plotpy/objects/base.py +197 -0
  14. datalab/adapters_plotpy/objects/image.py +157 -0
  15. datalab/adapters_plotpy/objects/scalar.py +565 -0
  16. datalab/adapters_plotpy/objects/signal.py +264 -0
  17. datalab/adapters_plotpy/roi/__init__.py +0 -0
  18. datalab/adapters_plotpy/roi/base.py +146 -0
  19. datalab/adapters_plotpy/roi/factory.py +93 -0
  20. datalab/adapters_plotpy/roi/image.py +207 -0
  21. datalab/adapters_plotpy/roi/signal.py +72 -0
  22. datalab/app.py +98 -0
  23. datalab/config.py +817 -0
  24. datalab/control/__init__.py +0 -0
  25. datalab/control/baseproxy.py +776 -0
  26. datalab/control/proxy.py +343 -0
  27. datalab/control/remote.py +1005 -0
  28. datalab/data/doc/DataLab_en.pdf +0 -0
  29. datalab/data/doc/DataLab_fr.pdf +0 -0
  30. datalab/data/icons/analysis/delete_results.svg +109 -0
  31. datalab/data/icons/analysis/fw1e2.svg +156 -0
  32. datalab/data/icons/analysis/fwhm.svg +156 -0
  33. datalab/data/icons/analysis/histogram.svg +49 -0
  34. datalab/data/icons/analysis/peak_detect.svg +160 -0
  35. datalab/data/icons/analysis/plot_results.svg +151 -0
  36. datalab/data/icons/analysis/show_results.svg +83 -0
  37. datalab/data/icons/analysis/stats.svg +49 -0
  38. datalab/data/icons/analysis.svg +120 -0
  39. datalab/data/icons/apply.svg +3 -0
  40. datalab/data/icons/check_all.svg +15 -0
  41. datalab/data/icons/collapse.svg +44 -0
  42. datalab/data/icons/collapse_selection.svg +63 -0
  43. datalab/data/icons/console.svg +101 -0
  44. datalab/data/icons/create/1d-normal.svg +8 -0
  45. datalab/data/icons/create/1d-poisson.svg +9 -0
  46. datalab/data/icons/create/1d-uniform.svg +8 -0
  47. datalab/data/icons/create/1d-zero.svg +57 -0
  48. datalab/data/icons/create/2d-gaussian.svg +56 -0
  49. datalab/data/icons/create/2d-normal.svg +38 -0
  50. datalab/data/icons/create/2d-poisson.svg +38 -0
  51. datalab/data/icons/create/2d-ramp.svg +90 -0
  52. datalab/data/icons/create/2d-sinc.svg +62 -0
  53. datalab/data/icons/create/2d-uniform.svg +38 -0
  54. datalab/data/icons/create/2d-zero.svg +13 -0
  55. datalab/data/icons/create/checkerboard.svg +39 -0
  56. datalab/data/icons/create/cosine.svg +12 -0
  57. datalab/data/icons/create/exponential.svg +55 -0
  58. datalab/data/icons/create/gaussian.svg +12 -0
  59. datalab/data/icons/create/grating.svg +29 -0
  60. datalab/data/icons/create/linear_chirp.svg +7 -0
  61. datalab/data/icons/create/logistic.svg +7 -0
  62. datalab/data/icons/create/lorentzian.svg +12 -0
  63. datalab/data/icons/create/planck.svg +12 -0
  64. datalab/data/icons/create/polynomial.svg +7 -0
  65. datalab/data/icons/create/pulse.svg +12 -0
  66. datalab/data/icons/create/ring.svg +18 -0
  67. datalab/data/icons/create/sawtooth.svg +7 -0
  68. datalab/data/icons/create/siemens.svg +35 -0
  69. datalab/data/icons/create/sinc.svg +12 -0
  70. datalab/data/icons/create/sine.svg +7 -0
  71. datalab/data/icons/create/square.svg +7 -0
  72. datalab/data/icons/create/square_pulse.svg +7 -0
  73. datalab/data/icons/create/step.svg +7 -0
  74. datalab/data/icons/create/step_pulse.svg +12 -0
  75. datalab/data/icons/create/triangle.svg +7 -0
  76. datalab/data/icons/create/voigt.svg +12 -0
  77. datalab/data/icons/edit/annotations.svg +72 -0
  78. datalab/data/icons/edit/annotations_copy.svg +114 -0
  79. datalab/data/icons/edit/annotations_delete.svg +83 -0
  80. datalab/data/icons/edit/annotations_edit.svg +98 -0
  81. datalab/data/icons/edit/annotations_export.svg +85 -0
  82. datalab/data/icons/edit/annotations_import.svg +85 -0
  83. datalab/data/icons/edit/annotations_paste.svg +100 -0
  84. datalab/data/icons/edit/copy_titles.svg +109 -0
  85. datalab/data/icons/edit/delete.svg +84 -0
  86. datalab/data/icons/edit/delete_all.svg +214 -0
  87. datalab/data/icons/edit/duplicate.svg +64 -0
  88. datalab/data/icons/edit/goto_source.svg +60 -0
  89. datalab/data/icons/edit/metadata.svg +60 -0
  90. datalab/data/icons/edit/metadata_add.svg +80 -0
  91. datalab/data/icons/edit/metadata_copy.svg +96 -0
  92. datalab/data/icons/edit/metadata_delete.svg +62 -0
  93. datalab/data/icons/edit/metadata_export.svg +68 -0
  94. datalab/data/icons/edit/metadata_import.svg +68 -0
  95. datalab/data/icons/edit/metadata_paste.svg +79 -0
  96. datalab/data/icons/edit/move_down.svg +55 -0
  97. datalab/data/icons/edit/move_up.svg +54 -0
  98. datalab/data/icons/edit/new_group.svg +76 -0
  99. datalab/data/icons/edit/recompute.svg +60 -0
  100. datalab/data/icons/edit/rename.svg +49 -0
  101. datalab/data/icons/edit.svg +16 -0
  102. datalab/data/icons/expand.svg +44 -0
  103. datalab/data/icons/expand_selection.svg +63 -0
  104. datalab/data/icons/fit/cdf_fit.svg +56 -0
  105. datalab/data/icons/fit/exponential_fit.svg +55 -0
  106. datalab/data/icons/fit/gaussian_fit.svg +62 -0
  107. datalab/data/icons/fit/interactive_fit.svg +101 -0
  108. datalab/data/icons/fit/linear_fit.svg +57 -0
  109. datalab/data/icons/fit/lorentzian_fit.svg +209 -0
  110. datalab/data/icons/fit/multigaussian_fit.svg +85 -0
  111. datalab/data/icons/fit/multilorentzian_fit.svg +85 -0
  112. datalab/data/icons/fit/piecewiseexponential_fit.svg +209 -0
  113. datalab/data/icons/fit/planckian_fit.svg +62 -0
  114. datalab/data/icons/fit/polynomial_fit.svg +59 -0
  115. datalab/data/icons/fit/sigmoid_fit.svg +56 -0
  116. datalab/data/icons/fit/sinusoidal_fit.svg +72 -0
  117. datalab/data/icons/fit/twohalfgaussian_fit.svg +63 -0
  118. datalab/data/icons/fit/voigt_fit.svg +57 -0
  119. datalab/data/icons/group.svg +56 -0
  120. datalab/data/icons/h5/h5array.svg +59 -0
  121. datalab/data/icons/h5/h5attrs.svg +75 -0
  122. datalab/data/icons/h5/h5browser.svg +133 -0
  123. datalab/data/icons/h5/h5file.svg +69 -0
  124. datalab/data/icons/h5/h5group.svg +49 -0
  125. datalab/data/icons/h5/h5scalar.svg +1 -0
  126. datalab/data/icons/help_pdf.svg +46 -0
  127. datalab/data/icons/history.svg +7 -0
  128. datalab/data/icons/image.svg +135 -0
  129. datalab/data/icons/io/fileopen_directory.svg +60 -0
  130. datalab/data/icons/io/fileopen_h5.svg +84 -0
  131. datalab/data/icons/io/fileopen_ima.svg +187 -0
  132. datalab/data/icons/io/fileopen_py.svg +123 -0
  133. datalab/data/icons/io/fileopen_sig.svg +138 -0
  134. datalab/data/icons/io/filesave_h5.svg +97 -0
  135. datalab/data/icons/io/filesave_ima.svg +200 -0
  136. datalab/data/icons/io/filesave_py.svg +136 -0
  137. datalab/data/icons/io/filesave_sig.svg +151 -0
  138. datalab/data/icons/io/import_text.svg +144 -0
  139. datalab/data/icons/io/save_to_directory.svg +134 -0
  140. datalab/data/icons/io.svg +84 -0
  141. datalab/data/icons/libre-camera-flash-off.svg +1 -0
  142. datalab/data/icons/libre-camera-flash-on.svg +1 -0
  143. datalab/data/icons/libre-gui-about.svg +1 -0
  144. datalab/data/icons/libre-gui-action-delete.svg +1 -0
  145. datalab/data/icons/libre-gui-add.svg +1 -0
  146. datalab/data/icons/libre-gui-arrow-down.svg +1 -0
  147. datalab/data/icons/libre-gui-arrow-left.svg +1 -0
  148. datalab/data/icons/libre-gui-arrow-right.svg +1 -0
  149. datalab/data/icons/libre-gui-arrow-up.svg +1 -0
  150. datalab/data/icons/libre-gui-close.svg +40 -0
  151. datalab/data/icons/libre-gui-cogs.svg +1 -0
  152. datalab/data/icons/libre-gui-globe.svg +1 -0
  153. datalab/data/icons/libre-gui-help.svg +1 -0
  154. datalab/data/icons/libre-gui-link.svg +1 -0
  155. datalab/data/icons/libre-gui-menu.svg +1 -0
  156. datalab/data/icons/libre-gui-pencil.svg +1 -0
  157. datalab/data/icons/libre-gui-plugin.svg +1 -0
  158. datalab/data/icons/libre-gui-questions.svg +1 -0
  159. datalab/data/icons/libre-gui-settings.svg +1 -0
  160. datalab/data/icons/libre-gui-unlink.svg +1 -0
  161. datalab/data/icons/libre-tech-ram.svg +1 -0
  162. datalab/data/icons/libre-toolbox.svg +1 -0
  163. datalab/data/icons/logs.svg +1 -0
  164. datalab/data/icons/markers.svg +74 -0
  165. datalab/data/icons/menu.svg +13 -0
  166. datalab/data/icons/new_ima.svg +148 -0
  167. datalab/data/icons/new_sig.svg +123 -0
  168. datalab/data/icons/operations/abs.svg +116 -0
  169. datalab/data/icons/operations/arithmetic.svg +123 -0
  170. datalab/data/icons/operations/average.svg +124 -0
  171. datalab/data/icons/operations/complex_from_magnitude_phase.svg +116 -0
  172. datalab/data/icons/operations/complex_from_real_imag.svg +124 -0
  173. datalab/data/icons/operations/constant.svg +116 -0
  174. datalab/data/icons/operations/constant_add.svg +109 -0
  175. datalab/data/icons/operations/constant_divide.svg +109 -0
  176. datalab/data/icons/operations/constant_multiply.svg +109 -0
  177. datalab/data/icons/operations/constant_subtract.svg +109 -0
  178. datalab/data/icons/operations/convert_dtype.svg +117 -0
  179. datalab/data/icons/operations/convolution.svg +46 -0
  180. datalab/data/icons/operations/deconvolution.svg +57 -0
  181. datalab/data/icons/operations/derivative.svg +127 -0
  182. datalab/data/icons/operations/difference.svg +52 -0
  183. datalab/data/icons/operations/division.svg +139 -0
  184. datalab/data/icons/operations/exp.svg +116 -0
  185. datalab/data/icons/operations/flip_horizontally.svg +69 -0
  186. datalab/data/icons/operations/flip_vertically.svg +74 -0
  187. datalab/data/icons/operations/im.svg +124 -0
  188. datalab/data/icons/operations/integral.svg +50 -0
  189. datalab/data/icons/operations/inverse.svg +143 -0
  190. datalab/data/icons/operations/log10.svg +109 -0
  191. datalab/data/icons/operations/phase.svg +116 -0
  192. datalab/data/icons/operations/power.svg +118 -0
  193. datalab/data/icons/operations/product.svg +124 -0
  194. datalab/data/icons/operations/profile.svg +379 -0
  195. datalab/data/icons/operations/profile_average.svg +399 -0
  196. datalab/data/icons/operations/profile_radial.svg +261 -0
  197. datalab/data/icons/operations/profile_segment.svg +262 -0
  198. datalab/data/icons/operations/quadratic_difference.svg +84 -0
  199. datalab/data/icons/operations/re.svg +124 -0
  200. datalab/data/icons/operations/rotate_left.svg +72 -0
  201. datalab/data/icons/operations/rotate_right.svg +72 -0
  202. datalab/data/icons/operations/signals_to_image.svg +314 -0
  203. datalab/data/icons/operations/sqrt.svg +110 -0
  204. datalab/data/icons/operations/std.svg +124 -0
  205. datalab/data/icons/operations/sum.svg +102 -0
  206. datalab/data/icons/play_demo.svg +9 -0
  207. datalab/data/icons/processing/axis_transform.svg +62 -0
  208. datalab/data/icons/processing/bandpass.svg +79 -0
  209. datalab/data/icons/processing/bandstop.svg +71 -0
  210. datalab/data/icons/processing/binning.svg +126 -0
  211. datalab/data/icons/processing/clip.svg +119 -0
  212. datalab/data/icons/processing/detrending.svg +173 -0
  213. datalab/data/icons/processing/distribute_on_grid.svg +769 -0
  214. datalab/data/icons/processing/edge_detection.svg +46 -0
  215. datalab/data/icons/processing/erase.svg +1 -0
  216. datalab/data/icons/processing/exposure.svg +143 -0
  217. datalab/data/icons/processing/fourier.svg +104 -0
  218. datalab/data/icons/processing/highpass.svg +59 -0
  219. datalab/data/icons/processing/interpolation.svg +71 -0
  220. datalab/data/icons/processing/level_adjustment.svg +70 -0
  221. datalab/data/icons/processing/lowpass.svg +60 -0
  222. datalab/data/icons/processing/morphology.svg +49 -0
  223. datalab/data/icons/processing/noise_addition.svg +114 -0
  224. datalab/data/icons/processing/noise_reduction.svg +38 -0
  225. datalab/data/icons/processing/normalize.svg +84 -0
  226. datalab/data/icons/processing/offset_correction.svg +131 -0
  227. datalab/data/icons/processing/resampling1d.svg +101 -0
  228. datalab/data/icons/processing/resampling2d.svg +240 -0
  229. datalab/data/icons/processing/reset_positions.svg +185 -0
  230. datalab/data/icons/processing/resize.svg +9 -0
  231. datalab/data/icons/processing/reverse_signal_x.svg +171 -0
  232. datalab/data/icons/processing/stability.svg +11 -0
  233. datalab/data/icons/processing/swap_x_y.svg +65 -0
  234. datalab/data/icons/processing/thresholding.svg +63 -0
  235. datalab/data/icons/processing/windowing.svg +45 -0
  236. datalab/data/icons/properties.svg +26 -0
  237. datalab/data/icons/reset.svg +9 -0
  238. datalab/data/icons/restore.svg +40 -0
  239. datalab/data/icons/roi/roi.svg +76 -0
  240. datalab/data/icons/roi/roi_coordinate.svg +78 -0
  241. datalab/data/icons/roi/roi_copy.svg +112 -0
  242. datalab/data/icons/roi/roi_delete.svg +81 -0
  243. datalab/data/icons/roi/roi_export.svg +87 -0
  244. datalab/data/icons/roi/roi_graphical.svg +78 -0
  245. datalab/data/icons/roi/roi_grid.svg +67 -0
  246. datalab/data/icons/roi/roi_ima.svg +188 -0
  247. datalab/data/icons/roi/roi_import.svg +87 -0
  248. datalab/data/icons/roi/roi_new.svg +81 -0
  249. datalab/data/icons/roi/roi_new_circle.svg +95 -0
  250. datalab/data/icons/roi/roi_new_polygon.svg +110 -0
  251. datalab/data/icons/roi/roi_new_rectangle.svg +70 -0
  252. datalab/data/icons/roi/roi_paste.svg +98 -0
  253. datalab/data/icons/roi/roi_sig.svg +124 -0
  254. datalab/data/icons/shapes.svg +134 -0
  255. datalab/data/icons/signal.svg +103 -0
  256. datalab/data/icons/table.svg +85 -0
  257. datalab/data/icons/table_unavailable.svg +102 -0
  258. datalab/data/icons/to_signal.svg +124 -0
  259. datalab/data/icons/tour/next.svg +44 -0
  260. datalab/data/icons/tour/previous.svg +44 -0
  261. datalab/data/icons/tour/rewind.svg +51 -0
  262. datalab/data/icons/tour/stop.svg +47 -0
  263. datalab/data/icons/tour/tour.svg +16 -0
  264. datalab/data/icons/uncheck_all.svg +78 -0
  265. datalab/data/icons/view/curve_antialiasing.svg +50 -0
  266. datalab/data/icons/view/new_window.svg +98 -0
  267. datalab/data/icons/view/refresh-auto.svg +57 -0
  268. datalab/data/icons/view/refresh-manual.svg +51 -0
  269. datalab/data/icons/view/reset_curve_styles.svg +96 -0
  270. datalab/data/icons/view/show_first.svg +55 -0
  271. datalab/data/icons/view/show_titles.svg +46 -0
  272. datalab/data/icons/visualization.svg +51 -0
  273. datalab/data/logo/DataLab-Banner-150.png +0 -0
  274. datalab/data/logo/DataLab-Banner-200.png +0 -0
  275. datalab/data/logo/DataLab-Banner2-100.png +0 -0
  276. datalab/data/logo/DataLab-Splash.png +0 -0
  277. datalab/data/logo/DataLab-watermark.png +0 -0
  278. datalab/data/logo/DataLab.svg +83 -0
  279. datalab/data/tests/reordering_test.h5 +0 -0
  280. datalab/data/tutorials/fabry_perot/fabry-perot1.jpg +0 -0
  281. datalab/data/tutorials/fabry_perot/fabry-perot2.jpg +0 -0
  282. datalab/data/tutorials/laser_beam/TEM00_z_13.jpg +0 -0
  283. datalab/data/tutorials/laser_beam/TEM00_z_18.jpg +0 -0
  284. datalab/data/tutorials/laser_beam/TEM00_z_23.jpg +0 -0
  285. datalab/data/tutorials/laser_beam/TEM00_z_30.jpg +0 -0
  286. datalab/data/tutorials/laser_beam/TEM00_z_35.jpg +0 -0
  287. datalab/data/tutorials/laser_beam/TEM00_z_40.jpg +0 -0
  288. datalab/data/tutorials/laser_beam/TEM00_z_45.jpg +0 -0
  289. datalab/data/tutorials/laser_beam/TEM00_z_50.jpg +0 -0
  290. datalab/data/tutorials/laser_beam/TEM00_z_55.jpg +0 -0
  291. datalab/data/tutorials/laser_beam/TEM00_z_60.jpg +0 -0
  292. datalab/data/tutorials/laser_beam/TEM00_z_65.jpg +0 -0
  293. datalab/data/tutorials/laser_beam/TEM00_z_70.jpg +0 -0
  294. datalab/data/tutorials/laser_beam/TEM00_z_75.jpg +0 -0
  295. datalab/data/tutorials/laser_beam/TEM00_z_80.jpg +0 -0
  296. datalab/env.py +542 -0
  297. datalab/gui/__init__.py +89 -0
  298. datalab/gui/actionhandler.py +1701 -0
  299. datalab/gui/docks.py +473 -0
  300. datalab/gui/h5io.py +150 -0
  301. datalab/gui/macroeditor.py +310 -0
  302. datalab/gui/main.py +2081 -0
  303. datalab/gui/newobject.py +217 -0
  304. datalab/gui/objectview.py +766 -0
  305. datalab/gui/panel/__init__.py +48 -0
  306. datalab/gui/panel/base.py +3254 -0
  307. datalab/gui/panel/image.py +157 -0
  308. datalab/gui/panel/macro.py +607 -0
  309. datalab/gui/panel/signal.py +164 -0
  310. datalab/gui/plothandler.py +800 -0
  311. datalab/gui/processor/__init__.py +84 -0
  312. datalab/gui/processor/base.py +2456 -0
  313. datalab/gui/processor/catcher.py +75 -0
  314. datalab/gui/processor/image.py +1214 -0
  315. datalab/gui/processor/signal.py +755 -0
  316. datalab/gui/profiledialog.py +333 -0
  317. datalab/gui/roieditor.py +633 -0
  318. datalab/gui/roigrideditor.py +208 -0
  319. datalab/gui/settings.py +612 -0
  320. datalab/gui/tour.py +908 -0
  321. datalab/h5/__init__.py +12 -0
  322. datalab/h5/common.py +314 -0
  323. datalab/h5/generic.py +580 -0
  324. datalab/h5/native.py +39 -0
  325. datalab/h5/utils.py +95 -0
  326. datalab/objectmodel.py +640 -0
  327. datalab/plugins/_readme_.txt +9 -0
  328. datalab/plugins/datalab_imageformats.py +175 -0
  329. datalab/plugins/datalab_testdata.py +190 -0
  330. datalab/plugins.py +355 -0
  331. datalab/tests/__init__.py +199 -0
  332. datalab/tests/backbone/__init__.py +1 -0
  333. datalab/tests/backbone/config_unit_test.py +170 -0
  334. datalab/tests/backbone/config_versioning_unit_test.py +34 -0
  335. datalab/tests/backbone/dictlistserial_app_test.py +38 -0
  336. datalab/tests/backbone/errorcatcher_unit_test.py +69 -0
  337. datalab/tests/backbone/errormsgbox_unit_test.py +50 -0
  338. datalab/tests/backbone/execenv_unit.py +262 -0
  339. datalab/tests/backbone/loadtest_gdi.py +147 -0
  340. datalab/tests/backbone/long_callback.py +96 -0
  341. datalab/tests/backbone/main_app_test.py +137 -0
  342. datalab/tests/backbone/memory_leak.py +43 -0
  343. datalab/tests/backbone/procisolation1_unit.py +128 -0
  344. datalab/tests/backbone/procisolation2_unit.py +171 -0
  345. datalab/tests/backbone/procisolation_unit_test.py +22 -0
  346. datalab/tests/backbone/profiling_app.py +27 -0
  347. datalab/tests/backbone/strings_unit_test.py +65 -0
  348. datalab/tests/backbone/title_formatting_unit_test.py +82 -0
  349. datalab/tests/conftest.py +131 -0
  350. datalab/tests/features/__init__.py +1 -0
  351. datalab/tests/features/applauncher/__init__.py +1 -0
  352. datalab/tests/features/applauncher/launcher1_app_test.py +28 -0
  353. datalab/tests/features/applauncher/launcher2_app_test.py +30 -0
  354. datalab/tests/features/common/__init__.py +1 -0
  355. datalab/tests/features/common/add_metadata_app_test.py +134 -0
  356. datalab/tests/features/common/add_metadata_unit_test.py +267 -0
  357. datalab/tests/features/common/annotations_management_unit_test.py +152 -0
  358. datalab/tests/features/common/auto_analysis_recompute_unit_test.py +240 -0
  359. datalab/tests/features/common/createobject_unit_test.py +50 -0
  360. datalab/tests/features/common/geometry_results_app_test.py +135 -0
  361. datalab/tests/features/common/interactive_processing_test.py +1109 -0
  362. datalab/tests/features/common/io_app_test.py +75 -0
  363. datalab/tests/features/common/large_results_app_test.py +187 -0
  364. datalab/tests/features/common/metadata_all_patterns_test.py +103 -0
  365. datalab/tests/features/common/metadata_app_test.py +139 -0
  366. datalab/tests/features/common/metadata_io_unit_test.py +60 -0
  367. datalab/tests/features/common/misc_app_test.py +236 -0
  368. datalab/tests/features/common/multiple_geometry_results_unit_test.py +122 -0
  369. datalab/tests/features/common/multiple_table_results_unit_test.py +64 -0
  370. datalab/tests/features/common/operation_modes_app_test.py +392 -0
  371. datalab/tests/features/common/plot_results_app_test.py +278 -0
  372. datalab/tests/features/common/reorder_app_test.py +75 -0
  373. datalab/tests/features/common/result_deletion_unit_test.py +96 -0
  374. datalab/tests/features/common/result_merged_label_unit_test.py +154 -0
  375. datalab/tests/features/common/result_shape_settings_unit_test.py +223 -0
  376. datalab/tests/features/common/roi_plotitem_unit_test.py +64 -0
  377. datalab/tests/features/common/roieditor_unit_test.py +102 -0
  378. datalab/tests/features/common/save_to_dir_app_test.py +163 -0
  379. datalab/tests/features/common/save_to_dir_unit_test.py +474 -0
  380. datalab/tests/features/common/stat_app_test.py +40 -0
  381. datalab/tests/features/common/stats_tools_unit_test.py +77 -0
  382. datalab/tests/features/common/table_results_app_test.py +52 -0
  383. datalab/tests/features/common/textimport_unit_test.py +131 -0
  384. datalab/tests/features/common/uuid_preservation_test.py +281 -0
  385. datalab/tests/features/common/worker_unit_test.py +402 -0
  386. datalab/tests/features/control/__init__.py +1 -0
  387. datalab/tests/features/control/connect_dialog.py +28 -0
  388. datalab/tests/features/control/embedded1_unit_test.py +304 -0
  389. datalab/tests/features/control/embedded2_unit_test.py +52 -0
  390. datalab/tests/features/control/remoteclient_app_test.py +219 -0
  391. datalab/tests/features/control/remoteclient_unit.py +75 -0
  392. datalab/tests/features/control/simpleclient_unit_test.py +321 -0
  393. datalab/tests/features/hdf5/__init__.py +1 -0
  394. datalab/tests/features/hdf5/h5browser1_unit_test.py +31 -0
  395. datalab/tests/features/hdf5/h5browser2_unit.py +55 -0
  396. datalab/tests/features/hdf5/h5browser_app_test.py +77 -0
  397. datalab/tests/features/hdf5/h5import_app_test.py +25 -0
  398. datalab/tests/features/hdf5/h5importer_app_test.py +34 -0
  399. datalab/tests/features/image/__init__.py +1 -0
  400. datalab/tests/features/image/annotations_app_test.py +28 -0
  401. datalab/tests/features/image/annotations_unit_test.py +80 -0
  402. datalab/tests/features/image/average_app_test.py +46 -0
  403. datalab/tests/features/image/background_dialog_test.py +70 -0
  404. datalab/tests/features/image/blobs_app_test.py +50 -0
  405. datalab/tests/features/image/contour_app_test.py +42 -0
  406. datalab/tests/features/image/contour_fabryperot_app_test.py +51 -0
  407. datalab/tests/features/image/denoise_app_test.py +31 -0
  408. datalab/tests/features/image/distribute_on_grid_app_test.py +95 -0
  409. datalab/tests/features/image/edges_app_test.py +31 -0
  410. datalab/tests/features/image/erase_app_test.py +21 -0
  411. datalab/tests/features/image/fft2d_app_test.py +27 -0
  412. datalab/tests/features/image/flatfield_app_test.py +40 -0
  413. datalab/tests/features/image/geometry_transform_unit_test.py +396 -0
  414. datalab/tests/features/image/imagetools_app_test.py +51 -0
  415. datalab/tests/features/image/imagetools_unit_test.py +27 -0
  416. datalab/tests/features/image/load_app_test.py +73 -0
  417. datalab/tests/features/image/morph_app_test.py +32 -0
  418. datalab/tests/features/image/offsetcorrection_app_test.py +30 -0
  419. datalab/tests/features/image/peak2d_app_test.py +53 -0
  420. datalab/tests/features/image/profile_app_test.py +73 -0
  421. datalab/tests/features/image/profile_dialog_test.py +56 -0
  422. datalab/tests/features/image/roi_app_test.py +98 -0
  423. datalab/tests/features/image/roi_circ_app_test.py +62 -0
  424. datalab/tests/features/image/roi_manipulation_app_test.py +268 -0
  425. datalab/tests/features/image/roigrid_unit_test.py +60 -0
  426. datalab/tests/features/image/side_by_side_app_test.py +52 -0
  427. datalab/tests/features/macro/__init__.py +1 -0
  428. datalab/tests/features/macro/macro_app_test.py +28 -0
  429. datalab/tests/features/macro/macroeditor_unit_test.py +102 -0
  430. datalab/tests/features/signal/__init__.py +1 -0
  431. datalab/tests/features/signal/baseline_dialog_test.py +53 -0
  432. datalab/tests/features/signal/deltax_dialog_unit_test.py +34 -0
  433. datalab/tests/features/signal/fft1d_app_test.py +26 -0
  434. datalab/tests/features/signal/filter_app_test.py +44 -0
  435. datalab/tests/features/signal/fitdialog_unit_test.py +50 -0
  436. datalab/tests/features/signal/interpolation_app_test.py +110 -0
  437. datalab/tests/features/signal/loadbigsignal_app_test.py +80 -0
  438. datalab/tests/features/signal/multiple_rois_unit_test.py +132 -0
  439. datalab/tests/features/signal/pulse_features_app_test.py +118 -0
  440. datalab/tests/features/signal/pulse_features_roi_app_test.py +55 -0
  441. datalab/tests/features/signal/roi_app_test.py +78 -0
  442. datalab/tests/features/signal/roi_manipulation_app_test.py +261 -0
  443. datalab/tests/features/signal/select_xy_cursor_unit_test.py +46 -0
  444. datalab/tests/features/signal/signalpeakdetection_dialog_test.py +33 -0
  445. datalab/tests/features/signal/signals_to_image_app_test.py +98 -0
  446. datalab/tests/features/signal/xarray_compat_app_test.py +128 -0
  447. datalab/tests/features/tour_unit_test.py +22 -0
  448. datalab/tests/features/utilities/__init__.py +1 -0
  449. datalab/tests/features/utilities/installconf_unit_test.py +21 -0
  450. datalab/tests/features/utilities/logview_app_test.py +21 -0
  451. datalab/tests/features/utilities/logview_error.py +24 -0
  452. datalab/tests/features/utilities/logview_unit_test.py +21 -0
  453. datalab/tests/features/utilities/memstatus_app_test.py +42 -0
  454. datalab/tests/features/utilities/settings_unit_test.py +88 -0
  455. datalab/tests/scenarios/__init__.py +1 -0
  456. datalab/tests/scenarios/beautiful_app.py +121 -0
  457. datalab/tests/scenarios/common.py +463 -0
  458. datalab/tests/scenarios/demo.py +212 -0
  459. datalab/tests/scenarios/example_app_test.py +47 -0
  460. datalab/tests/scenarios/scenario_h5_app_test.py +75 -0
  461. datalab/tests/scenarios/scenario_ima1_app_test.py +34 -0
  462. datalab/tests/scenarios/scenario_ima2_app_test.py +34 -0
  463. datalab/tests/scenarios/scenario_mac_app_test.py +58 -0
  464. datalab/tests/scenarios/scenario_sig1_app_test.py +36 -0
  465. datalab/tests/scenarios/scenario_sig2_app_test.py +35 -0
  466. datalab/utils/__init__.py +1 -0
  467. datalab/utils/conf.py +304 -0
  468. datalab/utils/dephash.py +105 -0
  469. datalab/utils/qthelpers.py +633 -0
  470. datalab/utils/strings.py +34 -0
  471. datalab/utils/tests.py +0 -0
  472. datalab/widgets/__init__.py +1 -0
  473. datalab/widgets/connection.py +138 -0
  474. datalab/widgets/filedialog.py +91 -0
  475. datalab/widgets/fileviewer.py +84 -0
  476. datalab/widgets/fitdialog.py +788 -0
  477. datalab/widgets/h5browser.py +1048 -0
  478. datalab/widgets/imagebackground.py +111 -0
  479. datalab/widgets/instconfviewer.py +175 -0
  480. datalab/widgets/logviewer.py +80 -0
  481. datalab/widgets/signalbaseline.py +90 -0
  482. datalab/widgets/signalcursor.py +208 -0
  483. datalab/widgets/signaldeltax.py +151 -0
  484. datalab/widgets/signalpeak.py +199 -0
  485. datalab/widgets/status.py +249 -0
  486. datalab/widgets/textimport.py +786 -0
  487. datalab/widgets/warningerror.py +223 -0
  488. datalab/widgets/wizard.py +286 -0
  489. datalab_platform-1.0.1.dist-info/METADATA +121 -0
  490. datalab_platform-1.0.1.dist-info/RECORD +494 -0
  491. datalab_platform-0.0.1.dev0.dist-info/METADATA +0 -67
  492. datalab_platform-0.0.1.dev0.dist-info/RECORD +0 -7
  493. {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/WHEEL +0 -0
  494. {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/entry_points.txt +0 -0
  495. {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/licenses/LICENSE +0 -0
  496. {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg role="img" focusable="false" aria-hidden="true" viewBox="0 0 14 14" version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg">
4
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.547874" width="0.53186357" height="12.584304" x="6.7340684" y="0.70784807" />
5
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.54642" width="0.53186357" height="12.5176" x="6.7340684" y="-13.258801" transform="rotate(90)" />
6
+ <!-- Random noise line representing normal distribution (concentrated around center) -->
7
+ <polyline points="1.5,5 2,7 2.5,8 2.8,9 3,6.5 3.5,7.5 4,7 4.5,6.8 5,7.2 5.5,7 6,7.3 6.5,6.9 7.5,7.1 8,6.8 8.5,7.2 9,7 9.5,6.5 10,7.5 10.5,6.8 11,8 11.2,5.5 11.5,7.2 12,6 12.3,8.5" fill="none" stroke="#1f77b4" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
8
+ </svg>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
3
+ <!-- Gray axes -->
4
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53"/>
5
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53"/>
6
+
7
+ <!-- Random noise line representing Poisson distribution (skewed to left, more concentrated at start) -->
8
+ <polyline points="2,4 2.5,5.5 3,3.5 3.5,6 4,4.5 4.5,5 5,7 5.5,4.8 6,6.2 6.5,5.5 7,6.5 7.5,6.8 8,7.5 8.5,8 9,8.5 9.5,9.2 10,9.8 10.5,10.5 11,11 11.5,11.5 12,10 12.5,11.8" fill="none" stroke="#ff7f0e" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
9
+ </svg>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg role="img" focusable="false" aria-hidden="true" viewBox="0 0 14 14" version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg">
4
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.547874" width="0.53186357" height="12.584304" x="6.7340684" y="0.70784807" />
5
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.54642" width="0.53186357" height="12.5176" x="6.7340684" y="-13.258801" transform="rotate(90)" />
6
+ <!-- Random noise line representing uniform distribution (evenly spread) -->
7
+ <polyline points="1.5,3 2,10 2.5,5.5 3,9 3.5,4 4,8 4.5,6 5,11 5.5,3.5 6,9.5 6.5,5 7.5,10.5 8,4.5 8.5,8.5 9,6.5 9.5,11.5 10,3.8 10.5,9.8 11,5.8 11.5,8.2 12,7 12.5,11" fill="none" stroke="#2ca02c" stroke-width="0.35" stroke-linecap="round" stroke-linejoin="round"/>
8
+ </svg>
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ role="img"
4
+ focusable="false"
5
+ aria-hidden="true"
6
+ viewBox="0 0 14 14"
7
+ version="1.1"
8
+ id="svg12"
9
+ sodipodi:docname="1d-zero.svg"
10
+ inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ xmlns:svg="http://www.w3.org/2000/svg">
15
+ <defs
16
+ id="defs16" />
17
+ <sodipodi:namedview
18
+ id="namedview14"
19
+ pagecolor="#ffffff"
20
+ bordercolor="#000000"
21
+ borderopacity="1"
22
+ inkscape:showpageshadow="2"
23
+ inkscape:pageopacity="1"
24
+ inkscape:pagecheckerboard="0"
25
+ inkscape:deskcolor="#d1d1d1"
26
+ showgrid="false"
27
+ inkscape:zoom="42.274884"
28
+ inkscape:cx="5.7362665"
29
+ inkscape:cy="8.5038672"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="1009"
32
+ inkscape:window-x="-8"
33
+ inkscape:window-y="-8"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="svg12" />
36
+ <rect
37
+ style="fill:#696969;fill-opacity:1;stroke-width:0.547874"
38
+ id="rect28089"
39
+ width="0.53186357"
40
+ height="12.584304"
41
+ x="6.7340684"
42
+ y="0.70784807" />
43
+ <rect
44
+ style="fill:#696969;fill-opacity:1;stroke-width:0.54642"
45
+ id="rect28089-7"
46
+ width="0.53186357"
47
+ height="12.5176"
48
+ x="6.7340684"
49
+ y="-13.258801"
50
+ transform="rotate(90)" />
51
+ <path
52
+ inkscape:connector-curvature="0"
53
+ style="display:inline;fill:none;stroke:#da251d;stroke-width:0.35;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
54
+ id="polyline5583"
55
+ d="M 0.6472469,7 H 13.352753"
56
+ sodipodi:nodetypes="cc" />
57
+ </svg>
@@ -0,0 +1,56 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="14"
4
+ height="14"
5
+ viewBox="0 0 14 14"
6
+ version="1.1"
7
+ xmlns="http://www.w3.org/2000/svg">
8
+ <rect
9
+ width="10.5"
10
+ height="10.5"
11
+ x="1.75"
12
+ y="1.75" fill="#440154" fill-opacity="1" stroke="none" />
13
+ <!-- Gray axes -->
14
+ <line
15
+ x1="7"
16
+ y1="1"
17
+ x2="7"
18
+ y2="13"
19
+ stroke="#696969"
20
+ stroke-width="0.53" />
21
+ <line
22
+ x1="1"
23
+ y1="7"
24
+ x2="13"
25
+ y2="7"
26
+ stroke="#696969"
27
+ stroke-width="0.53" />
28
+ <!-- 2D Gaussian represented as concentric circles (peak at center) -->
29
+ <circle
30
+ cx="7"
31
+ cy="7"
32
+ r="4.5"
33
+ fill="#2b748e"
34
+ fill-opacity="1"
35
+ stroke="#2b748e"
36
+ stroke-opacity="1"
37
+ stroke-width="0.35" />
38
+ <circle
39
+ cx="7"
40
+ cy="7"
41
+ r="3"
42
+ fill="#45c06f"
43
+ fill-opacity="1"
44
+ stroke="#45c06f"
45
+ stroke-opacity="1"
46
+ stroke-width="0.35" />
47
+ <circle
48
+ cx="7"
49
+ cy="7"
50
+ r="1.5"
51
+ fill="#eee51c"
52
+ fill-opacity="1"
53
+ stroke="#eee51c"
54
+ stroke-opacity="1"
55
+ stroke-width="0.35" />
56
+ </svg>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg25" sodipodi:docname="2d-normal.svg" xml:space="preserve" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs25" />
8
+ <sodipodi:namedview id="namedview25" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="5.9417596" inkscape:cy="7.8674102" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg25" />
9
+ <rect style="fill:#440154;fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3" width="10.5" height="10.5" x="1.75" y="1.75" />
10
+ <!-- Gray axes -->
11
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
12
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
13
+ <!-- Random noise pattern (2D - scattered dots) --> <!-- More scattered across y-axis -->
14
+ <circle cx="2.5999999" cy="6.6000004" r="0.22" opacity="1" id="circle2" fill="#a8db34" fill-opacity="1" />
15
+ <circle cx="2.9000001" cy="7.6000004" r="0.22" opacity="1" id="circle3" fill="#a8db34" fill-opacity="1" />
16
+ <circle cx="3.5999999" cy="6.9000006" r="0.22" opacity="1" id="circle4" fill="#a8db34" fill-opacity="1" />
17
+ <circle cx="3.9000001" cy="7.3000002" r="0.22" opacity="1" id="circle5" fill="#a8db34" fill-opacity="1" />
18
+ <circle cx="4.3999996" cy="7.1000004" r="0.22" opacity="1" id="circle6" fill="#a8db34" fill-opacity="1" />
19
+ <circle cx="4.8999996" cy="6.8000002" r="0.22" opacity="1" id="circle7" fill="#a8db34" fill-opacity="1" />
20
+ <circle cx="5.3999996" cy="7.4000006" r="0.22" opacity="1" id="circle8" fill="#a8db34" fill-opacity="1" />
21
+ <circle cx="5.8999996" cy="7.2000003" r="0.22" opacity="1" id="circle9" fill="#a8db34" fill-opacity="1" />
22
+ <circle cx="6.3999996" cy="7.0000005" r="0.22" opacity="1" id="circle10" fill="#a8db34" fill-opacity="1" />
23
+ <circle cx="7.3999996" cy="7.3000002" r="0.22" opacity="1" id="circle11" fill="#a8db34" fill-opacity="1" />
24
+ <circle cx="7.8999996" cy="6.9000006" r="0.22" opacity="1" id="circle12" fill="#a8db34" fill-opacity="1" />
25
+ <circle cx="8.6000004" cy="7.5000005" r="0.22" opacity="1" id="circle13" fill="#a8db34" fill-opacity="1" />
26
+ <circle cx="9.1000004" cy="7.1000004" r="0.22" opacity="1" id="circle14" fill="#a8db34" fill-opacity="1" />
27
+ <circle cx="9.3999996" cy="6.7000003" r="0.22" opacity="1" id="circle15" fill="#a8db34" fill-opacity="1" />
28
+ <circle cx="10.1" cy="7.6000004" r="0.22" opacity="1" id="circle16" fill="#a8db34" fill-opacity="1" />
29
+ <circle cx="10.6" cy="7.2000003" r="0.22" opacity="1" id="circle17" fill="#a8db34" fill-opacity="1" />
30
+ <circle cx="11.1" cy="7.0000005" r="0.22" opacity="1" id="circle18" fill="#a8db34" fill-opacity="1" />
31
+ <circle cx="11.6" cy="7.4000006" r="0.22" opacity="1" id="circle19" fill="#a8db34" fill-opacity="1" />
32
+ <circle cx="3.0999999" cy="5.6000004" r="0.22" opacity="1" id="circle20" fill="#a8db34" fill-opacity="1" />
33
+ <circle cx="4.3999996" cy="8.6000004" r="0.22" opacity="1" id="circle21" fill="#a8db34" fill-opacity="1" />
34
+ <circle cx="6.1000004" cy="5.1000004" r="0.22" opacity="1" id="circle22" fill="#a8db34" fill-opacity="1" />
35
+ <circle cx="7.6000004" cy="9.1000004" r="0.22" opacity="1" id="circle23" fill="#a8db34" fill-opacity="1" />
36
+ <circle cx="9.1000004" cy="5.6000004" r="0.22" opacity="1" id="circle24" fill="#a8db34" fill-opacity="1" />
37
+ <circle cx="10.6" cy="8.6000004" r="0.22" opacity="1" id="circle25" fill="#a8db34" fill-opacity="1" />
38
+ </svg>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg24" sodipodi:docname="2d-poisson.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs24" />
8
+ <sodipodi:namedview id="namedview24" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="6.2887237" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg24" />
9
+ <rect style="fill:#440154;fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3" width="10.5" height="10.5" x="1.75" y="1.75" />
10
+ <!-- Gray axes -->
11
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
12
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
13
+ <!-- Poisson noise pattern (2D - more variation, wider spread) -->
14
+ <circle cx="2.5999999" cy="4.1000004" r="0.22" opacity="1" id="circle2" fill="#a8db34" fill-opacity="1" />
15
+ <circle cx="3.0999999" cy="9.1000004" r="0.22" opacity="1" id="circle3" fill="#a8db34" fill-opacity="1" />
16
+ <circle cx="3.5999999" cy="6.1000004" r="0.22" opacity="1" id="circle4" fill="#a8db34" fill-opacity="1" />
17
+ <circle cx="4.1000004" cy="8.6000004" r="0.22" opacity="1" id="circle5" fill="#a8db34" fill-opacity="1" />
18
+ <circle cx="4.6000004" cy="5.6000004" r="0.22" opacity="1" id="circle6" fill="#a8db34" fill-opacity="1" />
19
+ <circle cx="5.1000004" cy="7.6000004" r="0.22" opacity="1" id="circle7" fill="#a8db34" fill-opacity="1" />
20
+ <circle cx="5.6000004" cy="6.6000004" r="0.22" opacity="1" id="circle8" fill="#a8db34" fill-opacity="1" />
21
+ <circle cx="6.1000004" cy="9.6000004" r="0.22" opacity="1" id="circle9" fill="#a8db34" fill-opacity="1" />
22
+ <circle cx="6.6000004" cy="4.6000004" r="0.22" opacity="1" id="circle10" fill="#a8db34" fill-opacity="1" />
23
+ <circle cx="7.6000004" cy="8.1000004" r="0.22" opacity="1" id="circle11" fill="#a8db34" fill-opacity="1" />
24
+ <circle cx="8.1000004" cy="6.1000004" r="0.22" opacity="1" id="circle12" fill="#a8db34" fill-opacity="1" />
25
+ <circle cx="8.6000004" cy="10.1" r="0.22" opacity="1" id="circle13" fill="#a8db34" fill-opacity="1" />
26
+ <circle cx="9.1000004" cy="5.1000004" r="0.22" opacity="1" id="circle14" fill="#a8db34" fill-opacity="1" />
27
+ <circle cx="9.6000004" cy="7.6000004" r="0.22" opacity="1" id="circle15" fill="#a8db34" fill-opacity="1" />
28
+ <circle cx="10.1" cy="9.1000004" r="0.22" opacity="1" id="circle16" fill="#a8db34" fill-opacity="1" />
29
+ <circle cx="10.6" cy="6.6000004" r="0.22" opacity="1" id="circle17" fill="#a8db34" fill-opacity="1" />
30
+ <circle cx="11.1" cy="8.6000004" r="0.22" opacity="1" id="circle18" fill="#a8db34" fill-opacity="1" />
31
+ <circle cx="11.6" cy="5.6000004" r="0.22" opacity="1" id="circle19" fill="#a8db34" fill-opacity="1" />
32
+ <!-- Additional scattered dots -->
33
+ <circle cx="3.0999999" cy="3.5999999" r="0.22" opacity="1" id="circle20" fill="#a8db34" fill-opacity="1" />
34
+ <circle cx="5.1000004" cy="10.6" r="0.22" opacity="1" id="circle21" fill="#a8db34" fill-opacity="1" />
35
+ <circle cx="7.1000004" cy="3.0999999" r="0.22" opacity="1" id="circle22" fill="#a8db34" fill-opacity="1" />
36
+ <circle cx="9.1000004" cy="11.1" r="0.22" opacity="1" id="circle23" fill="#a8db34" fill-opacity="1" />
37
+ <circle cx="11.1" cy="4.1000004" r="0.22" opacity="1" id="circle24" fill="#a8db34" fill-opacity="1" />
38
+ </svg>
@@ -0,0 +1,90 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="14"
4
+ height="14"
5
+ viewBox="0 0 14 14"
6
+ version="1.1"
7
+ id="svg10"
8
+ sodipodi:docname="ramp2d.svg"
9
+ inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns:xlink="http://www.w3.org/1999/xlink"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ xmlns:svg="http://www.w3.org/2000/svg">
15
+ <defs
16
+ id="defs10">
17
+ <linearGradient
18
+ id="linearGradient10"
19
+ inkscape:collect="always">
20
+ <stop
21
+ style="stop-color:#440154;stop-opacity:1;"
22
+ offset="0"
23
+ id="stop10" />
24
+ <stop
25
+ style="stop-color:#2b748e;stop-opacity:1;"
26
+ offset="0.3541384"
27
+ id="stop13" />
28
+ <stop
29
+ style="stop-color:#45c06f;stop-opacity:1;"
30
+ offset="0.72184533"
31
+ id="stop12" />
32
+ <stop
33
+ style="stop-color:#eee51c;stop-opacity:1;"
34
+ offset="1"
35
+ id="stop11" />
36
+ </linearGradient>
37
+ <linearGradient
38
+ inkscape:collect="always"
39
+ xlink:href="#linearGradient10"
40
+ id="linearGradient11"
41
+ x1="1.9950434"
42
+ y1="2.0297399"
43
+ x2="12.004956"
44
+ y2="12.022305"
45
+ gradientUnits="userSpaceOnUse" />
46
+ </defs>
47
+ <sodipodi:namedview
48
+ id="namedview10"
49
+ pagecolor="#505050"
50
+ bordercolor="#ffffff"
51
+ borderopacity="1"
52
+ inkscape:showpageshadow="0"
53
+ inkscape:pageopacity="0"
54
+ inkscape:pagecheckerboard="1"
55
+ inkscape:deskcolor="#505050"
56
+ inkscape:zoom="57.642857"
57
+ inkscape:cx="7"
58
+ inkscape:cy="7"
59
+ inkscape:window-width="1920"
60
+ inkscape:window-height="1009"
61
+ inkscape:window-x="-8"
62
+ inkscape:window-y="-8"
63
+ inkscape:window-maximized="1"
64
+ inkscape:current-layer="svg10" />
65
+ <rect
66
+ style="fill:url(#linearGradient11);fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none"
67
+ id="rect3"
68
+ width="10.5"
69
+ height="10.5"
70
+ x="1.75"
71
+ y="1.75" />
72
+ <!-- Gray axes -->
73
+ <line
74
+ x1="7"
75
+ y1="1"
76
+ x2="7"
77
+ y2="13"
78
+ stroke="#696969"
79
+ stroke-width="0.53"
80
+ id="line1" />
81
+ <line
82
+ x1="1"
83
+ y1="7"
84
+ x2="13"
85
+ y2="7"
86
+ stroke="#696969"
87
+ stroke-width="0.53"
88
+ id="line2" />
89
+ <!-- Diagonal ramp (gradient from bottom-left to top-right) -->
90
+ </svg>
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="14"
4
+ height="14"
5
+ viewBox="0 0 14 14"
6
+ version="1.1"
7
+ id="svg7"
8
+ xmlns="http://www.w3.org/2000/svg">
9
+ <rect
10
+ id="rect3"
11
+ width="10.5"
12
+ height="10.5"
13
+ x="1.75"
14
+ y="1.75" fill="#440154" fill-opacity="1" stroke="none" stroke-width="1.2228" stroke-dasharray="none" />
15
+ <!-- Gray axes -->
16
+ <line
17
+ x1="7"
18
+ y1="1"
19
+ x2="7"
20
+ y2="13"
21
+ stroke="#696969"
22
+ stroke-width="0.53"
23
+ id="line1" />
24
+ <line
25
+ x1="1"
26
+ y1="7"
27
+ x2="13"
28
+ y2="7"
29
+ stroke="#696969"
30
+ stroke-width="0.53"
31
+ id="line2" />
32
+ <!-- 2D sinc pattern (concentric rings with decreasing amplitude) -->
33
+ <circle
34
+ cx="7"
35
+ cy="7"
36
+ r="5"
37
+ stroke-width="0.35"
38
+ opacity="1"
39
+ id="circle2" stroke="#45c06f" stroke-opacity="1" fill="#45c06f" fill-opacity="1" />
40
+ <circle
41
+ cx="7"
42
+ cy="7"
43
+ r="3.5"
44
+ stroke-width="0.35"
45
+ opacity="1"
46
+ id="circle3" fill="#2b748e" fill-opacity="1" stroke="#2b748e" stroke-opacity="1" />
47
+ <circle
48
+ cx="7"
49
+ cy="7"
50
+ r="2.3"
51
+ stroke-width="0.35"
52
+ opacity="1"
53
+ id="circle4" stroke="#45c06f" stroke-opacity="1" fill="#45c06f" fill-opacity="1" />
54
+ <circle
55
+ cx="7"
56
+ cy="7"
57
+ r="1.3"
58
+ stroke-width="0.35"
59
+ opacity="1"
60
+ id="circle5" stroke="#eee51c" stroke-opacity="1" fill="#eee51c" fill-opacity="1" />
61
+ <!-- Inner cross pattern to show oscillation -->
62
+ </svg>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg24" sodipodi:docname="2d-uniform.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs24" />
8
+ <sodipodi:namedview id="namedview24" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="6.5662949" inkscape:cy="7.7980174" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg24" />
9
+ <rect style="fill:#440154;fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3" width="10.5" height="10.5" x="1.75" y="1.75" />
10
+ <!-- Gray axes -->
11
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
12
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
13
+ <!-- Uniform noise pattern (2D - evenly distributed) -->
14
+ <path id="circle2" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 2.82,3.1 A 0.22,0.22 0 0 1 2.6,3.32 0.22,0.22 0 0 1 2.38,3.1 0.22,0.22 0 0 1 2.6,2.88 0.22,0.22 0 0 1 2.82,3.1 Z" />
15
+ <path id="circle3" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 3.32,9.6 A 0.22,0.22 0 0 1 3.1,9.82 0.22,0.22 0 0 1 2.88,9.6 0.22,0.22 0 0 1 3.1,9.38 0.22,0.22 0 0 1 3.32,9.6 Z" />
16
+ <path id="circle4" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 3.82,6.1 A 0.22,0.22 0 0 1 3.6,6.32 0.22,0.22 0 0 1 3.38,6.1 0.22,0.22 0 0 1 3.6,5.88 0.22,0.22 0 0 1 3.82,6.1 Z" />
17
+ <path id="circle5" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 4.32,11.1 A 0.22,0.22 0 0 1 4.1,11.32 0.22,0.22 0 0 1 3.88,11.1 0.22,0.22 0 0 1 4.1,10.88 0.22,0.22 0 0 1 4.32,11.1 Z" />
18
+ <path id="circle6" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 4.82,4.6 A 0.22,0.22 0 0 1 4.6,4.82 0.22,0.22 0 0 1 4.38,4.6 0.22,0.22 0 0 1 4.6,4.38 0.22,0.22 0 0 1 4.82,4.6 Z" />
19
+ <path id="circle7" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 5.32,8.1 A 0.22,0.22 0 0 1 5.1,8.32 0.22,0.22 0 0 1 4.88,8.1 0.22,0.22 0 0 1 5.1,7.88 0.22,0.22 0 0 1 5.32,8.1 Z" />
20
+ <path id="circle8" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 5.82,5.6 A 0.22,0.22 0 0 1 5.6,5.82 0.22,0.22 0 0 1 5.38,5.6 0.22,0.22 0 0 1 5.6,5.38 0.22,0.22 0 0 1 5.82,5.6 Z" />
21
+ <path id="circle9" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 6.32,10.1 A 0.22,0.22 0 0 1 6.1,10.32 0.22,0.22 0 0 1 5.88,10.1 0.22,0.22 0 0 1 6.1,9.88 0.22,0.22 0 0 1 6.32,10.1 Z" />
22
+ <path id="circle10" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 6.82,3.6 A 0.22,0.22 0 0 1 6.6,3.82 0.22,0.22 0 0 1 6.38,3.6 0.22,0.22 0 0 1 6.6,3.38 0.22,0.22 0 0 1 6.82,3.6 Z" />
23
+ <path id="circle11" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 7.82,8.6 A 0.22,0.22 0 0 1 7.6,8.82 0.22,0.22 0 0 1 7.38,8.6 0.22,0.22 0 0 1 7.6,8.38 0.22,0.22 0 0 1 7.82,8.6 Z" />
24
+ <path id="circle12" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 8.32,5.1 A 0.22,0.22 0 0 1 8.1,5.32 0.22,0.22 0 0 1 7.88,5.1 0.22,0.22 0 0 1 8.1,4.88 0.22,0.22 0 0 1 8.32,5.1 Z" />
25
+ <path id="circle13" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 8.82,10.6 A 0.22,0.22 0 0 1 8.6,10.82 0.22,0.22 0 0 1 8.38,10.6 0.22,0.22 0 0 1 8.6,10.38 0.22,0.22 0 0 1 8.82,10.6 Z" />
26
+ <path id="circle14" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 9.32,6.6 A 0.22,0.22 0 0 1 9.1,6.82 0.22,0.22 0 0 1 8.88,6.6 0.22,0.22 0 0 1 9.1,6.38 0.22,0.22 0 0 1 9.32,6.6 Z" />
27
+ <path id="circle15" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 9.82,4.1 A 0.22,0.22 0 0 1 9.6,4.32 0.22,0.22 0 0 1 9.38,4.1 0.22,0.22 0 0 1 9.6,3.88 0.22,0.22 0 0 1 9.82,4.1 Z" />
28
+ <path id="circle16" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 10.32,9.1 A 0.22,0.22 0 0 1 10.1,9.32 0.22,0.22 0 0 1 9.88,9.1 0.22,0.22 0 0 1 10.1,8.88 0.22,0.22 0 0 1 10.32,9.1 Z" />
29
+ <path id="circle17" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 10.82,7.1 A 0.22,0.22 0 0 1 10.6,7.32 0.22,0.22 0 0 1 10.38,7.1 0.22,0.22 0 0 1 10.6,6.88 0.22,0.22 0 0 1 10.82,7.1 Z" />
30
+ <path id="circle18" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 11.32,11.6 A 0.22,0.22 0 0 1 11.1,11.82 0.22,0.22 0 0 1 10.88,11.6 0.22,0.22 0 0 1 11.1,11.38 0.22,0.22 0 0 1 11.32,11.6 Z" />
31
+ <path id="circle19" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 11.82,5.6 A 0.22,0.22 0 0 1 11.6,5.82 0.22,0.22 0 0 1 11.38,5.6 0.22,0.22 0 0 1 11.6,5.38 0.22,0.22 0 0 1 11.82,5.6 Z" />
32
+ <!-- Additional even distribution -->
33
+ <path id="circle20" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 3.82,8.6 A 0.22,0.22 0 0 1 3.6,8.82 0.22,0.22 0 0 1 3.38,8.6 0.22,0.22 0 0 1 3.6,8.38 0.22,0.22 0 0 1 3.82,8.6 Z" />
34
+ <path id="circle21" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 5.82,11.6 A 0.22,0.22 0 0 1 5.6,11.82 0.22,0.22 0 0 1 5.38,11.6 0.22,0.22 0 0 1 5.6,11.38 0.22,0.22 0 0 1 5.82,11.6 Z" />
35
+ <path id="circle22" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 7.32,4.6 A 0.22,0.22 0 0 1 7.1,4.82 0.22,0.22 0 0 1 6.88,4.6 0.22,0.22 0 0 1 7.1,4.38 0.22,0.22 0 0 1 7.32,4.6 Z" />
36
+ <path id="circle23" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 9.32,9.6 A 0.22,0.22 0 0 1 9.1,9.82 0.22,0.22 0 0 1 8.88,9.6 0.22,0.22 0 0 1 9.1,9.38 0.22,0.22 0 0 1 9.32,9.6 Z" />
37
+ <path id="circle24" style="opacity:1;fill:#a8db34;stroke-width:1.83332;paint-order:stroke fill markers" d="M 11.32,3.1 A 0.22,0.22 0 0 1 11.1,3.32 0.22,0.22 0 0 1 10.88,3.1 0.22,0.22 0 0 1 11.1,2.88 0.22,0.22 0 0 1 11.32,3.1 Z" />
38
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg3" sodipodi:docname="2d-zero.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)" xml:space="preserve"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs3" />
8
+ <sodipodi:namedview id="namedview3" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="7" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg3" />
9
+ <rect style="fill:#440154;fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3" width="10.5" height="10.5" x="1.75" y="1.75" />
10
+ <!-- Gray axes -->
11
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
12
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
13
+ <!-- Flat horizontal line at zero (middle) --></svg>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg19" sodipodi:docname="checkerboard.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs19" />
8
+ <sodipodi:namedview id="namedview19" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="7" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg19" />
9
+ <rect style="fill:#440154;fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3-9" width="10.5" height="10.5" x="1.75" y="1.75" />
10
+ <!-- Gray axes -->
11
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
12
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
13
+ <!-- Checkerboard pattern (8x8 grid) -->
14
+ <rect x="1.75" y="1.75" width="1.5" height="1.5" id="rect2" fill="#a8db34" fill-opacity="1" />
15
+ <rect x="4.75" y="1.75" width="1.5" height="1.5" id="rect3" fill="#a8db34" fill-opacity="1" />
16
+ <rect x="7.75" y="1.75" width="1.5" height="1.5" id="rect4" fill="#a8db34" fill-opacity="1" />
17
+ <rect x="10.75" y="1.75" width="1.5" height="1.5" id="rect5" fill="#a8db34" fill-opacity="1" />
18
+ <rect x="3.25" y="3.25" width="1.5" height="1.5" id="rect6" fill="#a8db34" fill-opacity="1" />
19
+ <rect x="6.25" y="3.25" width="1.5" height="1.5" id="rect7" fill="#a8db34" fill-opacity="1" />
20
+ <rect x="9.25" y="3.25" width="1.5" height="1.5" id="rect8" fill="#a8db34" fill-opacity="1" />
21
+ <rect x="1.75" y="4.75" width="1.5" height="1.5" id="rect9" fill="#a8db34" fill-opacity="1" />
22
+ <rect x="4.75" y="4.75" width="1.5" height="1.5" id="rect10" fill="#a8db34" fill-opacity="1" />
23
+ <rect x="7.75" y="4.75" width="1.5" height="1.5" id="rect11" fill="#a8db34" fill-opacity="1" />
24
+ <rect x="10.75" y="4.75" width="1.5" height="1.5" id="rect12" fill="#a8db34" fill-opacity="1" />
25
+ <rect x="3.25" y="6.25" width="1.5" height="1.5" id="rect13" fill="#a8db34" fill-opacity="1" />
26
+ <rect x="6.25" y="6.25" width="1.5" height="1.5" id="rect14" fill="#a8db34" fill-opacity="1" />
27
+ <rect x="9.25" y="6.25" width="1.5" height="1.5" id="rect15" fill="#a8db34" fill-opacity="1" />
28
+ <rect x="1.75" y="7.75" width="1.5" height="1.5" id="rect16" fill="#a8db34" fill-opacity="1" />
29
+ <rect x="4.75" y="7.75" width="1.5" height="1.5" id="rect17" fill="#a8db34" fill-opacity="1" />
30
+ <rect x="7.75" y="7.75" width="1.5" height="1.5" id="rect18" fill="#a8db34" fill-opacity="1" />
31
+ <rect x="10.75" y="7.75" width="1.5" height="1.5" id="rect19" fill="#a8db34" fill-opacity="1" />
32
+ <rect x="3.25" y="9.25" width="1.5" height="1.5" id="rect6-7" fill="#a8db34" fill-opacity="1" />
33
+ <rect x="6.25" y="9.25" width="1.5" height="1.5" id="rect7-6" fill="#a8db34" fill-opacity="1" />
34
+ <rect x="9.25" y="9.25" width="1.5" height="1.5" id="rect8-1" fill="#a8db34" fill-opacity="1" />
35
+ <rect x="1.75" y="10.75" width="1.5" height="1.5" id="rect9-8" fill="#a8db34" fill-opacity="1" />
36
+ <rect x="4.75" y="10.75" width="1.5" height="1.5" id="rect10-9" fill="#a8db34" fill-opacity="1" />
37
+ <rect x="7.75" y="10.75" width="1.5" height="1.5" id="rect11-2" fill="#a8db34" fill-opacity="1" />
38
+ <rect x="10.75" y="10.75" width="1.5" height="1.5" id="rect12-7" fill="#a8db34" fill-opacity="1" />
39
+ </svg>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg role="img" focusable="false" aria-hidden="true" viewBox="0 0 14 14" version="1.1" id="svg2" sodipodi:docname="cosine.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs2" />
8
+ <sodipodi:namedview id="namedview2" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="7" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2" />
9
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.547874" width="0.53186357" height="12.584304" x="6.7340684" y="0.70784807" id="rect1" />
10
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.54642" width="0.53186357" height="12.5176" x="6.7340684" y="-13.258801" transform="rotate(90)" id="rect2" />
11
+ <path style="fill:none;stroke:#00cc99;stroke-width:0.35;stroke-linejoin:round" d="M 1.9714994,3.4225527 C 2.7854619,6.1739221 3.0955621,8.3444602 4.2,11 c 0.6,1 1.3,1.5 2,1 0.6,-0.5 1,-2 1.6,-3.5 C 8.5,6.5 8.8612144,4.4826518 9.5,3 10.138786,1.5173482 10.571113,1.5261487 11.286741,2.9857497 12.002369,4.4453507 12.257125,5 13,7" id="path2" sodipodi:nodetypes="cccczzc" />
12
+ </svg>
@@ -0,0 +1,55 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ role="img"
4
+ focusable="false"
5
+ aria-hidden="true"
6
+ viewBox="0 0 14 14"
7
+ version="1.1"
8
+ id="svg2"
9
+ sodipodi:docname="exponential.svg"
10
+ inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ xmlns:svg="http://www.w3.org/2000/svg">
15
+ <defs
16
+ id="defs2" />
17
+ <sodipodi:namedview
18
+ id="namedview2"
19
+ pagecolor="#505050"
20
+ bordercolor="#ffffff"
21
+ borderopacity="1"
22
+ inkscape:showpageshadow="0"
23
+ inkscape:pageopacity="0"
24
+ inkscape:pagecheckerboard="1"
25
+ inkscape:deskcolor="#505050"
26
+ inkscape:zoom="57.642857"
27
+ inkscape:cx="7"
28
+ inkscape:cy="7"
29
+ inkscape:window-width="1920"
30
+ inkscape:window-height="1009"
31
+ inkscape:window-x="-8"
32
+ inkscape:window-y="-8"
33
+ inkscape:window-maximized="1"
34
+ inkscape:current-layer="svg2" />
35
+ <rect
36
+ style="fill:#696969;fill-opacity:1;stroke-width:0.547874"
37
+ width="0.53186357"
38
+ height="12.584304"
39
+ x="6.7340684"
40
+ y="0.70784807"
41
+ id="rect1" />
42
+ <rect
43
+ style="fill:#696969;fill-opacity:1;stroke-width:0.54642"
44
+ width="0.53186357"
45
+ height="12.5176"
46
+ x="11.727868"
47
+ y="-13.258801"
48
+ transform="rotate(90)"
49
+ id="rect2" />
50
+ <path
51
+ style="fill:none;stroke:#cc3300;stroke-width:0.35;stroke-linejoin:round"
52
+ d="m 10.420444,2.5 c -1.1389186,3.2572581 -1.9638764,7.0192839 -5.9999996,9 -0.5,0.2 -1,0.3 -1.5,0.35 -0.5,0.05 -1,0.07 -1.5,0.1"
53
+ id="path2"
54
+ sodipodi:nodetypes="ccsc" />
55
+ </svg>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg role="img" focusable="false" aria-hidden="true" viewBox="0 0 14 14" version="1.1" id="svg2" sodipodi:docname="gaussian.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:svg="http://www.w3.org/2000/svg">
7
+ <defs id="defs2" />
8
+ <sodipodi:namedview id="namedview2" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="7" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2" />
9
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.547874" width="0.53186357" height="12.584304" x="6.7340684" y="0.70784807" id="rect1" />
10
+ <rect style="fill:#696969;fill-opacity:1;stroke-width:0.54642" width="0.53186357" height="12.5176" x="6.7340684" y="-13.258801" transform="rotate(90)" id="rect2" />
11
+ <path class="fil1 str1" d="m 0.5698224,11.41513 v 0 h 0.0421939 0.043952 0.0421939 0.043952 0.0421939 0.043952 0.0421939 0.043952 l 0.042194,-0.0018 h 0.0421939 0.043952 0.042194 0.043952 l 0.042194,-0.0035 h 0.043952 0.042194 l 0.043952,-0.0018 h 0.042194 l 0.043952,-0.0018 h 0.042194 l 0.043952,-0.0018 h 0.042194 l 0.043952,-0.0018 0.042194,-0.0018 h 0.043952 l 0.042194,-0.0035 0.043952,-0.0018 0.042194,-0.0018 0.043952,-0.0035 0.042194,-0.0018 0.042194,-0.0035 0.043952,-0.0035 0.042194,-0.0018 0.043952,-0.0035 0.042194,-0.0053 0.043952,-0.0035 0.042194,-0.007 0.043952,-0.0035 0.042194,-0.0053 0.043952,-0.007 0.042194,-0.0053 0.043952,-0.007 0.042194,-0.0088 0.043952,-0.007 0.042194,-0.01055 0.043952,-0.0088 0.042194,-0.01055 0.043952,-0.01231 0.042194,-0.01231 0.040436,-0.01055 0.043952,-0.01231 0.042194,-0.01758 0.043952,-0.01406 0.042194,-0.01758 0.043952,-0.01758 0.042194,-0.01934 0.043952,-0.0211 0.042194,-0.0211 0.043952,-0.02461 0.042194,-0.02461 0.043952,-0.02637 0.042194,-0.02637 0.043952,-0.03165 0.042194,-0.02989 0.043952,-0.0334 0.042194,-0.03692 0.042194,-0.03692 0.043952,-0.03868 0.042194,-0.04044 0.043952,-0.04571 0.042194,-0.04395 0.043952,-0.04923 0.042194,-0.04923 0.043952,-0.0545 0.042194,-0.05626 0.043952,-0.05802 0.042194,-0.06153 0.043952,-0.06329 0.042194,-0.06681 0.043952,-0.07032 0.042194,-0.07384 0.043952,-0.075598 0.042194,-0.077356 0.043952,-0.08263 0.042194,-0.086146 0.043952,-0.087904 0.042194,-0.093178 0.042194,-0.093178 0.043952,-0.098453 0.042194,-0.1002106 0.043952,-0.1054848 0.042194,-0.1054848 0.043952,-0.110759 0.04219,-0.115793 L 4.6556003,8.7199935 4.6977942,8.6004441 4.7417462,8.4791366 4.7839402,8.3507967 4.8278922,8.224215 4.8700861,8.0906009 4.9140381,7.9569868 4.956232,7.8233727 5.000184,7.6827263 5.0423779,7.5420799 5.0863299,7.3979174 5.1285238,7.2555129 5.1724758,7.1078342 5.2146698,6.9601555 5.2568637,6.8107187 5.3008157,6.6595238 5.3430096,6.5065708 5.3869616,6.3553759 5.4291555,6.202423 5.4731075,6.0477119 5.5153014,5.894759 5.5592534,5.7400479 5.6014474,5.5888531 5.6453994,5.4359001 5.6875933,5.2864633 5.7315453,5.1370265 5.7737392,4.9858316 5.8176912,4.8416691 5.8598851,4.6957484 5.9038371,4.555102 5.946031,4.4126975 5.989983,4.2773254 6.032177,4.1437113 6.076129,4.0136134 6.118323,3.8887897 6.160517,3.7657241 6.204469,3.6461747 6.246663,3.5336575 6.290615,3.4246566 6.332809,3.3209299 l 0.043952,-0.098453 0.042194,-0.09142 0.043952,-0.089662 0.042194,-0.079114 0.043952,-0.075597 0.042194,-0.070323 0.043952,-0.061533 0.042194,-0.056259 0.043952,-0.049226 0.042194,-0.042194 0.043952,-0.03692 0.042194,-0.028129 0.043952,-0.021097 0.042194,-0.014065 0.043952,-0.00703 h 0.040436 l 0.042194,0.00703 0.043952,0.014065 0.042194,0.021097 0.043952,0.028129 0.042194,0.03692 0.043952,0.042194 0.042194,0.049226 0.043952,0.056259 0.042194,0.061533 0.043952,0.070323 0.042194,0.075597 0.042194,0.079114 0.043952,0.089662 0.042194,0.09142 0.043952,0.098453 0.042194,0.1037267 0.043952,0.1090009 0.042194,0.1125172 0.043952,0.1195494 0.042194,0.1230656 0.043952,0.1248237 0.042194,0.1300979 0.043952,0.1336141 0.042194,0.1353721 0.043952,0.1424045 0.042194,0.1406464 0.043952,0.1459207 0.042194,0.1441625 0.043952,0.1511949 0.042194,0.1494368 0.043952,0.1494368 0.042194,0.152953 0.042194,0.1511948 0.043952,0.1547111 0.042194,0.1529529 0.043952,0.1547111 0.042194,0.1529529 0.043952,0.1511949 0.042194,0.152953 0.043952,0.1511949 0.042194,0.1494368 0.043952,0.1476787 0.042194,0.1476787 0.043952,0.1424045 0.042194,0.1441625 0.043952,0.1406464 0.042194,0.1406464 0.043952,0.1336141 0.042194,0.1336141 0.043952,0.1336141 0.042194,0.1265817 0.043952,0.1283399 0.042194,0.1213075 0.042194,0.1195494 0.043952,0.1160333 0.042194,0.1160333 0.043952,0.110759 0.042194,0.1054848 0.043952,0.1054848 0.042194,0.1002106 0.043952,0.098453 0.042194,0.093178 0.043952,0.093178 0.042194,0.087904 0.043952,0.086146 0.042194,0.08263 0.043952,0.077356 0.042194,0.075598 0.043952,0.07384 0.042194,0.07032 0.04395,0.06681 0.04219,0.06329 0.04395,0.06153 0.04219,0.05802 0.04219,0.05626 0.04395,0.0545 0.04219,0.04923 0.04395,0.04923 0.04219,0.04395 0.04395,0.04571 0.04219,0.04044 0.04395,0.03868 0.04219,0.03692 0.04395,0.03692 0.04219,0.0334 0.04395,0.02989 0.04219,0.03165 0.04395,0.02637 0.04219,0.02637 0.04395,0.02461 0.04219,0.02461 0.04395,0.0211 0.04219,0.0211 0.04395,0.01934 0.04219,0.01758 0.04219,0.01758 0.04395,0.01406 0.04219,0.01758 0.04395,0.01231 0.04044,0.01055 0.04395,0.01231 0.04219,0.01231 0.04395,0.01055 0.04219,0.0088 0.04395,0.01055 0.04219,0.007 0.04395,0.0088 0.04219,0.007 0.04219,0.0053 0.04395,0.007 0.04219,0.0053 0.04395,0.0035 0.04219,0.007 0.04395,0.0035 0.04219,0.0053 0.04395,0.0035 0.04219,0.0018 0.04395,0.0035 0.04219,0.0035 0.04395,0.0018 0.04219,0.0035 0.04395,0.0018 0.04219,0.0018 0.04395,0.0035 h 0.04219 l 0.04395,0.0018 0.04219,0.0018 h 0.04395 l 0.04219,0.0018 h 0.04219 l 0.04395,0.0018 h 0.04219 l 0.04395,0.0018 h 0.04219 0.04395 l 0.04219,0.0035 h 0.04395 0.04219 0.04395 0.04219 l 0.04395,0.0018 h 0.04219 0.04395 0.04219 0.04395 0.04219 0.04395 0.04219 0.04395" id="path6" style="fill:none;fill-rule:evenodd;stroke:#0066cc;stroke-width:0.35;stroke-linejoin:bevel;stroke-dasharray:none;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision;stroke-opacity:1" />
12
+ </svg>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="14" height="14" viewBox="0 0 14 14" version="1.1" id="svg9" sodipodi:docname="grating.svg" inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
5
+ xmlns:xlink="http://www.w3.org/1999/xlink"
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ xmlns:svg="http://www.w3.org/2000/svg">
8
+ <defs id="defs9">
9
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient1" id="linearGradient2" x1="1.7521685" y1="7.0260229" x2="12.230485" y2="7.0260229" gradientUnits="userSpaceOnUse" />
10
+ <linearGradient id="linearGradient1" inkscape:collect="always">
11
+ <stop style="stop-color:#440154;stop-opacity:1;" offset="0" id="stop1" />
12
+ <stop style="stop-color:#2b748e;stop-opacity:1;" offset="0.12211668" id="stop3" />
13
+ <stop style="stop-color:#45c06f;stop-opacity:1;" offset="0.23473541" id="stop4" />
14
+ <stop style="stop-color:#eee51c;stop-opacity:1;" offset="0.34871098" id="stop5" />
15
+ <stop style="stop-color:#45c06f;stop-opacity:1;" offset="0.45861602" id="stop6" />
16
+ <stop style="stop-color:#2b748e;stop-opacity:1;" offset="0.5630936" id="stop7" />
17
+ <stop style="stop-color:#440154;stop-opacity:1;" offset="0.68249661" id="stop8" />
18
+ <stop style="stop-color:#2b748e;stop-opacity:1;" offset="0.78426051" id="stop9" />
19
+ <stop style="stop-color:#45c06f;stop-opacity:1;" offset="0.88873816" id="stop10" />
20
+ <stop style="stop-color:#eee51c;stop-opacity:1;" offset="1" id="stop2" />
21
+ </linearGradient>
22
+ </defs>
23
+ <sodipodi:namedview id="namedview9" pagecolor="#505050" bordercolor="#ffffff" borderopacity="1" inkscape:showpageshadow="0" inkscape:pageopacity="0" inkscape:pagecheckerboard="1" inkscape:deskcolor="#505050" inkscape:zoom="57.642857" inkscape:cx="7" inkscape:cy="7" inkscape:window-width="1920" inkscape:window-height="1009" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg9" />
24
+ <rect style="fill:url(#linearGradient2);fill-opacity:1;stroke:none;stroke-width:1.2228;stroke-dasharray:none" id="rect3" width="10.5" height="10.5" x="1.75" y="1.75" />
25
+ <!-- Gray axes -->
26
+ <line x1="7" y1="1" x2="7" y2="13" stroke="#696969" stroke-width="0.53" id="line1" />
27
+ <line x1="1" y1="7" x2="13" y2="7" stroke="#696969" stroke-width="0.53" id="line2" />
28
+ <!-- Sinusoidal grating (vertical stripes) -->
29
+ </svg>