SuperMap iObject Java实现倾斜数据预处理

 作者:姜尔


一、技术思路

本文主要使用SuperMap iObject Java 12.0.1版本(https://support.supermap.com/DownloadCenter/ProductPlatform.aspx)实现倾斜预处理功能,并输出日志文件记录错误文件及错误类别等相关信息。

倾斜数据预处理功能是对OSGB格式倾斜摄影三维模型数据入库前进行检查,数据检查后会在OSGB文件夹下生成一个文本文件,文本中记录了错误的OSGB倾斜数据,文本中记录了错误的OSGB倾斜数据文件及错误的类别等信息。对于损坏的文件,自动剪切到新文件夹中;对于错误数据,在原文件中生成了修复处理后的错误数据,并将原始数据进行备份。您可以将备份的错误数据剪切到别的文件夹下,再进行倾斜入库操作。

主要使用类及接口:

类说明

方法

ObliquePhotogrammetryGovernance

  • 倾斜数据预处理 : 支持对倾斜数据进行检查和修复,是否检查和修复损坏文件、是否修复错误的包围盒、是否修复错误的骨架、是否修复过大的纹理(支持设置纹理阈值)、是否修复冗余纹理。

checkAndRepair()

执行检查文件完整性以及修复

isContainErrorFile()

是否存在已损坏文件 优先检查倾斜数据是否有损坏,如没有损坏的文件,再检查不规范的数据。

setGovernanceParameters(GovernanceParameters params)

设置倾斜检查参数

setInputFolder(String inputFolder)

设置输入目录,原始倾斜数据所在文件目录。

setLogFilePath(String logFilePath)

设置输出日志文件路径。

GovernanceParameters

  • 斜数据检查参数 : 倾斜数据预处理检查项包括检查数据损坏、移除损坏文件、修复包围盒异常、修复三角网异常、移除冗余纹理、限制纹理大小。

setCheckFileIntegrity(boolean isCheckFileIntegrity)

设置是否检查文件的完整性。

setRemoveErrorFile(boolean isRemoveErrorFile)

设置是否移除损坏的文件

setRemoveRedundantTexture(boolean isRemoveRedundantTexture)

设置是否移除冗余的纹理,默认为false。

setRepairErrorBoundingBox(boolean isRepairErrorBoundingBox)

设置是否修复错误的包围盒,默认值为false。

setRepairErrorGeometry(boolean isRepairErrorGeometry)

设置是否修复错误的几何信息

setScaleTexture(boolean isScaleTexture)

设置是否缩放纹理

setCacheLimitTextureSize(CacheLimitTextureSize cacheLimitTextureSize)

设置纹理限制尺寸大小,大于这个值才会提示,默认值为8192。

setVaildPositionRange(double vaildPositionRange)

设置几何顶点坐标阈值,用于检查和识别*.osgb倾斜摄影三维模型中几何顶点位置异常的数据。

二、主要代码

 ObliquePhotogrammetryGovernance obliquePhotogrammetryGovernance= new ObliquePhotogrammetryGovernance();
        obliquePhotogrammetryGovernance.setInputFolder("..\\data");//设置输入目录,原始倾斜数据所在文件目录。
        Boolean falg =obliquePhotogrammetryGovernance.isContainErrorFile();//是否存在已损坏文件 优先检查倾斜数据是否有损坏,如没有损坏的文件,再检查不规范的数据。如果检查到损坏的文件,返回true,并在原始倾斜数据目录下生成一个lod.txt文件,文件里记录了哪些osgb文件已经损坏,需要将这些数据修复后再继续使用。 如果未检查到损坏的文件,则返回false。
        System.out.println("是否存在已损坏文件:"+falg);
        obliquePhotogrammetryGovernance.setLogFilePath("..\\test.log");//设置输出日志文件路径。

        obliquePhotogrammetryGovernance.setGovernanceParameters(governanceParameters);//设置倾斜检查参数

        Boolean flag7=obliquePhotogrammetryGovernance.checkAndRepair();//执行检查文件完整性以及修复
        System.out.println("是否执行检查文件完整性以及修复:"+flag7);

三、完整示例代码

package gettingstarted;

import com.supermap.data.processing.CacheLimitTextureSize;
import com.supermap.data.processing.GovernanceParameters;
import com.supermap.data.processing.ObliquePhotogrammetryGovernance;

public class qingxieObliquePhotogrammetryGovernance {
//    倾斜预处理:支持对倾斜数据进行检查和修复,是否检查和修复损坏文件、是否修复错误的包围盒、是否修复错误的骨架、是否修复过大的纹理(支持设置纹理阈值)、是否修复冗余纹理。
    public static void main(String[] args) {
        GovernanceParameters governanceParameters=new GovernanceParameters();
        governanceParameters.setCacheLimitTextureSize(CacheLimitTextureSize.LimitSize_1024);//设置纹理限制尺寸大小,大于这个值才会提示,默认值为8192。
        governanceParameters.setCheckFileIntegrity(true);//   设置是否检查文件的完整性。
        governanceParameters.setRemoveErrorFile(true);//        设置是否移除损坏的文件
        governanceParameters.setRemoveRedundantTexture(true);//        设置是否移除冗余的纹理,默认为false。
        governanceParameters.setRepairErrorBoundingBox(true);//        设置是否修复错误的包围盒,默认值为false。
        governanceParameters.setRepairErrorGeometry(true);//        设置是否修复错误的几何信息
        governanceParameters.setScaleTexture(true);//        设置是否缩放纹理
        governanceParameters.setVaildPositionRange(1.0e8);//        设置几何顶点坐标阈值,用于检查和识别*.osgb倾斜摄影三维模型中几何顶点位置异常的数据。
        Boolean falg1 =governanceParameters.isCheckFileIntegrity();//        获取是否检查文件的完整性,默认值为true。
        Boolean falg2 =governanceParameters.isRemoveErrorFile();//        是否移除损坏的文件 默认值为false。
        Boolean falg3 =governanceParameters.isRemoveRedundantTexture(); //       获取是否移除冗余的纹理,默认为false。
        Boolean falg4 =governanceParameters.isRepairErrorBoundingBox(); //       获取是否修复错误的包围盒,默认值为false。
        Boolean falg5 =governanceParameters.isRepairErrorGeometry();  //      是否修复错误的几何信息,默认值为false。
        Boolean falg6 =governanceParameters.isScaleTexture();  //      是否缩放纹理,默认值为false。
        System.out.println("是否检查文件的完整性:"+falg1+"     是否移除损坏的文件:"+falg2+"       是否移除冗余的纹理:"+falg3+"       是否修复错误的包围盒:"+falg4+"       是否修复错误的几何信息:"+falg5+"       是否缩放纹理:"+falg6);

        ObliquePhotogrammetryGovernance obliquePhotogrammetryGovernance= new ObliquePhotogrammetryGovernance();
        obliquePhotogrammetryGovernance.setInputFolder("E:\\software\\supermap\\iobjectsjava\\1201\\offical\\supermap-iobjectsjava-2025u1-win-all\\GettingStarted\\GettingStarted\\src\\testData\\data");//设置输入目录,原始倾斜数据所在文件目录。
        Boolean falg =obliquePhotogrammetryGovernance.isContainErrorFile();//是否存在已损坏文件 优先检查倾斜数据是否有损坏,如没有损坏的文件,再检查不规范的数据。如果检查到损坏的文件,返回true,并在原始倾斜数据目录下生成一个lod.txt文件,文件里记录了哪些osgb文件已经损坏,需要将这些数据修复后再继续使用。 如果未检查到损坏的文件,则返回false。
        System.out.println("是否存在已损坏文件:"+falg);
        obliquePhotogrammetryGovernance.setLogFilePath("E:\\software\\supermap\\iobjectsjava\\1201\\offical\\supermap-iobjectsjava-2025u1-win-all\\GettingStarted\\GettingStarted\\src\\testData\\test.log");//设置输出日志文件路径。

        obliquePhotogrammetryGovernance.setGovernanceParameters(governanceParameters);//设置倾斜检查参数

        Boolean flag7=obliquePhotogrammetryGovernance.checkAndRepair();//执行检查文件完整性以及修复
        System.out.println("是否执行检查文件完整性以及修复:"+flag7);

    }
}

四、运行结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值