我正在尝试为一个交叉点创建一个函数,其中输入文件是某个城市区域,而查询框用于创建一个输出文件,该输出文件的交叉点只包含在该查询框中找到的建筑物。
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)发布于 2017-11-15 15:13:57
idx.insert(0, (input_file))您需要在树中插入坐标,而不是文件名。
https://stackoverflow.com/questions/47299216
复制相似问题