大疆DJI Zenmuse L1点云导入contextcapture(iTwin capture)—轨迹文件Sbet转成符合contextcapture要求的trajectories file

大疆DJI Zenmuse L1点云导入contextcapture(iTwin capture)—轨迹文件Sbet转成符合contextcapture要求的trajectories file

前言

点云和航片联合进行倾斜模型建模是笔者的探索方向。

本次实验,笔者使用的软硬件设备如下:

  • 硬件:大疆M300 RTL+Zenmuse L1
  • 软件:DJI Terra、iTwin capture
    在使用L1执行航测任务时,必须开启RTK模式

步骤

1. 在DJI Terra中导出las格式的点云,然后找到轨迹文件sbet.txt

在这里插入图片描述
我们只需要前四列数据,时间、纬度、经度、高程
在这里插入图片描述

2. 将所有的sbet.txt转成需要的文件样式

在sbet.txt中,前四列原始数据为:SOW(second of week)格式的时、弧度的纬度和经度、高程(L1内部的RTK高)

需要转成:GPStime、度格式的经纬度、高程(无需转换)

转换代码(python):

'''
	author: weiguo xie
	email: xiewg@jxnu.edu.cn
	2023-12-28 
'''
import glob
import math

# 定义存储文件夹路径
folder_path = 'path/to/folder'  # 定义存储文件夹路径
# file_paths = ['path/to/file1.txt', 'path/to/file2.txt', 'path/to/file3.txt'] # 也可以读取单独的文件
output_file_path = 'output.txt'  # 定义输出文件路径

# 获取文件夹下所有的txt文件路径
file_paths = glob.glob(folder_path + '/*.txt')

# 定义转换函数
def radian_to_degree(radian):
    return radian * (180 / math.pi)

# 打开输出文件进行写入
with open(output_file_path, 'w') as output_file:
    # 遍历每个文件路径
    for file_path in file_paths:
        # 打开文件进行读取
        with open(file_path, 'r') as file:
            # 跳过第一行和第二行
            next(file)  # 跳过第一行
            next(file)  # 跳过第二行

            # 逐行读取剩余的数据
            for line in file:
                # 分割行数据为列数据
                data = line.split()

                # 获取第一列的GPStime值
                gpstime = float(data[0])

                # 进行计算
                calculated_gpstime = gpstime + 604800 * 2294

                # 获取第二列和第三列的弧度数据
                latitude_radian = float(data[1])
                longitude_radian = float(data[2])
                

                # 进行转换
                latitude_degree = radian_to_degree(latitude_radian)
                longitude_degree = radian_to_degree(longitude_radian)

                # 获取第四列的数据
                height = float(data[3])

                 # 将计算和转换结果写入输出文件,使用制表符作为分隔符
                output_file.write(f"{calculated_gpstime}\t{latitude_degree}\t{longitude_degree}\t{height}\n")

转换结果:
在这里插入图片描述

3. 把点云导入contextcapture(iTwin capture)

在Block中,Point Clouds标签下,选择import mobile scans,因为无人机是移动的,所以必须选mobile
在这里插入图片描述

  • 添加点云和轨迹文件trajectories
    在这里插入图片描述

  • 选择坐标
    在这里插入图片描述

  • 设置分隔符
    在这里插入图片描述

  • 设置数据列属性,然后import即可
    在这里插入图片描述

  • 查看导入结果
    在3D view中,黄色是轨迹,蓝色点是航片位置(我事先添加了航片,这个不添加有可以),下方是刚刚添加的点云,不是基于航片生产的点云。
    在这里插入图片描述

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vigo*GIS_RS

来瓶可乐~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值