使用经度和纬度通过栅格获取值

Using longitude and latitude to get values with rasterio

我正在处理包含地理空间数据的 .tif 图像文件,主要关注地形的高程。我可以使用 dem1_band 的数组索引(如下所示)获取点的高程,但我想根据纬度和经度获取高程。有没有办法用 rasterio 库做到这一点?

dem1 = rasterio.open('/content/DEMs/dem1.tif')
dem1_band = dem1.read(1).astype('float64')
print(dem1_band[3000,3000])
>>451.13458251953125

是的。来自 https://gis.stackexchange.com/a/346458/55948:

import numpy as np
import rasterio

xs = np.array([130.5, 146.0])
ys = np.array([-25.5, -42.0])

with rasterio.open("my.tif") as src:
    rows, cols = rasterio.transform.rowcol(src.transform, xs, ys)