一种Radarsat-1影像数据快速全面的读取方法与流程

文档序号:12040700阅读:237来源:国知局
一种Radarsat-1影像数据快速全面的读取方法与流程
本发明涉及SAR遥感影像处理的技术领域,尤其涉及一种Radarsat-1影像数据快速全面的读取方法。

背景技术:
SAR又名合成孔径雷达,利用雷达与目标的相对运动把尺寸较小的真实天线孔径合成为较大的等效天线孔径的雷达。相比于普通的光学遥感技术,SAR具有分辨率高、可全天候工作、能有效识别伪装、穿透掩盖物等特点,广泛应用于航空测量、卫星海洋观测、航天观测、图像匹配制导等,因此SAR影像多用于测绘、军事侦察、资源勘探等对遥感影像要求较高的领域中,其处理技术决定了影像的应用效果。Radarsat-1卫星为加拿大于1995年发射,是兼顾商用及科学试验用途的雷达系统,能生成具有多种分辨率、不同幅宽和多种信息特征的影像,影像分辨率从8米到100米,幅宽从50公里到500公里,中国遥感卫星地面站从1997年开始接收Radarsat-1影像,已存档几乎覆盖全中国的万景数据。普通光学影像一般分为0级、1级、2级、3级、4级、5级等若干个级别,Radarsat-1影像分为原始信号级、地理参考级和地理编码级三个级别,具体为RAW、SLC、SGF、SGC、SCN、SPG等,其中RAW、SLC类型以复数形式记录图像数据,采用虚数波段(Q)、实数波段(I)组合的方式显示图像数据,通过对Q、I波段计算处理可生成其他代表强度、亮度的波段。Radarsat-1影像格式为CEOS,包括VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五个描述性文件;每个文件包含多个数据集,VolumeDirectory文件由VolumeDescriptor、Filepointerrecord等数据集组成,Trailer文件由Datasetsummary、Processingparameters、Radiometricdata等数据集组成,其他文件的组成结构类似。不同影像数据包含的数据集不同,但都符合基本规律。Radarsat-1影像的数据集中包含了大量元数据和图像数据,图像数据类型包括8位无符号整型、16位无符号整型、32位复数形式等多种,进行数据读取时,不仅需要对所有数据类型进行全面读取,对于不同的图像数据类型,要采用不同的方法,特别是复数类型的数据。现阶段ENVI、ERDAS、NEST等专业遥感图像处理软件可读取Radarsat-1影像,自主开发实现影像的读取可采用两种方式:一是利用IDL、Matlab等语言进行二次开发,二是,直接对影像文件进行数据流解析。第一种方法存在明显的弊端:首先,需要安装相应的环境,不利于自主开发工程使用,其次,无法全面地读取出影像的元数据信息。第二种方法对Radarsat-1影像的大量元数据进行直接解析,过程比较繁琐。

