代码目的
输入四角范围,指定单个网格大小,自动生成渔网
代码关键点
1、整个渔网的生成和数组组成一样,只不过用一网格代替一个数,还是用两个嵌套循环完成
2、在1的基础上,从左上角开始,用四角范围中xmin和网格宽度控制列变化,ymax和网格高度控制行变化进行遍历
代码思路()
1、导入相关包
2、输入渔网范围,格网宽度和高度
3、计算行列数
4、初始化左上角格网四角范围,创建输出文件
5、遍历每一列:
初始化第一行格网上下边界(放在行循环外,以便每次进入下一列定位到第一行)
遍历每一行:
计算单个格网范围
创建ring,写入格网四点,创建polygon,写入ring,构成一个格网
多边形写入图层
本行单个格网写入完成,行数加一并向下计算下一格网上下边界
本列格网全部写入,列数加一向右计算下一列格网左右边
代码
##创建渔网
import ogr,os,osr,sys
from math import ceil
#os.chdir(r'F:\Python+gdal\CookBook\results')
def Fishgrid(outfile,xmin,xmax,ymin,ymax,gridwidth,gridheight):
#参数转换到浮点型
xmin = float(xmin)
xmax = float(xmax)
ymin = float(ymin)
ymax = float(ymax)
gridwidth = float(gridwidth)
gridheight = float(gridheight)
#计算行数和列数
rows = ceil