实现条件
1.GDAL库
2.DEM数据
开发语言
python3
开发环境
Linux
难度等级
中
方法1:
inux下python3的GDAL链接如下:
https://sourceforge.net/projects/gdal-wheels-for-linux/files/
下载对应python版本的GDAL
再pip安装:
pip install GDAL-3.4.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
方法2:
# 安装的版本需要和python版本一致
python3 -m pip install https://sourceforge.net/projects/gdal-wheels-for-linux/files/GDAL-3.4.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl/download
方法3:
【推荐方法】机器需要可以连外网
apt-get update
apt-get install -y python3-gdal
方法1:
pip install GDAL
方法2:
先下载 GDAL-3.4.1.tar.gz
然后解压后执行下面的指令:
python setup.py build
python setup.py install
~# python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gdal
不报错即说明安装成功!
下载高程 tif 格式数据,自行百度一下
from osgeo import gdal
def get_elevation(tif_path, latitude, longitude):
gdal.UseExceptions()
ds = gdal.Open(tif_path)
band = ds.GetRasterBand(1)
elevation = band.ReadAsArray()
nrows, ncols = elevation.shape
x0, dx, dxdy, y0, dydx, dy = ds.GetGeoTransform()
new_ncols, new_nrows = int((y0-latitude)/dx), int((longitude-x0)/dx)
return elevation[new_ncols][new_nrows]
#经纬度点坐标
latitude, longitude = 31.15, 111.24
h = get_elevation('./xxx.tif', latitude, longitude)