Skip to content

flowmachine.features.location.labelled_flows

Class LabelledFlows

LabelledFlows(*, loc1: flowmachine.core.query.Query, loc2: flowmachine.core.query.Query, labels: flowmachine.core.query.Query, label_columns: List[str] = ('value',), join_type: str = 'inner')
Source: flowmachine/features/location/labelled_flows.py

An object representing movement of subscribers between both locations and labelled categories within those locations.

Attributes

Parameters

  • loc1: flowmachine.core.query.Query

    Object representing the locations of people within the first time frame of interest

  • loc2: flowmachine.core.query.Query

    As above for the second period

  • labels: flowmachine.core.query.Query

    A query returning a set of unique 'subscriber' columns and at least one categorical column.

  • label_columns: typing.List[str], default ('value',)

    Columns in labels query to disaggregate on. Will be present in output query as "{column_name}_label"

  • join_type: str, default inner

    Join type of the join between loc_1 and loc_2

Examples

Get count of subscribers, per handset type, who moved between locations between the 1st and the 2nd Jan, 2016. Please note that SubscriberHandsetCharacteristic is not exposed to this query through the API due to deanonymisation risk - it is used here as an illustrative example.

    loc_1 = locate_subscribers(
...        "2016-01-01",
...        "2016-01-02",
...        spatial_unit=make_spatial_unit("admin", level=3),
...        method="most-common",
...    )
...
...    loc_2 = locate_subscribers(
...        "2016-01-02",
...        "2016-01-03",
...        spatial_unit=make_spatial_unit("admin", level=3),
...        method="most-common",
...    )
...
...    labels_1 = SubscriberHandsetCharacteristic(
...        "2016-01-01", "2016-01-03", characteristic="hnd_type"
...    )
...
...    LabelledFlows(loc1=loc_1, loc2=loc_2, labels=labels_1)
pcod_from pcod_to value_label value 0 524 1 01 04 524 1 02 09 Smart 1 1 524 1 01 04 524 1 03 13 Feature 1 2 524 1 01 04 524 2 04 20 Feature 1 3 524 1 01 04 524 2 05 24 Feature 2 4 524 1 01 04 524 2 05 29 Smart 1 .. ... ... ... ...

Methods

cache

cache
Source: flowmachine/core/query.py

Returns
  • bool

    True is caching is switched on.

column_names

column_names
Source: flowmachine/features/location/labelled_flows.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.

out_label_columns

out_label_columns
Source: flowmachine/features/location/labelled_flows.py

out_spatial_columns

out_spatial_columns
Source: flowmachine/features/location/labelled_flows.py

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