<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Scientific Imaging &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<atom:link href="https://vip.uwaterloo.ca/category/research-topics/scientific-imaging/feed/" rel="self" type="application/rss+xml" />
	<link>https://vip.uwaterloo.ca</link>
	<description>The University of Waterloo&#039;s Vision and Image Processing Lab</description>
	<lastBuildDate>Tue, 10 Mar 2026 20:10:44 +0000</lastBuildDate>
	<language>en-CA</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://vip.uwaterloo.ca/wp-content/uploads/2023/04/cropped-favicon-32x32.png</url>
	<title>Scientific Imaging &#8211; VISION AND IMAGE PROCESSING (VIP) RESEARCH GROUP</title>
	<link>https://vip.uwaterloo.ca</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Nicholas Pellegrino</title>
		<link>https://vip.uwaterloo.ca/n-pellegrino-1/</link>
		
		<dc:creator><![CDATA[Nicholas Pellegrino]]></dc:creator>
		<pubDate>Wed, 26 Apr 2023 21:38:23 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2022]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=2899</guid>

					<description><![CDATA[Nicholas Pellegrino completed his master's degree in Systems Design Engineering in 2022. He was associated with PhotoMedicine Labs and the Vision and Image Processing (VIP) Lab, and was co-supervised by Dr. Parsin Haji Reza and Prof. Paul Fieguth. His main research contributions were in the areas of signal processing, multi-spectral unmixing, and chromophore-selective PARS® imaging with applications in PARS histology and ophthalmology.]]></description>
										<content:encoded><![CDATA[
<p>Nicholas Pellegrino completed his master&#8217;s degree in Systems Design Engineering in 2022. He was associated with <a href="http://www.photomedicinelabs.com">PhotoMedicine Labs</a> and the <a href="http://uwaterloo.ca/vision-image-processing-lab/">Vision and Image Processing (VIP) Lab</a>, and was co-supervised by <a href="https://uwaterloo.ca/systems-design-engineering/profile/phajirez">Dr. Parsin Haji Reza</a> and <a href="https://uwaterloo.ca/systems-design-engineering/profile/pfieguth">Prof. Paul Fieguth</a>. His main research contributions were in the areas of signal processing, multi-spectral unmixing, and chromophore-selective PARS® imaging with applications in PARS histology and ophthalmology. Nicholas was awarded the <a href="https://uwaterloo.ca/graduate-studies-postdoctoral-affairs/awards/alumni-gold-medal">Alumni Gold Medal</a>, which recognizes the top graduating master’s student across the whole university for their academic achievement.</p>



<p>Nicholas graduated from Mechatronics Engineering at the University of Waterloo in 2019 and completed his master&#8217;s degree with PhotoMedicine labs in 2022.</p>



<p>Email: <a href="mailto:nicholas.pellegrino@uwaterloo.ca">nicholas.pellegrino@uwaterloo.ca</a><br>UW Scholar: <a href="https://uwaterloo.ca/scholar/npellegr">https://uwaterloo.ca/scholar/npellegr</a><br>LinkedIn: <a href="https://www.linkedin.com/in/nicholas-nick-pellegrino/">LinkedIn</a><br>Google Scholar: <a href="https://scholar.google.ca/citations?user=eiIC09EAAAAJ&amp;hl=en">Google Scholar</a></p>


<div class="lazyblock-supervisors-Z2028Ps wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-11KJc7 wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Biomedical Engineering, Blood Oxygen Saturation Estimation, Laser and Fiber Optics, Stimulated Raman Scattering (SRS), Time-domain and Image-based Signal processing, In-vivo microscopy and experiments, Photoacoustic Microscopy (PAM and PARS), Optical Coherence Tomography (OCT), Signal unmixing, Feature learning, Inverse Problems.</div>

<div class="lazyblock-research-27xb85 wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br></div>

<div class="lazyblock-publications-UBvNB wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(57219133414);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nicholas Pellegrino</title>
		<link>https://vip.uwaterloo.ca/n-pellegrino/</link>
		
		<dc:creator><![CDATA[Nicholas Pellegrino]]></dc:creator>
		<pubDate>Mon, 24 Apr 2023 21:13:20 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Image Segmentation/Classification]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2025]]></category>
		<guid isPermaLink="false">https://vip.uwaterloo.ca/?p=2434</guid>

					<description><![CDATA[Nicholas Pellegrino is a doctoral student in Systems Design Engineering, supervised by Prof. Paul Fieguth and associated with the Vision and Image Processing (VIP) Lab and the Statistical Image Processing (SIP) Lab. His main research focus is on machine vision, specifically object recognition. In support of the BIOSCAN program, associated with the International Barcode of Life project, Nicholas has undertaken the task of taxonomic order-level insect image classification. Broadly, this research will enable a far more extensive and detailed understanding of global biodiversity and the interactions between species and ecosystems.]]></description>
										<content:encoded><![CDATA[
<p>Nicholas Pellegrino is a doctoral student in Systems Design Engineering, supervised by <a href="https://uwaterloo.ca/systems-design-engineering/profile/pfieguth">Prof.&nbsp;Paul&nbsp;Fieguth</a> and associated with the <a href="http://uwaterloo.ca/vision-image-processing-lab/">Vision and Image Processing (VIP) Lab</a> and the <a href="http://uwaterloo.ca/statistical-image-processing/">Statistical Image Processing (SIP) Lab</a>. His main research focus is on machine vision, specifically object recognition. In support of the <a href="https://ibol.org/programs/bioscan/">BIOSCAN program,</a> associated with the <a href="https://ibol.org/">International Barcode of Life project</a>, Nicholas has undertaken the task of taxonomic order-level insect image classification. Broadly, this research will enable a far more extensive and detailed understanding of global biodiversity and the interactions between species and ecosystems.</p>



<p>During his master&#8217;s degree (also in Systems Design Engineering), Nicholas was associated with <a href="http://www.photomedicinelabs.com">PhotoMedicine Labs</a>, and was co-supervised by <a href="https://uwaterloo.ca/systems-design-engineering/profile/phajirez">Dr.&nbsp;Parsin&nbsp;Haji&nbsp;Reza</a> and <a href="https://uwaterloo.ca/systems-design-engineering/profile/pfieguth">Prof.&nbsp;Paul&nbsp;Fieguth</a>. His main research contributions were in the areas of signal processing, multi-spectral unmixing, and chromophore-selective PARS® imaging with applications in PARS histology and ophthalmology. From his master&#8217;s, Nicholas was awarded the <a href="https://uwaterloo.ca/graduate-studies-postdoctoral-affairs/awards/alumni-gold-medal">Alumni Gold Medal</a>, which recognizes the top graduating master’s student across the whole university for their academic achievement.</p>



<p>Nicholas graduated from Mechatronics Engineering at the University of Waterloo in 2019, completed his master&#8217;s degree with PhotoMedicine labs in 2022, and now is completing a PhD at the Vision and Image Processing lab.</p>



<p>Email: <a href="mailto:nicholas.pellegrino@uwaterloo.ca">nicholas.pellegrino@uwaterloo.ca</a><br>UW Scholar: <a href="https://uwaterloo.ca/scholar/npellegr">https://uwaterloo.ca/scholar/npellegr</a><br>LinkedIn: <a href="https://www.linkedin.com/in/nicholas-nick-pellegrino/">LinkedIn</a><br>Google Scholar: <a href="https://scholar.google.ca/citations?user=eiIC09EAAAAJ&amp;hl=en">Google Scholar</a></p>


<div class="lazyblock-supervisors-1yFua2 wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-ZK6das wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Computer Vision, Machine Learning, Conservation Biology. </div>

<div class="lazyblock-research-175zmD wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/image-segmentation-classification/>Image Segmentation/Classification</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br></div>

<div class="lazyblock-publications-Z15dmMQ wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(57219133414);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shahid Haider</title>
		<link>https://vip.uwaterloo.ca/s-haider/</link>
		
		<dc:creator><![CDATA[Shahid Haider]]></dc:creator>
		<pubDate>Wed, 19 Apr 2023 19:02:53 +0000</pubDate>
				<category><![CDATA[Alexander Wong]]></category>
		<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Computer Vision for Autonomous Robots]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Skin Cancer Detection]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2015]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=2203</guid>

					<description><![CDATA[I am very interested in spectropolarimetric optical imaging techniques and utilizing them for medical purposes. I have extended interests as well in medical image processing and analysis, in particular with prostate MRI.]]></description>
										<content:encoded><![CDATA[
<div style="height:14px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="lazyblock-supervisors-xptaE wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/a-wong/>Alexander Wong</a>, <a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a></div>

<div class="lazyblock-research-interests-Z1LuMBG wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>I am very interested in spectropolarimetric optical imaging techniques and utilizing them for medical purposes. I have extended interests as well in medical image processing and analysis, in particular with prostate MRI.</div>

<div class="lazyblock-research-1riFBY wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/computer-vision-for-autonomous-robots/>Computer Vision for Autonomous Robots</a><br><a href=https://vip.uwaterloo.ca/skin-cancer-detection/>Skin Cancer Detection</a><br></div>

<div class="lazyblock-publications-Z1inIlg wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(56076551000);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wesley Campaigne</title>
		<link>https://vip.uwaterloo.ca/w-campaigne/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 19:45:33 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[M.A.Sc.]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[M.A.Sc. Grad Date: 2012]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1203</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-supervisors-1iixok wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-Z1iLyAr wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-ZqsBfM wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(14833973300);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Farnoud Kazemzadeh</title>
		<link>https://vip.uwaterloo.ca/f-kazemzadeh/</link>
		
		<dc:creator><![CDATA[Farnoud Kazemzadeh]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 19:18:40 +0000</pubDate>
				<category><![CDATA[Alexander Wong]]></category>
		<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[Compressed Sensing]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[David Clausi]]></category>
		<category><![CDATA[Multiplexed Optical High-coherence Interferometry]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Skin Cancer Detection]]></category>
		<category><![CDATA[Stereo Vision for Dimension Estimation]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2016]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1173</guid>

					<description><![CDATA[Design, build, and application of scientific multispectroscopic, hyperspectroscopic, and interferometric imaging systems for various sensing applications: up-looking (astronomy) and down-looking (space instrumentation, Earth sciences, biomedicine, security, military).]]></description>
										<content:encoded><![CDATA[
<p>I am a Ph.D. student researching various imaging systems for different sensing applications.</p>


<div class="lazyblock-supervisors-Z1eTUkp wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/a-wong/>Alexander Wong</a>, <a href=https://vip.uwaterloo.ca/d-clausi/>David Clausi</a></div>

<div class="lazyblock-research-interests-Z24Jcki wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Design, build, and application of scientific multispectroscopic, hyperspectroscopic, and interferometric imaging systems for various sensing applications: up-looking (astronomy) and down-looking (space instrumentation, Earth sciences, biomedicine, security, military).</div>

<div class="lazyblock-research-Z27X7jU wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/compressed-sensing/>Compressed Sensing</a><br><a href=https://vip.uwaterloo.ca/multiplexed-optical-high-coherence-interferometry/>Multiplexed Optical High-coherence Interferometry</a><br><a href=https://vip.uwaterloo.ca/skin-cancer-detection/>Skin Cancer Detection</a><br><a href=https://vip.uwaterloo.ca/stereo-vision-for-dimension-estimation/>Stereo Vision for Dimension Estimation</a><br></div>

<div class="lazyblock-publications-Z1YFGxo wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(26642478300);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>


<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sunil Sinha</title>
		<link>https://vip.uwaterloo.ca/s-sinha/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:20:12 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Image Segmentation/Classification]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2000]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1167</guid>

					<description><![CDATA[I am a Ph.D. student at the VIP lab working under Professor Paul Fieguth. My research involves image segmentation and scientific imaging. Specifically, automated visual inspection of underground pipes.]]></description>
										<content:encoded><![CDATA[
<p>I am a Ph.D. student at the VIP lab working under Professor Paul Fieguth. My research involves image segmentation and scientific imaging. Specifically, automated visual inspection of underground pipes.</p>


<div class="lazyblock-supervisors-ZCsnxF wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-1AbPls wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>My research interests include the automated visual inspection of underground pipes.</div>

<div class="lazyblock-research-aeSsS wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/image-segmentation-classification/>Image Segmentation/Classification</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br></div>

<div class="lazyblock-publications-5AmqJ wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(55450502300);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Simon Alexander</title>
		<link>https://vip.uwaterloo.ca/s-alexander/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:14:30 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2005]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1155</guid>

					<description><![CDATA[Research interests include medical imaging, wavelets, and algorithms.]]></description>
										<content:encoded><![CDATA[
<p>I am currently employed as the manager of software systems development at Tornado Medical Systems, a young medical device startup in Toronto. Here I am responsible for the group doing algorithm research as well as those doing product development and scientific programming.</p>


<div class="lazyblock-supervisors-bkqUV wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-11zCg6 wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Research interests include medical imaging, wavelets, and algorithms.</div>

<div class="lazyblock-research-Z2ed71K wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-Z19EQAx wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(23003247000);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Zohreh Azimifar</title>
		<link>https://vip.uwaterloo.ca/z-azimifar/</link>
		
		<dc:creator><![CDATA[Zohreh Azimifar]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:13:12 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Biomedical Imaging]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Image Segmentation/Classification]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2005]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1152</guid>

					<description><![CDATA[Research interests include statistical learning of generative and discriminative models for massive data sources with particular attention in statistical computer vision and pattern recognition.]]></description>
										<content:encoded><![CDATA[
<p>Associate Professor, Dr Zohreh Azimifar&nbsp;received her B.Sc.&nbsp;degree in computer science and engineering from Shiraz University,&nbsp;Shiraz, Iran, in 1994 and her Ph.D.&nbsp;degree in systems design engineering from the University of Waterloo, Waterloo, Canada, in 2005. In&nbsp;2005, she was a postdoctoral fellow&nbsp;in medical biophysics at the University of Toronto, Toronto, Canada. &nbsp;Since 2006 she has been a faculty&nbsp;member and director of computer&nbsp;vision and pattern recognition lab in&nbsp;computer science and engineering&nbsp;at Shiraz University. Having successfuly designed and impelimented several industrial&nbsp;intelligent vision&nbsp;systems, Dr Azimifar was supported by Shiraz University to establish research center for Intelligent Vision and Image Processing (civip.shirazu.ac.ir) in 2014. During past decade, she has published two books in statistical pattern recogntion and about 100 international journal and conference papers in computer vision and image processing.&nbsp;</p>



<p>At present, Professor Azimifar is director of Public Relations&nbsp;and International affairs of Shiraz University.</p>



<p>Email: <a href="mailto:azimifar%40cse.shirazu.ac.ir">azimifar@cse.shirazu.ac.ir</a></p>


<div class="lazyblock-supervisors-257HG6 wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-1T8Yfm wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Research interests include statistical learning of generative and discriminative models for massive data sources with particular attention in statistical computer vision and pattern recognition.</div>

<div class="lazyblock-research-Z296Buj wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/biomedical-imaging/>Biomedical Imaging</a><br><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/image-segmentation-classification/>Image Segmentation/Classification</a><br><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br></div>

<div class="lazyblock-publications-ZqqdFT wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(7801692462);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Azadeh Mohebi</title>
		<link>https://vip.uwaterloo.ca/a-mohebi/</link>
		
		<dc:creator><![CDATA[vipadmin]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 18:05:36 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2009]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1142</guid>

					<description><![CDATA[Her current research is on statistical pattern recognition and multidimensional data modeling.]]></description>
										<content:encoded><![CDATA[
<p>As a PhD student at the Department of Systems Design Engineering, Azadeh Mohebi started her research with Professor Fieguth in the VIP lab on the statistical fusion of scientific images. Her research was specifically on fusing 2D high-resolution images and MRI low-resolution samples of porous media, using statistical models to generate artificial 2D images with higher resolution.</p>



<p>She is currently a lecturer and researcher at the Amirkabir University of Technology, Department of Computer Engineering and Information Technology, and University of Economic Science.</p>


<div class="lazyblock-supervisors-Z1NsLe4 wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-ZuS9gY wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>Her current research is on statistical pattern recognition and multidimensional data modeling.</div>

<div class="lazyblock-research-Z1fn2W8 wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br></div>

<div class="lazyblock-publications-ZKKegV wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(14834280200);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ying Liu</title>
		<link>https://vip.uwaterloo.ca/y-liu/</link>
		
		<dc:creator><![CDATA[Ying Liu]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 17:54:17 +0000</pubDate>
				<category><![CDATA[Alumni]]></category>
		<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Multiresolution Techniques]]></category>
		<category><![CDATA[Paul Fieguth]]></category>
		<category><![CDATA[Ph.D.]]></category>
		<category><![CDATA[Porous Media]]></category>
		<category><![CDATA[Remote Sensing]]></category>
		<category><![CDATA[SAR Sea Ice Image Synthesis]]></category>
		<category><![CDATA[Scientific Imaging]]></category>
		<category><![CDATA[Stochastic Models]]></category>
		<category><![CDATA[Video Analysis]]></category>
		<category><![CDATA[Ph.D. Grad Date: 2011]]></category>
		<guid isPermaLink="false">https://wwwvip.uwaterloo.ca/?p=1136</guid>

					<description><![CDATA[My research interests lie in multidimensional signal processing, statistical modeling, and machine learning. My work is focused on the developing methodology and application algorithms for multivariate data analysis, multiresolution representation and estimation, in particular, for image and video processing, remote sensing and scientific sensing data modeling and analysis.]]></description>
										<content:encoded><![CDATA[
<p>Ying Liu received her Ph.D. degree in the field of signal and image processing at the University of Waterloo in the department of Systems Design Engineering in 2011. She received her B.E. degree from Huazhong University of Science and Technology, and her M.Sc. from Chinese Academy of Science.</p>



<p>Her research is primarily in image and video processing, statistical modeling and machine learning. She has published and reviewed several papers for key journals and conferences in the related areas of image processing, image analysis and pattern recognition.</p>



<p>Before her PhD, Ying worked for four years on the research and development of signal processing for underwater systems. In 2010, she collaborated with the compression research group in Research In Motion Ltd. on video processing research for the coming standard HEVC. Recently, she is collaborating with Center of Pattern Analysis and Machine Intelligence, University of Waterloo and working on data analysis and machine learning.</p>



<p>Email: <a href="mailto:y30liu%40engmail.uwaterloo.ca">30liu@engmail.uwaterloo.ca</a></p>


<div class="lazyblock-supervisors-18AoPb wp-block-lazyblock-supervisors"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Supervisors</div><a href=https://vip.uwaterloo.ca/p-fieguth/>Paul Fieguth</a></div>

<div class="lazyblock-research-interests-Z13u2SG wp-block-lazyblock-research-interests"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research interests</div>My research interests lie in multidimensional signal processing, statistical modeling, and machine learning. My work is focused on the developing methodology and application algorithms for multivariate data analysis, multiresolution representation and estimation, in particular, for image and video processing, remote sensing and scientific sensing data modeling and analysis.</div>

<div class="lazyblock-research-15F0q wp-block-lazyblock-research"><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research topics</div><a href=https://vip.uwaterloo.ca/computer-vision/>Computer Vision</a><br><a href=https://vip.uwaterloo.ca/multiresolution-techniques/>Multiresolution Techniques</a><br><a href=https://vip.uwaterloo.ca/remote-sensing/>Remote Sensing</a><br><a href=https://vip.uwaterloo.ca/scientific-imaging/>Scientific Imaging</a><br><a href=https://vip.uwaterloo.ca/stochastic-models/>Stochastic Models</a><br><a href=https://vip.uwaterloo.ca/video-analysis/>Video Analysis</a><br><link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Serif+Pro'>
  <div style='margin-bottom: 0.6rem; font-family: Source Serif Pro, Georgia, Times New Roman, serif; font-size: 3rem; font-weight: bold;'>Research demos</div><a href=https://vip.uwaterloo.ca/porous-media/>Porous Media</a><br><a href=https://vip.uwaterloo.ca/sar-sea-ice-image-synthesis/>SAR Sea Ice Image Synthesis</a><br></div>

<div class="lazyblock-publications-Z20sJ5I wp-block-lazyblock-publications"><meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Serif+Pro">

  <!-- Load external CSS styles -->
  <link rel="stylesheet" href="../stylesbootstrap.css">

<style>

#peoplePublications {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 3rem;
    text-align: start;
    margin-bottom: 0.6em;
}

#peoplePublications ~ span {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    font-weight: bold;
    font-size: 1.75rem;
    text-align: start;
    margin-bottom: 0.5em;
}

#nav {
    text-align: start;
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    margin-bottom: 0.5em;
    margin-left: 0;
    padding-left: 0;
}

#nav a {
    text-decoration-line: underline;
}

#nav a:hover {
    text-decoration-line: none;
}

#mainContent {
    max-width: 100%;
}

#pubDataJournals {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}

#pubDataConference {
    font-family: "Source Serif Pro", "Georgia", "Times New Roman", "serif";
    padding-left: 0;
    font-size: 1.75rem;
    white-space: pre-wrap;
}
</style>

  <!--Main Content-->
  <div class="container mt-5" id="mainContent">
  
   <div class="row">
      <div class="col ps-0" id="peoplePublications">Publications</div>
      <div id="nav">
        <a href="#journalArticles">Journal Articles</a>
        <span> / </span>
        <a href="#conferencePapers">Conference Papers</a>
      </div>
      <span id="journalArticles" class="ps-0">Journal Articles</span>
      <p id="pubDataJournals">
        <!-- journal data from JS here -->
      </p>
      <span id="conferencePapers" class="ps-0">Conference Papers</span>
      <div id="nav">
        <a href="#peoplePublications">Top</a>
      </div>
      <p id="pubDataConference">
        <!-- conference paper data from JS here -->
      </p>
    </div>
  </div>

<script>
	  let pubDataJournals = "";
	  let pubDataConference = "";
    let publications = [];
    const apiID = "https://ecserv2.uwaterloo.ca/researchmicro/research/reverseauthor.php?scopus_id="
    const api = "https://ecserv2.uwaterloo.ca/researchmicro/research/publications.php?user=";
    const openAccess = "https://bg.api.oa.works/find?id=";
    let userID;
    getNexus(57192565882);

    async function getNexus(scopusID)
    {
        let userInfo = await fetch(apiID+scopusID);
        let userInfoText = await userInfo.text();
        if(userInfoText == "Sorry, you do not have a Scopus ID assigned")
        {
          document.getElementById('peoplePublications').style.display = "none";
          document.querySelectorAll('[id="nav"]')[0].style.display = "none";
          document.querySelectorAll('[id="nav"]')[1].style.display = "none";
          document.getElementById('journalArticles').style.display = "none";
          document.getElementById('conferencePapers').style.display = "none";
          document.getElementById('pubDataJournals').style.display = "none";
          document.getElementById('pubDataConference').style.display = "none";
        }
        else
        {
          userID = JSON.parse(userInfoText).rows.nexus;
          displayPublications();
        }
    }

    async function getOA(searchQuery)
    {
        let openInfo = await fetch(openAccess + searchQuery);
        let openInfoText = await openInfo.text();
        return JSON.parse(openInfoText).url;
    }

    async function getPublications(file) {
        let publicationData = await fetch(file);
        let pubText = await publicationData.text();
        pubText = pubText.replace("=", ":"); //correcting API issue with = instead of :
        return JSON.parse(pubText);
    }

    function generateLink(id, title)
    {
        id.onclick = "";
        title = title.replaceAll(/ /g, '%20');
        id.innerHTML = "loading..."
        getOA(title).then(
            function(value)
            {
                if(value == null)
                {
                    id.innerHTML = "Search UWaterloo Library";
                    id.href = 'https://ocul-wtl.primo.exlibrisgroup.com/discovery/search?query=any,contains,' + title + '&tab=OCULDiscoveryNetwork&search_scope=OCULDiscoveryNetwork&vid=01OCUL_WTL:WTL_DEFAULT&lang=en&offset=0';
                    id.target = "_blank";
                }
                else
                {
                    id.href = value;
                    id.target = "_blank";
                    id.innerHTML = "Open";
                }
            },
            function(error)
            {
                id.href = "#";
                id.innerHTML = "Not found";
            });
    }

    function isConference(publication)
    {
    	return publication.volume == 0 || publication.pub_name.includes("Conference") || publication.pub_name.includes("Proceedings") || publication.pub_name.includes("Lecture Notes") || publication.pub_name.includes("Symposium");
   	}

   function displayPublications() {
	    getPublications(api+userID).then(
            function(value) {
                const size = value.rows.length;
                let pubListJournals = "";
                let pubListConference = "";
                for(var i = 0; i < size; i++)
                            {
                                let publication = "";
                                let authors = value.rows[i].list_names_of_authors.split(", ");
                                lastIndex = authors.length - 1;
                                authors[lastIndex] = authors[lastIndex].slice(4, authors[lastIndex].length - 1);
                                let possibleSupervisors = ["Clausi D.", "Fieguth P.W.", "Fieguth P.", "Wong A.", "Zelek J.", "Xu L.", "Scott A.", "Rambhatla S.", "Lee J.", "Chen Y.", "Shafiee M.J."];
                                if(authors.some(r=>possibleSupervisors.includes(r)))
                                {
                                for(var j = 0; j <= lastIndex; j++)
                                {  
                                    let authorLink = "";
                                    let authorsLC = authors[j].toLowerCase();
                                    if(j == lastIndex)
                                    {
                                        if(authorsLC.includes("."))
                                        {  
                                            authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        else
                                        {
                                            authorLink += authorsLC.charAt(authorsLC.length - 1);
                                            authorLink += "-";
                                            authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        }
                                        
                                    }
                                    else
                                    {
                                        authorLink += authorsLC.charAt(authorsLC.indexOf(".") - 1);
                                        authorLink += "-";
                                        authorLink += authorsLC.slice(0, authorsLC.indexOf(" "));
                                        
                                    }
                                    authorLink = 'https://vip.uwaterloo.ca/' + authorLink;
                                    if(j != lastIndex)
                                    {
                                        publication += `<a href='${authorLink}' target='_blank'>${authors[j]}</a>` + ", ";
                                    }
                                    else 
                                    {
                                        publication += "and " + `<a href='${authorLink}' target='_blank'>${authors[j]}</a>`;
                                    }
                                }

                                publication += ', "';
                                
                                publication += value.rows[i].title;
                                
                                publication += '", ';
                                publication += value.rows[i].pub_name;
                                if (!isConference(value.rows[i]))
                                {
                                    publication += ", vol. ";
                                    publication += value.rows[i].volume;
                                    publication += ", ";
                                }
                                if (value.rows[i].page_range != "" && !isConference(value.rows[i]))
                                {
                                    publication += "pp. ";
                                    publication += value.rows[i].page_range;
                                    publication += ", ";
                                }
                                else if(isConference(value.rows[i]))
                                {
                                    publication += ", ";
                                }
                                publication += value.rows[i].year;
                                publication += ". ";
                                publication += `<a href="#" onclick="generateLink(this, '${value.rows[i].title}');event.preventDefault();">Get it here.</a>`;
                                
                                publication += "\n\n";
                                if (isConference(value.rows[i]))
                                {
                                    pubListConference += publication;
                                }
                                else
                                {
                                      pubListJournals += publication;
                                }
                                }
                            }
                document.getElementById('pubDataJournals').innerHTML = pubListJournals;
                document.getElementById('pubDataConference').innerHTML = pubListConference;
                if(pubListConference == "")
                {
                   document.getElementById('conferencePapers').style.display = "none";
                }
                if(pubListJournals == "")
                {
                  document.getElementById('journalArticles').style.display = "none";
                }
            },
            function(error) {document.getElementById('pubDataJournals').innerHTML = "Error retrieving data.";}
        )
    }

   
</script></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
