0

我正在尝试为输入文件属于某个市区的交叉口创建一个函数,并且使用查询框创建一个输出文件,该输出文件的交叉口仅包含在该查询框中找到的建筑物。

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)
4

1 回答 1

0
idx.insert(0, (input_file))

您需要将坐标插入树中,而不是文件名。

于 2017-11-15T07:13:56.953 回答