李国春
气象卫星扫描刈幅宽覆盖范围广,在地球的不同位置可能需要不同的投影以便更好地表示这些观测数据。这与高分辨率的局地数据有很大不同,高分数据更倾向于用使用处理局地小范围的投影方式。本文选择性介绍几种RSD常用的适合低、中、高纬和极地地区的地图投影。
1. 选择大地坐标系
在介绍投影之前先介绍一下大地坐标系。我们知道,不同的坐标系中空间点有不同的位置坐标。或者说,同样的一对儿经纬度对儿,在不同的大地坐标系中,可能指向的位置并不相同。
RSD可以支持70多种大地坐标系,部分列表如下:
表1 大地坐标系椭球体参数
----------------------------------------------------------------------------------------------------------
名称 半长轴 扁率
----------------------------------------------------------------------------------------------------------
AIRY1830 , 6377563.396, 299.3249646
AIRY1849 , 6377340.189, 299.324964
AUSTRALIAN_NATIONAL , 6378160, 298.25
AVERAGE_TERRESTRIAL_SYSTEM1977 , 6378135, 298.257
BESSEL1841 , 6377397.155, 299.1528128
BESSEL1841NAMIBIA , 6377483.865, 299.1528128
…
FISCHER1968 , 6378150, 298.3
GEM10C , 6378137, 298.25722
…
WALBECK , 6376896, 302.78
WAR_OFFICE , 6378300.583, 296
WGS60 , 6378165, 298.3
WGS66 , 6378145, 298.25
WGS72 , 6378135, 298.26
WGS84 , 6378137, 298.2572236
CGCS2000 , 6378137, 298.257222101
--------------------------------------------------------------------------------------------------------
幸运的是现在全球都趋同使用WGS84这个大地坐标系统。虽然目前国内更倾向于使用CGCS2000系统,但是根据我个人的试验结果,在中纬度地区(45°N),CGCS2000系统与WGS84的差异是亚毫米级的,无论对气象卫星还是高分卫星来说,其差异可以完全忽略。因此无论你使用WGS84还是CGCS2000系统,结果基本都是一样的。
GEM10C也和WGS84具有几乎完全相同的椭球体,这个坐标系大概是在1995年修订的,比WGS84晚了10年左右。
在RSD中,在加载大多数的气象卫星数据或者创建框架时会出现一个投影参数选择的对话框,在这个对话框中可以选择需要的椭球体。见图1。
图1 指定坐标系统的椭球体
缺省就是WGS84,通常这里不需要选择,或者你可以选择CGCS2000系统。
2. 投影类别选择
气象卫星这种大范围地理跨度的投影,个人推荐低纬度地区使用圆柱投影,例如麦卡托一类的投影。中高纬度地区用圆锥投影,比方兰伯特投影、阿尔伯斯投影等。极地地区使用极射投影。当然也可以使用横轴麦卡托一类投影如通用横轴麦卡托、6度带的高斯克吕格投影等。同时根据需要选择保角类投影或者等积投影,可以根据投影名称查阅投影性质。
在图2中有RSD选择的30余种投影。
图2 选择投影类型
这里只是一些投影类别,每种类别还可以衍生出许多固定的投影。比方同样是Albers等积圆锥投影,使用不同的标准纬线、在不同的区域,又可以定义出很多具体投影。比方,EPGS收集了世界各地各种类型的投影并对其编号整理,以便于投影转换和数据交换。例如,EPSG:42303就代表北美的两个标准纬线为29.5°N、45.5°N,中央经线为-96.0°W的等积圆锥投影(Albers_Conic_Equal_Area)。类似的,有非常多的这样的投影定义,转换时需要查阅对应的投影参数进行投影变换,或者使用已经预定了这些投影的GIS软件进行变换。
3. 投影参数与图像成图的参数
虽然EPGS等机构预定义的投影非常多,但是底层的不同类别的投影参数个数也很有限。通过设定这些参数,可以和这些预定义的投影对标,也可以灵活设计出适合自己需要的投影。尤其是适合处理遥感数据的以像素为计算单元的投影。
3.1 投影参数
RSD规定的投影参数如下。
ID = <投影ID>, //投影ID,例如UTM、ALBERS_CONIC_EQAREA等
a = <椭球体半长轴>, //椭球体半长轴,如WGS84 为6378137
f = <椭球体扁率>, //椭球体扁率(实为扁率的倒数1/f),如WGS84 为298.257222101,
SP1 = <第1标准纬线>, //圆锥投影的第1标准纬线,麦卡托的割线,UTM、高斯投影的带号。
SP2 = <第2标准纬线>, //圆锥投影的第2标准纬线。
org_lat = <原点纬度>, //投影的纬度原点。
cen_lon = <中央经线>, //投影的中央经线。
FN = <伪北>, //False Northing,伪北坐标。
FE = <伪东>, //False Easting,伪东坐标。
K = <系数>, //变换系数。
DATUM = <大地基准>, //缺省为WGS84。
上述ID是与投影名称对应的ID号,33种投影对应0~32的值。见表2。在图2的下拉组合框选择投影时这个值被自动设置。
表2 RSD投影
ID | 投影名称 | 投影英文名称 | ID串 |
0 | 等经纬度网格 | pseudo plate carree | PSEUDO_PLATE_CARREE |
1 | 兰伯特等角圆锥投影-双标准纬线 | Lambert Conformal Conic 2SP | LAM_CONIC_COMF_2SP |
2 | 兰伯特等角圆锥投影-单标准纬线 | Lambert Conformal Conic 1SP | LAM_CONIC_COMF_1SP |
3 | 麦卡托割线投影 | Mercator 2SP | MERCATOR_2SP |
4 | 麦卡托切线投影 | Mercator 1SP | MERCATOR_1SP |
5 | 高斯-克吕格投影 | Gauss-Kruger | GAUSS_KRUGER |
6 | 横轴麦卡托投影 | Transverse Mercator | TRANSVERSE_MERCATOR |
7 | 通用横轴麦卡托投影 | Universal Transverse Mercator | UTM |
8 | 阿尔伯斯等积圆锥投影 | Albers Conical Equal Area | ALBERS_CONIC_EQAREA |
9 | 极射切面投影 | Polar Stereographic VA | POLAR_STEREO_GRAPH_VA |
10 | 极射割面投影 | Polar Stereographic VB | POLAR_STEREO_GRAPH_VB |
… | |||
28 | 不连续摩尔魏特投影 | Interrupted Mollweide | INTERRU_MOLL |
29 | 哈默投影 | Hammer | HAMMER |
30 | 瓦格纳投影IV | Wagner IV | WAGNER_IV |
31 | 瓦格纳投影VII | Wagner VII | WAGNER_VII |
32 | 扁球等积投影 | Oblated Equal Area | OBL_EQU_AREA |
a、f是椭球体半长轴和扁率,未指定时由DATUM确定。或者,指定了RSD的投影ID后,这两个值就确定了。通常这两个值在图1选择椭球体时自动设置。
SP1、SP2在割线圆锥投影时是两个标准纬线。切线投影时SP1是切线纬度。墨卡托投影时SP1是割线的南北纬度。UTM投影时SP1是投影带号。SP1、SP2需要在对话框的 第一标准纬线、第二标准纬线 中指定。
org_lat是投影的原点纬度,需要在 起始纬度 中输入。org_lon是投影的中央经线,需要在 中央子午线 中输入。
FN(False Northing)是伪北坐标,需要在 伪北距 中输入。FE(False Easting),伪东坐标,需要在 伪东距 中输入。
K是一个变换系数,用于调整投影后距离。通常为1,UTM投影时为0.9996。
上述这些参数如果从给定的经纬度变换为Northing、Easting,以及从指定的Northing、Easting逆变换为经纬度就已经足够了。可以使用不同的投影模型在经纬度坐标和投影坐标之间随意转换。但是如果希望将卫星对地观测的场数据合成为遥感图像,还需要对目标图像进行进一步描述。因此还需要下面的一些参数。
3.2 合成图像的参数
center_lat、center_lon —— 图像中心的经纬度。正算时指定,左上角经纬度未知时指定中心经纬度位置。图1中的 中心纬度 和 中心经度。
tie_N、tie_E —— 图像TiePoint(常用左上角)的 Northing、Easting。反算时指定。
pixsize —— 像元尺寸,单位为m。图像中的像元大小。图1中的 像元尺寸。
northings、eastings —— 图像南北、东西方向长度,m。图1 中的 北距数 和 东距数。
rows、cols —— 未指定northings、eastings 时可以指定这两个值。
tie_x、tie_y —— Tie Point 的偏移,反算时指定。
4. 圆锥类投影
圆锥类投影分割线和切线两种,圆锥面与椭球面相切时,交线是1条(SP1)。圆锥面与椭球面相割时,交线是2条(SP1、SP2)。
4.1 阿尔伯斯等积圆锥投影
选择打开一个气象卫星L1B数据(这里是一个FY3D MERSI2),在图2中选择切线或者割线的兰伯特等角圆锥投影。
阿尔伯斯等积圆锥投影 。设置投影参数。打开后见图3。
图3 阿尔伯斯等积圆锥投影(FY3B MERSI,FY3B_MERSI_GBAL_L1_20101122_0510_0250M_MS.HDF)
图3是FY3B MERSI L1B数据集投影后图像,增加了RSD伪3D技术合成图像的效果。
投影参数串如下:
/DATUM = WGS84, /ID = ALBERS_CONIC_EQAREA, /a = 6378137.000, /f = 298.2572236000, /SP1 = 31.00, /SP2 = 35.00, /org_lat = 0.00, /cen_lon = 121.00, /FN = 0.00, /FE = 0.00, /K = 1.000000
/pixsize = 250.0000, /tie_N = 4889385.0000, /tie_E = -1671508.0000, /rows = 9606, /cols = 13222, /center_lat = 34.73209241, /center_lon = 120.79515234, /northings = 2401500.0000, /eastings = 3305500.0000, /tie_y = 0, /tie_x = 0
RSD交互处理平台的属性窗口中也有关于投影方式的和框架的内容。
4.2 兰伯特投影
同样选择打开上述气象卫星L1B数据,在图2中选择 兰伯特等角圆锥投影-2SP 。设置投影参数打开后见图4。
图4 兰伯特等角圆锥投影(FY3B MERSI,FY3B_MERSI_GBAL_L1_20101122_0510_0250M_MS.HDF)
投影参数串如下:
/DATUM = WGS84, /ID = LAM_CONIC_COMF_2SP, /a = 6378137.000, /f = 298.2572236000, /SP1 = 30.00, /SP2 = 35.00, /org_lat = 0.00, /cen_lon = 105.00, /FN = 0.00, /FE = 0.00, /K = 1.000000
/pixsize = 250.0000, /tie_N = 5353068.0000, /tie_E = -211473.0000, /rows = 9712, /cols = 13220, /center_lat = 34.73209195, /center_lon = 120.79514580, /northings = 2428000.0000, /eastings = 3305000.0000, /tie_y = 0, /tie_x = 0
上述的两个圆锥投影一个是等积的,一个是保角的。还有更多的圆锥投影,用户可以根据需要选用,请参阅RSD软件的有关说明。
5. 圆柱类投影
5.1低纬度的麦卡托投影
打开一个葵花9卫星波段3(0.65μ)大圆盘数据(HS_H09_20230226_0350_B03_FLDK_R05_S0110.DAT)。在图2中选择 麦卡托割线投影 。设置投影参数,然后打开,同样进行RSD伪3D处理(图5)。
图5 麦卡托割线投影(HS_H09_20230226_0350_B03_FLDK_R05_S0110.DAT)
投影参数串如下:
/DATUM = WGS84, /ID = MERCATOR_2SP, /a = 6378137.000, /f = 298.2572236000, /SP1 = 10.00, /org_lat = 0.00, /cen_lon = 105.00, /FN = 0.00, /FE = 0.00, /K = 1.000000
/pixsize = 500.0000, /tie_N = 4836500.0000, /tie_E = -1783000.0000, /rows = 5560, /cols = 7675, /center_lat = 29.72055286, /center_lon = 106.21946300, /northings = 2780000.0000, /eastings = 3837500.0000, /tie_y = 0, /tie_x = 0
5.2横轴麦卡托投影
UTM投影高斯克吕格投影等横轴麦卡托类投影广泛应用于空间范围比较小的高分数据。由于气象卫星数据经纬度跨度大,横轴麦卡托投影由于带宽等原因,使用较少。有关这类投影的介绍见高分数据处理的相关内容。
6. 极地投影
6.1北极极射投影
示例数据集
GIMGO-SVI01-SVI02-SVI03-SVI04-SVI05_j01_d20230915_t0150181_e0155581_b30173_c20230917231056693188_oebc_ops.h5。
图2中选择 极射割面投影 。起始纬度只有90°(北极)和-90°( 南极)两种选择,这里选择90°。在第1标准纬线指定一个割线的纬度,65°N。加载后见图6。
图6 极射割线投影(北极)
投影参数串如下:
/DATUM = WGS84, /ID = POLAR_STEREO_GRAPH_VB, /a = 6378137.000, /f = 298.2572235630, /SP1 = 65.00, /org_lat = 90.00, /cen_lon = 100.00, /FN = 0.00, /FE = 0.00, /K = 1.000000
/pixsize = 375.0000, /tie_N = 931883.0000, /tie_E = -1962370.0000, /rows = 9728, /cols = 8231, /center_lat = 81.19223562, /center_lon = 74.83896974, /northings = 3648000.0000, /eastings = 3086625.0000, /tie_y = 0, /tie_x = 0
6.2南极极射投影
数据集
GIMGO-SVI01-SVI02-SVI03-SVI04-SVI05_npp_d20211125_t0103396_e0109199_b52219_c20211126040523484957_oebc_ops.h5
图7 极射割线投影(南极)
投影参数串如下:
/DATUM = WGS84, /ID = POLAR_STEREO_GRAPH_VB, /a = 6378137.000, /f = 298.2572236000, /SP1 = -75.00, /org_lat = -90.00, /cen_lon = 105.00, /FN = 0.00, /FE = 0.00, /K = 1.000000
/pixsize = 375.0000, /tie_N = 2948823.0000, /tie_E = -529741.0000, /rows = 9521, /cols = 7408, /center_lat = -77.10194517, /center_lon = -38.55686661, /northings = 3570375.0000, /eastings = 2778000.0000, /tie_y = 0, /tie_x = 0
org_lat为-90代表南极。
极地投影对极地地区面积计算比较真实。圆锥投影中高纬还可以,但是极地上就发生了变形。至于等经纬度网格的南北两极的拉伸变形就更加严重了。
推荐使用割面的极地投影,在标准纬线附近变形最小。
7. 等经纬度网格(pseudo plate carree投影)
人们经常使用未进行的投影变换的经纬度坐标,这在矢量格式的地理数据中应用非常广泛。因为这些未定的地理位置应用在何种投影坐标时都可以随时变换成需要的投影坐标位置。使用这些经纬度坐标毫无问题,但是不要把它称为大地坐标系的名称,比方好多人把经纬度坐标直接称之为WGS84。这样是不对的,WGS84不是和UTM、麦卡托等投影名等同的。
栅格格式的地理数据直接使用经纬度坐标就有问题了,你必须给栅格像元赋一个位置。这个位置定了就等于已经进行了投影。实际上,在确定栅格像元位置时,你已经有意或者无意使用了一种投影,就是这里介绍的pseudo plate carree投影。
pseudo plate carree投影的坐标位置是经纬度乘100000,单位也可以称之为m。这个值实际上是不准的,例如一个纬距约110km,在pseudo plate carree投影中只有100km。更不准的是经距,越往高纬越窄。因此,实际应用中很多单位在不同的纬度地区给它们赋予了一些变换系数,在精度要求不高时也能凑合着用。
pseudo plate carree投影的例子如下:
图8 pseudo plate carree投影
虽然这种投影也能经常出现,但是还是出现的越少越好。
/DATUM = WGS84, /ID = PSEUDO_PLATE_CARREE, /org_lat = 0.00, /cen_lon = 114.00, /FN = 0.00, /FE = 11400000.00,
/pixsize = 1000.0000, /tie_N = 6082136.0000, /tie_E = 8949021.0000, /rows = 4094, /cols = 4922, /center_lat = 40.35136000, /center_lon = 114.10021000, /northings = 4094000.0000, /eastings = 4922000.0000, /tie_y = 0, /tie_x = 0
又:RSD提供的是工具,用户都可以使用这套工具实现我在CSDN介绍的这些功能。仍然还有人认为我是使用老外的软件做的这些示例,不是的。
加758461012,原来的满了。