我正在尝试为输入文件属于某个市区的交叉口创建一个函数,并且使用查询框创建一个输出文件,该输出文件的交叉口仅包含在该查询框中找到的建筑物。
import matplotlib.pyplot as plt
import matplotlib as mpl
from mpl_toolkits.basemap import Basemap
import fiona
import fiona.crs
import rtree
input_file = 'se_england_clean.shp'
out_file = 'se_england_out'
file_index = 'Rtree_index_east.idx'
query_box = [-0.0957870483,51.5134165224,-0.08664608,51.5192383994]
def write_clipped_file(name_file_in, out_file, file_index):
idx = rtree.index.Index(file_index)
idx.insert(0, (input_file))
list(idx.intersection((query_box)))[0]
count = 0
with fiona.open(input_file, 'w') as out_file : #?
for building in out_file: #?
不知道我的代码到目前为止是否正确,但我有两个直接的问题:首先,我不知道如何使用 Fiona 打开输入 shapefile 和我想在输出中生成的新(剪辑)shapefile。我想循环索引列表,选择所需的建筑物,然后将它们写入新文件“out_file”。其次,我收到一个错误:
RTreeError: Coordinates must be in the form (minx, miny, maxx, maxy)