PageSourceSearch

https://silvia.netlify.app/about/

html silvia.netlify.app collected 2026-10-03 11:24:32 UTC 47,187 bytes, 1,102 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
4<meta charset="utf-8">
5<meta name="generator" content="quarto-1.8.26">
6
7<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
9
10<title>Silvia Canelón – Silvia Canelón</title>
11<style>
12code{white-space: pre-wrap;}
13span.smallcaps{font-variant: small-caps;}
14div.columns{display: flex; gap: min(4vw, 1.5em);}
15div.column{flex: auto; overflow-x: auto;}
16div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
17ul.task-list{list-style: none;}
18ul.task-list li input[type="checkbox"] {
19  width: 0.8em;
20  margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 
21  vertical-align: middle;
22}
23</style>
24
25
26<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 26
26
27<script src="../site_libs/quarto-nav/headroom.min.js"></script>
vendor: 1 bytes, line 27
27
28<script src="../site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 28
28
29<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 29
29
30<script src="../site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 30
30
31<script src="../site_libs/quarto-search/quarto-search.js"></script>
31
32<meta name="quarto:offset" content="../">
33<link href="../_assets/silvia/img/logo_rounded.svg" rel="icon" type="image/svg+xml">
34<script src="../site_libs/quarto-listing/list.min.js"></script>
vendor: 1 bytes, line 34
34
35<script src="../site_libs/quarto-listing/quarto-listing.js"></script>
vendor: 1 bytes, line 35
35
36<script src="../site_libs/quarto-html/quarto.js" type="module"></script>
vendor: 1 bytes, line 36
36
37<script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
vendor: 1 bytes, line 37
37
38<script src="../site_libs/quarto-html/axe/axe-check.js" type="module"></script>
vendor: 1 bytes, line 38
38
39<script src="../site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 39
39
40<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
40
41<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
42<link href="../site_libs/quarto-html/quarto-syntax-highlighting-d5a81b5673604fa4063d541f11a590de.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
43<link href="../site_libs/quarto-html/quarto-syntax-highlighting-dark-83a87ab50514085df30bb05c06d360e1.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
44<link href="../site_libs/quarto-html/quarto-syntax-highlighting-d5a81b5673604fa4063d541f11a590de.css" rel="stylesheet" class="quarto-color-scheme-extra" id="quarto-text-highlighting-styles">
45<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
45
46<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
47<link href="../site_libs/bootstrap/bootstrap-ebc36e63796c20bea46526e08d903f4d.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
48<link href="../site_libs/bootstrap/bootstrap-dark-ad23d8fa78bc2dcef492c53586f20157.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
49<link href="../site_libs/bootstrap/bootstrap-ebc36e63796c20bea46526e08d903f4d.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light">
50<link href="../site_libs/quarto-contrib/fontawesome6-1.2.0/all.min.css" rel="stylesheet">
51<link href="../site_libs/quarto-contrib/fontawesome6-1.2.0/latex-fontsize.css" rel="stylesheet">
52<link href="../site_libs/quarto-contrib/academicons-1.9.2/all.css" rel="stylesheet">
53<link href="../site_libs/quarto-contrib/academicons-1.9.2/size.css" rel="stylesheet">
54<script id="quarto-search-options" type="application/json">{
55  "location": "navbar",
56  "copy-button": false,
57  "collapse-after": 3,
58  "panel-placement": "end",
59  "type": "overlay",
60  "limit": 50,
61  "keyboard-shortcut": [
62    "f",
63    "/",
64    "s"
65  ],
66  "show-item-context": false,
67  "language": {
68    "search-no-results-text": "No results",
69    "search-matching-documents-text": "matching documents",
70    "search-copy-link-title": "Copy link to search",
71    "search-hide-matches-text": "Hide additional matches",
72    "search-more-match-text": "more match in this document",
73    "search-more-matches-text": "more matches in this document",
74    "search-clear-button-title": "Clear",
75    "search-text-placeholder": "",
76    "search-detached-cancel-button-title": "Cancel",
77    "search-submit-button-title": "Submit",
78    "search-label": "Search"
79  }
80}</script>
vendor: 1 bytes, line 80
80
81<script>
82
83  window.document.addEventListener("DOMContentLoaded", function (_event) {
84    const listingTargetEl = window.document.querySelector('#listing-project .list');
85    if (!listingTargetEl) {
86      // No listing discovered, do not attach.
87      return; 
88    }
89
90    const options = {
91      valueNames: ['listing-title','listing-subtitle','listing-image',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
92      
93      searchColumns: ["listing-title","listing-author","listing-date","listing-image","listing-description"],
94    };
95
96    window['quarto-listings'] = window['quarto-listings'] || {};
97    window['quarto-listings']['listing-project'] = new List('listing-project', options);
98
99    if (window['quarto-listing-loaded']) {
100      window['quarto-listing-loaded']();
101    }
102  });
103
104  window.addEventListener('hashchange',() => {
105    if (window['quarto-listing-loaded']) {
106      window['quarto-listing-loaded']();
107    }
108  })
109  
110
111  window.document.addEventListener("DOMContentLoaded", function (_event) {
112    const listingTargetEl = window.document.querySelector('#listing-talk .list');
113    if (!listingTargetEl) {
114      // No listing discovered, do not attach.
115      return; 
116    }
117
118    const options = {
119      valueNames: ['listing-title','listing-subtitle','listing-image',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
120      page: 18,
121    pagination: { item: "<li class='page-item'><a class='page page-link' href='#'></a></li>" },
122      searchColumns: ["listing-title","listing-author","listing-date","listing-image","listing-description"],
123    };
124
125    window['quarto-listings'] = window['quarto-listings'] || {};
126    window['quarto-listings']['listing-talk'] = new List('listing-talk', options);
127
128    if (window['quarto-listing-loaded']) {
129      window['quarto-listing-loaded']();
130    }
131  });
132
133  window.addEventListener('hashchange',() => {
134    if (window['quarto-listing-loaded']) {
135      window['quarto-listing-loaded']();
136    }
137  })
138  
139
140  window.document.addEventListener("DOMContentLoaded", function (_event) {
141    const listingTargetEl = window.document.querySelector('#listing-blog .list');
142    if (!listingTargetEl) {
143      // No listing discovered, do not attach.
144      return; 
145    }
146
147    const options = {
148      valueNames: ['listing-title','listing-subtitle','listing-image',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
149      
150      searchColumns: ["listing-title","listing-author","listing-date","listing-image","listing-description"],
151    };
152
153    window['quarto-listings'] = window['quarto-listings'] || {};
154    window['quarto-listings']['listing-blog'] = new List('listing-blog', options);
155
156    if (window['quarto-listing-loaded']) {
157      window['quarto-listing-loaded']();
158    }
159  });
160
161  window.addEventListener('hashchange',() => {
162    if (window['quarto-listing-loaded']) {
163      window['quarto-listing-loaded']();
164    }
165  })
166  
167
168  window.document.addEventListener("DOMContentLoaded", function (_event) {
169    const listingTargetEl = window.document.querySelector('#listing-publication .list');
170    if (!listingTargetEl) {
171      // No listing discovered, do not attach.
172      return; 
173    }
174
175    const options = {
176      valueNames: ['listing-title','listing-image',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
177      page: 18,
178    pagination: { item: "<li class='page-item'><a class='page page-link' href='#'></a></li>" },
179      searchColumns: ["listing-title","listing-author","listing-date","listing-image","listing-description"],
180    };
181
182    window['quarto-listings'] = window['quarto-listings'] || {};
183    window['quarto-listings']['listing-publication'] = new List('listing-publication', options);
184
185    if (window['quarto-listing-loaded']) {
186      window['quarto-listing-loaded']();
187    }
188  });
189
190  window.addEventListener('hashchange',() => {
191    if (window['quarto-listing-loaded']) {
192      window['quarto-listing-loaded']();
193    }
194  })
195  </script>
195
196<!-- umami cloud -->
197<script async="" src="https://analytics.umami.is/script.js" data-website-id="6ba73b87-31aa-44ac-8d5e-e0dad5760753" data-do-not-track="true">
198</script>
198
199<!-- google search console -->
200<meta name="google-site-verification" content="SXazFKEYdrkxQRjO6ofQA45n5g-Uxn_sq3vVTYYnZ9U">
201<link rel="stylesheet" href="../assets/about.css">
202
203  
203<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
203
204  
204<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
204
205
206<script type="text/javascript">
207const typesetMath = (el) => {
208  if (window.MathJax) {
209    // MathJax Typeset
210    window.MathJax.typeset([el]);
211  } else if (window.katex) {
212    // KaTeX Render
213    var mathElements = el.getElementsByClassName("math");
214    var macros = [];
215    for (var i = 0; i < mathElements.length; i++) {
216      var texText = mathElements[i].firstChild;
217      if (mathElements[i].tagName == "SPAN" && texText && texText.data) {
218        window.katex.render(texText.data, mathElements[i], {
219          displayMode: mathElements[i].classList.contains('display'),
220          throwOnError: false,
221          macros: macros,
222          fleqn: false
223        });
224      }
225    }
226  }
227}
228window.Quarto = {
229  typesetMath
230};
231</script>
231
232
233<meta name="twitter:title" content="Silvia Canelón">
234<meta name="twitter:description" content="Data Scientist &amp; Journalist">
235<meta name="twitter:image" content="https://silviacanelon.com/about/sidebar/avatar.png">
236<meta name="twitter:creator" content="@spcanelon">
237<meta name="twitter:site" content="@spcanelon">
238<meta name="twitter:card" content="summary_large_image">
239<meta name="twitter:image-height" content="500">
240<meta name="twitter:image-width" content="500">
241<meta name="twitter:image:alt" content="Smiling woman with a tan complexion, dark eyes, and dark long wavy hair styled to one side">
242</head>
243
244<body class="nav-fixed quarto-light">
244<script id="quarto-html-before-body" type="application/javascript">
245    const toggleBodyColorMode = (bsSheetEl) => {
246      const mode = bsSheetEl.getAttribute("data-mode");
247      const bodyEl = window.document.querySelector("body");
248      if (mode === "dark") {
249        bodyEl.classList.add("quarto-dark");
250        bodyEl.classList.remove("quarto-light");
251      } else {
252        bodyEl.classList.add("quarto-light");
253        bodyEl.classList.remove("quarto-dark");
254      }
255    }
256    const toggleBodyColorPrimary = () => {
257      const bsSheetEl = window.document.querySelector("link#quarto-bootstrap:not([rel=disabled-stylesheet])");
258      if (bsSheetEl) {
259        toggleBodyColorMode(bsSheetEl);
260      }
261    }
262    const setColorSchemeToggle = (alternate) => {
263      const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
264      for (let i=0; i < toggles.length; i++) {
265        const toggle = toggles[i];
266        if (toggle) {
267          if (alternate) {
268            toggle.classList.add("alternate");
269          } else {
270            toggle.classList.remove("alternate");
271          }
272        }
273      }
274    };
275    const toggleColorMode = (alternate) => {
276      // Switch the stylesheets
277      const primaryStylesheets = window.document.querySelectorAll('link.quarto-color-scheme:not(.quarto-color-alternate)');
278      const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
279      manageTransitions('#quarto-margin-sidebar .nav-link', false);
280      if (alternate) {
281        // note: dark is layered on light, we don't disable primary!
282        enableStylesheet(alternateStylesheets);
283        for (const sheetNode of alternateStylesheets) {
284          if (sheetNode.id === "quarto-bootstrap") {
285            toggleBodyColorMode(sheetNode);
286          }
287        }
288      } else {
289        disableStylesheet(alternateStylesheets);
290        enableStylesheet(primaryStylesheets)
291        toggleBodyColorPrimary();
292      }
293      manageTransitions('#quarto-margin-sidebar .nav-link', true);
294      // Switch the toggles
295      setColorSchemeToggle(alternate)
296      // Hack to workaround the fact that safari doesn't
297      // properly recolor the scrollbar when toggling (#1455)
298      if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
299        manageTransitions("body", false);
300        window.scrollTo(0, 1);
301        setTimeout(() => {
302          window.scrollTo(0, 0);
303          manageTransitions("body", true);
304        }, 40);
305      }
306    }
307    const disableStylesheet = (stylesheets) => {
308      for (let i=0; i < stylesheets.length; i++) {
309        const stylesheet = stylesheets[i];
310        stylesheet.rel = 'disabled-stylesheet';
311      }
312    }
313    const enableStylesheet = (stylesheets) => {
314      for (let i=0; i < stylesheets.length; i++) {
315        const stylesheet = stylesheets[i];
316        if(stylesheet.rel !== 'stylesheet') { // for Chrome, which will still FOUC without this check
317          stylesheet.rel = 'stylesheet';
318        }
319      }
320    }
321    const manageTransitions = (selector, allowTransitions) => {
322      const els = window.document.querySelectorAll(selector);
323      for (let i=0; i < els.length; i++) {
324        const el = els[i];
325        if (allowTransitions) {
326          el.classList.remove('notransition');
327        } else {
328          el.classList.add('notransition');
329        }
330      }
331    }
332    const isFileUrl = () => {
333      return window.location.protocol === 'file:';
334    }
335    const hasAlternateSentinel = () => {
336      let styleSentinel = getColorSchemeSentinel();
337      if (styleSentinel !== null) {
338        return styleSentinel === "alternate";
339      } else {
340        return false;
341      }
342    }
343    const setStyleSentinel = (alternate) => {
344      const value = alternate ? "alternate" : "default";
345      if (!isFileUrl()) {
346        window.localStorage.setItem("quarto-color-scheme", value);
347      } else {
348        localAlternateSentinel = value;
349      }
350    }
351    const getColorSchemeSentinel = () => {
352      if (!isFileUrl()) {
353        const storageValue = window.localStorage.getItem("quarto-color-scheme");
354        return storageValue != null ? storageValue : localAlternateSentinel;
355      } else {
356        return localAlternateSentinel;
357      }
358    }
359    const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
360      const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
361      const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
362      let newTheme = '';
363      if(authorPrefersDark) {
364        newTheme = isAlternate ? baseTheme : alternateTheme;
365      } else {
366        newTheme = isAlternate ? alternateTheme : baseTheme;
367      }
368      const changeGiscusTheme = () => {
369        // From: https://github.com/giscus/giscus/issues/336
370        const sendMessage = (message) => {
371          const iframe = document.querySelector('iframe.giscus-frame');
372          if (!iframe) return;
373          iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
374        }
375        sendMessage({
376          setConfig: {
377            theme: newTheme
378          }
379        });
380      }
381      const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
382      if (isGiscussLoaded) {
383        changeGiscusTheme();
384      }
385    };
386    const authorPrefersDark = false;
387    const darkModeDefault = authorPrefersDark;
388      document.querySelector('link#quarto-text-highlighting-styles.quarto-color-scheme-extra').rel = 'disabled-stylesheet';
389      document.querySelector('link#quarto-bootstrap.quarto-color-scheme-extra').rel = 'disabled-stylesheet';
390    let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
391    // Dark / light mode switch
392    window.quartoToggleColorScheme = () => {
393      // Read the current dark / light value
394      let toAlternate = !hasAlternateSentinel();
395      toggleColorMode(toAlternate);
396      setStyleSentinel(toAlternate);
397      toggleGiscusIfUsed(toAlternate, darkModeDefault);
398      window.dispatchEvent(new Event('resize'));
399    };
400    // Switch to dark mode if need be
401    if (hasAlternateSentinel()) {
402      toggleColorMode(true);
403    } else {
404      toggleColorMode(false);
405    }
406  </script>
406
407
408<div id="quarto-search-results"></div>
409  <header id="quarto-header" class="headroom fixed-top">
410    <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
411      <div class="navbar-container container-fluid">
412      <div class="navbar-brand-container mx-auto">
413    <a class='navbar-brand navbar-brand-logo' href='/'>
414    <img src="../_assets/silvia/img/logo_rounded.svg" alt="" class="navbar-logo light-content">
415    <img src="../_assets/silvia/img/logo_rounded.svg" alt="" class="navbar-logo dark-content">
416    </a>
417    <a class='navbar-brand' href='/'>
418    <span class="navbar-title">Silvia Canelón</span>
419    </a>
420  </div>
421            <div id="quarto-search" class="" title="Search"></div>
422          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
423  <span class="navbar-toggler-icon"></span>
424</button>
425          <div class="collapse navbar-collapse" id="navbarCollapse">
426            <ul class="navbar-nav navbar-nav-scroll ms-auto">
427  <li class="nav-item">
428    <a aria-current='page' class='nav-link active' href='/about/'> 
429<span class="menu-text">About</span></a>
430  </li>  
431  <li class="nav-item">
432    <a class='nav-link' href='/project/'> 
433<span class="menu-text">Projects</span></a>
434  </li>  
435  <li class="nav-item">
436    <a class='nav-link' href='/talk/'> 
437<span class="menu-text">Talks</span></a>
438  </li>  
439  <li class="nav-item">
440    <a class='nav-link' href='/blog/'> 
441<span class="menu-text">Blog</span></a>
442  </li>  
443  <li class="nav-item">
444    <a class='nav-link' href='/publication/'> 
445<span class="menu-text">Publications</span></a>
446  </li>  
447</ul>
448          </div> <!-- /navcollapse -->
449            <div class="quarto-navbar-tools">
450    <a href="https://www.github.com/spcanelon/silvia" title="" class="quarto-navigation-tool px-1" aria-label=""><i class="bi bi-github"></i></a>
451  <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool  px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Toggle dark mode"><i class="bi"></i></a>
452</div>
453      </div> <!-- /container-fluid -->
454    </nav>
455</header>
456<!-- content -->
457<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
458<!-- sidebar -->
459<!-- margin-sidebar -->
460    
461<!-- main -->
462<main class="content column-page" id="quarto-document-content">
463
464
465
466
467
468<div class="quarto-about-trestles column-page">
469  <div class="about-entity">
470    <img src="sidebar/avatar.png" alt="Smiling woman with a tan complexion, dark eyes, and dark long wavy hair styled to one side" class="about-image
471  rounded " style="width: 14em;">
472<header id="title-block-header" class="quarto-title-block default">
473<div class="quarto-title">
474<h1 class="title">Silvia Canelón</h1>
475<p class="subtitle lead">Data Scientist &amp; Journalist</p>
476</div>
477<div class="quarto-title-meta column-page">
478  </div>
479</header>
480    <div class="about-links">
481  <a class='about-link' href='/accessibility' rel target>
482     <span class="about-link-text"><i class="fa-solid fa-universal-access" aria-label="universal-access"></i></span>
483  </a>
484  <a href="https://bsky.app/profile/silviacanelon.com" class="about-link" rel="" target="">
485     <span class="about-link-text"><i class="fa-brands fa-bluesky" aria-label="bluesky"></i></span>
486  </a>
487  <a href="https://linkedin.com/in/spcanelon" class="about-link" rel="" target="">
488    <i class="bi bi-linkedin"></i>
489     <span class="about-link-text"></span>
490  </a>
491  <a href="https://github.com/spcanelon" class="about-link" rel="" target="">
492    <i class="bi bi-github"></i>
493     <span class="about-link-text"></span>
494  </a>
495  <a href="https://orcid.org/0000-0003-1709-1394" class="about-link" rel="" target="">
496     <span class="about-link-text"><i class="ai  ai-orcid"></i></span>
497  </a>
498  <a href="https://scholar.google.com/citations?user=GAzkvpcAAAAJ&amp;hl=en&amp;oi=ao" class="about-link" rel="" target="">
499     <span class="about-link-text"><i class="ai  ai-google-scholar"></i></span>
500  </a>
501  <a href="https://buttondown.com/spcanelon" class="about-link" rel="" target="">
502     <span class="about-link-text"><i class="fa-solid fa-envelope" aria-label="envelope"></i></span>
503  </a>
504</div>
505  </div>
506  <div class="about-contents"><div id="hero-heading">
507<div class="h1">
508Hey, I’m happy you’re here
509</div>
510<p>Thanks for stopping by!</p>
511<p>I work as a data scientist at the <a href="https://www.urbanhealthlab.org/">Urban Health Lab</a> at the University of Pennsylvania. My research interests include applications of biomedical and spatial data science in the public and population health fields.</p>
512<p>My current projects use electronic health record (EHR) and geospatial data to explore how the neighborhood environment and access to urban nature can impact the health of individuals in Philadelphia. Learn more about my research interests in <a href="../publication">publications</a>.</p>
513<p>Get in touch by <a href='/contact'>sending me a note</a>! <i class="fa-solid fa-feather-pointed" aria-label="feather-pointed"></i></p>
514</div></div>
515</div>
516
517<section id="about-me" class="level2">
518<h2 data-anchor-id="about-me">About me</h2>
519<div class="grid">
520<div id="about-me-1" class="g-col-6">
521<p><strong>Biomedical engineer turned informaticist, curious about all intersections of data and society.</strong></p>
522<p>I enjoy using <a href="https://www.r-project.org/about.html">R</a> to optimize my data science workflow and have noticed it making guest appearances elsewhere in my life. I’m certified as an <a href="https://education.rstudio.com/trainers/people/canelon+silvia/">RStudio Tidyverse Instructor</a> and am passionate about R education and data literacy as ways to build power in communities. Keep up with my R tinkering in my <a href="../blog">blog</a> and presentations in <a href="../talk">talks</a>.</p>
523<ul class="fa-ul">
524<li>
525<span class="fa-li"><i class="fa-solid fa-certificate"></i></span><a href="https://education.rstudio.com/trainers/people/canelon+silvia/">Tidyverse Instructor Certification</a> ∙ RStudio, PBC ∙ 2020
526</li>
527</ul>
528</div>
529<div id="about-me-2" class="g-col-6">
530<p>Prior to joining the Urban Health Lab, I developed novel data mining methods to extract meaningful information from the EHR and study health outcomes and disparities in pregnant populations. I’m particularly interested in research that combines biomedical data science with open data sources in ways that prioritize health equity in communities.</p>
531<ul class="fa-ul">
532<li>
533<span class="fa-li"><i class="fa-solid fa-certificate"></i></span><a href="https://www.med.upenn.edu/mbmi/certificate.html">Certificate in Biomedical Informatics</a> ∙ University of Pennsylvania ∙ 2019
534</li>
535<li>
536<span class="fa-li"><i class="fa-solid fa-graduation-cap"></i></span>Ph.D.&nbsp;in Biomedical Engineering ∙ Purdue University ∙ 2018
537</li>
538<li>
539<span class="fa-li"><i class="fa-solid fa-graduation-cap"></i></span>B.S. in Biomedical Engineering ∙ University of Minnesota ∙ 2012
540</li>
541</ul>
542</div>
543</div>
544<!-- end grid -->
545</section>
546<section id="lately" class="level2">
547<h2 data-anchor-id="lately">Lately …</h2>
548<div class="grid">
549<section id="projects" class="level4 g-col-3">
550<h4 data-anchor-id="projects">Projects</h4>
551<div id="listing-project" class="quarto-listing quarto-listing-container-grid">
552<div class="list grid quarto-listing-cols-1">
553<div class="g-col-1" data-index="0" data-categories="am91cm5hbGlzbSUyQ1IlMkNkYXRhJTIwdml6" data-listing-date-sort="1761019200000">
554<a href="https://www.kensingtonvoice.com/new-fast-track-court-for-kensington-lands-most-with-warrants-back-into-the-cycle-of-addiction-and-homelessness/" class="quarto-grid-link">
555<div class="quarto-grid-item card h-100 card-left">
556<p class="card-img-top">
557<img loading="lazy" src="../project/external-items/2025-10-21-kv-wellness-court/featured.png" class="thumbnail-image card-img" style="height: 200;">
558</p>
559<div class="card-body post-contents">
560<h5 class="no-anchor card-title listing-title">
561New Kensington ‘fast-track court’ lands most with warrants, back into the cycle of addiction and homelessness<br><em>Photo by Solmaira Valerio</em>
562</h5>
563<div class="card-subtitle listing-subtitle">
564Kensington Voice
565</div>
566</div>
567</div></a>
568</div>
569</div>
570<div class="listing-no-matching d-none">No matching items</div>
571</div>
572<p><a href="../project" class="about-links subtitle">See all →</a></p>
573</section>
574<section id="talks" class="level4 g-col-3">
575<h4 data-anchor-id="talks">Talks</h4>
576<div id="listing-talk" class="quarto-listing quarto-listing-container-grid">
577<div class="list grid quarto-listing-cols-1">
578<div class="g-col-1" data-index="0" data-categories="am91cm5hbGlzbSUyQ2RhdGElMjB2aXo=" data-listing-date-sort="1785447000000" data-listing-file-modified-sort="1790780581562" data-listing-date-modified-sort="1785470400000" data-listing-reading-time-sort="1" data-listing-word-count-sort="133">
579<a class='quarto-grid-link' href='/talk/2026-07-30-data-viz-meetup/'>
580<div class="quarto-grid-item card h-100 card-left">
581<p class="card-img-top">
582<img loading="lazy" src="../talk/2026-07-30-data-viz-meetup/featured.png" class="thumbnail-image card-img" style="height: 200;">
583</p>
584<div class="card-body post-contents">
585<h5 class="no-anchor card-title listing-title">
586A Candid Look at Journalism Philanthropic Funding
587</h5>
588<div class="card-subtitle listing-subtitle">
589July Data Visualization Meetup
590</div>
591</div>
592</div></a>
593</div>
594</div>
595<div class="listing-no-matching d-none">No matching items</div>
596</div>
597<p><a href="../talk" class="about-links subtitle">See all →</a></p>
598</section>
599<section id="blog" class="level4 g-col-3">
600<h4 data-anchor-id="blog">Blog</h4>
601<div id="listing-blog" class="quarto-listing quarto-listing-container-grid">
602<div class="list grid quarto-listing-cols-1">
603<div class="g-col-1" data-index="0" data-categories="UiUyQ3F1YXJ0byUyQ3dlYnNpdGU=" data-listing-date-sort="1695960000000" data-listing-file-modified-sort="1790780581057" data-listing-date-modified-sort="1697083200000" data-listing-reading-time-sort="19" data-listing-word-count-sort="3731">
604<a class='quarto-grid-link' href='/blog/2023-09-29-hello-quarto/'>
605<div class="quarto-grid-item card h-100 card-left">
606<p class="card-img-top">
607<img loading="lazy" src="../blog/2023-09-29-hello-quarto/featured.jpg" class="thumbnail-image card-img" style="height: 200;">
608</p>
609<div class="card-body post-contents">
610<h5 class="no-anchor card-title listing-title">
611Hello Quarto: Porting my Website from Hugo Apéro
612</h5>
613<div class="card-subtitle listing-subtitle">
614Notes from porting my personal Blogdown website to Quarto
615</div>
616</div>
617</div></a>
618</div>
619</div>
620<div class="listing-no-matching d-none">No matching items</div>
621</div>
622<p><a href="../blog" class="about-links subtitle">See all →</a></p>
623</section>
624<section id="publications" class="level4 g-col-3">
625<h4 data-anchor-id="publications">Publications</h4>
626<div id="listing-publication" class="quarto-listing quarto-listing-container-grid">
627<div class="list grid quarto-listing-cols-1">
628<div class="g-col-1" data-index="0" data-categories="cmVzZWFyY2glMkNFSFI=" data-listing-date-sort="1790654400000" data-listing-file-modified-sort="1790783425793" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="266">
629<a class='quarto-grid-link' href='/publication/2026-09-29-neighborhood-features-preeclampsia-risk/'>
630<div class="quarto-grid-item card h-100 card-left">
631<p class="card-img-top">
632<img loading="lazy" src="../publication/2026-09-29-neighborhood-features-preeclampsia-risk/featured.png" class="thumbnail-image card-img" style="height: 200;">
633</p>
634<div class="card-body post-contents">
635<h5 class="no-anchor card-title listing-title">
636The relative importance of neighborhood environment features in explaining preeclampsia risk using machine learning
637</h5>
638</div>
639</div></a>
640</div>
641</div>
642<div class="listing-no-matching d-none">No matching items</div>
643</div>
644<p><a href="../publication" class="about-links subtitle">See all →</a></p>
645</section>
646</div>
647
648
649
650
651</section>
652
653<a onclick="window.scrollTo(0, 0); return false;" role="button" id="quarto-back-to-top"><i class="bi bi-arrow-up"></i> Back to top</a></main> <!-- /main -->
654<script id="quarto-html-after-body" type="application/javascript">
655  window.document.addEventListener("DOMContentLoaded", function (event) {
656    // Ensure there is a toggle, if there isn't float one in the top right
657    if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
658      const a = window.document.createElement('a');
659      a.classList.add('top-right');
660      a.classList.add('quarto-color-scheme-toggle');
661      a.href = "";
662      a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; };
663      const i = window.document.createElement("i");
664      i.classList.add('bi');
665      a.appendChild(i);
666      window.document.body.appendChild(a);
667    }
668    setColorSchemeToggle(hasAlternateSentinel())
669    const isCodeAnnotation = (el) => {
670      for (const clz of el.classList) {
671        if (clz.startsWith('code-annotation-')) {                     
672          return true;
673        }
674      }
675      return false;
676    }
677    const onCopySuccess = function(e) {
678      // button target
679      const button = e.trigger;
680      // don't keep focus
681      button.blur();
682      // flash "checked"
683      button.classList.add('code-copy-button-checked');
684      var currentTitle = button.getAttribute("title");
685      button.setAttribute("title", "Copied!");
686      let tooltip;
687      if (window.bootstrap) {
688        button.setAttribute("data-bs-toggle", "tooltip");
689        button.setAttribute("data-bs-placement", "left");
690        button.setAttribute("data-bs-title", "Copied!");
691        tooltip = new bootstrap.Tooltip(button, 
692          { trigger: "manual", 
693            customClass: "code-copy-button-tooltip",
694            offset: [0, -8]});
695        tooltip.show();    
696      }
697      setTimeout(function() {
698        if (tooltip) {
699          tooltip.hide();
700          button.removeAttribute("data-bs-title");
701          button.removeAttribute("data-bs-toggle");
702          button.removeAttribute("data-bs-placement");
703        }
704        button.setAttribute("title", currentTitle);
705        button.classList.remove('code-copy-button-checked');
706      }, 1000);
707      // clear code selection
708      e.clearSelection();
709    }
710    const getTextToCopy = function(trigger) {
711      const outerScaffold = trigger.parentElement.cloneNode(true);
712      const codeEl = outerScaffold.querySelector('code');
713      for (const childEl of codeEl.children) {
714        if (isCodeAnnotation(childEl)) {
715          childEl.remove();
716        }
717      }
718      return codeEl.innerText;
719    }
720    const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
721      text: getTextToCopy
722    });
723    clipboard.on('success', onCopySuccess);
724    if (window.document.getElementById('quarto-embedded-source-code-modal')) {
725      const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
726        text: getTextToCopy,
727        container: window.document.getElementById('quarto-embedded-source-code-modal')
728      });
729      clipboardModal.on('success', onCopySuccess);
730    }
731      var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
732      var mailtoRegex = new RegExp(/^mailto:/);
733        var filterRegex = new RegExp("https:\/\/silviacanelon\.com");
734      var isInternal = (href) => {
735          return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
736      }
737      // Inspect non-navigation links and adorn them if external
738     var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
739      for (var i=0; i<links.length; i++) {
740        const link = links[i];
741        if (!isInternal(link.href)) {
742          // undo the damage that might have been done by quarto-nav.js in the case of
743          // links that we want to consider external
744          if (link.dataset.originalHref !== undefined) {
745            link.href = link.dataset.originalHref;
746          }
747        }
748      }
749    function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
750      const config = {
751        allowHTML: true,
752        maxWidth: 500,
753        delay: 100,
754        arrow: false,
755        appendTo: function(el) {
756            return el.parentElement;
757        },
758        interactive: true,
759        interactiveBorder: 10,
760        theme: 'quarto',
761        placement: 'bottom-start',
762      };
763      if (contentFn) {
764        config.content = contentFn;
765      }
766      if (onTriggerFn) {
767        config.onTrigger = onTriggerFn;
768      }
769      if (onUntriggerFn) {
770        config.onUntrigger = onUntriggerFn;
771      }
772      window.tippy(el, config); 
773    }
774    const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
775    for (var i=0; i<noterefs.length; i++) {
776      const ref = noterefs[i];
777      tippyHover(ref, function() {
778        // use id or data attribute instead here
779        let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
780        try { href = new URL(href).hash; } catch {}
781        const id = href.replace(/^#\/?/, "");
782        const note = window.document.getElementById(id);
783        if (note) {
784          return note.innerHTML;
785        } else {
786          return "";
787        }
788      });
789    }
790    const xrefs = window.document.querySelectorAll('a.quarto-xref');
791    const processXRef = (id, note) => {
792      // Strip column container classes
793      const stripColumnClz = (el) => {
794        el.classList.remove("page-full", "page-columns");
795        if (el.children) {
796          for (const child of el.children) {
797            stripColumnClz(child);
798          }
799        }
800      }
801      stripColumnClz(note)
802      if (id === null || id.startsWith('sec-')) {
803        // Special case sections, only their first couple elements
804        const container = document.createElement("div");
805        if (note.children && note.children.length > 2) {
806          container.appendChild(note.children[0].cloneNode(true));
807          for (let i = 1; i < note.children.length; i++) {
808            const child = note.children[i];
809            if (child.tagName === "P" && child.innerText === "") {
810              continue;
811            } else {
812              container.appendChild(child.cloneNode(true));
813              break;
814            }
815          }
816          if (window.Quarto?.typesetMath) {
817            window.Quarto.typesetMath(container);
818          }
819          return container.innerHTML
820        } else {
821          if (window.Quarto?.typesetMath) {
822            window.Quarto.typesetMath(note);
823          }
824          return note.innerHTML;
825        }
826      } else {
827        // Remove any anchor links if they are present
828        const anchorLink = note.querySelector('a.anchorjs-link');
829        if (anchorLink) {
830          anchorLink.remove();
831        }
832        if (window.Quarto?.typesetMath) {
833          window.Quarto.typesetMath(note);
834        }
835        if (note.classList.contains("callout")) {
836          return note.outerHTML;
837        } else {
838          return note.innerHTML;
839        }
840      }
841    }
842    for (var i=0; i<xrefs.length; i++) {
843      const xref = xrefs[i];
844      tippyHover(xref, undefined, function(instance) {
845        instance.disable();
846        let url = xref.getAttribute('href');
847        let hash = undefined; 
848        if (url.startsWith('#')) {
849          hash = url;
850        } else {
851          try { hash = new URL(url).hash; } catch {}
852        }
853        if (hash) {
854          const id = hash.replace(/^#\/?/, "");
855          const note = window.document.getElementById(id);
856          if (note !== null) {
857            try {
858              const html = processXRef(id, note.cloneNode(true));
859              instance.setContent(html);
860            } finally {
861              instance.enable();
862              instance.show();
863            }
864          } else {
865            // See if we can fetch this
866            fetch(url.split('#')[0])
867            .then(res => res.text())
868            .then(html => {
869              const parser = new DOMParser();
870              const htmlDoc = parser.parseFromString(html, "text/html");
871              const note = htmlDoc.getElementById(id);
872              if (note !== null) {
873                const html = processXRef(id, note);
874                instance.setContent(html);
875              } 
876            }).finally(() => {
877              instance.enable();
878              instance.show();
879            });
880          }
881        } else {
882          // See if we can fetch a full url (with no hash to target)
883          // This is a special case and we should probably do some content thinning / targeting
884          fetch(url)
885          .then(res => res.text())
886          .then(html => {
887            const parser = new DOMParser();
888            const htmlDoc = parser.parseFromString(html, "text/html");
889            const note = htmlDoc.querySelector('main.content');
890            if (note !== null) {
891              // This should only happen for chapter cross references
892              // (since there is no id in the URL)
893              // remove the first header
894              if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
895                note.children[0].remove();
896              }
897              const html = processXRef(null, note);
898              instance.setContent(html);
899            } 
900          }).finally(() => {
901            instance.enable();
902            instance.show();
903          });
904        }
905      }, function(instance) {
906      });
907    }
908        let selectedAnnoteEl;
909        const selectorForAnnotation = ( cell, annotation) => {
910          let cellAttr = 'data-code-cell="' + cell + '"';
911          let lineAttr = 'data-code-annotation="' +  annotation + '"';
912          const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
913          return selector;
914        }
915        const selectCodeLines = (annoteEl) => {
916          const doc = window.document;
917          const targetCell = annoteEl.getAttribute("data-target-cell");
918          const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
919          const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
920          const lines = annoteSpan.getAttribute("data-code-lines").split(",");
921          const lineIds = lines.map((line) => {
922            return targetCell + "-" + line;
923          })
924          let top = null;
925          let height = null;
926          let parent = null;
927          if (lineIds.length > 0) {
928              //compute the position of the single el (top and bottom and make a div)
929              const el = window.document.getElementById(lineIds[0]);
930              top = el.offsetTop;
931              height = el.offsetHeight;
932              parent = el.parentElement.parentElement;
933            if (lineIds.length > 1) {
934              const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
935              const bottom = lastEl.offsetTop + lastEl.offsetHeight;
936              height = bottom - top;
937            }
938            if (top !== null && height !== null && parent !== null) {
939              // cook up a div (if necessary) and position it 
940              let div = window.document.getElementById("code-annotation-line-highlight");
941              if (div === null) {
942                div = window.document.createElement("div");
943                div.setAttribute("id", "code-annotation-line-highlight");
944                div.style.position = 'absolute';
945                parent.appendChild(div);
946              }
947              div.style.top = top - 2 + "px";
948              div.style.height = height + 4 + "px";
949              div.style.left = 0;
950              let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
951              if (gutterDiv === null) {
952                gutterDiv = window.document.createElement("div");
953                gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
954                gutterDiv.style.position = 'absolute';
955                const codeCell = window.document.getElementById(targetCell);
956                const gutter = codeCell.querySelector('.code-annotation-gutter');
957                gutter.appendChild(gutterDiv);
958              }
959              gutterDiv.style.top = top - 2 + "px";
960              gutterDiv.style.height = height + 4 + "px";
961            }
962            selectedAnnoteEl = annoteEl;
963          }
964        };
965        const unselectCodeLines = () => {
966          const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
967          elementsIds.forEach((elId) => {
968            const div = window.document.getElementById(elId);
969            if (div) {
970              div.remove();
971            }
972          });
973          selectedAnnoteEl = undefined;
974        };
975          // Handle positioning of the toggle
976      window.addEventListener(
977        "resize",
978        throttle(() => {
979          elRect = undefined;
980          if (selectedAnnoteEl) {
981            selectCodeLines(selectedAnnoteEl);
982          }
983        }, 10)
984      );
985      function throttle(fn, ms) {
986      let throttle = false;
987      let timer;
988        return (...args) => {
989          if(!throttle) { // first call gets through
990              fn.apply(this, args);
991              throttle = true;
992          } else { // all the others get throttled
993              if(timer) clearTimeout(timer); // cancel #2
994              timer = setTimeout(() => {
995                fn.apply(this, args);
996                timer = throttle = false;
997              }, ms);
998          }
999        };
1000      }
1001        // Attach click handler to the DT
1002        const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
1003        for (const annoteDlNode of annoteDls) {
1004          annoteDlNode.addEventListener('click', (event) => {
1005            const clickedEl = event.target;
1006            if (clickedEl !== selectedAnnoteEl) {
1007              unselectCodeLines();
1008              const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
1009              if (activeEl) {
1010                activeEl.classList.remove('code-annotation-active');
1011              }
1012              selectCodeLines(clickedEl);
1013              clickedEl.classList.add('code-annotation-active');
1014            } else {
1015              // Unselect the line
1016              unselectCodeLines();
1017              clickedEl.classList.remove('code-annotation-active');
1018            }
1019          });
1020        }
1021    const findCites = (el) => {
1022      const parentEl = el.parentElement;
1023      if (parentEl) {
1024        const cites = parentEl.dataset.cites;
1025        if (cites) {
1026          return {
1027            el,
1028            cites: cites.split(' ')
1029          };
1030        } else {
1031          return findCites(el.parentElement)
1032        }
1033      } else {
1034        return undefined;
1035      }
1036    };
1037    var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
1038    for (var i=0; i<bibliorefs.length; i++) {
1039      const ref = bibliorefs[i];
1040      const citeInfo = findCites(ref);
1041      if (citeInfo) {
1042        tippyHover(citeInfo.el, function() {
1043          var popup = window.document.createElement('div');
1044          citeInfo.cites.forEach(function(cite) {
1045            var citeDiv = window.document.createElement('div');
1046            citeDiv.classList.add('hanging-indent');
1047            citeDiv.classList.add('csl-entry');
1048            var biblioDiv = window.document.getElementById('ref-' + cite);
1049            if (biblioDiv) {
1050              citeDiv.innerHTML = biblioDiv.innerHTML;
1051            }
1052            popup.appendChild(citeDiv);
1053          });
1054          return popup.innerHTML;
1055        });
1056      }
1057    }
1058  });
1059  </script>
vendor: 1 bytes, line 1059
1059
1060<script src="https://utteranc.es/client.js" repo="spcanelon/silvia" issue-term="title" theme="body-light" crossorigin="anonymous" async="">
1061</script>
1061
1062</div> <!-- /content -->
1063<footer class="footer">
1064  <div class="nav-footer">
1065    <div class="nav-footer-left">
1066<p>© 2024 Silvia Canelón ∙ Made with <a href="https://quarto.org">Quarto</a></p>
1067</div>   
1068    <div class="nav-footer-center">
1069<p><a class='link-dark me-1' href='/accessibility' rel='noopener' target='_blank' title='Accessibility commitment'><i class="fa-solid fa-universal-access" aria-label="universal-access"></i></a> <a class="link-dark me-1" href="https://bsky.app/profile/silviacanelon.com" title="Bluesky" target="_blank" rel="noopener"><i class="fa-brands fa-bluesky" aria-label="bluesky"></i></a> <a class="link-dark me-1" href="https://linkedin.com/in/spcanelon" title="LinkedIn" target="_blank" rel="noopener"><i class="fa-brands fa-linkedin" aria-label="linkedin"></i></a> <a class="link-dark me-1" href="https://github.com/spcanelon" title="github" target="_blank" rel="noopener"><i class="fa-brands fa-github" aria-label="github"></i></a> <a class="link-dark me-1" href="https://orcid.org/0000-0003-1709-1394" title="orcid" target="_blank" rel="noopener"><i class="ai  ai-orcid"></i></a> <a class="link-dark me-1" href="https://scholar.google.com/citations?user=GAzkvpcAAAAJ&amp;hl=en&amp;oi=ao" title="Google Scholar" target="_blank" rel="noopener"><i class="ai  ai-google-scholar"></i></a> <a class="link-dark me-1" href="https://buttondown.com/spcanelon" title="Newsletter" target="_blank" rel="noopener"><i class="fa-solid fa-envelope" aria-label="envelope"></i></a></p>
1070</div>
1071    <div class="nav-footer-right">
1072      <ul class="footer-items list-unstyled">
1073    <li class="nav-item">
1074    <a class='nav-link' href='/accessibility'>
1075<p>Accessibility</p>
1076</a>
1077  </li>  
1078    <li class="nav-item">
1079    <a class='nav-link' href='/contact'>
1080<p>Contact</p>
1081</a>
1082  </li>  
1083    <li class="nav-item">
1084    <a class='nav-link' href='/license'>
1085<p>License</p>
1086</a>
1087  </li>  
1088    <li class="nav-item compact">
1089    <a class="nav-link" href="../blog/index.xml">
1090      <i class="bi bi-rss" role="img">
1091</i> 
1092    </a>
1093  </li>  
1094</ul>
1095    </div>
1096  </div>
1097</footer>
1098
1099
1100
1101
1102</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.