oafuncs 0.0.98.32__py3-none-any.whl → 0.0.98.34__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.
- oafuncs/_script/data_interp.py +0 -15
- oafuncs/_script/netcdf_modify.py +0 -15
- oafuncs/_script/plot_dataset.py +1 -1
- oafuncs/_script/replace_file_content.py +0 -15
- oafuncs/oa_cmap.py +10 -1
- oafuncs/oa_down/__init__.py +0 -14
- oafuncs/oa_down/hycom_3hourly.py +4 -1
- oafuncs/oa_down/hycom_3hourly_proxy.py +0 -17
- oafuncs/oa_down/idm.py +0 -17
- oafuncs/oa_down/literature.py +0 -15
- oafuncs/oa_down/read_proxy.py +0 -15
- oafuncs/oa_down/user_agent.py +0 -14
- oafuncs/oa_draw.py +34 -78
- oafuncs/oa_help.py +0 -15
- oafuncs/oa_python.py +0 -15
- oafuncs/oa_sign/__init__.py +0 -15
- oafuncs/oa_sign/meteorological.py +0 -16
- oafuncs/oa_sign/ocean.py +0 -16
- oafuncs/oa_sign/scientific.py +0 -16
- {oafuncs-0.0.98.32.dist-info → oafuncs-0.0.98.34.dist-info}/METADATA +1 -1
- oafuncs-0.0.98.34.dist-info/RECORD +45 -0
- oafuncs-0.0.98.32.dist-info/RECORD +0 -45
- {oafuncs-0.0.98.32.dist-info → oafuncs-0.0.98.34.dist-info}/WHEEL +0 -0
- {oafuncs-0.0.98.32.dist-info → oafuncs-0.0.98.34.dist-info}/licenses/LICENSE.txt +0 -0
- {oafuncs-0.0.98.32.dist-info → oafuncs-0.0.98.34.dist-info}/top_level.txt +0 -0
oafuncs/_script/data_interp.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-04-25 16:22:52
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-26 19:21:31
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\_script\\data_interp.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
from typing import List, Union
|
17
2
|
|
18
3
|
import numpy as np
|
oafuncs/_script/netcdf_modify.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-04-05 14:00:50
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-05 14:00:50
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\_script\\netcdf_modify.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import os
|
17
2
|
|
18
3
|
import netCDF4 as nc
|
oafuncs/_script/plot_dataset.py
CHANGED
@@ -91,7 +91,7 @@ def plot_2d(data: xr.DataArray, output_path: str, data_range: Optional[Tuple[flo
|
|
91
91
|
lon_lat_ratio = np.abs(np.max(lon_range) - np.min(lon_range)) / (np.max(lat_range) - np.min(lat_range))
|
92
92
|
figsize = (10, 10 / lon_lat_ratio)
|
93
93
|
fig, ax = plt.subplots(figsize=figsize, subplot_kw={"projection": ccrs.PlateCarree()})
|
94
|
-
oafuncs.oa_draw.
|
94
|
+
oafuncs.oa_draw.setup_map(ax, lon_range, lat_range)
|
95
95
|
else:
|
96
96
|
fig, ax = plt.subplots(figsize=(10, 8))
|
97
97
|
|
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-03-21 10:02:32
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-03-21 10:02:33
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\_script\\replace_file_concent.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import datetime
|
17
2
|
import os
|
18
3
|
import re
|
oafuncs/oa_cmap.py
CHANGED
@@ -3,8 +3,9 @@ from typing import List, Optional, Union
|
|
3
3
|
import matplotlib as mpl
|
4
4
|
import matplotlib.pyplot as plt
|
5
5
|
import numpy as np
|
6
|
+
import random
|
6
7
|
|
7
|
-
__all__ = ["show", "to_color", "create", "get"]
|
8
|
+
__all__ = ["show", "to_color", "create", "get", "random_color"]
|
8
9
|
|
9
10
|
|
10
11
|
# ** 将cmap用填色图可视化(官网摘抄函数)
|
@@ -304,6 +305,14 @@ def get(colormap_name: Optional[str] = None, show_available: bool = False) -> Op
|
|
304
305
|
return mpl.colormaps.get_cmap("rainbow") # 默认返回 'rainbow'
|
305
306
|
|
306
307
|
|
308
|
+
# ** 生成随机颜色
|
309
|
+
def random_color():
|
310
|
+
"""Generate a random color in hexadecimal format."""
|
311
|
+
r = random.randint(0, 255)
|
312
|
+
g = random.randint(0, 255)
|
313
|
+
b = random.randint(0, 255)
|
314
|
+
return f"#{r:02x}{g:02x}{b:02x}"
|
315
|
+
|
307
316
|
if __name__ == "__main__":
|
308
317
|
# ** 测试自制cmap
|
309
318
|
colors = ["#C2B7F3", "#B3BBF2", "#B0CBF1", "#ACDCF0", "#A8EEED"]
|
oafuncs/oa_down/__init__.py
CHANGED
@@ -1,17 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-09-17 16:09:20
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-12-26 08:09:01
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\__init__.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
"""
|
15
1
|
|
16
2
|
# from .love_ocean import sign as love_ocean
|
17
3
|
# from .meteorological_home import sign as meteorological_home
|
oafuncs/oa_down/hycom_3hourly.py
CHANGED
@@ -733,6 +733,7 @@ class _HycomDownloader:
|
|
733
733
|
logging.error(f"Giving up on {file_name}")
|
734
734
|
self.count["fail"] += 1
|
735
735
|
count_dict["fail"] += 1
|
736
|
+
count_dict["fail_data_list"].append(file_name)
|
736
737
|
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S,%f")[:-3]
|
737
738
|
# print(f"{timestamp} - ERROR - ", end="")
|
738
739
|
# print("[bold red]Failed")
|
@@ -1091,7 +1092,7 @@ def download(
|
|
1091
1092
|
end_time += "21"
|
1092
1093
|
|
1093
1094
|
global count_dict
|
1094
|
-
count_dict = {"success": 0, "fail": 0, "skip": 0, "no_data": 0, "total": 0, "no_data_list": []}
|
1095
|
+
count_dict = {"success": 0, "fail": 0, "skip": 0, "no_data": 0, "total": 0, "no_data_list": [], "fail_data_list": []}
|
1095
1096
|
|
1096
1097
|
global fsize_dict
|
1097
1098
|
fsize_dict = {}
|
@@ -1162,6 +1163,8 @@ def download(
|
|
1162
1163
|
print("[bold #ecdbfe]=" * mark_len)
|
1163
1164
|
if count_dict["fail"] > 0:
|
1164
1165
|
print("[bold #be5528]Please try again to download the failed data later.")
|
1166
|
+
for fail_data in count_dict["fail_data_list"]:
|
1167
|
+
print(f"[bold #d81b60]{fail_data}")
|
1165
1168
|
if count_dict["no_data"] > 0:
|
1166
1169
|
print(f"[bold #f90000]{count_dict['no_data']} data entries do not exist in any dataset or version.")
|
1167
1170
|
for no_data in count_dict["no_data_list"]:
|
@@ -1,20 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-04-17 15:16:02
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-17 15:16:04
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\hycom_3hourly copy.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
|
-
|
17
|
-
|
18
1
|
import asyncio
|
19
2
|
import datetime
|
20
3
|
import logging
|
oafuncs/oa_down/idm.py
CHANGED
@@ -1,20 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-03-27 16:51:26
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-07 13:38:27
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\idm.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
|
-
|
17
|
-
|
18
1
|
import datetime
|
19
2
|
import os
|
20
3
|
from subprocess import call
|
oafuncs/oa_down/literature.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-11-28 10:42:56
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-01-05 10:51:42
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\literature.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import os
|
17
2
|
import re
|
18
3
|
import time
|
oafuncs/oa_down/read_proxy.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-04-17 13:59:14
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-17 14:00:38
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\read_proxy.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import threading
|
17
2
|
from queue import Queue
|
18
3
|
import random
|
oafuncs/oa_down/user_agent.py
CHANGED
@@ -1,17 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-12-26 08:06:34
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-12-26 08:06:34
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_down\\user_agent.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
1
|
import os
|
16
2
|
import random
|
17
3
|
|
oafuncs/oa_draw.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-09-17 17:26:11
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-11-21 13:10:47
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_draw.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
"""
|
15
|
-
|
16
1
|
import warnings
|
17
2
|
|
18
3
|
import cartopy.crs as ccrs
|
@@ -246,58 +231,7 @@ def setup_map(
|
|
246
231
|
right_labels: bool = False,
|
247
232
|
top_labels: bool = False,
|
248
233
|
) -> plt.Axes:
|
249
|
-
"""Setup a complete cartopy map with customizable features.
|
250
|
-
|
251
|
-
Args:
|
252
|
-
axes (plt.Axes): The axes to setup as a map.
|
253
|
-
longitude_data (np.ndarray, optional): Array of longitudes to set map extent.
|
254
|
-
latitude_data (np.ndarray, optional): Array of latitudes to set map extent.
|
255
|
-
map_projection (ccrs.Projection, optional): Coordinate reference system. Defaults to PlateCarree.
|
256
|
-
|
257
|
-
show_land (bool, optional): Whether to show land features. Defaults to True.
|
258
|
-
show_ocean (bool, optional): Whether to show ocean features. Defaults to True.
|
259
|
-
show_coastline (bool, optional): Whether to show coastlines. Defaults to True.
|
260
|
-
show_borders (bool, optional): Whether to show country borders. Defaults to False.
|
261
|
-
land_color (str, optional): Color of land. Defaults to "lightgrey".
|
262
|
-
ocean_color (str, optional): Color of oceans. Defaults to "lightblue".
|
263
|
-
coastline_linewidth (float, optional): Line width for coastlines. Defaults to 0.5.
|
264
|
-
|
265
|
-
show_gridlines (bool, optional): Whether to show gridlines. Defaults to False.
|
266
|
-
longitude_ticks (list[float], optional): Longitude tick positions.
|
267
|
-
latitude_ticks (list[float], optional): Latitude tick positions.
|
268
|
-
tick_decimals (int, optional): Number of decimal places for tick labels. Defaults to 0.
|
269
|
-
|
270
|
-
grid_color (str, optional): Gridline color. Defaults to "k".
|
271
|
-
grid_alpha (float, optional): Gridline transparency. Defaults to 0.5.
|
272
|
-
grid_style (str, optional): Gridline style. Defaults to "--".
|
273
|
-
grid_width (float, optional): Gridline width. Defaults to 0.5.
|
274
|
-
|
275
|
-
show_labels (bool, optional): Whether to show coordinate labels. Defaults to True.
|
276
|
-
left_labels (bool, optional): Show labels on left side. Defaults to True.
|
277
|
-
bottom_labels (bool, optional): Show labels on bottom. Defaults to True.
|
278
|
-
right_labels (bool, optional): Show labels on right side. Defaults to False.
|
279
|
-
top_labels (bool, optional): Show labels on top. Defaults to False.
|
280
|
-
|
281
|
-
Returns:
|
282
|
-
plt.Axes: The configured map axes.
|
283
|
-
|
284
|
-
Examples:
|
285
|
-
>>> # Basic map setup
|
286
|
-
>>> ax = setup_map(ax)
|
287
|
-
|
288
|
-
>>> # Map with gridlines and custom extent
|
289
|
-
>>> ax = setup_map(ax, longitude_data=lon, latitude_data=lat, show_gridlines=True)
|
290
|
-
|
291
|
-
>>> # Customized map
|
292
|
-
>>> ax = setup_map(
|
293
|
-
... ax,
|
294
|
-
... show_gridlines=True,
|
295
|
-
... longitude_ticks=[0, 30, 60],
|
296
|
-
... latitude_ticks=[-30, 0, 30],
|
297
|
-
... land_color='wheat',
|
298
|
-
... ocean_color='lightcyan'
|
299
|
-
... )
|
300
|
-
"""
|
234
|
+
"""Setup a complete cartopy map with customizable features."""
|
301
235
|
from matplotlib import ticker as mticker
|
302
236
|
|
303
237
|
# Add map features
|
@@ -337,11 +271,20 @@ def setup_map(
|
|
337
271
|
|
338
272
|
elif show_labels:
|
339
273
|
# Add tick labels without gridlines
|
340
|
-
#
|
274
|
+
# Generate default tick positions based on current extent if not provided
|
341
275
|
if longitude_ticks is None:
|
342
|
-
|
276
|
+
current_extent = axes.get_extent(crs=map_projection)
|
277
|
+
lon_range = current_extent[1] - current_extent[0]
|
278
|
+
# Generate reasonable tick spacing
|
279
|
+
tick_spacing = 1 if lon_range <= 10 else (5 if lon_range <= 30 else (10 if lon_range <= 90 else 20))
|
280
|
+
longitude_ticks = np.arange(np.ceil(current_extent[0] / tick_spacing) * tick_spacing, current_extent[1] + tick_spacing, tick_spacing)
|
281
|
+
|
343
282
|
if latitude_ticks is None:
|
344
|
-
|
283
|
+
current_extent = axes.get_extent(crs=map_projection)
|
284
|
+
lat_range = current_extent[3] - current_extent[2]
|
285
|
+
# Generate reasonable tick spacing
|
286
|
+
tick_spacing = 1 if lat_range <= 10 else (5 if lat_range <= 30 else (10 if lat_range <= 90 else 20))
|
287
|
+
latitude_ticks = np.arange(np.ceil(current_extent[2] / tick_spacing) * tick_spacing, current_extent[3] + tick_spacing, tick_spacing)
|
345
288
|
|
346
289
|
# Set tick positions and formatters
|
347
290
|
axes.set_xticks(longitude_ticks, crs=map_projection)
|
@@ -349,12 +292,25 @@ def setup_map(
|
|
349
292
|
axes.xaxis.set_major_formatter(lon_formatter)
|
350
293
|
axes.yaxis.set_major_formatter(lat_formatter)
|
351
294
|
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
lat_min, lat_max = np.nanmin(latitude_data), np.nanmax(latitude_data)
|
356
|
-
axes.set_extent([lon_min, lon_max, lat_min, lat_max], crs=map_projection)
|
295
|
+
# Control label visibility based on input parameters
|
296
|
+
axes.tick_params(axis="x", labelbottom=bottom_labels, labeltop=top_labels)
|
297
|
+
axes.tick_params(axis="y", labelleft=left_labels, labelright=right_labels)
|
357
298
|
|
299
|
+
# 只要传入经纬度数据就自动设置范围
|
300
|
+
# 范围必须在cartopy添加地图特征之后设置,因为添加特征可能会改变axes的范围
|
301
|
+
if longitude_data is not None and latitude_data is not None:
|
302
|
+
# 过滤掉NaN,避免极端值影响
|
303
|
+
lon_data = np.asarray(longitude_data)
|
304
|
+
lat_data = np.asarray(latitude_data)
|
305
|
+
lon_valid = lon_data[~np.isnan(lon_data)]
|
306
|
+
lat_valid = lat_data[~np.isnan(lat_data)]
|
307
|
+
if lon_valid.size > 0 and lat_valid.size > 0:
|
308
|
+
lon_min, lon_max = np.min(lon_valid), np.max(lon_valid)
|
309
|
+
lat_min, lat_max = np.min(lat_valid), np.max(lat_valid)
|
310
|
+
axes.set_extent([lon_min, lon_max, lat_min, lat_max], crs=map_projection)
|
311
|
+
else:
|
312
|
+
# 若全是NaN则不设置范围
|
313
|
+
pass
|
358
314
|
return axes
|
359
315
|
|
360
316
|
|
@@ -379,14 +335,14 @@ class MidpointNormalize(mpl.colors.Normalize):
|
|
379
335
|
# Use the clip parameter from initialization if not provided
|
380
336
|
if clip is None:
|
381
337
|
clip = self.clip
|
382
|
-
|
338
|
+
|
383
339
|
x, y = [self.vmin, self.vcenter, self.vmax], [0, 0.5, 1.0]
|
384
340
|
result = np.interp(value, x, y)
|
385
|
-
|
341
|
+
|
386
342
|
# Apply clipping if requested
|
387
343
|
if clip:
|
388
344
|
result = np.clip(result, 0, 1)
|
389
|
-
|
345
|
+
|
390
346
|
return np.ma.masked_array(result)
|
391
347
|
|
392
348
|
def inverse(self, value: np.ndarray) -> np.ndarray:
|
oafuncs/oa_help.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-10-06 19:25:29
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-01-01 21:09:58
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_help.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import oafuncs
|
17
2
|
import pkgutil
|
18
3
|
import importlib
|
oafuncs/oa_python.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
"""
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2025-03-27 16:51:26
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-05 14:17:07
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_python.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.12
|
14
|
-
"""
|
15
|
-
|
16
1
|
import os
|
17
2
|
from typing import List, Optional
|
18
3
|
|
oafuncs/oa_sign/__init__.py
CHANGED
@@ -1,18 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
'''
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-09-17 16:09:20
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-10-14 18:12:12
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\OAFuncs\\oa_sign\\__init__.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
'''
|
15
|
-
|
16
1
|
# from .love_ocean import sign as love_ocean
|
17
2
|
# from .meteorological_home import sign as meteorological_home
|
18
3
|
|
@@ -1,19 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
'''
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-10-14 16:14:50
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2025-04-04 20:37:13
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_sign\\meteorological.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
'''
|
15
|
-
|
16
|
-
|
17
1
|
import warnings
|
18
2
|
from rich import print
|
19
3
|
from bs4 import BeautifulSoup
|
oafuncs/oa_sign/ocean.py
CHANGED
@@ -1,19 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
'''
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-10-14 16:59:26
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-11-21 13:16:14
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_sign\\ocean.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
'''
|
15
|
-
|
16
|
-
|
17
1
|
import hashlib
|
18
2
|
import time
|
19
3
|
import warnings
|
oafuncs/oa_sign/scientific.py
CHANGED
@@ -1,19 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# coding=utf-8
|
3
|
-
'''
|
4
|
-
Author: Liu Kun && 16031215@qq.com
|
5
|
-
Date: 2024-10-14 18:29:52
|
6
|
-
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-10-14 18:57:39
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\OAFuncs\\oa_sign\\scientific.py
|
9
|
-
Description:
|
10
|
-
EditPlatform: vscode
|
11
|
-
ComputerInfo: XPS 15 9510
|
12
|
-
SystemInfo: Windows 11
|
13
|
-
Python Version: 3.11
|
14
|
-
'''
|
15
|
-
|
16
|
-
|
17
1
|
import time
|
18
2
|
|
19
3
|
import requests
|
@@ -0,0 +1,45 @@
|
|
1
|
+
oafuncs/__init__.py,sha256=T_-VtnWWllV3Q91twT5Yt2sUapeA051QbPNnBxmg9nw,1456
|
2
|
+
oafuncs/oa_cmap.py,sha256=LL2JSIofwVRymgEILjMCB4Iuz7hOYF-QemfNkaZqbk0,13880
|
3
|
+
oafuncs/oa_data.py,sha256=Wp7Yn6n-WNddAp1UtwK5CSEdGSrzzgOH5gtaOHBaxtw,8065
|
4
|
+
oafuncs/oa_date.py,sha256=aU2wVIWXyWoRiSQ9dg8sHvShFTxw86RrgbV3Q6tDjD4,6841
|
5
|
+
oafuncs/oa_draw.py,sha256=37Zok96Pn7aIpNqZ082cSycT8dSccgwHzScXZXNnfik,13701
|
6
|
+
oafuncs/oa_file.py,sha256=fLb0gRhq2AiPl-5ASDHMrx6Z267FmhqNcTV7CdCxTdI,16934
|
7
|
+
oafuncs/oa_help.py,sha256=0J5VaZX-cB0c090KxgmktQJBc0o00FsY-4wB8l5y00k,4178
|
8
|
+
oafuncs/oa_nc.py,sha256=TMrrPBdPz1IJ-7dMOD_gzzTbG6FHSgm-ZfdlvoJDtcY,15245
|
9
|
+
oafuncs/oa_python.py,sha256=xYMQnM0cGq9xUCtcoMpnN0LG5Rc_s94tai5nC6CNJ3E,4831
|
10
|
+
oafuncs/oa_tool.py,sha256=Zuaoa92wll0YqXGRf0oF_c7wlATtl7bvjCuLt9VLXp0,8046
|
11
|
+
oafuncs/_data/hycom.png,sha256=MadKs6Gyj5n9-TOu7L4atQfTXtF9dvN9w-tdU9IfygI,10945710
|
12
|
+
oafuncs/_data/oafuncs.png,sha256=o3VD7wm-kwDea5E98JqxXl04_78cBX7VcdUt7uQXGiU,3679898
|
13
|
+
oafuncs/_script/cprogressbar.py,sha256=nIOs42t6zURLTNjJglavqrI2TKO9GWD0AmZ_DOBmXDU,15949
|
14
|
+
oafuncs/_script/data_interp.py,sha256=gr1coA2N1mxzS4iv6S0C4lZpEQbuuHHNW-08RrhgPAA,4774
|
15
|
+
oafuncs/_script/email.py,sha256=l5xDgdVj8O5V0J2SwjsHKdUuxOH2jZvwdMO_P0dImHU,2684
|
16
|
+
oafuncs/_script/netcdf_merge.py,sha256=tM9ePqLiEsE7eIsNM5XjEYeXwxjYOdNz5ejnEuI7xKw,6066
|
17
|
+
oafuncs/_script/netcdf_modify.py,sha256=XDlAEToe_lwfAetkBSENqU5df-wnH7MGuxNTjG1gwHY,4178
|
18
|
+
oafuncs/_script/netcdf_write.py,sha256=GvyUyUhzMonzSp3y4pT8ZAfbQrsh5J3dLnmINYJKhuE,21422
|
19
|
+
oafuncs/_script/parallel.py,sha256=07-BJVHxXJNlrOrhrSGt7qCZiKWq6dBvNDBA1AANYnI,8861
|
20
|
+
oafuncs/_script/parallel_test.py,sha256=0GBqZOX7IaCOKF2t1y8N8YYu53GJ33OkfsWgpvZNqM4,372
|
21
|
+
oafuncs/_script/plot_dataset.py,sha256=QrA4vOCzWbAJp3hf5YYzgIRUZdJB5_ugepgyT_YfnaY,16327
|
22
|
+
oafuncs/_script/replace_file_content.py,sha256=wIwvaISFNYWG58BLZHZP9ZgbC5OhoZ-cpR3y25U1EUM,5601
|
23
|
+
oafuncs/oa_down/User_Agent-list.txt,sha256=pHaMlElMvZ8TG4vf4BqkZYKqe0JIGkr4kCN0lM1Y9FQ,514295
|
24
|
+
oafuncs/oa_down/__init__.py,sha256=IT6oTqaxuV_mC6AwBut0HtkmnVtEu1MyX0x0oS7TKoA,218
|
25
|
+
oafuncs/oa_down/hycom_3hourly.py,sha256=y2ZoT1uCpWRJaOMRXzvW1e9f9lXzTTqw5kYVumzms5Q,55266
|
26
|
+
oafuncs/oa_down/hycom_3hourly_proxy.py,sha256=xNAPSuTP0fvBAGMv16eeB2TCvNhS2cJq3M5F4GUmPN8,54180
|
27
|
+
oafuncs/oa_down/idm.py,sha256=vAhRjt_Sb-rKhzFShmSf29QcFTqsHpHXCvTSD1uSXyQ,1455
|
28
|
+
oafuncs/oa_down/literature.py,sha256=7Qy5OphcjdRwY2uZ5hmmgK36U_QtVmEUSW0vQaxihC8,10960
|
29
|
+
oafuncs/oa_down/read_proxy.py,sha256=HQpr-Mwn0Z8ICAuf63NUUY9p05E_uNWyWmOK46-73Ec,2866
|
30
|
+
oafuncs/oa_down/test_ua.py,sha256=l8MCD6yU2W75zRPTDKUZTJhCWNF9lfk-MiSFqAqKH1M,1398
|
31
|
+
oafuncs/oa_down/user_agent.py,sha256=LCVQUA60ukUqeJXgLktDHB2sh-ngk7AiX4sKj8w-X4A,416
|
32
|
+
oafuncs/oa_model/__init__.py,sha256=__ImltHkP1bSsIpsmKpDE8QwwA-2Z8K7mZUHGGcRdro,484
|
33
|
+
oafuncs/oa_model/roms/__init__.py,sha256=g-_iv2vUFUnSsKWc7pzGRfkNUvhxfG-Bn4deqfGwxyo,474
|
34
|
+
oafuncs/oa_model/roms/test.py,sha256=j3xiZdf3YtQQbNoT3Op_-GxI_zjKYtS3Hk6CTcnoBmA,425
|
35
|
+
oafuncs/oa_model/wrf/__init__.py,sha256=_2qUijimSlu7fsqlZunkZ4NF_FXSENwU5YmlJ9BZ6fM,473
|
36
|
+
oafuncs/oa_model/wrf/little_r.py,sha256=wx9vzfGznVuaa4T6m_4N89I1a57KZSLQ382EA5iu2Io,7458
|
37
|
+
oafuncs/oa_sign/__init__.py,sha256=JSx1fcWpmNhQBvX_Bmq3xysfSkkFMrjbJASxV_V6aqE,192
|
38
|
+
oafuncs/oa_sign/meteorological.py,sha256=3MSjy7HTcvz2zsITkjUMr_0Y027Gas1LFE9pk99990k,6110
|
39
|
+
oafuncs/oa_sign/ocean.py,sha256=3uYEzaq-27yVy23IQoqy-clhWu1I_fhPFBAQyT-OF4M,5562
|
40
|
+
oafuncs/oa_sign/scientific.py,sha256=moIl2MEY4uitbXoD596JmXookXGQtQsS-8_1NBBTx84,4689
|
41
|
+
oafuncs-0.0.98.34.dist-info/licenses/LICENSE.txt,sha256=rMtLpVg8sKiSlwClfR9w_Dd_5WubTQgoOzE2PDFxzs4,1074
|
42
|
+
oafuncs-0.0.98.34.dist-info/METADATA,sha256=fUtjS8AeoOMXC6t8r1_JbgOrKytjNumx_gD89e3Sb30,4326
|
43
|
+
oafuncs-0.0.98.34.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
44
|
+
oafuncs-0.0.98.34.dist-info/top_level.txt,sha256=bgC35QkXbN4EmPHEveg_xGIZ5i9NNPYWqtJqaKqTPsQ,8
|
45
|
+
oafuncs-0.0.98.34.dist-info/RECORD,,
|
@@ -1,45 +0,0 @@
|
|
1
|
-
oafuncs/__init__.py,sha256=T_-VtnWWllV3Q91twT5Yt2sUapeA051QbPNnBxmg9nw,1456
|
2
|
-
oafuncs/oa_cmap.py,sha256=KKEM3Dx0RYYFdLaj0eX6p1iQ1IcKR0RZmt7a3bMGO3Y,13609
|
3
|
-
oafuncs/oa_data.py,sha256=Wp7Yn6n-WNddAp1UtwK5CSEdGSrzzgOH5gtaOHBaxtw,8065
|
4
|
-
oafuncs/oa_date.py,sha256=aU2wVIWXyWoRiSQ9dg8sHvShFTxw86RrgbV3Q6tDjD4,6841
|
5
|
-
oafuncs/oa_draw.py,sha256=xry1Roty5P4LD_VXLSzEwfh_Yx3RwCLz-xib1H9MwmI,15172
|
6
|
-
oafuncs/oa_file.py,sha256=fLb0gRhq2AiPl-5ASDHMrx6Z267FmhqNcTV7CdCxTdI,16934
|
7
|
-
oafuncs/oa_help.py,sha256=_4AZgRDq5Or0vauNvq5IDDHIBoBfdOQtzak-mG1wwAw,4537
|
8
|
-
oafuncs/oa_nc.py,sha256=TMrrPBdPz1IJ-7dMOD_gzzTbG6FHSgm-ZfdlvoJDtcY,15245
|
9
|
-
oafuncs/oa_python.py,sha256=NkopwkYFGSEuVljnTBvXCl6o2CeyRNBqRXSsUl3euEE,5192
|
10
|
-
oafuncs/oa_tool.py,sha256=Zuaoa92wll0YqXGRf0oF_c7wlATtl7bvjCuLt9VLXp0,8046
|
11
|
-
oafuncs/_data/hycom.png,sha256=MadKs6Gyj5n9-TOu7L4atQfTXtF9dvN9w-tdU9IfygI,10945710
|
12
|
-
oafuncs/_data/oafuncs.png,sha256=o3VD7wm-kwDea5E98JqxXl04_78cBX7VcdUt7uQXGiU,3679898
|
13
|
-
oafuncs/_script/cprogressbar.py,sha256=nIOs42t6zURLTNjJglavqrI2TKO9GWD0AmZ_DOBmXDU,15949
|
14
|
-
oafuncs/_script/data_interp.py,sha256=EiZbt6n5BEaRKcng88UgX7TFPhKE6TLVZniS01awXjg,5146
|
15
|
-
oafuncs/_script/email.py,sha256=l5xDgdVj8O5V0J2SwjsHKdUuxOH2jZvwdMO_P0dImHU,2684
|
16
|
-
oafuncs/_script/netcdf_merge.py,sha256=tM9ePqLiEsE7eIsNM5XjEYeXwxjYOdNz5ejnEuI7xKw,6066
|
17
|
-
oafuncs/_script/netcdf_modify.py,sha256=sGRUYNhfGgf9JV70rnBzw3bzuTRSXzBTL_RMDnDPeLQ,4552
|
18
|
-
oafuncs/_script/netcdf_write.py,sha256=GvyUyUhzMonzSp3y4pT8ZAfbQrsh5J3dLnmINYJKhuE,21422
|
19
|
-
oafuncs/_script/parallel.py,sha256=07-BJVHxXJNlrOrhrSGt7qCZiKWq6dBvNDBA1AANYnI,8861
|
20
|
-
oafuncs/_script/parallel_test.py,sha256=0GBqZOX7IaCOKF2t1y8N8YYu53GJ33OkfsWgpvZNqM4,372
|
21
|
-
oafuncs/_script/plot_dataset.py,sha256=4jhUZNIc2DLHnk5GH0rotzhOq0cAMmB7rhMJKorYObo,16329
|
22
|
-
oafuncs/_script/replace_file_content.py,sha256=eCFZjnZcwyRvy6b4mmIfBna-kylSZTyJRfgXd6DdCjk,5982
|
23
|
-
oafuncs/oa_down/User_Agent-list.txt,sha256=pHaMlElMvZ8TG4vf4BqkZYKqe0JIGkr4kCN0lM1Y9FQ,514295
|
24
|
-
oafuncs/oa_down/__init__.py,sha256=kRX5eTUCbAiz3zTaQM1501paOYS_3fizDN4Pa0mtNUA,585
|
25
|
-
oafuncs/oa_down/hycom_3hourly.py,sha256=pfUMZp_Tmfh3LbOV5Gd87998ZenuAFOAnxy1Vxi1NpM,55071
|
26
|
-
oafuncs/oa_down/hycom_3hourly_proxy.py,sha256=1eaoJGI_m-7w4ZZ3n7NGxkZaeFdsm0d3U-hyw8RFNbc,54563
|
27
|
-
oafuncs/oa_down/idm.py,sha256=4z5IvgfTyIKEI1kOtqXZwN7Jnfjwp6qDBOIoVyOLp0I,1823
|
28
|
-
oafuncs/oa_down/literature.py,sha256=2bF9gSKQbzcci9LcKE81j8JEjIJwON7jbwQB3gDDA3E,11331
|
29
|
-
oafuncs/oa_down/read_proxy.py,sha256=f5YidVA2ISRFNm-pgRsb_Omj0dySevrhcVoH6Y125UU,3237
|
30
|
-
oafuncs/oa_down/test_ua.py,sha256=l8MCD6yU2W75zRPTDKUZTJhCWNF9lfk-MiSFqAqKH1M,1398
|
31
|
-
oafuncs/oa_down/user_agent.py,sha256=TsPcAxFmMTYAEHRFjurI1bQBJfDhcA70MdHoUPwQmks,785
|
32
|
-
oafuncs/oa_model/__init__.py,sha256=__ImltHkP1bSsIpsmKpDE8QwwA-2Z8K7mZUHGGcRdro,484
|
33
|
-
oafuncs/oa_model/roms/__init__.py,sha256=g-_iv2vUFUnSsKWc7pzGRfkNUvhxfG-Bn4deqfGwxyo,474
|
34
|
-
oafuncs/oa_model/roms/test.py,sha256=j3xiZdf3YtQQbNoT3Op_-GxI_zjKYtS3Hk6CTcnoBmA,425
|
35
|
-
oafuncs/oa_model/wrf/__init__.py,sha256=_2qUijimSlu7fsqlZunkZ4NF_FXSENwU5YmlJ9BZ6fM,473
|
36
|
-
oafuncs/oa_model/wrf/little_r.py,sha256=wx9vzfGznVuaa4T6m_4N89I1a57KZSLQ382EA5iu2Io,7458
|
37
|
-
oafuncs/oa_sign/__init__.py,sha256=QKqTFrJDFK40C5uvk48GlRRbGFzO40rgkYwu6dYxatM,563
|
38
|
-
oafuncs/oa_sign/meteorological.py,sha256=8091SHo2L8kl4dCFmmSH5NGVHDku5i5lSiLEG5DLnOQ,6489
|
39
|
-
oafuncs/oa_sign/ocean.py,sha256=xrW-rWD7xBWsB5PuCyEwQ1Q_RDKq2KCLz-LOONHgldU,5932
|
40
|
-
oafuncs/oa_sign/scientific.py,sha256=a4JxOBgm9vzNZKpJ_GQIQf7cokkraV5nh23HGbmTYKw,5064
|
41
|
-
oafuncs-0.0.98.32.dist-info/licenses/LICENSE.txt,sha256=rMtLpVg8sKiSlwClfR9w_Dd_5WubTQgoOzE2PDFxzs4,1074
|
42
|
-
oafuncs-0.0.98.32.dist-info/METADATA,sha256=qCDKj6VKcdl60LTnWfzGqEDg0opylNPBgfhs6dHddfQ,4326
|
43
|
-
oafuncs-0.0.98.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
44
|
-
oafuncs-0.0.98.32.dist-info/top_level.txt,sha256=bgC35QkXbN4EmPHEveg_xGIZ5i9NNPYWqtJqaKqTPsQ,8
|
45
|
-
oafuncs-0.0.98.32.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|