大家在使用WRITE_TIFF函数和READ_TIFF函数的时候,应该遇见过GEOTIFF参数。
但是我对于这个参数却是了解不深,趁着这次学习梳理一下GEOTIFF参数.
在学习之前,我发现IDL教程并没有提供关于GEOTIFF的示例,所以我尝试使用READ_TIFF函数获取TIFF文件的GEOTIFF参数并打印输出,并结合IDL教程观察GEOTIFF的规律。
首先,下面是GEOTIFF结构体的一个示例.
通过上面与ArcMap的对比最后发现结果如下:
GEOTIFF结构体的存储类似于Python的字典形式.
MODELPIXELSCALETAG:以数组形式表示像元的分辨率,分别是X、Y、Z方向上的分辨率.(由于上方的TIFF文件就是二维的,所以只有X、Y方向上有分辨率,而Z方向上的分辨率无默认是0);
MODELTIEPOINTTAG:以数组形式表示角点信息,前三个数组元素表示角点的行列号(Z方向上就是第三个元素,由于不常见这里就说明),后三个数组元素表示角点的经纬度以及高程.(由于上方的TIFF文件是二维的,所以前两个元素表示角点的行列号<其实一般都是左上角点,所以一般就填0行0列>,而第三个元素无需填写默认是0;后三元素表示的前三个元素所表示的角点的经纬度和高程<一般就只有经纬度,高程比较少见所以一般无需填写默认是0>);
GEOGCITATIONGEOKEY:以字符串形式表示坐标系的名称,基准面,椭球体等等信息(其实一般写入坐标系名称即可,至于名称在ENVI53\classic\map_proj\map_proj.txt中可以查看);
GEOGSEMIMAJORXISGEOKEY:表示椭球体的长半轴长度.
至于其它的一些参数,我也不是很清楚,但是可以发现,尝试多个之后有一些参数是不会改变的,所以我们只需要管理编辑那些常见的参数即可.
给几个示例大家参考一下:
geo_info = {$ ; 这里的$表示换行的意思,因为一行写不完这么多信息 MODELPIXELSCALETAG:[0.25,0.25,0.0],$ MODELTIEPOINTTAG:[0.0,0.0,0.0,-180.0,90.0,0.0],$ GTMODELTYPEGEOKEY:2,$ GTRASTERTYPEGEOKEY:1,$ GEOGRAPHICTYPEGEOKEY:4326,$ GEOGCITATIONGEOKEY:'GCS_WGS_1984',$ GEOGANGULARUNITSGEOKEY:9102,$ GEOGSEMIMAJORAXISGEOKEY:6378137.0,$ GEOGINVFLATTENINGGEOKEY:298.25722}
{ "MODELPIXELSCALETAG": [0.0083333337680000039, 0.0083333337680000005, 0.00000000000000000], "MODELTIEPOINTTAG": [0.00000000000000000, 0.00000000000000000, 0.00000000000000000, 97.215833421027995, 34.328020408432998, 0.00000000000000000], "GTMODELTYPEGEOKEY": 2, "GTRASTERTYPEGEOKEY": 1, "GEOGRAPHICTYPEGEOKEY": 4326, "GEOGCITATIONGEOKEY": "GCS Name = GCS_WGS_1984|Datum = D_WGS_1984|Ellipsoid = WGS_1984|Primem = Greenwich|", "GEOGGEODETICDATUMGEOKEY": 6326, "GEOGPRIMEMERIDIANGEOKEY": 8901, "GEOGANGULARUNITSGEOKEY": 9102, "GEOGANGULARUNITSIZEGEOKEY": 0.017453292519943299, "GEOGELLIPSOIDGEOKEY": 7030, "GEOGSEMIMAJORAXISGEOKEY": 6378137.0000000000, "GEOGINVFLATTENINGGEOKEY": 298.25722356300003, "GEOGPRIMEMERIDIANLONGGEOKEY": 0.00000000000000000, "PCSCITATIONGEOKEY": "ESRI PE String = GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]" }