Python 如何沿给定直线从光栅中提取值的轮廓?

Python 如何沿给定直线从光栅中提取值的轮廓?,python,geopandas,rasterio,fiona,Python,Geopandas,Rasterio,Fiona,如何在Python中沿给定的shapefile线从光栅中提取值的配置文件 我正在努力寻找一种从光栅(geotiff)中提取值轮廓(例如地形轮廓)的方法。基于多边形的光栅的库值,但我找不到线形状文件的等效方法 有一种方法,但它不能像rasterio提供的基于更高级别工具箱的方法那样固有地保存地理信息 换句话说,我正在寻找Python中与QGIS中的工具Terrain Profile等效的工具 谢谢,这与提取多边形有点不同,因为您希望按线接触的顺序对线接触的每个像素进行采样(多边形方法不关心像素顺序

如何在Python中沿给定的shapefile线从光栅中提取值的配置文件

我正在努力寻找一种从光栅(geotiff)中提取值轮廓(例如地形轮廓)的方法。基于多边形的光栅的库值,但我找不到线形状文件的等效方法

有一种方法,但它不能像rasterio提供的基于更高级别工具箱的方法那样固有地保存地理信息

换句话说,我正在寻找Python中与QGIS中的工具Terrain Profile等效的工具


谢谢,这与提取多边形有点不同,因为您希望按线接触的顺序对线接触的每个像素进行采样(多边形方法不关心像素顺序)

看起来可以改用
rasterio
。给定使用
geopandas
fiona
作为
shapely
对象从shapefile读取的一条线,使用端点导出一个新的等距投影,并从中读取像素值。看起来您需要根据要采样的像素数计算线条的长度,这是
WarpedVRT
的宽度参数

如果端点之间的直线不是近似直线,则可能需要进一步调整此方法


如果您只想获得该行下的原始像素值,您应该能够对每行使用in
光栅或直接使用。对于行,您可能需要使用
all\u touch=True

感谢您的回复。我最终用numpy、scipy和gdal编写了自己的版本。我创建一行点,然后使用函数进行采样