一种面向IDL投影转换算法的制作方法

文档序号:14217438阅读:293来源:国知局

本发明涉及一种面向idl投影转换算法。属于遥感数据处理技术领域。



背景技术:

idl编程语言功能强大,在航空航天、遥感地信等领域应用广泛。很多研究学者在研究极地相关参量如气温、海温、风等等的时候,会遇到一问题,气温、海温和风这类数据大都是utm投影的全球数据,如图4所示,为全球气温分布图,而不是极地部分的区域性数据。研究者又不能简单的将极地地区部分数据裁剪下来,因为全球数据的投影和专门研究极地地区的投影不同,此问题给研究人员带来较多困难。然而目前还没有直接将从全球utm投影的数据中,直接裁剪并转换为极地正轴投影的方法。针对以上问题,本发明实施具体解决算法,研究者可以下载到全球经纬度网格数据和极地网格数据,基于这些数据,采用本发明即可从全球utm投影的数据中裁剪并转为极地正轴投影的数据。



技术实现要素:

针对上述问题,本发明提出一种面向idl投影转换算法,可直接从全球utm投影的数据中裁剪极地部分并转换为极地正轴投影。

本发明解决其技术问题所采用的技术方案是:一种面向idl投影转换算法,包括以下步骤:

读取utm投影的全球经纬度、北极经纬度、全球气温数据;全球经纬度为全球气温数据所对应的经纬度;北极经纬度是转成极地正轴投影数据所对应的经纬度;

定义变量,用于储存转换后的北极气温数据;

计算北极经纬度的每个网格点距全球经纬度的各网格点的距离;将最小距离对应的全球经纬度索引所指向的气温数据赋予北极经纬度索引所指向的变量网格,最终得到极地正轴投影的北极地区气温数据。

所述定义变量类型为浮点型。

所述将最小距离对应的全球经纬度索引所指向的气温数据赋予北极经纬度索引所指向的变量网格最终得到极地正轴投影的北极地区气温数据包括以下步骤:

北极气温网格的第x列、y行的网格点at[x-1,y-1]的数值用比较距离的方法来获取:北极经纬度数据网格点(lon[x-1,y-1],lat[x-1,y-1])距全球经纬度数据所有网格点的距离中,最小距离所对应的全球经纬度网格点处的全球气温值就等于极地气温网格点at[x,y]处的气温值;

遍历北极经纬度所有数据网格点,最终得到极地正轴投影的北极地区气温数据.

所述距离通过下式得到:

北极经纬度数据网格第x列、y行的网格点(lon[x-1,y-1],lat[x-1,y-1])距离全球经纬度数据第x列、y行的网格点(lon[x-1,y-1],lat[x-1,y-1])的距离l表示为

第1列、第1行表示为[0,0],第x列、y行表示为[x-1,y-1]。

一种面向idl投影转换算法,以idl程序实现。

本发明具有以下有益效果及优点:

1.本发明方法面向idl投影转换算法,可直接从全球utm投影的数据中裁剪极地部分并转换为极地正轴投影,解决了全球某参量的原数据向极地转换难的问题。

2.本算法简洁便于操作。

3.本算法多种投影数据之间的转换。

附图说明

图1是本发明的流程图;

图2是网格示意图;

图3是气温网格数据示意图;

图4是全球utm投影的气温分布图;

图5是极地正轴投影的北极气温分布图;

具体实施方式

下面结合附图对本发明做进一步说明。

如图1所示,读取utm投影的全球气温数据的经纬度、极地正轴投影的极地区的经纬度、全球气温数据;定义变量,用于储存转换后的极地气温数据;通过计算极地经纬度的每个网格距全球经纬度的每个网格的距离,将最小距离对应的全球经纬度索引所指向的气温数据赋予北极经纬度索引所指向的变量网格,依次循环计算所有网格,最终得到极地正轴投影的极地地区气温数据。本发明示例为将utm投影的全球气温数据的北极地区数据转换成极地正轴投影。包括以下步骤:

读取utm投影的全球经纬度、北极经纬度、全球气温数据;全球经纬度为全球气温数据所对应的经纬度;北极经纬度是转成极地正轴投影数据所对应的经纬度。

定义变量,用于储存转换后的北极气温数据。需定义与北极经纬度网格大小和数目一致的变量,为后期精确储存数据,本发明定义变量类型为浮点型。本示例北极经纬度网格为304列,448行。因此定义北极气温变量at为304列448行浮点型数组,用于储存转换后的北极气温数据。

