oafuncs 0.0.98.11__tar.gz → 0.0.98.12__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.
- {oafuncs-0.0.98.11/oafuncs.egg-info → oafuncs-0.0.98.12}/PKG-INFO +1 -1
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/netcdf_merge.py +13 -16
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12/oafuncs.egg-info}/PKG-INFO +1 -1
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/setup.py +1 -1
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/LICENSE.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/MANIFEST.in +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/README.md +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_data/hycom.png +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_data/oafuncs.png +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/cprogressbar.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/email.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/netcdf_modify.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/netcdf_write.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/parallel.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/parallel_test.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/plot_dataset.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/_script/replace_file_content.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_cmap.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_data.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_date.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/User_Agent-list.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/hycom_3hourly.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/hycom_3hourly_proxy.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/idm.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/literature.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/read_proxy.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/test_ua.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_down/user_agent.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_draw.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_file.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_help.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_model/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_model/roms/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_model/roms/test.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_model/wrf/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_model/wrf/little_r.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_nc.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_python.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_sign/__init__.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_sign/meteorological.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_sign/ocean.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_sign/scientific.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs/oa_tool.py +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs.egg-info/SOURCES.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs.egg-info/dependency_links.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs.egg-info/requires.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/oafuncs.egg-info/top_level.txt +0 -0
- {oafuncs-0.0.98.11 → oafuncs-0.0.98.12}/setup.cfg +0 -0
@@ -4,7 +4,9 @@ from typing import List, Optional, Union
|
|
4
4
|
import numpy as np
|
5
5
|
import xarray as xr
|
6
6
|
from dask.diagnostics import ProgressBar
|
7
|
+
|
7
8
|
from oafuncs import pbar
|
9
|
+
from oafuncs._script.netcdf_write import _calculate_scale_and_offset # 新增导入
|
8
10
|
|
9
11
|
|
10
12
|
def merge_nc(file_list: Union[str, List[str]], var_name: Optional[Union[str, List[str]]] = None, dim_name: Optional[str] = None, target_filename: Optional[str] = None) -> None:
|
@@ -83,24 +85,19 @@ def merge_nc(file_list: Union[str, List[str]], var_name: Optional[Union[str, Lis
|
|
83
85
|
encoding = {}
|
84
86
|
for var in merged_dataset.data_vars:
|
85
87
|
data = merged_dataset[var].values
|
86
|
-
# print(f"Variable '{var}' ready for writing: min={data.min():.3f}, max={data.max():.3f}, mean={data.mean():.3f}")
|
87
88
|
if data.dtype.kind in {"i", "u", "f"}: # 仅对数值型数据进行压缩
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
"_FillValue": -32767,
|
99
|
-
}
|
100
|
-
else:
|
101
|
-
encoding[var] = {"zlib": True, "complevel": 4} # 范围过小时禁用缩放
|
89
|
+
# 统一调用 netcdf_write 中的 scale/offset 计算
|
90
|
+
scale_factor, add_offset = _calculate_scale_and_offset(data, n=16)
|
91
|
+
encoding[var] = {
|
92
|
+
"zlib": True,
|
93
|
+
"complevel": 4,
|
94
|
+
"dtype": "int16",
|
95
|
+
"scale_factor": scale_factor,
|
96
|
+
"add_offset": add_offset,
|
97
|
+
"_FillValue": -32767,
|
98
|
+
}
|
102
99
|
else:
|
103
|
-
encoding[var] = {"zlib": True, "complevel": 4}
|
100
|
+
encoding[var] = {"zlib": True, "complevel": 4}
|
104
101
|
|
105
102
|
# 确保写入时不会因编码问题导致数据丢失
|
106
103
|
# merged_dataset.to_netcdf(target_filename, encoding=encoding)
|
@@ -18,7 +18,7 @@ URL = "https://github.com/Industry-Pays/OAFuncs"
|
|
18
18
|
EMAIL = "liukun0312@stu.ouc.edu.cn"
|
19
19
|
AUTHOR = "Kun Liu"
|
20
20
|
REQUIRES_PYTHON = ">=3.9.0" # 2025/03/13
|
21
|
-
VERSION = "0.0.98.
|
21
|
+
VERSION = "0.0.98.12"
|
22
22
|
|
23
23
|
# What packages are required for this module to be executed?
|
24
24
|
REQUIRED = [
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|