# libpysal.weights.Rook

class libpysal.weights.Rook(polygons, **kw)

  Construct a weights object from a collection of pysal polygons that share at least one edge.

  Parameters:
    polygons `python:list`

      a collection of PySAL shapes to build weights from

    ids `python:list`

      a list of names to use to build the weights

    **kw `keyword` `arguments`

      optional arguments for `pysal.weights.W`

  See also

  `libpysal.weights.weights.W`
  __init__(polygons, **kw)

  Methods

  `__init__`(polygons, **kw) |
  `asymmetry`([intrinsic]) | Asymmetry check.
  `from_WSP`(WSP[, silence_warnings]) | Create a pysal W from a pysal WSP object (thin weights matrix).
  `from_adjlist`(adjlist[, focal_col, ...]) | Return an adjacency list representation of a weights object.
  `from_dataframe`(df[, geom_col, idVariable, ...]) | Construct a weights object from a (geo)pandas dataframe with a geometry column.
  `from_file`([path, format]) | Read a weights file into a W object.
  `from_iterable`(iterable[, sparse]) | Construct a weights object from a collection of arbitrary polygons.
  `from_networkx`(graph[, weight_col]) | Convert a `networkx` graph to a PySAL `W` object.
  `from_shapefile`(filepath[, idVariable, full]) | Rook contiguity weights from a polygon shapefile.
  `from_sparse`(sparse) | Convert a `scipy.sparse` array to a PySAL `W` object.
  `from_xarray`(da[, z_value, coords_labels, k, ...]) | Construct a weights object from a xarray.DataArray with an additional attribute index containing coordinate values of the raster in the form of Pandas.Index/MultiIndex.
  `full`() | Generate a full `numpy.ndarray`.
  `get_transform`() | Getter for transform property.
  `plot`(gdf[, indexed_on, ax, color, node_kws, ...]) | Plot spatial weights objects.
  `remap_ids`(new_ids) | In place modification throughout `W` of id values from `w.id_order` to `new_ids` in all.
  `set_shapefile`(shapefile[, idVariable, full]) | Adding metadata for writing headers of `.gal` and `.gwt` files.
  `set_transform`([value]) | Transformations of weights.
  `symmetrize`([inplace]) | Construct a symmetric KNN weight.
  `to_WSP`() | Generate a `WSP` object.
  `to_adjlist`([remove_symmetric, drop_islands, ...]) | Compute an adjacency list representation of a weights object.
  `to_file`([path, format]) | Write a weights to a file.
  `to_networkx`() | Convert a weights object to a `networkx` graph.
  `to_sparse`([fmt]) | Generate a `scipy.sparse` array object from a pysal W.

  Attributes

  `asymmetries` | List of id pairs with asymmetric weights sorted in ascending index location order.
  `cardinalities` | Number of neighbors for each observation.
  `component_labels` | Store the graph component in which each observation falls.
  `diagW2` | Diagonal of \(WW\).
  `diagWtW` | Diagonal of \(W^{'}W\).
  `diagWtW_WW` | Diagonal of \(W^{'}W + WW\).
  `histogram` | Cardinality histogram as a dictionary where key is the id and value is the number of neighbors for that unit.
  `id2i` | Dictionary where the key is an ID and the value is that ID's index in `W.id_order`.
  `id_order` | Returns the ids for the observations in the order in which they would be encountered if iterating over the weights.
  `id_order_set` | Returns `True` if user has set `id_order`, `False` if not.
  `islands` | List of ids without any neighbors.
  `max_neighbors` | Largest number of neighbors.
  `mean_neighbors` | Average number of neighbors.
  `min_neighbors` | Minimum number of neighbors.
  `n` | Number of units.
  `n_components` | Store whether the adjacency matrix is fully connected.
  `neighbor_offsets` | Given the current `id_order`, `neighbor_offsets[id]` is the offsets of the id's neighbors in `id_order`.
  `nonzero` | Number of nonzero weights.
  `pct_nonzero` | Percentage of nonzero weights.
  `s0` | `s0` is defined as
  `s1` | `s1` is defined as
  `s2` | `s2` is defined as
  `s2array` | Individual elements comprising `s2`.
  `sd` | Standard deviation of number of neighbors.
  `sparse` | Sparse matrix object.
  `transform` | Getter for transform property.
  `trcW2` | Trace of \(WW\).
  `trcWtW` | Trace of \(W^{'}W\).
  `trcWtW_WW` | Trace of \(W^{'}W + WW\).

  classmethod from_dataframe(df, geom_col=None, idVariable=None, ids=None, id_order=None, use_index=None, **kwargs)

    Construct a weights object from a (geo)pandas dataframe with a geometry column. This will cast the polygons to PySAL polygons, then build the W using ids from the dataframe.

    Parameters:
      df `DataFrame`

        a :class: pandas.DataFrame containing geometries to use for spatial weights

      geom_col `python:str`

        the name of the column in df that contains the geometries. Defaults to active geometry column.

      idVariable `python:str`

        DEPRECATED - use ids instead. the name of the column to use as IDs. If nothing is provided, the dataframe index is used

      ids list-like, `python:str`

        a list-like of ids to use to index the spatial weights object or the name of the column to use as IDs. If nothing is provided, the dataframe index is used if use_index=True or a positional index is used if use_index=False. Order of the resulting W is not respected from this list.

      id_order `python:list`

        DEPRECATED - argument is deprecated and will be removed. An ordered list of ids to use to index the spatial weights object. If used, the resulting weights object will iterate over results in the order of the names provided in this argument.

      use_index bool

        use index of df as ids to index the spatial weights object. Defaults to False but in future will default to True.

    See also

    `libpysal.weights.weights.W`
    `libpysal.weights.contiguity.Rook`
  classmethod from_iterable(iterable, sparse=False, **kwargs)

    Construct a weights object from a collection of arbitrary polygons. This will cast the polygons to PySAL polygons, then build the W.

    Parameters:
      iterable python:iterable

        a collection of of shapes to be cast to PySAL shapes. Must support iteration. Can be either Shapely or PySAL shapes.

      **kw `keyword` `arguments`

        optional arguments for `pysal.weights.W`

    See also

    `libpysal.weights.weights.W`
    `libpysal.weights.contiguity.Rook`
  classmethod from_shapefile(filepath, idVariable=None, full=False, **kwargs)

    Rook contiguity weights from a polygon shapefile.

    Parameters:
      shapefile `python:str`

        name of polygon shapefile including suffix.

      sparse bool

        If True return WSP instance If False return W instance

    Returns:
      w `W`

        instance of spatial weights

    See also

    `libpysal.weights.weights.W`
    `libpysal.weights.contiguity.Rook`

    Notes

    Rook contiguity defines as neighbors any pair of polygons that share a common edge in their polygon definitions.

    Examples

        >>> from libpysal.weights import Rook
        >>> import libpysal
        >>> wr=Rook.from_shapefile(libpysal.examples.get_path("columbus.shp"), "POLYID")
        >>> "%.3f"%wr.pct_nonzero
        '8.330'
        >>> wr=Rook.from_shapefile(
        ...     libpysal.examples.get_path("columbus.shp"), sparse=True
        ... )
        >>> pct_sp = wr.sparse.nnz *1. / wr.n**2
        >>> "%.3f"%pct_sp
        '0.083'

  classmethod from_xarray(da, z_value=None, coords_labels={}, k=1, include_nodata=False, n_jobs=1, sparse=True, **kwargs)

    Construct a weights object from a xarray.DataArray with an additional attribute index containing coordinate values of the raster in the form of Pandas.Index/MultiIndex.

    Parameters:
      da `xarray.DataArray`

        Input 2D or 3D DataArray with shape=(z, y, x)

      z_value int/string/float

        Select the z_value of 3D DataArray with multiple layers.

      coords_labels `dictionary`

        Pass dimension labels for coordinates and layers if they do not belong to default dimensions, which are (band/time, y/lat, x/lon) e.g. coords_labels = {“y_label”: “latitude”, “x_label”: “longitude”, “z_label”: “year”} Default is {} empty dictionary.

      sparse bool

        type of weight object. Default is True. For libpysal.weights.W, sparse = False

      k `python:int`

        Order of contiguity, this will select all neighbors upto kth order. Default is 1.

      include_nodata bool

        If True, missing values will be assumed as non-missing when selecting higher_order neighbors, Default is False

      n_jobs `python:int`

        Number of cores to be used in the sparse weight construction. If -1, all available cores are used. Default is 1.

      **kwargs `keyword` `arguments`

        optional arguments passed when sparse = False

    Returns:
      w libpysal.weights.W/libpysal.weights.WSP

        instance of spatial weights class W or WSP with an index attribute

    See also

    `libpysal.weights.weights.W`
    `libpysal.weights.weights.WSP`

    Notes

    1. Lower order contiguities are also selected.

    2. Returned object contains index attribute that includes a Pandas.MultiIndex object from the DataArray.