{"id":185583,"date":"2017-11-07T17:57:19","date_gmt":"2017-11-07T17:57:19","guid":{"rendered":"https:\/\/thinklucid.com\/camera-sensor-review\/"},"modified":"2026-07-24T00:04:43","modified_gmt":"2026-07-24T07:04:43","slug":"camera-sensor-review","status":"publish","type":"page","link":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/","title":{"rendered":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column]\n\t\t\t\t<p class=\"rs-p-wp-fix\"><\/p>\n\t\t\t\t<sr7-module data-alias=\"emva1288\" data-id=\"6\" id=\"SR7_6_1\" data-version=\"7.1.4\">\n\t\t\t\t\t<sr7-adjuster><\/sr7-adjuster>\n\t\t\t\t\t<sr7-content>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_6_1-4\" data-key=\"4\">\n\t\t\t\t\t\t\t<sr7-bg id=\"SR7_6_1-4-10\" class=\"sr7-layer\"><noscript><img data-opt-id=119710260  decoding=\"async\" src=\"https:\/\/mlxrlrwirvff.i.optimole.com\/cb:UhP2~57313\/w:auto\/h:auto\/q:75\/https:\/\/thinklucid.com\/wp-content\/uploads\/2017\/08\/emva1288-banner3.jpg\" alt=\"EMVA 1288 banner\" title=\"\"><\/noscript><\/sr7-bg>\n\t\t\t\t\t\t\t<h1 id=\"SR7_6_1-4-6\" class=\"sr7-layer\">EMVA 1288: Kamerasensoren im Vergleich<\/h1>\n\t\t\t\t\t\t\t<sr7-layer id=\"SR7_6_1-4-7\">F\u00fcr viele K\u00e4ufer von Industriekameras gehen die Anforderungen \u00fcber Megapixel und Bildrate hinaus. Bildqualit\u00e4t und Empfindlichkeit sind in anspruchsvollen Anwendungen zunehmend entscheidend. Verl\u00e4ssliche und vergleichbare Messwerte finden Sie in den EMVA 1288-Ergebnissen des jeweiligen Kameramodells.<\/sr7-layer>\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_6_1-533\" data-key=\"533\">\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t<\/sr7-content>\n\t\t\t\t\t<image_lists style=\"display:none\">\n\t\t\t\t\t\t<img decoding=async data-opt-id=184416435  data-src=\"https:\/\/mlxrlrwirvff.i.optimole.com\/cb:UhP2~57313\/w:auto\/h:auto\/q:75\/ig:avif\/https:\/\/thinklucid.com\/wp-content\/uploads\/2017\/07\/tech-brief-logo.svg\" data-libid=\"3290\" alt=\"Lucid Tech Brief\" width=\"0\" height=\"0\" data-dbsrc=\"Ly90aGlua2x1Y2lkLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxNy8wNy90ZWNoLWJyaWVmLWxvZ28uc3Zn\"\/>\n\t\t\t\t\t\t<img decoding=async data-opt-id=315630709  data-src=\"https:\/\/mlxrlrwirvff.i.optimole.com\/cb:UhP2~57313\/w:auto\/h:auto\/q:75\/ig:avif\/https:\/\/thinklucid.com\/wp-content\/uploads\/2017\/08\/emva1288-logo-1.svg\" data-libid=\"4485\" alt=\"EMVA 1288 Logo\" width=\"0\" height=\"0\" data-dbsrc=\"Ly90aGlua2x1Y2lkLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxNy8wOC9lbXZhMTI4OC1sb2dvLTEuc3Zn\"\/>\n\t\t\t\t\t<\/image_lists>\n\t\t\t\t<\/sr7-module>\n\t\t\t\t<script>\n\t\t\t\t\twindow.SR7??={}; SR7.PMH ??={}; SR7.PMH[\"SR7_6_1\"] = {cn:100,state:false,fn: function() { if (window._tpt!==undefined && window._tpt.prepareModuleHeight !== undefined) {  _tpt.prepareModuleHeight({id:\"SR7_6_1\",el:[868,868,868,545,545],type:'hero',gh:[868,868,868,545,545],gw:[1240,1240,1240,778,778],vpt:['100px'],size:{fullWidth:true, fullHeight:false},mh:'0',onh:0,onw:0,bg:{color:'{\"orig\":\"transparent\",\"type\":\"solid\",\"string\":\"transparent\"}'}});   SR7.PMH[\"SR7_6_1\"].state=true;} else if(SR7.PMH[\"SR7_6_1\"].cn-->0)\tsetTimeout( SR7.PMH[\"SR7_6_1\"].fn,19);}};SR7.PMH[\"SR7_6_1\" ].fn();\n\t\t\t\t<\/script>\n[vc_raw_html css=&#8220;&#8220;]JTNDbmF2JTIwY2xhc3MlM0QlMjJmYXJtLXN0aWNreS1uYXYlMjIlMjBhcmlhLWxhYmVsJTNEJTIyQWJzY2huaXR0c25hdmlnYXRpb24lMjIlM0UlMEQlMEElMjAlMjAlM0NkaXYlMjBjbGFzcyUzRCUyMmZhcm0tc3RpY2t5LXRpdGxlJTIyJTNFRGlyZWt0JTIwenUlM0ElM0MlMkZkaXYlM0UlMEQlMEElMjAlMjAlM0NhJTIwaHJlZiUzRCUyMiUyM2x1Y2lkLXFlLW1vZHVsZSUyMiUyMGNsYXNzJTNEJTIyZmFybS1zdGlja3ktbGluayUyMGFjdGl2ZSUyMiUzRVFFJTIwYmVpJTIwYXVzZ2V3JUMzJUE0aGx0ZXIlMjBXZWxsZW5sJUMzJUE0bmdlJTNDJTJGYSUzRSUwRCUwQSUyMCUyMCUzQ2ElMjBocmVmJTNEJTIyJTIzbHVjaWQtcWUtc2Vuc29yLW9wdGlvbnMlMjIlMjBjbGFzcyUzRCUyMmZhcm0tc3RpY2t5LWxpbmslMjBhY3RpdmUlMjIlM0VRRS1LdXJ2ZW52ZXJnbGVpY2glM0MlMkZhJTNFJTBEJTBBJTIwJTIwJTNDYSUyMGhyZWYlM0QlMjIlMjNkciUyMiUyMGNsYXNzJTNEJTIyZmFybS1zdGlja3ktbGluayUyMiUzRUR5bmFtaWt1bWZhbmclM0MlMkZhJTNFJTBEJTBBJTIwJTIwJTNDYSUyMGhyZWYlM0QlMjIlMjNzYyUyMiUyMGNsYXNzJTNEJTIyZmFybS1zdGlja3ktbGluayUyMiUzRVMlQzMlQTR0dGlndW5nc2thcGF6aXQlQzMlQTR0JTNDJTJGYSUzRSUwRCUwQSUyMCUyMCUzQ2ElMjBocmVmJTNEJTIyJTIzdGRuJTIyJTIwY2xhc3MlM0QlMjJmYXJtLXN0aWNreS1saW5rJTIyJTNFWmVpdGxpY2hlcyUyMER1bmtlbHJhdXNjaGVuJTNDJTJGYSUzRSUwRCUwQSUyMCUyMCUzQ2ElMjBocmVmJTNEJTIyJTIzc25yJTIyJTIwY2xhc3MlM0QlMjJmYXJtLXN0aWNreS1saW5rJTIyJTNFU2lnbmFsLVJhdXNjaC1WZXJoJUMzJUE0bHRuaXMlMjAlMjhTTlIlMjklM0MlMkZhJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTNDYSUyMGhyZWYlM0QlMjIlMjNhc3QlMjIlMjBjbGFzcyUzRCUyMmZhcm0tc3RpY2t5LWxpbmslMjIlM0VBYnNvbHV0ZSUyMEVtcGZpbmRsaWNoa2VpdHNzY2h3ZWxsZSUzQyUyRmElM0UlMEQlMEElM0MlMkZuYXYlM0U=[\/vc_raw_html][\/vc_column][\/vc_row][vc_row][vc_column][vc_raw_html]JTNDb2wlMjBjbGFzcyUzRCUyMmJyZWFkY3J1bWIlMjIlMjBzdHlsZSUzRCUyMnBhZGRpbmctdG9wJTNBMTBweCUyMiUzRSUwQSUyMCUzQ2xpJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDYSUyMGhyZWYlM0QlMjIlMkYlMjIlM0VTdGFydHNlaXRlJTNDJTJGYSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmxpJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTNDbGklM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NhJTIwaHJlZiUzRCUyMiUyRnRlY2gtYnJpZWZzJTIyJTNFVGVjaG5pc2NoZSUyMEt1cnpiZXJpY2h0ZSUzQyUyRmElM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZsaSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUzQ2xpJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwRU1WQSUyMDEyODglM0ElMjBLYW1lcmFzZW5zb3J2ZXJnbGVpY2glMEElMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZsaSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMCUzQ29sJTNF[\/vc_raw_html][vc_custom_heading text=&#8220;Die Ergebnisse verstehen&#8220; font_container=&#8220;tag:h2|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1527726358039{margin-top: 50px !important;margin-bottom: 25px !important;}&#8220;][vc_column_text]<\/p>\n<h3 style=\"line-height: 34px; color: #7c7c80;\">Der EMVA-1288-Standard beschreibt, wie die Bildgebungsleistung gepr\u00fcft und dargestellt wird, und liefert damit wichtige Informationen f\u00fcr die Auswahl einer geeigneten Kamera. Nahezu alle Hersteller von Machine-Vision-Kameras erf\u00fcllen den EMVA-1288-Standard, sodass sich die Kameraleistung hersteller\u00fcbergreifend vergleichen l\u00e4sst. Die Ergebnisse zur Bildgebungsleistung sind in der Regel auf der Produktseite des jeweiligen Kameramodells verf\u00fcgbar. Auch wenn sich die Darstellung je nach Kamerahersteller leicht unterscheidet, werden dieselben Parameter gepr\u00fcft. Unser Sensorvergleich f\u00fcr Machine-Vision-Kameras erl\u00e4utert die wichtigsten Parameter, ihren Einfluss auf die Bildqualit\u00e4t und die Vergleichsergebnisse aller verf\u00fcgbaren Kameramodelle.<\/h3>\n<p>[\/vc_column_text][vc_empty_space height=&#8220;75px&#8220;][\/vc_column][\/vc_row][vc_row disable_element=&#8220;yes&#8220;][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503531671928{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185603&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css_animation=&#8220;none&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>Quanteneffizienz (%)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px; text-align: left;\"><span style=\"font-size: 12px;\">Die Quanteneffizienz (QE) beschreibt, wie effizient ein Pixel einfallendes Licht (Photonen) bei einer bestimmten Wellenl\u00e4nge (nm) in elektrische Ladung (Elektronen) umwandelt. Nicht jedes Photon, das auf ein Pixel trifft, wird in ein Elektron umgewandelt. Je h\u00f6her der Prozentwert, desto weniger Licht ben\u00f6tigt der Sensor, um verwertbare Bilddaten zu erfassen. QE-Ergebnisse werden \u00fcblicherweise f\u00fcr den sichtbaren Spektralbereich (300\u2013700 nm) und den nahen Infrarotbereich (700\u20131100 nm) dargestellt. Die Werte unterscheiden sich je nach Sensortechnologie und Wellenl\u00e4nge. Ein h\u00f6herer Wert ist besser.<\/span><em><span style=\"font-size: 12px;\"><br \/>\n<\/span><\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503531683183{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185595&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>S\u00e4ttigungskapazit\u00e4t (e\u207b)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px;\"><span style=\"font-size: 12px;\">Jedes Pixel enth\u00e4lt eine Fotodiode, die Photonen in Elektronen umwandelt. Nach der Umwandlung werden die Elektronen vor\u00fcbergehend in der Fotodiode gespeichert, bis sie ausgelesen werden. Die S\u00e4ttigungskapazit\u00e4t gibt an, wie viele Elektronen die Fotodiode maximal aufnehmen kann. Ist diese Kapazit\u00e4t erreicht, erreicht der Sensor seinen maximalen Signalpegel; weitere Elektronen laufen \u00fcber und werden verworfen. Ein ges\u00e4ttigter Sensor erzeugt ein wei\u00dfes Bild. Eine gr\u00f6\u00dfere S\u00e4ttigungskapazit\u00e4t erm\u00f6glicht einen gr\u00f6\u00dferen nutzbaren Bereich bei der Erfassung unterschiedlicher Lichtintensit\u00e4ten.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503531676126{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185596&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>Zeitliches Dunkelrauschen (e\u207b)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px; text-align: left;\"><span style=\"font-size: 12px;\">Das zeitliche Dunkelrauschen beschreibt das Rauschen, wenn kein Licht auf den Sensor f\u00e4llt. Durch die Sensorelektronik und die Pixelstrukturen entstehen zuf\u00e4llige, unerw\u00fcnschte Elektronen, die in das Pixel und die Signalverarbeitung gelangen und Rauschen verursachen k\u00f6nnen. Neuere Sensoren nutzen verbesserte Technologien und Pixelstrukturen, um das Rauschen zu reduzieren und Sensorkomponenten besser vor Temperaturschwankungen zu sch\u00fctzen. Ein niedrigeres zeitliches Dunkelrauschen ist besser und f\u00fchrt insbesondere bei wenig Licht zu saubereren Bildern.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row disable_element=&#8220;yes&#8220;][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503534408054{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185601&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>Dynamikumfang (dB)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px; text-align: left;\"><span style=\"font-size: 12px;\">Der Dynamikumfang ist das Verh\u00e4ltnis zwischen dem maximalen Signalpegel (S\u00e4ttigungskapazit\u00e4t) und dem minimalen Signalpegel (zeitliches Dunkelrauschen) des Sensors. Je h\u00f6her der dB-Wert, desto besser kann der Sensor Graustufen vom hellsten bis zum dunkelsten Bildbereich differenzieren. Dies ist besonders wichtig bei Szenen mit gleichzeitig sehr hellen und sehr dunklen Bereichen.<\/span><em><span style=\"font-size: 12px;\"><br \/>\n<\/span><\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503534416248{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185597&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>Signal-Rausch-Verh\u00e4ltnis (dB oder Bit)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px; text-align: left;\"><span style=\"font-size: 12px;\">Das Signal-Rausch-Verh\u00e4ltnis (SNR) gibt an, wie deutlich nutzbare Bildinformationen vom zeitlichen Dunkelrauschen getrennt werden k\u00f6nnen. Ein Ergebnis von 40 dB bedeutet beispielsweise, dass das Nutzsignal 40 dB \u00fcber dem Rauschpegel liegt. Je h\u00f6her das SNR, desto klarer ist das Bild.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][vc_column width=&#8220;1\/3&#8243; css=&#8220;.vc_custom_1503534423172{margin-bottom: 80px !important;}&#8220;][vc_single_image image=&#8220;185602&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220;][vc_column_text]<\/p>\n<blockquote>\n<p style=\"text-align: center; font-size: 12px;\"><em><strong>Absolute Empfindlichkeitsschwelle (\u03b3)<\/strong><\/em><\/p>\n<\/blockquote>\n<p style=\"font-size: 12px;\"><span style=\"font-size: 12px;\">Die absolute Empfindlichkeitsschwelle gibt die geringste Lichtmenge an, die erforderlich ist, um den Rauschpegel des Sensors zu \u00fcberschreiten. Je niedriger der Wert, desto weniger Licht wird ben\u00f6tigt, um nutzbare Bildinformationen vom Rauschen zu unterscheiden. Niedrigere Werte bedeuten eine bessere Empfindlichkeit bei schwachen Lichtverh\u00e4ltnissen.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220;][vc_column][vc_text_separator title=&#8220;Vergleichsdiagramme f\u00fcr Monochrom-Kamerasensoren \u2013 EMVA-1288-Ergebnisse&#8220; color=&#8220;custom&#8220; border_width=&#8220;2&#8243; el_width=&#8220;80&#8243; css=&#8220;.vc_custom_1784875935074{margin-bottom: 50px !important;}&#8220; el_class=&#8220;font-size-30&#8243; accent_color=&#8220;#848484&#8243;][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220;][vc_column width=&#8220;5\/6&#8243; offset=&#8220;vc_col-lg-offset-1 vc_col-md-offset-1 vc_col-sm-offset-1 vc_col-xs-12&#8243;][vc_custom_heading text=&#8220;Vergleich der Sensor-Quanteneffizienz&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1784774400001{margin-top: 25px !important;margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1784774400002{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>Vergleichen Sie die gemittelten QE-Messwerte von LUCID-Monochromkameras nach Sensor. Nutzen Sie die Wellenl\u00e4ngenrangliste f\u00fcr einen schnellen \u00dcberblick und w\u00e4hlen Sie anschlie\u00dfend im QE-Kurvenvergleich bis zu zehn Sensoren aus.<\/em><\/p>\n<p>[\/vc_column_text][vc_column_text]\r\n<div id=\"lucid-qe-module\" class=\"lucid-qe-module\">\r\n    <div class=\"lucid-qe-panel\">\r\n        <div class=\"lucid-qe-heading-row\">\r\n            <div>\r\n                <h3 class=\"lucid-qe-title\">QE at a Selected Wavelength<\/h3>\r\n                <p class=\"lucid-qe-description\">\r\n                    Compare the average measured QE of LUCID mono camera models\r\n                    using the same sensor.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lucid-qe-control-group\">\r\n            <span class=\"lucid-qe-control-label\">Sensor group<\/span>\r\n            <div class=\"lucid-qe-button-row\" id=\"lucid-qe-group-buttons\">\r\n                <button type=\"button\" class=\"lucid-qe-button is-active\" data-qe-group=\"global\">Global Shutter<\/button>\r\n                <button type=\"button\" class=\"lucid-qe-button\" data-qe-group=\"rolling\">Rolling Shutter<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"lucid-qe-control-group\">\r\n            <span class=\"lucid-qe-control-label\">Comparison wavelength<\/span>\r\n            <div class=\"lucid-qe-button-row\" id=\"lucid-qe-wavelength-buttons\">\r\n                <button type=\"button\" class=\"lucid-qe-button is-active\" data-qe-wavelength=\"peak\">Peak QE<\/button>\r\n                <button type=\"button\" class=\"lucid-qe-button\" data-qe-wavelength=\"450\">450 nm<\/button>\r\n                <button type=\"button\" class=\"lucid-qe-button\" data-qe-wavelength=\"550\">550 nm<\/button>\r\n                <button type=\"button\" class=\"lucid-qe-button\" data-qe-wavelength=\"650\">650 nm<\/button>\r\n                <button type=\"button\" class=\"lucid-qe-button\" data-qe-wavelength=\"850\">850 nm<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <p id=\"lucid-qe-group-note\" class=\"lucid-qe-group-note\" aria-live=\"polite\"><\/p>\r\n\r\n        <div id=\"lucid-qe-ranking-wrap\" class=\"lucid-qe-chart-wrap lucid-qe-ranking-wrap\">\r\n            <canvas id=\"lucid-qe-ranking-chart\"><\/canvas>\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n    <div class=\"lucid-qe-panel\">\r\n        <h3 class=\"lucid-qe-title\">QE Curve Explorer<\/h3>\r\n        <p class=\"lucid-qe-description\">\r\n            Select up to ten sensors. Hover over the curves to see the average,\r\n            measurement range, and contributing LUCID camera models at each wavelength.\r\n        <\/p>\r\n\r\n        <div class=\"lucid-qe-selector-header\">\r\n            <span class=\"lucid-qe-control-label\">Select sensors<\/span>\r\n            <span id=\"lucid-qe-selected-count\" class=\"lucid-qe-selected-count\">0 of 10 selected<\/span>\r\n        <\/div>\r\n\r\n        <div id=\"lucid-qe-sensor-options\" class=\"lucid-qe-sensor-options\"><\/div>\r\n\r\n        <div class=\"lucid-qe-selector-actions\">\r\n            <button type=\"button\" id=\"lucid-qe-reset-selection\" class=\"lucid-qe-link-button\">\r\n                Reset recommended comparison\r\n            <\/button>\r\n        <\/div>\r\n\r\n        <p id=\"lucid-qe-selection-message\" class=\"lucid-qe-selection-message\" aria-live=\"polite\"><\/p>\r\n\r\n        <div id=\"lucid-qe-curve-wrap\" class=\"lucid-qe-chart-wrap lucid-qe-curve-wrap\">\r\n            <canvas id=\"lucid-qe-curve-chart\"><\/canvas>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.lucid-qe-module {\r\n    font-family: 'Poppins', sans-serif;\r\n    width: 100%;\r\n}\r\n\r\n.lucid-qe-panel {\r\n    background: #ffffff;\r\n    border: 1px solid #e0e3e6;\r\n    border-radius: 8px;\r\n    padding: 24px;\r\n    margin: 0 0 34px;\r\n}\r\n\r\n.lucid-qe-title {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 24px;\r\n    line-height: 1.3;\r\n    margin: 0 0 8px;\r\n}\r\n\r\n.lucid-qe-description,\r\n.lucid-qe-group-note,\r\n.lucid-qe-selection-message,\r\n.lucid-qe-empty-message {\r\n    font-size: 13px;\r\n    line-height: 1.6;\r\n}\r\n\r\n.lucid-qe-description {\r\n    margin: 0 0 22px;\r\n}\r\n\r\n.lucid-qe-control-group {\r\n    margin: 0 0 17px;\r\n}\r\n\r\n.lucid-qe-control-label {\r\n    display: block;\r\n    font-size: 12px;\r\n    font-weight: 600;\r\n    margin: 0 0 7px;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.035em;\r\n}\r\n\r\n.lucid-qe-button-row {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 8px;\r\n}\r\n\r\n.lucid-qe-button,\r\n.lucid-qe-link-button {\r\n    font-family: 'Poppins', sans-serif;\r\n    cursor: pointer;\r\n}\r\n\r\n.lucid-qe-button {\r\n    appearance: none;\r\n    border: 1px solid #aeb5bc;\r\n    background: #ffffff;\r\n    color: #24272a;\r\n    border-radius: 4px;\r\n    padding: 8px 13px;\r\n    font-size: 12px;\r\n    line-height: 1.2;\r\n}\r\n\r\n.lucid-qe-button:hover,\r\n.lucid-qe-button:focus {\r\n    border-color: #555d65;\r\n}\r\n\r\n.lucid-qe-button.is-active {\r\n    background: #343a40;\r\n    border-color: #343a40;\r\n    color: #ffffff;\r\n}\r\n\r\n.lucid-qe-group-note {\r\n    margin: 14px 0 12px;\r\n    color: #555d65;\r\n}\r\n\r\n.lucid-qe-chart-wrap {\r\n    position: relative;\r\n    width: 100%;\r\n}\r\n\r\n.lucid-qe-ranking-wrap {\r\n    min-height: 430px;\r\n}\r\n\r\n.lucid-qe-curve-wrap {\r\n    height: 620px;\r\n    margin-top: 16px;\r\n}\r\n\r\n.lucid-qe-selector-header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: baseline;\r\n    gap: 14px;\r\n}\r\n\r\n.lucid-qe-selected-count {\r\n    font-size: 12px;\r\n    color: #5f666d;\r\n}\r\n\r\n.lucid-qe-sensor-options {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: 8px 16px;\r\n    border: 1px solid #e0e3e6;\r\n    border-radius: 5px;\r\n    padding: 14px;\r\n}\r\n\r\n.lucid-qe-sensor-option {\r\n    display: flex;\r\n    align-items: flex-start;\r\n    gap: 7px;\r\n    font-size: 12px;\r\n    line-height: 1.4;\r\n}\r\n\r\n.lucid-qe-sensor-option input {\r\n    margin-top: 2px;\r\n}\r\n\r\n.lucid-qe-sensor-option.is-disabled {\r\n    opacity: 0.45;\r\n}\r\n\r\n.lucid-qe-selector-actions {\r\n    margin-top: 10px;\r\n}\r\n\r\n.lucid-qe-link-button {\r\n    border: 0;\r\n    background: transparent;\r\n    color: #365f91;\r\n    padding: 0;\r\n    font-size: 12px;\r\n    text-decoration: underline;\r\n}\r\n\r\n.lucid-qe-selection-message {\r\n    min-height: 20px;\r\n    margin: 7px 0 0;\r\n    color: #7a3b00;\r\n}\r\n\r\n.lucid-qe-empty-message {\r\n    border-left: 4px solid #7b848d;\r\n    background: #f5f7f8;\r\n    padding: 14px 17px;\r\n    margin-top: 15px;\r\n}\r\n\r\n.lucid-qe-empty-message p {\r\n    margin: 6px 0 0;\r\n}\r\n\r\n.chart-container {\r\n    position: relative;\r\n    width: 100%;\r\n}\r\n\r\n@media (max-width: 900px) {\r\n    .lucid-qe-sensor-options {\r\n        grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n    .lucid-qe-panel {\r\n        padding: 18px;\r\n    }\r\n\r\n    .lucid-qe-sensor-options {\r\n        grid-template-columns: 1fr;\r\n    }\r\n\r\n    .lucid-qe-chart-wrap,\r\n    .chart-container {\r\n        overflow-x: auto;\r\n    }\r\n\r\n    .lucid-qe-ranking-wrap canvas,\r\n    .lucid-qe-curve-wrap canvas,\r\n    .chart-container canvas {\r\n        min-width: 760px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script>\r\nwindow.addEventListener('load', function () {\r\n    if (typeof Chart === 'undefined') {\r\n        if (window.console && console.error) {\r\n            console.error('Chart.js is not loaded. Chart.js v2.9.3 is required.');\r\n        }\r\n        return;\r\n    }\r\n\r\n\r\nvar lucidQeFallbackMeasurements = [{\"model\":\"PHX200S-M\",\"models\":[\"PHX200S-M\"],\"sensor\":\"Sony IMX183\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[5.7,11.56,17.69,24.68,34.72,44.57,57.19,66.3,71.66,76.73,77.18,79.53,80.82,80.89,82.74,84.87,84.94,85.2,85.91,84.86,82.79,81.38,80.25,79.27,76.66,73.87,71.38,69.47,66.82,63.19,59.43,56.18,54.22,52.69,51.47,49.21,47.28,44.24,43.23,40.42,39.84,36.73,35.59,33.11,29.79,28.75,24.87,24.21,22.44,21.64,20.34,20.32,19.0,16.44,16.52,14.42,11.33,11.63,11.23,8.72,7.79,8.29,7.32,5.75,5.1,5.16,4.6,3.2,2.51,2.24,2.07,1.59,1.07,0.81,0.67,0.5,0.36,0.27,0.19],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX120S-M\",\"models\":[\"PHX120S-M\"],\"sensor\":\"Sony IMX304\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.58,16.08,20.19,24.14,27.67,32.31,39.35,45.17,49.59,52.63,55.87,57.4,61.01,62.78,63.63,65.89,66.17,65.81,66.76,66.46,66.71,66.88,67.2,67.22,66.56,66.46,65.17,64.57,63.12,61.29,60.42,58.73,56.84,56.2,53.53,51.84,49.5,47.4,45.63,43.83,41.4,39.79,38.59,35.07,32.37,31.84,30.51,27.73,25.43,23.69,22.01,21.04,18.62,16.42,15.3,14.41,12.68,11.55,10.21,9.15,8.27,7.36,6.31,5.32,4.5,3.91,3.49,2.98,2.51,1.89,1.54,1.26,1.03,0.81,0.62,0.47,0.38,0.31,0.26],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX122S-M\",\"models\":[\"PHX122S-M\"],\"sensor\":\"Sony IMX226\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[38.89,45.31,46.91,51.46,51.64,57.17,60.15,68.71,70.27,76.25,77.24,77.74,81.46,80.72,81.68,84.47,83.46,82.51,82.65,81.85,79.85,78.47,77.11,75.8,73.85,72.12,69.24,66.52,63.01,60.43,58.63,56.32,54.58,51.54,48.53,47.2,44.98,44.73,42.63,41.2,37.35,36.1,32.1,31.82,28.89,28.46,27.81,25.4,25.32,23.82,20.19,21.22,20.16,16.46,18.55,16.49,13.27,14.45,14.78,11.42,10.04,11.37,9.85,6.89,6.52,7.61,6.38,4.22,3.63,4.01,3.82,2.68,1.78,1.52,1.3,0.97,0.7,0.48,0.29],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX089S-M\",\"models\":[\"PHX089S-M\"],\"sensor\":\"Sony IMX267\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.82,16.31,20.32,24.36,28.2,32.95,39.83,45.86,49.99,53.53,56.64,58.78,61.96,63.34,64.48,66.15,65.59,66.2,66.63,66.79,66.79,67.4,67.52,67.63,66.64,66.27,65.04,64.1,63.1,61.06,59.79,58.38,56.23,56.03,53.53,51.34,49.5,47.47,45.39,43.64,41.31,39.21,38.1,35.03,32.17,31.41,30.37,27.62,25.22,23.25,21.8,20.88,18.58,16.22,15.16,14.31,12.7,11.49,10.04,8.92,8.06,7.32,6.31,5.34,4.47,3.85,3.47,2.97,2.51,1.88,1.5,1.22,1.0,0.8,0.62,0.48,0.39,0.31,0.26],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX064S-M\",\"models\":[\"PHX064S-M\"],\"sensor\":\"Sony IMX178\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[39.4,43.75,48.16,50.19,54.07,56.31,62.71,66.69,74.04,74.26,78.14,79.3,79.23,81.7,82.64,81.89,83.36,83.15,82.35,81.57,81.03,79.74,77.33,75.9,74.58,73.51,70.68,67.73,65.94,63.61,60.95,57.94,54.6,51.79,50.44,49.24,47.34,46.56,43.54,42.59,38.08,37.54,34.03,34.05,31.23,29.95,28.48,24.63,24.45,21.25,20.37,19.47,20.23,17.86,17.05,17.57,13.09,11.98,13.08,10.87,7.98,8.6,8.84,6.51,5.42,5.94,5.74,3.88,3.08,2.75,2.63,2.09,1.35,0.98,0.87,0.68,0.49,0.36,0.24],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX050S-M\",\"models\":[\"PHX050S-M\"],\"sensor\":\"Sony IMX264\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.62,15.43,19.62,23.68,27.26,31.69,38.71,44.61,48.85,52.54,55.27,57.63,60.5,62.89,63.48,65.41,65.42,66.0,66.09,66.14,66.6,66.54,67.29,66.38,66.48,66.12,65.07,64.64,63.06,62.37,60.52,59.1,57.51,56.44,54.64,51.99,50.61,48.46,46.17,44.18,42.3,40.89,38.71,36.06,33.63,32.41,30.7,28.71,26.47,24.52,22.22,21.09,19.32,17.47,15.77,14.46,13.08,12.17,10.71,9.46,8.49,7.47,6.44,5.63,4.83,4.07,3.57,2.99,2.61,2.05,1.66,1.32,1.07,0.86,0.67,0.51,0.41,0.34,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX032S-M\",\"models\":[\"PHX032S-M\"],\"sensor\":\"Sony IMX265\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.18,16.28,19.89,24.01,28.42,33.4,39.53,44.73,48.76,52.75,56.89,59.3,62.08,62.82,64.17,64.11,64.7,65.94,66.87,67.29,67.27,68.49,68.1,67.51,66.59,65.85,65.14,64.3,62.54,61.46,60.82,58.14,58.11,55.88,54.38,52.88,50.86,48.33,46.21,43.46,41.69,40.94,37.77,34.83,33.97,32.63,29.73,27.48,26.0,24.62,22.07,20.52,18.52,17.5,16.14,14.42,12.6,11.7,10.31,9.43,8.68,7.4,6.0,5.17,4.66,4.18,3.63,2.86,2.44,1.94,1.65,1.33,1.05,0.8,0.62,0.49,0.41,0.34,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX023S-M\",\"models\":[\"PHX023S-M\"],\"sensor\":\"Sony IMX392\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[10.94,15.43,18.88,22.89,26.94,32.11,38.45,44.04,47.7,51.62,54.72,58.43,60.63,62.79,64.5,64.11,64.8,65.99,65.79,65.93,67.1,67.36,67.35,67.76,67.43,66.58,65.82,65.7,63.49,62.61,61.24,60.05,58.82,57.03,54.81,53.35,51.45,49.0,46.93,45.85,41.68,40.2,39.11,36.07,33.67,33.13,31.27,28.84,26.53,24.26,22.54,21.75,19.41,17.27,16.17,15.02,13.33,12.36,10.95,9.76,8.92,7.94,6.7,5.6,4.83,4.26,3.77,3.01,2.5,1.91,1.62,1.36,1.09,0.83,0.63,0.5,0.41,0.34,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX016S-M\",\"models\":[\"PHX016S-M\"],\"sensor\":\"Sony IMX273\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.8,16.78,20.57,25.09,29.26,34.44,40.1,45.44,49.35,53.88,56.7,60.39,62.44,63.36,64.18,64.52,65.13,66.38,66.62,67.32,68.09,68.29,67.71,67.92,66.63,65.94,65.2,64.46,63.53,61.89,60.52,59.6,58.08,57.34,54.93,52.94,50.87,49.17,46.62,46.06,42.78,40.07,39.05,35.85,32.93,32.54,31.06,28.5,26.38,24.19,22.29,21.46,19.61,17.45,16.15,15.03,13.44,12.38,10.91,9.63,8.82,7.91,6.8,5.68,4.86,4.21,3.77,3.12,2.63,1.95,1.63,1.37,1.12,0.87,0.66,0.51,0.41,0.34,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"PHX004S-M\",\"models\":[\"PHX004S-M\"],\"sensor\":\"Sony IMX287\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.95,16.47,20.43,24.45,27.81,32.99,39.15,44.91,48.31,52.4,53.58,57.78,60.54,62.64,63.06,65.11,64.94,65.07,65.4,64.74,66.16,65.93,66.94,66.4,66.86,66.38,65.21,64.22,63.06,61.1,60.31,58.49,58.01,55.75,54.86,52.6,50.51,48.3,46.76,45.13,41.88,40.98,38.81,34.71,34.19,33.48,30.99,28.51,26.2,24.32,22.4,21.26,18.67,17.19,16.21,15.03,13.08,12.25,10.92,9.74,8.96,7.82,6.42,5.44,4.86,4.35,3.8,2.94,2.46,1.92,1.65,1.38,1.08,0.81,0.62,0.48,0.4,0.34,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI200S-M\",\"models\":[\"TRI200S-M\"],\"sensor\":\"Sony IMX183\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[5.78,11.71,18.51,28.34,39.89,50.91,62.15,69.86,75.91,77.92,80.17,82.21,82.91,85.12,85.26,86.25,88.15,88.49,87.62,86.6,85.51,83.59,82.71,81.7,79.36,76.45,72.92,70.31,68.24,64.56,61.52,58.47,56.7,55.59,54.31,52.0,49.72,46.66,44.82,42.16,40.89,37.81,36.28,32.63,30.43,28.52,26.58,25.8,24.95,23.61,22.63,21.62,18.81,18.42,16.48,14.13,14.05,12.89,10.48,9.97,9.73,8.06,6.61,6.39,5.99,4.7,3.7,3.37,3.1,2.33,1.81,1.52,1.3,1.0,0.72,0.52,0.41,0.32,0.2],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI120S-M\",\"models\":[\"TRI120S-M\"],\"sensor\":\"Sony IMX304\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.81,16.82,20.5,25.68,30.01,34.88,40.08,45.19,49.4,53.72,57.1,61.09,62.81,63.65,65.42,65.3,66.18,66.83,67.93,68.1,68.61,68.83,68.98,68.11,68.08,66.94,66.32,65.38,64.1,63.29,62.02,60.29,59.12,57.51,55.45,53.13,51.53,48.79,47.3,44.15,43.39,41.26,37.42,35.67,34.88,33.22,30.24,28.01,26.61,24.88,22.02,20.46,19.08,17.92,16.35,14.6,12.88,11.8,10.48,9.78,8.74,7.41,6.17,5.48,4.98,4.35,3.62,2.87,2.47,2.02,1.69,1.33,1.03,0.79,0.62,0.5,0.41,0.35,0.29],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI122S-M\",\"models\":[\"TRI122S-M\"],\"sensor\":\"Sony IMX226\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[38.32,45.45,46.62,52.18,54.16,56.83,62.43,69.01,71.71,78.01,76.2,80.28,82.32,81.47,83.93,84.91,84.04,84.27,84.84,83.27,81.75,80.43,78.57,76.03,74.28,72.94,70.33,66.76,64.13,62.14,60.76,58.7,54.95,52.69,49.45,47.53,47.66,45.32,45.42,41.39,40.21,35.17,35.24,31.3,31.62,29.31,28.11,26.95,24.28,22.8,21.54,19.55,18.83,19.73,15.84,16.51,17.0,14.44,12.49,14.06,12.82,9.03,9.59,10.46,7.79,5.5,6.14,6.91,5.65,3.24,2.81,3.16,2.64,1.56,0.98,0.81,0.74,0.61,0.39],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI089S-M\",\"models\":[\"TRI089S-M\"],\"sensor\":\"Sony IMX267\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.28,16.27,20.03,25.15,29.25,33.78,39.11,44.48,48.75,52.95,56.68,60.35,62.07,62.73,63.87,63.48,64.54,66.18,67.28,67.31,67.81,68.15,67.77,68.06,66.25,65.9,65.18,64.54,63.46,61.85,60.73,59.6,58.04,57.43,54.78,53.32,50.66,48.2,46.42,45.0,42.2,39.93,38.76,35.42,32.66,32.19,30.72,28.1,26.18,24.13,21.9,20.89,18.95,17.06,15.71,14.38,12.94,11.9,10.49,9.27,8.24,7.41,6.46,5.49,4.62,4.0,3.59,3.02,2.52,1.88,1.52,1.26,1.05,0.85,0.65,0.5,0.39,0.32,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI071S-M\",\"models\":[\"TRI071S-M\"],\"sensor\":\"Sony IMX428\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.62,18.27,22.22,27.16,31.98,36.42,44.03,50.01,55.53,59.94,62.88,66.29,68.42,70.66,72.89,73.48,73.67,74.8,74.29,75.08,74.89,77.18,75.69,76.32,76.45,76.95,74.67,72.21,71.96,69.76,68.54,67.03,65.77,63.33,60.65,59.84,58.59,55.41,53.52,51.47,48.77,44.95,42.9,39.97,38.74,36.5,34.44,31.96,30.0,28.14,24.3,23.7,22.93,20.33,17.88,16.82,15.38,14.35,12.6,11.33,9.91,8.72,7.63,6.74,5.75,4.83,4.22,3.58,3.09,2.47,2.03,1.64,1.26,0.93,0.73,0.58,0.49,0.4,0.32],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI064S-M\",\"models\":[\"TRI064S-M\"],\"sensor\":\"Sony IMX178\",\"group\":\"rolling\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[36.69,45.27,45.62,49.64,51.63,55.78,59.58,66.83,69.75,75.6,74.96,77.56,78.73,79.43,81.35,83.38,81.7,82.11,82.59,80.91,79.58,78.1,76.99,76.51,75.27,72.93,70.75,68.62,65.68,60.73,59.38,56.77,55.36,52.28,49.42,48.17,47.41,45.16,44.47,41.37,39.51,34.92,32.75,31.13,29.39,30.13,26.67,25.99,23.84,22.8,19.82,20.49,18.47,17.34,17.86,14.64,13.68,14.5,11.99,9.34,9.38,9.87,6.82,5.64,6.39,6.16,4.15,3.38,3.37,3.21,2.38,1.66,1.36,1.2,0.92,0.64,0.45,0.37,0.28],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI050S-M\",\"models\":[\"TRI050S-M\"],\"sensor\":\"Sony IMX264\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.01,16.5,20.11,24.04,28.43,33.38,39.53,44.01,48.64,52.22,56.14,59.6,62.02,64.08,64.38,65.43,66.12,66.53,66.3,67.51,67.99,68.59,68.49,68.77,67.56,67.39,65.94,66.08,64.49,62.22,61.7,59.64,59.13,56.77,54.95,53.07,50.81,48.67,47.34,44.57,41.67,41.01,38.9,35.75,33.97,33.47,31.45,28.27,25.8,24.22,22.69,21.42,19.23,17.74,16.26,14.72,12.81,11.74,10.27,9.33,8.66,7.69,6.43,5.51,4.85,4.28,3.71,2.94,2.43,1.87,1.56,1.28,1.03,0.81,0.63,0.49,0.39,0.32,0.26],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI032S-M\",\"models\":[\"TRI032S-M\"],\"sensor\":\"Sony IMX265\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.85,15.83,19.7,24.14,28.34,33.7,39.58,44.73,48.78,53.21,56.92,60.23,62.7,63.57,64.66,65.57,65.59,67.04,66.71,67.07,67.62,68.9,67.59,68.58,66.89,67.24,65.4,65.19,64.23,61.97,61.47,59.25,58.07,56.86,54.54,52.71,50.44,48.4,46.77,44.77,41.6,40.46,39.03,35.54,33.56,33.12,31.26,28.52,25.91,24.1,22.74,21.63,19.2,17.44,16.2,14.97,13.08,11.92,10.36,9.22,8.51,7.69,6.57,5.5,4.77,4.21,3.75,3.09,2.55,1.93,1.58,1.29,1.03,0.82,0.62,0.49,0.4,0.33,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI028S-M\",\"models\":[\"TRI028S-M\"],\"sensor\":\"Sony IMX429\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.22,17.05,21.21,25.84,30.51,35.51,41.92,48.69,54.08,58.84,61.34,65.33,68.05,70.1,72.43,73.15,74.15,74.56,74.93,75.28,76.48,76.96,76.56,75.91,77.25,75.89,74.13,73.37,71.64,69.54,69.59,67.71,66.67,63.9,61.97,60.98,58.59,56.14,54.64,51.16,49.07,44.87,42.38,41.18,38.22,35.77,34.35,32.82,29.44,26.74,25.28,24.72,22.35,20.31,18.53,16.67,14.95,14.22,12.5,11.16,9.81,8.63,7.43,6.6,5.8,4.91,4.19,3.45,3.05,2.48,2.03,1.55,1.18,0.94,0.74,0.58,0.47,0.38,0.31],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI023S-M\",\"models\":[\"TRI023S-M\"],\"sensor\":\"Sony IMX392\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.65,15.6,19.21,24.05,28.39,33.11,38.82,44.26,49.03,52.81,56.72,59.56,62.36,62.96,63.46,64.42,64.7,65.7,66.83,66.88,67.96,68.84,67.71,67.63,66.71,66.38,64.65,64.55,62.98,62.39,60.06,58.73,58.21,56.47,54.99,53.48,50.74,49.02,47.18,43.71,43.06,40.02,37.1,35.42,33.51,31.56,29.66,27.72,26.49,24.34,21.03,20.28,19.52,17.88,15.58,14.17,12.81,12.14,11.02,9.66,8.26,7.22,6.56,5.92,4.95,3.99,3.41,2.95,2.59,1.99,1.58,1.25,1.03,0.85,0.67,0.52,0.43,0.35,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI016S-M\",\"models\":[\"TRI016S-M\"],\"sensor\":\"Sony IMX273\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.3,15.44,19.46,24.66,29.11,33.23,38.94,44.43,49.37,53.47,57.74,60.71,61.88,63.48,64.06,65.13,66.13,67.21,67.56,68.26,68.7,68.96,68.66,68.66,67.42,66.89,65.97,64.81,64.33,62.34,61.92,60.78,58.95,57.36,55.62,53.23,51.37,48.33,47.76,44.81,41.64,40.92,38.57,35.39,33.65,33.04,30.61,28.18,25.61,23.98,22.53,21.24,19.0,17.44,15.98,14.67,13.18,12.12,10.55,9.69,8.82,7.69,6.3,5.48,4.89,4.33,3.61,2.77,2.32,1.88,1.62,1.33,1.03,0.77,0.6,0.47,0.39,0.32,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"TRI004S-M\",\"models\":[\"TRI004S-M\"],\"sensor\":\"Sony IMX287\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.37,15.82,19.39,24.36,29.03,33.73,39.61,44.33,49.35,52.81,57.36,60.59,61.76,63.91,64.77,64.04,66.23,65.45,67.16,67.69,68.37,67.79,69.34,68.6,67.5,67.08,65.47,65.1,63.37,62.2,61.98,60.19,58.79,56.75,55.04,52.71,51.06,48.47,47.8,44.85,41.97,41.08,37.77,34.82,33.93,33.07,30.63,27.73,25.65,24.13,22.11,20.57,18.49,17.49,16.17,14.53,12.86,11.84,10.46,9.62,8.82,7.54,6.15,5.34,4.81,4.27,3.57,2.73,2.31,1.88,1.61,1.3,1.01,0.75,0.59,0.46,0.39,0.32,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL314S-M\",\"models\":[\"ATL314S-M\"],\"sensor\":\"Sony IMX342\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.58,15.68,19.62,24.24,27.93,31.88,38.3,44.96,50.43,53.7,56.22,57.75,60.88,62.98,63.83,65.63,66.67,66.36,67.53,66.93,66.77,67.6,67.22,67.56,67.69,66.9,65.92,65.03,64.04,62.04,61.3,59.59,57.3,56.33,54.37,52.79,50.72,48.14,46.39,44.53,41.82,40.15,38.94,35.28,32.79,31.77,29.71,27.43,25.48,23.65,22.11,20.93,18.27,16.34,15.63,14.48,12.44,11.43,10.11,9.06,8.44,7.62,6.39,5.33,4.49,3.94,3.5,2.88,2.4,1.82,1.5,1.19,0.92,0.67,0.48,0.37,0.31,0.27,0.22],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL196S-M\",\"models\":[\"ATL196S-M\"],\"sensor\":\"Sony IMX367\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.21,16.37,20.2,24.34,28.37,33.16,39.63,46.0,49.02,52.61,56.81,58.22,62.38,63.86,65.34,65.37,65.14,66.49,65.74,67.05,67.26,68.3,68.54,67.95,67.53,67.53,65.99,64.48,63.96,62.41,60.66,60.26,57.68,56.85,54.8,52.82,50.92,48.43,46.5,45.24,43.21,39.39,37.94,35.93,32.25,31.18,30.05,28.06,25.43,23.11,21.74,20.96,19.22,16.47,15.1,14.38,13.11,11.83,10.29,8.93,8.1,7.4,6.62,5.58,4.6,3.89,3.47,2.95,2.51,1.85,1.49,1.18,0.91,0.69,0.5,0.38,0.31,0.25,0.22],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL168S-M\",\"models\":[\"ATL168S-M\"],\"sensor\":\"Sony IMX387\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[11.37,15.77,19.65,24.12,27.72,32.49,39.18,45.95,49.38,52.85,56.18,59.34,62.43,63.55,64.88,65.0,65.09,65.34,65.85,65.65,66.44,67.35,67.77,66.79,66.72,66.57,65.23,63.84,63.39,61.49,60.21,58.86,57.77,56.48,53.94,52.89,50.68,48.36,46.46,45.37,42.68,40.01,38.55,36.12,32.87,32.0,30.39,28.11,25.61,23.75,22.84,21.61,19.27,16.92,15.77,14.91,13.35,12.24,10.51,9.35,8.57,7.82,6.92,5.73,4.82,4.16,3.76,3.16,2.67,2.01,1.64,1.3,1.02,0.75,0.55,0.42,0.34,0.29,0.24],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL120S-M\",\"models\":[\"ATL120S-M\"],\"sensor\":\"Sony IMX253\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.1,16.15,19.64,24.0,28.43,33.55,39.05,44.52,48.13,52.32,55.49,59.06,62.25,63.74,64.2,64.56,65.2,65.82,66.92,67.05,67.88,68.2,68.19,68.23,66.93,66.7,64.96,65.12,63.26,61.88,60.75,58.66,58.44,56.56,53.92,52.67,50.55,48.14,46.47,44.17,41.6,40.34,37.73,34.22,33.2,32.61,29.89,27.26,25.42,23.82,21.8,20.31,18.03,16.79,15.71,14.3,12.32,11.34,9.91,9.05,8.32,7.25,6.0,5.13,4.51,4.01,3.51,2.79,2.32,1.82,1.52,1.23,0.98,0.76,0.57,0.44,0.36,0.3,0.24],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL089S-M\",\"models\":[\"ATL089S-M\"],\"sensor\":\"Sony IMX255\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[12.16,16.97,21.01,25.59,29.58,33.3,39.99,46.24,51.77,54.17,56.53,58.82,60.66,63.3,63.62,65.87,66.32,65.64,66.52,66.79,67.49,67.41,67.59,67.02,67.19,66.24,64.94,64.07,62.85,61.82,60.41,58.57,57.42,55.25,54.09,52.26,49.88,47.82,45.77,43.05,41.63,40.04,37.42,35.41,33.57,31.38,28.56,27.61,26.02,23.96,21.61,20.26,18.59,17.36,15.28,13.43,12.27,11.67,10.54,9.2,8.08,7.03,6.08,5.45,4.82,3.94,3.24,2.69,2.4,1.99,1.63,1.2,0.92,0.69,0.56,0.44,0.37,0.29,0.19],\"source\":\"Embedded fallback from the original sensor-review chart\"},{\"model\":\"ATL050S-M\",\"models\":[\"ATL050S-M\"],\"sensor\":\"Sony IMX250\",\"group\":\"global\",\"wavelengths\":[320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100],\"values\":[9.69,13.8,17.99,22.4,25.67,29.68,36.28,43.55,47.71,51.44,53.56,55.97,59.88,62.38,65.04,66.53,66.31,66.75,67.43,66.54,66.81,67.27,67.53,67.58,67.52,67.34,67.03,65.07,64.8,62.47,60.99,60.88,58.38,56.41,54.0,52.45,50.97,48.17,46.2,44.81,43.62,39.66,38.07,37.71,34.85,32.57,30.25,28.55,26.58,24.24,21.22,20.22,19.38,17.9,15.68,14.24,12.94,12.05,10.74,9.54,8.37,6.99,6.12,5.55,4.94,4.16,3.45,2.84,2.53,2.1,1.73,1.31,0.99,0.75,0.6,0.49,0.42,0.34,0.27],\"source\":\"Embedded fallback from the original sensor-review chart\"}];\r\nvar lucidQeMeasurements = [];\r\nvar lucidQeSensors = [];\r\n\r\nvar lucidQeGroupCopy = {\r\n    global: 'Global-shutter sensors: distortion-free exposure for moving subjects and synchronized industrial imaging.',\r\n    rolling: 'Rolling-shutter sensors: often selected for high resolution, low-light sensitivity, or NIR performance.'\r\n};\r\n\r\nvar lucidQeRecommended = {\r\n    global: ['Sony IMX530', 'Sony IMX540', 'Sony IMX545', 'Sony IMX420'],\r\n    rolling: ['Sony IMX585', 'Sony IMX571', 'Sony IMX676', 'Sony IMX492']\r\n};\r\n\r\nvar lucidQeColors = [\r\n    'rgba(45, 96, 160, 1)',\r\n    'rgba(205, 79, 57, 1)',\r\n    'rgba(50, 133, 84, 1)',\r\n    'rgba(130, 83, 166, 1)',\r\n    'rgba(218, 145, 45, 1)',\r\n    'rgba(46, 151, 166, 1)',\r\n    'rgba(166, 74, 116, 1)',\r\n    'rgba(102, 118, 54, 1)',\r\n    'rgba(98, 98, 98, 1)',\r\n    'rgba(55, 127, 195, 1)'\r\n];\r\n\r\nvar lucidQeDashes = [\r\n    [],\r\n    [8, 4],\r\n    [3, 3],\r\n    [12, 4, 3, 4],\r\n    [2, 2],\r\n    [10, 3],\r\n    [6, 3, 2, 3],\r\n    [14, 4],\r\n    [4, 4],\r\n    [9, 3, 2, 3, 2, 3]\r\n];\r\n\r\nvar lucidQeActiveGroup = 'global';\r\nvar lucidQeActiveWavelength = 'peak';\r\nvar lucidQeSelections = {\r\n    global: [],\r\n    rolling: []\r\n};\r\n\r\nvar lucidQeRankingChart = null;\r\nvar lucidQeCurveChart = null;\r\n\r\nfunction lucidQeUniqueStrings(values) {\r\n    var seen = {};\r\n\r\n    return values.filter(function (value) {\r\n        var key = String(value);\r\n\r\n        if (seen[key]) {\r\n            return false;\r\n        }\r\n\r\n        seen[key] = true;\r\n        return true;\r\n    });\r\n}\r\n\r\nfunction lucidQeNormalizeMeasurement(raw) {\r\n    var wavelengths = raw.wavelengths || [];\r\n    var values = raw.values || [];\r\n    var models = raw.models || (raw.model ? [raw.model] : []);\r\n\r\n    wavelengths = wavelengths.map(Number);\r\n    values = values.map(Number);\r\n    models = lucidQeUniqueStrings(models.map(String));\r\n\r\n    if (\r\n        !raw.sensor ||\r\n        !raw.group ||\r\n        wavelengths.length < 2 ||\r\n        wavelengths.length !== values.length\r\n    ) {\r\n        return null;\r\n    }\r\n\r\n    var points = [];\r\n\r\n    wavelengths.forEach(function (wavelength, index) {\r\n        if (\r\n            isFinite(wavelength) &&\r\n            isFinite(values[index]) &&\r\n            values[index] >= 0 &&\r\n            values[index] <= 100\r\n        ) {\r\n            points.push({\r\n                x: wavelength,\r\n                y: values[index]\r\n            });\r\n        }\r\n    });\r\n\r\n    points.sort(function (a, b) {\r\n        return a.x - b.x;\r\n    });\r\n\r\n    if (points.length < 2) {\r\n        return null;\r\n    }\r\n\r\n    return {\r\n        model: models.join(' \/ '),\r\n        models: models,\r\n        sensor: String(raw.sensor),\r\n        group: String(raw.group),\r\n        wavelengths: points.map(function (point) { return point.x; }),\r\n        values: points.map(function (point) { return point.y; }),\r\n        source: raw.source || '',\r\n        sources: raw.sources || []\r\n    };\r\n}\r\n\r\nfunction lucidQeMergeMeasurements(fallbackRows, siteRows) {\r\n    var normalizedFallback = fallbackRows\r\n        .map(lucidQeNormalizeMeasurement)\r\n        .filter(Boolean);\r\n\r\n    var normalizedSite = siteRows\r\n        .map(lucidQeNormalizeMeasurement)\r\n        .filter(Boolean);\r\n\r\n    var siteModels = {};\r\n\r\n    normalizedSite.forEach(function (measurement) {\r\n        measurement.models.forEach(function (model) {\r\n            siteModels[String(model).toUpperCase()] = true;\r\n        });\r\n    });\r\n\r\n    var merged = normalizedFallback.filter(function (measurement) {\r\n        return !measurement.models.some(function (model) {\r\n            return siteModels[String(model).toUpperCase()];\r\n        });\r\n    }).concat(normalizedSite);\r\n\r\n    var unique = {};\r\n\r\n    merged.forEach(function (measurement) {\r\n        var key = [\r\n            measurement.sensor,\r\n            measurement.group,\r\n            JSON.stringify(measurement.wavelengths),\r\n            JSON.stringify(measurement.values)\r\n        ].join('|');\r\n\r\n        if (!unique[key]) {\r\n            unique[key] = measurement;\r\n            return;\r\n        }\r\n\r\n        unique[key].models = lucidQeUniqueStrings(\r\n            unique[key].models.concat(measurement.models)\r\n        );\r\n        unique[key].model = unique[key].models.join(' \/ ');\r\n    });\r\n\r\n    return Object.keys(unique).map(function (key) {\r\n        return unique[key];\r\n    });\r\n}\r\n\r\nfunction lucidQeInterpolate(wavelengths, values, wavelength) {\r\n    wavelength = Number(wavelength);\r\n\r\n    if (\r\n        !wavelengths.length ||\r\n        wavelength < wavelengths[0] ||\r\n        wavelength > wavelengths[wavelengths.length - 1]\r\n    ) {\r\n        return null;\r\n    }\r\n\r\n    for (var index = 0; index < wavelengths.length; index += 1) {\r\n        if (Number(wavelengths[index]) === wavelength) {\r\n            return Number(values[index]);\r\n        }\r\n\r\n        if (Number(wavelengths[index]) > wavelength && index > 0) {\r\n            var x1 = Number(wavelengths[index - 1]);\r\n            var x2 = Number(wavelengths[index]);\r\n            var y1 = Number(values[index - 1]);\r\n            var y2 = Number(values[index]);\r\n            var ratio = (wavelength - x1) \/ (x2 - x1);\r\n\r\n            return y1 + ((y2 - y1) * ratio);\r\n        }\r\n    }\r\n\r\n    return null;\r\n}\r\n\r\nfunction lucidQeMeasurementValueAt(measurement, wavelength) {\r\n    return lucidQeInterpolate(\r\n        measurement.wavelengths,\r\n        measurement.values,\r\n        wavelength\r\n    );\r\n}\r\n\r\nfunction lucidQeBuildSensorAverages() {\r\n    var grouped = {};\r\n\r\n    lucidQeMeasurements.forEach(function (measurement) {\r\n        if (!grouped[measurement.sensor]) {\r\n            grouped[measurement.sensor] = {\r\n                sensor: measurement.sensor,\r\n                group: measurement.group,\r\n                measurements: []\r\n            };\r\n        }\r\n\r\n        grouped[measurement.sensor].measurements.push(measurement);\r\n    });\r\n\r\n    return Object.keys(grouped).map(function (sensorName) {\r\n        var group = grouped[sensorName];\r\n        var wavelengthMap = {};\r\n\r\n        group.measurements.forEach(function (measurement) {\r\n            measurement.wavelengths.forEach(function (wavelength) {\r\n                wavelengthMap[String(wavelength)] = Number(wavelength);\r\n            });\r\n        });\r\n\r\n        var wavelengths = Object.keys(wavelengthMap)\r\n            .map(function (key) { return wavelengthMap[key]; })\r\n            .sort(function (a, b) { return a - b; });\r\n\r\n        var points = [];\r\n        var minimums = [];\r\n        var maximums = [];\r\n\r\n        wavelengths.forEach(function (wavelength) {\r\n            var values = group.measurements\r\n                .map(function (measurement) {\r\n                    return lucidQeMeasurementValueAt(\r\n                        measurement,\r\n                        wavelength\r\n                    );\r\n                })\r\n                .filter(function (value) {\r\n                    return value !== null && isFinite(value);\r\n                });\r\n\r\n            if (!values.length) {\r\n                return;\r\n            }\r\n\r\n            var total = values.reduce(function (sum, value) {\r\n                return sum + value;\r\n            }, 0);\r\n\r\n            points.push({\r\n                x: wavelength,\r\n                y: total \/ values.length\r\n            });\r\n            minimums.push(Math.min.apply(null, values));\r\n            maximums.push(Math.max.apply(null, values));\r\n        });\r\n\r\n        var peakIndex = 0;\r\n\r\n        points.forEach(function (point, index) {\r\n            if (point.y > points[peakIndex].y) {\r\n                peakIndex = index;\r\n            }\r\n        });\r\n\r\n        return {\r\n            sensor: sensorName,\r\n            group: group.group,\r\n            measurements: group.measurements,\r\n            points: points,\r\n            minimums: minimums,\r\n            maximums: maximums,\r\n            peakIndex: peakIndex,\r\n            peakValue: points[peakIndex] ? points[peakIndex].y : null,\r\n            peakWavelength: points[peakIndex] ? points[peakIndex].x : null\r\n        };\r\n    }).filter(function (sensor) {\r\n        return sensor.points.length > 1;\r\n    });\r\n}\r\n\r\nfunction lucidQeSensorValueAt(sensor, wavelength) {\r\n    return lucidQeInterpolate(\r\n        sensor.points.map(function (point) { return point.x; }),\r\n        sensor.points.map(function (point) { return point.y; }),\r\n        wavelength\r\n    );\r\n}\r\n\r\nfunction lucidQeSensorStatsAt(sensor, wavelength) {\r\n    var values = sensor.measurements.map(function (measurement) {\r\n        return lucidQeMeasurementValueAt(measurement, wavelength);\r\n    }).filter(function (value) {\r\n        return value !== null && isFinite(value);\r\n    });\r\n\r\n    if (!values.length) {\r\n        return null;\r\n    }\r\n\r\n    return {\r\n        minimum: Math.min.apply(null, values),\r\n        maximum: Math.max.apply(null, values),\r\n        count: values.length\r\n    };\r\n}\r\n\r\nfunction lucidQeSensorsForGroup(group) {\r\n    return lucidQeSensors\r\n        .filter(function (sensor) {\r\n            return sensor.group === group;\r\n        })\r\n        .sort(function (a, b) {\r\n            return a.sensor.localeCompare(b.sensor);\r\n        });\r\n}\r\n\r\nfunction lucidQeSensorByName(sensorName) {\r\n    for (var index = 0; index < lucidQeSensors.length; index += 1) {\r\n        if (lucidQeSensors[index].sensor === sensorName) {\r\n            return lucidQeSensors[index];\r\n        }\r\n    }\r\n\r\n    return null;\r\n}\r\n\r\nfunction lucidQeFormat(value, decimals) {\r\n    return Number(value).toFixed(decimals);\r\n}\r\n\r\nfunction lucidQeDefaultSelection(group) {\r\n    var available = lucidQeSensorsForGroup(group).map(function (sensor) {\r\n        return sensor.sensor;\r\n    });\r\n\r\n    var preferred = (lucidQeRecommended[group] || []).filter(function (sensor) {\r\n        return available.indexOf(sensor) !== -1;\r\n    });\r\n\r\n    if (!preferred.length) {\r\n        preferred = available.slice(0, 10);\r\n    }\r\n\r\n    return preferred.slice(0, 10);\r\n}\r\n\r\nfunction lucidQeEnsureSelections() {\r\n    ['global', 'rolling'].forEach(function (group) {\r\n        var available = lucidQeSensorsForGroup(group).map(function (sensor) {\r\n            return sensor.sensor;\r\n        });\r\n\r\n        lucidQeSelections[group] = (lucidQeSelections[group] || [])\r\n            .filter(function (sensor) {\r\n                return available.indexOf(sensor) !== -1;\r\n            });\r\n\r\n        if (!lucidQeSelections[group].length) {\r\n            lucidQeSelections[group] = lucidQeDefaultSelection(group);\r\n        }\r\n    });\r\n}\r\n\r\nfunction lucidQeRankingRecord(sensor) {\r\n    var value;\r\n    var wavelength;\r\n\r\n    if (lucidQeActiveWavelength === 'peak') {\r\n        value = sensor.peakValue;\r\n        wavelength = sensor.peakWavelength;\r\n    } else {\r\n        wavelength = Number(lucidQeActiveWavelength);\r\n        value = lucidQeSensorValueAt(sensor, wavelength);\r\n    }\r\n\r\n    if (value === null || !isFinite(value)) {\r\n        return null;\r\n    }\r\n\r\n    return {\r\n        sensor: sensor,\r\n        wavelength: wavelength,\r\n        value: value\r\n    };\r\n}\r\n\r\nfunction lucidQeBarLabelPlugin() {\r\n    return {\r\n        afterDatasetsDraw: function (chart) {\r\n            if (!chart.data.datasets.length) {\r\n                return;\r\n            }\r\n\r\n            var context = chart.ctx;\r\n            var meta = chart.getDatasetMeta(0);\r\n            var dataset = chart.data.datasets[0];\r\n\r\n            context.save();\r\n            context.font = \"11px 'Poppins', sans-serif\";\r\n            context.fillStyle = '#333333';\r\n            context.textAlign = 'left';\r\n            context.textBaseline = 'middle';\r\n\r\n            meta.data.forEach(function (bar, index) {\r\n                if (!bar || !bar._model) {\r\n                    return;\r\n                }\r\n\r\n                context.fillText(\r\n                    lucidQeFormat(dataset.data[index], 1) + '%',\r\n                    bar._model.x + 7,\r\n                    bar._model.y\r\n                );\r\n            });\r\n\r\n            context.restore();\r\n        }\r\n    };\r\n}\r\n\r\nfunction lucidQeRegionPlugin() {\r\n    return {\r\n        beforeDatasetsDraw: function (chart) {\r\n            if (!chart.chartArea || !chart.scales['x-axis-0']) {\r\n                return;\r\n            }\r\n\r\n            var xScale = chart.scales['x-axis-0'];\r\n            var area = chart.chartArea;\r\n            var context = chart.ctx;\r\n            var minimum = Number(xScale.min);\r\n            var maximum = Number(xScale.max);\r\n\r\n            function clampedPixel(wavelength) {\r\n                var clamped = Math.max(\r\n                    minimum,\r\n                    Math.min(maximum, wavelength)\r\n                );\r\n\r\n                return xScale.getPixelForValue(clamped);\r\n            }\r\n\r\n            context.save();\r\n\r\n            if (maximum > 400 && minimum < 700) {\r\n                var visibleStart = clampedPixel(400);\r\n                var visibleEnd = clampedPixel(700);\r\n\r\n                context.fillStyle = 'rgba(246, 203, 91, 0.075)';\r\n                context.fillRect(\r\n                    visibleStart,\r\n                    area.top,\r\n                    visibleEnd - visibleStart,\r\n                    area.bottom - area.top\r\n                );\r\n\r\n                context.font = \"10px 'Poppins', sans-serif\";\r\n                context.fillStyle = 'rgba(60, 60, 60, 0.6)';\r\n                context.textAlign = 'center';\r\n                context.fillText(\r\n                    'VISIBLE',\r\n                    visibleStart + ((visibleEnd - visibleStart) \/ 2),\r\n                    area.top + 13\r\n                );\r\n            }\r\n\r\n            if (maximum > 700 && minimum < 1100) {\r\n                var nirStart = clampedPixel(700);\r\n                var nirEnd = clampedPixel(1100);\r\n\r\n                context.fillStyle = 'rgba(122, 91, 166, 0.055)';\r\n                context.fillRect(\r\n                    nirStart,\r\n                    area.top,\r\n                    nirEnd - nirStart,\r\n                    area.bottom - area.top\r\n                );\r\n\r\n                context.font = \"10px 'Poppins', sans-serif\";\r\n                context.fillStyle = 'rgba(60, 60, 60, 0.6)';\r\n                context.textAlign = 'center';\r\n                context.fillText(\r\n                    'NIR',\r\n                    nirStart + ((nirEnd - nirStart) \/ 2),\r\n                    area.top + 13\r\n                );\r\n            }\r\n\r\n            context.restore();\r\n        }\r\n    };\r\n}\r\n\r\nfunction lucidQeCreateCharts() {\r\n    var rankingCanvas = document.getElementById('lucid-qe-ranking-chart');\r\n    var curveCanvas = document.getElementById('lucid-qe-curve-chart');\r\n\r\n    if (!rankingCanvas || !curveCanvas) {\r\n        return;\r\n    }\r\n\r\n    lucidQeRankingChart = new Chart(\r\n        rankingCanvas.getContext('2d'),\r\n        {\r\n            type: 'horizontalBar',\r\n            data: {\r\n                labels: [],\r\n                datasets: [{\r\n                    label: '',\r\n                    data: [],\r\n                    backgroundColor: [],\r\n                    borderColor: [],\r\n                    borderWidth: 1,\r\n                    barPercentage: 0.72,\r\n                    categoryPercentage: 0.88\r\n                }]\r\n            },\r\n            plugins: [lucidQeBarLabelPlugin()],\r\n            options: {\r\n                responsive: true,\r\n                maintainAspectRatio: false,\r\n                legend: {\r\n                    display: false\r\n                },\r\n                layout: {\r\n                    padding: {\r\n                        right: 58\r\n                    }\r\n                },\r\n                tooltips: {\r\n                    enabled: true,\r\n                    titleFontFamily: \"'Poppins', sans-serif\",\r\n                    bodyFontFamily: \"'Poppins', sans-serif\",\r\n                    mode: 'nearest',\r\n                    intersect: true,\r\n                    callbacks: {\r\n                        title: function (tooltipItems) {\r\n                            var record = lucidQeRankingChart._lucidRecords[\r\n                                tooltipItems[0].index\r\n                            ];\r\n\r\n                            return record.sensor.sensor;\r\n                        },\r\n                        label: function (tooltipItem) {\r\n                            var record = lucidQeRankingChart._lucidRecords[\r\n                                tooltipItem.index\r\n                            ];\r\n\r\n                            return ' Average QE: ' +\r\n                                lucidQeFormat(record.value, 2) +\r\n                                '% at ' +\r\n                                record.wavelength +\r\n                                ' nm';\r\n                        },\r\n                        afterLabel: function (tooltipItem) {\r\n                            var record = lucidQeRankingChart._lucidRecords[\r\n                                tooltipItem.index\r\n                            ];\r\n                            var sensor = record.sensor;\r\n                            var stats = lucidQeSensorStatsAt(\r\n                                sensor,\r\n                                record.wavelength\r\n                            );\r\n                            var lines = [];\r\n\r\n                            if (stats) {\r\n                                lines.push(\r\n                                    'Measurements: ' + stats.count,\r\n                                    'Range: ' +\r\n                                        lucidQeFormat(stats.minimum, 2) +\r\n                                        '\u2013' +\r\n                                        lucidQeFormat(stats.maximum, 2) +\r\n                                        '%',\r\n                                    ''\r\n                                );\r\n                            }\r\n\r\n                            sensor.measurements.forEach(function (measurement) {\r\n                                var value = lucidQeMeasurementValueAt(\r\n                                    measurement,\r\n                                    record.wavelength\r\n                                );\r\n\r\n                                if (value !== null) {\r\n                                    lines.push(\r\n                                        measurement.models.join(' \/ ') +\r\n                                        ': ' +\r\n                                        lucidQeFormat(value, 2) +\r\n                                        '%'\r\n                                    );\r\n                                }\r\n                            });\r\n\r\n                            return lines;\r\n                        }\r\n                    }\r\n                },\r\n                scales: {\r\n                    xAxes: [{\r\n                        ticks: {\r\n                            beginAtZero: true,\r\n                            min: 0,\r\n                            max: 100,\r\n                            precision: 0,\r\n                            callback: function (value) {\r\n                                return Math.round(Number(value)) + '%';\r\n                            }\r\n                        },\r\n                        scaleLabel: {\r\n                            display: true,\r\n                            fontSize: 13,\r\n                            fontFamily: \"'Poppins', sans-serif\",\r\n                            labelString: 'AVERAGE QUANTUM EFFICIENCY (%)'\r\n                        }\r\n                    }],\r\n                    yAxes: [{\r\n                        ticks: {\r\n                            fontFamily: \"'Poppins', sans-serif\",\r\n                            fontSize: 11,\r\n                            lineHeight: 1.2\r\n                        }\r\n                    }]\r\n                }\r\n            }\r\n        }\r\n    );\r\n\r\n    lucidQeCurveChart = new Chart(\r\n        curveCanvas.getContext('2d'),\r\n        {\r\n            type: 'line',\r\n            data: {\r\n                datasets: []\r\n            },\r\n            plugins: [lucidQeRegionPlugin()],\r\n            options: {\r\n                responsive: true,\r\n                maintainAspectRatio: false,\r\n                legend: {\r\n                    display: true,\r\n                    position: 'top',\r\n                    labels: {\r\n                        fontFamily: \"'Poppins', sans-serif\",\r\n                        fontSize: 11,\r\n                        usePointStyle: true\r\n                    }\r\n                },\r\n                hover: {\r\n                    mode: 'nearest',\r\n                    intersect: false\r\n                },\r\n                tooltips: {\r\n                    enabled: true,\r\n                    titleFontFamily: \"'Poppins', sans-serif\",\r\n                    bodyFontFamily: \"'Poppins', sans-serif\",\r\n                    mode: 'nearest',\r\n                    intersect: false,\r\n                    callbacks: {\r\n                        title: function (tooltipItems) {\r\n                            return lucidQeFormat(\r\n                                tooltipItems[0].xLabel,\r\n                                0\r\n                            ) + ' nm';\r\n                        },\r\n                        label: function (tooltipItem) {\r\n                            var dataset = lucidQeCurveChart.data.datasets[\r\n                                tooltipItem.datasetIndex\r\n                            ];\r\n\r\n                            return ' ' +\r\n                                dataset.label +\r\n                                ': ' +\r\n                                lucidQeFormat(tooltipItem.yLabel, 2) +\r\n                                '% average QE';\r\n                        },\r\n                        afterLabel: function (tooltipItem) {\r\n                            var dataset = lucidQeCurveChart.data.datasets[\r\n                                tooltipItem.datasetIndex\r\n                            ];\r\n                            var sensor = dataset._lucidSensor;\r\n                            var wavelength = Number(tooltipItem.xLabel);\r\n                            var stats = lucidQeSensorStatsAt(\r\n                                sensor,\r\n                                wavelength\r\n                            );\r\n                            var lines = [];\r\n\r\n                            if (stats) {\r\n                                lines.push(\r\n                                    'Range: ' +\r\n                                        lucidQeFormat(stats.minimum, 2) +\r\n                                        '\u2013' +\r\n                                        lucidQeFormat(stats.maximum, 2) +\r\n                                        '%',\r\n                                    'Measurements: ' +\r\n                                        stats.count\r\n                                );\r\n                            }\r\n\r\n                            sensor.measurements.forEach(function (measurement) {\r\n                                var value = lucidQeMeasurementValueAt(\r\n                                    measurement,\r\n                                    wavelength\r\n                                );\r\n\r\n                                if (value !== null) {\r\n                                    lines.push(\r\n                                        measurement.models.join(' \/ ') +\r\n                                        ': ' +\r\n                                        lucidQeFormat(value, 2) +\r\n                                        '%'\r\n                                    );\r\n                                }\r\n                            });\r\n\r\n                            return lines;\r\n                        }\r\n                    }\r\n                },\r\n                elements: {\r\n                    line: {\r\n                        tension: 0\r\n                    }\r\n                },\r\n                scales: {\r\n                    xAxes: [{\r\n                        type: 'linear',\r\n                        position: 'bottom',\r\n                        ticks: {\r\n                            callback: function (value) {\r\n                                return value + ' nm';\r\n                            }\r\n                        },\r\n                        scaleLabel: {\r\n                            display: true,\r\n                            fontSize: 13,\r\n                            fontFamily: \"'Poppins', sans-serif\",\r\n                            labelString: 'WAVELENGTH (nm)'\r\n                        }\r\n                    }],\r\n                    yAxes: [{\r\n                        ticks: {\r\n                            min: 0,\r\n                            max: 100,\r\n                            callback: function (value) {\r\n                                return value + '%';\r\n                            }\r\n                        },\r\n                        scaleLabel: {\r\n                            display: true,\r\n                            fontSize: 13,\r\n                            fontFamily: \"'Poppins', sans-serif\",\r\n                            labelString: 'AVERAGE QUANTUM EFFICIENCY (%)'\r\n                        }\r\n                    }]\r\n                }\r\n            }\r\n        }\r\n    );\r\n}\r\n\r\nfunction lucidQeUpdateGroupButtons() {\r\n    var buttons = document.querySelectorAll(\r\n        '#lucid-qe-group-buttons [data-qe-group]'\r\n    );\r\n\r\n    Array.prototype.forEach.call(buttons, function (button) {\r\n        button.classList.toggle(\r\n            'is-active',\r\n            button.getAttribute('data-qe-group') === lucidQeActiveGroup\r\n        );\r\n    });\r\n\r\n}\r\n\r\nfunction lucidQeUpdateWavelengthButtons() {\r\n    var buttons = document.querySelectorAll(\r\n        '#lucid-qe-wavelength-buttons [data-qe-wavelength]'\r\n    );\r\n\r\n    Array.prototype.forEach.call(buttons, function (button) {\r\n        button.classList.toggle(\r\n            'is-active',\r\n            button.getAttribute('data-qe-wavelength') ===\r\n                String(lucidQeActiveWavelength)\r\n        );\r\n    });\r\n}\r\n\r\nfunction lucidQeRenderSensorOptions() {\r\n    var container = document.getElementById('lucid-qe-sensor-options');\r\n    var selected = lucidQeSelections[lucidQeActiveGroup] || [];\r\n    var sensors = lucidQeSensorsForGroup(lucidQeActiveGroup);\r\n\r\n    container.innerHTML = '';\r\n\r\n    sensors.forEach(function (sensor) {\r\n        var label = document.createElement('label');\r\n        var checkbox = document.createElement('input');\r\n        var text = document.createElement('span');\r\n\r\n        label.className = 'lucid-qe-sensor-option';\r\n        checkbox.type = 'checkbox';\r\n        checkbox.value = sensor.sensor;\r\n        checkbox.checked = selected.indexOf(sensor.sensor) !== -1;\r\n        text.textContent =\r\n            sensor.sensor +\r\n            ' (' +\r\n            sensor.measurements.length +\r\n            (sensor.measurements.length === 1 ? ' measurement)' : ' measurements)');\r\n\r\n        checkbox.addEventListener('change', function () {\r\n            var current = lucidQeSelections[lucidQeActiveGroup];\r\n\r\n            if (checkbox.checked) {\r\n                if (current.length >= 10) {\r\n                    checkbox.checked = false;\r\n                    document.getElementById(\r\n                        'lucid-qe-selection-message'\r\n                    ).textContent =\r\n                        'Select no more than ten sensors at one time.';\r\n                    return;\r\n                }\r\n\r\n                current.push(sensor.sensor);\r\n            } else {\r\n                current = current.filter(function (sensorName) {\r\n                    return sensorName !== sensor.sensor;\r\n                });\r\n\r\n                lucidQeSelections[lucidQeActiveGroup] = current;\r\n            }\r\n\r\n            document.getElementById(\r\n                'lucid-qe-selection-message'\r\n            ).textContent = '';\r\n\r\n            lucidQeRenderSensorOptions();\r\n            lucidQeUpdateCurveChart();\r\n        });\r\n\r\n        label.appendChild(checkbox);\r\n        label.appendChild(text);\r\n        container.appendChild(label);\r\n    });\r\n\r\n    var selectedCount = selected.length;\r\n    document.getElementById(\r\n        'lucid-qe-selected-count'\r\n    ).textContent = selectedCount + ' of 10 selected';\r\n\r\n    var checkboxes = container.querySelectorAll('input[type=\"checkbox\"]');\r\n\r\n    Array.prototype.forEach.call(checkboxes, function (checkbox) {\r\n        var shouldDisable =\r\n            selectedCount >= 10 && !checkbox.checked;\r\n\r\n        checkbox.disabled = shouldDisable;\r\n        checkbox.parentNode.classList.toggle(\r\n            'is-disabled',\r\n            shouldDisable\r\n        );\r\n    });\r\n}\r\n\r\nfunction lucidQeUpdateRankingChart() {\r\n    var records = lucidQeSensorsForGroup(lucidQeActiveGroup)\r\n        .map(lucidQeRankingRecord)\r\n        .filter(Boolean)\r\n        .sort(function (a, b) {\r\n            return b.value - a.value;\r\n        });\r\n\r\n    var rankingWrap = document.getElementById(\r\n        'lucid-qe-ranking-wrap'\r\n    );\r\n    if (!records.length) {\r\n        rankingWrap.hidden = true;\r\n        return;\r\n    }\r\n\r\n    rankingWrap.hidden = false;\r\n    rankingWrap.style.height =\r\n        Math.max(410, records.length * 31 + 100) + 'px';\r\n\r\n    lucidQeRankingChart._lucidRecords = records;\r\n    lucidQeRankingChart.data.labels = records.map(function (record) {\r\n        return record.sensor.sensor;\r\n    });\r\n    lucidQeRankingChart.data.datasets[0].data = records.map(\r\n        function (record) {\r\n            return Number(record.value.toFixed(2));\r\n        }\r\n    );\r\n    lucidQeRankingChart.data.datasets[0].backgroundColor = records.map(\r\n        function (record, index) {\r\n            return 'hsla(' +\r\n                Math.round((index * 137.508) % 360) +\r\n                ', 58%, 48%, 0.42)';\r\n        }\r\n    );\r\n    lucidQeRankingChart.data.datasets[0].borderColor = records.map(\r\n        function (record, index) {\r\n            return 'hsla(' +\r\n                Math.round((index * 137.508) % 360) +\r\n                ', 58%, 42%, 1)';\r\n        }\r\n    );\r\n\r\n    lucidQeRankingChart.update();\r\n}\r\n\r\nfunction lucidQeUpdateCurveChart() {\r\n    var selectedNames = lucidQeSelections[lucidQeActiveGroup] || [];\r\n    var datasets = [];\r\n    var allWavelengths = [];\r\n\r\n    selectedNames.forEach(function (sensorName, index) {\r\n        var sensor = lucidQeSensorByName(sensorName);\r\n\r\n        if (!sensor) {\r\n            return;\r\n        }\r\n\r\n        sensor.points.forEach(function (point) {\r\n            allWavelengths.push(point.x);\r\n        });\r\n\r\n        datasets.push({\r\n            label: sensor.sensor,\r\n            data: sensor.points.map(function (point) {\r\n                return {\r\n                    x: point.x,\r\n                    y: Number(point.y.toFixed(3))\r\n                };\r\n            }),\r\n            borderColor: lucidQeColors[index],\r\n            backgroundColor: lucidQeColors[index],\r\n            borderDash: lucidQeDashes[index],\r\n            borderWidth: 2.5,\r\n            fill: false,\r\n            pointRadius: 0,\r\n            pointHoverRadius: 5,\r\n            pointHitRadius: 8,\r\n            _lucidSensor: sensor\r\n        });\r\n    });\r\n\r\n    lucidQeCurveChart.data.datasets = datasets;\r\n\r\n    if (allWavelengths.length) {\r\n        var minimum = Math.min.apply(null, allWavelengths);\r\n        var maximum = Math.max.apply(null, allWavelengths);\r\n\r\n        lucidQeCurveChart.options.scales.xAxes[0].ticks.min =\r\n            Math.floor(minimum \/ 50) * 50;\r\n        lucidQeCurveChart.options.scales.xAxes[0].ticks.max =\r\n            Math.ceil(maximum \/ 50) * 50;\r\n    }\r\n\r\n    lucidQeCurveChart.update();\r\n}\r\n\r\nfunction lucidQeRefreshInterface() {\r\n    lucidQeUpdateGroupButtons();\r\n    lucidQeUpdateWavelengthButtons();\r\n\r\n    document.getElementById(\r\n        'lucid-qe-group-note'\r\n    ).textContent = lucidQeGroupCopy[lucidQeActiveGroup];\r\n\r\n    document.getElementById(\r\n        'lucid-qe-selection-message'\r\n    ).textContent = '';\r\n\r\n    lucidQeRenderSensorOptions();\r\n    lucidQeUpdateRankingChart();\r\n    lucidQeUpdateCurveChart();\r\n}\r\n\r\nfunction lucidQeBindControls() {\r\n    var groupButtons = document.querySelectorAll(\r\n        '#lucid-qe-group-buttons [data-qe-group]'\r\n    );\r\n\r\n    Array.prototype.forEach.call(groupButtons, function (button) {\r\n        button.addEventListener('click', function () {\r\n            lucidQeActiveGroup = button.getAttribute('data-qe-group');\r\n\r\n            lucidQeRefreshInterface();\r\n        });\r\n    });\r\n\r\n    var wavelengthButtons = document.querySelectorAll(\r\n        '#lucid-qe-wavelength-buttons [data-qe-wavelength]'\r\n    );\r\n\r\n    Array.prototype.forEach.call(wavelengthButtons, function (button) {\r\n        button.addEventListener('click', function () {\r\n            lucidQeActiveWavelength = button.getAttribute(\r\n                'data-qe-wavelength'\r\n            );\r\n\r\n            lucidQeUpdateWavelengthButtons();\r\n            lucidQeUpdateRankingChart();\r\n        });\r\n    });\r\n\r\n    document.getElementById(\r\n        'lucid-qe-reset-selection'\r\n    ).addEventListener('click', function () {\r\n        lucidQeSelections[lucidQeActiveGroup] =\r\n            lucidQeDefaultSelection(lucidQeActiveGroup);\r\n\r\n        lucidQeRefreshInterface();\r\n    });\r\n}\r\n\r\nfunction lucidQeInitializeExplorer(siteMeasurements) {\r\n    lucidQeMeasurements = lucidQeMergeMeasurements(\r\n        lucidQeFallbackMeasurements,\r\n        siteMeasurements || []\r\n    ).filter(function (measurement) {\r\n        return measurement.group === 'global' ||\r\n            measurement.group === 'rolling';\r\n    });\r\n\r\n    lucidQeSensors = lucidQeBuildSensorAverages();\r\n    lucidQeEnsureSelections();\r\n    lucidQeCreateCharts();\r\n    lucidQeBindControls();\r\n    lucidQeRefreshInterface();\r\n}\r\n\r\nfunction lucidQeLoadPublishedData() {\r\n    var endpoint = '\/wp-json\/lucid-emva\/v1\/qe';\r\n\r\n    fetch(endpoint, {\r\n        credentials: 'same-origin',\r\n        cache: 'no-store'\r\n    })\r\n        .then(function (response) {\r\n            if (!response.ok) {\r\n                throw new Error('QE endpoint returned HTTP ' + response.status);\r\n            }\r\n\r\n            return response.json();\r\n        })\r\n        .then(function (payload) {\r\n            var siteMeasurements =\r\n                payload && Array.isArray(payload.measurements)\r\n                    ? payload.measurements\r\n                    : [];\r\n\r\n            lucidQeInitializeExplorer(siteMeasurements);\r\n        })\r\n        .catch(function () {\r\n            lucidQeInitializeExplorer([]);\r\n        });\r\n}\r\n\r\nlucidQeLoadPublishedData();\r\n\r\n\r\n\/*\r\n * Sensor-average EMVA 1288 charts.\r\n *\r\n * The WPBakery page already supplies these canvases:\r\n * chart-area3, chart-area4, chart-area5, chart-area6 and chart-area7.\r\n *\r\n * This snippet supplies the LUCID measurements, averaging logic and\r\n * Chart.js v2.9.3 chart configuration.\r\n *\/\r\nvar lucidEmvaMeasurements = [{\"model\":\"PHX004S-M\",\"sensor\":\"Sony IMX287\",\"dynamicRange\":74.13,\"saturationCapacity\":21214.0,\"temporalDarkNoise\":3.32,\"snr\":43.27,\"absoluteSensitivity\":6.15},{\"model\":\"TRI004S-M\",\"sensor\":\"Sony IMX287\",\"dynamicRange\":74.1,\"saturationCapacity\":21111.0,\"temporalDarkNoise\":3.32,\"snr\":43.25,\"absoluteSensitivity\":5.94},{\"model\":\"PHX064S-M\",\"sensor\":\"Sony IMX178\",\"dynamicRange\":71.99,\"saturationCapacity\":14497.0,\"temporalDarkNoise\":2.96,\"snr\":41.61,\"absoluteSensitivity\":4.48},{\"model\":\"TRI028S-M\",\"sensor\":\"Sony IMX429\",\"dynamicRange\":71.99,\"saturationCapacity\":24844.0,\"temporalDarkNoise\":5.46,\"snr\":43.95,\"absoluteSensitivity\":7.98},{\"model\":\"TRI064S-M\",\"sensor\":\"Sony IMX178\",\"dynamicRange\":71.93,\"saturationCapacity\":14475.0,\"temporalDarkNoise\":2.98,\"snr\":41.61,\"absoluteSensitivity\":4.57},{\"model\":\"ATL071S-M\",\"sensor\":\"Sony IMX420\",\"dynamicRange\":71.92,\"saturationCapacity\":24548.0,\"temporalDarkNoise\":5.43,\"snr\":43.9,\"absoluteSensitivity\":8.43},{\"model\":\"ATL028S-M\",\"sensor\":\"Sony IMX421\",\"dynamicRange\":71.87,\"saturationCapacity\":25601.0,\"temporalDarkNoise\":5.73,\"snr\":44.08,\"absoluteSensitivity\":8.63},{\"model\":\"PHX200S-M\",\"sensor\":\"Sony IMX183\",\"dynamicRange\":71.85,\"saturationCapacity\":14806.0,\"temporalDarkNoise\":3.1,\"snr\":41.7,\"absoluteSensitivity\":4.53},{\"model\":\"TRI071S-M\",\"sensor\":\"Sony IMX428\",\"dynamicRange\":71.81,\"saturationCapacity\":24749.0,\"temporalDarkNoise\":5.52,\"snr\":43.94,\"absoluteSensitivity\":8.05},{\"model\":\"TRI032S-M\",\"sensor\":\"Sony IMX265\",\"dynamicRange\":71.78,\"saturationCapacity\":10521.0,\"temporalDarkNoise\":2.07,\"snr\":40.22,\"absoluteSensitivity\":3.93},{\"model\":\"PHX032S-M\",\"sensor\":\"Sony IMX265\",\"dynamicRange\":71.75,\"saturationCapacity\":10605.0,\"temporalDarkNoise\":2.1,\"snr\":40.25,\"absoluteSensitivity\":3.99},{\"model\":\"PHX050S-M\",\"sensor\":\"Sony IMX264\",\"dynamicRange\":71.66,\"saturationCapacity\":10679.0,\"temporalDarkNoise\":2.15,\"snr\":40.28,\"absoluteSensitivity\":4.05},{\"model\":\"TRI050S-M\",\"sensor\":\"Sony IMX264\",\"dynamicRange\":71.61,\"saturationCapacity\":10540.0,\"temporalDarkNoise\":2.13,\"snr\":40.23,\"absoluteSensitivity\":3.99},{\"model\":\"ATL050S-M\",\"sensor\":\"Sony IMX250\",\"dynamicRange\":71.6,\"saturationCapacity\":10590.0,\"temporalDarkNoise\":2.15,\"snr\":40.25,\"absoluteSensitivity\":4.07},{\"model\":\"TRI023S-M\",\"sensor\":\"Sony IMX392\",\"dynamicRange\":71.57,\"saturationCapacity\":10269.0,\"temporalDarkNoise\":2.07,\"snr\":40.11,\"absoluteSensitivity\":3.92},{\"model\":\"PHX023S-M\",\"sensor\":\"Sony IMX392\",\"dynamicRange\":71.51,\"saturationCapacity\":10462.0,\"temporalDarkNoise\":2.14,\"snr\":40.19,\"absoluteSensitivity\":4.11},{\"model\":\"PHX016S-M\",\"sensor\":\"Sony IMX273\",\"dynamicRange\":71.42,\"saturationCapacity\":10501.0,\"temporalDarkNoise\":2.18,\"snr\":40.21,\"absoluteSensitivity\":4.14},{\"model\":\"PHX120S-M\",\"sensor\":\"Sony IMX304\",\"dynamicRange\":71.34,\"saturationCapacity\":10404.0,\"temporalDarkNoise\":2.2,\"snr\":40.17,\"absoluteSensitivity\":4.1},{\"model\":\"PHX050S-P\",\"sensor\":\"Sony IMX250MZR\",\"dynamicRange\":71.34,\"saturationCapacity\":10318.0,\"temporalDarkNoise\":2.16,\"snr\":40.14,\"absoluteSensitivity\":5.28},{\"model\":\"TRI050S-P\",\"sensor\":\"Sony IMX250MZR\",\"dynamicRange\":71.34,\"saturationCapacity\":10318.0,\"temporalDarkNoise\":2.16,\"snr\":40.14,\"absoluteSensitivity\":5.28},{\"model\":\"PHX089S-M\",\"sensor\":\"Sony IMX267\",\"dynamicRange\":71.3,\"saturationCapacity\":10310.0,\"temporalDarkNoise\":2.18,\"snr\":40.13,\"absoluteSensitivity\":4.06},{\"model\":\"ATL089S-M\",\"sensor\":\"Sony IMX255\",\"dynamicRange\":71.3,\"saturationCapacity\":10328.0,\"temporalDarkNoise\":2.18,\"snr\":40.1,\"absoluteSensitivity\":4.02},{\"model\":\"TRI016S-M\",\"sensor\":\"Sony IMX273\",\"dynamicRange\":71.26,\"saturationCapacity\":10375.0,\"temporalDarkNoise\":2.2,\"snr\":40.16,\"absoluteSensitivity\":4.05},{\"model\":\"TRI200S-M\",\"sensor\":\"Sony IMX183\",\"dynamicRange\":71.23,\"saturationCapacity\":14609.0,\"temporalDarkNoise\":3.07,\"snr\":40.15,\"absoluteSensitivity\":4.0},{\"model\":\"TRI089S-M\",\"sensor\":\"Sony IMX267\",\"dynamicRange\":71.23,\"saturationCapacity\":10362.0,\"temporalDarkNoise\":2.21,\"snr\":40.15,\"absoluteSensitivity\":4.0},{\"model\":\"ATL120S-M\",\"sensor\":\"Sony IMX253\",\"dynamicRange\":71.2,\"saturationCapacity\":10223.0,\"temporalDarkNoise\":2.18,\"snr\":40.1,\"absoluteSensitivity\":3.96},{\"model\":\"TRI120S-M\",\"sensor\":\"Sony IMX304\",\"dynamicRange\":71.19,\"saturationCapacity\":10265.0,\"temporalDarkNoise\":2.2,\"snr\":40.11,\"absoluteSensitivity\":4.05},{\"model\":\"ATL168S-M\",\"sensor\":\"Sony IMX387\",\"dynamicRange\":71.0,\"saturationCapacity\":10441.0,\"temporalDarkNoise\":2.3,\"snr\":40.19,\"absoluteSensitivity\":4.42},{\"model\":\"ATL196S-M\",\"sensor\":\"Sony IMX367\",\"dynamicRange\":70.9,\"saturationCapacity\":10388.0,\"temporalDarkNoise\":2.3,\"snr\":40.17,\"absoluteSensitivity\":4.19},{\"model\":\"ATL314S-M\",\"sensor\":\"Sony IMX342\",\"dynamicRange\":70.8,\"saturationCapacity\":10274.0,\"temporalDarkNoise\":2.35,\"snr\":40.11,\"absoluteSensitivity\":4.18},{\"model\":\"TRI122S-M\",\"sensor\":\"Sony IMX226\",\"dynamicRange\":69.68,\"saturationCapacity\":11075.0,\"temporalDarkNoise\":3.0,\"snr\":40.44,\"absoluteSensitivity\":4.4},{\"model\":\"PHX122S-M\",\"sensor\":\"Sony IMX226\",\"dynamicRange\":69.62,\"saturationCapacity\":10972.0,\"temporalDarkNoise\":3.01,\"snr\":40.4,\"absoluteSensitivity\":4.44},{\"model\":\"PHX124S-M\",\"sensor\":\"Sony IMX565\",\"dynamicRange\":69.85,\"saturationCapacity\":9116.0,\"temporalDarkNoise\":2.34,\"snr\":39.6,\"absoluteSensitivity\":4.38},{\"model\":\"PHX081S-M\",\"sensor\":\"Sony IMX566\",\"dynamicRange\":69.99,\"saturationCapacity\":9606.0,\"temporalDarkNoise\":2.44,\"snr\":39.83,\"absoluteSensitivity\":4.18},{\"model\":\"PHX051S-M\",\"sensor\":\"Sony IMX568\",\"dynamicRange\":69.75,\"saturationCapacity\":9443.0,\"temporalDarkNoise\":2.48,\"snr\":39.75,\"absoluteSensitivity\":4.33},{\"model\":\"PHX024G-M\",\"sensor\":\"Gpixel GMAX4002\",\"dynamicRange\":65.8,\"saturationCapacity\":10077.0,\"temporalDarkNoise\":4.6,\"snr\":40.03,\"absoluteSensitivity\":7.11},{\"model\":\"TRX470S-M\",\"sensor\":\"Sony IMX492\",\"dynamicRange\":65.46,\"saturationCapacity\":15916.0,\"temporalDarkNoise\":7.9,\"snr\":42.02,\"absoluteSensitivity\":9.9},{\"model\":\"TRX245S-M\",\"sensor\":\"Sony IMX530\",\"dynamicRange\":70.61,\"saturationCapacity\":9298.0,\"temporalDarkNoise\":2.13,\"snr\":39.68,\"absoluteSensitivity\":3.66},{\"model\":\"TRX204S-M\",\"sensor\":\"Sony IMX531\",\"dynamicRange\":70.6,\"saturationCapacity\":9426.0,\"temporalDarkNoise\":2.16,\"snr\":39.74,\"absoluteSensitivity\":3.71},{\"model\":\"TRX162S-M\",\"sensor\":\"Sony IMX532\",\"dynamicRange\":70.5,\"saturationCapacity\":9366.0,\"temporalDarkNoise\":2.18,\"snr\":39.71,\"absoluteSensitivity\":3.76},{\"model\":\"TRX124S-M\",\"sensor\":\"Sony IMX535\",\"dynamicRange\":69.65,\"saturationCapacity\":9079.0,\"temporalDarkNoise\":2.39,\"snr\":39.58,\"absoluteSensitivity\":4.25},{\"model\":\"TRX083S-M\",\"sensor\":\"Sony IMX585\",\"dynamicRange\":74.5,\"saturationCapacity\":38250.0,\"temporalDarkNoise\":6.15,\"snr\":45.83,\"absoluteSensitivity\":7.35},{\"model\":\"TRX081S-M\",\"sensor\":\"Sony IMX536\",\"dynamicRange\":69.63,\"saturationCapacity\":9305.0,\"temporalDarkNoise\":2.47,\"snr\":39.69,\"absoluteSensitivity\":4.31},{\"model\":\"TRX071S-M\",\"sensor\":\"Sony IMX420\",\"dynamicRange\":71.7,\"saturationCapacity\":23560.0,\"temporalDarkNoise\":5.35,\"snr\":43.7,\"absoluteSensitivity\":8.13},{\"model\":\"TRX051S-M\",\"sensor\":\"Sony IMX537\",\"dynamicRange\":69.66,\"saturationCapacity\":9252.0,\"temporalDarkNoise\":2.44,\"snr\":39.66,\"absoluteSensitivity\":4.3},{\"model\":\"TRX028S-M\",\"sensor\":\"Sony IMX421\",\"dynamicRange\":71.7,\"saturationCapacity\":23815.0,\"temporalDarkNoise\":5.39,\"snr\":43.7,\"absoluteSensitivity\":7.98},{\"model\":\"TRT245S-M\",\"sensor\":\"Sony IMX540\",\"dynamicRange\":70.63,\"saturationCapacity\":9443.0,\"temporalDarkNoise\":2.17,\"snr\":39.75,\"absoluteSensitivity\":3.8},{\"model\":\"TRT204S-M\",\"sensor\":\"Sony IMX541\",\"dynamicRange\":70.8,\"saturationCapacity\":9642.0,\"temporalDarkNoise\":2.17,\"snr\":39.84,\"absoluteSensitivity\":3.82},{\"model\":\"TRT200S-M\",\"sensor\":\"Sony IMX183\",\"dynamicRange\":71.67,\"saturationCapacity\":14792.0,\"temporalDarkNoise\":3.17,\"snr\":41.7,\"absoluteSensitivity\":4.68},{\"model\":\"TRT162S-M\",\"sensor\":\"Sony IMX542\",\"dynamicRange\":70.73,\"saturationCapacity\":9617.0,\"temporalDarkNoise\":2.18,\"snr\":39.83,\"absoluteSensitivity\":3.92},{\"model\":\"TRT124S-M\",\"sensor\":\"Sony IMX545\",\"dynamicRange\":69.7,\"saturationCapacity\":8966.0,\"temporalDarkNoise\":2.34,\"snr\":39.53,\"absoluteSensitivity\":4.42},{\"model\":\"TRT120S-M\",\"sensor\":\"Sony IMX304\",\"dynamicRange\":71.4,\"saturationCapacity\":10610.0,\"temporalDarkNoise\":2.24,\"snr\":40.26,\"absoluteSensitivity\":4.18},{\"model\":\"TRT089S-M\",\"sensor\":\"Sony IMX267\",\"dynamicRange\":71.4,\"saturationCapacity\":10506.0,\"temporalDarkNoise\":2.19,\"snr\":40.2,\"absoluteSensitivity\":4.27},{\"model\":\"TRT081S-M\",\"sensor\":\"Sony IMX546\",\"dynamicRange\":69.93,\"saturationCapacity\":9546.0,\"temporalDarkNoise\":2.44,\"snr\":39.8,\"absoluteSensitivity\":4.34},{\"model\":\"TRT071S-M\",\"sensor\":\"Sony IMX428\",\"dynamicRange\":71.55,\"saturationCapacity\":24160.0,\"temporalDarkNoise\":5.6,\"snr\":43.8,\"absoluteSensitivity\":8.4},{\"model\":\"TRT064S-M\",\"sensor\":\"Sony IMX178\",\"dynamicRange\":71.99,\"saturationCapacity\":14637.0,\"temporalDarkNoise\":2.99,\"snr\":41.65,\"absoluteSensitivity\":4.66},{\"model\":\"TRT051S-M\",\"sensor\":\"Sony IMX547\",\"dynamicRange\":69.82,\"saturationCapacity\":9548.0,\"temporalDarkNoise\":2.49,\"snr\":39.8,\"absoluteSensitivity\":4.33},{\"model\":\"TRT050S-M\",\"sensor\":\"Sony IMX264\",\"dynamicRange\":71.7,\"saturationCapacity\":10487.0,\"temporalDarkNoise\":2.09,\"snr\":40.2,\"absoluteSensitivity\":4.14},{\"model\":\"TRT032S-M\",\"sensor\":\"Sony IMX265\",\"dynamicRange\":71.7,\"saturationCapacity\":10585.0,\"temporalDarkNoise\":2.11,\"snr\":40.2,\"absoluteSensitivity\":4.12},{\"model\":\"TRT028S-M\",\"sensor\":\"Sony IMX429\",\"dynamicRange\":71.83,\"saturationCapacity\":24530.0,\"temporalDarkNoise\":5.49,\"snr\":43.9,\"absoluteSensitivity\":8.28},{\"model\":\"TRT024G-M\",\"sensor\":\"Gpixel GMAX4002\",\"dynamicRange\":65.47,\"saturationCapacity\":10092.0,\"temporalDarkNoise\":4.82,\"snr\":40.04,\"absoluteSensitivity\":7.5},{\"model\":\"TRT023S-M\",\"sensor\":\"Sony IMX392\",\"dynamicRange\":71.3,\"saturationCapacity\":10476.0,\"temporalDarkNoise\":2.23,\"snr\":40.2,\"absoluteSensitivity\":4.32},{\"model\":\"TRT016S-M\",\"sensor\":\"Sony IMX273\",\"dynamicRange\":71.3,\"saturationCapacity\":10430.0,\"temporalDarkNoise\":2.21,\"snr\":40.18,\"absoluteSensitivity\":4.3},{\"model\":\"TRI245S-M\",\"sensor\":\"Sony IMX540\",\"dynamicRange\":70.41,\"saturationCapacity\":9272.0,\"temporalDarkNoise\":2.19,\"snr\":39.67,\"absoluteSensitivity\":3.85},{\"model\":\"TRI204S-M\",\"sensor\":\"Sony IMX541\",\"dynamicRange\":70.69,\"saturationCapacity\":9470.0,\"temporalDarkNoise\":2.16,\"snr\":39.76,\"absoluteSensitivity\":3.73},{\"model\":\"TRI124S-M\",\"sensor\":\"Sony IMX545\",\"dynamicRange\":69.76,\"saturationCapacity\":9198.0,\"temporalDarkNoise\":2.39,\"snr\":39.64,\"absoluteSensitivity\":4.45},{\"model\":\"TRI081S-M\",\"sensor\":\"Sony IMX546\",\"dynamicRange\":69.91,\"saturationCapacity\":9579.0,\"temporalDarkNoise\":2.46,\"snr\":39.8,\"absoluteSensitivity\":4.27},{\"model\":\"TRI055N-M\",\"sensor\":\"onsemi AR0521\",\"dynamicRange\":69.2,\"saturationCapacity\":9901.0,\"temporalDarkNoise\":2.84,\"snr\":39.95,\"absoluteSensitivity\":4.22},{\"model\":\"TRI051S-M\",\"sensor\":\"Sony IMX547\",\"dynamicRange\":69.9,\"saturationCapacity\":9608.0,\"temporalDarkNoise\":2.48,\"snr\":39.8,\"absoluteSensitivity\":4.29},{\"model\":\"TRI005S-M\",\"sensor\":\"Sony IMX433\",\"dynamicRange\":72.51,\"saturationCapacity\":100845.0,\"temporalDarkNoise\":22.2,\"snr\":50.04,\"absoluteSensitivity\":31.68},{\"model\":\"ATP204S-M\",\"sensor\":\"Sony IMX541\",\"dynamicRange\":70.8,\"saturationCapacity\":9501.0,\"temporalDarkNoise\":2.1,\"snr\":39.8,\"absoluteSensitivity\":3.67},{\"model\":\"ATP200S-M\",\"sensor\":\"Sony IMX183\",\"dynamicRange\":71.9,\"saturationCapacity\":14506.0,\"temporalDarkNoise\":3.0,\"snr\":41.6,\"absoluteSensitivity\":4.45},{\"model\":\"ATP162S-M\",\"sensor\":\"Sony IMX542\",\"dynamicRange\":70.9,\"saturationCapacity\":9543.0,\"temporalDarkNoise\":2.1,\"snr\":39.8,\"absoluteSensitivity\":3.76},{\"model\":\"ATP124S-M\",\"sensor\":\"Sony IMX545\",\"dynamicRange\":69.78,\"saturationCapacity\":9066.0,\"temporalDarkNoise\":2.34,\"snr\":39.57,\"absoluteSensitivity\":4.21},{\"model\":\"ATP081S-M\",\"sensor\":\"Sony IMX546\",\"dynamicRange\":70.0,\"saturationCapacity\":9480.0,\"temporalDarkNoise\":2.4,\"snr\":39.8,\"absoluteSensitivity\":4.2},{\"model\":\"ATP051S-M\",\"sensor\":\"Sony IMX547\",\"dynamicRange\":70.04,\"saturationCapacity\":9697.0,\"temporalDarkNoise\":2.45,\"snr\":39.9,\"absoluteSensitivity\":4.22},{\"model\":\"ATV245S-M\",\"sensor\":\"Sony IMX530\",\"dynamicRange\":70.44,\"saturationCapacity\":9367.0,\"temporalDarkNoise\":2.21,\"snr\":39.7,\"absoluteSensitivity\":3.79},{\"model\":\"ATV204S-M\",\"sensor\":\"Sony IMX531\",\"dynamicRange\":70.5,\"saturationCapacity\":9456.0,\"temporalDarkNoise\":2.2,\"snr\":39.75,\"absoluteSensitivity\":4.46},{\"model\":\"ATV162S-M\",\"sensor\":\"Sony IMX532\",\"dynamicRange\":70.5,\"saturationCapacity\":9265.0,\"temporalDarkNoise\":2.14,\"snr\":39.7,\"absoluteSensitivity\":3.73},{\"model\":\"ATV124S-M\",\"sensor\":\"Sony IMX535\",\"dynamicRange\":69.9,\"saturationCapacity\":9502.0,\"temporalDarkNoise\":2.44,\"snr\":39.8,\"absoluteSensitivity\":4.46},{\"model\":\"ATX650G-M\",\"sensor\":\"Gpixel GMAX3265\",\"dynamicRange\":64.49,\"saturationCapacity\":9957.0,\"temporalDarkNoise\":5.38,\"snr\":40.0,\"absoluteSensitivity\":9.88},{\"model\":\"ATX470S-M\",\"sensor\":\"Sony IMX492\",\"dynamicRange\":65.39,\"saturationCapacity\":15655.0,\"temporalDarkNoise\":7.83,\"snr\":41.95,\"absoluteSensitivity\":10.17},{\"model\":\"ATX450N-M\",\"sensor\":\"onsemi XGS 45000\",\"dynamicRange\":65.05,\"saturationCapacity\":8609.0,\"temporalDarkNoise\":4.26,\"snr\":39.35,\"absoluteSensitivity\":7.99},{\"model\":\"ATX314S-M\",\"sensor\":\"Sony IMX342\",\"dynamicRange\":70.9,\"saturationCapacity\":10276.0,\"temporalDarkNoise\":2.32,\"snr\":40.11,\"absoluteSensitivity\":4.18},{\"model\":\"ATX245S-M\",\"sensor\":\"Sony IMX530\",\"dynamicRange\":70.57,\"saturationCapacity\":9253.0,\"temporalDarkNoise\":2.13,\"snr\":39.66,\"absoluteSensitivity\":3.73},{\"model\":\"ATX204S-M\",\"sensor\":\"Sony IMX531\",\"dynamicRange\":70.73,\"saturationCapacity\":9426.0,\"temporalDarkNoise\":2.13,\"snr\":39.74,\"absoluteSensitivity\":3.7},{\"model\":\"ATX162S-M\",\"sensor\":\"Sony IMX532\",\"dynamicRange\":70.79,\"saturationCapacity\":9411.0,\"temporalDarkNoise\":2.1,\"snr\":39.74,\"absoluteSensitivity\":3.79},{\"model\":\"ATX124S-M\",\"sensor\":\"Sony IMX535\",\"dynamicRange\":69.9,\"saturationCapacity\":9100.0,\"temporalDarkNoise\":2.3,\"snr\":39.6,\"absoluteSensitivity\":4.2},{\"model\":\"ATX081S-M\",\"sensor\":\"Sony IMX536\",\"dynamicRange\":70.43,\"saturationCapacity\":9536.0,\"temporalDarkNoise\":2.27,\"snr\":39.79,\"absoluteSensitivity\":3.77},{\"model\":\"ATX051S-M\",\"sensor\":\"Sony IMX537\",\"dynamicRange\":70.2,\"saturationCapacity\":9543.0,\"temporalDarkNoise\":2.35,\"snr\":39.8,\"absoluteSensitivity\":4.29}];\r\n\r\nvar lucidAverageChartDefinitions = [\r\n    {\r\n        canvasId: 'chart-area3',\r\n        key: 'dynamicRange',\r\n        axisLabel: 'AVERAGE DYNAMIC RANGE (dB)',\r\n        unit: 'dB',\r\n        decimals: 2,\r\n        betterDirection: 'high'\r\n    },\r\n    {\r\n        canvasId: 'chart-area4',\r\n        key: 'saturationCapacity',\r\n        axisLabel: 'AVERAGE SATURATION CAPACITY (e\u207b)',\r\n        unit: 'e\u207b',\r\n        decimals: 0,\r\n        betterDirection: 'high'\r\n    },\r\n    {\r\n        canvasId: 'chart-area5',\r\n        key: 'temporalDarkNoise',\r\n        axisLabel: 'AVERAGE TEMPORAL DARK NOISE (e\u207b)',\r\n        unit: 'e\u207b',\r\n        decimals: 2,\r\n        betterDirection: 'low'\r\n    },\r\n    {\r\n        canvasId: 'chart-area6',\r\n        key: 'snr',\r\n        axisLabel: 'AVERAGE SIGNAL-TO-NOISE RATIO (dB)',\r\n        unit: 'dB',\r\n        decimals: 2,\r\n        betterDirection: 'high'\r\n    },\r\n    {\r\n        canvasId: 'chart-area7',\r\n        key: 'absoluteSensitivity',\r\n        axisLabel: 'AVERAGE ABSOLUTE SENSITIVITY THRESHOLD (\u03b3)',\r\n        unit: '\u03b3',\r\n        decimals: 2,\r\n        betterDirection: 'low'\r\n    }\r\n];\r\n\r\nfunction lucidNumberWithCommas(value) {\r\n    var parts = String(value).split('.');\r\n    parts[0] = parts[0].replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ',');\r\n    return parts.join('.');\r\n}\r\n\r\nfunction lucidFormatValue(value, decimals) {\r\n    return lucidNumberWithCommas(Number(value).toFixed(decimals));\r\n}\r\n\r\nfunction lucidSensorColor(index, alpha) {\r\n    var hue = Math.round((index * 137.508) % 360);\r\n    return 'hsla(' + hue + ', 62%, 48%, ' + alpha + ')';\r\n}\r\n\r\nfunction lucidAxisMaximum(values) {\r\n    var maximum = Math.max.apply(null, values);\r\n\r\n    \/*\r\n     * Reserve approximately 14% extra room on the right so the value\r\n     * printed after each bar remains inside the chart area. Rounding\r\n     * upward prevents Chart.js from displaying a long decimal at the\r\n     * final x-axis tick.\r\n     *\/\r\n    return Math.ceil(maximum * 1.14);\r\n}\r\n\r\nfunction lucidGroupMeasurements(metricKey, direction) {\r\n    var grouped = {};\r\n\r\n    lucidEmvaMeasurements.forEach(function (measurement) {\r\n        if (!grouped[measurement.sensor]) {\r\n            grouped[measurement.sensor] = {\r\n                sensor: measurement.sensor,\r\n                values: [],\r\n                models: []\r\n            };\r\n        }\r\n\r\n        grouped[measurement.sensor].values.push(\r\n            Number(measurement[metricKey])\r\n        );\r\n\r\n        grouped[measurement.sensor].models.push({\r\n            model: measurement.model,\r\n            value: Number(measurement[metricKey])\r\n        });\r\n    });\r\n\r\n    var results = Object.keys(grouped).map(function (sensor) {\r\n        var group = grouped[sensor];\r\n\r\n        var total = group.values.reduce(function (sum, value) {\r\n            return sum + value;\r\n        }, 0);\r\n\r\n        group.average = total \/ group.values.length;\r\n        group.minimum = Math.min.apply(null, group.values);\r\n        group.maximum = Math.max.apply(null, group.values);\r\n        group.count = group.values.length;\r\n\r\n        group.models.sort(function (a, b) {\r\n            return a.model.localeCompare(b.model);\r\n        });\r\n\r\n        return group;\r\n    });\r\n\r\n    results.sort(function (a, b) {\r\n        if (a.average === b.average) {\r\n            return a.sensor.localeCompare(b.sensor);\r\n        }\r\n\r\n        return direction === 'low'\r\n            ? a.average - b.average\r\n            : b.average - a.average;\r\n    });\r\n\r\n    return results;\r\n}\r\n\r\nfunction lucidCreateSensorAverageChart(definition) {\r\n    var canvas = document.getElementById(definition.canvasId);\r\n\r\n    if (!canvas) {\r\n        return;\r\n    }\r\n\r\n    var results = lucidGroupMeasurements(\r\n        definition.key,\r\n        definition.betterDirection\r\n    );\r\n\r\n    \/*\r\n     * Increase chart height automatically according to the number of sensors.\r\n     * This prevents the y-axis labels and bars from becoming crowded.\r\n     *\/\r\n    var container = canvas.parentNode;\r\n    container.style.height =\r\n        Math.max(600, results.length * 28 + 105) + 'px';\r\n\r\n    var labels = results.map(function (item) {\r\n        return item.sensor;\r\n    });\r\n\r\n    var values = results.map(function (item) {\r\n        return Number(\r\n            item.average.toFixed(definition.decimals)\r\n        );\r\n    });\r\n\r\n    var axisMaximum = lucidAxisMaximum(values);\r\n\r\n    var backgroundColors = results.map(function (item, index) {\r\n        return lucidSensorColor(index, 0.45);\r\n    });\r\n\r\n    var borderColors = results.map(function (item, index) {\r\n        return lucidSensorColor(index, 1);\r\n    });\r\n\r\n    new Chart(canvas.getContext('2d'), {\r\n        type: 'horizontalBar',\r\n        data: {\r\n            labels: labels,\r\n            datasets: [{\r\n                label: '',\r\n                data: values,\r\n                backgroundColor: backgroundColors,\r\n                borderColor: borderColors,\r\n                borderWidth: 1,\r\n                barPercentage: 0.72,\r\n                categoryPercentage: 0.88\r\n            }]\r\n        },\r\n\r\n        plugins: [{\r\n            afterDatasetsDraw: function (chart) {\r\n                var context = chart.ctx;\r\n                var dataset = chart.data.datasets[0];\r\n                var meta = chart.getDatasetMeta(0);\r\n\r\n                context.save();\r\n                context.font = \"11px 'Poppins', sans-serif\";\r\n                context.fillStyle = '#333333';\r\n                context.textAlign = 'left';\r\n                context.textBaseline = 'middle';\r\n\r\n                meta.data.forEach(function (bar, index) {\r\n                    if (!bar || !bar._model) {\r\n                        return;\r\n                    }\r\n\r\n                    var valueLabel =\r\n                        lucidFormatValue(\r\n                            dataset.data[index],\r\n                            definition.decimals\r\n                        ) +\r\n                        ' ' +\r\n                        definition.unit;\r\n\r\n                    context.fillText(\r\n                        valueLabel,\r\n                        bar._model.x + 7,\r\n                        bar._model.y\r\n                    );\r\n                });\r\n\r\n                context.restore();\r\n            }\r\n        }],\r\n\r\n        options: {\r\n            responsive: true,\r\n            maintainAspectRatio: false,\r\n\r\n            legend: {\r\n                display: false\r\n            },\r\n\r\n            layout: {\r\n                padding: {\r\n                    right: 18\r\n                }\r\n            },\r\n\r\n            tooltips: {\r\n                enabled: true,\r\n                titleFontFamily: \"'Poppins', sans-serif\",\r\n                bodyFontFamily: \"'Poppins', sans-serif\",\r\n                mode: 'nearest',\r\n                intersect: true,\r\n\r\n                callbacks: {\r\n                    title: function (tooltipItems) {\r\n                        return results[tooltipItems[0].index].sensor;\r\n                    },\r\n\r\n                    label: function (tooltipItem) {\r\n                        var item = results[tooltipItem.index];\r\n\r\n                        return ' Average: ' +\r\n                            lucidFormatValue(\r\n                                item.average,\r\n                                definition.decimals\r\n                            ) +\r\n                            ' ' +\r\n                            definition.unit;\r\n                    },\r\n\r\n                    afterLabel: function (tooltipItem) {\r\n                        var item = results[tooltipItem.index];\r\n\r\n                        var lines = [\r\n                            'Measurements: ' + item.count,\r\n                            'Range: ' +\r\n                                lucidFormatValue(\r\n                                    item.minimum,\r\n                                    definition.decimals\r\n                                ) +\r\n                                '\u2013' +\r\n                                lucidFormatValue(\r\n                                    item.maximum,\r\n                                    definition.decimals\r\n                                ) +\r\n                                ' ' +\r\n                                definition.unit,\r\n                            ''\r\n                        ];\r\n\r\n                        item.models.forEach(function (entry) {\r\n                            lines.push(\r\n                                entry.model +\r\n                                ': ' +\r\n                                lucidFormatValue(\r\n                                    entry.value,\r\n                                    definition.decimals\r\n                                ) +\r\n                                ' ' +\r\n                                definition.unit\r\n                            );\r\n                        });\r\n\r\n                        return lines;\r\n                    }\r\n                }\r\n            },\r\n\r\n            scales: {\r\n                xAxes: [{\r\n                    ticks: {\r\n                        beginAtZero: true,\r\n                        max: axisMaximum,\r\n\r\n                        precision: 0,\r\n                        callback: function (value) {\r\n                            return lucidNumberWithCommas(\r\n                                Math.round(Number(value))\r\n                            );\r\n                        }\r\n                    },\r\n\r\n                    scaleLabel: {\r\n                        display: true,\r\n                        fontSize: 13,\r\n                        fontFamily: \"'Poppins', sans-serif\",\r\n                        labelString: definition.axisLabel,\r\n                        padding: 10,\r\n                        lineHeight: 1.2\r\n                    }\r\n                }],\r\n\r\n                yAxes: [{\r\n                    ticks: {\r\n                        fontFamily: \"'Poppins', sans-serif\",\r\n                        fontSize: 11,\r\n                        lineHeight: 1.2\r\n                    }\r\n                }]\r\n            }\r\n        }\r\n    });\r\n}\r\n\r\nlucidAverageChartDefinitions.forEach(\r\n    lucidCreateSensorAverageChart\r\n);\r\n\r\n});\r\n<\/script>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220; gap=&#8220;35&#8243; equal_height=&#8220;yes&#8220; content_placement=&#8220;middle&#8220; css=&#8220;.vc_custom_1784872968326{margin-top: 80px !important;}&#8220; el_id=&#8220;dr&#8220;][vc_column width=&#8220;5\/6&#8243; offset=&#8220;vc_col-lg-7 vc_col-md-8 vc_col-sm-offset-1 vc_col-xs-12&#8243;][vc_custom_heading text=&#8220;Dynamikumfang&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1527724149142{margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1571789168455{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>H\u00f6her ist besser. F\u00fcr detaillierte Informationen mit der Maus \u00fcber die Balken fahren.<\/em><\/p>\n<p>[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjaGFydC1jb250YWluZXIlMjIlM0UlMEElM0NjYW52YXMlMjBpZCUzRCUyMmNoYXJ0LWFyZWEzJTIyJTNFJTNDJTJGY2FudmFzJTNFJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][\/vc_column][vc_column width=&#8220;5\/6&#8243; offset=&#8220;vc_col-lg-offset-0 vc_col-lg-3 vc_col-md-offset-0 vc_col-md-2 vc_col-sm-offset-1 vc_col-xs-12&#8243;][vc_column_text css=&#8220;&#8220;]<\/p>\n<p style=\"font-size: 13px; text-align: left;\"><span style=\"font-size: 12px;\"><strong>Dynamikumfang (dB) \u2013 Erkl\u00e4rung:<br \/>\n<\/strong> Der Dynamikumfang ist das Verh\u00e4ltnis zwischen dem maximalen Signalpegel (S\u00e4ttigungskapazit\u00e4t) und dem minimalen Signalpegel (zeitliches Dunkelrauschen) des Sensors. Je h\u00f6her der dB-Wert, desto besser kann der Sensor Graustufen vom hellsten bis zum dunkelsten Bildbereich differenzieren. Dies ist besonders wichtig bei Szenen mit gleichzeitig sehr hellen und sehr dunklen Bereichen.<\/span><em><span style=\"font-size: 12px;\"><br \/>\n<\/span><\/em><\/p>\n<p>[\/vc_column_text][vc_single_image image=&#8220;185601&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css=&#8220;.vc_custom_1527721071258{padding: 15px !important;}&#8220;][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220; gap=&#8220;35&#8243; equal_height=&#8220;yes&#8220; content_placement=&#8220;middle&#8220; css=&#8220;.vc_custom_1784872975246{margin-top: 80px !important;}&#8220; el_id=&#8220;sc&#8220;][vc_column width=&#8220;5\/6&#8243; offset=&#8220;vc_col-lg-7 vc_col-md-8 vc_col-sm-offset-1 vc_col-xs-12&#8243;][vc_custom_heading text=&#8220;S\u00e4ttigungskapazit\u00e4t&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1527724162210{margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1571789157670{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>H\u00f6her ist besser. F\u00fcr detaillierte Informationen mit der Maus \u00fcber die Balken fahren.<\/em><\/p>\n<p>[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjaGFydC1jb250YWluZXIlMjIlM0UlMEElM0NjYW52YXMlMjBpZCUzRCUyMmNoYXJ0LWFyZWE0JTIyJTNFJTNDJTJGY2FudmFzJTNFJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][\/vc_column][vc_column width=&#8220;5\/6&#8243; offset=&#8220;vc_col-lg-3 vc_col-md-offset-0 vc_col-md-2 vc_col-sm-offset-1 vc_col-xs-12&#8243;][vc_column_text css=&#8220;&#8220;]<\/p>\n<p style=\"font-size: 13px;\"><span style=\"font-size: 12px;\"><strong>S\u00e4ttigungskapazit\u00e4t (e\u207b) \u2013 Erkl\u00e4rung:<\/strong><br \/>\nJedes Pixel enth\u00e4lt eine Fotodiode, die Photonen in Elektronen umwandelt. Nach der Umwandlung werden die Elektronen vor\u00fcbergehend in der Fotodiode gespeichert, bis sie ausgelesen werden. Die S\u00e4ttigungskapazit\u00e4t gibt an, wie viele Elektronen die Fotodiode maximal aufnehmen kann. Ist diese Kapazit\u00e4t erreicht, erreicht der Sensor seinen maximalen Signalpegel; weitere Elektronen laufen \u00fcber und werden verworfen. Ein ges\u00e4ttigter Sensor erzeugt ein wei\u00dfes Bild. Eine gr\u00f6\u00dfere S\u00e4ttigungskapazit\u00e4t erm\u00f6glicht einen gr\u00f6\u00dferen nutzbaren Bereich bei der Erfassung unterschiedlicher Lichtintensit\u00e4ten.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][vc_single_image image=&#8220;185595&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css=&#8220;.vc_custom_1527723805893{padding: 15px !important;}&#8220;][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220; gap=&#8220;35&#8243; equal_height=&#8220;yes&#8220; content_placement=&#8220;middle&#8220; css=&#8220;.vc_custom_1784872996025{margin-top: 80px !important;}&#8220; el_id=&#8220;tdn&#8220;][vc_column width=&#8220;1\/12&#8243;][\/vc_column][vc_column width=&#8220;7\/12&#8243;][vc_custom_heading text=&#8220;Zeitliches Dunkelrauschen&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1527724626951{margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1571789177189{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>Niedriger ist besser. F\u00fcr detaillierte Informationen mit der Maus \u00fcber die Balken fahren.<\/em><\/p>\n<p>[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjaGFydC1jb250YWluZXIlMjIlM0UlMEElM0NjYW52YXMlMjBpZCUzRCUyMmNoYXJ0LWFyZWE1JTIyJTNFJTNDJTJGY2FudmFzJTNFJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][\/vc_column][vc_column width=&#8220;1\/4&#8243;][vc_column_text css=&#8220;&#8220;]<\/p>\n<p style=\"font-size: 13px; text-align: left;\"><strong>Zeitliches Dunkelrauschen (e\u207b) \u2013 Erkl\u00e4rung:\u00a0<\/strong><em><strong><br \/>\n<\/strong><\/em><span style=\"font-size: 12px;\">Das zeitliche Dunkelrauschen beschreibt das Rauschen, wenn kein Licht auf den Sensor f\u00e4llt. Durch die Sensorelektronik und die Pixelstrukturen entstehen zuf\u00e4llige, unerw\u00fcnschte Elektronen, die in das Pixel und die Signalverarbeitung gelangen und Rauschen verursachen k\u00f6nnen. Neuere Sensoren nutzen verbesserte Technologien und Pixelstrukturen, um das Rauschen zu reduzieren und Sensorkomponenten besser vor Temperaturschwankungen zu sch\u00fctzen. Ein niedrigeres zeitliches Dunkelrauschen ist besser und f\u00fchrt insbesondere bei wenig Licht zu saubereren Bildern.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][vc_single_image image=&#8220;185596&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css=&#8220;.vc_custom_1527724658241{padding: 15px !important;}&#8220;][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220; gap=&#8220;35&#8243; equal_height=&#8220;yes&#8220; content_placement=&#8220;middle&#8220; css=&#8220;.vc_custom_1784873009017{margin-top: 80px !important;}&#8220; el_id=&#8220;snr&#8220;][vc_column width=&#8220;1\/12&#8243;][\/vc_column][vc_column width=&#8220;7\/12&#8243;][vc_custom_heading text=&#8220;Signal-Rausch-Verh\u00e4ltnis (SNR)&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1527725333074{margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1571856792030{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>H\u00f6her ist besser. F\u00fcr detaillierte Informationen mit der Maus \u00fcber die Balken fahren.<\/em><\/p>\n<p>[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjaGFydC1jb250YWluZXIlMjIlM0UlMEElM0NjYW52YXMlMjBpZCUzRCUyMmNoYXJ0LWFyZWE2JTIyJTNFJTNDJTJGY2FudmFzJTNFJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][\/vc_column][vc_column width=&#8220;1\/4&#8243;][vc_column_text css=&#8220;&#8220;]<\/p>\n<p style=\"font-size: 13px; text-align: left;\"><span style=\"font-size: 12px;\"><em><strong>Signal-Rausch-Verh\u00e4ltnis (dB) \u2013 Erkl\u00e4rung:<br \/>\n<\/strong><\/em>Das Signal-Rausch-Verh\u00e4ltnis (SNR) gibt an, wie deutlich nutzbare Bildinformationen vom zeitlichen Dunkelrauschen getrennt werden k\u00f6nnen. Ein Ergebnis von 40 dB bedeutet beispielsweise, dass das Nutzsignal 40 dB \u00fcber dem Rauschpegel liegt. Je h\u00f6her das SNR, desto klarer ist das Bild.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][vc_single_image image=&#8220;185597&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css=&#8220;.vc_custom_1527725439761{padding: 15px !important;}&#8220;][\/vc_column][\/vc_row][vc_row full_width=&#8220;stretch_row_content&#8220; gap=&#8220;35&#8243; equal_height=&#8220;yes&#8220; content_placement=&#8220;middle&#8220; css=&#8220;.vc_custom_1784873024333{margin-top: 80px !important;}&#8220; el_id=&#8220;ast&#8220;][vc_column width=&#8220;1\/12&#8243;][\/vc_column][vc_column width=&#8220;7\/12&#8243;][vc_custom_heading text=&#8220;Absolute Empfindlichkeitsschwelle&#8220; font_container=&#8220;tag:h2|font_size:30|text_align:center&#8220; use_theme_fonts=&#8220;yes&#8220; css=&#8220;.vc_custom_1530294526023{margin-bottom: 15px !important;}&#8220;][vc_column_text css=&#8220;.vc_custom_1571856777757{margin-bottom: 30px !important;}&#8220;]<\/p>\n<p style=\"text-align: center;\"><em>Niedriger ist besser. F\u00fcr detaillierte Informationen mit der Maus \u00fcber die Balken fahren.<\/em><\/p>\n<p>[\/vc_column_text][vc_raw_html]JTNDZGl2JTIwY2xhc3MlM0QlMjJjaGFydC1jb250YWluZXIlMjIlM0UlMEElM0NjYW52YXMlMjBpZCUzRCUyMmNoYXJ0LWFyZWE3JTIyJTNFJTNDJTJGY2FudmFzJTNFJTBBJTNDJTJGZGl2JTNF[\/vc_raw_html][\/vc_column][vc_column width=&#8220;1\/4&#8243;][vc_column_text css=&#8220;&#8220;]<\/p>\n<p style=\"font-size: 13px;\"><strong>Absolute Empfindlichkeitsschwelle (\u03b3) \u2013 Erkl\u00e4rung:<\/strong><em><strong><br \/>\n<\/strong><\/em><span style=\"font-size: 12px;\">Die absolute Empfindlichkeitsschwelle gibt die geringste Lichtmenge an, die erforderlich ist, um den Rauschpegel des Sensors zu \u00fcberschreiten. Je niedriger der Wert, desto weniger Licht wird ben\u00f6tigt, um nutzbare Bildinformationen vom Rauschen zu unterscheiden. Niedrigere Werte bedeuten eine bessere Empfindlichkeit bei schwachen Lichtverh\u00e4ltnissen.<\/span><em><br \/>\n<\/em><\/p>\n<p>[\/vc_column_text][vc_single_image image=&#8220;185602&#8243; img_size=&#8220;large&#8220; style=&#8220;vc_box_shadow&#8220; onclick=&#8220;link_image&#8220; css=&#8220;.vc_custom_1527726159445{padding: 15px !important;}&#8220;][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Der EMVA 1288 Standard erleichtert den Vergleich der Bildleistung. Alle gro\u00dfen Kamerahersteller, auch LUCID, messen nach diesem Standard. Informieren Sie sich und vergleichen Sie die Messergebnisse.<\/p>\n","protected":false},"author":2,"featured_media":186031,"parent":186067,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","inline_featured_image":false,"footnotes":""},"tags":[2472,1777],"camera_family":[],"class_list":["post-185583","page","type-page","status-publish","has-post-thumbnail","hentry","tag-industry-standards-de","tag-tech-brief-de"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"google-site-verification\" content=\"1V7OkjwxFQwxSvzQaNhWVFOClIUvm_KH0xCwyjCKaZ8\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"LUCID Vision Labs - Industrial Machine Vision Cameras\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt\" \/>\n\t\t<meta property=\"og:description\" content=\"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-11-07T17:57:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-24T07:04:43+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/#listItem\",\"name\":\"Tech Briefs\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/#listItem\",\"position\":2,\"name\":\"Tech Briefs\",\"item\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#listItem\",\"name\":\"EMVA 1288: Spezifikationen zur Sensorleistung erkl\\u00e4rt\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#listItem\",\"position\":3,\"name\":\"EMVA 1288: Spezifikationen zur Sensorleistung erkl\\u00e4rt\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/#listItem\",\"name\":\"Tech Briefs\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#organization\",\"name\":\"LUCID Vision Labs\",\"description\":\"Industrial Machine Vision Cameras\",\"url\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/\",\"telephone\":\"+18334658243\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/https:\\/\\/thinklucid.com\\/wp-content\\/uploads\\/2023\\/04\\/Lucid-Vision-Labs-Logo.jpg\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#organizationLogo\"},\"image\":{\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#organizationLogo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#webpage\",\"url\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/\",\"name\":\"EMVA 1288: Spezifikationen zur Sensorleistung erkl\\u00e4rt\",\"description\":\"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#breadcrumblist\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/thinklucid.com\\/wp-content\\/uploads\\/2025\\/09\\/EMVA-1288-Standard.jpg\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#mainImage\",\"width\":450,\"height\":300,\"caption\":\"EMVA 1288 standard\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/tech-briefs\\\/camera-sensor-review\\\/#mainImage\"},\"datePublished\":\"2017-11-07T17:57:19-08:00\",\"dateModified\":\"2026-07-24T00:04:43-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/\",\"name\":\"LUCID Vision Labs\",\"alternateName\":\"LUCID\",\"description\":\"Industrial Machine Vision Cameras\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/thinklucid.com\\\/de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","description":"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.","canonical_url":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"1V7OkjwxFQwxSvzQaNhWVFOClIUvm_KH0xCwyjCKaZ8","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/#listItem","position":1,"name":"Home","item":"https:\/\/thinklucid.com\/de\/","nextItem":{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/#listItem","name":"Tech Briefs"}},{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/#listItem","position":2,"name":"Tech Briefs","item":"https:\/\/thinklucid.com\/de\/tech-briefs\/","nextItem":{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#listItem","name":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt"},"previousItem":{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#listItem","position":3,"name":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","previousItem":{"@type":"ListItem","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/#listItem","name":"Tech Briefs"}}]},{"@type":"Organization","@id":"https:\/\/thinklucid.com\/de\/#organization","name":"LUCID Vision Labs","description":"Industrial Machine Vision Cameras","url":"https:\/\/thinklucid.com\/de\/","telephone":"+18334658243","logo":{"@type":"ImageObject","url":"https:\/\/https:\/\/thinklucid.com\/wp-content\/uploads\/2023\/04\/Lucid-Vision-Labs-Logo.jpg","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#organizationLogo"},"image":{"@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#organizationLogo"}},{"@type":"WebPage","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#webpage","url":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/","name":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","description":"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/thinklucid.com\/de\/#website"},"breadcrumb":{"@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#breadcrumblist"},"image":{"@type":"ImageObject","url":"https:\/\/mlxrlrwirvff.i.optimole.com\/cb:UhP2~57313\/w:auto\/h:auto\/q:75\/https:\/\/thinklucid.com\/wp-content\/uploads\/2025\/09\/EMVA-1288-Standard.jpg","@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#mainImage","width":450,"height":300,"caption":"EMVA 1288 standard"},"primaryImageOfPage":{"@id":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/#mainImage"},"datePublished":"2017-11-07T17:57:19-08:00","dateModified":"2026-07-24T00:04:43-07:00"},{"@type":"WebSite","@id":"https:\/\/thinklucid.com\/de\/#website","url":"https:\/\/thinklucid.com\/de\/","name":"LUCID Vision Labs","alternateName":"LUCID","description":"Industrial Machine Vision Cameras","inLanguage":"de-DE","publisher":{"@id":"https:\/\/thinklucid.com\/de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"LUCID Vision Labs - Industrial Machine Vision Cameras","og:type":"article","og:title":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","og:description":"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.","og:url":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/","article:published_time":"2017-11-07T17:57:19+00:00","article:modified_time":"2026-07-24T07:04:43+00:00","twitter:card":"summary_large_image","twitter:title":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","twitter:description":"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden."},"aioseo_meta_data":{"post_id":"185583","title":"#post_title","description":"Vergleichen Sie die Leistungsdaten aktueller CMOS-Sensoren auf Kameramodellen von LUCID. Nutzen Sie die Ergebnisse auf dieser Seite, um die beste Kamera anhand von EMVA 1288 Messwerten zu Quanteneffizienz, absoluter Empfindlichkeit, Dynamikbereich und weiteren Parametern zu finden.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2025-09-26 19:31:30","updated":"2026-07-24 07:04:43","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/thinklucid.com\/de\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/thinklucid.com\/de\/tech-briefs\/\" title=\"Tech Briefs\">Tech Briefs<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tEMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/thinklucid.com\/de\/"},{"label":"Tech Briefs","link":"https:\/\/thinklucid.com\/de\/tech-briefs\/"},{"label":"EMVA 1288: Spezifikationen zur Sensorleistung erkl\u00e4rt","link":"https:\/\/thinklucid.com\/de\/tech-briefs\/camera-sensor-review\/"}],"_links":{"self":[{"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/pages\/185583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/comments?post=185583"}],"version-history":[{"count":11,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/pages\/185583\/revisions"}],"predecessor-version":[{"id":196314,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/pages\/185583\/revisions\/196314"}],"up":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/pages\/186067"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/media\/186031"}],"wp:attachment":[{"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/media?parent=185583"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/tags?post=185583"},{"taxonomy":"camera_family","embeddable":true,"href":"https:\/\/thinklucid.com\/de\/wp-json\/wp\/v2\/camera_family?post=185583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}