{"id":10761,"date":"2026-08-20T14:47:36","date_gmt":"2026-08-20T12:47:36","guid":{"rendered":"https:\/\/monitorering.ki.dk\/?page_id=10761"},"modified":"2026-08-20T15:00:56","modified_gmt":"2026-08-20T13:00:56","slug":"dam-safety-monitoring","status":"publish","type":"page","link":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/","title":{"rendered":"Dam Safety Monitoring"},"content":{"rendered":"<style> @import url('https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@500;700;800&display=swap'); .snm{--ink:#1c2430;--muted:#586473;--brand:#1BAAEC;--line:#e6ebf2;--shadow:0 16px 40px rgba(20,40,70,.10); width:100vw;margin-left:calc(50% - 50vw); position:relative;background:#eef3f8;} .snm::before{content:\"\";position:fixed;inset:0;z-index:0;pointer-events:none; background:url('https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2024\/01\/BG-gradient-4-way-split-v5-scaled.jpg') center bottom\/cover;transform:scaleY(-1);} .snm>section{position:relative;z-index:1;} .snm *{box-sizing:border-box;} .snm p:empty{display:none !important;} .snm img{max-width:100%;} .snm-wrap{max-width:1120px;margin:0 auto;padding:0 24px;} .snm h1,.snm h2{font-family:'Montserrat',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.02em;color:var(--ink);line-height:1.18;margin:0;} .snm-hl{font-weight:800;} .snm-section{padding:58px 0;} .snm-last{padding-top:67px;padding-bottom:125px;} .snm-section>.snm-wrap>h2{font-size:clamp(24px,3vw,34px);text-align:center;margin:0 0 14px;} \/* Extra breathing room around a section heading: 132px of visible air above, 82px below (double the defaults, measured from live pixels rather than the box model). The declared margin-bottom is the full 82px; where a laptop follows, its PNG carries transparent padding above the lid, and that differs per frame (194px vs 452px on an 8334px-wide source). --snm-lap-pad carries it as a % of frame width, so pulling that back keeps the VISIBLE gap identical whichever frame the screenshot picked. *\/ .snm-section--airy>.snm-wrap>h2{margin-top:66px;margin-bottom:82px;} .snm-section--airy .snm-lapfig .snm-laptop{margin-top:calc(-1 * var(--snm-lap-pad,2.33%));} .snm-sub{color:var(--muted);font-size:18px;text-align:center;max-width:68ch;margin:0 auto 44px;} .snm-ic{width:30px;height:30px;fill:var(--brand);display:block;margin-bottom:16px;} \/* Full-viewport photo hero; the copy sits on a frosted card so it reads over any part of the shot. The hero fills the screen BELOW everything above it (WP admin bar + utility bar + masthead). --snm-hero-top is measured at runtime by the script at the end of this page and written onto .snm; CSS cannot read another element's height on its own. The fallback below is a curve fitted to the Pro masthead (122\/126\/135\/140\/144\/149\/157px at 900\/1024\/1280\/1440\/1536\/1680\/1920, and 104px at 390) so the hero is still right with JS disabled. Re-check with measure_header.js. *\/ .snm{--snm-hero-top:calc(91px + 3.43vw);} .snm-hero{position:relative;min-height:calc(100vh - var(--snm-hero-top));display:flex;align-items:center;justify-content:center; padding:clamp(16px,3vh,70px) 0;text-align:center;background-position:center;background-size:cover;background-repeat:no-repeat;} \/* The copy sits directly on the photo, so the scrim does the legibility work. It is weighted to the left, where the text is, and fades out to the right so the dam wall stays visible. *\/ .snm-hero::after{content:\"\";position:absolute;inset:0;pointer-events:none; background:linear-gradient(100deg,rgba(6,18,32,.80) 0%,rgba(6,18,32,.62) 38%,rgba(6,18,32,.30) 68%,rgba(6,18,32,.12) 100%);} .snm-hero>.snm-wrap{position:relative;z-index:1;width:100%;} \/* copy left, CTA right; both scale with viewport HEIGHT as well as width so the hero still fits above the fold on a short laptop screen (1280x800, 1440x900) *\/ .snm-hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr); gap:clamp(28px,4vw,64px);align-items:center;text-align:left;} .snm-hero-copy .snm-logo{display:block;height:clamp(44px,7vh,86px);width:auto;margin:0 0 clamp(18px,3vh,34px);} .snm-hero-copy .snm-eyebrow{margin:0 0 clamp(10px,1.6vh,16px);} .snm-hero-copy h1{color:#fff;max-width:18ch;margin:0 0 clamp(12px,2.1vh,22px); font-size:clamp(30px,min(4.6vw,5.4vh),52px);text-shadow:0 2px 20px rgba(0,0,0,.38);} .snm-hero-copy .snm-lead{color:rgba(255,255,255,.93);max-width:58ch;margin:0; font-size:clamp(16px,min(1.9vw,2.3vh),20px);text-shadow:0 1px 14px rgba(0,0,0,.42);} .snm-hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:clamp(12px,1.8vh,18px);} .snm-btn-lg{padding:clamp(16px,2.5vh,24px) clamp(24px,2vw,34px);font-size:clamp(17px,1.25vw,21px); border-radius:6px;justify-content:center;box-shadow:0 6px 22px rgba(0,0,0,.32);} .snm-btn-lg .snm-btn-ic{width:21px;height:21px;} .snm-logo{display:block;height:clamp(42px,6.4vh,74px);width:auto;margin:0 auto clamp(14px,2.3vh,26px);} .snm-eyebrow{font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:700;color:var(--brand);margin:0 0 16px;} .snm-hero h1{font-size:clamp(28px,4.4vw,46px);max-width:22ch;margin:0 auto 20px;} .snm-lead{font-size:clamp(17px,2vw,20px);max-width:62ch;margin:0 auto 30px;color:#3a4654;} .snm-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;} .snm-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 30px;border-radius:4px;font-weight:400;font-size:17px;color:#fff;text-decoration:none; box-shadow:0 3px 11px rgba(0,0,0,.25);transition:filter .15s ease;} .snm-btn:hover{filter:brightness(1.1);color:#fff;} .snm-btn-ic{width:18px;height:18px;fill:currentColor;flex:none;} .snm-btn-primary{background:linear-gradient(109deg,#6CD897 0%,#56B4B1 100%);} .snm-btn-secondary{background:linear-gradient(130deg,#1BAAEC 0%,#406CBA 100%);} .snm-laptop{position:relative;max-width:860px;margin:30px auto 0;filter:drop-shadow(0 26px 34px rgba(20,40,70,.22));} .snm-lap-end{margin-bottom:-34px;} .snm-laptop .frame{position:relative;z-index:2;width:100%;display:block;} \/* contain, never cover: a screenshot that does not match the 1.9864 aperture is shown WHOLE with a little dark screen either side, rather than being silently cropped. These are pictures of the product \u2014 the frame must never alter what the platform looks like. Capture at 1.9864:1 (e.g. 1920x966) and the fill disappears. *\/ .snm-laptop .screen{position:absolute;z-index:1;object-fit:contain;object-position:center;background:#0b1622;} .snm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px;} .snm-cards--2{grid-template-columns:repeat(2,1fr);} .snm-card{background:#fff;border-radius:16px;padding:32px;box-shadow:var(--shadow);} .snm-card h3{font-family:'Montserrat',sans-serif;font-weight:700;font-size:18px;margin:0 0 10px;color:var(--ink);} .snm-card p{margin:0;color:var(--muted);} \/* margins doubled from the measured 44px above \/ 58px below. The 58px below came from the section's own padding-bottom, so the extra 58px is added as a margin on the card to reach 116. *\/ .snm-quote{background:#fff;border-radius:20px;max-width:700px;margin:88px auto 58px;padding:50px;box-shadow:var(--shadow);text-align:center;} .snm-quote .snm-qmark{display:block;width:auto;height:100px;margin:0 auto 26px;} \/* the Pro theme puts a rule above and below every blockquote \u2014 reset it inside the card *\/ .snm-quote blockquote{margin:0;padding:0;border:0;background:none;font-size:19px;line-height:1.55;color:#3a4654;quotes:none;} .snm-quote blockquote::before,.snm-quote blockquote::after{content:none;display:none;} .snm-quote .snm-who{margin:26px 0 0;font-size:15px;color:var(--muted);line-height:1.6;} .snm-quote .snm-who b{display:block;color:var(--ink);} \/* a section that breaks out of the gradient onto a full-bleed white band *\/ .snm-section--white{background:#fff;} .snm-section--white .snm-fig{padding:0;box-shadow:none;} \/* text + illustration side by side; the heading lives in the text column, so it is left-aligned *\/ .snm-two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;} .snm-two h2{text-align:left;margin:0 0 20px;font-size:clamp(23px,2.8vw,32px);} .snm-two p{color:var(--muted);font-size:17px;line-height:1.65;margin:0 0 18px;} .snm-two .snm-cap{font-size:15px;color:#6b7887;margin:0;} .snm-two img{display:block;width:100%;height:auto;border-radius:12px;} \/* UI screenshots are unreadable at thumbnail width \u2014 two per row, and an odd last one spans the full width rather than sitting alone in a half-width cell *\/ \/* laptop slideshow. All screens stack in the same aperture and cross-fade; the caption below is swapped by the script. min-height on the caption stops the controls jumping when a caption wraps to a different number of lines. *\/ .snm-slider{max-width:900px;margin:0 auto;} \/* 100px of VISIBLE air above the lid; the frame's own transparent padding is taken off the declared margin so the eye sees 100, not 100 plus the padding. *\/ .snm-slider .snm-laptop{margin:calc(100px - var(--snm-lap-pad,2.33%)) auto 0;} .snm-slider .snm-laptop .screen{opacity:0;transition:opacity .45s ease;} .snm-slider .snm-laptop .screen.is-on{opacity:1;} .snm-slide-cap{margin:-6px auto 0;color:var(--muted);font-size:15.5px;line-height:1.6;text-align:center; max-width:70ch;min-height:3.2em;} .snm-slider-ctl{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:4px;} \/* wpautop paragraph-wraps inline children (buttons, links) inside our flex rows, and the injected paragraph then becomes the flex item instead of the control, offsetting it by its own margin. display:contents makes those paragraphs generate no box, so the real controls stay the items. NOTE: never write a literal paragraph tag in these comments \u2014 wpautop parses it as real markup and splits the stylesheet in half. *\/ .snm-slider-ctl>p,.snm-dots>p,.snm-cta>p,.snm-hero-actions>p{display:contents;} .snm-nav{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--brand); box-shadow:0 6px 18px rgba(20,40,70,.14);cursor:pointer;display:inline-flex;align-items:center;justify-content:center; transition:filter .15s ease,transform .15s ease;} .snm-nav:hover{filter:brightness(.97);transform:scale(1.06);} .snm-nav .snm-ic{width:15px;height:15px;margin:0;fill:currentColor;} .snm-dots{display:flex;align-items:center;gap:11px;} .snm-dot{width:11px;height:11px;padding:0;border:0;border-radius:50%;background:rgba(20,40,70,.20); cursor:pointer;transition:background .2s ease,transform .2s ease;} .snm-dot:hover{background:rgba(20,40,70,.38);} .snm-dot.is-on{background:var(--brand);transform:scale(1.15);} \/* laptop + caption. The frame PNG carries ~34px of transparent padding under the base, so the caption's top margin is pulled back to leave a visually even gap rather than a numeric one. *\/ .snm-lapfig{margin:0;} .snm-lapfig .snm-laptop{margin-top:0;} .snm-lapfig figcaption{margin:-6px auto 0;color:var(--muted);font-size:15px;line-height:1.6;text-align:center;max-width:80ch;} \/* A white card that carries its own heading and intro alongside the figure, for when the copy explains the graphic and the two should read as one block. The figure inside drops its own card styling so there is only one panel, not a card within a card. *\/ \/* top padding is the base + 25px, kept as a calc so it stays +25 at every viewport width *\/ .snm-panel{background:#fff;border-radius:20px;box-shadow:var(--shadow); padding:calc(clamp(28px,4vw,50px) + 25px) clamp(28px,4vw,50px) clamp(28px,4vw,50px);} .snm-panel>h2{font-family:'Montserrat',sans-serif;font-size:clamp(24px,3vw,34px);text-align:center;margin:0 0 16px;} .snm-panel .snm-sub{margin-bottom:40px;} .snm-panel .snm-fig{background:none;border-radius:0;padding:0;box-shadow:none;} .snm-fig{background:#fff;border-radius:20px;margin:0;padding:30px;box-shadow:var(--shadow);} .snm-fig img{display:block;width:100%;height:auto;border-radius:10px;} .snm-fig svg{display:block;width:100%;height:auto;} .snm-fig figcaption{margin-top:22px;color:var(--muted);font-size:15px;line-height:1.6;text-align:center;max-width:80ch;margin-left:auto;margin-right:auto;} .snm-split{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center;margin-bottom:-15px;} .snm-split .snm-laptop{margin:0;max-width:none;} .snm-split h2{text-align:left;margin:0 0 20px;font-size:clamp(23px,2.8vw,32px);} .snm-list{list-style:none;padding:0;margin:0;} .snm-list li{position:relative;padding:11px 0 11px 34px;color:#3a4654;font-size:17px;} .snm-list li+li{border-top:1px solid rgba(20,40,70,.08);} .snm-list li::before{content:\"\";position:absolute;left:0;top:14px;width:20px;height:20px;border-radius:50%;background:#1aa971; -webkit-mask:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/><\/svg>\") center\/13px no-repeat; mask:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/><\/svg>\") center\/13px no-repeat;} .snm-faq-section>.snm-wrap>h2{margin-bottom:50px;} .snm-faq{max-width:840px;margin:0 auto;} .snm-faq details{background:#fff;border-radius:12px;padding:2px 24px;margin-bottom:14px;box-shadow:0 6px 18px rgba(20,40,70,.06);} .snm-faq details:last-child{margin-bottom:0;} .snm-faq summary{cursor:pointer;font-weight:600;font-size:17px;padding:18px 0;list-style:none;color:var(--ink);font-family:'Open Sans',sans-serif;} .snm-faq summary::-webkit-details-marker{display:none;} .snm-faq summary::after{content:\"+\";float:right;color:var(--brand);font-size:24px;line-height:1;font-weight:400;} .snm-faq details[open] summary::after{content:\"\\2013\";} .snm-faq details p{margin:0 0 20px;color:var(--muted);} .snm-final{background:#fff;border-radius:20px;max-width:920px;margin:0 auto;text-align:center;padding:56px 30px;box-shadow:var(--shadow);} .snm-final h2{font-size:clamp(23px,3vw,32px);margin:0 0 14px;} .snm-final .snm-laptop{margin:0 auto 36px;max-width:600px;filter:drop-shadow(0 20px 30px rgba(20,40,70,.18));} .snm-final p{color:var(--muted);font-size:18px;max-width:56ch;margin:0 auto 28px;} .snm-disc{max-width:920px;margin:0 auto;padding:22px 26px;border-radius:12px;background:rgba(255,255,255,.66); color:var(--muted);font-size:14.5px;line-height:1.6;text-align:center;} .snm-disc b{color:var(--ink);} @media(max-width:820px){.snm-split{grid-template-columns:1fr;gap:28px;}.snm-split h2{text-align:center;}.snm-section{padding:54px 0;} .snm-fig{padding:20px;}.snm-quote{padding:34px 26px;}.snm-cards--2{grid-template-columns:1fr;} .snm-two{grid-template-columns:1fr;gap:30px;}.snm-two h2{text-align:center;} .snm-shots{grid-template-columns:1fr;} .snm-hero{padding:44px 0;} .snm-hero-grid{grid-template-columns:1fr;gap:30px;} .snm-hero-copy h1{max-width:none;}.snm-hero-actions{align-items:stretch;}} <\/style>\n<div class=\"snm\" data-demo=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=38438b83-e977-489d-83c2-be466d58d250&#038;returnUrl=%2Ftool%3Fdaid%3D5d7fc253-6f22-47c4-8650-0059fc6f2178\"> <!-- the photo is decorative: the card carries the message, so no role=\"img\" here (it would hide the headline and buttons from assistive tech) --> <\/p>\n<section class=\"snm-hero\" style=\"background-image:url('https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-hero.jpg')\">\n<div class=\"snm-wrap\">\n<div class=\"snm-hero-grid\">\n<div class=\"snm-hero-copy\"> <img decoding=\"async\" class=\"snm-logo\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-logo-white.svg\" alt=\"Senmos\" \/> <\/p>\n<p class=\"snm-eyebrow\">Dam safety monitoring &middot; Live demo<\/p>\n<h1>Telling real dam movement from the daily rise and fall<\/h1>\n<p class=\"snm-lead\">Every dam breathes. It leans as the reservoir fills and drains, and it expands and contracts with the sun and the seasons. That constant, harmless motion hides the movement that actually signals danger. Senmos uses correlation analysis and virtual sensor channels to strip out the water-level and temperature effects &mdash; so alarms fire on genuine structural change, not on the daily tide.<\/p>\n<\/p><\/div>\n<div class=\"snm-hero-actions\"> <a class=\"snm-btn snm-btn-primary snm-btn-lg\" href=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=38438b83-e977-489d-83c2-be466d58d250&#038;returnUrl=%2Ftool%3Fdaid%3D5d7fc253-6f22-47c4-8650-0059fc6f2178\" target=\"_blank\" rel=\"noopener\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><path d=\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"\/><\/svg>Open the live demo<\/a> <a class=\"snm-btn snm-btn-secondary snm-btn-lg\" href=\"https:\/\/monitorering.ki.dk\/en\/demonstration\/\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 448 512\" aria-hidden=\"true\"><path d=\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"\/><\/svg>Book a walkthrough<\/a> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--airy\">\n<div class=\"snm-wrap\">\n<h2>What actually matters for <span class=\"snm-hl\">dam safety<\/span><\/h2>\n<figure class=\"snm-lapfig\">\n<div class=\"snm-laptop \" style=\"--snm-lap-pad:5.4236%\"><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:14.593%;width:71.766%;height:67.046%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp\" alt=\"A dam on a 3D map in Senmos with accelerometer, displacement, inclinometer, pressure, temperature and water level sensors pinned across the structure and canyon\" loading=\"lazy\" \/><img decoding=\"async\" class=\"frame\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-laptop-188.png\" alt=\"\" aria-hidden=\"true\" \/><\/div><figcaption>Every instrument on the asset, in one place &mdash; the starting point for reading a dam.<\/figcaption><\/figure>\n<p class=\"snm-sub\" style=\"margin-top:44px\">A dam fails through a small number of well-understood mechanisms: <b>seepage and rising pore pressure<\/b> in the body or foundation, <b>settlement and deformation<\/b> of the embankment or structure, and <b>displacement of the crest<\/b>. The thing that drives almost all of the normal day-to-day movement is the <b>reservoir water level<\/b> &mdash; followed by temperature. Read raw, those drivers swamp the safety signal. Model them out, and the real story is left standing alone.<\/p>\n<div class=\"snm-quote\"> <img decoding=\"async\" class=\"snm-qmark\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2024\/01\/message-quote-solid-dark-blue.png\" alt=\"\" aria-hidden=\"true\" \/> <\/p>\n<blockquote><p>&ldquo;We have been very happy with Senmos, it has been a welcome change onto a more modern and cheaper solution after working with Vista Data Vision in the past.&rdquo;<\/p><\/blockquote>\n<p class=\"snm-who\"><b>Remigijus Abromavi&#269;ius<\/b>CEO, GPS partneris &mdash; geotechnical monitoring<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--white\">\n<div class=\"snm-wrap\">\n<div class=\"snm-two\"> <img decoding=\"async\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-instrumentation.webp\" alt=\"Isometric cutaway of an arch dam showing a reservoir water level gauge, a crack meter spanning a joint on the downstream face, and a wireless chain of inclinometers down the abutment slope\" loading=\"lazy\" \/> <\/p>\n<div>\n<h2>How a dam is <span class=\"snm-hl\">instrumented<\/span><\/h2>\n<p>Sensors are placed where the failure mechanisms show themselves: in the body and slope to catch deformation, on the joints to catch cracking, and on the crest to catch displacement. The reservoir level gauge matters just as much &mdash; it is the signal everything else is correlated against.<\/p>\n<p class=\"snm-cap\">Each instrument answers a different failure question &mdash; the slope string for deformation, the crack meter for joint movement, the level gauge for the driver everything else is measured against.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-section--airy\">\n<div class=\"snm-wrap\">\n<h2>From a noisy sensor mix to a <span class=\"snm-hl\">single safety signal<\/span><\/h2>\n<div class=\"snm-cards snm-cards--2\">\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 576 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"\/><\/svg><\/p>\n<h3>The full sensor mix into Senmos<\/h3>\n<p>Inclinometers\/IPI strings, crack meters, GNSS\/GPS, piezometers and the reservoir-level gauge stream into one Senmos project &mdash; automatic ingest, no manual import.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"\/><\/svg><\/p>\n<h3>Correlation analysis<\/h3>\n<p>Senmos quantifies how strongly each safety signal tracks the reservoir level and temperature &mdash; identifying the drivers and how much of the daily movement they explain.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 576 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"\/><\/svg><\/p>\n<h3>Virtual sensor channels<\/h3>\n<p>A calculated channel models the expected movement from water level &amp; temperature, then subtracts it: <b>residual = measured &minus; modelled<\/b>. What&#8217;s left is the movement those drivers can&#8217;t explain.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 448 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"\/><\/svg><\/p>\n<h3>Automated alarms on the residual<\/h3>\n<p>Thresholds sit on the clean residual, not the raw signal &mdash; so an alarm means genuine structural change, not a full reservoir on a hot afternoon.<\/p>\n<\/div>\n<\/div><\/div>\n<\/section>\n<section class=\"snm-section\">\n<div class=\"snm-wrap\">\n<div class=\"snm-panel\">\n<h2>The intelligence layer &mdash; what makes the alarm <span class=\"snm-hl\">trustworthy<\/span><\/h2>\n<p class=\"snm-sub\">Crack, GPS and displacement signals correlate with both water level and temperature at the same time &mdash; so plotted against either one alone, the scatter is wide and far from linear (medium correlation). Senmos models the temperature out and re-tests movement against water level: the cloud collapses onto a tight, straight line (high correlation). That clean relationship is what the alarm is built on.<\/p>\n<figure class=\"snm-fig\"><svg viewBox=\"0 0 880 600\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" font-family=\"'Open Sans',sans-serif\" role=\"img\" aria-label=\"Three scatter plots: movement against water level and against temperature both scatter widely, while movement against water level with the temperature effect modelled out falls onto a tight best-fit line.\"> <defs><marker id=\"snmarr\" markerWidth=\"9\" markerHeight=\"9\" refX=\"7\" refY=\"4.5\" orient=\"auto\"><path d=\"M0,0 L9,4.5 L0,9 z\" fill=\"#c3ced9\"\/><\/marker><\/defs> <g transform=\"translate(20,44)\"> <rect width=\"400\" height=\"222\" rx=\"14\" fill=\"#ffffff\" stroke=\"#e6ebf2\"\/> <text x=\"22\" y=\"30\" font-family=\"Montserrat,sans-serif\" font-weight=\"700\" font-size=\"13\" fill=\"#1c2430\">Movement vs water level &#8212; raw<\/text> <text x=\"22\" y=\"49\" font-size=\"11.5\" fill=\"#586473\">medium correlation &#8212; temperature is mixed in<\/text> <text x=\"378\" y=\"30\" text-anchor=\"end\" font-size=\"11.5\" font-weight=\"700\" fill=\"#1BAAEC\">R&#178; &#8776; 0.55<\/text> <line x1=\"56\" y1=\"60\" x2=\"56\" y2=\"200\" stroke=\"#c3ced9\"\/> <line x1=\"56\" y1=\"200\" x2=\"384\" y2=\"200\" stroke=\"#c3ced9\"\/> <text x=\"220\" y=\"216\" text-anchor=\"middle\" font-size=\"11\" fill=\"#586473\">water level &#8594;<\/text> <text x=\"22\" y=\"130\" font-size=\"11\" fill=\"#586473\" text-anchor=\"middle\" transform=\"rotate(-90 22 130)\">movement &#8594;<\/text> <line x1=\"66\" y1=\"186\" x2=\"380\" y2=\"104\" stroke=\"#1BAAEC\" stroke-width=\"1.5\" stroke-dasharray=\"5 4\" opacity=\".45\"\/> <g fill=\"#1BAAEC\" opacity=\".85\"><circle cx=\"80\" cy=\"172\" r=\"3.5\"\/><circle cx=\"98\" cy=\"150\" r=\"3.5\"\/><circle cx=\"106\" cy=\"184\" r=\"3.5\"\/><circle cx=\"128\" cy=\"156\" r=\"3.5\"\/><circle cx=\"142\" cy=\"128\" r=\"3.5\"\/><circle cx=\"152\" cy=\"178\" r=\"3.5\"\/><circle cx=\"170\" cy=\"140\" r=\"3.5\"\/><circle cx=\"186\" cy=\"170\" r=\"3.5\"\/><circle cx=\"198\" cy=\"118\" r=\"3.5\"\/><circle cx=\"214\" cy=\"152\" r=\"3.5\"\/><circle cx=\"230\" cy=\"180\" r=\"3.5\"\/><circle cx=\"246\" cy=\"126\" r=\"3.5\"\/><circle cx=\"264\" cy=\"150\" r=\"3.5\"\/><circle cx=\"282\" cy=\"172\" r=\"3.5\"\/><circle cx=\"298\" cy=\"116\" r=\"3.5\"\/><circle cx=\"318\" cy=\"146\" r=\"3.5\"\/><circle cx=\"340\" cy=\"170\" r=\"3.5\"\/><circle cx=\"362\" cy=\"124\" r=\"3.5\"\/><\/g> <\/g> <g transform=\"translate(460,44)\"> <rect width=\"400\" height=\"222\" rx=\"14\" fill=\"#ffffff\" stroke=\"#e6ebf2\"\/> <text x=\"22\" y=\"30\" font-family=\"Montserrat,sans-serif\" font-weight=\"700\" font-size=\"13\" fill=\"#1c2430\">Movement vs temperature &#8212; raw<\/text> <text x=\"22\" y=\"49\" font-size=\"11.5\" fill=\"#586473\">medium correlation &#8212; water level is mixed in<\/text> <text x=\"378\" y=\"30\" text-anchor=\"end\" font-size=\"11.5\" font-weight=\"700\" fill=\"#E8912D\">R&#178; &#8776; 0.50<\/text> <line x1=\"56\" y1=\"60\" x2=\"56\" y2=\"200\" stroke=\"#c3ced9\"\/> <line x1=\"56\" y1=\"200\" x2=\"384\" y2=\"200\" stroke=\"#c3ced9\"\/> <text x=\"220\" y=\"216\" text-anchor=\"middle\" font-size=\"11\" fill=\"#586473\">temperature &#8594;<\/text> <text x=\"22\" y=\"130\" font-size=\"11\" fill=\"#586473\" text-anchor=\"middle\" transform=\"rotate(-90 22 130)\">movement &#8594;<\/text> <line x1=\"66\" y1=\"184\" x2=\"380\" y2=\"108\" stroke=\"#E8912D\" stroke-width=\"1.5\" stroke-dasharray=\"5 4\" opacity=\".45\"\/> <g fill=\"#E8912D\" opacity=\".85\"><circle cx=\"80\" cy=\"168\" r=\"3.5\"\/><circle cx=\"96\" cy=\"134\" r=\"3.5\"\/><circle cx=\"110\" cy=\"172\" r=\"3.5\"\/><circle cx=\"130\" cy=\"148\" r=\"3.5\"\/><circle cx=\"148\" cy=\"124\" r=\"3.5\"\/><circle cx=\"160\" cy=\"166\" r=\"3.5\"\/><circle cx=\"176\" cy=\"142\" r=\"3.5\"\/><circle cx=\"192\" cy=\"172\" r=\"3.5\"\/><circle cx=\"206\" cy=\"126\" r=\"3.5\"\/><circle cx=\"222\" cy=\"152\" r=\"3.5\"\/><circle cx=\"238\" cy=\"130\" r=\"3.5\"\/><circle cx=\"256\" cy=\"168\" r=\"3.5\"\/><circle cx=\"272\" cy=\"140\" r=\"3.5\"\/><circle cx=\"290\" cy=\"120\" r=\"3.5\"\/><circle cx=\"308\" cy=\"160\" r=\"3.5\"\/><circle cx=\"324\" cy=\"134\" r=\"3.5\"\/><circle cx=\"342\" cy=\"166\" r=\"3.5\"\/><circle cx=\"362\" cy=\"128\" r=\"3.5\"\/><\/g> <\/g> <line x1=\"440\" y1=\"266\" x2=\"440\" y2=\"282\" stroke=\"#c3ced9\" marker-end=\"url(#snmarr)\"\/> <rect x=\"140\" y=\"286\" width=\"600\" height=\"38\" rx=\"10\" fill=\"#eef7f3\" stroke=\"#cfe6da\"\/> <text x=\"440\" y=\"310\" text-anchor=\"middle\" font-size=\"12\" font-weight=\"700\" fill=\"#12855B\">Senmos models the temperature out &#8594; then re-tests movement against water level<\/text> <line x1=\"440\" y1=\"324\" x2=\"440\" y2=\"340\" stroke=\"#c3ced9\" marker-end=\"url(#snmarr)\"\/> <g transform=\"translate(180,340)\"> <rect width=\"520\" height=\"250\" rx=\"14\" fill=\"#ffffff\" stroke=\"#e6ebf2\"\/> <text x=\"22\" y=\"30\" font-family=\"Montserrat,sans-serif\" font-weight=\"700\" font-size=\"14\" fill=\"#1c2430\">Movement vs water level &#8212; temperature removed<\/text> <text x=\"22\" y=\"49\" font-size=\"11.5\" fill=\"#12855B\">high correlation &#8212; a clean, linear relationship<\/text> <text x=\"498\" y=\"30\" text-anchor=\"end\" font-size=\"11.5\" font-weight=\"700\" fill=\"#12855B\">R&#178; &#8776; 0.95<\/text> <line x1=\"66\" y1=\"66\" x2=\"66\" y2=\"212\" stroke=\"#c3ced9\"\/> <line x1=\"66\" y1=\"212\" x2=\"494\" y2=\"212\" stroke=\"#c3ced9\"\/> <text x=\"280\" y=\"232\" text-anchor=\"middle\" font-size=\"11\" fill=\"#586473\">water level &#8594;<\/text> <text x=\"32\" y=\"139\" font-size=\"11\" fill=\"#586473\" text-anchor=\"middle\" transform=\"rotate(-90 32 139)\">movement &#8594;<\/text> <line x1=\"92\" y1=\"200\" x2=\"478\" y2=\"72\" stroke=\"#12855B\" stroke-width=\"2.2\"\/> <g fill=\"#12855B\" opacity=\".85\"><circle cx=\"100\" cy=\"198\" r=\"4\"\/><circle cx=\"124\" cy=\"190\" r=\"4\"\/><circle cx=\"146\" cy=\"182\" r=\"4\"\/><circle cx=\"170\" cy=\"176\" r=\"4\"\/><circle cx=\"192\" cy=\"166\" r=\"4\"\/><circle cx=\"214\" cy=\"160\" r=\"4\"\/><circle cx=\"238\" cy=\"150\" r=\"4\"\/><circle cx=\"260\" cy=\"146\" r=\"4\"\/><circle cx=\"284\" cy=\"134\" r=\"4\"\/><circle cx=\"306\" cy=\"128\" r=\"4\"\/><circle cx=\"330\" cy=\"120\" r=\"4\"\/><circle cx=\"352\" cy=\"112\" r=\"4\"\/><circle cx=\"376\" cy=\"104\" r=\"4\"\/><circle cx=\"398\" cy=\"94\" r=\"4\"\/><circle cx=\"422\" cy=\"88\" r=\"4\"\/><circle cx=\"446\" cy=\"80\" r=\"4\"\/><circle cx=\"468\" cy=\"74\" r=\"4\"\/><circle cx=\"486\" cy=\"66\" r=\"4\"\/><\/g> <\/g> <\/svg><figcaption>Figure &mdash; Movement plotted against water level (left) and against temperature (right) is a wide, non-linear scatter, because both drivers are mixed in (medium correlation). Once Senmos models the temperature out and re-tests against water level, the points fall onto a tight straight line (high correlation) &mdash; the clean relationship the alarm relies on.<\/figcaption><\/figure>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section\" id=\"demo\">\n<div class=\"snm-wrap\">\n<h2>See it live in <span class=\"snm-hl\">Senmos<\/span><\/h2>\n<p class=\"snm-sub\">The demo is a fully working Senmos dam project with simulated data, so you can explore freely. Log in and you can:<\/p>\n<div class=\"snm-cards snm-cards--2\">\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z\"\/><\/svg><\/p>\n<h3>Explore the dam in 3D<\/h3>\n<p>The dam model with every inclinometer, crack meter, GNSS unit and piezometer pinned where it sits.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z\"\/><\/svg><\/p>\n<h3>Watch the slope deform<\/h3>\n<p>The IPI string and slope-monitoring view showing body and downstream-face movement.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><!--! Font Awesome Pro 6.2.1 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"\/><\/svg><\/p>\n<h3>Compare measured vs residual<\/h3>\n<p>The correlation\/residual chart &mdash; raw signal, modelled effect, and the clean residual side by side.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 384 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"\/><\/svg><\/p>\n<h3>Trace seepage &amp; cracks<\/h3>\n<p>Crack-meter and piezometer history, with the reservoir-level overlay that drives them.<\/p>\n<\/div>\n<\/div>\n<div class=\"snm-slider\" data-interval=\"5500\">\n<div class=\"snm-laptop\" style=\"--snm-lap-pad:2.3278%\"><img decoding=\"async\" class=\"screen is-on\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_crest.webp\" alt=\"Close 3D map view of the dam crest in Senmos showing sensor pins and displacement direction arrows across the arch\" data-cap=\"Zoomed to the crest &mdash; displacement vectors across the arch\" loading=\"lazy\" \/><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-displacement.webp\" alt=\"The Displacement overview dashboard in Senmos with live value panels for a mechanical displacement sensor and a joint crack meter\" data-cap=\"Displacement and joint movement, live on the structure\" loading=\"lazy\" \/><img decoding=\"async\" class=\"screen\" style=\"left:14.027%;top:10.074%;width:71.766%;height:69.731%\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-level_pore.webp\" alt=\"Line plots in Senmos showing reservoir level against three pore pressure channels over 30 days, above a seismic acceleration plot with event spikes\" data-cap=\"Reservoir level against the structural response, plus seismic events\" loading=\"lazy\" \/><img decoding=\"async\" class=\"frame\" src=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-laptop-199.png\" alt=\"\" aria-hidden=\"true\" \/><\/div>\n<p class=\"snm-slide-cap\" role=\"status\" aria-live=\"polite\">Zoomed to the crest &mdash; displacement vectors across the arch<\/p>\n<div class=\"snm-slider-ctl\"> <button type=\"button\" class=\"snm-nav\" data-dir=\"-1\" aria-label=\"Previous screenshot\"><svg class=\"snm-ic\" viewBox=\"0 0 320 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"\/><\/svg><\/button> <\/p>\n<div class=\"snm-dots\"><button type=\"button\" class=\"snm-dot is-on\" aria-label=\"Show screenshot 1 of 3\"><\/button><button type=\"button\" class=\"snm-dot\" aria-label=\"Show screenshot 2 of 3\"><\/button><button type=\"button\" class=\"snm-dot\" aria-label=\"Show screenshot 3 of 3\"><\/button><\/div>\n<p> <button type=\"button\" class=\"snm-nav\" data-dir=\"1\" aria-label=\"Next screenshot\"><svg class=\"snm-ic\" viewBox=\"0 0 320 512\" aria-hidden=\"true\"><!--! Font Awesome Free 6.7.2 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc. --><path d=\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg><\/button> <\/div>\n<\/p><\/div>\n<div class=\"snm-cta\" style=\"margin-top:44px\"> <a class=\"snm-btn snm-btn-primary\" href=\"https:\/\/senmos.dk\/demo?oid=4b5bbc8a-bdbf-4870-9c78-c6a555bdb1ec&#038;pid=38438b83-e977-489d-83c2-be466d58d250&#038;returnUrl=%2Ftool%3Fdaid%3D5d7fc253-6f22-47c4-8650-0059fc6f2178\" target=\"_blank\" rel=\"noopener\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 512 512\" aria-hidden=\"true\"><path d=\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"\/><\/svg>Open the live demo project<\/a> <a class=\"snm-btn snm-btn-secondary\" href=\"https:\/\/monitorering.ki.dk\/en\/cost-calculator\/\"><svg class=\"snm-btn-ic\" viewBox=\"0 0 384 512\" aria-hidden=\"true\"><path d=\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"\/><\/svg>Calculate your price<\/a> <\/div>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section snm-last\">\n<div class=\"snm-wrap\">\n<div class=\"snm-disc\"><b>Demonstration data.<\/b> This is a Senmos demo using <b>simulated<\/b> data to illustrate the platform &mdash; the dam, the sensors and the readings are synthetic. It is not live monitoring of an operational dam.<\/div>\n<\/p><\/div>\n<\/section><\/div>\n<div class=\"snm-fit\" style=\"display:none\"><script> (function(){var d=document,s=d.querySelector('.snm'),h=d.querySelector('.snm-hero'); if(!s||!h){return;} var set=function(){var t=h.getBoundingClientRect().top+(window.pageYOffset||d.documentElement.scrollTop||0); s.style.setProperty('--snm-hero-top',Math.max(0,Math.round(t))+'px');}; set(); window.addEventListener('resize',set); window.addEventListener('load',set); if(d.fonts){if(d.fonts.ready){if(d.fonts.ready.then){d.fonts.ready.then(set);}}}})(); (function(){var s=document.querySelector('.snm');if(!s){return;} var url=s.getAttribute('data-demo');if(!url){return;} var plain='https:\/\/senmos.dk\/demo'; var retarget=function(){var links=document.querySelectorAll('a[href]'); for(var i=0;i<links.length;i++){var a=links[i];var h=a.getAttribute('href')||''; if(h.charAt(h.length-1)==='\/'){h=h.substring(0,h.length-1);} if(h===plain){a.setAttribute('href',url);a.setAttribute('target','_blank');a.setAttribute('rel','noopener');}}}; retarget(); document.addEventListener('DOMContentLoaded',retarget); window.addEventListener('load',retarget);})(); (function(){var each=function(l,f){Array.prototype.forEach.call(l,f);}; each(document.querySelectorAll('.snm-slider'),function(s){ var shots=s.querySelectorAll('.snm-laptop .screen'),dots=s.querySelectorAll('.snm-dot'), cap=s.querySelector('.snm-slide-cap'),n=shots.length; if(n<2){return;} var i=0,timer=null,iv=parseInt(s.getAttribute('data-interval'),10)||5500,reduce=false; if(window.matchMedia){reduce=window.matchMedia('(prefers-reduced-motion: reduce)').matches;} var show=function(k){i=(k%n+n)%n; for(var j=0;j<n;j++){shots[j].classList.toggle('is-on',j===i); if(dots[j]){dots[j].classList.toggle('is-on',j===i);dots[j].setAttribute('aria-current',j===i?'true':'false');}} if(cap){cap.innerHTML=shots[i].getAttribute('data-cap')||'';}}; var paused=false; var stop=function(){if(timer){clearInterval(timer);timer=null;}}; var play=function(){stop();if(reduce){return;}if(paused){return;} timer=setInterval(function(){show(i+1);},iv);}; var hold=function(){paused=true;stop();}; var release=function(){paused=false;play();}; each(s.querySelectorAll('.snm-nav'),function(b){b.addEventListener('click',function(){ show(i+(parseInt(b.getAttribute('data-dir'),10)||1));play();});}); each(dots,function(b,k){b.addEventListener('click',function(){show(k);play();});}); s.addEventListener('mouseenter',hold);s.addEventListener('mouseleave',release); s.addEventListener('focusin',hold);s.addEventListener('focusout',release); show(0);play();});})(); <\/script><\/div>\n<p> <script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"SoftwareApplication\", \"name\": \"Senmos\", \"applicationCategory\": \"BusinessApplication\", \"operatingSystem\": \"Web browser\", \"description\": \"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.\", \"url\": \"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/\", \"offers\": {\"@type\": \"Offer\", \"price\": \"29\", \"priceCurrency\": \"EUR\", \"description\": \"Plans from EUR 29\/month with no binding period.\"}}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dam safety monitoring &middot; Live demo Telling real dam movement from the daily rise and fall Every dam breathes. It leans as the reservoir fills and drains, and it expands and contracts with the sun &#8230; <\/p>\n<div><a href=\"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/\" class=\"more-link\">Read More<\/a><\/div>\n","protected":false},"author":9,"featured_media":10757,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-4.php","meta":{"_yoast_wpseo_focuskw":"dam safety monitoring","_yoast_wpseo_title":"Dam Safety Monitoring Software & Alarms | Senmos","_yoast_wpseo_metadesc":"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.","rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-10761","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dam Safety Monitoring Software &amp; Alarms | Senmos<\/title>\n<meta name=\"description\" content=\"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dam Safety Monitoring Software &amp; Alarms | Senmos\" \/>\n<meta property=\"og:description\" content=\"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/\" \/>\n<meta property=\"og:site_name\" content=\"KI Monitoring\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-20T13:00:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"852\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/\",\"name\":\"Dam Safety Monitoring Software & Alarms | Senmos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-dam-map_overview.webp\",\"datePublished\":\"2026-08-20T12:47:36+00:00\",\"dateModified\":\"2026-08-20T13:00:56+00:00\",\"description\":\"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\\\/month.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/dam-safety-monitoring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-dam-map_overview.webp\",\"contentUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-dam-map_overview.webp\",\"width\":1600,\"height\":852,\"caption\":\"A dam on a 3D map in Senmos with accelerometer, displacement, inclinometer, pressure, temperature and water level sensors pinned across the structure and canyon\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/\",\"name\":\"KI Monitorering\",\"description\":\"Geotechnical and structural monitoring in the cloud\",\"publisher\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#organization\",\"name\":\"KI R\u00e5dgivende Ingeni\u00f8rer\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Logo-2020_Black.png\",\"contentUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Logo-2020_Black.png\",\"width\":1068,\"height\":826,\"caption\":\"KI R\u00e5dgivende Ingeni\u00f8rer\"},\"image\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/5059650\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dam Safety Monitoring Software & Alarms | Senmos","description":"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/","og_locale":"en_US","og_type":"article","og_title":"Dam Safety Monitoring Software & Alarms | Senmos","og_description":"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.","og_url":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/","og_site_name":"KI Monitoring","article_modified_time":"2026-08-20T13:00:56+00:00","og_image":[{"width":1600,"height":852,"url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/","url":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/","name":"Dam Safety Monitoring Software & Alarms | Senmos","isPartOf":{"@id":"https:\/\/monitorering.ki.dk\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/#primaryimage"},"image":{"@id":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/#primaryimage"},"thumbnailUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp","datePublished":"2026-08-20T12:47:36+00:00","dateModified":"2026-08-20T13:00:56+00:00","description":"Senmos is the hardware-agnostic dam safety monitoring platform. Model out reservoir level and temperature, then alarm on real movement. From \u20ac29\/month.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monitorering.ki.dk\/en\/dam-safety-monitoring\/#primaryimage","url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp","contentUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-dam-map_overview.webp","width":1600,"height":852,"caption":"A dam on a 3D map in Senmos with accelerometer, displacement, inclinometer, pressure, temperature and water level sensors pinned across the structure and canyon"},{"@type":"WebSite","@id":"https:\/\/monitorering.ki.dk\/en\/#website","url":"https:\/\/monitorering.ki.dk\/en\/","name":"KI Monitorering","description":"Geotechnical and structural monitoring in the cloud","publisher":{"@id":"https:\/\/monitorering.ki.dk\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/monitorering.ki.dk\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/monitorering.ki.dk\/en\/#organization","name":"KI R\u00e5dgivende Ingeni\u00f8rer","url":"https:\/\/monitorering.ki.dk\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monitorering.ki.dk\/en\/#\/schema\/logo\/image\/","url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2020\/06\/Logo-2020_Black.png","contentUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2020\/06\/Logo-2020_Black.png","width":1068,"height":826,"caption":"KI R\u00e5dgivende Ingeni\u00f8rer"},"image":{"@id":"https:\/\/monitorering.ki.dk\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/5059650\/"]}]}},"_links":{"self":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/comments?post=10761"}],"version-history":[{"count":37,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10761\/revisions"}],"predecessor-version":[{"id":10806,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10761\/revisions\/10806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media\/10757"}],"wp:attachment":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media?parent=10761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}