pmagpy-cli 4.2.109__tar.gz → 4.2.115__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 (291) hide show
  1. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/PKG-INFO +1 -4
  2. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/pmag_gui_dialogs.py +13 -2
  3. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/thellier_gui_dialogs.py +2 -2
  4. pmagpy-cli-4.2.115/pmagpy/test/test_fisher_sample.py +20 -0
  5. pmagpy-cli-4.2.115/pmagpy/test/test_igrf.py +14 -0
  6. pmagpy-cli-4.2.115/pmagpy/test/test_rotations.py +21 -0
  7. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_cli.egg-info/PKG-INFO +1 -4
  8. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_cli.egg-info/SOURCES.txt +6 -1
  9. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_cli.egg-info/entry_points.txt +0 -1
  10. pmagpy-cli-4.2.115/pmagpy_tests/examples/my_project_with_errors/__init__.py +0 -0
  11. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/aniso_magic.py +1 -1
  12. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/irm_magic.py +3 -2
  13. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/pmd_magic.py +4 -2
  14. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/squidm_magic.py +1 -1
  15. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/demag_gui.py +6 -2
  16. pmagpy-cli-4.2.115/programs/images/pmagpy_logo.ico +0 -0
  17. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/irm_unmix.py +17 -8
  18. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/pmag_gui.py +13 -28
  19. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/MANIFEST.in +0 -0
  20. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/README.md +0 -0
  21. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/__init__.py +0 -0
  22. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/__init__.py +0 -0
  23. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/leastsq_jacobian.py +0 -0
  24. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_IZZI_MD.py +0 -0
  25. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_additivity_check_statistics.py +0 -0
  26. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_arai_plot_statistics.py +0 -0
  27. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_curvature.py +0 -0
  28. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_directional_statistics.py +0 -0
  29. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_leastsquares.py +0 -0
  30. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_ptrm_statistics.py +0 -0
  31. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/lib_tail_check_statistics.py +0 -0
  32. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/lib/new_lib_curvature.py +0 -0
  33. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/new_lj_thellier_gui_spd.py +0 -0
  34. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/run_tests.py +0 -0
  35. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/spd.py +0 -0
  36. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/test_instance.py +0 -0
  37. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/__init__.py +0 -0
  38. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/known_values.py +0 -0
  39. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_additivity_check_statistics.py +0 -0
  40. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_all.py +0 -0
  41. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_arai_plot_statistics.py +0 -0
  42. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_curvature.py +0 -0
  43. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_directional_statistics.py +0 -0
  44. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_ptrm_statistics.py +0 -0
  45. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/SPD/tests/test_tail_check_statistics.py +0 -0
  46. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/ani_depthplot_anaconda +0 -0
  47. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/core_depthplot_anaconda +0 -0
  48. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/demag_gui_anaconda +0 -0
  49. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/magic_gui2_anaconda +0 -0
  50. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/magic_gui_anaconda +0 -0
  51. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/pmag_gui_anaconda +0 -0
  52. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/bin/thellier_gui_anaconda +0 -0
  53. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/command_line_setup.py +0 -0
  54. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/ErMagicBuilder.py +0 -0
  55. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/__init__.py +0 -0
  56. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/demag_dialogs.py +0 -0
  57. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/demag_interpretation_editor.py +0 -0
  58. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/drop_down_menus3.py +0 -0
  59. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/grid_frame3.py +0 -0
  60. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicAgeHelp.html +0 -0
  61. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicBuilderHelp.html +0 -0
  62. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicHeadersHelp.html +0 -0
  63. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicLocationHelp.html +0 -0
  64. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicSampleHelp.html +0 -0
  65. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicSampleHelp1.html +0 -0
  66. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicSiteHelp.html +0 -0
  67. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/ErMagicSpecimenHelp.html +0 -0
  68. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/help_files/magic_gui.html +0 -0
  69. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/magic_grid2.py +0 -0
  70. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/magic_grid3.py +0 -0
  71. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/pmag_er_magic_dialogs.py +0 -0
  72. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/pmag_gui_menu3.py +0 -0
  73. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/pmag_menu_dialogs.py +0 -0
  74. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/pmag_widgets.py +0 -0
  75. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/thellier_consistency_test.py +0 -0
  76. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/thellier_gui_lib.py +0 -0
  77. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/dialogs/thellier_interpreter.py +0 -0
  78. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/help_files/__init__.py +0 -0
  79. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/help_files/demag_gui_help.py +0 -0
  80. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/help_files/demag_interpretation_editor_help.py +0 -0
  81. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/locator/__init__.py +0 -0
  82. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/locator/resource.py +0 -0
  83. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/MagIC-data-model.txt +0 -0
  84. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/age_methods.txt +0 -0
  85. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/all_codes.txt +0 -0
  86. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/code_types.txt +0 -0
  87. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/controlled_vocabularies2.json +0 -0
  88. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/controlled_vocabularies_August_9_2018.json +0 -0
  89. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/controlled_vocabularies_December_10_2018.json +0 -0
  90. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/controlled_vocabularies_February_6_2017.json +0 -0
  91. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/controlled_vocabularies_October_3_2019.json +0 -0
  92. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/data_model.json +0 -0
  93. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/er_methods.txt +0 -0
  94. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/method_codes.json +0 -0
  95. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/pmag_methods.txt +0 -0
  96. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/suggested_vocabularies_August_9_2018.json +0 -0
  97. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/suggested_vocabularies_December_10_2018.json +0 -0
  98. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/data_model/suggested_vocabularies_February_6_2017.json +0 -0
  99. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/mapping/__init__.py +0 -0
  100. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/mapping/map_magic.py +0 -0
  101. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy/mapping/maps.py +0 -0
  102. {pmagpy-cli-4.2.109/pmagpy_tests/examples → pmagpy-cli-4.2.115/pmagpy/test}/__init__.py +0 -0
  103. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_cli.egg-info/dependency_links.txt +0 -0
  104. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_cli.egg-info/top_level.txt +0 -0
  105. {pmagpy-cli-4.2.109/pmagpy_tests/examples/empty_dir → pmagpy-cli-4.2.115/pmagpy_tests/examples}/__init__.py +0 -0
  106. {pmagpy-cli-4.2.109/pmagpy_tests/examples/my_project → pmagpy-cli-4.2.115/pmagpy_tests/examples/empty_dir}/__init__.py +0 -0
  107. {pmagpy-cli-4.2.109/pmagpy_tests/examples/my_project_with_errors → pmagpy-cli-4.2.115/pmagpy_tests/examples/my_project}/__init__.py +0 -0
  108. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/pmagpy_tests/examples/my_project_with_errors/something.py +0 -0
  109. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/__init__.py +0 -0
  110. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/aarm_magic.py +0 -0
  111. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/agm_magic2.py +0 -0
  112. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/angle.py +0 -0
  113. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/ani_depthplot.py +0 -0
  114. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/ani_depthplot2.py +0 -0
  115. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/aniso_magic2.py +0 -0
  116. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/apwp.py +0 -0
  117. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/atrm_magic.py +0 -0
  118. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/azdip_magic.py +0 -0
  119. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/b_vdm.py +0 -0
  120. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/bootams.py +0 -0
  121. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/cart_dir.py +0 -0
  122. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/chartmaker.py +0 -0
  123. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/chi_magic.py +0 -0
  124. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/chi_magic2.py +0 -0
  125. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/combine_magic.py +0 -0
  126. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/common_mean.py +0 -0
  127. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/_2g_bin_magic.py +0 -0
  128. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/__init__.py +0 -0
  129. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/agm_magic.py +0 -0
  130. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/bgc_magic.py +0 -0
  131. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/cit_magic.py +0 -0
  132. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/generic_magic.py +0 -0
  133. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/huji_magic.py +0 -0
  134. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/huji_sample_magic.py +0 -0
  135. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/iodp_dscr_magic.py +0 -0
  136. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/iodp_jr6_magic.py +0 -0
  137. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/iodp_samples_magic.py +0 -0
  138. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/iodp_srm_magic.py +0 -0
  139. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/jr6_jr6_magic.py +0 -0
  140. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/jr6_txt_magic.py +0 -0
  141. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/k15_magic.py +0 -0
  142. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/kly4s_magic.py +0 -0
  143. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/ldeo_magic.py +0 -0
  144. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/livdb_magic.py +0 -0
  145. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/magic_geomagia.py +0 -0
  146. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/mst_magic.py +0 -0
  147. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/run_multi_samples.py +0 -0
  148. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/s_magic.py +0 -0
  149. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/sio_magic.py +0 -0
  150. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/sufar4_asc_magic.py +0 -0
  151. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/tdt_magic.py +0 -0
  152. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/template_magic.py +0 -0
  153. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/utrecht_magic.py +0 -0
  154. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts/xpeem_magic.py +0 -0
  155. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/_2g_bin_magic2.py +0 -0
  156. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/__init__.py +0 -0
  157. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/bgc_magic2.py +0 -0
  158. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/cit_magic2.py +0 -0
  159. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/generic_magic2.py +0 -0
  160. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/huji_magic2.py +0 -0
  161. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/huji_magic_new2.py +0 -0
  162. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/iodp_dscr_magic2.py +0 -0
  163. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/iodp_jr6_magic2.py +0 -0
  164. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/iodp_srm_magic2.py +0 -0
  165. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/jr6_jr6_magic2.py +0 -0
  166. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/jr6_txt_magic2.py +0 -0
  167. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/ldeo_magic2.py +0 -0
  168. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/pmd_magic2.py +0 -0
  169. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/sio_magic2.py +0 -0
  170. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/tdt_magic2.py +0 -0
  171. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/conversion_scripts2/utrecht_magic2.py +0 -0
  172. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/convert2unix.py +0 -0
  173. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/core_depthplot.py +0 -0
  174. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/curie.py +0 -0
  175. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dayplot_magic.py +0 -0
  176. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dayplot_magic2.py +0 -0
  177. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/di_eq.py +0 -0
  178. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/di_geo.py +0 -0
  179. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/di_rot.py +0 -0
  180. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/di_tilt.py +0 -0
  181. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/di_vgp.py +0 -0
  182. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dia_vgp.py +0 -0
  183. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dipole_pinc.py +0 -0
  184. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dipole_plat.py +0 -0
  185. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dir_cart.py +0 -0
  186. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dir_redo.py +0 -0
  187. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dmag_magic.py +0 -0
  188. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/dmag_magic2.py +0 -0
  189. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/download_magic.py +0 -0
  190. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eigs_s.py +0 -0
  191. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eq_di.py +0 -0
  192. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eqarea.py +0 -0
  193. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eqarea_ell.py +0 -0
  194. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eqarea_magic.py +0 -0
  195. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/eqarea_magic2.py +0 -0
  196. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/find_ei.py +0 -0
  197. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/fisher.py +0 -0
  198. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/fishqq.py +0 -0
  199. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/fishrot.py +0 -0
  200. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/foldtest.py +0 -0
  201. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/foldtest_magic.py +0 -0
  202. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/foldtest_magic2.py +0 -0
  203. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/forc_diagram.py +0 -0
  204. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/gaussian.py +0 -0
  205. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/gobing.py +0 -0
  206. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/gofish.py +0 -0
  207. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/gokent.py +0 -0
  208. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/goprinc.py +0 -0
  209. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/grab_magic_key.py +0 -0
  210. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/histplot.py +0 -0
  211. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/hysteresis_magic.py +0 -0
  212. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/hysteresis_magic2.py +0 -0
  213. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/igrf.py +0 -0
  214. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/images/PmagPy.ico +0 -0
  215. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/images/PmagPy_16x16.ico +0 -0
  216. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/images/PmagPy_32x32.ico +0 -0
  217. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/incfish.py +0 -0
  218. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/install_etopo.py +0 -0
  219. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/irmaq_magic.py +0 -0
  220. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/k15_s.py +0 -0
  221. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/lnp_magic.py +0 -0
  222. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/lowes.py +0 -0
  223. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/lowrie.py +0 -0
  224. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/lowrie_magic.py +0 -0
  225. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/lsq_redo.py +0 -0
  226. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/magic_gui.py +0 -0
  227. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/magic_select.py +0 -0
  228. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/make_magic_plots.py +0 -0
  229. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/microwave_magic.py +0 -0
  230. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/mk_redo.py +0 -0
  231. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/move_data_files.py +0 -0
  232. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/mst_magic.py +0 -0
  233. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/orientation_magic.py +0 -0
  234. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/pca.py +0 -0
  235. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_2cdfs.py +0 -0
  236. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_cdf.py +0 -0
  237. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_geomagia.py +0 -0
  238. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_magmap.py +0 -0
  239. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_magmap_basemap.py +0 -0
  240. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plot_map_pts.py +0 -0
  241. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plotdi_a.py +0 -0
  242. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plotdi_e.py +0 -0
  243. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/plotxy.py +0 -0
  244. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/pmag_results_extract.py +0 -0
  245. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/pmm_redo.py +0 -0
  246. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/polemap_magic.py +0 -0
  247. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/program_envs.py +0 -0
  248. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/pt_rot.py +0 -0
  249. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/qqplot.py +0 -0
  250. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/qqunf.py +0 -0
  251. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/quick_hyst.py +0 -0
  252. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/quick_hyst2.py +0 -0
  253. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/remanence_anisotropy_magic.py +0 -0
  254. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/remove_bad_chars.py +0 -0
  255. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/replace_ac_specimens.py +0 -0
  256. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/revtest.py +0 -0
  257. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/revtest_magic.py +0 -0
  258. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/revtest_mm1990.py +0 -0
  259. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/s_eigs.py +0 -0
  260. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/s_geo.py +0 -0
  261. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/s_hext.py +0 -0
  262. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/s_tilt.py +0 -0
  263. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/scalc.py +0 -0
  264. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/scalc_magic.py +0 -0
  265. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/site_edit_magic.py +0 -0
  266. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/sort_specimens.py +0 -0
  267. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/squish.py +0 -0
  268. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/stats.py +0 -0
  269. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/strip_magic.py +0 -0
  270. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/sundec.py +0 -0
  271. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/thellier_gui.py +0 -0
  272. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/thellier_magic.py +0 -0
  273. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/thellier_magic2.py +0 -0
  274. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/thumbnails.py +0 -0
  275. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/tk03.py +0 -0
  276. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/trmaq_magic.py +0 -0
  277. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/uniform.py +0 -0
  278. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/unsquish.py +0 -0
  279. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/upload_magic.py +0 -0
  280. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/vdm_b.py +0 -0
  281. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/vector_mean.py +0 -0
  282. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/vgp_di.py +0 -0
  283. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/vgpmap_magic.py +0 -0
  284. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/vgpmap_magic2.py +0 -0
  285. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/watsons_f.py +0 -0
  286. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/watsons_v.py +0 -0
  287. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/zeq.py +0 -0
  288. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/zeq_magic.py +0 -0
  289. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/programs/zeq_magic2.py +0 -0
  290. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/setup.cfg +0 -0
  291. {pmagpy-cli-4.2.109 → pmagpy-cli-4.2.115}/setup.py +0 -0
