2020-12-08 03:12:19 +01:00
<!doctype html>
< html lang = "en" class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
2020-12-20 19:59:17 +01:00
< link rel = "search" type = "application/opensearchdescription+xml" href = "../../search.xml" title = "RAPIDS Search" >
2020-12-08 03:12:19 +01:00
< link rel = "shortcut icon" href = "../../assets/images/favicon.png" >
2020-12-20 19:59:17 +01:00
< meta name = "generator" content = "mkdocs-1.1.2, mkdocs-material-6.1.7+insiders-1.13.1" >
2020-12-08 03:12:19 +01:00
< title > Phone Data Yield - RAPIDS< / title >
2020-12-20 19:59:17 +01:00
< link rel = "stylesheet" href = "../../assets/stylesheets/main.9526ea36.min.css" >
2020-12-08 03:12:19 +01:00
2020-12-20 19:59:17 +01:00
< link rel = "stylesheet" href = "../../assets/stylesheets/palette.47d7edde.min.css" >
2020-12-08 03:12:19 +01:00
2020-12-20 19:59:17 +01:00
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin >
2020-12-08 03:12:19 +01:00
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback" >
< style > body , input { font-family : "Roboto" , - apple-system , BlinkMacSystemFont , Helvetica , Arial , sans-serif } code , kbd , pre { font-family : "Roboto Mono" , SFMono-Regular , Consolas , Menlo , monospace } < / style >
< link rel = "stylesheet" href = "../../stylesheets/extra.css" >
< / head >
< body dir = "ltr" data-md-color-scheme = "default" data-md-color-primary = "blue" data-md-color-accent = "blue" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< script > var palette = JSON . parse ( localStorage . getItem ( "__palette" ) || "{}" ) ; if ( void 0 !== palette . color ) for ( var key in palette . color ) document . body . setAttribute ( "data-md-color-" + key , palette . color [ key ] ) < / script >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "__drawer" autocomplete = "off" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "__search" autocomplete = "off" >
< label class = "md-overlay" for = "__drawer" > < / label >
< div data-md-component = "skip" >
< a href = "#phone-data-yield" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< header class = "md-header" data-md-component = "header" >
< nav class = "md-header-nav md-grid" aria-label = "Header" >
< a href = "../.." title = "RAPIDS" class = "md-header-nav__button md-logo" aria-label = "RAPIDS" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z" / > < / svg >
< / a >
< label class = "md-header-nav__button md-icon" for = "__drawer" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z" / > < / svg >
< / label >
< div class = "md-header-nav__title" data-md-component = "header-title" >
< div class = "md-header-nav__ellipsis" >
< div class = "md-header-nav__topic" >
< span class = "md-ellipsis" >
RAPIDS
< / span >
< / div >
< div class = "md-header-nav__topic" data-md-component = "header-topic" >
< span class = "md-ellipsis" >
Phone Data Yield
< / span >
< / div >
< / div >
< / div >
< div class = "md-header-nav__options" >
< button class = "md-header-nav__button md-icon" title = "Switch to light mode" aria-label = "Switch to light mode" data-md-option = "palette" data-md-color-scheme = "default" data-md-color-primary = "blue" data-md-color-accent = "blue" data-md-state = "hidden" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M17 7H7a5 5 0 00-5 5 5 5 0 005 5h10a5 5 0 005-5 5 5 0 00-5-5m0 8a3 3 0 01-3-3 3 3 0 013-3 3 3 0 013 3 3 3 0 01-3 3z" / > < / svg >
< / button >
< button class = "md-header-nav__button md-icon" title = "Switch to dark mode" aria-label = "Switch to dark mode" data-md-option = "palette" data-md-color-scheme = "slate" data-md-color-primary = "blue" data-md-color-accent = "blue" data-md-state = "hidden" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M7 10a2 2 0 012 2 2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2m10-3a5 5 0 015 5 5 5 0 01-5 5H7a5 5 0 01-5-5 5 5 0 015-5h10M7 9a3 3 0 00-3 3 3 3 0 003 3h10a3 3 0 003-3 3 3 0 00-3-3H7z" / > < / svg >
< / button >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< / div >
< label class = "md-header-nav__button md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z" / > < / svg >
< / label >
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "__search" > < / label >
< div class = "md-search__inner" role = "search" >
< form class = "md-search__form" name = "search" >
2020-12-20 19:59:17 +01:00
< input type = "text" class = "md-search__input" name = "query" aria-label = "Search" placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "search-query" data-md-state = "active" required >
2020-12-08 03:12:19 +01:00
< label class = "md-search__icon md-icon" for = "__search" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z" / > < / svg >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z" / > < / svg >
< / label >
< button type = "reset" class = "md-search__icon md-icon" aria-label = "Clear" data-md-component = "search-reset" tabindex = "-1" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" / > < / svg >
< / button >
< div class = "md-search__suggest" data-md-component = "search-suggest" > < / div >
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" data-md-scrollfix >
< div class = "md-search-result" data-md-component = "search-result" >
< div class = "md-search-result__meta" >
Initializing search
< / div >
< ol class = "md-search-result__list" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "md-header-nav__source" >
< a href = "https://github.com/carissalow/rapids/" title = "Go to repository" class = "md-source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > < path d = "M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
carissalow/rapids
< / div >
< / a >
< / div >
< / nav >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< / header >
< div class = "md-container" data-md-component = "container" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< main class = "md-main" data-md-component = "main" >
< div class = "md-main__inner md-grid" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< nav class = "md-nav md-nav--primary" aria-label = "Navigation" data-md-level = "0" >
< label class = "md-nav__title" for = "__drawer" >
< a href = "../.." title = "RAPIDS" class = "md-nav__button md-logo" aria-label = "RAPIDS" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M19 18.31V20a2 2 0 01-2 2H7a2 2 0 01-2-2v-3.7c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V12.3c-.46-.18-1.05-.3-2-.3a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V8.3C4.54 8.12 3.95 8 3 8a1 1 0 01-1-1 1 1 0 011-1c.82 0 1.47.08 2 .21V4a2 2 0 012-2h10a2 2 0 012 2v2.16c1.78.31 2.54.97 2.71 1.13.39.39.39 1.03 0 1.42-.39.39-.91.38-1.42 0 0 0-1.04-.71-3.29-.71-1.26 0-2.09.41-3.05.9-1.04.51-2.21 1.1-3.95 1.1-.36 0-.69 0-1-.04V7.95c.3.05.63.05 1 .05 1.26 0 2.09-.41 3.05-.89C14.09 6.59 15.27 6 17 6V4H7v16h10v-2c1.5 0 1.97.29 2 .31M17 10c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 11.08 20.25 10 17 10m0 4c-1.73 0-2.91.59-3.95 1.11-.96.48-1.79.89-3.05.89-.37 0-.7 0-1-.05v2.01c.31.04.64.04 1 .04 1.74 0 2.91-.59 3.95-1.1.96-.48 1.79-.9 3.05-.9 2.25 0 3.29.71 3.29.71.51.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.42C21.5 15.08 20.25 14 17 14z" / > < / svg >
< / a >
RAPIDS
< / label >
< div class = "md-nav__source" >
< a href = "https://github.com/carissalow/rapids/" title = "Go to repository" class = "md-source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 448 512" > < path d = "M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z" / > < / svg >
< / div >
< div class = "md-source__repository" >
carissalow/rapids
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../.." class = "md-nav__link" >
Home
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-2" type = "checkbox" id = "nav-2" >
< label class = "md-nav__link" for = "nav-2" >
Setup
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Setup" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-2" >
< span class = "md-nav__icon md-icon" > < / span >
Setup
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../file-structure/" class = "md-nav__link" >
File Structure
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/installation/" class = "md-nav__link" >
Installation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/configuration/" class = "md-nav__link" >
Configuration
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../setup/execution/" class = "md-nav__link" >
Execution
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-3" type = "checkbox" id = "nav-3" >
< label class = "md-nav__link" for = "nav-3" >
Example Workflows
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Example Workflows" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-3" >
< span class = "md-nav__icon md-icon" > < / span >
Example Workflows
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../workflow-examples/minimal/" class = "md-nav__link" >
Minimal
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../workflow-examples/analysis/" class = "md-nav__link" >
Analysis
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4" type = "checkbox" id = "nav-4" checked >
< label class = "md-nav__link" for = "nav-4" >
Behavioral Features
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Behavioral Features" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-4" >
< span class = "md-nav__icon md-icon" > < / span >
Behavioral Features
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../feature-introduction/" class = "md-nav__link" >
Introduction
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4-2" type = "checkbox" id = "nav-4-2" checked >
< label class = "md-nav__link" for = "nav-4-2" >
Phone
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Phone" data-md-level = "2" >
< label class = "md-nav__title" for = "nav-4-2" >
< span class = "md-nav__icon md-icon" > < / span >
Phone
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-accelerometer/" class = "md-nav__link" >
Phone Accelerometer
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-activity-recognition/" class = "md-nav__link" >
Phone Activity Recognition
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2021-01-14 20:38:07 +01:00
< li class = "md-nav__item" >
< a href = "../phone-applications-crashes/" class = "md-nav__link" >
Phone Applications Crashes
< / a >
< / li >
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-applications-foreground/" class = "md-nav__link" >
Phone Applications Foreground
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2021-01-14 20:38:07 +01:00
< li class = "md-nav__item" >
< a href = "../phone-applications-notifications/" class = "md-nav__link" >
Phone Applications Notifications
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../phone-aware-log/" class = "md-nav__link" >
Phone Aware Log
< / a >
< / li >
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-battery/" class = "md-nav__link" >
Phone Battery
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-bluetooth/" class = "md-nav__link" >
Phone Bluetooth
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-calls/" class = "md-nav__link" >
Phone Calls
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-conversation/" class = "md-nav__link" >
Phone Conversation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "toc" type = "checkbox" id = "__toc" >
< label class = "md-nav__link md-nav__link--active" for = "__toc" >
Phone Data Yield
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< a href = "./" class = "md-nav__link md-nav__link--active" >
Phone Data Yield
< / a >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#rapids-provider" class = "md-nav__link" >
RAPIDS provider
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2021-01-14 20:38:07 +01:00
< li class = "md-nav__item" >
< a href = "../phone-keyboard/" class = "md-nav__link" >
Phone Keyboard
< / a >
< / li >
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-light/" class = "md-nav__link" >
Phone Light
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-locations/" class = "md-nav__link" >
Phone Locations
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-messages/" class = "md-nav__link" >
Phone Messages
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-screen/" class = "md-nav__link" >
Phone Screen
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-wifi-connected/" class = "md-nav__link" >
Phone WiFI Connected
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../phone-wifi-visible/" class = "md-nav__link" >
Phone WiFI Visible
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-4-3" type = "checkbox" id = "nav-4-3" >
< label class = "md-nav__link" for = "nav-4-3" >
Fitbit
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Fitbit" data-md-level = "2" >
< label class = "md-nav__title" for = "nav-4-3" >
< span class = "md-nav__icon md-icon" > < / span >
Fitbit
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2021-02-03 00:52:33 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-data-yield/" class = "md-nav__link" >
Fitbit Data Yield
< / a >
< / li >
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-heartrate-summary/" class = "md-nav__link" >
Fitbit Heart Rate Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-heartrate-intraday/" class = "md-nav__link" >
Fitbit Heart Rate Intraday
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-sleep-summary/" class = "md-nav__link" >
Fitbit Sleep Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-steps-summary/" class = "md-nav__link" >
Fitbit Steps Summary
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../fitbit-steps-intraday/" class = "md-nav__link" >
Fitbit Steps Intraday
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../add-new-features/" class = "md-nav__link" >
Add New Features
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-5" type = "checkbox" id = "nav-5" >
< label class = "md-nav__link" for = "nav-5" >
Visualizations
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Visualizations" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-5" >
< span class = "md-nav__icon md-icon" > < / span >
Visualizations
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../visualizations/data-quality-visualizations/" class = "md-nav__link" >
Data Quality
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../visualizations/feature-visualizations/" class = "md-nav__link" >
Features
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-6" type = "checkbox" id = "nav-6" >
< label class = "md-nav__link" for = "nav-6" >
Developers
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Developers" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-6" >
< span class = "md-nav__icon md-icon" > < / span >
Developers
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/git-flow/" class = "md-nav__link" >
Git Flow
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/remote-support/" class = "md-nav__link" >
Remote Support
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/virtual-environments/" class = "md-nav__link" >
Virtual Environments
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/documentation/" class = "md-nav__link" >
Documentation
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/testing/" class = "md-nav__link" >
Testing
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../developers/test-cases/" class = "md-nav__link" >
Test cases
< / a >
< / li >
< / ul >
< / nav >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle" data-md-toggle = "nav-7" type = "checkbox" id = "nav-7" >
< label class = "md-nav__link" for = "nav-7" >
Others
< span class = "md-nav__icon md-icon" > < / span >
< / label >
< nav class = "md-nav" aria-label = "Others" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-7" >
< span class = "md-nav__icon md-icon" > < / span >
Others
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../migrating-from-old-versions/" class = "md-nav__link" >
Migrating from beta
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../code_of_conduct/" class = "md-nav__link" >
Code of Conduct
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../faq/" class = "md-nav__link" >
FAQ
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../team/" class = "md-nav__link" >
Team
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../change-log/" class = "md-nav__link" >
Change Log
< / a >
< / li >
2020-12-20 19:59:17 +01:00
2020-12-08 03:12:19 +01:00
< li class = "md-nav__item" >
< a href = "../../citation/" class = "md-nav__link" >
Citation
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of contents" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of contents
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#rapids-provider" class = "md-nav__link" >
RAPIDS provider
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" >
< article class = "md-content__inner md-typeset" >
< a href = "https://github.com/carissalow/rapids/edit/master/docs/features/phone-data-yield.md" title = "Edit this page" class = "md-content__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z" / > < / svg >
< / a >
< h1 id = "phone-data-yield" > Phone Data Yield< a class = "headerlink" href = "#phone-data-yield" title = "Permanent link" > ¶ < / a > < / h1 >
< p > This is a combinatorial sensor which means that we use the data from multiple sensors to extract data yield features. Data yield features can be used to remove rows (< a href = "../../setup/configuration/#time-segments" > time segments< / a > ) that do not contain enough data. You should decide what is your “ enough” threshold depending on the type of sensors you collected (frequency vs event based, e.g. acceleroemter vs calls), the length of your study, and the rates of missing data that your analysis could handle.< / p >
< div class = "admonition hint" >
< p class = "admonition-title" > Why is data yield important?< / p >
< p > Imagine that you want to extract < code > PHONE_CALL< / code > features on daily segments (< code > 00:00< / code > to < code > 23:59< / code > ). Let’ s say that on day 1 the phone logged 10 calls and 23 hours of data from other sensors and on day 2 the phone logged 10 calls and only 2 hours of data from other sensors. It’ s more likely that other calls were placed on the 22 hours of data that you didn’ t log on day 2 than on the 1 hour of data you didn’ t log on day 1, and so including day 2 in your analysis could bias your results.< / p >
< / div >
< p > Sensor parameters description for < code > [PHONE_DATA_YIELD]< / code > :< / p >
< table >
< thead >
< tr >
< th > Key < / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < code > [SENSORS]< / code > < / td >
2021-01-14 20:38:07 +01:00
< td > One or more phone sensor config keys (e.g. < code > PHONE_MESSAGE< / code > ). The more keys you include the more accurately RAPIDS can approximate the time an smartphone was sensing data. The supported phone sensors you can include in this list are outlined below (< strong > do NOT include Fitbit sensors, ONLY include phone sensors< / strong > ).< / td >
2020-12-08 03:12:19 +01:00
< / tr >
< / tbody >
< / table >
< div class = "admonition info" >
< p class = "admonition-title" > Supported phone sensors for < code > [PHONE_DATA_YIELD][SENSORS]< / code > < / p >
< div class = "highlight" > < pre > < span > < / span > < code > < span class = "l l-Scalar l-Scalar-Plain" > PHONE_ACCELEROMETER< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_ACTIVITY_RECOGNITION< / span >
2021-01-14 20:38:07 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_APPLICATIONS_CRASHES< / span >
2020-12-08 03:12:19 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_APPLICATIONS_FOREGROUND< / span >
2021-01-14 20:38:07 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_APPLICATIONS_NOTIFICATIONS< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_AWARE_LOG< / span >
2020-12-08 03:12:19 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_BATTERY< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_BLUETOOTH< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_CALLS< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_CONVERSATION< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_MESSAGES< / span >
2021-01-14 20:38:07 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_KEYBOARD< / span >
2020-12-08 03:12:19 +01:00
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_LIGHT< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_LOCATIONS< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_SCREEN< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_WIFI_VISIBLE< / span >
< span class = "l l-Scalar l-Scalar-Plain" > PHONE_WIFI_CONNECTED< / span >
< / code > < / pre > < / div >
< / div >
< h2 id = "rapids-provider" > RAPIDS provider< a class = "headerlink" href = "#rapids-provider" title = "Permanent link" > ¶ < / a > < / h2 >
< p > Before explaining the data yield features, let’ s define the following relevant concepts:< / p >
< ul >
< li > A valid minute is any 60 second window when any phone sensor logged at least 1 row of data< / li >
< li > A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by < code > [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]< / code > < / li >
< / ul >
< p > The timestamps of all sensors are concatenated and then grouped per time segment. Minute and hour windows are created from the beginning of each time segment instance and these windows are marked as valid based on the definitions above. The duration of each time segment is taken into account to compute the features described below.< / p >
< div class = "admonition info" >
< p class = "admonition-title" > Available time segments and platforms< / p >
< ul >
< li > Available for all time segments< / li >
< li > Available for Android and iOS< / li >
< / ul >
< / div >
< div class = "admonition info" >
< p class = "admonition-title" > File Sequence< / p >
< div class = "highlight" > < pre > < span > < / span > < code > - data/raw/< span class = "o" > {< / span > pid< span class = "o" > }< / span > /< span class = "o" > {< / span > sensor< span class = "o" > }< / span > _raw.csv < span class = "c1" > # one for every [PHONE_DATA_YIELD][SENSORS]< / span >
- data/interim/< span class = "o" > {< / span > pid< span class = "o" > }< / span > /phone_yielded_timestamps.csv
- data/interim/< span class = "o" > {< / span > pid< span class = "o" > }< / span > /phone_yielded_timestamps_with_datetime.csv
- data/interim/< span class = "o" > {< / span > pid< span class = "o" > }< / span > /phone_data_yield_features/phone_data_yield_< span class = "o" > {< / span > language< span class = "o" > }< / span > _< span class = "o" > {< / span > provider_key< span class = "o" > }< / span > .csv
- data/processed/features/< span class = "o" > {< / span > pid< span class = "o" > }< / span > /phone_data_yield.csv
< / code > < / pre > < / div >
< / div >
< p > Parameters description for < code > [PHONE_DATA_YIELD][PROVIDERS][RAPIDS]< / code > :< / p >
< table >
< thead >
< tr >
< th > Key < / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < code > [COMPUTE]< / code > < / td >
< td > Set to < code > True< / code > to extract < code > PHONE_DATA_YIELD< / code > features from the < code > RAPIDS< / code > provider< / td >
< / tr >
< tr >
< td > < code > [FEATURES]< / code > < / td >
< td > Features to be computed, see table below< / td >
< / tr >
< tr >
< td > < code > [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]< / code > < / td >
< td > The proportion < code > [0.0 ,1.0]< / code > of valid minutes in a 60-minute window necessary to flag that window as valid.< / td >
< / tr >
< / tbody >
< / table >
< p > Features description for < code > [PHONE_DATA_YIELD][PROVIDERS][RAPIDS]< / code > :< / p >
< table >
< thead >
< tr >
< th > Feature< / th >
< th > Units< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > ratiovalidyieldedminutes< / td >
2021-02-03 00:32:33 +01:00
< td > -< / td >
2020-12-08 03:12:19 +01:00
< td > The ratio between the number of valid minutes and the duration in minutes of a time segment.< / td >
< / tr >
< tr >
< td > ratiovalidyieldedhours< / td >
2021-02-03 00:32:33 +01:00
< td > -< / td >
2020-12-08 03:12:19 +01:00
< td > The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1.< / td >
< / tr >
< / tbody >
< / table >
< div class = "admonition note" >
< p class = "admonition-title" > Assumptions/Observations< / p >
< ol >
< li >
< p > We recommend using < code > ratiovalidyieldedminutes< / code > on time segments that are shorter than two or three hours and < code > ratiovalidyieldedhours< / code > for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together. < / p >
< p > For example, let’ s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur: < / p >
< p > < ol type = "A" >
< li > the 12 missing hours are from the beginning of the segment or < / li >
< li > 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours).< / li >
< / ol > < / p >
< p > < code > ratiovalidyieldedminutes< / code > would be 0.5 for both < code > a< / code > and < code > b< / code > (hinting the missing circumstances are similar). However, < code > ratiovalidyieldedhours< / code > would be 0.5 for < code > a< / code > and 1.0 for < code > b< / code > if < code > [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]< / code > is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for < code > b< / code > . In other words, sensed data for < code > b< / code > is more evenly spread compared to < code > a< / code > .< / p >
< / li >
< / ol >
< / div >
< / article >
< / div >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-nav" >
< nav class = "md-footer-nav__inner md-grid" aria-label = "Footer" >
< a href = "../phone-conversation/" class = "md-footer-nav__link md-footer-nav__link--prev" rel = "prev" >
< div class = "md-footer-nav__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z" / > < / svg >
< / div >
< div class = "md-footer-nav__title" >
< div class = "md-ellipsis" >
< span class = "md-footer-nav__direction" >
Previous
< / span >
Phone Conversation
< / div >
< / div >
< / a >
2021-01-14 20:38:07 +01:00
< a href = "../phone-keyboard/" class = "md-footer-nav__link md-footer-nav__link--next" rel = "next" >
2020-12-08 03:12:19 +01:00
< div class = "md-footer-nav__title" >
< div class = "md-ellipsis" >
< span class = "md-footer-nav__direction" >
Next
< / span >
2021-01-14 20:38:07 +01:00
Phone Keyboard
2020-12-08 03:12:19 +01:00
< / div >
< / div >
< div class = "md-footer-nav__button md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z" / > < / svg >
< / div >
< / a >
< / nav >
< / div >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-footer-copyright" >
< div class = "md-footer-copyright__highlight" >
Released under AGPL
< / div >
Made with
2020-12-20 19:59:17 +01:00
< a href = "https://squidfunk.github.io/mkdocs-material/" target = "_blank" rel = "noopener" >
2020-12-08 03:12:19 +01:00
Material for MkDocs Insiders
< / a >
< / div >
< div class = "md-footer-social" >
< a href = "https://twitter.com/julio_ui" target = "_blank" rel = "noopener" title = "twitter.com" class = "md-footer-social__link" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 512 512" > < path d = "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" / > < / svg >
< / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
2020-12-20 19:59:17 +01:00
< script src = "../../assets/javascripts/vendor.49293c47.min.js" > < / script >
< script src = "../../assets/javascripts/bundle.f4f0c901.min.js" > < / script > < script id = "__lang" type = "application/json" > { "clipboard.copy" : "Copy to clipboard" , "clipboard.copied" : "Copied to clipboard" , "search.config.lang" : "en" , "search.config.pipeline" : "trimmer, stopWordFilter" , "search.config.separator" : "[\\s\\-]+" , "search.placeholder" : "Search" , "search.result.placeholder" : "Type to start searching" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.term.missing" : "Missing" } < / script >
2020-12-08 03:12:19 +01:00
< script >
app = initialize({
base: "../..",
2020-12-20 19:59:17 +01:00
features: ["navigation.sections", "search.suggest", "search.highlight"],
2020-12-08 03:12:19 +01:00
search: Object.assign({
worker: "../../assets/javascripts/worker/search.0f64ce30.min.js"
}, typeof search !== "undefined" & & search),
2020-12-20 19:59:17 +01:00
version: {"method": "mike"}
2020-12-08 03:12:19 +01:00
})
< / script >
< script src = "https://polyfill.io/v3/polyfill.min.js?features=es6" > < / script >
< script src = "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" > < / script >
< script src = "../../javascripts/extra.js" > < / script >
< / body >
< / html >