找回密码
 会员注册
查看: 35|回复: 0

根据经纬度获取海拔高度

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64454
发表于 2024-9-12 16:27:38 | 显示全部楼层 |阅读模式
1、准备安装python包apt-getupdateapt-getinstall-ypython3-gdalpipinstallgdalpipinstallpyproj2、下载高程tif数据全国各省12.5m高程数据-免费下载-资源下载-数字地球开放平台注册下,下载他的网盘下载工具,然后选取要使用的区域下载。我下载的宁夏的。3、python代码 以下的代码是专门针对以上的高程数据写的代码。不同的高程数据可能需要不同的投影计算方法。使用Pyproj库进行投影转换:        通过pyproj.Proj方法,确认源投影(EPSG:4326)和目标投影(EPSG:32648)。        将输入的经纬度数据从WGS84转换为UTM48N坐标系统。importgdalimportosrfrompyprojimportProj,transformdefprint_geo_transform_info(transform):print(f"Geotransform:")print(f"Origin{transform[0]},{transform[3]})")print(f"PixelSize{transform[1]},{transform[5]})")defget_elevation(tif_path,lon,lat):#打开GeoTIFF文件dataset=gdal.Open(tif_path)ifdatasetisNone:raiseFileNotFoundError(f"Cannotopenfile:{tif_path}")#打印GeoTIFF文件信息print("GeoTIFFFileInformation:")print(f"Rastersize:{dataset.RasterXSize}x{dataset.RasterYSize}")print(f"Numberofbands:{dataset.RasterCount}")#获取地理变换信息transform_info=dataset.GetGeoTransform()iftransform_infoisNone:raiseValueError("Failedtogetgeotransformfromthedataset.")print_geo_transform_info(transform_info)#获取投影信息proj_info=dataset.GetProjection()ifproj_infoisNone:raiseValueError("Failedtogetprojectionfromthedataset.")print(f"Projection:{proj_info}")#获取栅格波段band=dataset.GetRasterBand(1)ifbandisNone:raiseValueError("Failedtogetrasterbandfromthedataset.")#创建投影转换对象in_proj=Proj(init='epsg:4326')#WGS84out_proj=Proj(init='epsg:32648')#UTMzone48Ntry:#将经纬度坐标转换为UTM坐标srcX,srcY=transform(in_proj,out_proj,lon,lat)print(f"TransformedCoordinates:X={srcX},Y={srcY}")#检查是否在GeoTIFF数据范围内x_min=transform_info[0]x_max=x_min+transform_info[1]*dataset.RasterXSizey_max=transform_info[3]y_min=y_max+transform_info[5]*dataset.RasterYSizeprint(f"GeoTIFFXrange:{x_min}to{x_max}")print(f"GeoTIFFYrange:{y_min}to{y_max}")ifnot(x_min
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 14:54 , Processed in 0.629386 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表