dimine-python-sdk 0.1.8__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.
Files changed (135) hide show
  1. dimine_python_sdk/__init__.py +13 -0
  2. dimine_python_sdk/conn/__init__.py +5 -0
  3. dimine_python_sdk/conn/base_conn_client.py +167 -0
  4. dimine_python_sdk/conn/conn_client.py +382 -0
  5. dimine_python_sdk/docs/guides/data_edit.md +306 -0
  6. dimine_python_sdk/docs/guides/data_get.md +266 -0
  7. dimine_python_sdk/docs/guides/data_types.md +152 -0
  8. dimine_python_sdk/docs/guides/features.md +271 -0
  9. dimine_python_sdk/docs/guides/io.md +157 -0
  10. dimine_python_sdk/docs/index.md +41 -0
  11. dimine_python_sdk/docs/quickstart.md +45 -0
  12. dimine_python_sdk/docs/reference/SUMMARY.md +19 -0
  13. dimine_python_sdk/docs/reference/conn/base_conn_client.md +3 -0
  14. dimine_python_sdk/docs/reference/conn/conn_client.md +3 -0
  15. dimine_python_sdk/docs/reference/lib/algorithm/model_func.md +3 -0
  16. dimine_python_sdk/docs/reference/lib/io/file_conversion.md +3 -0
  17. dimine_python_sdk/docs/reference/lib/io/models.md +3 -0
  18. dimine_python_sdk/docs/reference/lib/io/project_plotting.md +3 -0
  19. dimine_python_sdk/docs/reference/lib/prospecting/block_data.md +3 -0
  20. dimine_python_sdk/docs/reference/lib/prospecting/drill_db.md +3 -0
  21. dimine_python_sdk/docs/reference/lib/prospecting/models.md +3 -0
  22. dimine_python_sdk/docs/reference/lib/prospecting/valuation.md +3 -0
  23. dimine_python_sdk/docs/reference/lib/types/entity.md +3 -0
  24. dimine_python_sdk/docs/reference/lib/types/line.md +3 -0
  25. dimine_python_sdk/docs/reference/lib/types/point.md +3 -0
  26. dimine_python_sdk/docs/reference/logger.md +3 -0
  27. dimine_python_sdk/docs/reference/models/conn.md +3 -0
  28. dimine_python_sdk/docs/reference/models/errors.md +3 -0
  29. dimine_python_sdk/docs/reference/models/types.md +3 -0
  30. dimine_python_sdk/docs/summary.md +6 -0
  31. dimine_python_sdk/lib/__init__.py +20 -0
  32. dimine_python_sdk/lib/algorithm/__init__.py +1 -0
  33. dimine_python_sdk/lib/algorithm/model_func.py +219 -0
  34. dimine_python_sdk/lib/exploitation/__init__.py +0 -0
  35. dimine_python_sdk/lib/io/__init__.py +2 -0
  36. dimine_python_sdk/lib/io/file_conversion.py +143 -0
  37. dimine_python_sdk/lib/io/models.py +180 -0
  38. dimine_python_sdk/lib/io/project_plotting.py +40 -0
  39. dimine_python_sdk/lib/prospecting/__init__.py +3 -0
  40. dimine_python_sdk/lib/prospecting/block_data.py +289 -0
  41. dimine_python_sdk/lib/prospecting/drill_db.py +333 -0
  42. dimine_python_sdk/lib/prospecting/models.py +276 -0
  43. dimine_python_sdk/lib/prospecting/valuation.py +113 -0
  44. dimine_python_sdk/lib/types/__init__.py +4 -0
  45. dimine_python_sdk/lib/types/entity.py +957 -0
  46. dimine_python_sdk/lib/types/line.py +188 -0
  47. dimine_python_sdk/lib/types/point.py +695 -0
  48. dimine_python_sdk/logger.py +7 -0
  49. dimine_python_sdk/models/__init__.py +3 -0
  50. dimine_python_sdk/models/conn.py +53 -0
  51. dimine_python_sdk/models/errors.py +4 -0
  52. dimine_python_sdk/models/types.py +131 -0
  53. dimine_python_sdk/site/404.html +671 -0
  54. dimine_python_sdk/site/assets/_mkdocstrings.css +237 -0
  55. dimine_python_sdk/site/assets/images/favicon.png +0 -0
  56. dimine_python_sdk/site/assets/javascripts/bundle.79ae519e.min.js +16 -0
  57. dimine_python_sdk/site/assets/javascripts/bundle.79ae519e.min.js.map +7 -0
  58. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  59. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  60. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  61. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  62. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  63. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  64. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  65. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  66. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  67. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  68. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  69. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  70. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  71. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  72. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  73. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  74. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  75. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  76. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  77. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  78. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  79. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  80. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  81. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  82. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  83. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  84. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  85. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  86. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  87. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  88. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  89. dimine_python_sdk/site/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  90. dimine_python_sdk/site/assets/javascripts/lunr/tinyseg.js +206 -0
  91. dimine_python_sdk/site/assets/javascripts/lunr/wordcut.js +6708 -0
  92. dimine_python_sdk/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
  93. dimine_python_sdk/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  94. dimine_python_sdk/site/assets/stylesheets/main.484c7ddc.min.css +1 -0
  95. dimine_python_sdk/site/assets/stylesheets/main.484c7ddc.min.css.map +1 -0
  96. dimine_python_sdk/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  97. dimine_python_sdk/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  98. dimine_python_sdk/site/guides/data_edit.html +1251 -0
  99. dimine_python_sdk/site/guides/data_get.html +1206 -0
  100. dimine_python_sdk/site/guides/data_types.html +1529 -0
  101. dimine_python_sdk/site/guides/features.html +1217 -0
  102. dimine_python_sdk/site/guides/io.html +1025 -0
  103. dimine_python_sdk/site/index.html +849 -0
  104. dimine_python_sdk/site/objects.inv +0 -0
  105. dimine_python_sdk/site/quickstart.html +859 -0
  106. dimine_python_sdk/site/reference/SUMMARY.html +729 -0
  107. dimine_python_sdk/site/reference/conn/base_conn_client.html +1295 -0
  108. dimine_python_sdk/site/reference/conn/conn_client.html +3551 -0
  109. dimine_python_sdk/site/reference/lib/algorithm/model_func.html +2162 -0
  110. dimine_python_sdk/site/reference/lib/io/file_conversion.html +1725 -0
  111. dimine_python_sdk/site/reference/lib/io/models.html +1625 -0
  112. dimine_python_sdk/site/reference/lib/io/project_plotting.html +984 -0
  113. dimine_python_sdk/site/reference/lib/prospecting/block_data.html +2455 -0
  114. dimine_python_sdk/site/reference/lib/prospecting/drill_db.html +2836 -0
  115. dimine_python_sdk/site/reference/lib/prospecting/models.html +2309 -0
  116. dimine_python_sdk/site/reference/lib/prospecting/valuation.html +1373 -0
  117. dimine_python_sdk/site/reference/lib/types/entity.html +6728 -0
  118. dimine_python_sdk/site/reference/lib/types/line.html +1985 -0
  119. dimine_python_sdk/site/reference/lib/types/point.html +3672 -0
  120. dimine_python_sdk/site/reference/logger.html +751 -0
  121. dimine_python_sdk/site/reference/models/conn.html +751 -0
  122. dimine_python_sdk/site/reference/models/errors.html +802 -0
  123. dimine_python_sdk/site/reference/models/types.html +1679 -0
  124. dimine_python_sdk/site/search/search_index.json +1 -0
  125. dimine_python_sdk/site/sitemap.xml +107 -0
  126. dimine_python_sdk/site/sitemap.xml.gz +0 -0
  127. dimine_python_sdk/site/summary.html +697 -0
  128. dimine_python_sdk-0.1.8.dist-info/METADATA +15 -0
  129. dimine_python_sdk-0.1.8.dist-info/RECORD +135 -0
  130. dimine_python_sdk-0.1.8.dist-info/WHEEL +5 -0
  131. dimine_python_sdk-0.1.8.dist-info/top_level.txt +2 -0
  132. tests/conn_test.py +250 -0
  133. tests/test_base_type.py +143 -0
  134. tests/ws_client.py +60 -0
  135. tests/ws_server.py +271 -0
