techlog变量单位设置错误怎么办?
软件: techlog
Techlog变量单位设置错误的解决方法
1. 使用Techlog内置工具批量修改变量单位
Techlog提供Query Rename Tool(QRT)工具,可高效批量修改变量单位。操作步骤如下:
在工区浏览器中,通过过滤功能定位需要修改单位的变量(如变量名包含特定关键词、属于某一Family);
打开QRT工具,切换至“单位修改”功能(Object Type选择“Variable unit”);
在“Find”栏输入原单位(或留空表示无单位),“After”栏输入目标单位(如“v/v”“m/s”“deg”等);
点击“Preview”预览修改结果,确认无误后点击“Rename”完成批量更新。
2. 通过Python脚本精准修正单位
若需针对特定变量或复杂场景修改单位,可使用Techlog的Python编辑器(Utility>Python>Python editor)编写脚本。示例如下:
遍历所有井、数据集和变量
for w in db.wellList():
for d in db.datasetList(w):

for v in db.variableList(w, d):
修改“AZI”或“Hole Azimuth”变量的单位为“deg”
if v == "AZI" or db.variableFamily(w, d, v) == "Hole Azimuth":
if not db.variableUnit(w, d, v): 若原单位为空
db.variableUnitChange(w, d, v, "deg")
修改“C_PHI”或“Core Porosity”变量的单位为“%”
elif v == "C_PHI" or db.variableFamily(w, d, v) == "Core Porosity":
if not db.variableUnit(w, d, v):
db.variableUnitChange(w, d, v, "%")
若变量属于某一Family,自动继承Family的默认单位
else:
fam_unit = db.familyUnit(db.variableFamily(w, d, v))
if fam_unit and db.variableUnit(w, d, v) != fam_unit:
db.variableUnitChange(w, d, v, fam_unit)
脚本逻辑说明:优先匹配变量名或Family,为空或不符合默认单位的变量批量赋值,确保单位一致性。
3. 检查并调整项目单位系统(Unit System)
若变量单位错误源于项目默认单位系统设置不当,可通过以下路径修改:
点击菜单栏“Project>Options>Unit System”,进入单位系统设置界面;
根据项目需求选择合适的单位体系(如公制“Metric”、英制“Imperial”或自定义),或逐一修改各物理量(长度、密度、孔隙度等)的默认单位;
保存设置后,Techlog会自动将新加载的数据适配至该单位系统,已有数据的单位需通过上述批量修改工具调整。
4. 验证单位一致性避免后续错误
修改单位后,建议通过以下方式验证:
查看变量属性窗口(右键变量>F4),确认“Unit”栏显示为目标单位;
对数据进行简单运算(如密度×体积=质量),检查结果是否符合物理逻辑;
若涉及多学科联合仿真,确保Techlog中的单位与第三方工具(如COMSOL、MATLAB)的单位体系一致,避免跨软件计算错误。
1. 使用Techlog内置工具批量修改变量单位
Techlog提供Query Rename Tool(QRT)工具,可高效批量修改变量单位。操作步骤如下:
在工区浏览器中,通过过滤功能定位需要修改单位的变量(如变量名包含特定关键词、属于某一Family);
打开QRT工具,切换至“单位修改”功能(Object Type选择“Variable unit”);
在“Find”栏输入原单位(或留空表示无单位),“After”栏输入目标单位(如“v/v”“m/s”“deg”等);
点击“Preview”预览修改结果,确认无误后点击“Rename”完成批量更新。
2. 通过Python脚本精准修正单位
若需针对特定变量或复杂场景修改单位,可使用Techlog的Python编辑器(Utility>Python>Python editor)编写脚本。示例如下:
遍历所有井、数据集和变量
for w in db.wellList():
for d in db.datasetList(w):

for v in db.variableList(w, d):
修改“AZI”或“Hole Azimuth”变量的单位为“deg”
if v == "AZI" or db.variableFamily(w, d, v) == "Hole Azimuth":
if not db.variableUnit(w, d, v): 若原单位为空
db.variableUnitChange(w, d, v, "deg")
修改“C_PHI”或“Core Porosity”变量的单位为“%”
elif v == "C_PHI" or db.variableFamily(w, d, v) == "Core Porosity":
if not db.variableUnit(w, d, v):
db.variableUnitChange(w, d, v, "%")
若变量属于某一Family,自动继承Family的默认单位
else:
fam_unit = db.familyUnit(db.variableFamily(w, d, v))
if fam_unit and db.variableUnit(w, d, v) != fam_unit:
db.variableUnitChange(w, d, v, fam_unit)
脚本逻辑说明:优先匹配变量名或Family,为空或不符合默认单位的变量批量赋值,确保单位一致性。
3. 检查并调整项目单位系统(Unit System)
若变量单位错误源于项目默认单位系统设置不当,可通过以下路径修改:
点击菜单栏“Project>Options>Unit System”,进入单位系统设置界面;
根据项目需求选择合适的单位体系(如公制“Metric”、英制“Imperial”或自定义),或逐一修改各物理量(长度、密度、孔隙度等)的默认单位;
保存设置后,Techlog会自动将新加载的数据适配至该单位系统,已有数据的单位需通过上述批量修改工具调整。
4. 验证单位一致性避免后续错误
修改单位后,建议通过以下方式验证:
查看变量属性窗口(右键变量>F4),确认“Unit”栏显示为目标单位;
对数据进行简单运算(如密度×体积=质量),检查结果是否符合物理逻辑;
若涉及多学科联合仿真,确保Techlog中的单位与第三方工具(如COMSOL、MATLAB)的单位体系一致,避免跨软件计算错误。