python三角网格代码_python中shapely的多多边形三角网格/网格

我想你应该用三角形来填充这个区域。你的“三角形”只是其中的一半。如果只需要你的那一半,只需注释掉for循环的第二部分。在import numpy as np

from shapely.geometry import Polygon

from geopandas import GeoSeries

xlen = 20

ylen = 20

x0 = 0

y0 = 0

xPoints = np.arange(x0, xlen + 1, 1)

yPoints = np.arange(y0, ylen + 1, 1)

GridPoints = list((x, y) for x in xPoints for y in yPoints)

triangles = [] # list of triangles to be populated

for i in range(ylen):

for j in range(xlen):

# triangles with perpendicular angle on the bottom left

triangles.append([i + j * (ylen + 1), (i + 1) + j * (ylen + 1), i + (j + 1) * (ylen + 1)])

# triangles with perpendicular angle on the top right

triangles.append([(i + 1) + j * (ylen + 1), i + (j + 1) * (ylen + 1), (i + 1) + (j + 1) * (yle

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想将矢量地图网格化,可以使用 Python 的库来处理地理空间数据,如 GeoPandas 和 Shapely。下面是一个示例代码,演示如何将矢量地图网格化: ```python import geopandas as gpd from shapely.geometry import Polygon # 读取矢量地图文件 data = gpd.read_file('path/to/your/file.shp') # 创建网格的边界框 bbox = data.total_bounds # 获取地图数据的边界框 # 设置网格大小 grid_size = 0.5 # 网格大小,单位为度 # 计算网格的行数和列数 rows = int((bbox[3] - bbox[1]) / grid_size) cols = int((bbox[2] - bbox[0]) / grid_size) # 创建网格 grid = [] for i in range(rows): for j in range(cols): xmin = bbox[0] + j * grid_size xmax = xmin + grid_size ymin = bbox[1] + i * grid_size ymax = ymin + grid_size cell = Polygon([(xmin, ymin), (xmax, ymin), (xmax, ymax), (xmin, ymax)]) grid.append(cell) # 将网格换为 GeoDataFrame grid_gdf = gpd.GeoDataFrame(geometry=grid) # 空间关联:计算每个网格单元与地图数据的交集 intersections = gpd.overlay(grid_gdf, data, how='intersection') # 打印结果 print(intersections.head()) ``` 在上面的代码,我们首先读取矢量地图数据,并获取地图数据的边界框。然后,我们定义了网格的大小,并计算了网格的行数和列数。接下来,我们使用循环创建了矩形网格单元,并将其添加到一个列表。然后,我们将网格列表换为 GeoDataFrame 对象。最后,我们使用 `overlay()` 函数计算每个网格单元与地图数据的交集。 希望这可以帮助到你!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值