判断n个兴趣点在地理栅格内部python代码
时间: 2024-03-25 09:38:09 浏览: 50
STIP 时空兴趣点检测代码
判断n个兴趣点是否在地理栅格内部,可以对上面的代码进行一些修改,使用一个循环来遍历所有兴趣点。以下是一个示例代码:
```python
import gdal
import numpy as np
# 读取栅格数据
ds = gdal.Open("your_raster_file.tif")
band = ds.GetRasterBand(1)
arr = band.ReadAsArray()
# 获取栅格元数据
gt = ds.GetGeoTransform()
xres = gt[1]
yres = gt[5]
xsize = ds.RasterXSize
ysize = ds.RasterYSize
# 定义测试点坐标
test_points = [(100, 200), (300, 400), (500, 600)]
# 遍历所有测试点
for test_point in test_points:
# 将测试点坐标转换为栅格坐标
x = int((test_point[0] - gt[0]) / gt[1])
y = int((test_point[1] - gt[3]) / gt[5])
# 判断测试点是否在栅格内部
if x >= 0 and x < xsize and y >= 0 and y < ysize:
if arr[y][x] != nodata_value: # nodata_value为栅格中的无效值
print("测试点", test_point, "在栅格内部")
else:
print("测试点", test_point, "在栅格内部,但是栅格中的值为无效值")
else:
print("测试点", test_point, "不在栅格内部")
```
请将代码中的 `"your_raster_file.tif"` 替换为你自己的栅格数据文件名,`test_points` 替换为你要测试的点的坐标列表。
阅读全文