ENVI_IDL:对于书写和创建GEOTIFF结构体?

简介: ENVI_IDL:对于书写和创建GEOTIFF结构体?

大家在使用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]]"
}
目录
相关文章
GEE案例——一个完整的火灾监测案例dNBR差异化归一化烧毁指数
GEE案例——一个完整的火灾监测案例dNBR差异化归一化烧毁指数
552 0
|
编解码 C++
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
1584 0
Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
|
存储 C语言 索引
ENVI IDL:熟悉IDL语法+输出多幅TIFF影像的MAX文件和MEAN文件
ENVI IDL:熟悉IDL语法+输出多幅TIFF影像的MAX文件和MEAN文件
642 0
|
监控 安全 网络安全
如何防止内网渗透攻击?
【10月更文挑战第10天】如何防止内网渗透攻击?
863 3
|
数据采集 数据可视化
国内77个城市建筑物轮廓(带高度)数据分享(附百度网盘)
国内77个城市建筑物轮廓(带高度)数据分享(附百度网盘)
1789 1
|
网络协议 安全 应用服务中间件
服务器最大支持多少链接数
【10月更文挑战第27天】本文探讨了单台服务器最大支持的链接数,分析了TCP链接标识的四元组、文件句柄限制、端口号范围及多IP绑定等技术细节。结论指出,理论上的最大链接数受制于文件句柄和内存,而链接接收端的链接数可视为无限大。
473 0
|
存储 数据库 开发者
深入浅出讲解Entity Framework Core中的复杂类型与值对象:从理论到实践的全方位指南,附带详实代码示例与最佳应用技巧
【8月更文挑战第31天】本文通过教程形式详细介绍了如何在 Entity Framework Core 中使用复杂类型与值对象,帮助开发者更自然地映射实体和数据库间的关系。文章首先指导创建基于 EF Core 的项目,并添加相关 NuGet 包。接着,通过具体代码示例展示了如何配置数据库上下文、定义领域模型,并使用复杂类型与值对象进行数据存储和查询。最后总结了使用这些技术的优势,包括简化复杂数据结构映射、提高可维护性及数据一致性。
296 0
|
设计模式 测试技术 数据库连接
Entity Framework Core 中的依赖注入超厉害!DI 与 DbContext 完美结合,提升开发效率
【8月更文挑战第31天】依赖注入(DI)是一种软件设计模式,用于将对象的依赖关系与其创建过程解耦,从而提升代码的可测试性、可维护性和可扩展性。在Entity Framework Core中使用DI能够提高可测试性,便于替换DbContext实现以进行单元测试;增强可维护性,使代码模块化并清晰展示组件间的依赖关系;提升可扩展性,方便添加新服务和功能而不需修改现有代码。通过Microsoft.Extensions.DependencyInjection等依赖注入容器,可将DbContext注册并注入到需要使用的类中,简化数据库管理和测试流程。
368 0
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
775 0
|
定位技术
ArcGIS矢量图层投影与地理坐标系转为投影坐标系——ArcMap
ArcGIS矢量图层投影与地理坐标系转为投影坐标系——ArcMap
340 1