Skip to content

flowmachine.features.location.location_introversion

Class LocationIntroversion

LocationIntroversion(start: str, stop: str, *, table: str = 'all', spatial_unit: Union[flowmachine.core.spatial_unit.CellSpatialUnit, flowmachine.core.spatial_unit.GeomSpatialUnit] = CellSpatialUnit(), direction: Union[flowmachine.features.utilities.direction_enum.Direction, str] = <Direction.BOTH: 'both'>, hours: Union[Tuple[int, int], NoneType] = None, subscriber_subset=None, subscriber_identifier='msisdn')
Source: flowmachine/features/location/location_introversion.py

Calculates the proportions of events that take place within a location in which all involved parties are located in the same location (introversion), and those which are between parties in different locations (extroversion).

Attributes

Parameters

  • start: str

    ISO format date string to at which to start the analysis

  • stop: str

    AS above for the end of the analysis

  • table: str, default all

    Specifies a table of cdr data on which to base the analysis. Table must exist in events schema. If 'ALL' then we use all tables specified in flowmachine.yml.

  • spatial_unit: typing.Union[flowmachine.core.spatial_unit.CellSpatialUnit, flowmachine.core.spatial_unit.GeomSpatialUnit], default CellSpatialUnit()

    Spatial unit to which subscriber locations will be mapped. See the docstring of make_spatial_unit for more information.

  • direction: typing.Union[flowmachine.features.utilities.direction_enum.Direction, str], default both

    Determines if query should filter only outgoing events ('out'), incoming events ('in'), or both ('both').

Examples

LocationIntroversion("2016-01-01", "2016-01-07").head()
      location_id  introversion  extroversion
0    AUQZGMW3      0.050000      0.950000
1    ns6vzdkC      0.049180      0.950820
2    llTlNC7E      0.046122      0.953878
3    WET2L101      0.045549      0.954451
4    eAwMUT94      0.045175      0.954825

Note

Equation 3 of the original paper states introversion as the ratio of introverted to extroverted events but indicates that this will return values in the range [0, 1]. However, the preceding text indicate that introversion is the proportion of events which are introverted. We follow the latter here.

Methods

cache

cache
Source: flowmachine/core/query.py

Returns
  • bool

    True is caching is switched on.

column_names

column_names
Source: flowmachine/features/location/location_introversion.py

Returns the column names.

Returns
  • typing.List[str]

    List of the column names of this query.

column_names_as_string_list

column_names_as_string_list
Source: flowmachine/core/query.py

Get the column names as a comma separated list

Returns
  • str

    Comma separated list of column names

dependencies

dependencies
Source: flowmachine/core/query.py

Returns
  • set

    The set of queries which this one is directly dependent on.

fully_qualified_table_name

fully_qualified_table_name
Source: flowmachine/core/query.py

Returns a unique fully qualified name for the query to be stored as under the cache schema, based on a hash of the parameters, class, and subqueries.

Returns
  • str

    String form of the table's fqn

index_cols

index_cols
Source: flowmachine/core/query.py

A list of columns to use as indexes when storing this query.

Returns
  • ixen: list

    By default, returns the location columns if they are present and self.spatial_unit is defined, and the subscriber column.

Examples
daily_location("2016-01-01").index_cols
[['name'], '"subscriber"']

is_stored

is_stored
Source: flowmachine/core/query.py

Returns
  • bool

    True if the table is stored, and False otherwise.

query_id

query_id
Source: flowmachine/core/query.py

Generate a uniquely identifying hash of this query, based on the parameters of it and the subqueries it is composed of.

Returns
  • str

    query_id hash string

query_state

query_state
Source: flowmachine/core/query.py

Return the current query state.

Returns
  • QueryState

    The current query state

query_state_str

query_state_str
Source: flowmachine/core/query.py

Return the current query state as a string

Returns
  • str

    The current query state. The possible values are the ones defined in flowmachine.core.query_state.QueryState.

table_name

table_name
Source: flowmachine/core/query.py

Returns a uniquename for the query to be stored as, based on a hash of the parameters, class, and subqueries.

Returns
  • str

    String form of the table's fqn