科研画图,AIS数据可视化

一.将原始数据下载处理后按照MMSI分组提取出每个船舶的轨迹;

二.将文件处理为适合QGIS画图的格式

代码如下:

import os
import csv

# 输入文件夹路径和输出CSV文件路径
input_folder = './raw_9'  # 替换为实际的输入文件夹路径
output_csv = './output0.csv'  # 替换为你想要的输出CSV文件路径


# 处理每个CSV文件的函数
def process_csv_file(input_file):
    # 获取文件名作为轨迹ID
    filename = os.path.basename(input_file)
    trajectory_id = os.path.splitext(filename)[0]  # 使用文件名作为轨迹ID

    with open(input_file, newline='') as csvfile:
        reader = csv.reader(csvfile)
        # 跳过第一行
        next(reader)

        lon_lats = []
        for row in reader:
            lon = row[1]  # 假设第二列是经度
            lat = row[2]  # 假设第三列是纬度
            lon_lats.append(f"{lon} {lat}")

        # 将坐标格式化为所需的格式
        trajectory_coordinates = ','.join(lon_lats)
        trajectory_data = f"LINESTRING({trajectory_coordinates})"

        return trajectory_id, trajectory_data


# 遍历输入文件夹中的每个CSV文件,写入到输出CSV文件
with open(output_csv, 'w', newline='') as output_csvfile:
    writer = csv.writer(output_csvfile)
    for filename in os.listdir(input_folder):
        if filename.endswith('.csv'):  # 确保只处理CSV文件
            filepath = os.path.join(input_folder, filename)
            trajectory_id, trajectory_data = process_csv_file(filepath)
            writer.writerow([trajectory_id, trajectory_data])

print(f'生成的CSV文件: {output_csv}')

输出文件格式:

三.QGIs画图:

图层-添加图层-添加分割文本图层-

输出图层效果:

粗细:0.1

图层:变亮

要素:变量

标题
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值