【gis学习】GDAL获取栅格数据各个像素对应的经纬度

本文介绍了如何利用GDAL库在Python中获取栅格数据每个像素点对应的经纬度坐标,详细解析了GDAL的GetGeoTransform方法及其参数含义,并提供了相关的示例代码,着重展示了如何通过仿射变换将像素位置转换为地理坐标。
摘要由CSDN通过智能技术生成

参考:GDAL获取栅格数据各个像素对应的经纬度(Python版)
gdal GetGeoTransform解释 GetProjectionRef
//如果图像不含地理坐标信息,默认返回值是:(0,1,0,0,0,1)
//In a north up image,
//左上角点坐标(padfGeoTransform[0],padfGeoTransform[3]);
//padfGeoTransform[1]是像元宽度(影像在宽度上的分辨率);
/p/adfGeoTransform[5]是像元高度(影像在高度上的分辨率);
//如果影像是指北的,padfGeoTransform[2]和padfGeoTransform[4]这两个参数的值为0。
后面继续补充有关于这个坐标系统的定义

GDAL数据集有两种模式描述栅格位置(用点/线坐标系)以及地理参考坐标系之间的关系:首要的也是最普遍的是使用仿射转换,另一种则是GCPs(多控制点定位方式)

仿射变换由6个参数构成,它们由GDALDataset::!GetGeoTransform()返回它们把点/线坐标系(我想这里的(点/线)意思是栅格的(行/列)位置)用下面的关系转换到地理参考空间。

1 Xgeo = GT(0) + XpixelGT(1) + YlineGT(2)
2 Ygeo = GT(3) + XpixelGT(4) + YlineGT(5)

假设指北针向上的影像,GT2和GT4参数是0,而GT1是象元宽,GT5是象元高,(GT0,GT3)点位置是影像的左上角。

注意,上面所说的点/线坐标系是从左上角(0,0)点到右下角,也就是坐标轴从左到右增长,从上到下增长的坐标系。点/线位置中心是(0.5,0.5)扩充:

Demo

import gdal
import numpy as np

dataset = gdal.Open("C:\\Users\\Nihil\\Desktop\\Arcgisdata\\HPDEM.tif")

adfGeoTransform = dataset.GetGeoTransform()

nXsize = dataset.RasterXSize#列数
nYsize = dataset.RasterYSize#行数

arrSlope = []#存储每个像素的X,Y值
for i in range(nXsize):
    row = []
    for j in range(nYsize):
        px = adfGeoTransform[0]+i*a
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值