英文很重要,没有办法,软件是老外搞的,界面、说明文档等都英文的,如果英文好,看文档绝大部分问题应该都可以解决。我的英文水平也不好,所以看起来也有些费力,但是没有办法。所以我想做的事情,不是把英文翻译成中文,而是做资源的整合,知识脉络的整理,问题的讨论。
下载:
操作手册《brat_user_manual》里面有它的详细用法,我不作翻译了,简单说一下使用的流程和一些注意事项。
基于我用到的功能,做如下介绍:
这是BRAT的界面:
用BRAT的操作流程可以概括为4个步骤(参看《brat_user_manual》16页):
这几个功能分别对应于界面上的选项卡。
需要注意的是,这4个步骤是一个递进的关系,后面的依赖于前面的。比如,workspace没有创建就无法加载Dateset,没有Dateset就无法进行Operation,没有Operation就无法创建View。这其实是很自然的一个逻辑关系。
从菜单Workspace->New即可创建一个工作空间,路径及名称不建议使用中文,我无法确定使用中文是否会导致意想不到的问题。
创建后会在相应路径下生成文件夹及文件(我的目录:F:\BRATworkspace\test):
│setup.ini│├─Datasets│setup.ini│├─Displays│setup.ini│├─Formulas│setup.ini│└─Operationssetup.inisetup.ini是配置文件,记录配置信息。下面是测试,对理解软件是如何工作的有帮助,对实际操作无太大影响(不看也不会影响软件的使用):
新建一个工作空间后,不做任何操作,该工作空间是空的,查看各个setup.ini文件内容:
;test\setup.ini内容[General]WorkspaceName=testWorkspaceLevel=1;test\Datasets\setup.ini内容[General]WorkspaceName=DatasetsWorkspaceLevel=2;Displays、Displays、Operations下的内容大同小异可以看到,setup.ini文件存放了工作空间的名称和工作空间的等级,test是首级所以Level=1,而Datasets是其下面的一级所以Level=2,从目录树就可以反应出来。
现在创建数据集、加载数据,保存工作空间,Datasets文件夹下的setup.ini文件内容发生如下变化:
;test\Datasets\setup.ini内容[General]WorkspaceName=DatasetsWorkspaceLevel=2[Datasets]DatasetName1=Datasets_1DatasetName2=Datasets_2DatasetName3=Datasets_3[Datasets_1]File1=F:\\JA2_GPS_2PdP002_138_20080727_074001_20080727_083614.nc[Datasets_2]File1=F:\\JA2_GPS_2PdP003_138_20080806_053833_20080806_063445.nc[Datasets_3]File1=F:\\JA2_GPS_2PdP001_138_20080717_094129_20080717_103742.ncFile2=F:\\JA2_GPS_2PdP002_138_20080727_074001_20080727_083614.ncFile3=F:\\JA2_GPS_2PdP003_138_20080806_053833_20080806_063445.nc即使不懂配置文件的语法也能看出我做了什么事情。是的,我创建了三个数据集分别为Datasets_1、Datasets_2、Datasets_3,在Datasets_1和Datasets_2中各有一个nc文件,在Datasets_3中有三个nc文件。
第一个选项卡即Datasets,单击New按钮即可创建新数据集,所有按钮的功能基本看名字就能明白是做什么的。
Operation做的事情就是,对选定的数据进行编辑(筛选),支持数据的导出。以下为一个示例:
新建一个Operation,选定一个Dataset,将纬度(lat)拖拽到X或者右键SetasX;经度(lon)、轨道高(alt)、测距值(range_20hz_ku)拖拽到Data下,或者右键SetasData。
设置筛选条件的目的就是选出我们需要的数据,筛选条件有很多,比如将其限制在一定的经纬度范围内,测距值不为空,以及许多的flag,等等。
这就要涉及条件表达式和函数了,常见的有:
!%非!=%不等于&&%并且||%或者<%小于is_bounded%限制范围,例如is_bounded(22.0682,lat,22.3311)限制纬度的范围......可以单击Insertfuction按钮查看所有的符号和函数。
最简单的例,只限制纬度范围,并且要求测距值不为缺省值(DV),那么表达式应该这样写(写在Selectioncreiteria里面):
在Insertformula中,给出了很多卫星的筛选条件,可以参考。
设置好筛选条件后,执行它,再按照我们的需要导出。执行单击Execute按钮,其实只需要点击Export,在导出的时候软件会根据筛选条件进行筛选。
如果需要做一些计算,比如计算高程,那么右键Data,Insertanemptyexpression并将其重命名为height,在右边的Expression框中输入:
也可以单击Insertformula查看软件自带的一些计算公式,比如计算SSH(SeaSurfaceHeight)和SLA(Sealevelanomalies)。导出的时候就会增加一列height。
单击Export按钮,导出格式选择Ascii,即文本文件,此处导出的数据如下(为了整齐,我把每列保留的小数统一了):
alt(m)height(m)lat(degrees_north)lon(degrees_east)range_ku(m)1341754.08734.273422.097624129.7605871341719.8131341764.47334.231122.146769129.7391381341730.2421341774.87934.158122.195909129.7176711341740.7211341785.30334.105622.245045129.6961861341751.1981341795.74633.992522.294177129.6746831341761.754可以看到第二列即计算得到的海面高。
如果需要复杂的计算和操作,建议写程序。
还可以导出为NetCdf和GeoTiff,其中GeoTiff需要Y有值。但是我感觉这两个功能实在用不上,首先是NetCdf,我们就是因为NetCdf是二进制不能直接打开所以才需要这些软件的帮助,给果又导出为NetCdf,这不给自己添麻烦吗;GeoTiff中可以导出kml文件在GoogleEarth中查看,但是导出来的文件总有问题。
使用注意:excel格式要xlsexcel必须要有3个Sheet,并且依次为Sheet123(也就是默认的,不能改)数据要有4列:经度、纬度、地名、备注(googleEarth点的格式吧)
注意:
如果是导出数据并做计算的话,尽量不要用到Y,设置一个X后其余数据全都设置为Data。以上面导出的结果为例,该例子以纬度(lat)作为X,导出的数据有5个点,每一行对应一个点。如果将经度(lon)设置为Y后是什么结果?明显,会有5*5=25行数据产生,这并不是我们想要的。
我觉得这个功能实在有点鸡肋,不过可以用一用,这里只做一个简单的介绍。
为什么说鸡肋?它的功能是绘图,一维折线图等可以用更专业的绘图软件来实现,再加以代码可以批量处理和细节化;如果是二维的附着在地图上,GMT可能更专业一些。
以前面的计算结果为例:
查看计算得到的海面高(height)按纬度从低到高分布的折线图:在Views选项卡中新建一个,在Available中选中height,添加到右边的Selected框中,单击Execute:
得如下结果:
可以设置线型、颜色、标题等等。
由于是二维的,这里要用到Y,将Data里面的经度(lon)删除后重新设置为Y,为了看的清楚我把经度范围扩大了:is_bounded(2.0682,lat,22.3311)。重新执行operation和view得如下结果:
可以看到海面高的分布,下面是它的色标,红色高、蓝色低。并且可以改变投影方式等等。
BRAT使用起来或许有如下问题:
最后:
手册内容是英文,且内容太多,也许会让人产生一些困惑,但是多看就能理解。
我写的实在不够好,远远不如参考手册,希望不至于误导他人。如果你完整看完参考文档,使用软件的能力会远远超过我的。
如果只是想导出数据,X里面设置lon或者lat,其余字体放到Data中去。
如果在BRAT中显示地面轨迹,则X里面设置lon/lat中的一个,y里面设置lon/lat中的一个。
在Selectioncriteria(optional)里面写:
is_bounded(0,lat,30)即可得到纬度为0-30度的数据,经度限制是一样的。
1hz的和1hz的对应,20hz的和20hz的对应,比如X里面设置的是lon,这是1hz的,要导出的range时,用range_ku是正确的,range_20hz_ku就不行。所以一定要理解数据结构。
《brat_user_manual》(比较全面的介绍)
《20090929_RApractical》(这里里面有10个操作实例,值得一看)
《brat_reference_manual_3.3.0》(代码接口的介绍,如果想用它的代码可以看看)