with rasterio.open(im_list[im]) as src: meta=src.meta
rowcol = rasterio.transform.rowcol(meta['transform'], xs=lon, ys=lat)
w = src.read(1, window=Window(rowcol[0], rowcol[1], 1, 1))
i我用
rasterio.transform.xy(meta['transform'], 60877, 52170)
弄清楚我是否得到相同的坐标。
结果坐标略有不同。总结,我需要获得与QGIS中获得的相同值。
使用
rasterio.sample
:
import rasterio
from rasterio.sample import sample_gen
ds = rasterio.open(r"C:\Users\bera\Desktop\gistest\rasters\raster2.tif")
coordinates = [(679570, 7168776), (685486, 7170009), (673313, 7166072), (672528, 7161213), (681019, 7163812), (679923, 7165746), (673688, 7171884), (679065, 7170682), (683939, 7167273), (677168, 7167100)]
raster_values = [x.item() for x in sample_gen(dataset=ds, xy=coordinates)]
for v in raster_values:
print(v)
# 7789
# 9256
# 5888
# 8522
# 6943
# 5306
# 2940
# 2190
# 8838
# 4484
del(ds)