如何栅格化矢量数据(线)并在 python 中沿线插入值?

How can I rasterize vector data (line) and interpolate values along line in python?

我想栅格化一个线向量。栅格值必须在“从”和“到”值之间进行插值。

例子在这里。我想栅格化 het geodataframe 中的线,栅格的值应该从 5 到 2(插值)。

import geopandas as gpd
from shapely.geometry import LineString

# example line
line = LineString([(10.00, 20.00), (20.00, 50.00)])
line_gdf = gpd.GeoDataFrame([line], geometry=[line])
line_gdf['from'] = 5
line_gdf['to'] = 2

预期的结果是这样的: example raster

这条线是黑色的。栅格应该只在线穿过像元的地方有值。这些值应从“起始值”插值到“终止值”,如示例栅格(标有红色轮廓的单元格)所示。最好是 DataArray (xarray)。

您需要使用 Bresenham 算法: https://en.wikipedia.org/wiki/Bresenham_line_algorithm

您会在此处找到 Python 实现: https://pypi.org/project/bresenham/