技术实现要素:
本发明的目的是克服现有技术的不足,提出一种Radarsat-1影像快速全面的读取方法。Radarsat-1影像快速全面的读取方法包括如下步骤:1)根据Radarsat-1影像特点,分析影像数据的结构组成,获取不同数据集的唯一标识码;2)GDAL是一种遥感影像数据处理的开源库,其提供了读取Radarsat-1影像原始数据的接口,结合唯一标识码,可以获取各数据集的原始数据;3)根据影像数据结构的说明,生成不同数据集对应的数据模板;Radarsat-1影像由多个文件组成,每个文件包含多个数据集,每种数据集都有固定的数据结构;生成各数据集对应的模板,记录数据集中所有属性的名称、类型、长度、默认值四项信息,以XML或者数据库表格的形式存储;4)结合数据集模板,解析步骤2)获取的原始数据,生成Radarsat-1影像的元数据;5)利用GDAL开源库,获取影像所有波段信息,生成Radarsat-1影像的图像数据;6)对于SLC复数类型的数据,将每个像素数据拆分成两个部分,分别作为虚数和实数,每个波段均可生成虚数波段和实数波段,形成Radarsat-1影像的图像数据;所有元数据和图像数据即为从Radarsat-1影像读取的所有数据,在此基础上经过处理可生成更多信息。所述的步骤1)包括:Radarsat-1影像数据包含VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五个描述性文件,每个文件包含多个数据集,每个数据集都存在唯一标识码,由如下六个要素组成:所属文件、第一子类型编码、类型编码、第二子类型编码、第三子类型编码和该数据集的索引号,所属文件是指五个文件之一,四个类型编码值可在Radarsat-1的数据说明中查找,同一个文件中多个数据集对应同一组类型编码时,需要按照顺序设置索引号进行区分,否则无需设置索引号;数据集的要素编码固定,作为数据读取的唯一标识和凭证。所述的步骤4)包括:以数据集为单元,结合步骤3)生成的数据模板,对步骤2)获取的原始数据进行解析;根据模板中数据集的属性类型、长度、默认值等信息,解析出原始数据中相应位置的信息,作为属性值,依次循环,获取数据集中所有属性的数据值;对每个文件的所有数据集进行类似解析,生成Radarsat-1影像的元数据。所述的步骤6)包括:(1)Radarsat-1影像属于SLC类型时,采用复数形式存储图像数据,虚数部分数据和实数部分数据均有物理意义;步骤5)中利用GDAL获取的像素数据将虚数和实数混合存储在一起,需要对其进行拆分;(2)假设每个像素数据占用空间为N位,通过利用像素数据的存储地址即指针,将像素数据等分为两部分,前N/2位数据作为虚数部分,后N/2位数据作为实数部分;(3)所有像素拆分后,将所有虚数部分组合,生成原波段的虚数波段,所有实数部分组合,生成原波段的实数波段;原始波段数据全部经过拆分操作后,生成Radarsat-1影像的波段数据即图像数据。本发明与现有技术相比具有的有益效果是:(1)全面读取数据Radarsat-1影像含有大量的元数据信息,利用IDL等二次开发不能解析出全部的元数据信息;图像数据具有多种数据类型,现有开发方法中一般无法正确读取复数类型的图像数据。本发明根据Radarsat-1的数据说明,生成数据集的结构模板和唯一标识码,利用GDAL、标识码、模板三者结合,获取Radarsat-1数据说明中的所有元数据;采用拆分的方式,从复数形式的数据中解析出虚数波段和复数波段,正确获取所有的图像数据。因此,本发明的读取方法具有全面性,提供影像所有的属性数据和空间数据,满足用户对于Radarsat-1影像精确读取的要求。(2)实施简单利用IDL、Matlab等方式进行数据读取,需要安装相应的环境,不便于实施;利用直接解析的方法,需要计算不同数据集的位置索引,过程复杂繁琐。本发明的方法在开源库GDAL的基础上,采用任何一种语言均可实现,无需进行复杂的环境配置,且简化了数据流直接解析的过程。因此,本发明具有实施简单的特性,便于用户操作和重新实现。附图说明图1是一种实现本发明的技术流程图;图2是本发明的Radarsat-1影像读取的元数据示例图;图3是本发明的Radarsat-1影像读取的图像数据示例图;图4是本发明的Radarsat-1影像读取的复数类型的图像数据示例图。具体实施方式Radarsat-1影像快速全面的读取方法包括如下步骤:1)根据Radarsat-1影像特点,分析影像数据的结构组成,获取不同数据集的唯一标识码;2)GDAL是一种遥感影像数据处理的开源库,其提供了读取Radarsat-1影像原始数据的接口,结合唯一标识码,可以获取各数据集的原始数据;3)根据影像数据结构的说明,生成不同数据集对应的数据模板;Radarsat-1影像由多个文件组成,每个文件包含多个数据集,每种数据集都有固定的数据结构;生成各数据集对应的模板,记录数据集中所有属性的名称、类型、长度、默认值四项信息,以XML或者数据库表格的形式存储;4)结合数据集模板,解析步骤2)获取的原始数据,生成Radarsat-1影像的元数据;5)利用GDAL开源库,获取影像所有波段信息,生成Radarsat-1影像的图像数据;6)对于SLC复数类型的数据,将每个像素数据拆分成两个部分,分别作为虚数和实数,每个波段均可生成虚数波段和实数波段,形成Radarsat-1影像的图像数据;所有元数据和图像数据即为从Radarsat-1影像读取的所有数据,在此基础上经过处理可生成更多信息。所述的步骤1)包括:Radarsat-1影像数据包含VolumeDirectory、Leader、Trailer、Data、NullVolumeDirectory五个描述性文件,每个文件包含多个数据集,每个数据集都存在唯一标识码,由如下六个要素组成:所属文件、第一子类型编码、类型编码、第二子类型编码、第三子类型编码和该数据集的索引号,所属文件是指五个文件之一,四个类型编码值可在Radarsat-1的数据说明中查找,同一个文件中多个数据集对应同一组类型编码时,需要按照顺序设置索引号进行区分,否则无需设置索引号;数据集的要素编码固定,作为数据读取的唯一标识和凭证。所述的步骤4)包括:以数据集为单元,结合步骤3)生成的数据模板,对步骤2)获取的原始数据进行解析;根据模板中数据集的属性类型、长度、默认值等信息,解析出原始数据中相应位置的信息,作为属性值,依次循环,获取数据集中所有属性的数据值;对每个文件的所有数据集进行类似解析,生成Radarsat-1影像的元数据。所述的步骤6)包括:(1)Radarsat-1影像属于SLC类型时,采用复数形式存储图像数据,虚数部分数据和实数部分数据均有物理意义;步骤5)中利用GDAL获取的像素数据将虚数和实数混合存储在一起,需要对其进行拆分;(2)假设每个像素数据占用空间为N位,通过利用像素数据的存储地址即指针,将像素数据等分为两部分,前N/2位数据作为虚数部分,后N/2位数据作为实数部分;(3)所有像素拆分后,将所有虚数部分组合,生成原波段的虚数波段,所有实数部分组合,生成原波段的实数波段;原始波段数据全部经过拆分操作后,生成Radarsat-1影像的波段数据即图像数据。实施例:第一步为根据Radarsat-1影像特点,分析影像数据的结构组成,获取不同数据集的唯一标识码;唯一标识码,由如下六个要素组成:所属文件、第一子类型编码、类型编码、第二子类型编码、第三子类型编码和该数据集的索引号,且要素值固定。实施例的Radarsat-1影像包含VDF_DAT.001、TRA_01.001、NUL_VDF.001、LEA_01.001、DAT_01.001五个文件,分别为VolumeDirectory、Trailer、NullVolumeDirectory、Leader、Data文件。其中,LEA_01.001文件包含FileDescriptor、MapProjection等在内的四个数据集,TRA_01.001文件包含FileDescriptor、DataSetSummaryRecord等在内的五个数据集,VDF_DAT.001文件包含VolumeDescriptor、SARLeaderFilePointer、SARTrailerFilePointer等五个数据集,DAT_01.001文件则保存了图像数据。数据集包含唯一的标识码,例如LEA_01.001中数据集FileDescriptor的标识码为“lea-63-192-18-18”,索引号默认为0,MapProjection的标识码为“lea-18-20-18-20”,TRA_01.001中的FileDescriptor的标识码为“trl-63-192-18-18”,DataSetSummaryRecord的标识码为“trl-18-10-18-20”,VDF_DAT.001中的LeaderFilePointer的标识码为“vol-219-192-18-18:0”,ImageOptionsFilePointer的标识码为“vol-219-192-18-18:1”,TrailerFilePointer的标识码为“vol-219-192-18-18:2”,其他数据集的标识码可类似获得。第二步利用开源库GDAL,结合唯一标识码获取影像中各数据集的原始信息。GDAL提供查找获取影像元数据的接口函数GetMetadata(stringstrDomain),参数为一个表示元数据的检索目录的字符串。结合标识码设置参数,可获取不同数据集的原始信息,具体操作为,如想获取LEA_01.001的FileDescriptor记录信息,则将函数的参数设置为“ceos-lea-63-192-18-18”,获取VDF_DAT.001的ImageOptionsFilePointer记录的信息时,则将“ceos-vol-219-192-18-18:1”作为接口函数的参数,其他数据集信息可类似获得。第三步根据影像数据结构的说明,生成不同数据集对应的数据模板,记录数据集中所有属性的名称、类型、长度、默认值等信息,采用XML文件进行存储,分别用name、type、num、value表示相应的属性信息。VDF_DAT.001中数据集LeaderFilePointer的XML模板文件部分内容如下:<?xmlversion="1.0"encoding="UTF-8"?><ceosversion="1.0"mission="radarsat"><recname="skipBytes"type="0"num="8"/><recname="RecordLength"type="4"num="1"value="720"/><recname="Asciicodecharacter"type="1"num="2"/><recname="skipBytes"type="0"num="2"/><recname="Specificationnumber"type="1"num="12"/><recname="Specificationrevisionnumber"type="1"num="2"/><recname="Recordformatrevisionnumber"type="1"num="2"/><recname="Softwareversionnumber"type="1"num="12"/><recname="FileNumber"type="2"num="4"/>…</ceos>其中skipBytes表示可跳过的字节,如首部跳过的8个字节包括类型编码等固定信息,不需要进行详细解析,其他name值表示对应的属性字段名字,type表示类型,设置固定的阿拉伯数字分别代表不同的类型,0代表空白,即跳过,1代表Ascii,2代表整型,3、4代表二进制,5代表浮点型,num表示该属性值的长度即字节数,如type为2的值的num为4,即长度为4个字节,value表示该属性的默认值,某些属性存在固定的值,可在模板中将其存储为默认值,如LeaderFilePointer的长度属性RecordLength,默认值设置为720,无默认值的可忽略。第四步以数据集为单元,结合数据模板,对第二步获取的原始信息进行解析;根据模板中数据集的属性类型、长度、默认值等信息,解析出原始信息中相应位置的数据,作为属性值,比如对VDF_DAT.001中的数据集LeaderFilePointer,原始信息中第10到11字节表示属性Asciicodecharacter的值,第14到25字节表示属性Specificationnumber的值,依次循环即可得到每个数据集的属性值集合,对所有文件进行类似的解析后,即获得Radarsat-1影像的元数据。第五步利用GDAL读取波段信息,解析所有波段的图像数据;GDAL提供获取图像波段的函数GetRasterBand(intnBand),参数为波段的索引值,从0开始,获取波段后,通过ReadRaster可获取像素值数组,即该波段的图像数据,对每个波段进行循环操作,获得影像的所有图像数据。第六步对于SLC等复数类型的影像,将每个像素的信息拆分成两个部分,分别形成虚数波段和实数波段。实施例中,复数类型影像的数据类型为32位复数类型,按照GDAL读取波段的方式获得长度为L的Int型数组,通过地址相同的原则将其转换成长度为2L的Short型数组,按顺序每次取两个数,前者作为虚数部分,后者作为实数部分,依次循环L次,形成虚数集合和实数集合,即可得到对应的虚数波段和实数波段的图像数据。对每个波段进行循环操作,可获得复数类型影像的所有图像数据。所有元数据和图像数据即为从Radarsat-1影像中读取的所有数据,在此基础上经过处理可生成更多信息。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1