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')
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
, default('value',)
Columns in
labels
query to disaggregate on. Will be present in output query as "{column_name}_label" -
join_type
:str
, defaultinner
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)
Methods¶
inflow¶
inflow(self)
Returns¶
-
LabelledInOutFlow
An inflows object. This is the total number of flows that go to one locations, regardless of their origin.
outflow¶
outflow(self)
Returns¶
-
LabelledInOutFlow
An outflows object. This is the total number of flows that originate from one locations, regardless of their destination.
cache¶
cache
Returns¶
-
bool
True is caching is switched on.
column_names¶
column_names
Returns the column names.
Returns¶
-
typing.List
List of the column names of this query.
column_names_as_string_list¶
column_names_as_string_list
Get the column names as a comma separated list
Returns¶
-
str
Comma separated list of column names
dependencies¶
dependencies
Returns¶
-
set
The set of queries which this one is directly dependent on.
fully_qualified_table_name¶
fully_qualified_table_name
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
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
Returns¶
-
bool
True if the table is stored, and False otherwise.
out_label_columns¶
out_label_columns
out_spatial_columns¶
out_spatial_columns
query_id¶
query_id
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
Return the current query state.
Returns¶
-
QueryState
The current query state
query_state_str¶
query_state_str
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
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
Class LabelledInOutFlow¶
LabelledInOutFlow(flow: flowmachine.features.location.labelled_flows.LabelledFlows, direction: str)
An inflow or outflow from a LabelledFlows - sums by the to or from, and label columns.
Attributes¶
Parameters¶
-
flow
:flowmachine.features.location.labelled_flows.LabelledFlows
LabelledFlows object to derive an in/out flow from
-
direction
:str
One of to (for inflows) or from (for outflows)
Methods¶
cache¶
cache
Returns¶
-
bool
True is caching is switched on.
column_names¶
column_names
Returns the column names.
Returns¶
-
typing.List
List of the column names of this query.
column_names_as_string_list¶
column_names_as_string_list
Get the column names as a comma separated list
Returns¶
-
str
Comma separated list of column names
dependencies¶
dependencies
Returns¶
-
set
The set of queries which this one is directly dependent on.
fully_qualified_table_name¶
fully_qualified_table_name
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
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
Returns¶
-
bool
True if the table is stored, and False otherwise.
query_id¶
query_id
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
Return the current query state.
Returns¶
-
QueryState
The current query state
query_state_str¶
query_state_str
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
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