def get_vector_mask_pl(self, ratio): '''En este metodo elegimos el poligono de la mascara de agua y lo pasamos a vectorial (suavizando tambien la geometria)''' outshp = os.path.join(self.pro_escena, self.escena[:10] + '_WaterMask50.shp') for i in os.listdir(self.pro_escena): if i.endswith('_watervec.shp'): shape = os.path.join(self.pro_escena, i) print(shape) myshp = fiona.open(shape) for i in myshp: geom1 = i['geometry'] #print(geom1) #print(geom1) line = MultiLineString(geom1['coordinates']) line10 = line.simplify(ratio) # Define a polygon feature geometry with one attribute schema = { 'geometry': 'MultiLineString', 'properties': {'id': 'int'}} # Write a new Shapefile with fiona.open(outshp, 'w', 'ESRI Shapefile', schema) as c: ## If there are multiple geometries, put the "for" loop here c.write({ 'geometry': mapping(line10), 'properties': {'id': 123}, })
pol_s = pol.simplify(5, preserve_topology=True) val = pol.is_simple pol = Polygon(ext, int) val = pol.is_valid pol_s = pol.simplify(5, preserve_topology=True) pol_s1 = pol.simplify(5, preserve_topology=False) val2 = pol_s1.is_valid pol = Polygon([(((0,0), 0,10),(10,10), (10,12), (12,12), (12,10), (20,10)), ((11,0), (11,4),(12,4),(12,5),(11,5), (11,7), (11,11))]) mline1 = mline.simplify(2, preserve_topology=True) mline = MultiLineString([((0,10),(10,10), (10,12), (12,12), (12,10), (20,10)), ((11,0), (11,4),(12,4),(12,5),(11,5), (11,7), (11,11))]) mline1 = mline.simplify(2, preserve_topology=True) line = LineString([(0,0),(10,0), (11,0), (11,1), (10,1), (20,0), (20,1), (22,1), (22,0), (30, 0), (30,-5), (21,-5), (21,.5)]) line1 = line.simplify(1, preserve_topology=True) line = LineString([(0,0),(2,2), (4,-2), (6,2), (7,0), (8,0)]) splitter = LineString([(0,0),(8,0)]) line_a = LineString([(0,0),(10,0)]) line_b = LineString([(10,110),(20,20)]) line_c = LineString([(7,0),(9,0)]) line_split = split(line, splitter) splitter_split = split(splitter, line)