def map_line_shp(shp, which='all', bbox=None): ''' Create a map object from a line shape ... Arguments --------- shp : iterable PySAL line iterable (e.g. shape object from `ps.open` a line 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 lines from the shape This includes the attribute `shp2dbf_row` with the cardinality of every line 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 xy in shape.parts: patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 lc = LineCollection(patches) _ = _add_axes2col(lc, bbox) lc.shp2dbf_row = rows return lc
def map_line_shp(shp, which='all', bbox=None): ''' Create a map object from a line shape ... Arguments --------- shp : iterable PySAL line iterable (e.g. shape object from `ps.open` a line 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 lines from the shape This includes the attribute `shp2dbf_row` with the cardinality of every line 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 xy in shape.parts: patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 lc = LineCollection(patches) #_ = _add_axes2col(lc, bbox) lc.shp2dbf_row = rows return lc
def map_line_shp(shp, which='all'): ''' Create a map object from a line shape ... Arguments --------- shp : iterable PySAL line iterable with the attribute `bbox` (e.g. shape object from `ps.open` a poly shapefile) which : str/list Returns ------- map : PatchCollection Map object with the lines from the shape This includes the attribute `shp2dbf_row` with the cardinality of every line to its row in the dbf (zero-offset) ''' patches = [] rows = [] i = 0 if which == 'all': for shape in shp: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 lc = LineCollection(patches) _ = _add_axes2col(lc, shp.bbox) lc.shp2dbf_row = rows return lc
def map_line_shp(shp, which="all"): """ Create a map object from a line shape ... Arguments --------- shp : iterable PySAL line iterable with the attribute `bbox` (e.g. shape object from `ps.open` a poly shapefile) which : str/list Returns ------- map : PatchCollection Map object with the lines from the shape This includes the attribute `shp2dbf_row` with the cardinality of every line to its row in the dbf (zero-offset) """ patches = [] rows = [] i = 0 if which == "all": for shape in shp: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 else: for inwhich, shape in zip(which, shp): if inwhich: for xy in shape.parts: patches.append(xy) rows.append(i) i += 1 lc = LineCollection(patches) _ = _add_axes2col(lc, shp.bbox) lc.shp2dbf_row = rows return lc