wyrdforge

wyrdforge

Best practice for creating a dashboard chart for heat distribution in waste incinerators

Hi all,

in short, I am looking for best practices on visualizing (and maybe animating) specific data inside a phoenix app as a 3d chart.

Some background:
I am currently working on a prototype for a status and logbook portal for our waste incineration plant. This will aggregate metrics and logs from our OT systems and store them in Grafana Mimir and Loki via different interfaces (PromEx, AMQP, OpenTelemetry…)

The task I am currently chewing on:
Visualize imbalances in heat distribution inside the incineration boilers. This hints to the perfect time for a maintenance shutdown and scheduling of an explosive pressure wave cleaning (the process creates a really hard crust of salts and other remains) of the boiler internals.

Data structure:
The boiler data is built of positional temperature values in a 6X10x4 matrix and a 6x3x2 matrix for the funnel, that gathers lose salts. These values can be converted to RGB values by thresholds.

I already looked at chart.js and vega-lite, but the nearest thing would be a vega-lite geoshape, which I think is hard to set up for my case, or several heatmaps, that had to be skewed in order to resemble at least a bit of the boiler structure:

An additional task would be, to be able to switch through the last 90 days or so (which I think could be “easily” done with vega-lite controls.

Has anyone built something similar already and could hint me in the right direction, which approach and tooling would be the most efficient for the visualization? Or has anyone realized this with less effort in Grafana itself, so the charts could be embedded?

Best regards
Marcel

Most Liked

cmo

cmo

I think the important thing is finding the right charting library for the use case. There is certainly no shortage of them. Apache echarts is pretty feature-full and has 3d.

wyrdforge

wyrdforge

Thank you all for your input :smiley:

After some research, I think, I will go the easy route first for the prototype and just present 4 or 5 side-by-side, animated heatmaps.

For the MVP I will either look deeper into echarts, which I didn´t know yet, because it looks really powerful and ssems to have just what we need (maybe we can map the data onto cylindral surfaces for every boiler) or try to realize something with vega to stay in a bit more known waters. Scanning the full documentation and finding the platformer game, gave me some inspiration for a potential solution.

cmo

cmo

I know how you feel. I work for industrial customers and recently my scope was “I just want I to look cool” :smiling_face_with_sunglasses:.

I recently built an animation of machine production cycles with liveview and echarts. It is so close to working as I would like it to but will try d3 to get full control, when I have a spare moment.

Where Next?

Popular in Questions Top

9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Other popular topics Top

New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43757 214
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54120 245
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

We're in Beta

About us Mission Statement