code: def _read_feather(path, columns=None, **kwargs):
      """
      Load a Feather object from the file path, returning a GeoDataFrame.
  
      You can read a subset of columns in the file using the ``columns`` parameter.
      However, the structure of the returned GeoDataFrame will depend on which
      columns you read:
  
      * if no geometry columns are read, this will raise a ``ValueError`` - you
        should use the pandas `read_feather` method instead.
      * if the primary geometry column saved to this file is not included in
        columns, the first available geometry column will be set as the geometry
        column of the returned GeoDataFrame.
  
      Supports versions 0.1.0, 0.4.0 and 1.0.0 of the GeoParquet
      specification at: https://github.com/opengeospatial/geoparquet
  
      If 'crs' key is not present in the Feather metadata associated with the
      Parquet object, it will default to "OGC:CRS84" according to the specification.
  
      Requires 'pyarrow' >= 0.17.
  
      .. versionadded:: 0.8
  
      Parameters
      ----------
      path : str, path object
      columns : list-like of strings, default=None
          If not None, only these columns will be read from the file.  If
          the primary geometry column is not included, the first secondary
          geometry read from the file will be set as the geometry column
          of the returned GeoDataFrame.  If no geometry columns are present,
          a ``ValueError`` will be raised.
      **kwargs
          Any additional kwargs passed to pyarrow.feather.read_table().
  
      Returns
      -------
      GeoDataFrame
  
      Examples
      --------
      >>> df = geopandas.read_feather("data.feather")  # doctest: +SKIP
  
      Specifying columns to read:
  
      >>> df = geopandas.read_feather(
      ...     "data.feather",
      ...     columns=["geometry", "pop_est"]
      ... )  # doctest: +SKIP
      """
  
      feather = import_optional_dependency(
          "pyarrow.feather",
          extra="pyarrow is required for Feather support.",
      )
      # TODO move this into `import_optional_dependency`
      import pyarrow
      import geopandas.io._pyarrow_hotfix  # noqa: F401
  
      if Version(pyarrow.__version__) < Version("0.17.0"):
          raise ImportError(
              "pyarrow >= 0.17 required for Feather support"
          )
  
      path = _expand_user(path)
      table = feather.read_table(path, columns=columns, **kwargs)
      return _arrow_to_geopandas(table)
  
imports: from packaging.version import Version
  import json
  import warnings
  import numpy
  from pandas import DataFrame, Series
  from geopandas._compat import import_optional_dependency
  from geopandas.array import from_wkb
  from geopandas import GeoDataFrame
  import geopandas
  from .file import _expand_user
label_desc: Use image node_id 15 for calling a global function with example usage: _read_feather(path, columns) and returns: _arrow_to_geopandas