我有一个由经度和纬度对定义的矩形网格。我想将此矩形划分为N个相等的子矩形。例如,假设我们有一个由以下四个点定义的矩形:
1: (0,0)
2: (0,2)
3: (2,2)
4: (2,0)
假设我们希望将此矩形划分为4个相等的子矩形,以便我们具有以下内容:
First subrectangle:
1. [(0,0),(0,1),(1,1),(1,1)]
Second subrectangle:
2. [(0,1),(0,2),(1,2),(1,1)]
Third subrectangle:
3. [(1,1),(1,2),(2,2),(2,1)]
Fourth subrectangle:
4. [(1,0),(1,1),(2,1),(2,0)]
子矩形的顺序无关紧要。
我的方法是构造纬度和经度列表,并使用双循环调用每个列表中的项目。
def sub_rectangles(factor,westlimit=0, southlimit=0, eastlimit=2, northlimit=2):
table=list()
#Divide the difference between the limits by the factor
lat_adj_factor=(northlimit-southlimit)/factor
lon_adj_factor=(eastlimit-westlimit)/factor
#Create longitude and latitude lists
lat_list=[]
lon_list=[]
for i in range(factor+1):
lon_list.append(westlimit)
westlimit+=lon_adj_factor
for i in range(factor+1):
lat_list.append(southlimit)
southlimit+=lat_adj_factor
#Build a list of longitude and latitude pairs
for i in range(0,len(lon_list)-1):
for j in range(0,len(lat_list)-1):
table.append([lon_list[i],lat_list[j],lon_list[i+1],lat_list[j],lon_list[i+1],[lat_list[j+1]]])
return table
不幸的是,输出大部分都是胡说八道。有什么建议吗?
答案 0 :(得分:0)
我认为错误在于坐标对构造。我相信以下作品;你同意吗?
我更改了这一行:
1535824320 7195.99 163110 66.58 1564 297.24 96361 1
1535824380 7197.00 118069 66.71 1924 297.18 125395 0
1535824440 7190.00 189429 66.65 6147 297.13 89798 0
1535824500 7192.20 69587 66.65 9680 297.24 70676 0
1535824560 7193.99 76146 66.59 5012 297.37 44880 0
1535824620 7193.38 59251 66.54 16273 297.37 101982 0
1535824680 7194.00 186177 66.59 4778 297.33 77169 0
到以下内容:
table.append([lon_list[i],lat_list[j],lon_list[i+1],lat_list[j],lon_list[i+1],[lat_list[j+1]]])
给出以下结果:
table.append([(lon_list[i],lat_list[j]),(lon_list[i+1],lat_list[j]),(lon_list[i],lat_list[j+1]),(lon_list[i+1],lat_list[j+1])])