GeoTIFF、Shapefile和World File中空间参考的获取及其参数意义

首先提几个设定:

1)设空间坐标系的横轴为x轴,纵轴为y轴;
(2)若数据为地理坐标,则数值表示为经纬度,若数据为投影坐标,则数值表示为方里网;
(3)像元宽度:单个像素在地理坐标系x轴上的长度;
(4)像元高度:单个像素在地理坐标系y轴上的长度;
(5)影像指向:地图的绘制方向,通常x轴上向东为正方向,y轴上向北为正方向。

一、GeoTIFF

利用Package osgeo :: Module gdal :: Class Dataset :: Function GetGeoTransform,可以获取GeoTIFF中的空间参考。参考代码如下:

# -*- coding:utf-8 -*-
from osgeo import gdal


# this allows GDAL to throw Python Exceptions
gdal.UseExceptions()

gtif_path = r'D:\GIS\Samples\Lhasa.tif'

# open dataset
gtif = gdal.Open(gtif_path)

gtrans = gtif.GetGeoTransform()
print(gtrans)

输出结果为:

(10139107.183347218, 11.779945786963165, 0.0, 3464923.0918, 0.0, -11.779945786963165)

共6个参数,其代表的意义如下:

[0]左上角点x值(最小x值);
[1]像元宽度;
[2]影像东西指向,通常指东,为0[3]左上角点y值(最大y值);
[4]影像南北指向,通常指北,为0[5]像元高度。

二、Shapefile

利用Package osgeo :: Module ogr :: Class Geometry :: Function GetEnvelope可获取Shapfile文件中Geomtry的地理参考。参考代码如下:

# -*- coding:utf-8 -*-
from osgeo import ogr


shp_path = r'D:\GIS\Samples\Shapefile\gadm36_AUS_shp\gadm36_AUS_2.shp'

driver = ogr.GetDriverByName('ESRI Shapefile')
shp = driver.Open(shp_path, 0)  # 0 means read-only. 1 means writeable.

lyr = shp.GetLayer()
feat = lyr.GetNextFeature()
geom = feat.GetGeometryRef()
ext = geom.GetEnvelope()
print(ext)

输出结果为:

(122.96166992187511, 123.55563354492188, -12.532129287719727, -12.237127304077092)

共4个参数,其代表的意义如下:

[0]最左(小)x值;
[1]最右(大)x值;
[2]最下(小)y值;
[3]最上(大)y值。

三、World File

World File为Esri公司制定的给普通栅格图片添加空间参考的纯文本文件格式,可以使用记事本直接打开。World File文件名和主图片文件名一致,后缀名一般为3个字符,由主图片后缀名缩写加上字符w(如pgw、tfw、jgw等)。虽后缀名各有不同,但其读写方式与其他纯文本文件格式(如txt)一致。参考代码如下:

# -*- coding:utf-8 -*-


wf_path = r'D:\GIS\Samples\PNG\Arraial do Cabo.pgw'

with open(wf_path, 'r') as f:
    lines = f.readlines()
    lines = [x.strip() for x in lines if x.strip()!='']
    print(lines)

输出结果为:

['4.13411458699533529', '0', '0', '-4.13411458699533529', '-4680100.27214270643889904', '-2627341.84841968351975083']

共6个参数,其代表的意义如下:

[0]像元宽度;
[1]影像东西指向,通常指东,为0[2]影像南北指向,通常指北,为0[3]像元高度;
[4]左上角点x值(最小x值);
[5]左上角点y值(最大y值)。

PS:GeoTranform与World File之间的映射关系

GeoTranform -> World File
0->4, 1->0, 2->1, 3->5, 4->2, 5->3

World File -> GeoTranform
0->1, 1->2, 2->4, 3->5, 4->0, 5->3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值