Я пытаюсь провести довольно простой анализ, буферизуя точки (станции метро SEPTA [ниже]) и подсчитывая количество «происшествий» (также точек), которые находятся в буфере. Вот и все.
Я кое-что поискал в Интернете, но ничего конкретного не нашел. Может быть, это так просто, что никто не должен спрашивать. Мне действительно не помешала бы помощь.
Мне удалось исправить код и создать буфер для точек, но я не могу подсчитать точки, попадающие в буфер. Кроме того, возникла проблема с набором точек «инциденты», который я использовал, поэтому я переключил его на «Фермерские рынки». Ниже то, что у меня есть до сих пор. Опять же, мне просто нужно подсчитать очки.
from osgeo import ogr
septaclip = ogr.Open(r'/home/user/Downloads/SEPTAclip.shp')
septalyr = septaclip.GetLayer(0)
citylimits = ogr.Open(r'/home/user/Downloads/City_Limits.shp')
citylyr = citylimits.GetLayer(0)
crimestat = ogr.Open(r'/home/user/Downloads/Farmers_Markets.shp')
crimelyr = crimestat.GetLayer(0)
memory_driver = ogr.GetDriverByName('Memory')
memory_ds = memory_driver.CreateDataSource('Temp')
buff_lyr = memory_ds.CreateLayer('Buffer')
buff_feat = ogr.Feature(buff_lyr.GetLayerDefn())
multipoly = ogr.Geometry(ogr.wkbMultiPolygon)
for septafeat in septalyr:
buff_geo = septafeat.geometry().Buffer(3000)
multipoly.AddGeometry(buff_geo)
#multipoly = (multipoly.UnionCascaded())
for crimefeat in crimelyr:
buffcrime = crimefeat.geometry().Intersection(multipoly)
intersect()
, чтобы найти перекрытия. - person songololo   schedule 17.12.2015