我正在绘制地址点并检查它们是否在一个大的 shapefile 中。但是,现在我还想检查它们是否属于 URBAN 类型。此信息以特征列表的形式出现,其中一列是 TYPE。如果我想要的点是城市的,我会通过(urban=True)
我的硬币点代码:
def get_random_point_in_polygon(region, urban=None):
while True:
address = ogr.Geometry(ogr.wkbPoint)
address.AddPoint(random.uniform(region.get_region().geometry().GetEnvelope()[0],
region.get_region().geometry().GetEnvelope()[1]),
random.uniform(region.get_region().geometry().GetEnvelope()[2],
region.get_region().geometry().GetEnvelope()[3]))
if region.get_region().geometry().Contains(address) and XXXXXXXXXX:
return address
区域是一个很大的 shapefile 现在我还列出了其他 52 个都在区域内的特征。他们有一个包含信息 URBAN 或 RURAL 的 FIELD。
我想用这样的代码来完成我的 XXXXXX:“如果地址在列表中 FIELD = URBAN 的任何特征内”
有任何想法吗?就像是:
any(x in a for x in b)
但对于 shapefile...