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.
@@ -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
@@ -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
@@ -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.add_cartopy(ax, lon_range, lat_range)
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"]
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
- # Use current tick positions if not provided
274
+ # Generate default tick positions based on current extent if not provided
341
275
  if longitude_ticks is None:
342
- longitude_ticks = axes.get_xticks()
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
- latitude_ticks = axes.get_yticks()
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
- # Set map extent if data is provided
353
- if longitude_data is not None and latitude_data is not None:
354
- lon_min, lon_max = np.nanmin(longitude_data), np.nanmax(longitude_data)
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
 
@@ -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
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oafuncs
3
- Version: 0.0.98.32
3
+ Version: 0.0.98.34
4
4
  Summary: Oceanic and Atmospheric Functions
5
5
  Home-page: https://github.com/Industry-Pays/OAFuncs
6
6
  Author: Kun Liu
@@ -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,,