# How the System Works¶

This page describes how the software works, how multiprocessing works, and the primary example model data schema. The code snippets below may not exactly match the latest version of the software, but they are close enough to illustrate how the system works.

## Execution Flow¶

The example model run starts by running the steps in Running the example.

### Initialization¶

The first significant step of the `run`

command is:

```
from activitysim import abm
```

which loads `activitysim.abm.__init__`

, which calls:

```
import misc
import tables
import models
```

which then loads the misc, tables, and models class definitions. Loading `activitysim.abm.misc`

calls:

```
from activitysim.core import config
from activitysim.core import inject
```

which loads the config and inject classes. These define Inject injectables (functions) and
helper functions for running models. For example, the Python decorator `@inject.injectable`

overrides the function definition `settings`

to
execute this function whenever the `settings`

object is called by the system. The `activitysim.core.inject`

manages the data
pipeline.

```
@inject.injectable(cache=True)
def settings():
settings_dict = read_settings_file('settings.yaml', mandatory=True)
return settings_dict
```

Next, the tables module executes the following import statements in `activitysim.abm.tables.__init__`

to
define the dynamic inject tables (households, persons, skims, etc.), but does not load them. It also defines the
core dynamic injectables (functions) defined in the classes. The Python decorator `@inject.table`

override the function
definitions so the name of the function becomes the name of the table when dynamically called by the system.

```
from . import households
from . import persons
#etc...
#then in households.py
@inject.table()
def households(households_sample_size, override_hh_ids, trace_hh_id):
```

The models module then loads all the sub-models, which are registered as model steps with
the `@inject.step()`

decorator. These steps will eventually be run by the data pipeliner.

```
from . import accessibility
from . import atwork_subtour_destination
from . import atwork_subtour_frequency
#etc...
#then in accessibility.py
@inject.step()
def compute_accessibility(accessibility, network_los, land_use, trace_od):
```

Back in the main `run`

command, the next steps are to load the tracing, configuration, setting, and pipeline classes
to get the system management components up and running.

```
from activitysim.core import tracing
from activitysim.core import config
from activitysim.core import pipeline
```

The next step in the example is to define the `run`

method, call it if the script is being run as the program entry point, and handle the
arguments passed in via the command line.

```
def run():
#etc...
if __name__ == '__main__':
run()
```

Note

For more information on run options, type `activitysim run -h`

on the command line

The first key thing that happens in the `run`

function is `resume_after = setting('resume_after', None)`

, which causes the system
to go looking for `setting`

. Earlier we saw that `setting`

was defined as an injectable and so the system gets this object if it
is already in memory, or if not, calls this function which loads the `config/settings.yaml`

file. This is called lazy loading or
on-demand loading. Next, the system loads the models list and starts the pipeline:

```
pipeline.run(models=setting('models'), resume_after=resume_after)
```

The `activitysim.core.pipeline.run()`

method loops through the list of models, calls `inject.run([step_name])`

,
and manages the data pipeline. The first disaggregate data processing step (or model) run is `initialize_households`

, defined in
`activitysim.abm.models.initialize`

. The `initialize_households`

step is responsible for requesting reading of the raw
households and persons into memory.

### Initialize Households¶

The initialize households step/model is run via:

```
@inject.step()
def initialize_households():
trace_label = 'initialize_households'
model_settings = config.read_model_settings('initialize_households.yaml', mandatory=True)
annotate_tables(model_settings, trace_label)
```

This step reads the `initialize_households.yaml`

config file, which defines the Estimation below. Each table
annotation applies the expressions specified in the annotate spec to the relevant table. For example, the `persons`

table
is annotated with the results of the expressions in `annotate_persons.csv`

. If the table is not already in memory, then
inject goes looking for it as explained below.

```
#initialize_households.yaml
annotate_tables:
- tablename: persons
annotate:
SPEC: annotate_persons
DF: persons
TABLES:
- households
- tablename: households
column_map:
PERSONS: hhsize
workers: num_workers
annotate:
SPEC: annotate_households
DF: households
TABLES:
- persons
- land_use
- tablename: persons
annotate:
SPEC: annotate_persons_after_hh
DF: persons
TABLES:
- households
#initialize.py
def annotate_tables(model_settings, trace_label):
annotate_tables = model_settings.get('annotate_tables', [])
for table_info in annotate_tables:
tablename = table_info['tablename']
df = inject.get_table(tablename).to_frame()
# - annotate
annotate = table_info.get('annotate', None)
if annotate:
logger.info("annotated %s SPEC %s" % (tablename, annotate['SPEC'],))
expressions.assign_columns(
df=df,
model_settings=annotate,
trace_label=trace_label)
# - write table to pipeline
pipeline.replace_table(tablename, df)
```

Remember that the `persons`

table was previously registered as an injectable table when the persons table class was
imported. Now that the `persons`

table is needed, inject calls this function, which requires the `households`

and
`trace_hh_id`

objects as well. Since `households`

has yet to be loaded, the system run the households inject table operation
as well. The various calls also setup logging, tracing, stable random number management, etc.

```
#persons in persons.py requires households, trace_hh_id
@inject.table()
def persons(households, trace_hh_id):
df = read_raw_persons(households)
logger.info("loaded persons %s" % (df.shape,))
df.index.name = 'person_id'
# replace table function with dataframe
inject.add_table('persons', df)
pipeline.get_rn_generator().add_channel('persons', df)
if trace_hh_id:
tracing.register_traceable_table('persons', df)
tracing.trace_df(df, "raw.persons", warn_if_empty=True)
return df
#households requires households_sample_size, override_hh_ids, trace_hh_id
@inject.table()
def households(households_sample_size, override_hh_ids, trace_hh_id):
df_full = read_input_table("households")
```

The process continues until all the dependencies are resolved. It is the `read_input_table`

function that
actually reads the input tables from the input HDF5 or CSV file using the `input_table_list`

found in `settings.yaml`

```
input_table_list:
- tablename: households
filename: households.csv
index_col: household_id
column_map:
HHID: household_id
```

### School Location¶

Now that the persons, households, and other data are in memory, and also annotated with additional fields
for later calculations, the school location model can be run. The school location model is defined
in `activitysim.abm.models.location_choice`

. As shown below, the school location model
actually uses the `persons_merged`

table, which includes joined household, land use, and accessibility
tables as well. The school location model also requires the network_los object, which is discussed next.
Before running the generic iterate location choice function, the model reads the model settings file, which
defines various settings, including the expression files, sample size, mode choice logsum
calculation settings, time periods for skim lookups, shadow pricing settings, etc.

```
#persons.py
# another common merge for persons
@inject.table()
def persons_merged(persons, households, land_use, accessibility):
return inject.merge_tables(persons.name, tables=[persons, households, land_use, accessibility])
#location_choice.py
@inject.step()
def school_location(
persons_merged, persons, households,
network_los, chunk_size, trace_hh_id, locutor
):
trace_label = 'school_location'
model_settings = config.read_model_settings('school_location.yaml')
iterate_location_choice(
model_settings,
persons_merged, persons, households,
network_los,
chunk_size, trace_hh_id, locutor, trace_label
```

Deep inside the method calls, the skim matrix lookups required for this model are configured via `network_los`

. The following
code sets the keys for looking up the skim values for this model. In this case there is a `TAZ`

