{"id":5005,"date":"2020-07-29T12:14:29","date_gmt":"2020-07-29T11:14:29","guid":{"rendered":"https:\/\/www.theoaklandgroup.co.uk\/?p=5005"},"modified":"2020-07-29T12:14:29","modified_gmt":"2020-07-29T11:14:29","slug":"modelling-waste-water-resource-management-via-graph-theory","status":"publish","type":"post","link":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/","title":{"rendered":"Modelling waste-water resource management via graph theory."},"content":{"rendered":"<h3><strong>A data engineer, some waste-water and graph theory walk into a bar\u2026..<\/strong><\/h3>\n<p><strong>Sludge 101<\/strong><br \/>\nRight, before we delve any deeper into this, there\u2019s clearly a few questions that need answering. Whilst I imagine the majority of people could have a good stab at telling you what a data engineer does and that graph theory is something to do with maths, I\u2019m going to assume they are less au fait with the world of waste water treatment and sludge.<\/p>\n<p>So to quickly get people up to speed I\u2019ve thrown up a quick Q&amp;A, a sort of elevator pitch for sludge\u2026<\/p>\n<p><strong>What is sludge and how does it relate to waster water?\u00a0<\/strong><\/p>\n<p>Sludge is a colloquial term for the biological matter that is removed during the treatment of waster water.<\/p>\n<p><strong>Is it important?\u00a0<\/strong><\/p>\n<p>Whilst obviously sludge will never top a water companies priority list, it is still a very important aspect of water treatment and recycling, which is essential for continuing water supplies.<\/p>\n<p><strong>What happens to it?\u00a0<\/strong><\/p>\n<p>Once treated to remove harmful bacteria, sludge is used in agriculture to help fertilise soil and crops.<\/p>\n<p><strong>Why should I care?\u00a0<\/strong><\/p>\n<p>Well as with most utilities the only way you\u2019ll ever need to care is if the price goes up (however for water this is highly regulated) or if something goes wrong. In the latter case this could impact a water companies general operations, which you never want and is why they take it rather seriously!<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5006\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/ww_treatment.jpg\" alt=\"\" width=\"1462\" height=\"556\" \/><br \/>\n<em>Figure 1 &#8211; The conventional waste water treatment process, generating sludge<\/em><\/p>\n<h3><strong>So how do you solve a problem like\u2026 Sludge?<\/strong><\/h3>\n<p>Now you know a bit more about what sludge is, we can go into the treatment process and how this has brought about an interesting planning problem!<\/p>\n<p>Once produced at a water treatment facility sludge can be handled in two key ways, it can either be thickened to one of two levels of water density or sent directly to where it it can be digested (as shown in figure 2), a process which also produces bio-gas that can be used to generate electricity. A water company will hold a number of each of these different site types, those that just produce raw, unthickened sludge, those that produce raw sludge and can thicken it to one of the two levels, or finally those that produce raw sludge and can digest it.<\/p>\n<p>This collection of sites is what presents our problem, we have a number of sites each with a specialised job and an amount of sludge produced daily that requires treatment. So how do we balance the capacity of these sites and also the resources required to move the material, whilst being cost effective (since the cost to the customer is fixed over time periods, the best way for water companies to operate is internal efficiency)?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5007\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/sludge_treatment.jpg\" alt=\"\" width=\"2100\" height=\"784\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 2 &#8211; The sites and movements involved in sludge production and treatment<\/em><\/p>\n<p style=\"text-align: left;\">Well on the surface it may appear there\u2019s a simple-ish answer to this, we have a site type than can handle any type of sludge and gives us the end product whilst producing useful biogas, so problem solved! Sadly however it\u2019s not that simple (though I doubt anyone would need help with this problem if it were\u2026), for a few reasons, a couple of which I\u2019ve listed below.<\/p>\n<ul>\n<li>Sites have limited import capacity, and calculating the movement from a large number of sites to few final processing sites can become a tough balancing act.<\/li>\n<li>Sites have a limit on vehicle access, and since unthickened sludge takes a lot of vehicles to move due to the higher water content this presents a whole world of transport pain.<\/li>\n<li>Some sites are very far from the end product site, meaning it can require a lot of drivers and vehicles to move it there, as opposed to using an intermediate thickening site.<\/li>\n<li>End sites can have varying costs based on the type of sludge their taking in, so shipping everything straight there can leave you worse off financially.<\/li>\n<\/ul>\n<p>Well now that we know why it\u2019s not that simple, how can we go about actually solving this? Well since we\u2019ve explained the waste-water involvement and the data engineer hasn\u2019t got enough fingers to work it out for ~ 600 treatment sites we\u2019re only left with graph theory from the rather leading section title! So I guess I should probably introduce that, and then we can get cracking on the actual problem!<\/p>\n<p><strong>Not wanting to be too graphic\u2026.<\/strong><\/p>\n<p>First off, I\u2019m going to throw in the disclaimer that I\u2019m a novice mathematician at best, with my knowledge mostly centered around statistics. As such this is going to be a fairly basic, but helpful, overview of the topic, therefore if you feel like you know enough already I\u2019d jump into the next section looking at how the networks were actually designed.<\/p>\n<p>Now that\u2019s over with, it\u2019s worth mentioning that whilst graphs and graph theory share a fundamental element that they are structures utilised to understand the connectivity between data, they are not the same thing. Graph theory is a branch of maths that utilises objects made up of nodes (the related items, such as people in an online community) and edges (the connections between nodes), with an example shown below in figure 3. These graphs can be built up into different forms, with edges taking on various aspects such as a measure of connectivity, capacity, cost or similarity, that are then used to solve various problems such as how connected are two individuals in a social network, or how can we cluster two groups of genes based on how they interact with each other. A final key aspects of graphs, at least from the point of this work, is that they can be undirected, flow can move both ways across an edge, or directed, flow is unidirectional across an edge.<\/p>\n<p>In our case, we can build up the sites as nodes in a directed graph, with edges containing information on capacity and costs, allowing us to utilise a network based algorithm to solve for the production in the network at the minimum cost based on the information provided in the edges.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5010\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/example_network.jpg\" alt=\"\" width=\"1072\" height=\"767\" \/><\/p>\n<p style=\"text-align: center;\">Figure 3 &#8211; An example graph made up of a collection of nodes (circles) and edges (lines)<\/p>\n<p style=\"text-align: left;\"><strong>Expanding our network\u2026.<\/strong><\/p>\n<p style=\"text-align: left;\">So now we have the component concepts down how do we go about creating a network (or graph) of our sites and solving our problem? Well for ease of visualisation I\u2019ll showcase it using a toy example of around 6 sites, which still incorporates all our required site types, but I\u2019ll also explain a couple of the important elements that are needed when scaling up to a full set of sites.<\/p>\n<p>Starting simple, below is the code to build a 6 site network (which is also shown in figure 4), with connections moving down through the site types, i.e raw sludge producing sites (type A) can connect to any site except their own type, first thickener sites (type B) can connect to further thickeners (type C) and final sites (type D), etc, etc. In the real network this is controlled by giving sites numeric ranks based on their type, which can then be used to filter connections, allowing a site type change in the input data to subsequently be deployed in the network. This gives some flexibility if say the equipment malfunctions at a site and can no longer perform its defined function.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5014\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/code_bloc_1.jpg\" alt=\"\" width=\"756\" height=\"478\" \/><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5009\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/6_site_network.jpg\" alt=\"\" width=\"1341\" height=\"1142\" \/><br \/>\n<em>Figure 4 &#8211; A representation of the network produced in the code above<\/em><\/p>\n<p>Okay, so now we have a representative network we can go ahead and solve it right? Well not just yet actually, there\u2019s a couple of things we need to do to make it truly representative, one on the actual structure of the network and a few in the data that feeds it (though I\u2019ll just discuss these rather than writing out the associated data tables!)<\/p>\n<p>Starting with the more data centric adjustments, which fall into two main categories, there is a need to adjust capacities based on indigenous production and also alter costs to highlight the distance between sites, why these are required is explained below.<\/p>\n<p>Moving on to the structural element, the main issue we have with the current set up is that it can\u2019t control for a nodes capacity, as this is designated on the edges. As an example, node C above may have a capacity of 3, which is reflected in each of the edges, however as there is no capacity measure on the node this may allow the network to send more than 3 units to said node. We can remove this problem by using \u201cgate-nodes\u201d, as shown in figure 5, that sit in front of those that can receive multiple inputs, controlling the total flow towards it. In order to do this we\u2019ll need to rebuild our above network, with a few additional elements.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5013\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/code_bloc_2.jpg\" alt=\"\" width=\"758\" height=\"513\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5008\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/6_site_gated_network.jpg\" alt=\"\" width=\"1704\" height=\"1371\" \/><\/p>\n<div class=\"figure\">\n<p class=\"caption\" style=\"text-align: center;\">Figure 5 &#8211; A representation of the above network, including gate nodes<\/p>\n<\/div>\n<p>Now that we have a complete network we can utilise an algorithm in order to solve the problem, at hand, i.e dealing with the production in the system (designated by the -ve demand in the nodes above) through the available capacity and at the lowest associated cost. There are a number of algorithms utilised to deal with flow in graph theory, such as Edmonds-Karp and max-flow, however the most appropriate for this scenario is a linear solving method known as the network simplex model. In essence, this solver works by moving units through the network from production sites to sink sites for the lowest possible cost, altering movements where a cheaper solution can be found.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5012\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/code_bloc_3.jpg\" alt=\"\" width=\"760\" height=\"183\" \/><\/p>\n<p>Shown above are the outputs of this method, namely a total cost of the optimal solution and also the node to node flow, which can then be used to build any associated outputs that may be required. These would likely encompass details such as the amount of biogas generated, associated transport costs and distances, chemical requirements and other costs that may arise in the process. Such outputs could then be summarised to provide different detail levels required by different people, i.e high detail for those involved in detailed planning and lower detail for those solely interested in cost and resource implications at the top level. Outputs at levels similar to what is discussed above is shown in figure 6.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5011\" src=\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/01\/outputs_example.jpg\" alt=\"\" width=\"2003\" height=\"902\" \/><\/p>\n<p style=\"text-align: center;\"><em>Figure 6 &#8211; Example outsputs at the sludge movement and aggregated run level<\/em><\/p>\n<p style=\"text-align: left;\"><strong>So no more sludge problems?<\/strong><\/p>\n<p style=\"text-align: left;\">Whilst I can hope this short intro is enlightening and somewhat entertaining, I can\u2019t say that its definitively solved the problem. For one there\u2019s a few elements that I\u2019ve not incorporated just to keep the article from expanding into a waste-water based mess\u2026<\/p>\n<p>This includes aspects like additional gate nodes for dealing with the amount of high and low liquid density loads a site can deal with and the variable capacity aspects derived from biogas generation and other elements (ie the production of biogas lowers the cost of treatment up to a certain threshold, so at least 2 costs are required based on a nodes capacity).<\/p>\n<p>Then there\u2019s how the input and output data is manipulated to either adjust the input data, for things calculating the variable cost implications from biogas generation, or build up the output data, to give the required detail for elements that feed into the process such as chemical usage.<\/p>\n<p>Finally there\u2019s how to actually build and deploy the above as a solution, it\u2019s no help to anyone if it\u2019s just sitting on a laptop waiting for someone to run it. It needs to be built up into a maintainable, scalable application, which most likely relies on utilising some open source software (we\u2019ve already made a start by using Python to create and run the graph) and getting in running either on premise or in the cloud where it can be used effectively!<\/p>\n<p>(I will however point out that it would be somewhat remiss of me to bring up these questions if I hadn\u2019t gone through them myself whilst attempting to solve this problem)<\/p>\n<p><strong>Richard Louden is a Data Scientist at The Oakland Group<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A data engineer, some waste-water and graph theory walk into a bar\u2026.. Sludge 101 Right, before we delve any deeper into this, there\u2019s clearly a few questions that need answering. Whilst I imagine the majority of people could have a good stab at telling you what a data engineer does and that graph theory is&#8230;<\/p>\n","protected":false},"author":3,"featured_media":5015,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[160],"tags":[97,8,213,32,214,215,216],"class_list":["post-5005","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-talk","tag-advanced-analytics","tag-data-science","tag-graph-theory","tag-machine-learning","tag-sludge-modelling","tag-utilities","tag-water-waste-management"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Modelling Waste-Water Resource Management | Oakland<\/title>\n<meta name=\"description\" content=\"Find out more about modelling waste-water resource management via graph theory.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modelling waste-water resource management via graph theory.\" \/>\n<meta property=\"og:description\" content=\"Find out more about modelling waste-water resource management via graph theory.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\" \/>\n<meta property=\"og:site_name\" content=\"Oakland\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-29T11:14:29+00:00\" \/>\n<meta name=\"author\" content=\"NicolaThomsonOKG\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dataispeople\" \/>\n<meta name=\"twitter:site\" content=\"@dataispeople\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"NicolaThomsonOKG\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\"},\"author\":{\"name\":\"NicolaThomsonOKG\",\"@id\":\"https:\/\/weareoakland.com\/#\/schema\/person\/2c1329190831e35a1d7a01b1bfacd90a\"},\"headline\":\"Modelling waste-water resource management via graph theory.\",\"datePublished\":\"2020-07-29T11:14:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\"},\"wordCount\":2044,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/weareoakland.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"advanced analytics\",\"data science\",\"graph theory\",\"machine learning\",\"sludge modelling\",\"utilities\",\"water waste management\"],\"articleSection\":[\"Tech Talk\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\",\"url\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\",\"name\":\"Modelling Waste-Water Resource Management | Oakland\",\"isPartOf\":{\"@id\":\"https:\/\/weareoakland.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2020-07-29T11:14:29+00:00\",\"description\":\"Find out more about modelling waste-water resource management via graph theory.\",\"breadcrumb\":{\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/weareoakland.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Modelling waste-water resource management via graph theory.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/weareoakland.com\/#website\",\"url\":\"https:\/\/weareoakland.com\/\",\"name\":\"Oakland\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/weareoakland.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/weareoakland.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/weareoakland.com\/#organization\",\"name\":\"Oakland\",\"url\":\"https:\/\/weareoakland.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/weareoakland.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/02\/Oakland-White-logo.png\",\"contentUrl\":\"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/02\/Oakland-White-logo.png\",\"width\":3372,\"height\":648,\"caption\":\"Oakland\"},\"image\":{\"@id\":\"https:\/\/weareoakland.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/dataispeople\",\"https:\/\/www.linkedin.com\/company\/oakland-group\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/weareoakland.com\/#\/schema\/person\/2c1329190831e35a1d7a01b1bfacd90a\",\"name\":\"NicolaThomsonOKG\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"NicolaThomsonOKG\"},\"url\":\"https:\/\/weareoakland.com\/blog\/author\/nicolathomsonokg\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Modelling Waste-Water Resource Management | Oakland","description":"Find out more about modelling waste-water resource management via graph theory.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/","og_locale":"en_GB","og_type":"article","og_title":"Modelling waste-water resource management via graph theory.","og_description":"Find out more about modelling waste-water resource management via graph theory.","og_url":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/","og_site_name":"Oakland","article_published_time":"2020-07-29T11:14:29+00:00","author":"NicolaThomsonOKG","twitter_card":"summary_large_image","twitter_creator":"@dataispeople","twitter_site":"@dataispeople","twitter_misc":{"Written by":"NicolaThomsonOKG","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#article","isPartOf":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/"},"author":{"name":"NicolaThomsonOKG","@id":"https:\/\/weareoakland.com\/#\/schema\/person\/2c1329190831e35a1d7a01b1bfacd90a"},"headline":"Modelling waste-water resource management via graph theory.","datePublished":"2020-07-29T11:14:29+00:00","mainEntityOfPage":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/"},"wordCount":2044,"commentCount":0,"publisher":{"@id":"https:\/\/weareoakland.com\/#organization"},"image":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage"},"thumbnailUrl":"","keywords":["advanced analytics","data science","graph theory","machine learning","sludge modelling","utilities","water waste management"],"articleSection":["Tech Talk"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/","url":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/","name":"Modelling Waste-Water Resource Management | Oakland","isPartOf":{"@id":"https:\/\/weareoakland.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage"},"image":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage"},"thumbnailUrl":"","datePublished":"2020-07-29T11:14:29+00:00","description":"Find out more about modelling waste-water resource management via graph theory.","breadcrumb":{"@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/weareoakland.com\/blog\/modelling-waste-water-resource-management-via-graph-theory\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/weareoakland.com\/"},{"@type":"ListItem","position":2,"name":"Modelling waste-water resource management via graph theory."}]},{"@type":"WebSite","@id":"https:\/\/weareoakland.com\/#website","url":"https:\/\/weareoakland.com\/","name":"Oakland","description":"","publisher":{"@id":"https:\/\/weareoakland.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/weareoakland.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/weareoakland.com\/#organization","name":"Oakland","url":"https:\/\/weareoakland.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/weareoakland.com\/#\/schema\/logo\/image\/","url":"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/02\/Oakland-White-logo.png","contentUrl":"https:\/\/weareoakland.com\/wp-content\/uploads\/2024\/02\/Oakland-White-logo.png","width":3372,"height":648,"caption":"Oakland"},"image":{"@id":"https:\/\/weareoakland.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/dataispeople","https:\/\/www.linkedin.com\/company\/oakland-group"]},{"@type":"Person","@id":"https:\/\/weareoakland.com\/#\/schema\/person\/2c1329190831e35a1d7a01b1bfacd90a","name":"NicolaThomsonOKG","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"NicolaThomsonOKG"},"url":"https:\/\/weareoakland.com\/blog\/author\/nicolathomsonokg\/"}]}},"_links":{"self":[{"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/posts\/5005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/comments?post=5005"}],"version-history":[{"count":0,"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/posts\/5005\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/weareoakland.com\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/media?parent=5005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/categories?post=5005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/weareoakland.com\/wp-json\/wp\/v2\/tags?post=5005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}