@@ -0,0 +1,276 @@
1
+ import json
2
+ from typing import Dict, Any, Optional
3
+ from dataclasses import dataclass
4
+
5
+ class BlockModelCommonParams:
6
+ """块段模型估值通用参数基类(距离幂/克里格共用)"""
7
+ # 基础配置
8
+ sample_file: str # 样品数据文件路径
9
+ variable: str # 估值变量(如品位字段名)
10
+ extra_attribute: str # 额外属性字段(如岩性、厚度等)
11
+ # 估值范围
12
+ min_value: float # 估值最小值
13
+ max_value: float # 估值最大值
14
+ # 块段尺寸
15
+ single_block_min: float # 单块最小尺寸
16
+ single_block_max: float # 单块最大尺寸
17
+ sub_block_main: float # 子块主方向尺寸
18
+ sub_block_second: float # 子块次方向尺寸
19
+ sub_block_short: float # 子块短方向尺寸
20
+ # 角度参数
21
+ angle_main: float # 主方向角度(度)
22
+ angle_second: float # 次方向角度(度)
23
+ angle_short: float # 短方向角度(度)
24
+ # 搜索半径
25
+ main_radius: float # 主方向搜索半径
26
+ second_main_rate: float # 次方向搜索半径比例(相对于主方向)
27
+ short_main_rate: float # 短方向搜索半径比例(相对于主方向)
28
+ # 搜索策略
29
+ octant_max: int # 每个八象限最大样品数
30
+ project_count_min: int # 最小投影方向数量
31
+ single_project_sample_max: int # 单个投影方向最大样品数
32
+
33
+ def __init__(self, sample_file: str, variable: str, extra_attribute: str,
34
+ min_value: float, max_value: float,
35
+ single_block_min: float, single_block_max: float,
36
+ sub_block_main: float, sub_block_second: float, sub_block_short: float,
37
+ angle_main: float, angle_second: float, angle_short: float,
38
+ main_radius: float, second_main_rate: float, short_main_rate: float,
39
+ octant_max: int, project_count_min: int, single_project_sample_max: int):
40
+ # 批量赋值通用属性
41
+ self.sample_file = sample_file
42
+ self.variable = variable
43
+ self.extra_attribute = extra_attribute
44
+ self.min_value = min_value
45
+ self.max_value = max_value
46
+ self.single_block_min = single_block_min
47
+ self.single_block_max = single_block_max
48
+ self.sub_block_main = sub_block_main
49
+ self.sub_block_second = sub_block_second
50
+ self.sub_block_short = sub_block_short
51
+ self.angle_main = angle_main
52
+ self.angle_second = angle_second
53
+ self.angle_short = angle_short
54
+ self.main_radius = main_radius
55
+ self.second_main_rate = second_main_rate
56
+ self.short_main_rate = short_main_rate
57
+ self.octant_max = octant_max
58
+ self.project_count_min = project_count_min
59
+ self.single_project_sample_max = single_project_sample_max
60
+
61
+ # -------------------------- 2. 距离幂专属参数类--------------------------
62
+ class BlockModelDistancePowerParams(BlockModelCommonParams):
63
+ """距离幂估值专属参数类(继承通用参数+新增距离幂特有参数)"""
64
+ power: int # 距离幂次(如2.0,距离幂专属)
65
+
66
+ def __init__(self, power: int, *args, **kwargs):
67
+ super().__init__(*args, **kwargs)
68
+ self.power = power
69
+
70
+ # -------------------------- 3. 克里格专属参数类--------------------------
71
+ class BlockModelKrigingParams(BlockModelCommonParams):
72
+ """克里格估值专属参数类(继承通用参数+新增克里格特有参数)"""
73
+ krig_type: int # 克里格类型
74
+ sk: int # 克里格相关参数
75
+ c0: int # 块金值
76
+ variational_function: list = [{
77
+ "type":0,
78
+ "range":22,
79
+ "cc":0.162586
80
+ }]
81
+
82
+ def __init__(self, krig_type: int, sk: int, c0: int, variational_function:dict[str,int],*args, **kwargs):
83
+ super().__init__(*args, **kwargs)
84
+ self.krig_type = krig_type
85
+ self.sk = sk
86
+ self.c0 = c0
87
+ self.variational_function = variational_function
88
+
89
+ @dataclass
90
+ class BlockModelConstraint:
91
+ """
92
+ 块段模型约束参数结构
93
+ 用于定义模型计算时的边界约束、范围过滤等条件
94
+ """
95
+ type: int # 约束类型,0 通常表示“实体约束”
96
+ file: str # 约束实体文件路径(如 DMF 文件)
97
+ range: int # 约束范围,0 表示使用完整实体范围
98
+ inside_level: int # 内部精度层级(控制约束的精细度)
99
+ boundary_level: int # 边界精度层级(控制边界的精细度)
100
+ bool_operate: str # 布尔运算方式,"and" 表示与其他约束叠加
101
+
102
+ def to_dict(self) -> Dict[str, Any]:
103
+ """
104
+ 将参数转换为字典,用于序列化为JSON
105
+ """
106
+ return {
107
+ "type": self.type,
108
+ "file": self.file,
109
+ "range": self.range,
110
+ "inside_level": self.inside_level,
111
+ "boundary_level": self.boundary_level,
112
+ "bool_operate": self.bool_operate
113
+ }
114
+
115
+ @dataclass
116
+ class ReservesCalculateParam:
117
+ """估值算量参数"""
118
+ weight_field:str#体重字段
119
+ default_weight:float#默认体重
120
+ main_field:str#主统计字段
121
+ other_field:str#其他统计字段
122
+
123
+ def to_dict(self) -> Dict[str, Any]:
124
+ """
125
+ 将参数转换为字典,用于序列化为JSON
126
+ """
127
+ return {
128
+ "weight_field":self.weight_field,
129
+ "default_weight": self.default_weight,
130
+ "main_field": self.main_field,
131
+ "other_field": self.other_field
132
+ }
133
+
134
+ @dataclass
135
+ class ModelTransformParams:
136
+ """
137
+ 创建空块段模型参数
138
+ """
139
+
140
+ file_name: str
141
+ # 原点
142
+ origin_x: float
143
+ origin_y: float
144
+ origin_z: float
145
+ # 旋转角度
146
+ rotate_x: float
147
+ rotate_y: float
148
+ rotate_z: float
149
+ # 单元块尺寸
150
+ size_x: float
151
+ size_y: float
152
+ size_z: float
153
+ # 延伸长度
154
+ length_x: float
155
+ length_y: float
156
+ length_z: float
157
+
158
+ def to_dict(self) -> Dict[str, Any]:
159
+ """
160
+ 将参数转换为字典,用于序列化为JSON
161
+ """
162
+ return {
163
+ "file_name": self.file_name,
164
+ "origin_x": self.origin_x,
165
+ "origin_y": self.origin_y,
166
+ "origin_z": self.origin_z,
167
+ "rotate_x": self.rotate_x,
168
+ "rotate_y": self.rotate_y,
169
+ "rotate_z": self.rotate_z,
170
+ "size_x": self.size_x,
171
+ "size_y": self.size_y,
172
+ "size_z": self.size_z,
173
+ "length_x": self.length_x,
174
+ "length_y": self.length_y,
175
+ "length_z": self.length_z
176
+ }
177
+
178
+ @dataclass
179
+ class SampleLengthCombineParam:#样长组合参数
180
+ input_file:str#输入文件
181
+ combine_length:float#组合长度
182
+ combine_percent:float#组合百分比
183
+ output_file:str#输出文件
184
+
185
+ def to_dict(self) -> Dict[str, Any]:
186
+ """
187
+ 将参数转换为字典,用于序列化为JSON
188
+ """
189
+ return {
190
+ "input_file": self.input_file,
191
+ "combine_length": self.combine_length,
192
+ "combine_percent": self.combine_percent,
193
+ "output_file": self.output_file
194
+ }
195
+
196
+ @dataclass
197
+ class StepCombineParam:#台阶组合参数
198
+ input_file:str#输入文件
199
+ step_height:float#台阶高度
200
+ start_height:float#开始高程
201
+ end_height:float#结束高程
202
+ calculate_model:int#计算方式
203
+ low_dip:float#忽略的最小倾角
204
+ output_file:str#输出文件
205
+
206
+ def to_dict(self) -> Dict[str, Any]:
207
+ """
208
+ 将参数转换为字典,用于序列化为JSON
209
+ """
210
+ return {
211
+ "input_file": self.input_file,
212
+ "step_height": self.step_height,
213
+ "start_height": self.start_height,
214
+ "end_height": self.end_height,
215
+ "calculate_model": self.calculate_model,
216
+ "low_dip": self.low_dip,
217
+ "output_file": self.output_file
218
+ }
219
+
220
+ @dataclass
221
+ class HighGradeProcessParam:
222
+ # 特高品位处理参数
223
+ input_file: str # 输入文件路径(数据文件的完整路径/相对路径)
224
+ grade_field: str # 品位字段名(待处理的品位数据列名)
225
+ process_mode: int # 处理模式(0:国内特高品位判定;1:国外特高品位判定)
226
+ average_multiple: float # 平均倍数(品位计算的倍数系数)
227
+ frequency: float # 频率阈值(0-1之间)
228
+ replace_method: int # 替换方式(0:剔除法,1:给定值,2:相邻样品平均值,3:矿体平均品位法,4:单一工程法,5:截止品位法)
229
+ assign_value: float # 给定值方法对应的值
230
+ adjoin_average: float # 相邻样品平均值)
231
+ average_method: int # 平均值计算的方式,0:算数平均,1:长度加权平均
232
+ contain_mode: int # 包含模式(0:包含特高品位,1:不包含特高品位)
233
+ result_field: str # 结果字段名(处理后品位数据的输出列名)
234
+
235
+ def __post_init__(self) -> None:
236
+ """
237
+ 参数合法性校验
238
+ 校验失败时抛出明确的ValueError,包含非法参数名和错误原因
239
+ """
240
+ # 各参数的合法取值范围
241
+ valid_ranges = {
242
+ "process_mode": {0, 1},
243
+ "replace_method": {0, 1, 2, 3, 4, 5},
244
+ "average_method": {0, 1},
245
+ "contain_mode": {0, 1}
246
+ }
247
+
248
+ # 1. 校验枚举型参数(只能取指定整数值)
249
+ for param_name, valid_vals in valid_ranges.items():
250
+ current_val = getattr(self, param_name)
251
+ if current_val not in valid_vals:
252
+ raise ValueError(
253
+ f"参数{param_name}取值非法!合法值:{sorted(valid_vals)},当前值:{current_val}"
254
+ )
255
+
256
+ # 2. 校验频率阈值(必须在0-1之间,包含边界)
257
+ if not 0 <= self.frequency <= 1:
258
+ raise ValueError(
259
+ f"参数frequency取值非法!必须为0-1之间的数值,当前值:{self.frequency}"
260
+ )
261
+
262
+ def to_dict(self) -> dict:
263
+ """将实例的所有属性转换为键值对字典,键为属性名,值为属性当前值"""
264
+ return {
265
+ "input_file": self.input_file,
266
+ "grade_field": self.grade_field,
267
+ "process_mode": self.process_mode,
268
+ "average_multiple": self.average_multiple,
269
+ "frequency": self.frequency,
270
+ "replace_method": self.replace_method,
271
+ "assign_value": self.assign_value,
272
+ "adjoin_average": self.adjoin_average,
273
+ "average_method": self.average_method,
274
+ "contain_mode": self.contain_mode,
275
+ "result_field": self.result_field
276
+ }
@@ -0,0 +1,113 @@
1
+ import DmPyBindInterface as Dm
2
+ from dimine_python_sdk.lib.prospecting.models import BlockModelConstraint,BlockModelKrigingParams, \
3
+ BlockModelDistancePowerParams,ReservesCalculateParam
4
+ import json
5
+ from typing import Dict, Any, Tuple
6
+
7
+ class BlockModelEvaluator:
8
+ """
9
+ 二次封装块段模型评估与储量计算相关函数
10
+ 提供距离幂估值、克里格估值、储量计算等功能
11
+ """
12
+
13
+ @staticmethod
14
+ def distance_power_evaluation(
15
+ block_model_file: str,
16
+ constraint_params: BlockModelConstraint,
17
+ evaluation_params: BlockModelDistancePowerParams,
18
+ overwrite_result: bool = True
19
+ ) -> Tuple[bool, str]:
20
+ """
21
+ 距离幂估值计算
22
+ :param block_model_file: 块段模型文件路径
23
+ :param constraint_params: 约束条件参数(字典)
24
+ :param evaluation_params: 估值计算参数(字典)
25
+ :param overwrite_result: 是否覆盖已有结果
26
+ :return: (是否成功, 结果信息)
27
+
28
+ example:
29
+ ```python
30
+ success, message = BlockModelEvaluator.distance_power_evaluation(
31
+ "model.dmf",
32
+ constraint_params,
33
+ evaluation_params
34
+ )
35
+ ```
36
+ """
37
+ # 将参数序列化为JSON字符串
38
+ constraint_json = json.dumps(constraint_params.to_dict(), ensure_ascii=False)
39
+ evaluation_json = json.dumps(evaluation_params.__dict__, ensure_ascii=False)
40
+
41
+ b_res, message = Dm.DistancePowerEvaluationValue(
42
+ block_model_file,
43
+ constraint_json,
44
+ evaluation_json,
45
+ overwrite_result
46
+ )
47
+ return b_res, message
48
+
49
+ @staticmethod
50
+ def kriging_evaluation(
51
+ block_model_file: str,
52
+ constraint_params: BlockModelConstraint,
53
+ evaluation_params: BlockModelKrigingParams,
54
+ overwrite_result: bool = True
55
+ ) -> Tuple[bool, str]:
56
+ """
57
+ 克里格估值计算
58
+ :param block_model_file: 块段模型文件路径
59
+ :param constraint_params: 约束条件参数
60
+ :param evaluation_params: 估值计算参数
61
+ :param overwrite_result: 是否覆盖已有结果
62
+ :return: (是否成功, 结果信息)
63
+
64
+ example:
65
+ ```python
66
+ success, message = BlockModelEvaluator.kriging_evaluation(
67
+ "model.dmf",
68
+ constraint_params,
69
+ evaluation_params
70
+ )
71
+ ```
72
+ """
73
+ constraint_json = json.dumps(constraint_params.to_dict(), ensure_ascii=False)
74
+ evaluation_json = json.dumps(evaluation_params.__dict__, ensure_ascii=False)
75
+ b_res, message = Dm.KrigEvaluationValue(
76
+ block_model_file,
77
+ constraint_json,
78
+ evaluation_json,
79
+ overwrite_result
80
+ )
81
+ return b_res, message
82
+
83
+ @staticmethod
84
+ def calculate_reserves(
85
+ block_model_file: str,
86
+ constraint_params: BlockModelConstraint,
87
+ reserve_params: ReservesCalculateParam
88
+ ) -> Tuple[bool, str]:
89
+ """
90
+ 储量计算
91
+ :param block_model_file: 块段模型文件路径
92
+ :param constraint_params: 约束条件参数(字典)
93
+ :param reserve_params: 储量计算参数(字典)
94
+ :return: (是否成功, 结果信息)
95
+
96
+ example:
97
+ ```python
98
+ success, message = BlockModelEvaluator.calculate_reserves(
99
+ "model.dmf",
100
+ constraint_params,
101
+ reserve_params
102
+ )
103
+ ```
104
+ """
105
+ constraint_json = json.dumps(constraint_params.to_dict(), ensure_ascii=False)
106
+ reserve_json = json.dumps(reserve_params.to_dict(), ensure_ascii=False)
107
+
108
+ b_res, message = Dm.ReservesCalculate(
109
+ block_model_file,
110
+ constraint_json,
111
+ reserve_json
112
+ )
113
+ return b_res, message
@@ -0,0 +1,4 @@
1
+ # 数据类型模块
2
+ from dimine_python_sdk.lib.types.point import *
3
+ from dimine_python_sdk.lib.types.line import *
4
+ from dimine_python_sdk.lib.types.entity import *