DiadFit 1.0.0__tar.gz → 1.0.1__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 (54) hide show
  1. {DiadFit-1.0.0 → DiadFit-1.0.1}/PKG-INFO +2 -2
  2. {DiadFit-1.0.0 → DiadFit-1.0.1}/setup.py +2 -2
  3. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/CO2_in_bubble_error.py +1 -1
  4. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/H2O_fitting.py +11 -11
  5. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/_version.py +1 -1
  6. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/densimeters.py +10 -1
  7. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/diads.py +36 -14
  8. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit.egg-info/PKG-INFO +2 -2
  9. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit.egg-info/requires.txt +1 -1
  10. {DiadFit-1.0.0 → DiadFit-1.0.1}/README.md +0 -0
  11. {DiadFit-1.0.0 → DiadFit-1.0.1}/setup.cfg +0 -0
  12. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/CO2_EOS.py +0 -0
  13. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_data.pkl +0 -0
  14. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_dataUCB_1117_1400.pkl +0 -0
  15. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_dataUCB_1117_1447.pkl +0 -0
  16. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_dataUCB_1220_1400.pkl +0 -0
  17. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_dataUCB_1220_1447.pkl +0 -0
  18. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_dataUCB_1220_1567.pkl +0 -0
  19. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_data_CCMR.pkl +0 -0
  20. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_data_CMASS.pkl +0 -0
  21. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Highrho_polyfit_data_CMASS_24C.pkl +0 -0
  22. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_data.pkl +0 -0
  23. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_dataUCB_1117_1400.pkl +0 -0
  24. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_dataUCB_1117_1447.pkl +0 -0
  25. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_dataUCB_1220_1400.pkl +0 -0
  26. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_dataUCB_1220_1447.pkl +0 -0
  27. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_dataUCB_1220_1567.pkl +0 -0
  28. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_data_CCMR.pkl +0 -0
  29. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_data_CMASS.pkl +0 -0
  30. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Lowrho_polyfit_data_CMASS_24C.pkl +0 -0
  31. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_data.pkl +0 -0
  32. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_dataUCB_1117_1400.pkl +0 -0
  33. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_dataUCB_1117_1447.pkl +0 -0
  34. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_dataUCB_1220_1400.pkl +0 -0
  35. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_dataUCB_1220_1447.pkl +0 -0
  36. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_dataUCB_1220_1567.pkl +0 -0
  37. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_data_CCMR.pkl +0 -0
  38. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Mediumrho_polyfit_data_CMASS.pkl +0 -0
  39. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/Psensor.py +0 -0
  40. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/__init__.py +0 -0
  41. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/argon_lines.py +0 -0
  42. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/cosmicray_filter.py +0 -0
  43. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/densimeter_fitting.py +0 -0
  44. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/density_depth_crustal_profiles.py +0 -0
  45. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/error_propagation.py +0 -0
  46. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/importing_data_files.py +0 -0
  47. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/lookup_table.csv +0 -0
  48. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/lookup_table_noneg.csv +0 -0
  49. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/molar_gas_proportions.py +0 -0
  50. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/ne_lines.py +0 -0
  51. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit/relaxifi.py +0 -0
  52. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit.egg-info/SOURCES.txt +0 -0
  53. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit.egg-info/dependency_links.txt +0 -0
  54. {DiadFit-1.0.0 → DiadFit-1.0.1}/src/DiadFit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: DiadFit
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: DiadFit
5
5
  Home-page: https://github.com/PennyWieser/DiadFit
6
6
  Author: Penny Wieser
