def queen_from_shapefile(shapefile, idVariable=None, sparse=False): """ Queen contiguity weights from a polygon shapefile Parameters ---------- shapefile : string name of polygon shapefile including suffix. idVariable : string name of a column in the shapefile's DBF to use for ids. sparse : boolean If True return WSP instance If False return W instance Returns ------- w : W instance of spatial weights Examples -------- >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp")) >>> "%.3f"%wq.pct_nonzero '0.098' >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp"),"POLYID") >>> "%.3f"%wq.pct_nonzero '0.098' >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp"), sparse=True) >>> pct_sp = wq.sparse.nnz *1. / wq.n**2 >>> "%.3f"%pct_sp '0.098' Notes ----- Queen contiguity defines as neighbors any pair of polygons that share at least one vertex in their polygon definitions. See Also -------- :class:`pysal.weights.W` """ shp = pysal.open(shapefile) if idVariable: ids = get_ids(shapefile, idVariable) else: ids = None w = buildContiguity(shp, criterion='queen', ids=ids) shp.close() w.set_shapefile(shapefile, idVariable) if sparse: w = pysal.weights.WSP(w.sparse, id_order=ids) return w
def queen_from_shapefile(shapefile, idVariable=None, sparse=False): """ Queen contiguity weights from a polygon shapefile. Parameters ---------- shapefile : string name of polygon shapefile including suffix. idVariable : string name of a column in the shapefile's DBF to use for ids. sparse : boolean If True return WSP instance If False return W instance Returns ------- w : W instance of spatial weights Examples -------- >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp")) >>> "%.3f"%wq.pct_nonzero '9.829' >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp"),"POLYID") >>> "%.3f"%wq.pct_nonzero '9.829' >>> wq=queen_from_shapefile(pysal.examples.get_path("columbus.shp"), sparse=True) >>> pct_sp = wq.sparse.nnz *1. / wq.n**2 >>> "%.3f"%pct_sp '0.098' Notes ----- Queen contiguity defines as neighbors any pair of polygons that share at least one vertex in their polygon definitions. See Also -------- :class:`pysal.weights.W` """ shp = pysal.open(shapefile) w = buildContiguity(shp, criterion='queen') if idVariable: ids = get_ids(shapefile, idVariable) w.remap_ids(ids) else: ids = None shp.close() w.set_shapefile(shapefile, idVariable) if sparse: w = pysal.weights.WSP(w.sparse, id_order=ids) return w
def rook_from_shapefile(shapefile, idVariable=None, sparse=False): """ Rook contiguity weights from a polygon shapefile. Parameters ---------- shapefile : string name of polygon shapefile including suffix. idVariable: string name of a column in the shapefile's DBF to use for ids. sparse : boolean If True return WSP instance If False return W instance Returns ------- w : W instance of spatial weights Examples -------- >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), "POLYID") >>> "%.3f"%wr.pct_nonzero '8.330' >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), sparse=True) >>> pct_sp = wr.sparse.nnz *1. / wr.n**2 >>> "%.3f"%pct_sp '0.083' Notes ----- Rook contiguity defines as neighbors any pair of polygons that share a common edge in their polygon definitions. See Also -------- :class:`pysal.weights.W` """ shp = pysal.open(shapefile) w = buildContiguity(shp, criterion='rook') if idVariable: ids = get_ids(shapefile, idVariable) w.remap_ids(ids) else: ids = None shp.close() w.set_shapefile(shapefile, idVariable) if sparse: w = pysal.weights.WSP(w.sparse, id_order=ids) return w
def rook_from_shapefile(shapefile, idVariable=None, sparse=False): """ Rook contiguity weights from a polygon shapefile. Parameters ---------- shapefile : string name of polygon shapefile including suffix. sparse : boolean If True return WSP instance If False return W instance Returns ------- w : W instance of spatial weights Examples -------- >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), "POLYID") >>> "%.3f"%wr.pct_nonzero '8.330' >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), sparse=True) >>> pct_sp = wr.sparse.nnz *1. / wr.n**2 >>> "%.3f"%pct_sp '0.083' Notes ----- Rook contiguity defines as neighbors any pair of polygons that share a common edge in their polygon definitions. See Also -------- :class:`pysal.weights.W` """ shp = pysal.open(shapefile) w = buildContiguity(shp, criterion='rook') if idVariable: ids = get_ids(shapefile, idVariable) w.remap_ids(ids) else: ids = None shp.close() w.set_shapefile(shapefile, idVariable) if sparse: w = pysal.weights.WSP(w.sparse, id_order=ids) return w
def rook_from_shapefile(shapefile, idVariable=None, sparse=False): """ Rook contiguity weights from a polygon shapefile Parameters ---------- shapefile : string name of polygon shapefile including suffix. sparse : boolean If True return WSP instance If False return W instance Returns ------- w : W instance of spatial weights Examples -------- >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), "POLYID") >>> wr.pct_nonzero 0.083298625572678045 >>> wr=rook_from_shapefile(pysal.examples.get_path("columbus.shp"), sparse=True) >>> wr.sparse.nnz *1. / wr.n**2 0.083298625572678045 Notes ----- Rook contiguity defines as neighbors any pair of polygons that share a common edge in their polygon definitions. See Also -------- :class:`pysal.weights.W` """ shp = pysal.open(shapefile) if idVariable: ids = get_ids(shapefile, idVariable) else: ids = None w = buildContiguity(shp, criterion='rook', ids=ids) shp.close() if sparse: w = pysal.weights.WSP(w.sparse, id_order=ids) return w