计算北极经纬度的每个网格距全球经纬度的每个网格的距离。假设全球经纬度第一行第一列的网格数值用lon[0,0](lon[0,0],lon表示全球经度网格,[0,0]表示经度网格的第1列第一行的网格点),维度大小用lat[0,0]来表示,即(lon[0,0],lat[0,0]);北极经纬度第一行第一列的网格数值用lon[0,0],维度大小用lat[0,0]来表示,即(lon[0,0],lat[0,0])。则北极经纬度第一行第一列的网格距全球经纬度第一行第一列的网格的距离l[0,0]的计算公式为:

依次将网格点(lon[0,0],lat[0,0])与全球经度所有网格点的距离求出。本发明示例,全球经纬度网格为192列,94行;因此(lon[0,0],lat[0,0])与全球经纬度所有网格点的距离有18048个。

将最小距离对应的全球经纬度索引所指向的气温数据赋予北极经纬度索引所指向的变量网格。对该18048个距离数值进行比较,选出最小的数值所对应的索引。因最小值可能为多个,因此需要进行判断。若最小值所对应的索引只有1个,则将此索引指向的气温数据,赋予北极经纬度索引[0,0]所指向的变量网格at[0,0];若最小值所对应的索引有多个,则将其中任一个索引指向的气温数据,赋予北极经纬度索引所指向的变量网格at[0,0],本发明示例取第一个索引。

采用循环,再计算北极经纬度网格点(lon[1,0],lat[1,0])与全球经度所有网格点的距离,按at[0,0]的求算原理,得出at[1,0];经循环计算直至得到at[303,447],最终得到极地正轴投影的北极地区气温数据at。

一种面向idl投影转换算法,以idl程序实现。

遥感数据有些是遥感影像的形式,研究者可从中提取相关信息,有些是网格数据,卫星采集的数据以数字的形式储存在有规律的网格之中。如图2,是一张北极某区域正轴投影网格,黑色方块为以网格点,里面可储存数据。气温网格数据示例如图3,由于空间限制截取了11列31行气温数据,单位为k。利用idl程序对此类网格数据处理时,都是以每个网格为单位进行计算的。以下为算法的具体实施方式。

利用idl读文件函数分别读取utm投影的全球气温数据的经纬度、极地正轴投影的极地区的经纬度、全球气温数据;全球经纬度为全球气温数据所对应的经纬度;北极经纬度是转成极地正轴投影数据所对应的经纬度。

定义与北极经纬度网格大小和数目一致的变量,为后期精确储存数据,本发明定义变量类型为浮点型。本示例北极经纬度网格为304列,448行。因此定义北极气温变量at为304列448行浮点型数组,用于储存转换后的北极气温数据。

计算北极经纬度的每个网格距全球经纬度的每个网格的距离。假设全球经纬度第一行第一列的网格数值用lon[0,0](lon[0,0],lon表示全球经度网格,[0,0]表示经度网格的第1列第一行的网格点),维度大小用lat[0,0]来表示,即(lon[0,0],lat[0,0]);北极经纬度第一行第一列的网格数值用lon[0,0],维度大小用lat[0,0]来表示,即(lon[0,0],lat[0,0])。则北极经纬度第一行第一列的网格距全球经纬度第一行第一列的网格的距离l[0,0]的计算公式为:

依次将网格点(lon[0,0],lat[0,0])与全球经度所有网格点的距离求出。本发明示例,全球经纬度网格为192列,94行;因此(lon[0,0],lat[0,0])与全球经纬度所有网格点的距离有18048个。

利用大小判断函数从18048个距离数值中挑选出最小距离数值,将最小距离对应的全球经纬度索引所指向的气温数据赋予北极经纬度索引所指向的变量网格。因最小值可能为多个,因此需要进行判断。若最小值所对应的索引只有1个,则将此索引指向的气温数据,赋予北极经纬度索引[0,0]所指向的变量网格at[0,0];若最小值所对应的索引有多个,则将其中任一个索引指向的气温数据,赋予北极经纬度索引所指向的变量网格at[0,0],本发明示例取第一个索引。

采用for循环,先循环行(448),在循环列(304),计算完第一个网格点之后,再进行第二个网格点,即计算北极经纬度网格点(lon[1,0],lat[1,0])与全球经度所有网格点的距离,按权利要求3和4中的原理,得出at[1,0];经循环计算直至得到at[303,447],最终得到极地正轴投影的北极地区气温数据at。如图5所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1