{"id":10818,"date":"2026-08-21T09:34:29","date_gmt":"2026-08-21T07:34:29","guid":{"rendered":"https:\/\/monitorering.ki.dk\/?page_id=10818"},"modified":"2026-08-21T09:34:30","modified_gmt":"2026-08-21T07:34:30","slug":"railway-settlement-monitoring","status":"publish","type":"page","link":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/","title":{"rendered":"Railway Settlement 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-partners{color:var(--muted);font-size:15.5px;text-align:center;max-width:70ch;margin:-24px auto 0;line-height:1.9;} .snm-after{font-size:16.5px;margin:40px auto 0;max-width:74ch;} .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=bc38fd54-d519-49c9-b2d7-d38f0d4ea48f&#038;returnUrl=%2Ftool%3Fdaid%3D1523794a-5037-4f5d-b1a7-d68742881ef5\"> <!-- 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-railway-hero-photo.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\">Railway settlement monitoring &middot; Live demo<\/p>\n<h1>Drilling under a live railway &mdash; without stopping the trains<\/h1>\n<p class=\"snm-lead\">When pipes are pushed beneath an active rail line, Danish law requires continuous settlement monitoring. See exactly how it&#8217;s done &mdash; on the real Hammersholt setup &mdash; then log into a live demo and explore the data yourself.<\/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=bc38fd54-d519-49c9-b2d7-d38f0d4ea48f&#038;returnUrl=%2Ftool%3Fdaid%3D1523794a-5037-4f5d-b1a7-d68742881ef5\" 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>A real job on the <span class=\"snm-hl\">Copenhagen S-train network<\/span><\/h2>\n<figure class=\"snm-lapfig\">\n<div class=\"snm-laptop \" style=\"--snm-lap-pad:2.3278%\"><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-railway-map-overview.png\" alt=\"The Hammersholt track on a 3D map in Senmos, with north and south rail live value boxes showing displacement and temperature per node\" 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><figcaption>The track on the map, sensors pinned where they really sit, live values per rail.<\/figcaption><\/figure>\n<p class=\"snm-sub\" style=\"margin-top:44px\">In 2024&ndash;25, district-heating pipes were installed <b>under S-train line A<\/b> at <b>Hammersholt<\/b> near Hiller&oslash;d. Trains had to keep running while the ground beneath them was disturbed &mdash; so every millimetre of track settlement was watched in real time.<\/p>\n<p class=\"snm-partners\">Banedanmark &mdash; rail authority &middot; LIFA &mdash; surveying &amp; lead &middot; Worldsensing &mdash; wireless tiltmeters &middot; KI \/ Senmos &mdash; monitoring platform<\/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 greatly appreciate our partnership and the excellent collaboration with KI. Using Senmos is simple, and our clients have expressed great satisfaction with the visualizations on the platform.&rdquo;<\/p><\/blockquote>\n<p class=\"snm-who\"><b>Jakob Larsen<\/b>Land surveyor and Partner at LIFA<\/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-railway-section.webp\" alt=\"Section illustration showing the settlement trough that forms as a pipe is pushed under the track, with the tiltmeter chain tracing its shape\" loading=\"lazy\" \/> <\/p>\n<div>\n<h2>How the track is <span class=\"snm-hl\">instrumented<\/span><\/h2>\n<p>54 Worldsensing tiltmeters sit on aluminium beams fixed between every third sleeper, forming a continuous <b>shape array<\/b> along each rail. As pipes are pushed under the track, a settlement trough forms &mdash; and the array draws its exact shape. The beams span between sleepers, so each inclinometer measures the tilt of a short length of track. Chain them together and the array reads the shape of the settlement, not just its depth at one point.<\/p>\n<p class=\"snm-cap\">Section &mdash; Pipes pushed under the track create a settlement trough; the tiltmeter shape array along each rail captures its exact shape.<\/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>Sensor-to-screen, <span class=\"snm-hl\">every 30 seconds<\/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=\"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"\/><\/svg><\/p>\n<h3>LIFA aluminium beams<\/h3>\n<p>Purpose-built ~1.8&nbsp;m beams hold one tiltmeter each and clamp across the track &mdash; turning point sensors into a continuous array.<\/p>\n<\/div>\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>Worldsensing tiltmeters<\/h3>\n<p>54 wireless tiltmeters measuring track tilt and internal temperature.<\/p>\n<\/div>\n<div class=\"snm-card\"><svg class=\"snm-ic\" viewBox=\"0 0 640 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=\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"\/><\/svg><\/p>\n<h3>Worldsensing MQTT &rarr; Senmos<\/h3>\n<p>Live readings stream straight into Senmos over Worldsensing&#8217;s cloud MQTT &mdash; every 30&nbsp;s, no manual import.<\/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<\/h3>\n<p>Predefined thresholds trigger alerts the moment a genuine settlement trend appears.<\/p>\n<\/div>\n<\/div>\n<p class=\"snm-sub snm-after\">The tiltmeters at Hammersholt are <b>Worldsensing<\/b>, but nothing about the method is tied to one vendor &mdash; Senmos is hardware-agnostic, and the same shape array can be built from whatever suits the job. In-place inclinometer (IPI) strings from <b>Sisgeo<\/b> or <b>Geosense<\/b>, wireless inclinometer arrays from Ackcio, <b>Senceive<\/b> or <b>Move Solutions<\/b>, tilt sensors from <b>Level Developments<\/b>, or high-rate acquisition from <b>Dewesoft<\/b> &mdash; all feed the same processing chain and the same alarms.<\/p>\n<\/p><\/div>\n<\/section>\n<section class=\"snm-section\">\n<div class=\"snm-wrap\">\n<div class=\"snm-panel\">\n<h2>The hard part <span class=\"snm-hl\">Senmos does for you<\/span><\/h2>\n<p class=\"snm-sub\">Raw tilt on a 1.8&nbsp;m aluminium beam under a moving train is buried in temperature drift and vibration. Here&#8217;s what Senmos does to each inclinometer&#8217;s signal &mdash; and how the clean live values become a shape array.<\/p>\n<figure class=\"snm-fig\"><svg viewBox=\"0 0 880 720\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" font-family=\"'Open Sans',sans-serif\"> <defs><marker id=\"arr\" markerWidth=\"9\" markerHeight=\"9\" refX=\"7\" refY=\"4.5\" orient=\"auto\"><path d=\"M0,0 L9,4.5 L0,9 z\" fill=\"#586473\"\/><\/marker><\/defs> <!-- ============ STEP 1 - tilt sensor ============ --> <g transform=\"translate(10,18)\"> <rect width=\"205\" height=\"74\" rx=\"10\" fill=\"#f6f9fc\" stroke=\"#e6ebf2\"\/> <circle cx=\"26\" cy=\"26\" r=\"13\" fill=\"#1aa971\"\/><text x=\"26\" y=\"31\" text-anchor=\"middle\" fill=\"#fff\" font-weight=\"700\">1<\/text> <text x=\"48\" y=\"24\" font-weight=\"700\" font-size=\"13.5\">Each tiltmeter<\/text> <text x=\"48\" y=\"42\" font-weight=\"700\" font-size=\"13.5\">measures tilt (\u00b0)<\/text> <text x=\"14\" y=\"64\" font-size=\"11.5\" fill=\"#586473\">the raw value we send to Senmos<\/text> <\/g> <g transform=\"translate(0,8)\"> <!-- horizontal reference --> <line x1=\"330\" y1=\"78\" x2=\"520\" y2=\"78\" stroke=\"#c3ced9\" stroke-dasharray=\"4 3\"\/> <!-- tilted beam --> <line x1=\"360\" y1=\"78\" x2=\"510\" y2=\"52\" stroke=\"#1aa971\" stroke-width=\"6\" stroke-linecap=\"round\"\/> <rect x=\"420\" y=\"48\" width=\"26\" height=\"16\" rx=\"3\" fill=\"#1c2430\" transform=\"rotate(-10 433 56)\"\/> <!-- angle arc --> <path d=\"M392,78 A32,32 0 0 0 386,68\" fill=\"none\" stroke=\"#1BAAEC\" stroke-width=\"2\"\/> <text x=\"402\" y=\"70\" font-size=\"13\" fill=\"#2C6FA8\" font-weight=\"700\">\u03b8<\/text> <text x=\"540\" y=\"58\" font-size=\"12\" fill=\"#586473\">we send \u03b8 in degrees;<\/text> <text x=\"540\" y=\"76\" font-size=\"12\" fill=\"#586473\">the platform turns it into mm.<\/text> <\/g> <line x1=\"440\" y1=\"100\" x2=\"440\" y2=\"120\" stroke=\"#c3ced9\" marker-end=\"url(#arr)\"\/> <!-- ============ STEP 2 - anchor ends ============ --> <g transform=\"translate(10,150)\"> <rect width=\"205\" height=\"92\" rx=\"10\" fill=\"#f6f9fc\" stroke=\"#e6ebf2\"\/> <circle cx=\"26\" cy=\"26\" r=\"13\" fill=\"#1aa971\"\/><text x=\"26\" y=\"31\" text-anchor=\"middle\" fill=\"#fff\" font-weight=\"700\">2<\/text> <text x=\"48\" y=\"24\" font-weight=\"700\" font-size=\"13.5\">Anchor the ends<\/text> <text x=\"48\" y=\"42\" font-weight=\"700\" font-size=\"13.5\">to zero<\/text> <text x=\"14\" y=\"64\" font-size=\"11.5\" fill=\"#586473\">(= remove the mean &#8211; the<\/text> <text x=\"14\" y=\"80\" font-size=\"11.5\" fill=\"#586473\">same step). Bounded ends.<\/text> <\/g> <g transform=\"translate(0,150)\"> <!-- baseline = 0 --> <line x1=\"248\" y1=\"40\" x2=\"866\" y2=\"40\" stroke=\"#c3ced9\" stroke-dasharray=\"5 4\"\/> <text x=\"262\" y=\"34\" font-size=\"11\" fill=\"#c3ced9\">0 (track level)<\/text> <!-- raw accumulation: the far end floats up \u2192 a slope with a dip --> <polyline points=\"250,40 326,38 402,40 478,48 554,54 630,40 706,24 782,14 858,8\" fill=\"none\" stroke=\"#406CBA\" stroke-width=\"1.8\" stroke-dasharray=\"5 4\" opacity=\".9\"\/> <circle cx=\"858\" cy=\"8\" r=\"4\" fill=\"#406CBA\"\/> <text x=\"740\" y=\"12\" text-anchor=\"end\" font-size=\"11\" fill=\"#406CBA\">raw &#8211; the far end floats to ~8 mm, so the whole profile tilts into a slope<\/text> <!-- bounded: ends pinned, slope removed, only the central dip --> <polyline points=\"250,40 326,42 402,48 478,60 554,70 630,60 706,48 782,42 858,40\" fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.6\"\/> <g fill=\"#1aa971\"><circle cx=\"326\" cy=\"42\" r=\"3\"\/><circle cx=\"402\" cy=\"48\" r=\"3\"\/><circle cx=\"478\" cy=\"60\" r=\"3\"\/><circle cx=\"554\" cy=\"70\" r=\"3\"\/><circle cx=\"630\" cy=\"60\" r=\"3\"\/><circle cx=\"706\" cy=\"48\" r=\"3\"\/><circle cx=\"782\" cy=\"42\" r=\"3\"\/><\/g> <!-- end pins --> <circle cx=\"250\" cy=\"40\" r=\"6\" fill=\"#1BAAEC\"\/><circle cx=\"858\" cy=\"40\" r=\"6\" fill=\"#1BAAEC\"\/> <text x=\"250\" y=\"22\" text-anchor=\"middle\" font-size=\"10\" fill=\"#2C6FA8\" font-weight=\"700\">pinned = 0<\/text> <text x=\"845\" y=\"28\" text-anchor=\"middle\" font-size=\"10\" fill=\"#2C6FA8\" font-weight=\"700\">pinned = 0<\/text> <!-- bore marker --> <line x1=\"554\" y1=\"70\" x2=\"554\" y2=\"102\" stroke=\"#1c2430\" stroke-dasharray=\"3 3\"\/> <circle cx=\"554\" cy=\"110\" r=\"9\" fill=\"#e6ebf2\" stroke=\"#1c2430\"\/><circle cx=\"554\" cy=\"110\" r=\"2.5\" fill=\"#1c2430\"\/> <text x=\"554\" y=\"132\" text-anchor=\"middle\" font-size=\"11\" fill=\"#1c2430\" font-weight=\"700\">bore under track<\/text> <text x=\"250\" y=\"152\" font-size=\"11.5\" fill=\"#1aa971\">pin both ends to 0 \u2192 the slope is removed, leaving only the real central settlement<\/text> <\/g> <line x1=\"440\" y1=\"316\" x2=\"440\" y2=\"336\" stroke=\"#c3ced9\" marker-end=\"url(#arr)\"\/> <!-- ============ STEP 3 - temperature compensation ============ --> <g transform=\"translate(10,360)\"> <rect width=\"205\" height=\"92\" rx=\"10\" fill=\"#f6f9fc\" stroke=\"#e6ebf2\"\/> <circle cx=\"26\" cy=\"26\" r=\"13\" fill=\"#1aa971\"\/><text x=\"26\" y=\"31\" text-anchor=\"middle\" fill=\"#fff\" font-weight=\"700\">3<\/text> <text x=\"48\" y=\"24\" font-weight=\"700\" font-size=\"13.5\">Temperature<\/text> <text x=\"48\" y=\"42\" font-weight=\"700\" font-size=\"13.5\">compensation<\/text> <text x=\"14\" y=\"64\" font-size=\"11.5\" fill=\"#586473\">per sensor, from its own<\/text> <text x=\"14\" y=\"80\" font-size=\"11.5\" fill=\"#586473\">known temperature<\/text> <\/g> <g transform=\"translate(0,356)\"> <line x1=\"248\" y1=\"50\" x2=\"866\" y2=\"50\" stroke=\"#c3ced9\" stroke-dasharray=\"5 4\"\/> <!-- raw daily oscillation (looks like settlement every day) --> <path d=\"M250,50 C288,18 326,18 364,50 C402,82 440,82 478,50 C516,18 554,18 592,50 C630,82 668,82 706,50 C744,18 782,18 820,50 C840,34 850,42 858,48\" fill=\"none\" stroke=\"#406CBA\" stroke-width=\"1.8\" opacity=\".85\"\/> <!-- compensated (real slow trend) --> <path d=\"M250,52 Q554,60 858,66\" fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.6\"\/> <g font-size=\"11\" fill=\"#586473\"><text x=\"318\" y=\"104\">Day 1<\/text><text x=\"470\" y=\"104\">Day 2<\/text><text x=\"622\" y=\"104\">Day 3<\/text><text x=\"774\" y=\"104\">Day 4<\/text><\/g> <text x=\"250\" y=\"14\" font-size=\"11\" fill=\"#406CBA\">raw &#8211; daily temperature swing looks like settling &amp; recovering every day<\/text> <text x=\"540\" y=\"84\" font-size=\"11.5\" fill=\"#1aa971\">compensated \u2192 only the real, slow settlement<\/text> <\/g> <line x1=\"440\" y1=\"476\" x2=\"440\" y2=\"496\" stroke=\"#c3ced9\" marker-end=\"url(#arr)\"\/> <!-- ============ STEP 4 - filter vibration ============ --> <g transform=\"translate(10,520)\"> <rect width=\"205\" height=\"92\" rx=\"10\" fill=\"#f6f9fc\" stroke=\"#e6ebf2\"\/> <circle cx=\"26\" cy=\"26\" r=\"13\" fill=\"#1aa971\"\/><text x=\"26\" y=\"31\" text-anchor=\"middle\" fill=\"#fff\" font-weight=\"700\">4<\/text> <text x=\"48\" y=\"24\" font-weight=\"700\" font-size=\"13.5\">Filter vibration<\/text> <text x=\"14\" y=\"48\" font-size=\"11.5\" fill=\"#2C6FA8\">drop the reading taken<\/text> <text x=\"14\" y=\"64\" font-size=\"11.5\" fill=\"#2C6FA8\">as a train passes.<\/text> <\/g> <g transform=\"translate(0,520)\"> <line x1=\"248\" y1=\"70\" x2=\"866\" y2=\"70\" stroke=\"#c3ced9\" stroke-dasharray=\"5 4\"\/> <!-- clean baseline with tiny jitter --> <polyline points=\"250,70 300,69 350,71 400,70 450,69 500,71 588,70 640,69 700,71 760,70 820,69 858,70\" fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.4\"\/> <!-- spike --> <polyline points=\"520,70 540,18 560,70\" fill=\"none\" stroke=\"#406CBA\" stroke-width=\"2\"\/> <circle cx=\"540\" cy=\"40\" r=\"24\" fill=\"none\" stroke=\"#406CBA\" stroke-dasharray=\"4 3\"\/> <line x1=\"524\" y1=\"26\" x2=\"556\" y2=\"54\" stroke=\"#406CBA\" stroke-width=\"1.5\"\/><line x1=\"556\" y1=\"26\" x2=\"524\" y2=\"54\" stroke=\"#406CBA\" stroke-width=\"1.5\"\/> <text x=\"540\" y=\"10\" text-anchor=\"middle\" font-size=\"11\" fill=\"#406CBA\" font-weight=\"700\">train passes<\/text> <text x=\"576\" y=\"44\" font-size=\"11.5\" fill=\"#406CBA\" font-weight=\"700\">dropped<\/text> <\/g> <line x1=\"440\" y1=\"628\" x2=\"440\" y2=\"648\" stroke=\"#c3ced9\" marker-end=\"url(#arr)\"\/> <!-- ============ tie-in: shape array ============ --> <g transform=\"translate(0,650)\"> <rect x=\"120\" y=\"0\" width=\"640\" height=\"60\" rx=\"10\" fill=\"#E9F7F1\" stroke=\"#1aa971\"\/> <text x=\"150\" y=\"27\" font-size=\"13\" font-weight=\"700\" fill=\"#1aa971\">Each inclinometer&#8217;s clean live value (\u00b0)<\/text> <text x=\"150\" y=\"46\" font-size=\"12.5\" fill=\"#1aa971\">\u2192 the platform assembles them into the shape array \u2192<\/text> <polyline points=\"600,18 630,20 660,30 690,44 720,30 750,20 740,18\" fill=\"none\" stroke=\"#1aa971\" stroke-width=\"2.4\"\/> <\/g> <\/svg><figcaption>Figure &mdash; From one tiltmeter to a clean shape array: measure tilt (&deg;), anchor the ends to zero so only the real central dip remains, compensate each sensor for its own temperature, and &mdash; in production &mdash; drop the train-pass spikes.<\/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 project on the real Hammersholt location &mdash; 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 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>Watch the shape arrays<\/h3>\n<p>Both rails&#8217; deflected profiles updating live as the trough develops.<\/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=\"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 in 3D<\/h3>\n<p>The track on a 3D map, sensors pinned where they really sit.<\/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>Dig into one sensor<\/h3>\n<p>Open any tiltmeter&#8217;s full history.<\/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>See the calculations<\/h3>\n<p>Inspect the virtual channels &mdash; differential settlement, % of limit.<\/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-railway-shape-array.png\" alt=\"The north rail shape array in Senmos, showing the settlement trough drawn across 21 positions on three dates\" data-cap=\"The shape array &mdash; the settlement trough drawn from 21 tiltmeters, anchored to zero at both ends\" 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-railway-deflection.png\" alt=\"Deflection and temperature line plots per location along the north rail in Senmos, over one month\" data-cap=\"One month of deflection and temperature, per sensor along the rail\" 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-railway-correlation.png\" alt=\"A correlation plot in Senmos of rail deflection against temperature, with the best-fit line and correlation coefficient\" data-cap=\"Deflection against temperature &mdash; the thermal response the platform compensates for\" 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\">The shape array &mdash; the settlement trough drawn from 21 tiltmeters, anchored to zero at both ends<\/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=bc38fd54-d519-49c9-b2d7-d38f0d4ea48f&#038;returnUrl=%2Ftool%3Fdaid%3D1523794a-5037-4f5d-b1a7-d68742881ef5\" 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 built on a real, public reference project (Hammersholt, Banedanmark\/LIFA). The live demo project uses <b>simulated<\/b> data at 30-minute intervals to illustrate the platform; it is not live monitoring of an operational railway.<\/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\": \"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.\", \"url\": \"https:\/\/monitorering.ki.dk\/en\/railway-settlement-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>Railway settlement monitoring &middot; Live demo Drilling under a live railway &mdash; without stopping the trains When pipes are pushed beneath an active rail line, Danish law requires continuous settlement monitoring. See exactly how it&#8217;s &#8230; <\/p>\n<div><a href=\"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/\" class=\"more-link\">Read More<\/a><\/div>\n","protected":false},"author":9,"featured_media":10812,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-4.php","meta":{"_yoast_wpseo_focuskw":"railway settlement monitoring","_yoast_wpseo_title":"Railway Settlement Monitoring & Alarms | Senmos","_yoast_wpseo_metadesc":"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.","rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-10818","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>Railway Settlement Monitoring &amp; Alarms | Senmos<\/title>\n<meta name=\"description\" content=\"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.\" \/>\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\/railway-settlement-monitoring\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Railway Settlement Monitoring &amp; Alarms | Senmos\" \/>\n<meta property=\"og:description\" content=\"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/\" \/>\n<meta property=\"og:site_name\" content=\"KI Monitoring\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-21T07:34:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"966\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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\\\/railway-settlement-monitoring\\\/\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/railway-settlement-monitoring\\\/\",\"name\":\"Railway Settlement Monitoring & Alarms | Senmos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/railway-settlement-monitoring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/railway-settlement-monitoring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-railway-map-overview.png\",\"datePublished\":\"2026-08-21T07:34:29+00:00\",\"dateModified\":\"2026-08-21T07:34:30+00:00\",\"description\":\"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/railway-settlement-monitoring\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/monitorering.ki.dk\\\/en\\\/railway-settlement-monitoring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-railway-map-overview.png\",\"contentUrl\":\"https:\\\/\\\/monitorering.ki.dk\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/senmos-railway-map-overview.png\",\"width\":1920,\"height\":966,\"caption\":\"The Hammersholt track on a 3D map in Senmos, with north and south rail live value boxes showing displacement and temperature per node\"},{\"@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":"Railway Settlement Monitoring & Alarms | Senmos","description":"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.","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\/railway-settlement-monitoring\/","og_locale":"en_US","og_type":"article","og_title":"Railway Settlement Monitoring & Alarms | Senmos","og_description":"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.","og_url":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/","og_site_name":"KI Monitoring","article_modified_time":"2026-08-21T07:34:30+00:00","og_image":[{"width":1920,"height":966,"url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png","type":"image\/png"}],"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\/railway-settlement-monitoring\/","url":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/","name":"Railway Settlement Monitoring & Alarms | Senmos","isPartOf":{"@id":"https:\/\/monitorering.ki.dk\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/#primaryimage"},"image":{"@id":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/#primaryimage"},"thumbnailUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png","datePublished":"2026-08-21T07:34:29+00:00","dateModified":"2026-08-21T07:34:30+00:00","description":"Continuous track settlement monitoring while boring under a live railway. Shape arrays every 30 seconds, alarms before a train reaches the works.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/monitorering.ki.dk\/en\/railway-settlement-monitoring\/#primaryimage","url":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png","contentUrl":"https:\/\/monitorering.ki.dk\/wp-content\/uploads\/2026\/08\/senmos-railway-map-overview.png","width":1920,"height":966,"caption":"The Hammersholt track on a 3D map in Senmos, with north and south rail live value boxes showing displacement and temperature per node"},{"@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\/10818","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=10818"}],"version-history":[{"count":5,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10818\/revisions"}],"predecessor-version":[{"id":10823,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/pages\/10818\/revisions\/10823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media\/10812"}],"wp:attachment":[{"href":"https:\/\/monitorering.ki.dk\/en\/wp-json\/wp\/v2\/media?parent=10818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}