AeroViz 0.1.8__py3-none-any.whl → 0.1.9.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.

Potentially problematic release.


This version of AeroViz might be problematic. Click here for more details.

@@ -114,8 +114,7 @@ def _basic(_lcres, _mass, _ocec_ratio, _ocec_ratio_month, _hr_lim, _range, _wiso
114
114
  _out = {}
115
115
 
116
116
  # OC1, OC2, OC3, OC4, PC
117
- _df_bsc = _lcres[['OC1_raw', 'OC2_raw', 'OC3_raw', 'OC4_raw']] / _lcres['Sample_Volume'].to_frame().values.copy()
118
- _df_bsc.rename(columns={'OC1_raw': 'OC1', 'OC2_raw': 'OC2', 'OC3_raw': 'OC3', 'OC4_raw': 'OC4'}, inplace=True)
117
+ _df_bsc = _lcres[['OC1', 'OC2', 'OC3', 'OC4', 'PC']].copy()
119
118
 
120
119
  # SOC, POC, OC/EC
121
120
  if _ocec_ratio is not None:
@@ -144,7 +143,8 @@ def _basic(_lcres, _mass, _ocec_ratio, _ocec_ratio_month, _hr_lim, _range, _wiso
144
143
  _df_ratio = DataFrame(index=_df_bsc.index)
145
144
 
146
145
  for _ky, _val in _df_bsc.items():
147
- if 'OC/EC' in _ky: continue
146
+ if 'OC/EC' in _ky:
147
+ continue
148
148
  _df_ratio[f'{_ky}/Thermal_OC'] = _val / _lcres['Thermal_OC']
149
149
  _df_ratio[f'{_ky}/Optical_OC'] = _val / _lcres['Optical_OC']
150
150
 
@@ -159,14 +159,14 @@ def _basic(_lcres, _mass, _ocec_ratio, _ocec_ratio_month, _hr_lim, _range, _wiso
159
159
  _df_ratio[f'Optical_EC/PM'] = _lcres['Optical_EC'] / _mass
160
160
 
161
161
  # ratio status
162
- _df_bsc = concat((_lcres, _df_bsc.copy()), axis=1)
162
+ _df_bsc = concat((_lcres.loc[:, :'Sample_Volume'], _df_bsc.copy()), axis=1)
163
163
 
164
164
  for _ky, _df in _df_ratio.items():
165
165
  _df_bsc[f'{_ky}_status'] = 'Normal'
166
166
  _df_bsc[f'{_ky}_status'] = _df_bsc[f'{_ky}_status'].mask(_df > 1, 'Warning')
167
167
 
168
168
  # out
169
- _out['ratio'] = _df_ratio
170
169
  _out['basic'] = _df_bsc
170
+ _out['ratio'] = _df_ratio
171
171
 
172
172
  return _out
@@ -12,6 +12,9 @@ from AeroViz.plot.utils import set_figure
12
12
 
13
13
  __all__ = ['hysplit']
14
14
 
15
+ # 設置默認文件路徑
16
+ DEFAULT_FILE = Path(__file__).parent.parent.parent / 'data' / '240228_00.txt'
17
+
15
18
 
16
19
  def read_hysplit_data(file: Path):
17
20
  data = pd.read_csv(file, skiprows=8, sep=r'\s+', names=range(0, 12), engine='python')
@@ -23,7 +26,7 @@ def read_hysplit_data(file: Path):
23
26
 
24
27
 
25
28
  @set_figure
26
- def hysplit(file: Path):
29
+ def hysplit(file: Path = DEFAULT_FILE):
27
30
  data = read_hysplit_data(file)
28
31
 
29
32
  # 創建地圖
@@ -76,4 +79,4 @@ def hysplit(file: Path):
76
79
 
77
80
 
78
81
  if __name__ == "__main__":
79
- hysplit(Path("../../data/240228_00.txt")) # 請替換為您的實際檔案路徑
82
+ hysplit() # 請替換為您的實際檔案路徑
@@ -101,11 +101,13 @@ class AbstractReader(ABC):
101
101
 
102
102
  # validate rate calculation
103
103
  if period_size < sample_size or sample_size < qc_size or period_size == 0 or sample_size == 0:
104
- raise ValueError(f"Invalid sample sizes: period={period_size}, sample={sample_size}, QC={qc_size}")
104
+ _acq_rate, _yid_rate, _OEE_rate = 0, 0, 0
105
+ # raise ValueError(f"Invalid sample sizes: period={period_size}, sample={sample_size}, QC={qc_size}")
105
106
 
106
- _acq_rate = round((sample_size / period_size) * 100, 1)
107
- _yid_rate = round((qc_size / sample_size) * 100, 1)
108
- _OEE_rate = round((qc_size / period_size) * 100, 1)
107
+ else:
108
+ _acq_rate = round((sample_size / period_size) * 100, 1)
109
+ _yid_rate = round((qc_size / sample_size) * 100, 1)
110
+ _OEE_rate = round((qc_size / period_size) * 100, 1)
109
111
 
110
112
  self.logger.info(f'{_nam}:')
111
113
  self.logger.info(f"\tAcquisition rate: {_acq_rate}%")
@@ -114,7 +116,7 @@ class AbstractReader(ABC):
114
116
  self.logger.info(f"{'=' * 60}")
115
117
 
116
118
  print(f'\n\t{_nam} : ')
117
- print(f'\t\tacquisition rate | yield rate | OEE rate :'
119
+ print(f'\t\tacquisition rate | yield rate -> OEE rate :'
118
120
  f' \033[91m{_acq_rate}% | {_yid_rate}% -> {_OEE_rate}%\033[0m')
119
121
 
120
122
  if self.meta['deter_key'] is not None:
@@ -9,7 +9,7 @@ class Reader(AbstractReader):
9
9
 
10
10
  def _raw_reader(self, file):
11
11
  with open(file, 'r', encoding='utf-8', errors='ignore') as f:
12
- _df = read_csv(f, skiprows=3).apply(to_numeric, errors='coerce')
12
+ _df = read_csv(f, skiprows=3)
13
13
 
14
14
  _df['Start Date/Time'] = _df['Start Date/Time'].str.strip()
15
15
  _df['time'] = to_datetime(_df['Start Date/Time'], format='%m/%d/%Y %I:%M:%S %p', errors='coerce')
@@ -51,6 +51,8 @@ class Reader(AbstractReader):
51
51
  'ECPk5-ug C': 'EC5_raw',
52
52
  })
53
53
 
54
+ _df = _df.apply(to_numeric, errors='coerce')
55
+
54
56
  _df['OC1'] = _df['OC1_raw'] / _df['Sample_Volume']
55
57
  _df['OC2'] = _df['OC2_raw'] / _df['Sample_Volume']
56
58
  _df['OC3'] = _df['OC3_raw'] / _df['Sample_Volume']
@@ -64,7 +66,7 @@ class Reader(AbstractReader):
64
66
  # _df['EC4'] = _df['EC4_raw'] / _df['Sample_Volume']
65
67
  # _df['EC5'] = _df['EC5_raw'] / _df['Sample_Volume']
66
68
 
67
- _df = _df[['Thermal_OC', 'Optical_OC', 'Thermal_EC', 'Optical_EC', 'TC', 'Sample_Volume',
69
+ _df = _df[['Thermal_OC', 'Thermal_EC', 'Optical_OC', 'Optical_EC', 'TC', 'Sample_Volume',
68
70
  'OC1', 'OC2', 'OC3', 'OC4', 'PC']]
69
71
 
70
72
  return _df.loc[~_df.index.duplicated() & _df.index.notna()]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AeroViz
3
- Version: 0.1.8
3
+ Version: 0.1.9.1
4
4
  Summary: Aerosol science
5
5
  Home-page: https://github.com/Alex870521/AeroViz
6
6
  Author: alex
@@ -18,6 +18,7 @@ Requires-Dist: scipy ==1.14.0
18
18
  Requires-Dist: seaborn ==0.13.2
19
19
  Requires-Dist: scikit-learn ==1.5.1
20
20
  Requires-Dist: windrose ==1.9.2
21
+ Requires-Dist: cartopy ==0.24.1
21
22
  Requires-Dist: tabulate ==0.9.0
22
23
  Requires-Dist: rich ~=13.7.1
23
24
 
@@ -7,7 +7,7 @@ AeroViz/dataProcess/Chemistry/__init__.py,sha256=fyyomjxkQcUNWDx4R5jPrHafAftN-v2
7
7
  AeroViz/dataProcess/Chemistry/_calculate.py,sha256=q7ojTFPok0vg8k_1PMECNdP5CPanR9NWQ4Rx5iTcHew,599
8
8
  AeroViz/dataProcess/Chemistry/_isoropia.py,sha256=3wp_FXdN230awlStMbctutwld4oot9WaAVXETGd6PSs,3255
9
9
  AeroViz/dataProcess/Chemistry/_mass_volume.py,sha256=0joH2BAx0NUwDFzyrLgG-v7WrGl46R7zWxwbajWBV8o,5378
10
- AeroViz/dataProcess/Chemistry/_ocec.py,sha256=FKvuh6iMhz6eFne9WJZFyaeo0FyV9a1KmaZ0nm4-67I,6031
10
+ AeroViz/dataProcess/Chemistry/_ocec.py,sha256=1UpSwdxYVy_LpUjtoaEUoXA-r1nKEFJoyYglf_6CoXA,5899
11
11
  AeroViz/dataProcess/Chemistry/_partition.py,sha256=tKhb6BJns46UiUlEq6Zq7ahYnvUJ_whY3tWE54C3bqU,1023
12
12
  AeroViz/dataProcess/Chemistry/_teom.py,sha256=IiM-TrifWpQLTbKllG-4k4c3mvQulfcmjswWu6muCXA,486
13
13
  AeroViz/dataProcess/Chemistry/isrpia.cnf,sha256=iWXTqsOZFmNrJxAI9nYuilZ9h6ru1icdPFVim7YKc_k,566
@@ -44,7 +44,7 @@ AeroViz/plot/violin.py,sha256=pU2Z2yTWocEtImmCAmbtn0WvXtUOrnCGOdDOrLxjooU,2689
44
44
  AeroViz/plot/distribution/__init__.py,sha256=nhbIegWczkuEfWsE7-2jfF0dnpmPDzJJzjq8Fuh6q5k,28
45
45
  AeroViz/plot/distribution/distribution.py,sha256=sAjqtqKavFwQqI8PGPFnpvZFSU-w2UKjcTTC5L91f4E,20595
46
46
  AeroViz/plot/hysplit/__init__.py,sha256=VrEkha2OEFp_00Xj9R98C96niZ7fYqJzGPeYsbojtzA,23
47
- AeroViz/plot/hysplit/hysplit.py,sha256=PXQIrUTzVxJvEbTWtis-YKgyMxKn6bYmc-3FH8ystaQ,2415
47
+ AeroViz/plot/hysplit/hysplit.py,sha256=yDIQuhlP3IPXRy0BCRkzqyJ_PfYPqIF-S1lpksW1dFk,2504
48
48
  AeroViz/plot/meteorology/__init__.py,sha256=hhGfQE3IUzS3Eaju_nO7LomPPHJnd-zAAZZweXOXs2M,27
49
49
  AeroViz/plot/meteorology/meteorology.py,sha256=6hk-5olgQTw2SB-GhEizLN19vRVBztgiXoruh8Q6Zns,11282
50
50
  AeroViz/plot/optical/PyMieScatt_update.py,sha256=g3vlzATjzYSYZd3LwmwxEmdkpo4cHJ3KY4rePY4jwZk,21065
@@ -71,7 +71,7 @@ AeroViz/plot/utils/units.json,sha256=JKcqvLA6dkc8REV_NhX85Jl9LA4iAZxzw9RJp6JTla0
71
71
  AeroViz/rawDataReader/__init__.py,sha256=0JUjzD54KRWQQ5C07zpVDwHlg02QoSaQ89rRFB4RwNM,4852
72
72
  AeroViz/rawDataReader/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  AeroViz/rawDataReader/config/supported_instruments.py,sha256=CGE34wsXyq-Za8IIYu2rt3JzoANrFBgrphqvl2FYTC0,5296
74
- AeroViz/rawDataReader/core/__init__.py,sha256=rXEFM1gi5TjOmYh5ouov-zFvHH22gI-X26-WRGemwu4,15106
74
+ AeroViz/rawDataReader/core/__init__.py,sha256=QeUDtDAz49a85jYdY838nKVCI7pqSwRDP1o1IMcHjmU,15205
75
75
  AeroViz/rawDataReader/script/AE33.py,sha256=FGET-JGW2H4cTRoduuIS8VGFYK7jEnPIhqlBJuNAGFQ,1278
76
76
  AeroViz/rawDataReader/script/AE43.py,sha256=H8lrI6jqLTRwbslVmbkB_YxEcPl42uEVIfKk6WGTTBI,1231
77
77
  AeroViz/rawDataReader/script/APS_3321.py,sha256=x75G72Xl0vElr6Njbv8SlOcosAHNozseaJzAxVmfXyI,1697
@@ -83,7 +83,7 @@ AeroViz/rawDataReader/script/IGAC.py,sha256=ZdskNc65wVx2znmbjJp2J_rxVg5vuqxB1HWR
83
83
  AeroViz/rawDataReader/script/MA350.py,sha256=w0QCoJxMIMwaLOLWLE65FM7MY9kcvpkRMAowRA5TaYk,1490
84
84
  AeroViz/rawDataReader/script/Minion.py,sha256=BjuJe2KWLJKgvVnV0WfilGh2DvaWqJDDNj8i0z3oeuU,7306
85
85
  AeroViz/rawDataReader/script/NEPH.py,sha256=6qs2oiS6zDOFkTNEu9T-8hrCuoZHPfjd5UoMacobAno,3168
86
- AeroViz/rawDataReader/script/OCEC.py,sha256=45jaEp1cjmPPjbf44eErhE2wO6GXpDVsJIQ9jPj1XcE,3390
86
+ AeroViz/rawDataReader/script/OCEC.py,sha256=jWWaNbCjP5MJDYrdWUhjrQLClaWqC8SGDVPIFJ9xljU,3413
87
87
  AeroViz/rawDataReader/script/SMPS.py,sha256=EtXmeukOIwqfMwMJqv99_STfVg0uPdVr96r-tfD95gk,2774
88
88
  AeroViz/rawDataReader/script/TEOM.py,sha256=Ew4JqDf_qpGFvvBLwX824kKIRXMM6QZLwEB4t4xkTSk,2103
89
89
  AeroViz/rawDataReader/script/VOC.py,sha256=GUme72ZyjSzREsFNUgOV_OCESIVJBXY9KrKP1c9Av7I,1248
@@ -94,8 +94,8 @@ AeroViz/tools/database.py,sha256=05VzjJyhlRrhsZdhfFQ__7CxGm4MdFekLjz3_Is5h9U,343
94
94
  AeroViz/tools/dataclassifier.py,sha256=_wpv0PlZ5EGkcNqHxfFtdEsYvHP5FVE8sMZXikhm_YE,4492
95
95
  AeroViz/tools/dataprinter.py,sha256=Jq2Yztpa9YCOeLDVTrRs7PhSdNIPhEAexVj1YSuJ7hY,2249
96
96
  AeroViz/tools/datareader.py,sha256=iTQ0U8hdNMjCdbiH7EiKW10UEoxzxXRHc4s5_1IikJo,1933
97
- AeroViz-0.1.8.dist-info/LICENSE,sha256=E-679GpGGkp3irmtuJXiT7R4cNUA4cmsH6Q7QUgPf5U,1069
98
- AeroViz-0.1.8.dist-info/METADATA,sha256=wZbCSSka8hul4WhNJinMRBh3p-thd-irlLC5HwWc1iE,6219
99
- AeroViz-0.1.8.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
100
- AeroViz-0.1.8.dist-info/top_level.txt,sha256=BYsmTst_o4FZOKRP1XIvIMlN6mMTTXNfnSToL2_nVbQ,8
101
- AeroViz-0.1.8.dist-info/RECORD,,
97
+ AeroViz-0.1.9.1.dist-info/LICENSE,sha256=E-679GpGGkp3irmtuJXiT7R4cNUA4cmsH6Q7QUgPf5U,1069
98
+ AeroViz-0.1.9.1.dist-info/METADATA,sha256=GVdWT5eQU-KOldHK8yzNq9rRN0DYBuVHJxqGsrvJefo,6253
99
+ AeroViz-0.1.9.1.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
100
+ AeroViz-0.1.9.1.dist-info/top_level.txt,sha256=BYsmTst_o4FZOKRP1XIvIMlN6mMTTXNfnSToL2_nVbQ,8
101
+ AeroViz-0.1.9.1.dist-info/RECORD,,