flowmachine.core.join_to_location¶
Source: flowmachine/core/join_to_location.py
Core class definition JoinToLocation, which facilitates the joining of any query with cell/site information to another spatial level, such as a grid or an admin region. No join is required if spatial_unit.has_geography is False, so we also define the helper function location_joined_query to return a JoinToLocation object if a join is required, or the original query object otherwise.
Class JoinToLocation¶
JoinToLocation(left: flowmachine.core.query.Query, *, spatial_unit: flowmachine.core.spatial_unit.GeomSpatialUnit, time_col: str = 'time')
Methods¶
cache¶
cache
Returns¶
-
bool
True is caching is switched on.
column_names¶
column_names
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
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
location_joined_query¶
location_joined_query(left: flowmachine.core.query.Query, *, spatial_unit: Union[flowmachine.core.spatial_unit.CellSpatialUnit, flowmachine.core.spatial_unit.GeomSpatialUnit], time_col: str = 'time')
Helper function which returns JoinToLocation(left_query, spatial_unit, time_col) if spatial_unit has geography information, otherwise returns left_query.
Parameters¶
-
left
:flowmachine.core.query.Query
This represents a table that can be joined to the cell information table. This must have a date column (called time) and a location column call 'location_id'.
-
spatial_unit
:typing.Union[flowmachine.core.spatial_unit.CellSpatialUnit, flowmachine.core.spatial_unit.GeomSpatialUnit]
A query which maps cell identifiers in the CDR to a different spatial unit (e.g. versioned site or admin region)
-
time_col
:str
, defaulttime
The name of the column that identifies the time in the source table e.g. 'time', 'date', 'start_time' etc.
Returns¶
-
flowmachine.Query
Either a JoinToLocation object, or the input parameter 'left'