On Sun, 29 Jan 2017 11:42:47 -0800 (PST), Xristos Xristoou wrote: > i tried to count points from the point shapefile where is within in > the polygon shapefile but i fail.Maybe my code is complete wrong but i > tried. > any idea how to fix my code ? > i want fast method because i have big data features > from shapely.geometry import shape > import fiona > > filepath1 = "point.shp" > file1features = [] > intersectfeatures_file1 = [] > intersectfeatures_file2 = [] > count =0 > count=count+1
This is an illogical place to increment count. > outschema = None > with fiona.collection(filepath1, "r") as input1: > outschema = input1.schema.copy() > for p1 in input1: > file1features.append(p1) I believe you could also say file1features = list(input1). > filepath2 = "polygon.shp" > with fiona.collection(filepath2, "r") as input2: > for p2 in input2: > for p1 in file1features: > [count for i in > [shape(p1['geometry']).within(shape(p2['geometry']))]] The above line produces a list that is discarded because it is not assigned any name. > if p1 not in intersectfeatures_file1: > intersectfeatures_file1.append(p1) > if p2 not in intersectfeatures_file2: > intersectfeatures_file2.append(p2) > > print count > ''' > if intersectfeatures_file1: > outfile = "outputfile1.shp" > with fiona.collection(outfile, "w", "ESRI Shapefile", outschema) as > output: > for outfeature in intersectfeatures: > output.write(outfeature) > if intersectfeatures_file2: > outfile = "outputfile2.shp" > with fiona.collection(outfile, "w", "ESRI Shapefile", outschema) as > output: > for outfeature in intersectfeatures: > output.write(outfeature) > ''' The above lines between triple quotes should have been omitted from this post. > on the print count i take 20 times the number 1. after for this count i want > to export to new shapefile the polygons where have specific number of points. > thnx -- To email me, substitute nowhere->runbox, invalid->com. -- https://mail.python.org/mailman/listinfo/python-list