column
in the households table that is renamed to TAZ_chooser` and a `TAZ`

in the alternatives generation code.
The skims are lazy loaded under the name “skims” and are available in the expressions using the `@skims`

expression.

```
# create wrapper with keys for this lookup - in this case there is a home_zone_id in the choosers
# and a zone_id in the alternatives which get merged during interaction
# (logit.interaction_dataset suffixes duplicate chooser column with '_chooser')
# the skims will be available under the name "skims" for any @ expressions
skim_dict = network_los.get_default_skim_dict()
skims = skim_dict.wrap('home_zone_id', 'zone_id')
locals_d = {
'skims': skims,
}
```

The next step is to call the `activitysim.core.interaction_sample.interaction_sample()`

function which
selects a sample of alternatives by running a MNL choice model simulation in which alternatives must be
merged with choosers because there are interaction terms. The choosers table, the alternatives table, the
sample size, the model specification expressions file, the skims, the skims lookups, the chunk size, and the
trace labels are passed in.

```
#interaction_sample
choices = interaction_sample(
choosers,
alternatives,
sample_size=sample_size,
alt_col_name=alt_dest_col_name,
spec=spec_for_segment(model_spec, segment_name),
skims=skims,
locals_d=locals_d,
chunk_size=chunk_size,
trace_label=trace_label)
```

This function solves the utilities, calculates probabilities, draws random numbers, selects choices with
replacement, and returns the choices. This is done in a for loop of chunks of chooser records in order to avoid
running out of RAM when building the often large data tables. This method does a lot, and eventually
calls `activitysim.core.interaction_simulate.eval_interaction_utilities()`

, which loops through each
expression in the expression file and solves it at once for all records in the chunked chooser
table using Python’s `eval`

.

The `activitysim.core.interaction_sample.interaction_sample()`

method is currently only a multinomial
logit choice model. The `activitysim.core.simulate.simple_simulate()`

method supports both MNL and NL as specified by
the `LOGIT_TYPE`

setting in the model settings YAML file. The `auto_ownership.yaml`

file for example specifies
the `LOGIT_TYPE`

as `MNL.`

If the expression is a skim matrix, then the entire column of chooser OD pairs is retrieved from the matrix (i.e. numpy array)
in one vectorized step. The `orig`

and `dest`

objects in `self.data[orig, dest]`

in `activitysim.core.los`

are vectors
and selecting numpy array items with vector indexes returns a vector. Trace data is also written out if configured (not shown below).

```
# evaluate expressions from the spec multiply by coefficients and sum
interaction_utilities, trace_eval_results \
= eval_interaction_utilities(spec, interaction_df, locals_d, trace_label, trace_rows)
# reshape utilities (one utility column and one row per row in model_design)
# to a dataframe with one row per chooser and one column per alternative
utilities = pd.DataFrame(
interaction_utilities.values.reshape(len(choosers), alternative_count),
index=choosers.index)
# convert to probabilities (utilities exponentiated and normalized to probs)
# probs is same shape as utilities, one row per chooser and one column for alternative
probs = logit.utils_to_probs(utilities, allow_zero_probs=allow_zero_probs,
trace_label=trace_label, trace_choosers=choosers)
choices_df = make_sample_choices(
choosers, probs, alternatives, sample_size, alternative_count, alt_col_name,
allow_zero_probs=allow_zero_probs, trace_label=trace_label)
# pick_count is number of duplicate picks
pick_group = choices_df.groupby([choosers.index.name, alt_col_name])
# number each item in each group from 0 to the length of that group - 1.
choices_df['pick_count'] = pick_group.cumcount(ascending=True)
# flag duplicate rows after first
choices_df['pick_dup'] = choices_df['pick_count'] > 0
# add reverse cumcount to get total pick_count (conveniently faster than groupby.count + merge)
choices_df['pick_count'] += pick_group.cumcount(ascending=False) + 1
# drop the duplicates
choices_df = choices_df[~choices_df['pick_dup']]
del choices_df['pick_dup']
return choices_df
```

The model creates the `location_sample_df`

table using the choices above. This table is
then used for the next model step - solving the logsums for the sample.

```
# - location_logsums
location_sample_df = run_location_logsums(
segment_name,
choosers,
network_los,
location_sample_df,
model_settings,
chunk_size,
trace_hh_id,
tracing.extend_trace_label(trace_label, 'logsums.%s' % segment_name))
```

The next steps are similar to what the sampling model does, except this time the sampled locations
table is the choosers and the model is calculating and adding the tour mode choice logsums using the
logsums settings and expression files. The resulting logsums are added to the chooser table as the
`mode_choice_logsum`

column.

```
#inside run_location_logsums() defined in location_choice.py
logsums = logsum.compute_logsums(
choosers,
tour_purpose,
logsum_settings, model_settings,
network_los,
chunk_size,
trace_label)
location_sample_df['mode_choice_logsum'] = logsums
```

The `activitysim.abm.models.util.logsums.compute_logsums()`

method goes through a similar series
of steps as the interaction_sample function but ends up calling
`activitysim.core.simulate.simple_simulate_logsums()`

since it supports nested logit models, which
are required for the mode choice logsum calculation. The
`activitysim.core.simulate.simple_simulate_logsums()`

returns a vector of logsums (instead of a vector
choices).

The final school location choice model operates on the `location_sample_df`

table created
above and is called as follows:

```
# - location_simulate
choices = \
run_location_simulate(
segment_name,
choosers,
location_sample_df,
network_los,
dest_size_terms,
model_settings,
chunk_size,
tracing.extend_trace_label(trace_label, 'simulate.%s' % segment_name))
choices_list.append(choices)
```

The operations executed by this model are very similar to the earlier models, except
this time the sampled locations table is the choosers and the model selects one alternative for
each chooser using the school location simulate expression files and the
`activitysim.core.interaction_sample_simulate.interaction_sample_simulate()`

function.

Back in `iterate_location_choice()`

, the model adds the choices as a column to the `persons`

table and adds
additional output columns using a postprocessor table annotation if specified in the settings file. Refer
to Estimation for more information and the `activitysim.abm.models.util.expressions.assign_columns()`

function. The overall school location model is run within a shadow pricing iterative loop as shown below. Refer
to Shadow Pricing for more information.

```
# in iterate_location_choice() in location_choice.py
for iteration in range(1, max_iterations + 1):
if spc.use_shadow_pricing and iteration > 1:
spc.update_shadow_prices()
choices = run_location_choice(
persons_merged_df,
network_los,
spc,
model_settings,
chunk_size, trace_hh_id,
trace_label=tracing.extend_trace_label(trace_label, 'i%s' % iteration))
choices_df = choices.to_frame('dest_choice')
choices_df['segment_id'] = \
persons_merged_df[chooser_segment_column].reindex(choices_df.index)
spc.set_choices(choices_df)
if locutor:
spc.write_trace_files(iteration)
if spc.use_shadow_pricing and spc.check_fit(iteration):
logging.info("%s converged after iteration %s" % (trace_label, iteration,))
break
# - shadow price table
if locutor:
if spc.use_shadow_pricing and 'SHADOW_PRICE_TABLE' in model_settings:
inject.add_table(model_settings['SHADOW_PRICE_TABLE'], spc.shadow_prices)
if 'MODELED_SIZE_TABLE' in model_settings:
inject.add_table(model_settings['MODELED_SIZE_TABLE'], spc.modeled_size)
dest_choice_column_name = model_settings['DEST_CHOICE_COLUMN_NAME']
tracing.print_summary(dest_choice_column_name, choices, value_counts=True)
persons_df = persons.to_frame()
# We only chose school locations for the subset of persons who go to school
# so we backfill the empty choices with -1 to code as no school location
NO_DEST_TAZ = -1
persons_df[dest_choice_column_name] = \
choices.reindex(persons_df.index).fillna(NO_DEST_TAZ).astype(int)
# - annotate persons table
if 'annotate_persons' in model_settings:
expressions.assign_columns(
df=persons_df,
model_settings=model_settings.get('annotate_persons'),
trace_label=tracing.extend_trace_label(trace_label, 'annotate_persons'))
pipeline.replace_table("persons", persons_df)
```

### Finishing Up¶

The last models to be run by the data pipeline are:

`write_data_dictionary`

, which writes the table_name, number of rows, number of columns, and number of bytes for each checkpointed table`track_skim_usage`

, which tracks skim data memory usage`write_tables`

, which writes pipeline tables as CSV files as specified by the output_tables setting

Back in the main `run`

command, the final steps are to:

close the data pipeline (and attached HDF5 file)

## Additional Notes¶

The rest of the microsimulation models operate in a similar fashion with a few notable additions:

creating new tables

vectorized 3D skims indexing

aggregate (OD-level) accessibilities model

### Creating New Tables¶

In addition to calculating the mandatory tour frequency for a person, the model must also create mandatory tour records.
Once the number of tours is known, then the next step is to create tours records for subsequent models. This is done by the
`activitysim.abm.models.util.tour_frequency.process_tours()`

function, which is called by the
`activitysim.abm.models.mandatory_tour_frequency.mandatory_tour_frequency()`

function, which adds the tours to
the `tours`

table managed in the data pipeline. This is the same basic pattern used for creating new tables - tours, trips, etc.

```
@inject.step()
def mandatory_tour_frequency(persons_merged, chunk_size, trace_hh_id):
choosers['mandatory_tour_frequency'] = choices
mandatory_tours = process_mandatory_tours(
persons=choosers,
mandatory_tour_frequency_alts=alternatives
)
tours = pipeline.extend_table("tours", mandatory_tours)
```

### Vectorized 3D Skim Indexing¶

The mode choice model uses a collection of skims with a third dimension, which in this case is time period. Setting up the 3D index for skims is done as follows:

```
skim_dict = network_los.get_default_skim_dict()
# setup skim keys
orig_col_name = 'home_zone_id'
dest_col_name = 'destination'
out_time_col_name = 'start'
in_time_col_name = 'end'
odt_skim_stack_wrapper = skim_dict.wrap_3d(orig_key=orig_col_name, dest_key=dest_col_name,
dim3_key='out_period')
dot_skim_stack_wrapper = skim_dict.wrap_3d(orig_key=dest_col_name, dest_key=orig_col_name,
dim3_key='in_period')
odr_skim_stack_wrapper = skim_dict.wrap_3d(orig_key=orig_col_name, dest_key=dest_col_name,
dim3_key='in_period')
dor_skim_stack_wrapper = skim_dict.wrap_3d(orig_key=dest_col_name, dest_key=orig_col_name,
dim3_key='out_period')
od_skim_stack_wrapper = skim_dict.wrap(orig_col_name, dest_col_name)
skims = {
"odt_skims": odt_skim_stack_wrapper,
"dot_skims": dot_skim_stack_wrapper,
"od_skims": od_skim_stack_wrapper,
'orig_col_name': orig_col_name,
'dest_col_name': dest_col_name,
'out_time_col_name': out_time_col_name,
'in_time_col_name': in_time_col_name
}
```

When model expressions such as `@odt_skims['WLK_LOC_WLK_TOTIVT']`

are solved,
the `WLK_LOC_WLK_TOTIVT`

skim matrix values for all chooser table origins, destinations, and
out_periods can be retrieved in one vectorized request.

All the skims are preloaded (cached) by the pipeline manager at the beginning of the model run in order to avoid repeatedly reading the skims from the OMX files on disk. This saves significant model runtime.

See LOS for more information on skim handling.

### Accessibilities Model¶

Unlike the microsimulation models, which operate on a table of choosers, the accessibilities model is an aggregate model that calculates accessibility measures by origin zone to all destination zones. This model could be implemented with a matrix library such as numpy since it involves a series of matrix and vector operations. However, all the other ActivitySim AB models - the microsimulation models - are implemented with pandas.DataFrame tables, and so this would be a different approach for just this model. The benefits of keeping with the same table approach to data setup, expression management, and solving means ActivitySim has one expression syntax, is easier to understand and document, and is more efficiently implemented.

As illustrated below, in order to convert the
accessibility calculation into a table operation, a table of OD pairs is first built using numpy
`repeat`

and `tile`

functions. Once constructed, the additional data columns are added to the
table in order to solve the accessibility calculations. The skim data is also added in column form.
After solving the expressions for each OD pair row, the accessibility module aggregates the results
to origin zone and write them to the datastore.

```
# create OD dataframe
od_df = pd.DataFrame(
data={
'orig': np.repeat(np.asanyarray(land_use_df.index), zone_count),
'dest': np.tile(np.asanyarray(land_use_df.index), zone_count)
}
)
```

## Multiprocessing¶

Most models can be implemented as a series of independent vectorized operations on pandas DataFrames and numpy arrays. These vectorized operations are much faster than sequential Python because they are implemented by native code (compiled C) and are to some extent multi-threaded. But the benefits of numpy multi-processing are limited because they only apply to atomic numpy or pandas calls, and as soon as control returns to Python it is single-threaded and slow.

Multi-threading is not an attractive strategy to get around the Python performance problem because of the limitations imposed by Python’s global interpreter lock (GIL). Rather than struggling with Python multi-threading, ActivitySim uses the Python multiprocessing library to parallelize most models.

ActivitySim’s modular and extensible architecture makes it possible to not hardwire the multiprocessing architecture. The specification of which models should be run in parallel, how many processers should be used, and the segmentation of the data between processes are all specified in the settings config file.

### Mutliprocessing Configuration¶

The multiprocess_steps setting below indicate that the simulation should be broken into three steps.

```
models:
### mp_initialize step
- initialize_landuse
- compute_accessibility
- initialize_households
### mp_households step
- school_location
- workplace_location
- auto_ownership_simulate
- free_parking
### mp_summarize step
- write_tables
multiprocess_steps:
- name: mp_initialize
begin: initialize_landuse
- name: mp_households
begin: school_location
num_processes: 2
slice:
tables:
- households
- persons
- name: mp_summarize
begin: write_tables
```

The first multiprocess_step, `mp_initialize`

, begins with the initialize landuse step and is
implicity single-process because there is no ‘slice’ key indicating how to apportion the tables.
This first step includes all models listed in the ‘models’ setting up until the first step
in the next multiprocess_steps.

The second multiprocess_step, `mp_households`

, starts with the school location model and continues
through auto ownership. The ‘slice’ info indicates that the tables should be sliced by
`households`

, and that `persons`

is a dependent table and so `persons`

with a ref_col (foreign key
column with the same name as the `Households`

table index) referencing a household record should be
taken to ‘belong’ to that household. Similarly, any other table that either share an index
(i.e. having the same name) with either the `households`

or `persons`

table, or have a ref_col to
either of their indexes, should also be considered a dependent table.

The num_processes setting of 2 indicates that the pipeline should be split in two, and half of the
households should be apportioned into each subprocess pipeline, and all dependent tables should
likewise be apportioned accordingly. All other tables (e.g. `land_use`

) that do share an index (name)
or have a ref_col should be considered mirrored and be included in their entirety.

The primary table is sliced by num_processes-sized strides. (e.g. for num_processes == 2, the sub-processes get every second record starting at offsets 0 and 1 respectively. All other dependent tables slices are based (directly or indirectly) on this primary stride segmentation of the primary table index.

Two separate sub-process are launched (num_processes == 2) and each passed the name of their apportioned pipeline file. They execute independently and if they terminate successfully, their contents are then coalesced into a single pipeline file whose tables should then be essentially the same as it had been generated by a single process.

We assume that any new tables that are created by the sub-processes are directly dependent on the previously primary tables or are mirrored. Thus we can coalesce the sub-process pipelines by concatenating the primary and dependent tables and simply retaining any copy of the mirrored tables (since they should all be identical.)

The third multiprocess_step, `mp_summarize`

, then is handled in single-process mode and runs the
`write_tables`

model, writing the results, but also leaving the tables in the pipeline, with
essentially the same tables and results as if the whole simulation had been run as a single process.

### Outputs¶

When multiprocessing is run, the following additional outputs are created, which are useful for understanding how multiprocessing works:

run_list.txt - which contains the expanded model run list with additional annotation for single and multiprocessed steps

Log files for each multiprocess step and process, for example

`mp_households_0-activitysim.log`

and`mp_households_1-activitysim.log`

Pipeline file for each multiprocess step and process, for example

`mp_households_0-pipeline.h5`

mem.csv - memory used for each step

breadcrumbs.yaml - multiprocess global info

See the Multiprocessing section for more detail.

## Data Schema¶

The ActivitySim data schema depends on the sub-models implemented. The data schema listed below is for
the primary TM1 example model. These tables and skims are defined in the `activitysim.abm.tables`

package.

### Data Tables¶

The following tables are currently implemented:

households - household attributes for each household being simulated. Index:

`household_id`

(see`activitysim.abm.tables.households.py`

)landuse - zonal land use (such as population and employment) attributes. Index:

`zone_id`

(see`activitysim.abm.tables.landuse.py`

)persons - person attributes for each person being simulated. Index:

`person_id`

(see`activitysim.abm.tables.persons.py`

)time windows - manages person time windows throughout the simulation. See Person Time Windows. Index:

`person_id`

(see the person_windows table create decorator in`activitysim.abm.tables.time_windows.py`

)tours - tour attributes for each tour (mandatory, non-mandatory, joint, and atwork-subtour) being simulated. Index:

`tour_id`

(see`activitysim.abm.models.util.tour_frequency.py`

)trips - trip attributes for each trip being simulated. Index:

`trip_id`

(see`activitysim.abm.models.stop_frequency.py`

)

A few additional tables are also used, which are not really tables, but classes:

input store - reads input data tables from the input data store

constants - various constants used throughout the model system, such as person type codes

shadow pricing - shadow price calculator and associated utility methods, see Shadow Pricing

size terms - created by reading the

`destination_choice_size_terms.csv`

input file. Index -`segment`

(see`activitysim.abm.tables.size_terms.py`

)skims - see Skims

table dictionary - stores which tables should be registered as random number generator channels for restartability of the pipeline

### Data Schema¶

The following table lists the pipeline data tables, each final field, the data type, the step that created it, and the
number of columns and rows in the table at the time of creation. The `other_resources\scripts\make_pipeline_output.py`

script
uses the information stored in the pipeline file to create the table below for a small sample of households.

Table |
Field |
DType |
Creator |
NCol |
NRow |
---|---|---|---|---|---|

accessibility |
auPkRetail |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
auPkTotal |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
auOpRetail |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
auOpTotal |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
trPkRetail |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
trPkTotal |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
trOpRetail |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
trOpTotal |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
nmRetail |
float32 |
compute_accessibility |
10 |
1454 |

accessibility |
nmTotal |
float32 |
compute_accessibility |
10 |
1454 |

households |
TAZ |
int64 |
initialize_households |
65 |
100 |

households |
SERIALNO |
int64 |
initialize_households |
65 |
100 |

households |
PUMA5 |
int64 |
initialize_households |
65 |
100 |

households |
income |
int64 |
initialize_households |
65 |
100 |

households |
hhsize |
int64 |
initialize_households |
65 |
100 |

households |
HHT |
int64 |
initialize_households |
65 |
100 |

households |
UNITTYPE |
int64 |
initialize_households |
65 |
100 |

households |
NOC |
int64 |
initialize_households |
65 |
100 |

households |
BLDGSZ |
int64 |
initialize_households |
65 |
100 |

households |
TENURE |
int64 |
initialize_households |
65 |
100 |

households |
VEHICL |
int64 |
initialize_households |
65 |
100 |

households |
hinccat1 |
int64 |
initialize_households |
65 |
100 |

households |
hinccat2 |
int64 |
initialize_households |
65 |
100 |

households |
hhagecat |
int64 |
initialize_households |
65 |
100 |

households |
hsizecat |
int64 |
initialize_households |
65 |
100 |

households |
hfamily |
int64 |
initialize_households |
65 |
100 |

households |
hunittype |
int64 |
initialize_households |
65 |
100 |

households |
hNOCcat |
int64 |
initialize_households |
65 |
100 |

households |
hwrkrcat |
int64 |
initialize_households |
65 |
100 |

households |
h0004 |
int64 |
initialize_households |
65 |
100 |

households |
h0511 |
int64 |
initialize_households |
65 |
100 |

households |
h1215 |
int64 |
initialize_households |
65 |
100 |

households |
h1617 |
int64 |
initialize_households |
65 |
100 |

households |
h1824 |
int64 |
initialize_households |
65 |
100 |

households |
h2534 |
int64 |
initialize_households |
65 |
100 |

households |
h3549 |
int64 |
initialize_households |
65 |
100 |

households |
h5064 |
int64 |
initialize_households |
65 |
100 |

households |
h6579 |
int64 |
initialize_households |
65 |
100 |

households |
h80up |
int64 |
initialize_households |
65 |
100 |

households |
num_workers |
int64 |
initialize_households |
65 |
100 |

households |
hwork_f |
int64 |
initialize_households |
65 |
100 |

households |
hwork_p |
int64 |
initialize_households |
65 |
100 |

households |
huniv |
int64 |
initialize_households |
65 |
100 |

households |
hnwork |
int64 |
initialize_households |
65 |
100 |

households |
hretire |
int64 |
initialize_households |
65 |
100 |

households |
hpresch |
int64 |
initialize_households |
65 |
100 |

households |
hschpred |
int64 |
initialize_households |
65 |
100 |

households |
hschdriv |
int64 |
initialize_households |
65 |
100 |

households |
htypdwel |
int64 |
initialize_households |
65 |
100 |

households |
hownrent |
int64 |
initialize_households |
65 |
100 |

households |
hadnwst |
int64 |
initialize_households |
65 |
100 |

households |
hadwpst |
int64 |
initialize_households |
65 |
100 |

households |
hadkids |
int64 |
initialize_households |
65 |
100 |

households |
bucketBin |
int64 |
initialize_households |
65 |
100 |

households |
originalPUMA |
int64 |
initialize_households |
65 |
100 |

households |
hmultiunit |
int64 |
initialize_households |
65 |
100 |

households |
chunk_id |
int64 |
initialize_households |
65 |
100 |

households |
income_in_thousands |
float64 |
initialize_households |
65 |
100 |

households |
income_segment |
int32 |
initialize_households |
65 |
100 |

households |
median_value_of_time |
float64 |
initialize_households |
65 |
100 |

households |
hh_value_of_time |
float64 |
initialize_households |
65 |
100 |

households |
num_non_workers |
int64 |
initialize_households |
65 |
100 |

households |
num_drivers |
int8 |
initialize_households |
65 |
100 |

households |
num_adults |
int8 |
initialize_households |
65 |
100 |

households |
num_children |
int8 |
initialize_households |
65 |
100 |

households |
num_young_children |
int8 |
initialize_households |
65 |
100 |

households |
num_children_5_to_15 |
int8 |
initialize_households |
65 |
100 |

households |
num_children_16_to_17 |
int8 |
initialize_households |
65 |
100 |

households |
num_college_age |
int8 |
initialize_households |
65 |
100 |

households |
num_young_adults |
int8 |
initialize_households |
65 |
100 |

households |
non_family |
bool |
initialize_households |
65 |
100 |

households |
family |
bool |
initialize_households |
65 |
100 |

households |
home_is_urban |
bool |
initialize_households |
65 |
100 |

households |
home_is_rural |
bool |
initialize_households |
65 |
100 |

households |
auto_ownership |
int64 |
initialize_households |
65 |
100 |

households |
hh_work_auto_savings_ratio |
float32 |
workplace_location |
66 |
100 |

households |
num_under16_not_at_school |
int8 |
cdap_simulate |
73 |
100 |

households |
num_travel_active |
int8 |
cdap_simulate |
73 |
100 |

households |
num_travel_active_adults |
int8 |
cdap_simulate |
73 |
100 |

households |
num_travel_active_preschoolers |
int8 |
cdap_simulate |
73 |
100 |

households |
num_travel_active_children |
int8 |
cdap_simulate |
73 |
100 |

households |
num_travel_active_non_presch |
int8 |
cdap_simulate |
73 |
100 |

households |
participates_in_jtf_model |
int8 |
cdap_simulate |
73 |
100 |

households |
joint_tour_frequency |
object |
joint_tour_frequency |
75 |
100 |

households |
num_hh_joint_tours |
int8 |
joint_tour_frequency |
75 |
100 |

joint_tour_participants |
tour_id |
int64 |
joint_tour_participation |
4 |
13 |

joint_tour_participants |
household_id |
int64 |
joint_tour_participation |
4 |
13 |

joint_tour_participants |
person_id |
int64 |
joint_tour_participation |
4 |
13 |

joint_tour_participants |
participant_num |
int64 |
joint_tour_participation |
4 |
13 |

land_use |
DISTRICT |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
SD |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
county_id |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
TOTHH |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HHPOP |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
TOTPOP |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
EMPRES |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
SFDU |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
MFDU |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HHINCQ1 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HHINCQ2 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HHINCQ3 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HHINCQ4 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
TOTACRE |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
RESACRE |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
CIACRE |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
SHPOP62P |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
TOTEMP |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGE0004 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGE0519 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGE2044 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGE4564 |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGE65P |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
RETEMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
FPSEMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HEREMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
OTHEMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
AGREMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
MWTEMPN |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
PRKCST |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
OPRKCST |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
area_type |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
HSENROLL |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
COLLFTE |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
COLLPTE |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
TOPOLOGY |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
TERMINAL |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
ZERO |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
hhlds |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
sftaz |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
gqpop |
int64 |
initialize_landuse |
44 |
1454 |

land_use |
household_density |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
employment_density |
float64 |
initialize_landuse |
44 |
1454 |

land_use |
density_index |
float64 |
initialize_landuse |
44 |
1454 |

person_windows |
4 |
int8 |
initialize_households |
21 |
271 |

person_windows |
5 |
int8 |
initialize_households |
21 |
271 |

person_windows |
6 |
int8 |
initialize_households |
21 |
271 |

person_windows |
7 |
int8 |
initialize_households |
21 |
271 |

person_windows |
8 |
int8 |
initialize_households |
21 |
271 |

person_windows |
9 |
int8 |
initialize_households |
21 |
271 |

person_windows |
10 |
int8 |
initialize_households |
21 |
271 |

person_windows |
11 |
int8 |
initialize_households |
21 |
271 |

person_windows |
12 |
int8 |
initialize_households |
21 |
271 |

person_windows |
13 |
int8 |
initialize_households |
21 |
271 |

person_windows |
14 |
int8 |
initialize_households |
21 |
271 |

person_windows |
15 |
int8 |
initialize_households |
21 |
271 |

person_windows |
16 |
int8 |
initialize_households |
21 |
271 |

person_windows |
17 |
int8 |
initialize_households |
21 |
271 |

person_windows |
18 |
int8 |
initialize_households |
21 |
271 |

person_windows |
19 |
int8 |
initialize_households |
21 |
271 |

person_windows |
20 |
int8 |
initialize_households |
21 |
271 |

person_windows |
21 |
int8 |
initialize_households |
21 |
271 |

person_windows |
22 |
int8 |
initialize_households |
21 |
271 |

person_windows |
23 |
int8 |
initialize_households |
21 |
271 |

person_windows |
24 |
int8 |
initialize_households |
21 |
271 |

persons |
household_id |
int64 |
initialize_households |
42 |
271 |

persons |
age |
int64 |
initialize_households |
42 |
271 |

persons |
RELATE |
int64 |
initialize_households |
42 |
271 |

persons |
ESR |
int64 |
initialize_households |
42 |
271 |

persons |
GRADE |
int64 |
initialize_households |
42 |
271 |

persons |
PNUM |
int64 |
initialize_households |
42 |
271 |

persons |
PAUG |
int64 |
initialize_households |
42 |
271 |

persons |
DDP |
int64 |
initialize_households |
42 |
271 |

persons |
sex |
int64 |
initialize_households |
42 |
271 |

persons |
WEEKS |
int64 |
initialize_households |
42 |
271 |

persons |
HOURS |
int64 |
initialize_households |
42 |
271 |

persons |
MSP |
int64 |
initialize_households |
42 |
271 |

persons |
POVERTY |
int64 |
initialize_households |
42 |
271 |

persons |
EARNS |
int64 |
initialize_households |
42 |
271 |

persons |
pagecat |
int64 |
initialize_households |
42 |
271 |

persons |
pemploy |
int64 |
initialize_households |
42 |
271 |

persons |
pstudent |
int64 |
initialize_households |
42 |
271 |

persons |
ptype |
int64 |
initialize_households |
42 |
271 |

persons |
padkid |
int64 |
initialize_households |
42 |
271 |

persons |
age_16_to_19 |
bool |
initialize_households |
42 |
271 |

persons |
age_16_p |
bool |
initialize_households |
42 |
271 |

persons |
adult |
bool |
initialize_households |
42 |
271 |

persons |
male |
bool |
initialize_households |
42 |
271 |

persons |
female |
bool |
initialize_households |
42 |
271 |

persons |
has_non_worker |
bool |
initialize_households |
42 |
271 |

persons |
has_retiree |
bool |
initialize_households |
42 |
271 |

persons |
has_preschool_kid |
bool |
initialize_households |
42 |
271 |

persons |
has_driving_kid |
bool |
initialize_households |
42 |
271 |

persons |
has_school_kid |
bool |
initialize_households |
42 |
271 |

persons |
has_full_time |
bool |
initialize_households |
42 |
271 |

persons |
has_part_time |
bool |
initialize_households |
42 |
271 |

persons |
has_university |
bool |
initialize_households |
42 |
271 |

persons |
student_is_employed |
bool |
initialize_households |
42 |
271 |

persons |
nonstudent_to_school |
bool |
initialize_households |
42 |
271 |

persons |
is_student |
bool |
initialize_households |
42 |
271 |

persons |
is_gradeschool |
bool |
initialize_households |
42 |
271 |

persons |
is_highschool |
bool |
initialize_households |
42 |
271 |

persons |
is_university |
bool |
initialize_households |
42 |
271 |

persons |
school_segment |
int8 |
initialize_households |
42 |
271 |

persons |
is_worker |
bool |
initialize_households |
42 |
271 |

persons |
home_taz |
int64 |
initialize_households |
42 |
271 |

persons |
value_of_time |
float64 |
initialize_households |
42 |
271 |

persons |
school_taz |
int32 |
school_location |
45 |
271 |

persons |
distance_to_school |
float32 |
school_location |
45 |
271 |

persons |
roundtrip_auto_time_to_school |
float32 |
school_location |
45 |
271 |

persons |
workplace_taz |
int32 |
workplace_location |
52 |
271 |

persons |
distance_to_work |
float32 |
workplace_location |
52 |
271 |

persons |
workplace_in_cbd |
bool |
workplace_location |
52 |
271 |

persons |
work_zone_area_type |
float64 |
workplace_location |
52 |
271 |

persons |
roundtrip_auto_time_to_work |
float32 |
workplace_location |
52 |
271 |

persons |
work_auto_savings |
float32 |
workplace_location |
52 |
271 |

persons |
work_auto_savings_ratio |
float32 |
workplace_location |
52 |
271 |

persons |
free_parking_at_work |
bool |
free_parking |
53 |
271 |

persons |
cdap_activity |
object |
cdap_simulate |
59 |
271 |

persons |
cdap_rank |
int64 |
cdap_simulate |
59 |
271 |

persons |
travel_active |
bool |
cdap_simulate |
59 |
271 |

persons |
under16_not_at_school |
bool |
cdap_simulate |
59 |
271 |

persons |
has_preschool_kid_at_home |
bool |
cdap_simulate |
59 |
271 |

persons |
has_school_kid_at_home |
bool |
cdap_simulate |
59 |
271 |

persons |
mandatory_tour_frequency |
object |
mandatory_tour_frequency |
64 |
271 |

persons |
work_and_school_and_worker |
bool |
mandatory_tour_frequency |
64 |
271 |

persons |
work_and_school_and_student |
bool |
mandatory_tour_frequency |
64 |
271 |

persons |
num_mand |
int8 |
mandatory_tour_frequency |
64 |
271 |

persons |
num_work_tours |
int8 |
mandatory_tour_frequency |
64 |
271 |

persons |
num_joint_tours |
int8 |
joint_tour_participation |
65 |
271 |

persons |
non_mandatory_tour_frequency |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_non_mand |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_escort_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_eatout_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_shop_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_maint_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_discr_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_social_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

persons |
num_non_escort_tours |
int8 |
non_mandatory_tour_frequency |
74 |
271 |

school_destination_size |
gradeschool |
float64 |
initialize_households |
3 |
1454 |

school_destination_size |
highschool |
float64 |
initialize_households |
3 |
1454 |

school_destination_size |
university |
float64 |
initialize_households |
3 |
1454 |

school_modeled_size |
gradeschool |
int32 |
school_location |
3 |
1454 |

school_modeled_size |
highschool |
int32 |
school_location |
3 |
1454 |

school_modeled_size |
university |
int32 |
school_location |
3 |
1454 |

tours |
person_id |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_type |
object |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_type_count |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_type_num |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_num |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_count |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
tour_category |
object |
mandatory_tour_frequency |
11 |
153 |

tours |
number_of_participants |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
destination |
int32 |
mandatory_tour_frequency |
11 |
153 |

tours |
origin |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
household_id |
int64 |
mandatory_tour_frequency |
11 |
153 |

tours |
start |
int8 |
mandatory_tour_scheduling |
15 |
153 |

tours |
end |
int8 |
mandatory_tour_scheduling |
15 |
153 |

tours |
duration |
int8 |
mandatory_tour_scheduling |
15 |
153 |

tours |
tdd |
int64 |
mandatory_tour_scheduling |
15 |
153 |

tours |
composition |
object |
joint_tour_composition |
16 |
159 |

tours |
tour_mode |
object |
tour_mode_choice_simulate |
17 |
319 |

tours |
atwork_subtour_frequency |
object |
atwork_subtour_frequency |
19 |
344 |

tours |
parent_tour_id |
float64 |
atwork_subtour_frequency |
19 |
344 |

tours |
stop_frequency |
object |
stop_frequency |
21 |
344 |

tours |
primary_purpose |
object |
stop_frequency |
21 |
344 |

trips |
person_id |
int64 |
stop_frequency |
7 |
859 |

trips |
household_id |
int64 |
stop_frequency |
7 |
859 |

trips |
tour_id |
int64 |
stop_frequency |
7 |
859 |

trips |
primary_purpose |
object |
stop_frequency |
7 |
859 |

trips |
trip_num |
int64 |
stop_frequency |
7 |
859 |

trips |
outbound |
bool |
stop_frequency |
7 |
859 |

trips |
trip_count |
int64 |
stop_frequency |
7 |
859 |

trips |
purpose |
object |
trip_purpose |
8 |
859 |

trips |
destination |
int32 |
trip_destination |
11 |
859 |

trips |
origin |
int32 |
trip_destination |
11 |
859 |

trips |
failed |
bool |
trip_destination |
11 |
859 |

trips |
depart |
float64 |
trip_scheduling |
11 |
859 |

trips |
trip_mode |
object |
trip_mode_choice |
12 |
859 |

workplace_destination_size |
work_high |
float64 |
initialize_households |
4 |
1454 |

workplace_destination_size |
work_low |
float64 |
initialize_households |
4 |
1454 |

workplace_destination_size |
work_med |
float64 |
initialize_households |
4 |
1454 |

workplace_destination_size |
work_veryhigh |
float64 |
initialize_households |
4 |
1454 |

workplace_modeled_size |
work_high |
int32 |
workplace_location |
4 |
1454 |

workplace_modeled_size |
work_low |
int32 |
workplace_location |
4 |
1454 |

workplace_modeled_size |
work_med |
int32 |
workplace_location |
4 |
1454 |

workplace_modeled_size |
work_veryhigh |
int32 |
workplace_location |
4 |
1454 |

### Skims¶

The skims class defines Inject injectables to access the skim matrices. The skims class reads the skims from the omx_file on disk. The injectables and omx_file for the example are listed below. The skims are float64 matrix.

Skims are named <PATH TYPE>_<MEASURE>__<TIME PERIOD>:

Highway paths:

SOV - SOV free

HOV2 - HOV2 free

HOV3 - HOV3 free

SOVTOLL - SOV toll

HOV2TOLL - HOV2 toll

HOV3TOLL - HOV3 toll

Transit paths:

Walk access and walk egress - WLK_COM_WLK, WLK_EXP_WLK, WLK_HVY_WLK, WLK_LOC_WLK, WLK_LRF_WLK

Walk access and drive egress - WLK_COM_DRV, WLK_EXP_DRV, WLK_HVY_DRV, WLK_LOC_DRV, WLK_LRF_DRV

Drive access and walk egress - DRV_COM_WLK, DRV_EXP_WLK, DRV_HVY_WLK, DRV_LOC_WLK, DRV_LRF_WLK

COM = commuter rail, EXP = express bus, HVY = heavy rail, LOC = local bus, LRF = light rail ferry

Non-motorized paths:

WALK

BIKE

Measures:

TIME - Time (minutes)

DIST - Distance (miles)

BTOLL - Bridge toll (cents)

VTOLL - Value toll (cents)

IVT - In-vehicle time, time (minutes x 100)

IWAIT - Initial wait time, time (minutes x 100)

XWAIT - Transfer wait time, time (minutes x 100)

WACC - Walk access time, time (minutes x 100)

WAUX - Auxiliary walk time, time (minutes x 100)

WEGR - Walk egress time, time (minutes x 100)

DTIM - Drive access and/or egress time, time (minutes x 100)

DDIST - Drive access and/or egress distance, distance (miles x 100)

FAR - Fare, cents

BOARDS - Boardings, number

TOTIVT - Total in-vehicle time, time (minutes x 100)

KEYIVT - Transit submode in-vehicle time, time (minutes x 100)

FERRYIVT - Ferry in-vehicle time, time (minutes x 100)

Time periods:

EA

AM

MD

PM

EV

Field |
Type |
---|---|

SOV_TIME__AM |
float64 matrix |

SOV_DIST__AM |
float64 matrix |

SOV_BTOLL__AM |
float64 matrix |

HOV2_TIME__AM |
float64 matrix |

HOV2_DIST__AM |
float64 matrix |

HOV2_BTOLL__AM |
float64 matrix |

HOV3_TIME__AM |
float64 matrix |

HOV3_DIST__AM |
float64 matrix |

HOV3_BTOLL__AM |
float64 matrix |

SOVTOLL_TIME__AM |
float64 matrix |

SOVTOLL_DIST__AM |
float64 matrix |

SOVTOLL_BTOLL__AM |
float64 matrix |

SOVTOLL_VTOLL__AM |
float64 matrix |

HOV2TOLL_TIME__AM |
float64 matrix |

HOV2TOLL_DIST__AM |
float64 matrix |

HOV2TOLL_BTOLL__AM |
float64 matrix |

HOV2TOLL_VTOLL__AM |
float64 matrix |

HOV3TOLL_TIME__AM |
float64 matrix |

HOV3TOLL_DIST__AM |
float64 matrix |

HOV3TOLL_BTOLL__AM |
float64 matrix |

HOV3TOLL_VTOLL__AM |
float64 matrix |

SOV_TIME__EA |
float64 matrix |

SOV_DIST__EA |
float64 matrix |

SOV_BTOLL__EA |
float64 matrix |

HOV2_TIME__EA |
float64 matrix |

HOV2_DIST__EA |
float64 matrix |

HOV2_BTOLL__EA |
float64 matrix |

HOV3_TIME__EA |
float64 matrix |

HOV3_DIST__EA |
float64 matrix |

HOV3_BTOLL__EA |
float64 matrix |

SOVTOLL_TIME__EA |
float64 matrix |

SOVTOLL_DIST__EA |
float64 matrix |

SOVTOLL_BTOLL__EA |
float64 matrix |

SOVTOLL_VTOLL__EA |
float64 matrix |

HOV2TOLL_TIME__EA |
float64 matrix |

HOV2TOLL_DIST__EA |
float64 matrix |

HOV2TOLL_BTOLL__EA |
float64 matrix |

HOV2TOLL_VTOLL__EA |
float64 matrix |

HOV3TOLL_TIME__EA |
float64 matrix |

HOV3TOLL_DIST__EA |
float64 matrix |

HOV3TOLL_BTOLL__EA |
float64 matrix |

HOV3TOLL_VTOLL__EA |
float64 matrix |

SOV_TIME__EV |
float64 matrix |

SOV_DIST__EV |
float64 matrix |

SOV_BTOLL__EV |
float64 matrix |

HOV2_TIME__EV |
float64 matrix |

HOV2_DIST__EV |
float64 matrix |

HOV2_BTOLL__EV |
float64 matrix |

HOV3_TIME__EV |
float64 matrix |

HOV3_DIST__EV |
float64 matrix |

HOV3_BTOLL__EV |
float64 matrix |

SOVTOLL_TIME__EV |
float64 matrix |

SOVTOLL_DIST__EV |
float64 matrix |

SOVTOLL_BTOLL__EV |
float64 matrix |

SOVTOLL_VTOLL__EV |
float64 matrix |

HOV2TOLL_TIME__EV |
float64 matrix |

HOV2TOLL_DIST__EV |
float64 matrix |

HOV2TOLL_BTOLL__EV |
float64 matrix |

HOV2TOLL_VTOLL__EV |
float64 matrix |

HOV3TOLL_TIME__EV |
float64 matrix |

HOV3TOLL_DIST__EV |
float64 matrix |

HOV3TOLL_BTOLL__EV |
float64 matrix |

HOV3TOLL_VTOLL__EV |
float64 matrix |

SOV_TIME__MD |
float64 matrix |

SOV_DIST__MD |
float64 matrix |

SOV_BTOLL__MD |
float64 matrix |

HOV2_TIME__MD |
float64 matrix |

HOV2_DIST__MD |
float64 matrix |

HOV2_BTOLL__MD |
float64 matrix |

HOV3_TIME__MD |
float64 matrix |

HOV3_DIST__MD |
float64 matrix |

HOV3_BTOLL__MD |
float64 matrix |

SOVTOLL_TIME__MD |
float64 matrix |

SOVTOLL_DIST__MD |
float64 matrix |

SOVTOLL_BTOLL__MD |
float64 matrix |

SOVTOLL_VTOLL__MD |
float64 matrix |

HOV2TOLL_TIME__MD |
float64 matrix |

HOV2TOLL_DIST__MD |
float64 matrix |

HOV2TOLL_BTOLL__MD |
float64 matrix |

HOV2TOLL_VTOLL__MD |
float64 matrix |

HOV3TOLL_TIME__MD |
float64 matrix |

HOV3TOLL_DIST__MD |
float64 matrix |

HOV3TOLL_BTOLL__MD |
float64 matrix |

HOV3TOLL_VTOLL__MD |
float64 matrix |

SOV_TIME__PM |
float64 matrix |

SOV_DIST__PM |
float64 matrix |

SOV_BTOLL__PM |
float64 matrix |

HOV2_TIME__PM |
float64 matrix |

HOV2_DIST__PM |
float64 matrix |

HOV2_BTOLL__PM |
float64 matrix |

HOV3_TIME__PM |
float64 matrix |

HOV3_DIST__PM |
float64 matrix |

HOV3_BTOLL__PM |
float64 matrix |

SOVTOLL_TIME__PM |
float64 matrix |

SOVTOLL_DIST__PM |
float64 matrix |

SOVTOLL_BTOLL__PM |
float64 matrix |

SOVTOLL_VTOLL__PM |
float64 matrix |

HOV2TOLL_TIME__PM |
float64 matrix |

HOV2TOLL_DIST__PM |
float64 matrix |

HOV2TOLL_BTOLL__PM |
float64 matrix |

HOV2TOLL_VTOLL__PM |
float64 matrix |

HOV3TOLL_TIME__PM |
float64 matrix |

HOV3TOLL_DIST__PM |
float64 matrix |

HOV3TOLL_BTOLL__PM |
float64 matrix |

HOV3TOLL_VTOLL__PM |
float64 matrix |

DIST |
float64 matrix |

DISTWALK |
float64 matrix |

DISTBIKE |
float64 matrix |

DRV_COM_WLK_WAIT__AM |
float64 matrix |

DRV_COM_WLK_TOTIVT__AM |
float64 matrix |

DRV_COM_WLK_KEYIVT__AM |
float64 matrix |

DRV_COM_WLK_FAR__AM |
float64 matrix |

DRV_COM_WLK_DTIM__AM |
float64 matrix |

DRV_COM_WLK_DDIST__AM |
float64 matrix |

DRV_COM_WLK_WAUX__AM |
float64 matrix |

DRV_COM_WLK_IWAIT__AM |
float64 matrix |

DRV_COM_WLK_XWAIT__AM |
float64 matrix |

DRV_COM_WLK_BOARDS__AM |
float64 matrix |

DRV_EXP_WLK_WAIT__AM |
float64 matrix |

DRV_EXP_WLK_TOTIVT__AM |
float64 matrix |

DRV_EXP_WLK_KEYIVT__AM |
float64 matrix |

DRV_EXP_WLK_FAR__AM |
float64 matrix |

DRV_EXP_WLK_DTIM__AM |
float64 matrix |

DRV_EXP_WLK_WAUX__AM |
float64 matrix |

DRV_EXP_WLK_IWAIT__AM |
float64 matrix |

DRV_EXP_WLK_XWAIT__AM |
float64 matrix |

DRV_EXP_WLK_BOARDS__AM |
float64 matrix |

DRV_EXP_WLK_DDIST__AM |
float64 matrix |

DRV_HVY_WLK_WAIT__AM |
float64 matrix |

DRV_HVY_WLK_TOTIVT__AM |
float64 matrix |

DRV_HVY_WLK_KEYIVT__AM |
float64 matrix |

DRV_HVY_WLK_FAR__AM |
float64 matrix |

DRV_HVY_WLK_DTIM__AM |
float64 matrix |

DRV_HVY_WLK_DDIST__AM |
float64 matrix |

DRV_HVY_WLK_WAUX__AM |
float64 matrix |

DRV_HVY_WLK_IWAIT__AM |
float64 matrix |

DRV_HVY_WLK_XWAIT__AM |
float64 matrix |

DRV_HVY_WLK_BOARDS__AM |
float64 matrix |

DRV_LOC_WLK_WAIT__AM |
float64 matrix |

DRV_LOC_WLK_TOTIVT__AM |
float64 matrix |

DRV_LOC_WLK_FAR__AM |
float64 matrix |

DRV_LOC_WLK_DTIM__AM |
float64 matrix |

DRV_LOC_WLK_DDIST__AM |
float64 matrix |

DRV_LOC_WLK_WAUX__AM |
float64 matrix |

DRV_LOC_WLK_IWAIT__AM |
float64 matrix |

DRV_LOC_WLK_XWAIT__AM |
float64 matrix |

DRV_LOC_WLK_BOARDS__AM |
float64 matrix |

DRV_LRF_WLK_WAIT__AM |
float64 matrix |

DRV_LRF_WLK_TOTIVT__AM |
float64 matrix |

DRV_LRF_WLK_KEYIVT__AM |
float64 matrix |

DRV_LRF_WLK_FERRYIVT__AM |
float64 matrix |

DRV_LRF_WLK_FAR__AM |
float64 matrix |

DRV_LRF_WLK_DTIM__AM |
float64 matrix |

DRV_LRF_WLK_DDIST__AM |
float64 matrix |

DRV_LRF_WLK_WAUX__AM |
float64 matrix |

DRV_LRF_WLK_IWAIT__AM |
float64 matrix |

DRV_LRF_WLK_XWAIT__AM |
float64 matrix |

DRV_LRF_WLK_BOARDS__AM |
float64 matrix |

WLK_COM_DRV_WAIT__AM |
float64 matrix |

WLK_COM_DRV_TOTIVT__AM |
float64 matrix |

WLK_COM_DRV_KEYIVT__AM |
float64 matrix |

WLK_COM_DRV_FAR__AM |
float64 matrix |

WLK_COM_DRV_DTIM__AM |
float64 matrix |

WLK_COM_DRV_DDIST__AM |
float64 matrix |

WLK_COM_DRV_WAUX__AM |
float64 matrix |

WLK_COM_DRV_IWAIT__AM |
float64 matrix |

WLK_COM_DRV_XWAIT__AM |
float64 matrix |

WLK_COM_DRV_BOARDS__AM |
float64 matrix |

WLK_COM_WLK_WAIT__AM |
float64 matrix |

WLK_COM_WLK_TOTIVT__AM |
float64 matrix |

WLK_COM_WLK_KEYIVT__AM |
float64 matrix |

WLK_COM_WLK_FAR__AM |
float64 matrix |

WLK_COM_WLK_WAUX__AM |
float64 matrix |

WLK_COM_WLK_IWAIT__AM |
float64 matrix |

WLK_COM_WLK_XWAIT__AM |
float64 matrix |

WLK_COM_WLK_BOARDS__AM |
float64 matrix |

WLK_EXP_DRV_WAIT__AM |
float64 matrix |

WLK_EXP_DRV_TOTIVT__AM |
float64 matrix |

WLK_EXP_DRV_KEYIVT__AM |
float64 matrix |

WLK_EXP_DRV_FAR__AM |
float64 matrix |

WLK_EXP_DRV_DTIM__AM |
float64 matrix |

WLK_EXP_DRV_WAUX__AM |
float64 matrix |

WLK_EXP_DRV_IWAIT__AM |
float64 matrix |

WLK_EXP_DRV_XWAIT__AM |
float64 matrix |

WLK_EXP_DRV_BOARDS__AM |
float64 matrix |

WLK_EXP_DRV_DDIST__AM |
float64 matrix |

WLK_EXP_WLK_WAIT__AM |
float64 matrix |

WLK_EXP_WLK_TOTIVT__AM |
float64 matrix |

WLK_EXP_WLK_KEYIVT__AM |
float64 matrix |

WLK_EXP_WLK_FAR__AM |
float64 matrix |

WLK_EXP_WLK_WAUX__AM |
float64 matrix |

WLK_EXP_WLK_IWAIT__AM |
float64 matrix |

WLK_EXP_WLK_XWAIT__AM |
float64 matrix |

WLK_EXP_WLK_BOARDS__AM |
float64 matrix |

WLK_HVY_DRV_WAIT__AM |
float64 matrix |

WLK_HVY_DRV_TOTIVT__AM |
float64 matrix |

WLK_HVY_DRV_KEYIVT__AM |
float64 matrix |

WLK_HVY_DRV_FAR__AM |
float64 matrix |

WLK_HVY_DRV_DTIM__AM |
float64 matrix |

WLK_HVY_DRV_DDIST__AM |
float64 matrix |

WLK_HVY_DRV_WAUX__AM |
float64 matrix |

WLK_HVY_DRV_IWAIT__AM |
float64 matrix |

WLK_HVY_DRV_XWAIT__AM |
float64 matrix |

WLK_HVY_DRV_BOARDS__AM |
float64 matrix |

WLK_HVY_WLK_WAIT__AM |
float64 matrix |

WLK_HVY_WLK_TOTIVT__AM |
float64 matrix |

WLK_HVY_WLK_KEYIVT__AM |
float64 matrix |

WLK_HVY_WLK_FAR__AM |
float64 matrix |

WLK_HVY_WLK_WAUX__AM |
float64 matrix |

WLK_HVY_WLK_IWAIT__AM |
float64 matrix |

WLK_HVY_WLK_XWAIT__AM |
float64 matrix |

WLK_HVY_WLK_BOARDS__AM |
float64 matrix |

WLK_LOC_DRV_WAIT__AM |
float64 matrix |

WLK_LOC_DRV_TOTIVT__AM |
float64 matrix |

WLK_LOC_DRV_FAR__AM |
float64 matrix |

WLK_LOC_DRV_DTIM__AM |
float64 matrix |

WLK_LOC_DRV_DDIST__AM |
float64 matrix |

WLK_LOC_DRV_WAUX__AM |
float64 matrix |

WLK_LOC_DRV_IWAIT__AM |
float64 matrix |

WLK_LOC_DRV_XWAIT__AM |
float64 matrix |

WLK_LOC_DRV_BOARDS__AM |
float64 matrix |

WLK_LOC_WLK_WAIT__AM |
float64 matrix |

WLK_LOC_WLK_TOTIVT__AM |
float64 matrix |

WLK_LOC_WLK_FAR__AM |
float64 matrix |

WLK_LOC_WLK_WAUX__AM |
float64 matrix |

WLK_LOC_WLK_IWAIT__AM |
float64 matrix |

WLK_LOC_WLK_XWAIT__AM |
float64 matrix |

WLK_LOC_WLK_BOARDS__AM |
float64 matrix |

WLK_LRF_DRV_WAIT__AM |
float64 matrix |

WLK_LRF_DRV_TOTIVT__AM |
float64 matrix |

WLK_LRF_DRV_KEYIVT__AM |
float64 matrix |

WLK_LRF_DRV_FERRYIVT__AM |
float64 matrix |

WLK_LRF_DRV_FAR__AM |
float64 matrix |

WLK_LRF_DRV_DTIM__AM |
float64 matrix |

WLK_LRF_DRV_DDIST__AM |
float64 matrix |

WLK_LRF_DRV_WAUX__AM |
float64 matrix |

WLK_LRF_DRV_IWAIT__AM |
float64 matrix |

WLK_LRF_DRV_XWAIT__AM |
float64 matrix |

WLK_LRF_DRV_BOARDS__AM |
float64 matrix |

WLK_LRF_WLK_WAIT__AM |
float64 matrix |

WLK_LRF_WLK_TOTIVT__AM |
float64 matrix |

WLK_LRF_WLK_KEYIVT__AM |
float64 matrix |

WLK_LRF_WLK_FERRYIVT__AM |
float64 matrix |

WLK_LRF_WLK_FAR__AM |
float64 matrix |

WLK_LRF_WLK_WAUX__AM |
float64 matrix |

WLK_LRF_WLK_IWAIT__AM |
float64 matrix |

WLK_LRF_WLK_XWAIT__AM |
float64 matrix |

WLK_LRF_WLK_BOARDS__AM |
float64 matrix |

DRV_COM_WLK_WAIT__EA |
float64 matrix |

DRV_COM_WLK_TOTIVT__EA |
float64 matrix |

DRV_COM_WLK_KEYIVT__EA |
float64 matrix |

DRV_COM_WLK_FAR__EA |
float64 matrix |

DRV_COM_WLK_DTIM__EA |
float64 matrix |

DRV_COM_WLK_DDIST__EA |
float64 matrix |

DRV_COM_WLK_WAUX__EA |
float64 matrix |

DRV_COM_WLK_IWAIT__EA |
float64 matrix |

DRV_COM_WLK_XWAIT__EA |
float64 matrix |

DRV_COM_WLK_BOARDS__EA |
float64 matrix |

DRV_EXP_WLK_WAIT__EA |
float64 matrix |

DRV_EXP_WLK_TOTIVT__EA |
float64 matrix |

DRV_EXP_WLK_KEYIVT__EA |
float64 matrix |

DRV_EXP_WLK_FAR__EA |
float64 matrix |

DRV_EXP_WLK_DTIM__EA |
float64 matrix |

DRV_EXP_WLK_WAUX__EA |
float64 matrix |

DRV_EXP_WLK_IWAIT__EA |
float64 matrix |

DRV_EXP_WLK_XWAIT__EA |
float64 matrix |

DRV_EXP_WLK_BOARDS__EA |
float64 matrix |

DRV_EXP_WLK_DDIST__EA |
float64 matrix |

DRV_HVY_WLK_WAIT__EA |
float64 matrix |

DRV_HVY_WLK_TOTIVT__EA |
float64 matrix |

DRV_HVY_WLK_KEYIVT__EA |
float64 matrix |

DRV_HVY_WLK_FAR__EA |
float64 matrix |

DRV_HVY_WLK_DTIM__EA |
float64 matrix |

DRV_HVY_WLK_DDIST__EA |
float64 matrix |

DRV_HVY_WLK_WAUX__EA |
float64 matrix |

DRV_HVY_WLK_IWAIT__EA |
float64 matrix |

DRV_HVY_WLK_XWAIT__EA |
float64 matrix |

DRV_HVY_WLK_BOARDS__EA |
float64 matrix |

DRV_LOC_WLK_WAIT__EA |
float64 matrix |

DRV_LOC_WLK_TOTIVT__EA |
float64 matrix |

DRV_LOC_WLK_FAR__EA |
float64 matrix |

DRV_LOC_WLK_DTIM__EA |
float64 matrix |

DRV_LOC_WLK_DDIST__EA |
float64 matrix |

DRV_LOC_WLK_WAUX__EA |
float64 matrix |

DRV_LOC_WLK_IWAIT__EA |
float64 matrix |

DRV_LOC_WLK_XWAIT__EA |
float64 matrix |

DRV_LOC_WLK_BOARDS__EA |
float64 matrix |

DRV_LRF_WLK_WAIT__EA |
float64 matrix |

DRV_LRF_WLK_TOTIVT__EA |
float64 matrix |

DRV_LRF_WLK_KEYIVT__EA |
float64 matrix |

DRV_LRF_WLK_FERRYIVT__EA |
float64 matrix |

DRV_LRF_WLK_FAR__EA |
float64 matrix |

DRV_LRF_WLK_DTIM__EA |
float64 matrix |

DRV_LRF_WLK_DDIST__EA |
float64 matrix |

DRV_LRF_WLK_WAUX__EA |
float64 matrix |

DRV_LRF_WLK_IWAIT__EA |
float64 matrix |

DRV_LRF_WLK_XWAIT__EA |
float64 matrix |

DRV_LRF_WLK_BOARDS__EA |
float64 matrix |

WLK_COM_DRV_WAIT__EA |
float64 matrix |

WLK_COM_DRV_TOTIVT__EA |
float64 matrix |

WLK_COM_DRV_KEYIVT__EA |
float64 matrix |

WLK_COM_DRV_FAR__EA |
float64 matrix |

WLK_COM_DRV_DTIM__EA |
float64 matrix |

WLK_COM_DRV_DDIST__EA |
float64 matrix |

WLK_COM_DRV_WAUX__EA |
float64 matrix |

WLK_COM_DRV_IWAIT__EA |
float64 matrix |

WLK_COM_DRV_XWAIT__EA |
float64 matrix |

WLK_COM_DRV_BOARDS__EA |
float64 matrix |

WLK_COM_WLK_WAIT__EA |
float64 matrix |

WLK_COM_WLK_TOTIVT__EA |
float64 matrix |

WLK_COM_WLK_KEYIVT__EA |
float64 matrix |

WLK_COM_WLK_FAR__EA |
float64 matrix |

WLK_COM_WLK_WAUX__EA |
float64 matrix |

WLK_COM_WLK_IWAIT__EA |
float64 matrix |

WLK_COM_WLK_XWAIT__EA |
float64 matrix |

WLK_COM_WLK_BOARDS__EA |
float64 matrix |

WLK_EXP_DRV_WAIT__EA |
float64 matrix |

WLK_EXP_DRV_TOTIVT__EA |
float64 matrix |

WLK_EXP_DRV_KEYIVT__EA |
float64 matrix |

WLK_EXP_DRV_FAR__EA |
float64 matrix |

WLK_EXP_DRV_DTIM__EA |
float64 matrix |

WLK_EXP_DRV_DDIST__EA |
float64 matrix |

WLK_EXP_DRV_WAUX__EA |
float64 matrix |

WLK_EXP_DRV_IWAIT__EA |
float64 matrix |

WLK_EXP_DRV_XWAIT__EA |
float64 matrix |

WLK_EXP_DRV_BOARDS__EA |
float64 matrix |

WLK_EXP_WLK_WAIT__EA |
float64 matrix |

WLK_EXP_WLK_TOTIVT__EA |
float64 matrix |

WLK_EXP_WLK_KEYIVT__EA |
float64 matrix |

WLK_EXP_WLK_FAR__EA |
float64 matrix |

WLK_EXP_WLK_WAUX__EA |
float64 matrix |

WLK_EXP_WLK_IWAIT__EA |
float64 matrix |

WLK_EXP_WLK_XWAIT__EA |
float64 matrix |

WLK_EXP_WLK_BOARDS__EA |
float64 matrix |

WLK_HVY_DRV_WAIT__EA |
float64 matrix |

WLK_HVY_DRV_TOTIVT__EA |
float64 matrix |

WLK_HVY_DRV_KEYIVT__EA |
float64 matrix |

WLK_HVY_DRV_FAR__EA |
float64 matrix |

WLK_HVY_DRV_DTIM__EA |
float64 matrix |

WLK_HVY_DRV_DDIST__EA |
float64 matrix |

WLK_HVY_DRV_WAUX__EA |
float64 matrix |

WLK_HVY_DRV_IWAIT__EA |
float64 matrix |

WLK_HVY_DRV_XWAIT__EA |
float64 matrix |

WLK_HVY_DRV_BOARDS__EA |
float64 matrix |

WLK_HVY_WLK_WAIT__EA |
float64 matrix |

WLK_HVY_WLK_TOTIVT__EA |
float64 matrix |

WLK_HVY_WLK_KEYIVT__EA |
float64 matrix |

WLK_HVY_WLK_FAR__EA |
float64 matrix |

WLK_HVY_WLK_WAUX__EA |
float64 matrix |

WLK_HVY_WLK_IWAIT__EA |
float64 matrix |

WLK_HVY_WLK_XWAIT__EA |
float64 matrix |

WLK_HVY_WLK_BOARDS__EA |
float64 matrix |

WLK_LOC_DRV_WAIT__EA |
float64 matrix |

WLK_LOC_DRV_TOTIVT__EA |
float64 matrix |

WLK_LOC_DRV_FAR__EA |
float64 matrix |

WLK_LOC_DRV_DTIM__EA |
float64 matrix |

WLK_LOC_DRV_DDIST__EA |
float64 matrix |

WLK_LOC_DRV_WAUX__EA |
float64 matrix |

WLK_LOC_DRV_IWAIT__EA |
float64 matrix |

WLK_LOC_DRV_XWAIT__EA |
float64 matrix |

WLK_LOC_DRV_BOARDS__EA |
float64 matrix |

WLK_LOC_WLK_WAIT__EA |
float64 matrix |

WLK_LOC_WLK_TOTIVT__EA |
float64 matrix |

WLK_LOC_WLK_FAR__EA |
float64 matrix |

WLK_LOC_WLK_WAUX__EA |
float64 matrix |

WLK_LOC_WLK_IWAIT__EA |
float64 matrix |

WLK_LOC_WLK_XWAIT__EA |
float64 matrix |

WLK_LOC_WLK_BOARDS__EA |
float64 matrix |

WLK_LRF_DRV_WAIT__EA |
float64 matrix |

WLK_LRF_DRV_TOTIVT__EA |
float64 matrix |

WLK_LRF_DRV_KEYIVT__EA |
float64 matrix |

WLK_LRF_DRV_FERRYIVT__EA |
float64 matrix |

WLK_LRF_DRV_FAR__EA |
float64 matrix |

WLK_LRF_DRV_DTIM__EA |
float64 matrix |

WLK_LRF_DRV_DDIST__EA |
float64 matrix |

WLK_LRF_DRV_WAUX__EA |
float64 matrix |

WLK_LRF_DRV_IWAIT__EA |
float64 matrix |

WLK_LRF_DRV_XWAIT__EA |
float64 matrix |

WLK_LRF_DRV_BOARDS__EA |
float64 matrix |

WLK_LRF_WLK_WAIT__EA |
float64 matrix |

WLK_LRF_WLK_TOTIVT__EA |
float64 matrix |

WLK_LRF_WLK_KEYIVT__EA |
float64 matrix |

WLK_LRF_WLK_FERRYIVT__EA |
float64 matrix |

WLK_LRF_WLK_FAR__EA |
float64 matrix |

WLK_LRF_WLK_WAUX__EA |
float64 matrix |

WLK_LRF_WLK_IWAIT__EA |
float64 matrix |

WLK_LRF_WLK_XWAIT__EA |
float64 matrix |

WLK_LRF_WLK_BOARDS__EA |
float64 matrix |

DRV_COM_WLK_WAIT__EV |
float64 matrix |

DRV_COM_WLK_TOTIVT__EV |
float64 matrix |

DRV_COM_WLK_KEYIVT__EV |
float64 matrix |

DRV_COM_WLK_FAR__EV |
float64 matrix |

DRV_COM_WLK_DTIM__EV |
float64 matrix |

DRV_COM_WLK_DDIST__EV |
float64 matrix |

DRV_COM_WLK_WAUX__EV |
float64 matrix |

DRV_COM_WLK_IWAIT__EV |
float64 matrix |

DRV_COM_WLK_XWAIT__EV |
float64 matrix |

DRV_COM_WLK_BOARDS__EV |
float64 matrix |

DRV_EXP_WLK_WAIT__EV |
float64 matrix |

DRV_EXP_WLK_TOTIVT__EV |
float64 matrix |

DRV_EXP_WLK_KEYIVT__EV |
float64 matrix |

DRV_EXP_WLK_FAR__EV |
float64 matrix |

DRV_EXP_WLK_DTIM__EV |
float64 matrix |

DRV_EXP_WLK_WAUX__EV |
float64 matrix |

DRV_EXP_WLK_IWAIT__EV |
float64 matrix |

DRV_EXP_WLK_XWAIT__EV |
float64 matrix |

DRV_EXP_WLK_BOARDS__EV |
float64 matrix |

DRV_EXP_WLK_DDIST__EV |
float64 matrix |

DRV_HVY_WLK_WAIT__EV |
float64 matrix |

DRV_HVY_WLK_TOTIVT__EV |
float64 matrix |

DRV_HVY_WLK_KEYIVT__EV |
float64 matrix |

DRV_HVY_WLK_FAR__EV |
float64 matrix |

DRV_HVY_WLK_DTIM__EV |
float64 matrix |

DRV_HVY_WLK_DDIST__EV |
float64 matrix |

DRV_HVY_WLK_WAUX__EV |
float64 matrix |

DRV_HVY_WLK_IWAIT__EV |
float64 matrix |

DRV_HVY_WLK_XWAIT__EV |
float64 matrix |

DRV_HVY_WLK_BOARDS__EV |
float64 matrix |

DRV_LOC_WLK_WAIT__EV |
float64 matrix |

DRV_LOC_WLK_TOTIVT__EV |
float64 matrix |

DRV_LOC_WLK_FAR__EV |
float64 matrix |

DRV_LOC_WLK_DTIM__EV |
float64 matrix |

DRV_LOC_WLK_DDIST__EV |
float64 matrix |

DRV_LOC_WLK_WAUX__EV |
float64 matrix |

DRV_LOC_WLK_IWAIT__EV |
float64 matrix |

DRV_LOC_WLK_XWAIT__EV |
float64 matrix |

DRV_LOC_WLK_BOARDS__EV |
float64 matrix |

DRV_LRF_WLK_WAIT__EV |
float64 matrix |

DRV_LRF_WLK_TOTIVT__EV |
float64 matrix |

DRV_LRF_WLK_KEYIVT__EV |
float64 matrix |

DRV_LRF_WLK_FERRYIVT__EV |
float64 matrix |

DRV_LRF_WLK_FAR__EV |
float64 matrix |

DRV_LRF_WLK_DTIM__EV |
float64 matrix |

DRV_LRF_WLK_DDIST__EV |
float64 matrix |

DRV_LRF_WLK_WAUX__EV |
float64 matrix |

DRV_LRF_WLK_IWAIT__EV |
float64 matrix |

DRV_LRF_WLK_XWAIT__EV |
float64 matrix |

DRV_LRF_WLK_BOARDS__EV |
float64 matrix |

WLK_COM_DRV_WAIT__EV |
float64 matrix |

WLK_COM_DRV_TOTIVT__EV |
float64 matrix |

WLK_COM_DRV_KEYIVT__EV |
float64 matrix |

WLK_COM_DRV_FAR__EV |
float64 matrix |

WLK_COM_DRV_DTIM__EV |
float64 matrix |

WLK_COM_DRV_DDIST__EV |
float64 matrix |

WLK_COM_DRV_WAUX__EV |
float64 matrix |

WLK_COM_DRV_IWAIT__EV |
float64 matrix |

WLK_COM_DRV_XWAIT__EV |
float64 matrix |

WLK_COM_DRV_BOARDS__EV |
float64 matrix |

WLK_COM_WLK_WAIT__EV |
float64 matrix |

WLK_COM_WLK_TOTIVT__EV |
float64 matrix |

WLK_COM_WLK_KEYIVT__EV |
float64 matrix |

WLK_COM_WLK_FAR__EV |
float64 matrix |

WLK_COM_WLK_WAUX__EV |
float64 matrix |

WLK_COM_WLK_IWAIT__EV |
float64 matrix |

WLK_COM_WLK_XWAIT__EV |
float64 matrix |

WLK_COM_WLK_BOARDS__EV |
float64 matrix |

WLK_EXP_DRV_WAIT__EV |
float64 matrix |

WLK_EXP_DRV_TOTIVT__EV |
float64 matrix |

WLK_EXP_DRV_KEYIVT__EV |
float64 matrix |

WLK_EXP_DRV_FAR__EV |
float64 matrix |

WLK_EXP_DRV_DTIM__EV |
float64 matrix |

WLK_EXP_DRV_WAUX__EV |
float64 matrix |

WLK_EXP_DRV_IWAIT__EV |
float64 matrix |

WLK_EXP_DRV_XWAIT__EV |
float64 matrix |

WLK_EXP_DRV_BOARDS__EV |
float64 matrix |

WLK_EXP_DRV_DDIST__EV |
float64 matrix |

WLK_EXP_WLK_WAIT__EV |
float64 matrix |

WLK_EXP_WLK_TOTIVT__EV |
float64 matrix |

WLK_EXP_WLK_KEYIVT__EV |
float64 matrix |

WLK_EXP_WLK_FAR__EV |
float64 matrix |

WLK_EXP_WLK_WAUX__EV |
float64 matrix |

WLK_EXP_WLK_IWAIT__EV |
float64 matrix |

WLK_EXP_WLK_XWAIT__EV |
float64 matrix |

WLK_EXP_WLK_BOARDS__EV |
float64 matrix |

WLK_HVY_DRV_WAIT__EV |
float64 matrix |

WLK_HVY_DRV_TOTIVT__EV |
float64 matrix |

WLK_HVY_DRV_KEYIVT__EV |
float64 matrix |

WLK_HVY_DRV_FAR__EV |
float64 matrix |

WLK_HVY_DRV_DTIM__EV |
float64 matrix |

WLK_HVY_DRV_DDIST__EV |
float64 matrix |

WLK_HVY_DRV_WAUX__EV |
float64 matrix |

WLK_HVY_DRV_IWAIT__EV |
float64 matrix |

WLK_HVY_DRV_XWAIT__EV |
float64 matrix |

WLK_HVY_DRV_BOARDS__EV |
float64 matrix |

WLK_HVY_WLK_WAIT__EV |
float64 matrix |

WLK_HVY_WLK_TOTIVT__EV |
float64 matrix |

WLK_HVY_WLK_KEYIVT__EV |
float64 matrix |

WLK_HVY_WLK_FAR__EV |
float64 matrix |

WLK_HVY_WLK_WAUX__EV |
float64 matrix |

WLK_HVY_WLK_IWAIT__EV |
float64 matrix |

WLK_HVY_WLK_XWAIT__EV |
float64 matrix |

WLK_HVY_WLK_BOARDS__EV |
float64 matrix |

WLK_LOC_DRV_WAIT__EV |
float64 matrix |

WLK_LOC_DRV_TOTIVT__EV |
float64 matrix |

WLK_LOC_DRV_FAR__EV |
float64 matrix |

WLK_LOC_DRV_DTIM__EV |
float64 matrix |

WLK_LOC_DRV_DDIST__EV |
float64 matrix |

WLK_LOC_DRV_WAUX__EV |
float64 matrix |

WLK_LOC_DRV_IWAIT__EV |
float64 matrix |

WLK_LOC_DRV_XWAIT__EV |
float64 matrix |

WLK_LOC_DRV_BOARDS__EV |
float64 matrix |

WLK_LOC_WLK_WAIT__EV |
float64 matrix |

WLK_LOC_WLK_TOTIVT__EV |
float64 matrix |

WLK_LOC_WLK_FAR__EV |
float64 matrix |

WLK_LOC_WLK_WAUX__EV |
float64 matrix |

WLK_LOC_WLK_IWAIT__EV |
float64 matrix |

WLK_LOC_WLK_XWAIT__EV |
float64 matrix |

WLK_LOC_WLK_BOARDS__EV |
float64 matrix |

WLK_LRF_DRV_WAIT__EV |
float64 matrix |

WLK_LRF_DRV_TOTIVT__EV |
float64 matrix |

WLK_LRF_DRV_KEYIVT__EV |
float64 matrix |

WLK_LRF_DRV_FERRYIVT__EV |
float64 matrix |

WLK_LRF_DRV_FAR__EV |
float64 matrix |

WLK_LRF_DRV_DTIM__EV |
float64 matrix |

WLK_LRF_DRV_DDIST__EV |
float64 matrix |

WLK_LRF_DRV_WAUX__EV |
float64 matrix |

WLK_LRF_DRV_IWAIT__EV |
float64 matrix |

WLK_LRF_DRV_XWAIT__EV |
float64 matrix |

WLK_LRF_DRV_BOARDS__EV |
float64 matrix |

WLK_LRF_WLK_WAIT__EV |
float64 matrix |

WLK_LRF_WLK_TOTIVT__EV |
float64 matrix |

WLK_LRF_WLK_KEYIVT__EV |
float64 matrix |

WLK_LRF_WLK_FERRYIVT__EV |
float64 matrix |

WLK_LRF_WLK_FAR__EV |
float64 matrix |

WLK_LRF_WLK_WAUX__EV |
float64 matrix |

WLK_LRF_WLK_IWAIT__EV |
float64 matrix |

WLK_LRF_WLK_XWAIT__EV |
float64 matrix |

WLK_LRF_WLK_BOARDS__EV |
float64 matrix |

DRV_COM_WLK_WAIT__MD |
float64 matrix |

DRV_COM_WLK_TOTIVT__MD |
float64 matrix |

DRV_COM_WLK_KEYIVT__MD |
float64 matrix |

DRV_COM_WLK_FAR__MD |
float64 matrix |

DRV_COM_WLK_DTIM__MD |
float64 matrix |

DRV_COM_WLK_DDIST__MD |
float64 matrix |

DRV_COM_WLK_WAUX__MD |
float64 matrix |

DRV_COM_WLK_IWAIT__MD |
float64 matrix |

DRV_COM_WLK_XWAIT__MD |
float64 matrix |

DRV_COM_WLK_BOARDS__MD |
float64 matrix |

DRV_EXP_WLK_WAIT__MD |
float64 matrix |

DRV_EXP_WLK_TOTIVT__MD |
float64 matrix |

DRV_EXP_WLK_KEYIVT__MD |
float64 matrix |

DRV_EXP_WLK_FAR__MD |
float64 matrix |

DRV_EXP_WLK_DTIM__MD |
float64 matrix |

DRV_EXP_WLK_WAUX__MD |
float64 matrix |

DRV_EXP_WLK_IWAIT__MD |
float64 matrix |

DRV_EXP_WLK_XWAIT__MD |
float64 matrix |

DRV_EXP_WLK_BOARDS__MD |
float64 matrix |

DRV_EXP_WLK_DDIST__MD |
float64 matrix |

DRV_HVY_WLK_WAIT__MD |
float64 matrix |

DRV_HVY_WLK_TOTIVT__MD |
float64 matrix |

DRV_HVY_WLK_KEYIVT__MD |
float64 matrix |

DRV_HVY_WLK_FAR__MD |
float64 matrix |

DRV_HVY_WLK_DTIM__MD |
float64 matrix |

DRV_HVY_WLK_DDIST__MD |
float64 matrix |

DRV_HVY_WLK_WAUX__MD |
float64 matrix |

DRV_HVY_WLK_IWAIT__MD |
float64 matrix |

DRV_HVY_WLK_XWAIT__MD |
float64 matrix |

DRV_HVY_WLK_BOARDS__MD |
float64 matrix |

DRV_LOC_WLK_WAIT__MD |
float64 matrix |

DRV_LOC_WLK_TOTIVT__MD |
float64 matrix |

DRV_LOC_WLK_FAR__MD |
float64 matrix |

DRV_LOC_WLK_DTIM__MD |
float64 matrix |

DRV_LOC_WLK_DDIST__MD |
float64 matrix |

DRV_LOC_WLK_WAUX__MD |
float64 matrix |

DRV_LOC_WLK_IWAIT__MD |
float64 matrix |

DRV_LOC_WLK_XWAIT__MD |
float64 matrix |

DRV_LOC_WLK_BOARDS__MD |
float64 matrix |

DRV_LRF_WLK_WAIT__MD |
float64 matrix |

DRV_LRF_WLK_TOTIVT__MD |
float64 matrix |

DRV_LRF_WLK_KEYIVT__MD |
float64 matrix |

DRV_LRF_WLK_FERRYIVT__MD |
float64 matrix |

DRV_LRF_WLK_FAR__MD |
float64 matrix |

DRV_LRF_WLK_DTIM__MD |
float64 matrix |

DRV_LRF_WLK_DDIST__MD |
float64 matrix |

DRV_LRF_WLK_WAUX__MD |
float64 matrix |

DRV_LRF_WLK_IWAIT__MD |
float64 matrix |

DRV_LRF_WLK_XWAIT__MD |
float64 matrix |

DRV_LRF_WLK_BOARDS__MD |
float64 matrix |

WLK_COM_DRV_WAIT__MD |
float64 matrix |

WLK_COM_DRV_TOTIVT__MD |
float64 matrix |

WLK_COM_DRV_KEYIVT__MD |
float64 matrix |

WLK_COM_DRV_FAR__MD |
float64 matrix |

WLK_COM_DRV_DTIM__MD |
float64 matrix |

WLK_COM_DRV_DDIST__MD |
float64 matrix |

WLK_COM_DRV_WAUX__MD |
float64 matrix |

WLK_COM_DRV_IWAIT__MD |
float64 matrix |

WLK_COM_DRV_XWAIT__MD |
float64 matrix |

WLK_COM_DRV_BOARDS__MD |
float64 matrix |

WLK_COM_WLK_WAIT__MD |
float64 matrix |

WLK_COM_WLK_TOTIVT__MD |
float64 matrix |

WLK_COM_WLK_KEYIVT__MD |
float64 matrix |

WLK_COM_WLK_FAR__MD |
float64 matrix |

WLK_COM_WLK_WAUX__MD |
float64 matrix |

WLK_COM_WLK_IWAIT__MD |
float64 matrix |

WLK_COM_WLK_XWAIT__MD |
float64 matrix |

WLK_COM_WLK_BOARDS__MD |
float64 matrix |

WLK_EXP_DRV_WAIT__MD |
float64 matrix |

WLK_EXP_DRV_TOTIVT__MD |
float64 matrix |

WLK_EXP_DRV_KEYIVT__MD |
float64 matrix |

WLK_EXP_DRV_FAR__MD |
float64 matrix |

WLK_EXP_DRV_DTIM__MD |
float64 matrix |

WLK_EXP_DRV_WAUX__MD |
float64 matrix |

WLK_EXP_DRV_IWAIT__MD |
float64 matrix |

WLK_EXP_DRV_XWAIT__MD |
float64 matrix |

WLK_EXP_DRV_BOARDS__MD |
float64 matrix |

WLK_EXP_DRV_DDIST__MD |
float64 matrix |

WLK_EXP_WLK_WAIT__MD |
float64 matrix |

WLK_EXP_WLK_TOTIVT__MD |
float64 matrix |

WLK_EXP_WLK_KEYIVT__MD |
float64 matrix |

WLK_EXP_WLK_FAR__MD |
float64 matrix |

WLK_EXP_WLK_WAUX__MD |
float64 matrix |

WLK_EXP_WLK_IWAIT__MD |
float64 matrix |

WLK_EXP_WLK_XWAIT__MD |
float64 matrix |

WLK_EXP_WLK_BOARDS__MD |
float64 matrix |

WLK_HVY_DRV_WAIT__MD |
float64 matrix |

WLK_HVY_DRV_TOTIVT__MD |
float64 matrix |

WLK_HVY_DRV_KEYIVT__MD |
float64 matrix |

WLK_HVY_DRV_FAR__MD |
float64 matrix |

WLK_HVY_DRV_DTIM__MD |
float64 matrix |

WLK_HVY_DRV_DDIST__MD |
float64 matrix |

WLK_HVY_DRV_WAUX__MD |
float64 matrix |

WLK_HVY_DRV_IWAIT__MD |
float64 matrix |

WLK_HVY_DRV_XWAIT__MD |
float64 matrix |

WLK_HVY_DRV_BOARDS__MD |
float64 matrix |

WLK_HVY_WLK_WAIT__MD |
float64 matrix |

WLK_HVY_WLK_TOTIVT__MD |
float64 matrix |

WLK_HVY_WLK_KEYIVT__MD |
float64 matrix |

WLK_HVY_WLK_FAR__MD |
float64 matrix |

WLK_HVY_WLK_WAUX__MD |
float64 matrix |

WLK_HVY_WLK_IWAIT__MD |
float64 matrix |

WLK_HVY_WLK_XWAIT__MD |
float64 matrix |

WLK_HVY_WLK_BOARDS__MD |
float64 matrix |

WLK_LOC_DRV_WAIT__MD |
float64 matrix |

WLK_LOC_DRV_TOTIVT__MD |
float64 matrix |

WLK_LOC_DRV_FAR__MD |
float64 matrix |

WLK_LOC_DRV_DTIM__MD |
float64 matrix |

WLK_LOC_DRV_DDIST__MD |
float64 matrix |

WLK_LOC_DRV_WAUX__MD |
float64 matrix |

WLK_LOC_DRV_IWAIT__MD |
float64 matrix |

WLK_LOC_DRV_XWAIT__MD |
float64 matrix |

WLK_LOC_DRV_BOARDS__MD |
float64 matrix |

WLK_LOC_WLK_WAIT__MD |
float64 matrix |

WLK_LOC_WLK_TOTIVT__MD |
float64 matrix |

WLK_LOC_WLK_FAR__MD |
float64 matrix |

WLK_LOC_WLK_WAUX__MD |
float64 matrix |

WLK_LOC_WLK_IWAIT__MD |
float64 matrix |

WLK_LOC_WLK_XWAIT__MD |
float64 matrix |

WLK_LOC_WLK_BOARDS__MD |
float64 matrix |

WLK_LRF_DRV_WAIT__MD |
float64 matrix |

WLK_LRF_DRV_TOTIVT__MD |
float64 matrix |

WLK_LRF_DRV_KEYIVT__MD |
float64 matrix |

WLK_LRF_DRV_FERRYIVT__MD |
float64 matrix |

WLK_LRF_DRV_FAR__MD |
float64 matrix |

WLK_LRF_DRV_DTIM__MD |
float64 matrix |

WLK_LRF_DRV_DDIST__MD |
float64 matrix |

WLK_LRF_DRV_WAUX__MD |
float64 matrix |

WLK_LRF_DRV_IWAIT__MD |
float64 matrix |

WLK_LRF_DRV_XWAIT__MD |
float64 matrix |

WLK_LRF_DRV_BOARDS__MD |
float64 matrix |

WLK_LRF_WLK_WAIT__MD |
float64 matrix |

WLK_LRF_WLK_TOTIVT__MD |
float64 matrix |

WLK_LRF_WLK_KEYIVT__MD |
float64 matrix |

WLK_LRF_WLK_FERRYIVT__MD |
float64 matrix |

WLK_LRF_WLK_FAR__MD |
float64 matrix |

WLK_LRF_WLK_WAUX__MD |
float64 matrix |

WLK_LRF_WLK_IWAIT__MD |
float64 matrix |

WLK_LRF_WLK_XWAIT__MD |
float64 matrix |

WLK_LRF_WLK_BOARDS__MD |
float64 matrix |

DRV_COM_WLK_WAIT__PM |
float64 matrix |

DRV_COM_WLK_TOTIVT__PM |
float64 matrix |

DRV_COM_WLK_KEYIVT__PM |
float64 matrix |

DRV_COM_WLK_FAR__PM |
float64 matrix |

DRV_COM_WLK_DTIM__PM |
float64 matrix |

DRV_COM_WLK_DDIST__PM |
float64 matrix |

DRV_COM_WLK_WAUX__PM |
float64 matrix |

DRV_COM_WLK_IWAIT__PM |
float64 matrix |

DRV_COM_WLK_XWAIT__PM |
float64 matrix |

DRV_COM_WLK_BOARDS__PM |
float64 matrix |

DRV_EXP_WLK_WAIT__PM |
float64 matrix |

DRV_EXP_WLK_TOTIVT__PM |
float64 matrix |

DRV_EXP_WLK_KEYIVT__PM |
float64 matrix |

DRV_EXP_WLK_FAR__PM |
float64 matrix |

DRV_EXP_WLK_DTIM__PM |
float64 matrix |

DRV_EXP_WLK_WAUX__PM |
float64 matrix |

DRV_EXP_WLK_IWAIT__PM |
float64 matrix |

DRV_EXP_WLK_XWAIT__PM |
float64 matrix |

DRV_EXP_WLK_BOARDS__PM |
float64 matrix |

DRV_EXP_WLK_DDIST__PM |
float64 matrix |

DRV_HVY_WLK_WAIT__PM |
float64 matrix |

DRV_HVY_WLK_TOTIVT__PM |
float64 matrix |

DRV_HVY_WLK_KEYIVT__PM |
float64 matrix |

DRV_HVY_WLK_FAR__PM |
float64 matrix |

DRV_HVY_WLK_DTIM__PM |
float64 matrix |

DRV_HVY_WLK_DDIST__PM |
float64 matrix |

DRV_HVY_WLK_WAUX__PM |
float64 matrix |

DRV_HVY_WLK_IWAIT__PM |
float64 matrix |

DRV_HVY_WLK_XWAIT__PM |
float64 matrix |

DRV_HVY_WLK_BOARDS__PM |
float64 matrix |

DRV_LOC_WLK_WAIT__PM |
float64 matrix |

DRV_LOC_WLK_TOTIVT__PM |
float64 matrix |

DRV_LOC_WLK_FAR__PM |
float64 matrix |

DRV_LOC_WLK_DTIM__PM |
float64 matrix |

DRV_LOC_WLK_DDIST__PM |
float64 matrix |

DRV_LOC_WLK_WAUX__PM |
float64 matrix |

DRV_LOC_WLK_IWAIT__PM |
float64 matrix |

DRV_LOC_WLK_XWAIT__PM |
float64 matrix |

DRV_LOC_WLK_BOARDS__PM |
float64 matrix |

DRV_LRF_WLK_WAIT__PM |
float64 matrix |

DRV_LRF_WLK_TOTIVT__PM |
float64 matrix |

DRV_LRF_WLK_KEYIVT__PM |
float64 matrix |

DRV_LRF_WLK_FERRYIVT__PM |
float64 matrix |

DRV_LRF_WLK_FAR__PM |
float64 matrix |

DRV_LRF_WLK_DTIM__PM |
float64 matrix |

DRV_LRF_WLK_DDIST__PM |
float64 matrix |

DRV_LRF_WLK_WAUX__PM |
float64 matrix |

DRV_LRF_WLK_IWAIT__PM |
float64 matrix |

DRV_LRF_WLK_XWAIT__PM |
float64 matrix |

DRV_LRF_WLK_BOARDS__PM |
float64 matrix |

WLK_COM_DRV_WAIT__PM |
float64 matrix |

WLK_COM_DRV_TOTIVT__PM |
float64 matrix |

WLK_COM_DRV_KEYIVT__PM |
float64 matrix |

WLK_COM_DRV_FAR__PM |
float64 matrix |

WLK_COM_DRV_DTIM__PM |
float64 matrix |

WLK_COM_DRV_DDIST__PM |
float64 matrix |

WLK_COM_DRV_WAUX__PM |
float64 matrix |

WLK_COM_DRV_IWAIT__PM |
float64 matrix |

WLK_COM_DRV_XWAIT__PM |
float64 matrix |

WLK_COM_DRV_BOARDS__PM |
float64 matrix |

WLK_COM_WLK_WAIT__PM |
float64 matrix |

WLK_COM_WLK_TOTIVT__PM |
float64 matrix |

WLK_COM_WLK_KEYIVT__PM |
float64 matrix |

WLK_COM_WLK_FAR__PM |
float64 matrix |

WLK_COM_WLK_WAUX__PM |
float64 matrix |

WLK_COM_WLK_IWAIT__PM |
float64 matrix |

WLK_COM_WLK_XWAIT__PM |
float64 matrix |

WLK_COM_WLK_BOARDS__PM |
float64 matrix |

WLK_EXP_DRV_WAIT__PM |
float64 matrix |

WLK_EXP_DRV_TOTIVT__PM |
float64 matrix |

WLK_EXP_DRV_KEYIVT__PM |
float64 matrix |

WLK_EXP_DRV_FAR__PM |
float64 matrix |

WLK_EXP_DRV_DTIM__PM |
float64 matrix |

WLK_EXP_DRV_WAUX__PM |
float64 matrix |

WLK_EXP_DRV_IWAIT__PM |
float64 matrix |

WLK_EXP_DRV_XWAIT__PM |
float64 matrix |

WLK_EXP_DRV_BOARDS__PM |
float64 matrix |

WLK_EXP_DRV_DDIST__PM |
float64 matrix |

WLK_EXP_WLK_WAIT__PM |
float64 matrix |

WLK_EXP_WLK_TOTIVT__PM |
float64 matrix |

WLK_EXP_WLK_KEYIVT__PM |
float64 matrix |

WLK_EXP_WLK_FAR__PM |
float64 matrix |

WLK_EXP_WLK_WAUX__PM |
float64 matrix |

WLK_EXP_WLK_IWAIT__PM |
float64 matrix |

WLK_EXP_WLK_XWAIT__PM |
float64 matrix |

WLK_EXP_WLK_BOARDS__PM |
float64 matrix |

WLK_HVY_DRV_WAIT__PM |
float64 matrix |

WLK_HVY_DRV_TOTIVT__PM |
float64 matrix |

WLK_HVY_DRV_KEYIVT__PM |
float64 matrix |

WLK_HVY_DRV_FAR__PM |
float64 matrix |

WLK_HVY_DRV_DTIM__PM |
float64 matrix |

WLK_HVY_DRV_DDIST__PM |
float64 matrix |

WLK_HVY_DRV_WAUX__PM |
float64 matrix |

WLK_HVY_DRV_IWAIT__PM |
float64 matrix |

WLK_HVY_DRV_XWAIT__PM |
float64 matrix |

WLK_HVY_DRV_BOARDS__PM |
float64 matrix |

WLK_HVY_WLK_WAIT__PM |
float64 matrix |

WLK_HVY_WLK_TOTIVT__PM |
float64 matrix |

WLK_HVY_WLK_KEYIVT__PM |
float64 matrix |

WLK_HVY_WLK_FAR__PM |
float64 matrix |

WLK_HVY_WLK_WAUX__PM |
float64 matrix |

WLK_HVY_WLK_IWAIT__PM |
float64 matrix |

WLK_HVY_WLK_XWAIT__PM |
float64 matrix |

WLK_HVY_WLK_BOARDS__PM |
float64 matrix |

WLK_LOC_DRV_WAIT__PM |
float64 matrix |

WLK_LOC_DRV_TOTIVT__PM |
float64 matrix |

WLK_LOC_DRV_FAR__PM |
float64 matrix |

WLK_LOC_DRV_DTIM__PM |
float64 matrix |

WLK_LOC_DRV_DDIST__PM |
float64 matrix |

WLK_LOC_DRV_WAUX__PM |
float64 matrix |

WLK_LOC_DRV_IWAIT__PM |
float64 matrix |

WLK_LOC_DRV_XWAIT__PM |
float64 matrix |

WLK_LOC_DRV_BOARDS__PM |
float64 matrix |

WLK_LOC_WLK_WAIT__PM |
float64 matrix |

WLK_LOC_WLK_TOTIVT__PM |
float64 matrix |

WLK_LOC_WLK_FAR__PM |
float64 matrix |

WLK_LOC_WLK_WAUX__PM |
float64 matrix |

WLK_LOC_WLK_IWAIT__PM |
float64 matrix |

WLK_LOC_WLK_XWAIT__PM |
float64 matrix |

WLK_LOC_WLK_BOARDS__PM |
float64 matrix |

WLK_LRF_DRV_WAIT__PM |
float64 matrix |

WLK_LRF_DRV_TOTIVT__PM |
float64 matrix |

WLK_LRF_DRV_KEYIVT__PM |
float64 matrix |

WLK_LRF_DRV_FERRYIVT__PM |
float64 matrix |

WLK_LRF_DRV_FAR__PM |
float64 matrix |

WLK_LRF_DRV_DTIM__PM |
float64 matrix |

WLK_LRF_DRV_DDIST__PM |
float64 matrix |

WLK_LRF_DRV_WAUX__PM |
float64 matrix |

WLK_LRF_DRV_IWAIT__PM |
float64 matrix |

WLK_LRF_DRV_XWAIT__PM |
float64 matrix |

WLK_LRF_DRV_BOARDS__PM |
float64 matrix |

WLK_LRF_WLK_WAIT__PM |
float64 matrix |

WLK_LRF_WLK_TOTIVT__PM |
float64 matrix |

WLK_LRF_WLK_KEYIVT__PM |
float64 matrix |

WLK_LRF_WLK_FERRYIVT__PM |
float64 matrix |

WLK_LRF_WLK_FAR__PM |
float64 matrix |

WLK_LRF_WLK_WAUX__PM |
float64 matrix |

WLK_LRF_WLK_IWAIT__PM |
float64 matrix |

WLK_LRF_WLK_XWAIT__PM |
float64 matrix |

WLK_LRF_WLK_BOARDS__PM |
float64 matrix |

WLK_TRN_WLK_IVT__AM |
float64 matrix |

WLK_TRN_WLK_IWAIT__AM |
float64 matrix |

WLK_TRN_WLK_XWAIT__AM |
float64 matrix |

WLK_TRN_WLK_WACC__AM |
float64 matrix |

WLK_TRN_WLK_WAUX__AM |
float64 matrix |

WLK_TRN_WLK_WEGR__AM |
float64 matrix |

WLK_TRN_WLK_IVT__MD |
float64 matrix |

WLK_TRN_WLK_IWAIT__MD |
float64 matrix |

WLK_TRN_WLK_XWAIT__MD |
float64 matrix |

WLK_TRN_WLK_WACC__MD |
float64 matrix |

WLK_TRN_WLK_WAUX__MD |
float64 matrix |

WLK_TRN_WLK_WEGR__MD |
float64 matrix |

WLK_TRN_WLK_IVT__PM |
float64 matrix |

WLK_TRN_WLK_IWAIT__PM |
float64 matrix |

WLK_TRN_WLK_XWAIT__PM |
float64 matrix |

WLK_TRN_WLK_WACC__PM |
float64 matrix |

WLK_TRN_WLK_WAUX__PM |
float64 matrix |

WLK_TRN_WLK_WEGR__PM |
float64 matrix |