Python读取tif图像并提取经纬度信息

作者:谁偷走了我的奶酪2024.01.18 00:54浏览量:20

简介:使用Python中的rasterio和geopandas库,可以方便地读取tif图像并提取其中的经纬度信息。以下是一个简单的示例代码,演示如何读取tif图像,提取其地理坐标系和地理参考信息,并输出经纬度数据。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

首先,需要安装rasterio和geopandas库。可以通过pip命令进行安装:

  1. pip install rasterio geopandas

接下来,使用以下代码读取tif图像并提取经纬度信息:

  1. import rasterio
  2. import geopandas as gpd
  3. from shapely.geometry import Point
  4. # 打开tif图像文件
  5. with rasterio.open('path/to/image.tif') as src:
  6. # 获取地理参考信息
  7. gcps = src.gcps
  8. # 获取地理坐标系信息
  9. crs = src.crs
  10. # 获取行数和列数
  11. rows, cols = src.shape
  12. # 创建一个空的GeoDataFrame,用于存储经纬度数据
  13. gdf = gpd.GeoDataFrame()
  14. # 循环遍历每个像素点,并提取其经纬度信息
  15. for i in range(rows):
  16. for j in range(cols):
  17. # 获取像素点的坐标值
  18. x = gcps[0][j]
  19. y = gcps[0][i]
  20. # 将坐标值转换为经纬度数据
  21. lon, lat = x[0], y[0]
  22. # 创建一个点对象,并添加到GeoDataFrame中
  23. point = Point(lon, lat)
  24. gdf = gdf.append({'geometry': point}, ignore_index=True)
  25. # 设置GeoDataFrame的坐标系为输入tif图像的坐标系
  26. gdf.crs = crs

以上代码将读取tif图像中的每个像素点,并提取其经纬度信息。提取的经纬度数据将存储在一个GeoDataFrame中,该DataFrame的坐标系与输入tif图像的坐标系相同。可以根据需要将提取的经纬度数据用于其他应用场景,例如地理信息系统(GIS)分析和地图可视化等。请注意,以上代码仅适用于具有地理参考信息的tif图像文件。如果tif图像没有地理参考信息,则需要使用其他方法进行坐标转换。

article bottom image

相关文章推荐

发表评论