Meteoinfo+TrajStat后向轨迹聚类实操:从数据准备到可视化出图全流程
作为经常跟污染过程、沙尘天气和区域传输打交道的人我对“后向轨迹聚类分析”这组词再熟悉不过了。无论是想解释某次重污染事件的外来源贡献还是想在论文里给出气团传输路径的“证据”后向轨迹聚类都是绕不开的基础分析手段。而Meteoinfo配合其插件TrajStat是这一领域最常见的免费方案之一只要输入GDAS气象数据和站点位置就能批量算出逐时后向轨迹并做分类统计。但我在实际使用中见过不少新手被困在第一步GDAS数据下载不下来、经纬度格式搞错、轨迹算出来乱飞、聚类结果一堆交叉路径不知道选几个簇合理。这些都不是软件本身的问题而是因为缺少一套完整、可复现的实操流程。这篇文章我想从零开始把“数据准备—轨迹计算—轨迹聚类—可视化出图”这条链路完整走一遍并把我踩过的坑和选型逻辑一并交代清楚。如果你正在准备写污染溯源相关的分析报告或科研论文这篇内容很适合你作为实操手册来参考。1. 整体思路与方案选型为什么是Meteoinfo配套TrajStat在做气团后向轨迹分析的众多工具里HYSPLIT是最核心的计算引擎很多在线平台也可以直接批量出轨迹但到了“聚类分析”这一步往往就被卡住——要么免费功能限制太多要么需要自己写代码处理轨迹文件。TrajStat正是为解决这类批量化、统计化需求而存在的插件而Meteoinfo则提供了它赖以运行的气象数据可视化和地图底图环境。1.1 工具分工与核心逻辑这套方案的工作原理可以这样理解Meteoinfo是一个气象数据分析和可视化软件平台它本身就能读取NetCDF、GrADS等常见气象数据格式并绘制等值线、风场、矢量图。TrajStat则作为它的插件运行负责调用HYSPLIT轨迹计算模块、管理逐条轨迹、执行聚类算法并把聚类结果直接叠加在地图上显示。实际使用时的逻辑链条如下先从气象数据源下载全球或区域再分析格点资料常用GDAS或NCEP/NCAR再分析数据让TrajStat中的HYSPLIT计算模块按给定站点经纬度和起止时间反推气团过去一段时间经历的位置生成轨迹文件。接着利用聚类算法对所有轨迹进行分组合并把传输路径相似的气团归为一类。最后把每一类的平均轨迹路径以及轨迹覆盖频次做成地图用于解释污染物可能从哪里来。这种“先算轨迹、再聚类、后出图”的流程优势在于所有环节都在一个图形界面内完成不需要来回切换多个软件也避免了手动修改轨迹文件容易出错的问题。更重要的是聚类结果可以结合监测站点的污染物浓度数据做浓度加权分析这一点在后续深入分析中价值很大。1.2 方案对比为何不直接用在线Hysplit有人可能会问NOAA的在线HYSPLIT平台免费用也能跑后向轨迹为什么还要用Meteoinfo加TrajStat本地跑我的回答是如果你只是偶尔看一两条轨迹在线平台确实够用但一旦涉及长时间序列的批处理比如逐小时轨迹连续计算几个月或者要对几百条轨迹做聚类统计在线平台的劣势就非常明显了——请求数量受限、队列等待时间不可控、轨迹结果需要手动一条条另存几乎没法做系统性的聚类。本地方案的另一个好处是数据与结果完全可控。GDAS数据下载到本地后气象场可以反复调用不需要每次请求都重新下载轨迹计算结果也可以直接作为中间文件保存后面随时可以重新聚类或改参数不需要重算轨迹本体。相比之下在线工具每次修改参数都相当于重新计算一遍灵活性差不少。我也见过有同行直接用Python的MetPy库或自行调用Hysplit的批处理脚本这类方法确实更“极客”也更自动化但对很多只关心污染溯源结果而非编程本身的人来说学习成本偏高。Meteoinfo加TrajStat则是在“能出结果”与“上手快”之间找到平衡点参数配置在面板里可见结果能立即可视化聚类方法选择也能直接对比非常适合需要快速完成分析再深入解释意义的场景。2. 数据准备的关键细节从气象资料下载到站点文件整理很多人以为后向轨迹分析的核心是聚类算法但实际上整个分析成败的第一步在数据准备。我在实际项目中遇到过最头疼的问题就是GDAS数据日期不连续、下载下来的文件没解压完整、站点高度填错导致轨迹整个飞偏。这些数据层面的小问题往往比聚类本身更耗费时间。2.1 气象数据源的选择与下载要点TrajStat的轨迹计算模块基本兼容HYSPLIT使用的数据格式最常用的是GDAS全球数据。GDAS数据有两种主要规格一种是1度分辨率的GDAS1另一种是0.25度分辨率的高精度GDAS0p25。前者的数据文件按月份归档下载比较简单后者的文件按天提供时间分辨率更细但文件数量多、数据量大处理起来也更费存储空间。选择哪个分辨率主要取决于研究尺度。如果是做城市尺度的局地污染溯源0.25度数据精度更有优势因为气团在近地面的运动受局地地形和地物影响明显粗分辨率数据有可能会掩盖一些细节。如果研究区域跨度大比如跨省、跨国输送用1度数据就足够而且计算速度快很多。我个人的习惯是先看研究区范围和研究时段长短大范围长时间就用GDAS1小区域短时段优先GDAS0p25。数据下载有一套固定流程先去数据源索引页找到需要的月份或日期下载对应的ARL打包文件。需要注意GDAS的原始文件是压缩格式的下载后不要直接改扩展名建议保持原样让TrajStat识别。下载时尽量选择非高峰时段否则容易断流下载完一定要检查文件大小是否和源站点一致不完整的气象文件计算出来的轨迹会出现整段空白或明显跳跃。2.2 气象数据本地整理与路径设置数据下载完成后建议在本地单独建立一个工作目录按年份或月份建子目录存放气象数据文件。比如我的默认结构是D:/traj_data/gdas1/202401.gbl这样一层便于TrajStat在计算时直接浏览到各月文件。打开Meteoinfo软件之后在菜单栏中找到TrajStat模块对应的气象数据管理入口先配置气象数据路径。这里有一个常见误解很多人以为设置了路径软件就会自动扫描并加载全部文件但实际上Meteoinfo需要你对每个文件进行“添加”操作或者通过目录扫描功能把可用的数据文件加入文件列表确认无误后才用于轨迹计算。建议把数据源文件和轨迹输出目录分开存放。我把轨迹输出统一放在D:/traj_output/站点名/年月/下这样后面做聚类时按文件夹读取轨迹文件会非常方便也避免大量轨迹文件混在一起时难以管理。文件名尽量保持默认或使用带日期规律的命名别加中文名——我试过在轨迹文件名里用中文结果聚类模块读取轨迹列表时报错排查了半天才发现是编码问题。2.3 站点信息文件与起始参数设定轨迹计算需要明确的起始点信息包括站点名称、经纬度、海拔高度、起始高度等。TrajStat支持直接在界面中添加站点也可以导入外部的站点文件。建议使用站点文件的方式因为在批量计算多个站点的时候直接在界面里添加站点容易遗漏或填错行列。站点文件的格式相对简单我通常用CSV或文本格式字段包括站点编号、站点名、经度、纬度、海拔。经纬度务必使用十进制度格式很多人从GPS设备或气象站资料里拿到的是度分秒直接填进软件就会导致轨迹起点位置偏差后续聚类结果自然也不可用了。起始高度建议根据研究目的设定一般做地面污染溯源时设为离地500米左右这个高度能较好代表边界层内气团运动同时避免近地面摩擦带来的噪声影响。如果做高空输送分析可以设置多个起始高度层进行分层计算。还有一点很多人会忽略起始时间时区问题。TrajStat默认使用UTC时间而国内站点资料通常是北京时间。如果不做转换计算出的轨迹起始时刻会比真实时间晚8小时对应的气团路径也会整体偏移。我建议在生成轨迹之前先确认软件中的时间设置是否开启了时区修正或者手动将北京时间转换成UTC时间统一填入。3. 后向轨迹计算的过程拆解与参数调整实战数据准备妥当之后就进入正式的计算环节。TrajStat中轨迹计算的界面并不复杂无非是选择站点、设定时间范围、填写计算参数、点击运行但参数怎么填直接决定了轨迹的质量和后续聚类的可行性。这里我把每一步的逻辑和推荐值都拆开来聊。3.1 计算时间窗口、轨迹时长与起始高度搭配轨迹计算的核心参数包括起始时间、轨迹后推时长、起始高度、垂直运动方式。我以一次典型的冬季PM2.5污染过程分析为例把参数设定的逻辑说清楚。起步时间先选定分析的时段比如2024年1月10日至1月15日步长选“逐小时”这样就意味着从每一天的每一个整点时刻都向后反推一条轨迹。这里的“逐小时”频率不要随意降低因为后续聚类和浓度加权分析对样本量的敏感度较高如果按6小时甚至12小时间隔取轨迹聚类结果的代表性会明显下降。轨迹后推时长一般选48小时或72小时。如果研究区是华北地区的中等城市受周边省份输送影响的范围在500到1000公里左右48小时基本够用如果是做长距离输送分析比如沙尘从蒙古或更远地区传输而来后推时长建议选72小时甚至更长。需要注意的是后推时长越长轨迹计算的累计误差越大而且气象场在远端的网格分辨率变化也会增加不确定性并不是越长越好。起始高度选500米的原因我在前面提过。这里补充一个细节如果在同一次计算中设置多个起始高度比如100米、500米、1000米TrajStat会生成多条轨迹但聚类时默认会把不同高度的轨迹分开聚类而非混在一起处理。所以如果是针对近地面污染分析建议保持单一高度避免聚类阶段需要额外筛选数据的麻烦。3.2 垂直运动计算方法与输出设置垂直运动方式有“默认模型数据”“气压坐标”“σ坐标”几种选项。绝大多数情况下保持默认即可因为GDAS数据中已经包含了垂直速度场的信息模型会按照数据本身的分层计算轨迹的三维运动。只有在使用某些不包含垂直速度的再分析数据时才需要改用气压坐标或σ坐标来强制计算。这个参数不用刻意追求“高级”默认就是最稳的。输出设置里有两个关键项需要留个心眼一是输出轨迹的时间间隔常设为1小时一次这样轨迹点的密度足够画图时线条更平滑二是文件格式TrajStat支持输出成Shapefile、文本文件和TGS文件等多种格式。如果是为后续聚类做准备建议选择带坐标信息的文本格式同时勾选生成Shapefile以便在Meteoinfo中直接可视化。运行计算后TrajStat会在后台调用HYSPLIT引擎这个阶段输出的日志里会显示每一步的轨迹坐标和气象数据读取状态。跑完一批逐小时轨迹后我看到很多新手直接跳到聚类界面但我的习惯是先随机抽取几条轨迹在Meteoinfo地图上叠加看看确认轨迹形状合理、没有异常折返或跳跃才算真正过关。肉眼检查这一步虽然简单却能在聚类之前就发现80%的数据问题。3.3 轨迹计算中的常见异常与修正办法计算过程中最常遇到的异常有以下几类轨迹某一段突然变为直线、轨迹整体偏移到异常远的地方、轨迹密集在起点周围反复绕圈。第一种通常是因为气象数据缺失或文件损坏建议替换对应时间段的气象文件重新计算第二种往往是因为起始高度填错比如把海拔单位误填为米却实际输入了千米第三种常见于静稳天气条件气团本身移动缓慢轨迹确实会在站点附近打转这不一定是错误但要留意是否与研究时段的气象实况一致。还有一次我在批量计算时发现某个月的轨迹全部无法生成排查后发现是数据文件的压缩格式与软件版本不兼容——GDAS早期月份的ARL数据格式和新版TrajStat的解析逻辑存在差异。解决办法是下载时选择较新的数据归档格式或者用工具将旧数据转换成兼容格式。总而言之轨迹计算的底层逻辑并不深奥但结果的有效性高度依赖数据完整性和参数合理性建议每次计算前都要有一个“数据完整性—参数合理性—结果可视性”的三级检查清单。4. 聚类分析的实现原理、参数选择与结果解读轨迹算完之后聚类就是整个分析的灵魂。聚类的目的很简单从几十上百条轨迹中找出几条典型传输路径用有限的几类代表所有气团的来向。不过聚类参数的选择会直接影响最终画出来的图长什么样所以弄清楚原理比盲目点按钮重要得多。4.1 轨迹相似度度量欧氏距离与角度距离的选择逻辑TrajStat的聚类算法需要定义两条轨迹之间的“距离”也就是相似度。软件默认提供了欧氏距离和角度距离等几种方式。欧氏距离直接计算两条轨迹对应时间点在空间上的直线距离总和直观但容易受轨迹长度和位置偏移的影响角度距离主要比较轨迹形状及移动方向的差异对轨迹整体平移不敏感。我个人的实践经验是在大多数区域污染研究中角度距离更合理。原因在于气团后向轨迹往往存在一定程度的空间摆动两条起点相同但路径略有偏移的轨迹从污染输送的方向来看可能代表同一气团来源欧氏距离却可能把它们分成两类。而角度距离更关注“从哪来”和“怎么过来”聚出的类别在物理意义上更贴近气流输送的特征。当然欧氏距离也并非一无是处。当研究区范围小、轨迹路径比较集中时欧氏距离的分辨率更高能区分出路径细节上的差异。所以我通常会对同一组轨迹分别用两种距离方法聚类比较结果后再选择物理意义更清晰的一套而不是一上来就锁死某一项。4.2 聚类数目K值的确定簇内距离与可解释性双重判断聚类数目的选择是TrajStat聚类分析中最容易让新手困惑的部分。软件会要求输入聚类类别数但到底分成3类、4类还是6类并没有绝对正确的标准答案。我的经验是遵循两条路径统计指标和物理解释。统计指标方面TrajStat会在聚类结束后给出每类的轨迹数量、簇内平均距离等参数。一般来说簇内平均距离越小说明聚类越紧凑但如果聚类数太多每一类里只有一两条轨迹统计意义就大大降低。我常用的做法是分别试3类、4类、5类比较簇内距离的变化率——如果从4类增加到5类簇内距离只下降了很小比例说明增加的类别并没有显著改善聚类质量那就选4类更合适。物理解释方面也是我认为更重要的一环每一类的平均轨迹路径是否符合研究时段的气象背景比如某次分析中聚类出5类轨迹其中一类路径很长从数千公里以外的高速气流带延伸而来但对应时段的天气图上根本没有这种流型那这个聚类结果很可能是因为类别数过多导致的过度切分。反之如果3类轨迹无法区分西北沙尘路径和西南水汽输送路径那就说明类别数太少需要增加K值。聚类结果出来后TrajStat会生成每类的平均轨迹路径并在地图上显示为不同颜色的线条。我建议这时候不要急着保存先把各类路径与研究时段的气象场分布对比一下比如叠加500hPa位势高度场或地面气压场来看轨迹走向是否与流场一致。只有统计指标和物理图像同时合理聚类结果才可以进入后续分析或论文。4.3 轨迹聚类与污染物浓度联动的进阶用法聚类本身只是把轨迹按路径归类但很多研究还需要回答“哪一类轨迹带来的污染更严重”这样的问题。TrajStat提供了轨迹浓度统计功能可以把每个时段监测站点的污染物浓度值关联到对应起始时刻的轨迹上然后统计每一类轨迹覆盖时段内的平均污染物浓度。这个操作的意义在于区分“路径相似但污染贡献不同”的气团。比如冬季西北路径和偏东路径都可能出现但西北路径气团移动快、清洁对应PM2.5浓度往往较低偏东路径气团在近地面停滞时间长、湿度大污染物累积明显浓度更高。通过浓度统计就可以量化不同气团来源对站点污染的贡献差异这在污染归因分析中是非常有说服力的证据。实际使用时需要准备一份与轨迹起始时间一一对应的站点浓度数据格式可以是Excel或文本包含时间列和浓度列。导入TrajStat后选择轨迹浓度分析功能软件会自动匹配时间并计算聚类类别下的平均浓度、最大浓度等统计量。我通常还会把各类轨迹的浓度分布做成箱线图比只列平均值更能反映数据分布特征也能有效避免个别极端高浓度值对平均值的干扰。5. 可视化制图的操作流程与出图细节聚类分析算完不等于工作结束把结果以地图形式清晰呈现是报告和论文中最后一道工序也是很多人容易忽视的一环。Meteoinfo在地图绘制上的可定制性不输专业GIS软件如果掌握关键参数出来的图可以直接达到出版级别的要求。5.1 底图配置与轨迹图层叠加轨迹聚类结果在Meteoinfo中默认会以不同颜色的折线显示在地图上。但默认的地图样式往往比较简单比如海岸线不够精细、没有省界、没有城市点位标注。这时候需要先在Meteoinfo中加载更加细致的底图数据。Meteoinfo支持导入Shapefile格式的地图数据包括国界、省界、河流、城市点位等。我通常在出图前先加载一张研究区域范围的省界图再加载一张包含主要城市位置的图层最后叠加轨迹图层就能形成“轨迹—行政区—城市标注”三个信息层级。图层叠加顺序很关键底图应该放在最下面轨迹图层放在中间站点标注或研究区范围框放在最上层避免轨迹线被其他要素遮挡。如果轨迹数量很多可以在图层属性中调整线宽和透明度让大量轨迹重叠区域的颜色密度变化清晰可见。我一般会把聚类平均轨迹的线宽调到最大把单条轨迹线的透明度调高这样既能看到轨迹簇的分布又能突出各类气团的核心路径。5.2 配色方案选择让聚类结果“一眼懂”聚类轨迹的配色是整个图中最影响可读性的因素。TrajStat默认会自动给每类分配不同颜色但默认颜色组合有时会出现相邻类别颜色相近的情况在发表时不够友好。建议在出图前手动调整每类轨迹的颜色。配色逻辑上暖色系一般代表长距离或者高浓度污染输送路径冷色系适合代表短距离清洁气团路径。比如4类轨迹的配色我会优先考虑蓝、绿、橙、红四色既拉开色相差距也照顾到色盲读者的可辨识性。不要为了美观全用同色系的深浅变化那样在黑白打印时会彻底失去区分度。另外要给每一类轨迹增加图例标签并标注对应的轨迹数量和占比。这类信息可以直接从聚类结果属性表中读取图例文字可以手动输入也可以关联自动字段。标注格式我用的是“路线128%”这种形式信息紧凑占版面小又能在图上直接表达各类轨迹的频率权重。5.3 出图分辨率、投影方式与论文级导出设置如果只为屏幕预览直接截图就够了但如果是用于论文或项目报告需要导出高分辨率位图或矢量图。Meteoinfo支持导出常见的PNG、TIFF、PDF等格式但不同格式的适用场景区别很大。位图输出时分辨率设置不要低于300dpi否则印刷出来线条会发虚。如果图里有密集的轨迹线条建议用矢量格式导出PDF再通过软件转成需要的位图规格这样可以保证线条边缘锐利无损。投影方式的选择也影响最终效果。做区域输送分析时常用的投影是等距圆柱投影或兰勃特等角圆锥投影。前者适合中小范围研究区轨迹线形变较小后者适合中纬度大范围分析能较好保持角度关系。如果研究区跨纬度比较大使用兰勃特投影会更合适。默认投影直接出图虽然也行但加上研究区域范围框后往往会出现底图变形或轨迹错位的问题所以建议根据研究区的实际位置手动指定投影参数。出图前我还有一个习惯先叠加真实的地形或NDVI数据做背景底纹让轨迹图在视觉上更有空间参照感。比如在分析山区城市污染输送时叠加高程阴影图后轨迹在山脉附近的爬升与绕行特征一目了然比单纯的白底加线条更能说明问题。这一步骤对最终报告的说服力提升相当明显。6. 高频问题与排查技巧TrajStat实战中真正会卡住你的地方无论前期准备多充分实操中总会遇到一些“不讲道理”的问题。我自己用过整个流程很多年也帮同事处理过不少报错这章节把最容易踩的坑集中列出来给你做一份避坑速查清单。6.1 气象数据加载失败与轨迹空白问题轨迹计算过程中最让人抓狂的就是“没有有效轨迹生成”这种结果。出现这类情况时我建议按以下顺序排查。先看气象数据文件是否被TrajStat正确识别。可以在软件中打开数据文件列表界面查看对应时间的数据文件状态是否正常。如果文件显示格式错误或无法读取大概率是下载文件不完整或压缩格式异常。删除原文件重新下载一次同时检查磁盘剩余空间。再看时间参数是否匹配。GDAS数据文件里的时间范围与轨迹计算请求的时间区间如果不匹配比如数据只更新到当月15日却要计算20日的轨迹就会导致计算中断。这个问题的典型特征是前半段轨迹正常、后半段突然截断检查数据文件覆盖范围即可确认。最后看起始高度设置。有些人会把起始高度填成负数或过大的正值比如填了5000米这会导致轨迹起点位置异常计算出的轨迹在近地面明显与风场不吻合。建议统一用500米左右如果要测试不同高度单独跑一条轨迹对比即可。6.2 聚类结果显示异常路径交叉与过度合并聚类完成后的地图上偶尔会出现某一类轨迹呈现出“麻花状”交叉路径或者明显包含两种完全不同方向的气团。这种情况通常不是算法出错而是聚类数设置过少把本应区分开的气团混成了一类。处理办法是增加聚类数再跑一次比较结果。如果增加到某数量后交叉现象消失且各类路径的物理意义清晰这个数量就是合适的。还有一个更严格的校核方法把每类轨迹涉及的日期单独列出查看对应时段的天气图如果某些日期的流场明显异于同类轨迹代表的方向说明该日期可能被错误归类需要检查数据是否有异常值或轨迹计算偏差。过渡合并的另一个原因与轨迹相似度度量有关。使用欧氏距离时容易把“路径平行相距不远”但“完全相反方向”的轨迹强行归并这种情况应切换为角度距离并重新聚类。6.3 出图要素错位与标注重叠的处理轨迹图和底图要素错位通常是因为投影系统不一致。比如底图是WGS84经纬度坐标轨迹图层却被错误设定为Albers投影两者叠加后自然会错位。检查各图层的投影设置并统一投影系统就可以解决。标注重叠问题常见于轨迹密集的城市群区域。如果多个站点轨迹聚类结果在同一张图上显示图例文字和站点名很容易互相遮挡。我通常的做法是把站点名和轨迹图例分开布局站点名用小号斜体标在地图主体区域轨迹图例统一放到图的左下角或右侧空白区域并启用Meteoinfo的标注避让功能。任何制图工作都忌讳“一步到位”的心态出图后至少要做一次黑白打印测试确认不同轨迹线在灰度模式下的区分度特别是投到期刊时如果出版社要求灰度图这一测试能帮大忙。6.4 大数据量批处理时的效率优化技巧如果你要处理的气象数据覆盖多年、站点数量超过几十个轨迹计算和聚类都可能变得非常缓慢。这时候有一些提速技巧可以分享。第一尽可能使用固态硬盘轨迹计算过程需要频繁读写气象文件机械硬盘在这种场景下会有明显的瓶颈。第二关闭其他占用内存的大型软件因为Meteoinfo处理大规模数据集时内存占用峰值很高如果系统内存不足计算速度会断崖式下降甚至直接闪退。第三尽量按站点分批次运行不要一次性把所有站点全部放进列表里计算。分批运行既能更快定位错误也方便中途检查结果质量。聚类阶段如果轨迹数量过大也可以提前对轨迹文件做筛选比如只保留研究时段内的轨迹或者剔除因数据缺失导致的不完整轨迹。这些“瘦身”操作不会影响聚类结果的物理意义反而能让聚类的收敛速度明显提升。7. 从分析结果到污染溯源结论经验体会与拓展方向后向轨迹聚类分析跑完通常还要回答一个最关键的问题这些轨迹类别分别对应哪些潜在污染源区TrajStat本身提供了PSCF和CWT两种污染源区识别方法它们与后向轨迹聚类配合使用是很多污染溯源研究的标准组合。PSCF的思路是统计经过某一网格的污染轨迹占所有经过该网格轨迹的比例比例越高说明该网格作为潜在污染源区的可能性越大。CWT则是计算每个网格的浓度权重轨迹值可以让浓度贡献高的网格直接在图面上凸显。这两种方法的计算参数都不复杂关键是网格分辨率要结合研究区大小合理设置网格太小会导致很多网格样本量不足统计结果不稳定网格太大又会失去空间识别价值。我个人的体会是后向轨迹聚类只是污染溯源分析链条中的中间环节真正要让分析有说服力一定要把聚类结果与气象背景场、污染物浓度观测和排放源分布结合起来形成“气象传输—路径分类—源区识别—污染贡献”这样一条完整的证据链。单独跑聚类的图只能告诉读者气团从哪里来只有结合浓度场和源排放信息才能回答污染物到底从哪里来。最后再分享一个非常实用的小技巧做聚类时TrajStat生成的轨迹文件和聚类结果文件最好都备份到独立目录并按研究时段命名。我之前有一次因为换了计算目录旧的聚类结果没有及时备份结果重新做的时候发现原始轨迹文件丢失不得不把几百条轨迹重新计算了一遍白白浪费了三天时间。数据管理的规范程度直接决定了这种分析工作能不能可持续发展。