
一般情况下,直接调用就可以了
但若你的参数是程序自动生成的,就有必要用apply了
如
def test(a,b):
print(a,b)
x=(1,2) #这个x由程序生成
apply(test,x) #x是可变参数,相当于调用test(1,2),你若写成test(x)就是错的
1、通过GDAL读取经纬度(度分秒),转换成小数形式。
2、使用GDAL的CoordinateTransformation方法将经纬度转换成投影坐标,再转换成行列坐标,最后读取像元值。就可以获取单位了。
//波段循环读取每波段到波段表m_bandList(vector)容器里,前提是你已经有了数据集pDataset
for(int i=0;i<m_nBands;i++)
{
GDALRasterBand pBand = pDataset->GetRasterBand(i+1);
m_bandListinsert(m_bandListend(),pBand);
}
//从波段表里取j波段
GDALRasterBand pband = m_bandList[j] ;
//读取stWstH大小的图像数据到pBuf里(大小是stWstH),起始点是图像左上角0,0
//m_datatype是数据类型,如单通道8位是GDT_Byte什么的
pband->RasterIO(GF_Read,0,0,stW,stH,(void )pBuf,stW,stH,m_datatype,0,0);
//这样数据都在pBUf里了,接下来你想访问哪个像素值就看你了
//比如先行后列读取(x,y)像素值到到pixel
unsigned char pixel=pBuf[ystW+x];
以上就是关于关于用PYTHON的GDAL库处理地理数据的问题全部的内容,包括:关于用PYTHON的GDAL库处理地理数据的问题、gdal导入地图怎么获取单位、gdal读多波段数据的像元,也就是每个波段读一个值,得到一个象元,该怎么处理呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)