Python矢量转栅格代码
时间: 2024-02-16 13:57:48 浏览: 232
通过GDAL\OGR获取栅格矢量边界Python代码
以下是一个Python矢量转栅格的代码示例:
```python
import geopandas as gpd
import rasterio
from rasterio.features import rasterize
# 读取矢量数据
vector_data = gpd.read_file('path/to/vector_data.shp')
# 定义栅格化参数
width = 1000
height = 1000
transform = rasterio.transform.from_origin(vector_data.total_bounds[0], vector_data.total_bounds[1], width, height)
# 创建空白栅格
raster = rasterio.open('path/to/raster.tif', 'w', driver='GTiff', width=width, height=height, count=1, dtype=rasterio.uint8, crs=vector_data.crs, transform=transform)
# 栅格化矢量数据
burn_value = 255
rasterized = rasterize([(geom, burn_value) for geom in vector_data.geometry], out_shape=(height, width), transform=raster.transform, fill=0, all_touched=True)
# 将栅格数据写入栅格文件
raster.write(rasterized, 1)
raster.close()
```
这段代码使用了`geopandas`和`rasterio`库来进行矢量转栅格操作。首先,通过`gpd.read_file`函数读取矢量数据文件。然后,定义栅格化参数,包括栅格的宽度、高度和变换矩阵。接下来,使用`rasterio.open`函数创建一个空白的栅格文件,并指定其属性,如文件格式、宽度、高度、波段数、数据类型、坐标系和变换矩阵。然后,使用`rasterize`函数将矢量数据栅格化,并将结果写入栅格文件中。
阅读全文