python根据excel中的经纬度提取多张tif对应位置的值写入excel中的代码
时间: 2024-05-03 10:20:38 浏览: 153
以下是一个基本的代码框架,你可以根据自己的需求进行修改和完善。
```python
# 导入所需的包
import pandas as pd
import rasterio
from rasterio.mask import mask
# 读取Excel中的经纬度信息
df = pd.read_excel('your_file_path.xlsx')
# 定义一个函数,用于读取tif文件并提取指定位置的值
def get_pixel_value(tif_file, longitude, latitude):
with rasterio.open(tif_file) as src:
row, col = src.index(longitude, latitude)
# 根据行列号提取对应位置的像素值
pixel_value = src.read(1)[row, col]
return pixel_value
# 循环遍历每行数据,提取对应位置的像素值并写入Excel
for index, row in df.iterrows():
longitude = row['longitude']
latitude = row['latitude']
tif_file = row['tif_file_path']
# 调用函数获取像素值
pixel_value = get_pixel_value(tif_file, longitude, latitude)
# 将获取到的像素值写入Excel
df.loc[index, 'pixel_value'] = pixel_value
# 将写入完成的Excel保存到本地
df.to_excel('your_output_file_path.xlsx', index=False)
```
这个代码框架可以根据Excel中的经纬度提取对应位置的值,并将提取到的值写入Excel中。你需要将 `your_file_path.xlsx` 和 `your_output_file_path.xlsx` 修改为你自己的文件路径。另外,此代码框架仅供参考,具体的实现可能会因为数据类型等问题而有所不同,需要根据实际情况进行调整。
阅读全文