首页 > 解决方案 > 如何栅格化矢量数据(线)并在 python 中沿线插入值?

问题描述

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

示例在此处。我想栅格化 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)。

标签: pythongeopandaspython-xarrayshapelyrasterizing

解决方案


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

你会在这里找到一个 Python 实现: https ://pypi.org/project/bresenham/


推荐阅读