def map_poly_shp(shp, which='all', bbox=None): ''' Create a map object from a polygon shape ... Arguments --------- shp : iterable PySAL polygon iterable (e.g. shape object from `ps.open` a poly shapefile) If it does not contain the attribute `bbox`, it must be passed separately in `bbox`. which : str/list List of booleans for which polygons of the shapefile to be included (True) or excluded (False) bbox : None/list [Optional. Default=None] List with bounding box as in a PySAL object. If nothing is passed, it tries to obtain it as an attribute from `shp`. Returns ------- map : PatchCollection Map object with the polygons from the shape This includes the attribute `shp2dbf_row` with the cardinality of every polygon to its row in the dbf (zero-offset) ''' if not bbox: bbox = shp.bbox patches = [] rows = [] i = 0 if which == 'all': for shape in shp: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 pc = PolyCollection(patches) _ = _add_axes2col(pc, bbox) pc.shp2dbf_row = rows return pc
def map_poly_shp(shp, which='all', bbox=None): ''' Create a map object from a polygon shape ... Arguments --------- shp : iterable PySAL polygon iterable (e.g. shape object from `ps.open` a poly shapefile) If it does not contain the attribute `bbox`, it must be passed separately in `bbox`. which : str/list List of booleans for which polygons of the shapefile to be included (True) or excluded (False) bbox : None/list [Optional. Default=None] List with bounding box as in a PySAL object. If nothing is passed, it tries to obtain it as an attribute from `shp`. Returns ------- map : PatchCollection Map object with the polygons from the shape This includes the attribute `shp2dbf_row` with the cardinality of every polygon to its row in the dbf (zero-offset) ''' if not bbox: bbox = shp.bbox patches = [] rows = [] i = 0 if which == 'all': for shape in shp: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 pc = PolyCollection(patches) #_ = _add_axes2col(pc, bbox) pc.shp2dbf_row = rows return pc
def map_poly_shp(shp, which='all'): ''' Create a map object from a polygon shape ... Arguments --------- shp : iterable PySAL polygon iterable with the attribute `bbox` (e.g. shape object from `ps.open` a poly shapefile) which : str/list List of booleans for which polygons of the shapefile to be included (True) or excluded (False) Returns ------- map : PatchCollection Map object with the polygons from the shape This includes the attribute `shp2dbf_row` with the cardinality of every polygon to its row in the dbf (zero-offset) ''' patches = [] rows = [] i = 0 if which == 'all': for shape in shp: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 pc = PolyCollection(patches) _ = _add_axes2col(pc, shp.bbox) pc.shp2dbf_row = rows return pc
def map_poly_shp(shp, which="all"): """ Create a map object from a polygon shape ... Arguments --------- shp : iterable PySAL polygon iterable with the attribute `bbox` (e.g. shape object from `ps.open` a poly shapefile) which : str/list List of booleans for which polygons of the shapefile to be included (True) or excluded (False) Returns ------- map : PatchCollection Map object with the polygons from the shape This includes the attribute `shp2dbf_row` with the cardinality of every polygon to its row in the dbf (zero-offset) """ patches = [] rows = [] i = 0 if which == "all": for shape in shp: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for ring in shape.parts: xy = np.array(ring) patches.append(xy) rows.append(i) i += 1 pc = PolyCollection(patches) _ = _add_axes2col(pc, shp.bbox) pc.shp2dbf_row = rows return pc