@@ -1,13 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pmagpy-cli
3
- Version: 4.2.109
3
+ Version: 4.2.115
4
4
  Summary: Analysis tools for paleo/rock magnetic data
5
5
  Home-page: https://github.com/PmagPy/PmagPy
6
6
  Author: PmagPy team
7
7
  Author-email: ltauxe@ucsd.edu
8
8
  License: BSD-3
9
9
  Keywords: geology paleomagnetism
10
- Platform: UNKNOWN
11
10
  Classifier: Development Status :: 4 - Beta
12
11
  Classifier: License :: OSI Approved :: MIT License
13
12
  Classifier: Programming Language :: Python :: 2
@@ -167,5 +166,3 @@ This code and the PmagPy cookbook (http://earthref.org/PmagPy/cookbook) are comp
167
166
 
168
167
 
169
168
  This code can be freely used, modified, and shared. It is licensed under a 3-clause BSD license. See [license.txt](https://github.com/ltauxe/PmagPy/blob/master/license.txt) for details.
170
-
171
-
@@ -2030,6 +2030,11 @@ class convert_PMD_files_to_MagIC(convert_files_to_MagIC):
2030
2030
  #---sizer 7 ---
2031
2031
  self.bSizer7 = pw.site_lat_lon(pnl)
2032
2032
 
2033
+ #---sizer 8 ----
2034
+ TEXT="Demagnetization Method: t for thermal, af for AF demag (optional):\nDemag type is automatically detected for files using the H or M labels\nfor AF demag or the T label for thermal demag in step names."
2035
+
2036
+ self.bSizer8 = pw.labeled_text_field(pnl, TEXT)
2037
+
2033
2038
  #---buttons ---
2034
2039
  hboxok = pw.btn_panel(self, pnl)
2035
2040
 
@@ -2044,6 +2049,7 @@ class convert_PMD_files_to_MagIC(convert_files_to_MagIC):
2044
2049
  vbox.Add(self.bSizer4, flag=wx.ALIGN_LEFT|wx.TOP, border=10)
2045
2050
  vbox.Add(self.bSizer5, flag=wx.ALIGN_LEFT|wx.TOP, border=10)
2046
2051
  vbox.Add(self.bSizer7, flag=wx.ALIGN_LEFT|wx.TOP, border=10)
2052
+ vbox.Add(self.bSizer8, flag=wx.ALIGN_LEFT|wx.TOP, border=10)
2047
2053
  vbox.Add(self.bSizer6, flag=wx.ALIGN_LEFT|wx.TOP, border=10)
2048
2054
  vbox.Add(hboxok, flag=wx.ALIGN_CENTER)
2049
2055
  vbox.AddSpacer(20)
@@ -2068,7 +2074,7 @@ class convert_PMD_files_to_MagIC(convert_files_to_MagIC):
2068
2074
  directory = self.bSizer0.return_value() or '.'
2069
2075
  options['input_dir_path'] = directory
2070
2076
  files = os.listdir(directory)
2071
- files = [str(f) for f in files if str(f).endswith('.pmd')]
2077
+ files = [str(f) for f in files if str(f).upper().endswith('.PMD')]
2072
2078
  if files:
2073
2079
  samp_outfile = files[0][:files[0].find('.')] + files[-1][:files[-1].find('.')] + "_samples.txt"
2074
2080
  options['samp_file'] = samp_outfile
@@ -2082,6 +2088,11 @@ class convert_PMD_files_to_MagIC(convert_files_to_MagIC):
2082
2088
  options['specnum'] = spc
2083
2089
  loc_name = self.bSizer4.return_value()
2084
2090
  options['location'] = loc_name
2091
+ dmg = self.bSizer8.return_value().lower() #Make lower case because the dmg options are t or af
2092
+ options['dmg'] = dmg
2093
+ if dmg != "" and dmg != "t" and dmg != "af":
2094
+ pw.simple_warning("The only valid demagnetization methods t and af, but program recieved: %s"%dmg)
2095
+ return
2085
2096
  if loc_name:
2086
2097
  location = loc_name
2087
2098
  loc_name = "-loc " + loc_name
@@ -2113,7 +2124,7 @@ class convert_PMD_files_to_MagIC(convert_files_to_MagIC):
2113
2124
  options['site_file'] = site_outfile
2114
2125
  loc_outfile = f[:f.find('.')] + "_locations.txt"
2115
2126
  options['loc_file'] = loc_outfile
2116
- COMMAND = "pmd_magic.py -WD {} -f {} -F {} -Fsp {} -Fsa {} -Fsi {} -Flo {} -ncn {} {} -spc {} {} {} {} {} {}".format(WD, f, outfile, spec_outfile, samp_outfile, site_outfile, loc_outfile, ncn, particulars, spc, replicate, ID, loc_name, lat, lon)
2127
+ COMMAND = "pmd_magic.py -WD {} -f {} -F {} -Fsp {} -Fsa {} -Fsi {} -Flo {} -dmg {} -ncn {} {} -spc {} {} {} {} {} {}".format(WD, f, outfile, spec_outfile, samp_outfile, site_outfile, loc_outfile, dmg, ncn, particulars, spc, replicate, ID, loc_name, lat, lon)
2117
2128
 
2118
2129
  program_ran, error_message = convert.pmd(**options)
2119
2130
  if not program_ran:
@@ -76,7 +76,7 @@ class PI_Statistics_Dialog(wx.Dialog):
76
76
  self.stat_by_category['Additivity Checks'] = [
77
77
  'specimen_ac_n', 'specimen_dac']
78
78
  self.DESC = {}
79
- self.DESC['specimen_frac'] = 'The angle between the applied field direction and the ChRM direction of the NRM as determined from the free-floating PCA fit to the selected demagnetization steps of the paleointensity experiment'
79
+ self.DESC['specimen_frac'] = 'NRM fraction used for the best-fit on an Arai diagram determined entirely by vector difference sum calculation (Shaar and Tauxe, 2013).'
80
80
  self.DESC['specimen_int_n'] = 'Number of measurements included in field strength calculations'
81
81
  self.DESC['specimen_alpha_prime'] = 'Angular difference between the anchored best-fit direction from the paleointensity experiment and an independent measure of the paleomagnetic direction. NOT CURRENTLY AVAILABLE'
82
82
  self.DESC['specimen_alpha'] = 'Angular difference between the anchored and free-floating best-fit directions on a vector component diagram'
@@ -206,7 +206,7 @@ class PI_Statistics_Dialog(wx.Dialog):
206
206
  hbox = wx.BoxSizer(wx.HORIZONTAL)
207
207
  hbox.AddSpacer(10)
208
208
  for num in sorted(self.bSizers):
209
- hbox.Add(self.bSizers[num], flag=wx.ALIGN_CENTER_HORIZONTAL)
209
+ hbox.Add(self.bSizers[num], flag=wx.ALIGN_CENTER_VERTICAL)
210
210
  hbox.AddSpacer(10)
211
211
  #hbox.Add(bSizer0, flag=wx.ALIGN_CENTER_HORIZONTAL)
212
212
  #hbox.AddSpacer(10)
@@ -0,0 +1,20 @@
1
+ import numpy as np
2
+ from numpy.testing import assert_allclose
3
+
4
+ from pmagpy.ipmag import fishrot
5
+
6
+ def test_fishrot_type_1():
7
+ res = fishrot(k=10, n=1, di_block=False)
8
+ assert len(res)==2 and res[0].shape == (1,)
9
+
10
+ def test_fishrot_type_1_diblock():
11
+ res = fishrot(k=10, n=1, di_block=True)
12
+ assert res.shape == (1,3)
13
+
14
+ def test_fishrot_type_n():
15
+ res = fishrot(k=10, n=5, di_block=False)
16
+ assert len(res)==2 and res[0].shape == (5,)
17
+
18
+ def test_fishrot_type_n_diblock():
19
+ res = fishrot(k=10, n=5, di_block=True)
20
+ assert res.shape == (5,3)
@@ -0,0 +1,14 @@
1
+ from pmagpy import ipmag
2
+ from numpy.testing import assert_allclose
3
+
4
+
5
+ def test_IGRF():
6
+
7
+ result = ipmag.igrf([1999, 30, 20, 50])
8
+ reference = [1.20288657e+00, 2.82331112e+01, 3.9782338913649881e+04]
9
+
10
+ print(result, reference)
11
+
12
+ assert_allclose(result, reference, rtol=.1)
13
+
14
+
@@ -0,0 +1,21 @@
1
+ import numpy as np
2
+ from numpy.testing import assert_allclose
3
+
4
+ from pmagpy.pmag import dodirot, dodirot_V
5
+
6
+ def test_dodirot_type():
7
+ assert isinstance(dodirot(0,90,5,85), tuple)
8
+
9
+ def test_dodirot_1():
10
+ assert_allclose(dodirot(0,90,5,85), (5.0, 85.0), rtol=10e-4)
11
+
12
+ def test_dodirot_V_type():
13
+ di_array = np.array([[0,90],[0,90],[0,90]])
14
+ assert isinstance(dodirot_V(di_array,5,15), np.ndarray)
15
+
16
+ def test_dodirot_V_1():
17
+ di_array = np.array([[0,90],[0,90],[0,90]])
18
+ result = np.array([[ 5., 15.],
19
+ [ 5., 15.],
20
+ [ 5., 15.]])
21
+ assert_allclose(dodirot_V(di_array,5,15), result, rtol=10e-4)
@@ -1,13 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pmagpy-cli
3
- Version: 4.2.109
3
+ Version: 4.2.115
4
4
  Summary: Analysis tools for paleo/rock magnetic data
5
5
  Home-page: https://github.com/PmagPy/PmagPy
6
6
  Author: PmagPy team
7
7
  Author-email: ltauxe@ucsd.edu
8
8
  License: BSD-3
9
9
  Keywords: geology paleomagnetism
10
- Platform: UNKNOWN
11
10
  Classifier: Development Status :: 4 - Beta
12
11
  Classifier: License :: OSI Approved :: MIT License
13
12
  Classifier: Programming Language :: Python :: 2
@@ -167,5 +166,3 @@ This code and the PmagPy cookbook (http://earthref.org/PmagPy/cookbook) are comp
167
166
 
168
167
 
169
168
  This code can be freely used, modified, and shared. It is licensed under a 3-clause BSD license. See [license.txt](https://github.com/ltauxe/PmagPy/blob/master/license.txt) for details.
170
-
171
-
@@ -84,6 +84,10 @@ pmagpy/data_model/suggested_vocabularies_February_6_2017.json
84
84
  pmagpy/mapping/__init__.py
85
85
  pmagpy/mapping/map_magic.py
86
86
  pmagpy/mapping/maps.py
87
+ pmagpy/test/__init__.py
88
+ pmagpy/test/test_fisher_sample.py
89
+ pmagpy/test/test_igrf.py
90
+ pmagpy/test/test_rotations.py
87
91
  pmagpy_cli.egg-info/PKG-INFO
88
92
  pmagpy_cli.egg-info/SOURCES.txt
89
93
  pmagpy_cli.egg-info/dependency_links.txt
@@ -281,4 +285,5 @@ programs/conversion_scripts2/tdt_magic2.py
281
285
  programs/conversion_scripts2/utrecht_magic2.py
282
286
  programs/images/PmagPy.ico
283
287
  programs/images/PmagPy_16x16.ico
284
- programs/images/PmagPy_32x32.ico
288
+ programs/images/PmagPy_32x32.ico
289
+ programs/images/pmagpy_logo.ico
@@ -167,4 +167,3 @@ magic_gui2.py = programs.magic_gui2:main
167
167
  pmag_gui = programs.pmag_gui:main
168
168
  pmag_gui.py = programs.pmag_gui:main
169
169
  thellier_gui.py = programs.thellier_gui:main
170
-
@@ -177,7 +177,7 @@ def main():
177
177
  vec = int(args[ind+1])-1
178
178
  Dir = [float(args[ind+2]), float(args[ind+3])]
179
179
  ipmag.aniso_magic_nb(infile, samp_file, site_file, verbose,
180
- ipar, ihext, ivec, isite, False, iboot,
180
+ ipar, ihext, ivec, isite, iboot,
181
181
  vec, Dir, PDir, crd, num_bootstraps,
182
182
  dir_path, save_plots=save_plots, interactive=interactive,
183
183
  fmt=fmt)
@@ -22,18 +22,19 @@ OPTIONS
22
22
  -ID DIRECTORY: directory for input files, default = current directory
23
23
  -WD DIRECTORY: directory for output files, default = current directory
24
24
  -f FILE: the IRM Excel data file name, required
25
- (the file name flag may be ommited and just the file name used, if no other flags are present)
25
+ (the file name flag may be omitted and just the file name used, if no other flags are present)
26
26
  -cite CITATION: specify the citation, default = This study (use "This study" unless you already
27
27
  have the DOI for the paper the dataset is associated with.
28
28
  -M flag: the MPMSdc file type (default:0)
29
29
  use 0 for IRM file type as of July 7th, 2021. Data has header with the specimen name on 4 columns
30
30
  use 1 for earlier type where the first two header columns are "specimen" and the specimen name
31
- example IRM data file Sprain is of this type
31
+ example IRM data file Sprain et al. 2021 (earthref.org/MagIC/19216) is of this type.
32
32
  EXAMPLE
33
33
  Command line for the example dataset:
34
34
  irm_magic.py example.xlsx - (example dataset yet to be choosen)
35
35
 
36
36
 
37
+
37
38
  """
38
39
 
39
40
  import sys
@@ -22,8 +22,9 @@ OPTIONS
22
22
  -spc NUM : specify number of characters to designate a specimen, default = 1
23
23
  -loc LOCNAME : specify location/study name
24
24
  -A: don't average replicate measurements
25
+ -dmg TYPE: set default demag type ('t' for thermal, 'af' for AF demag
25
26
  -ncn NCON: specify naming convention
26
- Sample naming convention:
27
+ Sample naming convention:
27
28
  [1] XXXXY: where XXXX is an arbitrary length site designation and Y
28
29
  is the single character sample designation. e.g., TG001a is the
29
30
  first sample from site TG001. [default]
@@ -71,6 +72,7 @@ def main():
71
72
  specnum = pmag.get_named_arg('-spc', 0)
72
73
  samp_con = pmag.get_named_arg('-ncn', '1')
73
74
  location = pmag.get_named_arg('-loc', 'unknown')
75
+ dmg = pmag.get_named_arg('-dmg', '')
74
76
  noave = 0
75
77
  if "-A" in sys.argv:
76
78
  noave = 1
@@ -78,7 +80,7 @@ def main():
78
80
  convert.pmd(mag_file, dir_path, input_dir_path, meas_file,
79
81
  spec_file, samp_file, site_file, loc_file,
80
82
  lat, lon, specnum, samp_con, location, noave,
81
- meth_code)
83
+ meth_code,dmg)
82
84
 
83
85
 
84
86
  if __name__ == "__main__":
@@ -56,7 +56,7 @@ def main():
56
56
  ZirconRun3 -- (file hierarchy)
57
57
 
58
58
  SYNTAX
59
- mit_squid_magic.py [command line options]
59
+ squid_magic.py [command line options]
60
60
 
61
61
  OPTIONS
62
62
  -h: prints the help message and quits.
@@ -1993,7 +1993,7 @@ class Demag_GUI(wx.Frame):
1993
1993
  means_to_plot = []
1994
1994
  for tm in toggleable_means:
1995
1995
  if not tm.IsChecked():
1996
- means_to_plot.append(tm.GetLabel())
1996
+ means_to_plot.append(tm.GetItemLabel())
1997
1997
  return means_to_plot
1998
1998
 
1999
1999
  def calc_and_plot_sample_orient_check(self):
@@ -2924,7 +2924,6 @@ class Demag_GUI(wx.Frame):
2924
2924
  -------
2925
2925
  nested dictionary 2.5 formated criteria data
2926
2926
  """
2927
- # import pdb; pdb.set_trace()
2928
2927
  acceptance_criteria = pmag.initialize_acceptance_criteria()
2929
2928
  if self.data_model == 3:
2930
2929
  if criteria_file_name == None:
@@ -3007,7 +3006,10 @@ class Demag_GUI(wx.Frame):
3007
3006
  try:
3008
3007
  # preformes regression
3009
3008
  mpars = pmag.domean(block, beg_pca, end_pca, calculation_type)
3009
+ mpars["measurement_step_min_unit"] = reduce(lambda x,y="": x+y, [c if not c.isnumeric() and c!="." and c!="-" else "" for c in tmin])
3010
+ mpars["measurement_step_max_unit"] = reduce(lambda x,y="": x+y, [c if not c.isnumeric() and c!="." and c!="-" else "" for c in tmax])
3010
3011
  except:
3012
+ print("Error: Could not do PCA recieved the following fit information")
3011
3013
  print((block, beg_pca, end_pca, calculation_type,
3012
3014
  specimen, fit.name, tmin, tmax, coordinate_system))
3013
3015
  return
@@ -3088,6 +3090,8 @@ class Demag_GUI(wx.Frame):
3088
3090
  return
3089
3091
  try:
3090
3092
  mpars = pmag.domean(block, i, i+step_size, calculation_type)
3093
+ mpars["measurement_step_min_unit"] = reduce(lambda x,y="": x+y, [c if not c.isnumeric() and c!="." else "" for c in self.T_list[i]])
3094
+ mpars["measurement_step_max_unit"] = reduce(lambda x,y="": x+y, [c if not c.isnumeric() and c!="." else "" for c in self.T_list[i+step_size]])
3091
3095
  except (IndexError, TypeError) as e:
3092
3096
  return
3093
3097
  if 'specimen_mad' in list(mpars.keys()):
@@ -8,7 +8,6 @@ this is for IRM decompose, based on log gaussian,
8
8
  this is based on python3.6 and PyQt5
9
9
 
10
10
  author: Jiabo Liu
11
- GFZ Potsdam
12
11
  #====================================================================
13
12
  '''
14
13
 
@@ -92,22 +91,32 @@ def loadData(filePath=None):
92
91
  log10 interploted data
93
92
  #====================================================================
94
93
  '''
95
- skip_from = ' Field Remanence '
94
+ skip_3900_form = ' Field Remanence '
95
+ skip_8600_form = '##DATA TABLE Moment (m)'
96
96
  with open(filePath,'rb') as fr:
97
97
  #f = fr.read()
98
98
  for i,line in enumerate(fr,1):
99
99
  #print(line)
100
- if skip_from in str(line):
100
+ if skip_8600_form in str(line):
101
+ skiprows=i+1
102
+ coding='ISO-8859-15'
103
+ names=['Step','Iteration','Segment','field','remanance',
104
+ 'Time Stamp [s]','Field Status','Moment (m) Status']
105
+ break
106
+ elif skip_3900_form in str(line):
101
107
  skiprows=i+2
108
+ coding='ISO-8859-15'
109
+ names=['field','remanance']
102
110
  break
103
111
  else:
104
112
  skiprows=None
113
+ coding='UTF-8'
114
+ names=['field','remanance']
115
+ #print('skiprows= ',skiprows)
105
116
  skiprows = skiprows if isinstance(skiprows,int) else 1
106
- #rawDf = pd.read_csv(filePath, sep='\s+', delimiter=',', names=['field','remanance'],
107
- # dtype=np.float64, skiprows=skiprows, skipfooter=1,engine='python')
108
- rawDf = pd.read_csv(filePath, delimiter=',', names=['field','remanance'],
109
- dtype=np.float64, skiprows=skiprows,
110
- skipfooter=1,engine='python', encoding='cp1252')
117
+ rawDf = pd.read_csv(filePath, delimiter=',', names=names,
118
+ skiprows=skiprows, skipfooter=1,engine='python',
119
+ encoding=coding)
111
120
  rawDf = rawDf[(rawDf['field']>0)]
112
121
  rawDf = rawDf.sort_values(by=['field'])
113
122
  rawDf['field'] = rawDf['field']*10**3 # mT to # T
@@ -92,7 +92,6 @@ class MagMainFrame(wx.Frame):
92
92
  menubar = pmag_gui_menu.MagICMenu(self)
93
93
  self.SetMenuBar(menubar)
94
94
  self.menubar = menubar
95
- self.refresh_btns()
96
95
 
97
96
 
98
97
  def get_wd_data(self):
@@ -134,9 +133,8 @@ class MagMainFrame(wx.Frame):
134
133
  in_bSizer0 = wx.BoxSizer(wx.HORIZONTAL)
135
134
 
136
135
  self.dir_path = wx.TextCtrl(self.panel, id=-1, size=(700,35), style=wx.TE_READONLY)
137
- self.change_dir_button = buttons.GenButton(self.panel, id=-1, label="Change directory",size=(130, 35))
136
+ self.change_dir_button = wx.Button(self.panel, wx.ID_ANY, label="Change directory",size=(130, 35), style=wx.BORDER_NONE)
138
137
  self.change_dir_button.SetBackgroundColour("#F8F8FF")
139
- self.change_dir_button.InitColours()
140
138
  self.change_dir_button.SetForegroundColour("#000000")
141
139
  self.Bind(wx.EVT_BUTTON, self.on_change_dir_button, self.change_dir_button)
142
140
 
@@ -177,33 +175,33 @@ class MagMainFrame(wx.Frame):
177
175
  sb.SetFont(sizer_font)
178
176
 
179
177
  text = "1. Convert magnetometer files to MagIC format"
180
- self.btn1 = buttons.GenButton(self.panel, id=-1, label=text,
181
- size=(450, 50), name='step 1')
178
+ self.btn1 = wx.Button(self.panel, id=-1, label=text,
179
+ size=(450, 50), name='step 1', style=wx.BORDER_NONE)
182
180
  self.btn1.SetBackgroundColour("#FDC68A")
183
181
  self.btn1.SetForegroundColour("#000000")
184
182
  self.Bind(wx.EVT_BUTTON, self.on_convert_file, self.btn1)
185
183
 
186
184
  text = "2. (optional) Calculate geographic/tilt-corrected directions"
187
- self.btn2 = buttons.GenButton(self.panel, id=-1, label=text, size=(450, 50), name='step 2')
185
+ self.btn2 = wx.Button(self.panel, id=-1, label=text, size=(450, 50), name='step 2', style=wx.BORDER_NONE)
188
186
  self.btn2.SetBackgroundColour("#FDC68A")
189
187
  self.btn2.SetForegroundColour("#000000")
190
188
  self.Bind(wx.EVT_BUTTON, self.on_btn_orientation, self.btn2)
191
189
  text = "3. (optional) Add MagIC metadata for uploading data to MagIC "
192
- self.btn3 = buttons.GenButton(self.panel, id=-1, label=text, size=(450, 50), name='step 3')
190
+ self.btn3 = wx.Button(self.panel, id=-1, label=text, size=(450, 50), name='step 3', style=wx.BORDER_NONE)
193
191
  self.btn3.SetBackgroundColour("#FDC68A")
194
192
  self.btn3.SetForegroundColour("#000000")
195
193
  self.Bind(wx.EVT_BUTTON, self.on_btn_metadata, self.btn3)
196
194
 
197
195
  text = "Download or unpack MagIC text file"
198
- self.btn4 = buttons.GenButton(self.panel, id=-1, label=text, size=(330, 50))
196
+ self.btn4 = wx.Button(self.panel, id=-1, label=text, size=(330, 50), style=wx.BORDER_NONE)
199
197
  self.btn4.SetBackgroundColour("#FDC68A")
200
198
  self.btn4.SetForegroundColour("#000000")
201
199
  self.Bind(wx.EVT_BUTTON, self.on_btn_unpack, self.btn4)
202
200
 
203
201
 
204
202
  text = "Convert directory to 3.0. format (legacy data only)"
205
- self.btn1a = buttons.GenButton(self.panel, id=-1, label=text,
206
- size=(330, 50), name='step 1a')
203
+ self.btn1a = wx.Button(self.panel, id=-1, label=text,
204
+ size=(330, 50), name='step 1a', style=wx.BORDER_NONE)
207
205
  self.btn1a.SetBackgroundColour("#FDC68A")
208
206
  self.btn1a.SetForegroundColour("#000000")
209
207
  self.Bind(wx.EVT_BUTTON, self.on_btn_convert_3, self.btn1a)
@@ -251,13 +249,13 @@ class MagMainFrame(wx.Frame):
251
249
  sb.SetFont(sizer_font)
252
250
 
253
251
  text = "Demag GUI"
254
- self.btn_demag_gui = buttons.GenButton(self.panel, id=-1, label=text, size=(300, 50), name='demag gui')
252
+ self.btn_demag_gui = wx.Button(self.panel, id=-1, label=text, size=(300, 50), name='demag gui', style=wx.BORDER_NONE)
255
253
  self.btn_demag_gui.SetBackgroundColour("#6ECFF6")
256
254
  self.btn_demag_gui.SetForegroundColour("#000000")
257
255
  self.Bind(wx.EVT_BUTTON, self.on_btn_demag_gui, self.btn_demag_gui)
258
256
 
259
257
  text = "Thellier GUI"
260
- self.btn_thellier_gui = buttons.GenButton(self.panel, id=-1, label=text, size=(300, 50), name='thellier gui')
258
+ self.btn_thellier_gui = wx.Button(self.panel, id=-1, label=text, size=(300, 50), name='thellier gui', style=wx.BORDER_NONE)
261
259
  self.btn_thellier_gui.SetBackgroundColour("#6ECFF6")
262
260
  self.btn_thellier_gui.SetForegroundColour("#000000")
263
261
  self.Bind(wx.EVT_BUTTON, self.on_btn_thellier_gui, self.btn_thellier_gui)
@@ -279,7 +277,7 @@ class MagMainFrame(wx.Frame):
279
277
  sb.SetFont(sizer_font)
280
278
 
281
279
  text = "Create MagIC txt file for upload"
282
- self.btn_upload = buttons.GenButton(self.panel, id=-1, label=text, size=(300, 50))
280
+ self.btn_upload = wx.Button(self.panel, id=-1, label=text, size=(300, 50), style=wx.BORDER_NONE)
283
281
  self.btn_upload.SetBackgroundColour("#C4DF9B")
284
282
  self.btn_upload.SetForegroundColour("#000000")
285
283
 
@@ -319,19 +317,6 @@ class MagMainFrame(wx.Frame):
319
317
 
320
318
  #----------------------------------------------------------------------
321
319
 
322
- def refresh_btns(self):
323
- self.change_dir_button.OnPaint(-1)
324
- self.btn1.OnPaint(-1)
325
- self.btn2.OnPaint(-1)
326
- self.btn3.OnPaint(-1)
327
- self.btn4.OnPaint(-1)
328
- self.btn1a.OnPaint(-1)
329
- self.btn_demag_gui.OnPaint(-1)
330
- self.btn_thellier_gui.OnPaint(-1)
331
- self.btn_upload.OnPaint(-1)
332
-
333
- #----------------------------------------------------------------------
334
-
335
320
  def get_dir(self):
336
321
  """
337
322
  Choose a working directory dialog.
@@ -869,9 +854,9 @@ INFORMATION
869
854
  print('-I- Starting Pmag GUI - please be patient')
870
855
  # if redirect is true, wxpython makes its own output window for stdout/stderr
871
856
  if 'darwin' in sys.platform and (not set_env.IS_FROZEN):
872
- app = wx.App(redirect=False)
857
+ app = wx.App(redirect=True)
873
858
  else:
874
- app = wx.App(redirect=False) #SET TO TRUE BEFORE COMMIT
859
+ app = wx.App(redirect=True) #SET TO TRUE BEFORE COMMIT
875
860
  dir_path = pmag.get_named_arg("-WD", None)
876
861
  app.frame = MagMainFrame(WD=dir_path)
877
862
  app.frame.Show()
File without changes
File without changes
File without changes