使用python实现渔网创建
from shapely.geometry import Polygon
import geopandas as gpd
def Fishnet(boundary,cell_height,cell_width) -> None:
# 渔网多边形
# boundary = gpd.read_file("boundary.shp")
xmin, ymin, xmax, ymax = boundary.total_bounds
rows = int((ymax - ymin) / cell_height)
cols = int((xmax - xmin) / cell_width)
polygons = []
for x in range(cols):
for y in range(rows):
polygons.append(Polygon([(xmin + x * cell_width, ymin + y * cell_height),
(xmin + (x + 1) * cell_width, ymin + y * cell_height),
(xmin + (x + 1) * cell_width, ymin + (y + 1) * cell_height),
(xmin + x * cell_width, ymin + (y + 1) * cell_height)]))
fishnet = gpd.GeoDataFrame(geometry=polygons, crs=boundary.crs)
# 计算渔网中心点
fishnet["center"] = fishnet.centroid
fishnet = fishnet.set_geometry("center")
# 设置新的crs为4326
fishnet = fishnet.to_crs(epsg=4326)
fishnet = fishnet.drop('geometry',axis =1)
return fishnet
注意: boundary需要投影。
标签:ymin,width,python,创建,height,cell,fishnet,xmin,渔网 From: https://www.cnblogs.com/aleza/p/17136692.html