@@ -17,5 +17,5 @@ Description: [![PyPI](https://badgen.net/pypi/v/DiadFit)](https://pypi.org/proje
17
17
  Platform: UNKNOWN
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Operating System :: OS Independent
20
- Requires-Python: >=3.7
20
+ Requires-Python: >=3.8
21
21
  Description-Content-Type: text/markdown
@@ -36,7 +36,7 @@ setup(
36
36
  'numpy<2',
37
37
  'matplotlib',
38
38
  'scikit-learn',
39
- 'scipy',
39
+ 'scipy>1.6',
40
40
  'lmfit>=1.1.0',
41
41
  'tqdm',
42
42
  'python-docx'
@@ -47,5 +47,5 @@ setup(
47
47
  "Programming Language :: Python :: 3",
48
48
  "Operating System :: OS Independent",
49
49
  ],
50
- python_requires='>=3.7',
50
+ python_requires='>=3.8',
51
51
  )
@@ -159,7 +159,7 @@ plot_figure=True, fig_i=0, neg_values=True):
159
159
 
160
160
  # This is the function doing the work to actually make the simulations for each variable.
161
161
  if error_vol_perc_bub is not None:
162
- print('didnt get inside else loop')
162
+
163
163
 
164
164
  df_synthetic=propagate_CO2_in_bubble_ind(
165
165
  N_dup=N_dup,
@@ -10,7 +10,7 @@ from dataclasses import dataclass
10
10
  from typing import Tuple, Optional
11
11
  from DiadFit.importing_data_files import *
12
12
  from numpy import trapz
13
- from scipy.integrate import simps
13
+ from scipy.integrate import simpson
14
14
  ##
15
15
  def extract_xstal_MI_name(*, files, char_xstal, pos_xstal, char_MI, pos_MI,
16
16
  prefix=True, str_prefix=" ", file_ext='.txt'):
@@ -872,30 +872,30 @@ fit_sil='poly', dpi=200):
872
872
  ydat_sil=y_corr_sil
873
873
 
874
874
  xspace_sil=xdat_sil[1]-xdat_sil[0]
875
- area_trap = trapz(y_corr_sil, dx=xspace_sil)
876
- area_simps = simps(y_corr_sil, dx=xspace_sil)
875
+ area_trap = trapezoid(y_corr_sil, dx=xspace_sil)
876
+ area_simps = simpson(y_corr_sil, dx=xspace_sil)
877
877
  # Just the LW area
878
878
  xsil_LW=xdat_sil[(xdat_sil>LW[0]) & (xdat_sil<LW[1])]
879
879
  y_corr_sil_LW=y_corr_sil[(xdat_sil>LW[0]) & (xdat_sil<LW[1])]
880
880
  xspace_sil_LW=xsil_LW[1]-xsil_LW[0]
881
- area_trap_LW=trapz(y_corr_sil_LW, dx=xspace_sil_LW)
882
- area_simp_LW=simps(y_corr_sil_LW, dx=xspace_sil_LW)
881
+ area_trap_LW=trapezoid(y_corr_sil_LW, dx=xspace_sil_LW)
882
+ area_simp_LW=simpson(y_corr_sil_LW, dx=xspace_sil_LW)
883
883
 
884
884
 
885
885
  # Just the HW area
886
886
  xsil_HW=xdat_sil[(xdat_sil>HW[0]) & (xdat_sil<HW[1])]
887
887
  y_corr_sil_HW=y_corr_sil[(xdat_sil>HW[0]) & (xdat_sil<HW[1])]
888
888
  xspace_sil_HW=xsil_HW[1]-xsil_HW[0]
889
- area_trap_HW=trapz(y_corr_sil_HW, dx=xspace_sil_HW)
890
- area_simp_HW=simps(y_corr_sil_HW, dx=xspace_sil_HW)
889
+ area_trap_HW=trapezoid(y_corr_sil_HW, dx=xspace_sil_HW)
890
+ area_simp_HW=simpson(y_corr_sil_HW, dx=xspace_sil_HW)
891
891
 
892
892
  # MW
893
893
  if MW is not None:
894
894
  xsil_MW=xdat_sil[(xdat_sil>MW[0]) & (xdat_sil<MW[1])]
895
895
  y_corr_sil_MW=y_corr_sil[(xdat_sil>MW[0]) & (xdat_sil<MW[1])]
896
896
  xspace_sil_MW=xsil_MW[1]-xsil_MW[0]
897
- area_trap_MW=trapz(y_corr_sil_MW, dx=xspace_sil_MW)
898
- area_simp_MW=simps(y_corr_sil_MW, dx=xspace_sil_MW)
897
+ area_trap_MW=trapezoid(y_corr_sil_MW, dx=xspace_sil_MW)
898
+ area_simp_MW=simpson(y_corr_sil_MW, dx=xspace_sil_MW)
899
899
 
900
900
 
901
901
  # Plotting what its doing
@@ -1155,8 +1155,8 @@ def fit_area_for_water_region(*, path, filename, Spectra=None, config1: water_bc
1155
1155
 
1156
1156
 
1157
1157
  xspace_water=xdat_water[1]-xdat_water[0]
1158
- area_trap = trapz(y_corr_water, dx=xspace_water)
1159
- area_simps = simps(y_corr_water, dx=xspace_water)
1158
+ area_trap = trapezoid(y_corr_water, dx=xspace_water)
1159
+ area_simps = simpson(y_corr_water, dx=xspace_water)
1160
1160
 
1161
1161
 
1162
1162
  # Plotting what its doing
@@ -5,4 +5,4 @@
5
5
  # 1) we don't load dependencies by storing it in __init__.py
6
6
  # 2) we can import it in setup.py for the same reason
7
7
  # 3) we can import it into your module
8
- __version__ = '1.0.0'
8
+ __version__ = '1.0.1'
@@ -944,20 +944,29 @@ def merge_fit_files(path):
944
944
 
945
945
  if os.path.exists(os.path.join(path, 'Weak_Diads.xlsx')):
946
946
  grp1 = pd.read_excel(os.path.join(path, 'Weak_Diads.xlsx'))
947
+ grp1['Standard']='No'
947
948
  else:
948
949
  grp1 = None
949
950
 
950
951
  if os.path.exists(os.path.join(path, 'Medium_Diads.xlsx')):
951
952
  grp2 = pd.read_excel(os.path.join(path, 'Medium_Diads.xlsx'))
953
+ grp2['Standard']='No'
952
954
  else:
953
955
  grp2 = None
954
956
 
955
957
  if os.path.exists(os.path.join(path, 'Strong_Diads.xlsx')):
956
958
  grp3 = pd.read_excel(os.path.join(path, 'Strong_Diads.xlsx'))
959
+ grp3['Standard']='No'
957
960
  else:
958
961
  grp3 = None
962
+
963
+ if os.path.exists(os.path.join(path, 'Std_Diads.xlsx')):
964
+ grp4 = pd.read_excel(os.path.join(path, 'Std_Diads.xlsx'))
965
+ grp4['Standard']='Yes'
966
+ else:
967
+ grp4 = None
959
968
 
960
- df2 = pd.concat([grp1, grp2, grp3], axis=0).reset_index(drop=True)
969
+ df2 = pd.concat([grp1, grp2, grp3, grp4], axis=0).reset_index(drop=True)
961
970
 
962
971
  if discard is not None:
963
972
  discard_cols=discard[discard.columns.intersection(df2.columns)]
@@ -18,7 +18,7 @@ import matplotlib.patches as patches
18
18
  import warnings as w
19
19
  from tqdm import tqdm
20
20
  from numpy import trapz
21
- from scipy.integrate import simps
21
+ from scipy.integrate import simpson
22
22
  from scipy.interpolate import interp1d
23
23
 
24
24
  # Allowed models
@@ -725,7 +725,7 @@ def plot_peak_params(fit_params,
725
725
  def filter_splitting_prominence(*, fit_params, data_y_all,
726
726
  x_cord,
727
727
  splitting_limits=[100, 107],
728
- lower_diad1_prom=10, exclude_str):
728
+ lower_diad1_prom=10, exclude_str=None, str_filt=None):
729
729
  """ Filters Spectra based on approximate splitting, draws a plot showing spectra to discard and those to keep
730
730
 
731
731
  Parameters
@@ -746,6 +746,12 @@ def filter_splitting_prominence(*, fit_params, data_y_all,
746
746
  Only keeps spectra that meet the splitting parameter, and have an absolute
747
747
  diad1 prominence greater than this value (helps filter out other weird spectra)
748
748
 
749
+ exclude_str: str
750
+ Excludes files with this string.
751
+
752
+ str_filt: str
753
+ Filters just based on string in filename
754
+
749
755
  Returns
750
756
  --------------
751
757
  fit_params_filt: pd.DataFrame
@@ -759,21 +765,30 @@ def filter_splitting_prominence(*, fit_params, data_y_all,
759
765
 
760
766
 
761
767
  """
768
+ if str_filt is not None:
769
+ filt=fit_params['filename'].str.contains(str_filt)
762
770
 
763
- reas_split=(fit_params['approx_split'].between(splitting_limits[0], splitting_limits[1]))
764
- reas_heigh=fit_params['Diad1_abs_prom']>lower_diad1_prom
765
- if exclude_str is not None:
766
- name_in_file=~fit_params['filename'].str.contains(exclude_str)
767
771
  else:
768
- name_in_file=reas_heigh
769
772
 
770
- fit_params_filt=fit_params.loc[(reas_split&reas_heigh&name_in_file)].reset_index(drop=True)
771
- fit_params_disc=fit_params.loc[~(reas_split&reas_heigh&name_in_file)].reset_index(drop=True)
773
+ reas_split=(fit_params['approx_split'].between(splitting_limits[0], splitting_limits[1]))
774
+ reas_heigh=fit_params['Diad1_abs_prom']>lower_diad1_prom
775
+
776
+ if exclude_str is not None:
777
+ name_in_file=~fit_params['filename'].str.contains(exclude_str)
778
+ else:
779
+ name_in_file=reas_heigh
780
+
781
+ filt=reas_split&reas_heigh&name_in_file
782
+
783
+ fit_params_filt=fit_params.loc[filt].reset_index(drop=True)
784
+ fit_params_disc=fit_params.loc[~(filt)].reset_index(drop=True)
772
785
 
773
786
  print('Keeping N='+str(len(fit_params_filt)))
774
787
  print('Discarding N='+str(len(fit_params_disc)))
775
788
 
776
- filt=reas_split&reas_heigh&name_in_file
789
+
790
+
791
+ # Then apply to get data
777
792
  data_y_filt=data_y_all[:, (filt)]
778
793
  data_y_disc=data_y_all[:, ~(filt)]
779
794
 
@@ -804,17 +819,21 @@ def filter_splitting_prominence(*, fit_params, data_y_all,
804
819
  Diff=np.nanmax(data_y_filt[:, i])-np.nanmin(data_y_filt[:, i])
805
820
  av_prom_Keep=fit_params_filt['Diad1_abs_prom'].iloc[i]
806
821
  prom_filt=prom_filt+av_prom_Keep
822
+ file=fit_params_filt['filename'].iloc[i]
807
823
  ax2.plot(x_cord+i*5, (data_y_filt[:, i]-np.nanmin(data_y_filt[:, i]))/Diff+i/3, '-b', lw=0.5)
824
+ yplot=np.quantile((data_y_filt[:, i]-np.nanmin(data_y_filt[:, i]))/Diff+i/3, 0.65)
825
+ ax2.annotate(str(file), xy=(1450+i*5, yplot),
826
+ xycoords="data", fontsize=8, bbox=dict(facecolor='white', edgecolor='none', pad=2))
808
827
 
809
828
 
810
829
  ax2.set_xlim([1250, 1450+i*5])
811
830
  ax2.set_xticks([])
812
831
  ax2.set_yticks([])
813
832
 
814
- return fit_params_filt, data_y_filt, fit_params_disc, data_y_disc
833
+ return fit_params_filt.reset_index(drop=True), data_y_filt, fit_params_disc.reset_index(drop=True), data_y_disc
815
834
 
816
835
 
817
- def identify_diad_group(*, fit_params, data_y, x_cord, filter_bool,y_fig_scale=0.1, grp_filter='Weak'):
836
+ def identify_diad_group(*, fit_params, data_y, x_cord, filter_bool,y_fig_scale=0.1, grp_filter='Weak', str_filt=None):
818
837
 
819
838
  """Sorts diads into two groups. Those meeting the 'filter_bool' criteria, and those not
820
839
  meeting this criteria. Ones meeting the criteria are shown on the left hand plot,
@@ -853,6 +872,9 @@ def identify_diad_group(*, fit_params, data_y, x_cord, filter_bool,y_fig_scale=
853
872
 
854
873
 
855
874
  """
875
+ if str_filt is not None:
876
+ filt_name=~fit_params['filename'].str.contains(str_filt)
877
+ filt_bool=filt_name&filt_bool
856
878
 
857
879
  if np.shape(data_y)[1]==0:
858
880
  Group1_df=pd.DataFrame().reindex_like(fit_params)
@@ -3835,8 +3857,8 @@ path=None, filename=None, filetype=None,
3835
3857
 
3836
3858
 
3837
3859
  xspace_sil=x_new[1]-x_new[0]
3838
- area_trap = trapz(Baseline_ysub_sil, dx=xspace_sil)
3839
- area_simps = simps(Baseline_ysub_sil, dx=xspace_sil)
3860
+ area_trap = trapezoid(Baseline_ysub_sil, dx=xspace_sil)
3861
+ area_simps = simpson(Baseline_ysub_sil, dx=xspace_sil)
3840
3862
 
3841
3863
 
3842
3864
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: DiadFit
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: DiadFit
5
5
  Home-page: https://github.com/PennyWieser/DiadFit
6
6
  Author: Penny Wieser
@@ -17,5 +17,5 @@ Description: [![PyPI](https://badgen.net/pypi/v/DiadFit)](https://pypi.org/proje
17
17
  Platform: UNKNOWN
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Operating System :: OS Independent
20
- Requires-Python: >=3.7
20
+ Requires-Python: >=3.8
21
21
  Description-Content-Type: text/markdown
@@ -2,7 +2,7 @@ pandas
2
2
  numpy<2
3
3
  matplotlib
4
4
  scikit-learn
5
- scipy
5
+ scipy>1.6
6
6
  lmfit>=1.1.0
7
7
  tqdm
8
8
  python-docx
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes