def crop(self): cc = [49.4, 2.420480, 51.726419, 6.589545] # belgium x0 = cc[1] y0 = cc[0] x1 = cc[3] y1 = cc[2] bmap = Basemap(resolution='i', llcrnrlat=y0, llcrnrlon=x0, urcrnrlat=y1, urcrnrlon=x1) bmap.land = None for path in self.shapefile_paths: bmap.readshapefile(path, 'land') self.polys += [shape2poly(shape) for shape in bmap.land] with open(self.in_file, 'r') as csvfile: csvreader = csv.reader(csvfile, delimiter=',') header = True for row in csvreader: if header: self.header = ','.join(row) header = False else: p1 = Point(float(row[0]), float(row[1])) p2 = Point(float(row[2]), float(row[3])) self.segments.append((p1, p2, row)) self.segments = [self.fix(segment) for segment in self.segments] # flatten self.segments = [item for sublist in self.segments for item in sublist]