com.supermap.data

类 DatasetLas



  • public class DatasetLas
    extends Dataset
    Las数据集。用于高效管理las点云数据。

    Las数据集采用元数据+原始las点云文件的方式进行管理。

    将las点云文件添加到Las数据集时,只会在Las数据集中记录影像文件的路径、轮廓、高程等元信息,在使用时才会根据元信息加载所需的las文件。

    该模式相比传统的入库管理方式,大大提升了入库的速度,同时也减少了磁盘的占用。

    该数据集支持1.0~1.4版本的LAS文件

    该类适用的引擎类型EngineType包括:UDBX、PostGIS

    示范代码:

    以下代码示范如何创建Las数据集并添加las点云文件。

         //打开数据源 sm_datasource。
         //创建Las数据集。
         DatasetLas las = sm_datasource.getDatasets().createDatasetLas(datasetName, new PrjCoordSys(PrjCoordSysType.PCS_NON_EARTH));
    
         //点云文件路径
         String[] filePaths = new String[]{"C:\\las_file.las"};
         //进度监听器
         LasSteppedListener listener = new LasSteppedListener() {
    从以下版本开始:
    12.0.0
    • 方法详细资料

      • getFootprintDataset

        public DatasetVector getFootprintDataset()
        返回Las数据集的轮廓子数据集。

        轮廓是整个点云的四至,轮廓数据集中包含每个las点云文件的轮廓、文件路径、创建软件、创建日期、LAS版本、点格式、点数据长度、点数以及高程最值。

        LAS版本范围支持1.0~1.4。

        点格式在一个las点云文件中唯一,即单个las点云文件中所有点的格式相同。

        点数据长度指las点云文件中,一个点数据所占的字节数,在点云文件中也是唯一的。

        返回:
        Las数据集的轮廓子数据集。
        从以下版本开始:
        12.0.0
      • getSurfaceConstraintsDataset

        public DatasetVector getSurfaceConstraintsDataset()
        返回Las数据集的表面约束子数据集

        表面约束指关键地形特征线,用于提高点云转换地形模型的准确性。

        表面约束数据集包含约束名称。约束所在源文件、约束类型以及约束高程字段

        返回:
        返回Las数据集的表面约束子数据集。
        从以下版本开始:
        12.0.0
      • getFilesCount

        public int getFilesCount()
        获取Las数据集中包含的las点云文件数
        返回:
        Las数据集中包含的las点云文件数
        从以下版本开始:
        12.0.0
      • getPointsNumber

        public long getPointsNumber()
        获取Las数据集中包含的总点数

        总点数指数据集中所有las点云文件包含的点数量总和

        返回:
        Las数据集中包含的总点数
        从以下版本开始:
        12.0.0
      • getSurfaceConstraintsNumber

        public int getSurfaceConstraintsNumber()
        获取Las数据集中表面约束个数
        返回:
        Las数据集中表面约束个数
        从以下版本开始:
        12.0.0
      • getMaxZ

        public double getMaxZ()
        获取Las数据集点云最大高程值
        返回:
        Las数据集点云最大高程值
        从以下版本开始:
        12.0.0
      • getMinZ

        public double getMinZ()
        获取Las数据集点云最小高程值
        返回:
        Las数据集点云最小高程值
        从以下版本开始:
        12.0.0
      • addFiles

        public boolean addFiles(String[] filePaths,
                                LasSteppedListener listener)
        向Las数据集添加las点云文件。
        参数:
        filePaths - 待添加的las文件路径数组。
        listener - 添加文件进度监听器,可为空。
        返回:
        true表示全部添加成功,false表示部分或者全部不成功。
        从以下版本开始:
        12.0.0
      • addFilesWithReport

        public boolean addFilesWithReport(String[] filePaths,
                                          StringBuilder stringBuilder,
                                          LasSteppedListener listener)
        向Las数据集添加las点云文件并输出报告。

        当添加文件的各种前提环境(如:数据源不为空,记录集可以正常获取等)不满足时,输出报告中包含一个错误信息。

        当添加文件时,单个文件有失败或跳过的情况时,输出报告中包含一个JSON,其中包含成功、失败、跳过和总数以及各个跳过、失败文件的原因

        
              {
              	"Total":4,
              	"Success":2,
              	"Skip":0,
              	"Failed":2,
              	"SuccessFiles":["las12_format1.las","las12_format2.las"],
              	"SkipFiles":[],
              	"FailedFiles":[
                          {"FilePath":"error.las","Reason":"文件 error.las 打开失败"},
                          {"FilePath":"test.txt","Reason":"路径 test.txt 对应的文件不存在"}
              	]
             }
             
         
        参数:
        filePaths - 待添加的las文件路径数组。
        stringBuilder - 接收输出报告的StringBuilder。
        listener - 添加文件进度监听器,可为空。
        返回:
        true表示全部添加成功,false表示部分或者全部不成功。
        从以下版本开始:
        12.0.0
      • removeFiles

        public boolean removeFiles(String[] filePaths,
                                   LasSteppedListener listener)
        从Las数据集移除las文件。
        参数:
        filePaths - 待移除的las文件路径数。组
        listener - 删除文件进度监听器,可为空。
        返回:
        true表示全部移除成功,false表示部分或者全部不成功。
        从以下版本开始:
        12.0.0
      • removeFilesWithReport

        public boolean removeFilesWithReport(String[] filePaths,
                                             StringBuilder stringBuilder,
                                             LasSteppedListener listener)
        从Las数据集移除las文件并生成输出报告。

        当删除文件的各种前提环境(如:数据源不为空,记录集可以正常获取等)不满足时,输出报告中包含一个错误信息。

        当删除文件时,单个文件有失败或跳过的情况时,输出报告中包含一个JSON,其中包含成功、失败、跳过和总数以及各个跳过、失败文件的原因。

        
              {
              	"Total":4,
              	"Success":2,
              	"Skip":0,
              	"Failed":2,
              	"SuccessFiles":["las12_format1.las","las12_format2.las"],
              	"SkipFiles":[],
              	"FailedFiles":[
                          {"FilePath":"error.las","Reason":"文件 error.las 打开失败"},
                          {"FilePath":"test.txt","Reason":"路径 test.txt 对应的文件不存在"}
              	]
             }
             
         
        参数:
        filePaths - 待移除的las文件路径数组。
        stringBuilder - 接收输出报告的StringBuilder。
        listener - 删除文件进度监听器,可为。空
        返回:
        true表示全部移除成功,false表示部分或者全部不成功。
        从以下版本开始:
        12.0.0
      • addSurfaceConstraints

        public boolean addSurfaceConstraints(LasSurfaceConstraintsInfo[] constraints,
                                             LasSteppedListener listener)
        向Las数据集添加表面约束
        参数:
        constraints - 待添加的表面约束信息数组
        listener - 添加表面约束进度监听器,可为空
        返回:
        true表示全部添加成功,false表示部分或者全部不成功
        从以下版本开始:
        12.0.0
      • removeSurfaceConstraints

        public boolean removeSurfaceConstraints(String[] infoNames,
                                                LasSteppedListener listener)
        从Las数据集删除表面约束
        参数:
        infoNames - 待删除的表面约束信息名称
        listener - 添加表面约束进度监听器,可为空
        返回:
        true全部删除成功,false表示部分或者全部添加不成功
        从以下版本开始:
        12.0.0
        另请参阅:
        LasSurfaceConstraintsInfo
      • getAllFilesPath

        public String[] getAllFilesPath()
        获取指定Las数据集中所有las点云文件的路径
        返回:
        Las数据集中所有las点云文件的路径数组
        从以下版本开始:
        12.0.0
      • getFilesMetaData

        public HashMap<String,LasFileMetaData> getFilesMetaData(String... filePaths)
        获取Las数据集中指定las文件的元信息
        参数:
        filePaths - 待获取元信息的las文件路径数组
        返回:
        以las文件路径为key,对应元信息为value的Map,只包含Las数据集中已有的las文件
        从以下版本开始:
        12.0.0
        另请参阅:
        LasFileMetaData
      • buildPyramid

        public boolean buildPyramid()
        创建Las数据集金字塔
        返回:
        是否创建成功, true表示创建成功,false表示创建失败
        从以下版本开始:
        12.0.0
      • removePyramid

        public boolean removePyramid()
        删除Las数据集金字塔
        返回:
        是否删除成功, true表示删除成功,false表示删除失败
        从以下版本开始:
        12.0.0
      • getPyramidPath

        public String getPyramidPath()
        获取Las数据集金字塔存储路径
        返回:
        金字塔存在则返回存储路径,否则返回空字符串
        从以下版本开始:
        12.0.0
      • computeStatisticInfo

        public boolean computeStatisticInfo(String resultPath,
                                            LasStatisticsType type,
                                            LasStatisticsSeparator decimalSeparator,
                                            LasStatisticsSeparator fieldSeparator,
                                            LasSteppedListener listener)
        计算Las数据集统计信息并输出到指定路径

        可选择汇总数据集中所有las点云文件,或者不汇总,每个文件单独统计。

        统计信息包含回波、分类、属性、分类标记类型:

        回波类型包含回波点数、占总点数百分比,高程最大最小值,属于回波类型统计项的有:第N次回波(Return_N),最后一次回波(Last),多次回波中的首次(First_of_Many),多次回波中的末次(Last_of_many)。

        分类类型包含点数、占总点数百分比,高程最大最小值,强度最大最小值,属于分类类型统计项的有:各个分类(Classic_N)。

        属性类型包含该属性的范围,属于属性类型统计项的有:回波次数(Return_NO),强度范围(Intensity),分类代码(Class_Code),扫描角度(Scan_Angle),颜色R通道范围(Color_R),颜色G通道范围(Color_G),颜色B通道范围(Color_B)。

        分类标记类型包含模型关键点、合成、保留、覆盖分类的点数和百分比

        参数:
        resultPath - 结果路径,支持txt、csv和tab格式文件
        type - 汇总类型,可选择汇总全部文件或不汇总
        decimalSeparator - 统计信息保存的结果文件内的小数点符号。表示统计信息结果文件中小数的小数点形式,可选点或者逗号,注意和字段分隔符不能同时为逗号,否则计算失败
        fieldSeparator - 统计信息保存的结果文件内的字段分隔符。表示统计信息结果文件中每个统计项的字段间的分隔符,可选空格或者逗号,注意和小数分隔符不能同时为逗号,否则计算失败
        listener - 统计信息计算进度监听器,可以为空
        返回:
        true统计信息计算并保存成功,false表示失败
        从以下版本开始:
        12.0.0
        另请参阅:
        LasStatisticsSeparator, LasStatisticsType
      • computeAllFileStatisticsDirectly

        public boolean computeAllFileStatisticsDirectly(LasSteppedListener listener)
        直接计算Las数据集统计信息。

        计算成功会保存统计信息到数据集,可以通过DatasetLas.getAllStatisticsInfo()获取。

        参数:
        listener - 统计信息计算进度监听器,可以为空
        返回:
        true表示计算成功,false表示计算失败。
        从以下版本开始:
        12.0.0
      • computeSingleFileStatisticsDirectly

        public boolean computeSingleFileStatisticsDirectly(String filePath,
                                                           LasSteppedListener listener)
        直接计算单个文件的统计信息。

        计算成功会保存统计信息到数据集,可以通过DatasetLas.getSingleStatisticsInfo(String)获取。

        参数:
        filePath - 待计算统计信息的文件路径
        listener - 统计信息计算进度监听器,可以为空
        返回:
        true表示计算成功,false表示计算失败。
        从以下版本开始:
        12.0.0
      • getAllStatisticsInfo

        public LasStatisticsEntry[] getAllStatisticsInfo()
        获取Las数据集全部文件的统计信息。

        统计信息包含回波、分类、属性、分类标记类型:

        回波类型包含回波点数、占总点数百分比,高程最大最小值,属于回波类型统计项的有:第N次回波(Return_N),最后一次回波(Last),多次回波中的首次(First_of_Many),多次回波中的末次(Last_of_many)。

        分类类型包含点数、占总点数百分比,高程最大最小值,强度最大最小值,属于分类类型统计项的有:各个分类(Classic_Number_Name),其中Number是分类代码,Name是分类的名称。

        属性类型包含该属性的范围,属于属性类型统计项的有:回波次数(Return_NO),强度范围(Intensity),分类代码(Class_Code),扫描角度(Scan_Angle),颜色R通道范围(Color_R),颜色G通道范围(Color_G),颜色B通道范围(Color_B)。

        分类标记类型包含模型关键点、合成、保留、覆盖分类的点数和百分比

        返回:
        Las数据集全部文件的统计信息,如果没有计算过,返回空数组,可以使用 DatasetLas.computeAllFileStatisticsDirectly(LasSteppedListener)计算统计信息。
        从以下版本开始:
        12.0.0
        另请参阅:
        LasStatisticsEntry
      • getSingleStatisticsInfo

        public LasStatisticsEntry[] getSingleStatisticsInfo(String filePath)
        获取Las数据集指定文件的统计信息。

        统计信息包含回波、分类、属性、分类标记类型:

        回波类型包含回波点数、占总点数百分比,高程最大最小值,属于回波类型统计项的有:第N次回波(Return_N),最后一次回波(Last),多次回波中的首次(First_of_Many),多次回波中的末次(Last_of_many)。

        分类类型包含点数、占总点数百分比,高程最大最小值,强度最大最小值,属于分类类型统计项的有:各个分类(Classic_Number_Name),其中Number是分类代码,Name是分类的名称。

        属性类型包含该属性的范围,属于属性类型统计项的有:回波次数(Return_NO),强度范围(Intensity),分类代码(Class_Code),扫描角度(Scan_Angle),颜色R通道范围(Color_R),颜色G通道范围(Color_G),颜色B通道范围(Color_B)。

        分类标记类型包含模型关键点、合成、保留、覆盖分类的点数和百分比。

        参数:
        filePath - 待计算统计信息的文件路径
        返回:
        Las数据集指定文件的统计信息,如果没有计算过,返回空数组,可以使用 DatasetLas.computeSingleFileStatisticsDirectly(String, LasSteppedListener)计算单个文件统计信息。
        从以下版本开始:
        12.0.0
        另请参阅:
        LasStatisticsEntry

Copyright © 2021–2025 SuperMap. All rights reserved.