GeoTIFF
GeoTIFF
GDAL读取tif文件:02 |
GDAL输出tif文件:03 |
输出tiff相关信息:07 |
GeoTiff是一种遥感影像数据格式,它是一种栅格数据,这种数据是以像素点矩阵的形式存储的。
文件中的空间信息包括:投影信息和仿射变换信息。
其中,仿射变换(经纬度等)的信息分别为:
左上角的坐标(经度和纬度)、东西和南北方向的像素分辨率(也就是每个像素点的经纬度偏移量)以及图像的旋转系数(正北方向时为零)。
这样,每个像素点的坐标就可以通过它与左上角的偏移量和每个像素的分辨率值计算出来。
切图产生的新图的投影信息是不变的,但仿射信息会发生变化,因为左上角的原点可能跟原图不一样了。因此,需要重新计算仿射信息并设置(投影信息也需要设置,但不需要重新计算)。
ds = gdal.Open(base_tif)
proj = ds.GetProjection() # 投影信息
geotransform = ds.GetGeoTransform() # 仿射变换信息
结果:
GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]
(113.0, 0.00041174855888004394, 0.0, 23.0, 0.0, -0.00041174855888004394)
从仿射变化信息可以获取以下坐标值:
# x_min = geotransform[0] ## 左上x
# y_max = geotransform[3] ## 左上y
# x_max = x_min + geotransform[1] * ds.RasterXSize # 右下x
# y_min = y_max + geotransform[5] * ds.RasterYSize # 右下y