1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml" lang="de-CH" xml:lang="de-CH"><head> 3 4<meta charset="utf-8"> 5<meta name="generator" content="quarto-1.9.19"> 6 7<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> 8 9<meta name="keywords" content="Vegetation, Schweiz, Europa, Grasland, Wald, Wiederholungsaufnahme, Vegetations-Datenbank, Vegetationsaufnahme, Vegetationsveränderung, Biodiversität, ökologischer Zeigerwert, historische Daten, Quadratfuss-Projekt, Makroökologie, globaler Wandel, Zeitreihe"> 10<meta name="description" content="The information portal vegetation.ch contains interactive dashboards on the national vegetation database, grassland diversity and vegetation resurveys"> 11 12<title>Plant diversity and vegetation of Switzerland â Vegetation der Schweiz</title> 13<style> 14/* Default styles provided by pandoc. 15** See https://pandoc.org/MANUAL.html#variables-for-html for config info. 16*/ 17code{white-space: pre-wrap;} 18span.smallcaps{font-variant: small-caps;} 19div.columns{display: flex; gap: min(4vw, 1.5em);} 20div.column{flex: auto; overflow-x: auto;} 21div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} 22ul.task-list{list-style: none;} 23ul.task-list li input[type="checkbox"] { 24 width: 0.8em; 25 margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 26 vertical-align: middle; 27} 28</style> 29 30
31<script src="site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 31
31
32<script src="site_libs/quarto-nav/headroom.min.js"></script>
vendor: 1 bytes, line 32
32
33<script src="site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 33
33
34<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 34
34
35<script src="site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 35
35
36<script src="site_libs/quarto-search/quarto-search.js"></script>
36 37<meta name="quarto:offset" content="./">
38<script src="site_libs/quarto-html/quarto.js" type="module"></script>
vendor: 1 bytes, line 38
38
39<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
vendor: 1 bytes, line 39
39
40<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
vendor: 1 bytes, line 40
40
41<script src="site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 41
41
42<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
vendor: 1 bytes, line 42
42
43<script src="site_libs/quarto-html/anchor.min.js"></script>
43 44<link href="site_libs/quarto-html/tippy.css" rel="stylesheet"> 45<link href="site_libs/quarto-html/quarto-syntax-highlighting-3f61aac59b63c3a2d0e87c59ee7d0662.css" rel="stylesheet" id="quarto-text-highlighting-styles">
46<script src="site_libs/bootstrap/bootstrap.min.js"></script>
46 47<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet"> 48<link href="site_libs/bootstrap/bootstrap-18dc3aa904c21df6172f9d0076d0e721.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
49<script id="quarto-search-options" type="application/json">{ 50 "location": "navbar", 51 "copy-button": false, 52 "collapse-after": 3, 53 "panel-placement": "end", 54 "type": "overlay", 55 "limit": 50, 56 "keyboard-shortcut": [ 57 "f", 58 "/", 59 "s" 60 ], 61 "show-item-context": false, 62 "language": { 63 "search-no-results-text": "Keine Treffer", 64 "search-matching-documents-text": "Treffer", 65 "search-copy-link-title": "Link in die Suche kopieren", 66 "search-hide-matches-text": "Zusätzliche Treffer verbergen", 67 "search-more-match-text": "weitere Treffer in diesem Dokument", 68 "search-more-matches-text": "weitere Treffer in diesem Dokument", 69 "search-clear-button-title": "Zurücksetzen", 70 "search-text-placeholder": "", 71 "search-detached-cancel-button-title": "Abbrechen", 72 "search-submit-button-title": "Abschicken", 73 "search-label": "Suchen" 74 } 75}</script>
75 76 77 78<link rel="stylesheet" href="styles.css"> 79</head> 80 81<body class="nav-fixed quarto-light"> 82 83<div id="quarto-search-results"></div> 84 <header id="quarto-header" class="headroom fixed-top"> 85 <nav class="navbar navbar-expand-lg " data-bs-theme="dark"> 86 <div class="navbar-container container-fluid"> 87 <div class="navbar-brand-container mx-auto"> 88 <a class="navbar-brand" href="./index.html"> 89 <span class="navbar-title">Vegetation der Schweiz</span> 90 </a> 91 </div> 92 <div id="quarto-search" class="" title="Suchen"></div> 93 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Navigation umschalten" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }"> 94 <span class="navbar-toggler-icon"></span> 95</button> 96 <div class="collapse navbar-collapse" id="navbarCollapse"> 97 <ul class="navbar-nav navbar-nav-scroll me-auto"> 98 <li class="nav-item"> 99 <a class="nav-link" href="./index.html"> 100<span class="menu-text">Home</span></a> 101 </li> 102 <li class="nav-item"> 103 <a class="nav-link active" href="./database.html" aria-current="page"> 104<span class="menu-text">Vegetationsdatenbank</span></a> 105 </li> 106 <li class="nav-item"> 107 <a class="nav-link" href="./grasland.html"> 108<span class="menu-text">Grasland</span></a> 109 </li> 110 <li class="nav-item"> 111 <a class="nav-link" href="./zeitreihen.html"> 112<span class="menu-text">Zeitreihen</span></a> 113 </li> 114 <li class="nav-item"> 115 <a class="nav-link" href="./squarefoot.html"> 116<span class="menu-text">Squarefoot</span></a> 117 </li> 118</ul> 119 </div> <!-- /navcollapse --> 120 <div class="quarto-navbar-tools"> 121</div> 122 </div> <!-- /container-fluid --> 123 </nav> 124</header> 125<!-- content --> 126<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar"> 127<!-- sidebar --> 128<!-- margin-sidebar --> 129 <div id="quarto-margin-sidebar" class="sidebar margin-sidebar zindex-bottom"> 130 131 </div> 132<!-- main --> 133<main class="content page-columns page-full" id="quarto-document-content"> 134 135<header id="title-block-header" class="quarto-title-block default"> 136<div class="quarto-title"> 137</div> 138 139 140 141<div class="quarto-title-meta"> 142 143 144 145 146 </div> 147 148 149<div> 150 <div class="keywords"> 151 <div class="block-title">Schlüsselwörter</div> 152 <p>Vegetation, Schweiz, Europa, Grasland, Wald, Wiederholungsaufnahme, Vegetations-Datenbank, Vegetationsaufnahme, Vegetationsveränderung, Biodiversität, ökologischer Zeigerwert, historische Daten, Quadratfuss-Projekt, Makroökologie, globaler Wandel, Zeitreihe</p> 153 </div> 154</div> 155 156</header> 157 158 159<div class="column-screen"> 160<p><iframe src="https://ratnanil.shinyapps.io/Database/" title="InfoFlora" style="width: 100%; height: 70vh"></p> 161<p></iframe></p> 162</div> 163<p>Die nationale <strong>Vegetationsdatenbank der Schweiz</strong> hat zum Ziel, die aus dem Gebiet der Schweiz existierenden Vegetationsaufnahmen, ob publiziert, digital oder nicht-digital, an einer Stelle möglichst vollständig zusammenzuführen und für vielfältige wissenschaftliche Auswertungen nutzbar zu machen. Die Datenbank befindet sich im Aufbau und umfasste am 31.01.2025 <strong>180â181 Vegetationsaufnahmen (âPlotsâ)</strong>, darunter <strong>165â981 von Info Flora</strong> und <strong>14â200 aus der Walddatenbank von Dr. Thomas Wohlgemuth</strong> (WSL). Damit hat die Schweiz eine der höchsten Datendichten weltweit. Aktuell ist die Datenbank noch nicht für externe Nutzer:innen zugänglich, doch ist dies für die Zukunft geplant â unter Wahrung der Rechte der Datenurheber/-besitzer. Ferner soll die Vegetationsdatenbank der Schweiz auch Mitglied im <a href="https://euroveg.org/eva-database/">European Vegetation Archive (EVA)</a> und der <a href="https://idiv-biodiversity.de/de/splot.html">globalen Datenbank âsPlotâ</a> werden. Wer Vegetationsdaten aus der Schweiz beitragen möchte, kann sich gerne an uns wenden
163<script type="text/javascript"> 164<!-- 165h='zhaw.ch,seih@zhaw.ch?subject=Vegetation.ch';a='@';n='juergen.dengler';e=n+a+h; 166document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+'Mail'+'<\/'+'a'+'>'); 167// --> 168</script>
168<noscript>Mail (juergen.dengler at zhaw dot ch,seih@zhaw dot ch?subject=Vegetation dot ch)</noscript>.</p> 169 170 171 172</main> <!-- /main -->
173<script id="quarto-html-after-body" type="application/javascript"> 174 window.document.addEventListener("DOMContentLoaded", function (event) { 175 const icon = "î§"; 176 const anchorJS = new window.AnchorJS(); 177 anchorJS.options = { 178 placement: 'right', 179 icon: icon 180 }; 181 anchorJS.add('.anchored'); 182 const isCodeAnnotation = (el) => { 183 for (const clz of el.classList) { 184 if (clz.startsWith('code-annotation-')) { 185 return true; 186 } 187 } 188 return false; 189 } 190 const onCopySuccess = function(e) { 191 // button target 192 const button = e.trigger; 193 // don't keep focus 194 button.blur(); 195 // flash "checked" 196 button.classList.add('code-copy-button-checked'); 197 var currentTitle = button.getAttribute("title"); 198 button.setAttribute("title", "Kopiert"); 199 let tooltip; 200 if (window.bootstrap) { 201 button.setAttribute("data-bs-toggle", "tooltip"); 202 button.setAttribute("data-bs-placement", "left"); 203 button.setAttribute("data-bs-title", "Kopiert"); 204 tooltip = new bootstrap.Tooltip(button, 205 { trigger: "manual", 206 customClass: "code-copy-button-tooltip", 207 offset: [0, -8]}); 208 tooltip.show(); 209 } 210 setTimeout(function() { 211 if (tooltip) { 212 tooltip.hide(); 213 button.removeAttribute("data-bs-title"); 214 button.removeAttribute("data-bs-toggle"); 215 button.removeAttribute("data-bs-placement"); 216 } 217 button.setAttribute("title", currentTitle); 218 button.classList.remove('code-copy-button-checked'); 219 }, 1000); 220 // clear code selection 221 e.clearSelection(); 222 } 223 const getTextToCopy = function(trigger) { 224 const outerScaffold = trigger.parentElement.cloneNode(true); 225 const codeEl = outerScaffold.querySelector('code'); 226 for (const childEl of codeEl.children) { 227 if (isCodeAnnotation(childEl)) { 228 childEl.remove(); 229 } 230 } 231 return codeEl.innerText; 232 } 233 const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', { 234 text: getTextToCopy 235 }); 236 clipboard.on('success', onCopySuccess); 237 if (window.document.getElementById('quarto-embedded-source-code-modal')) { 238 const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', { 239 text: getTextToCopy, 240 container: window.document.getElementById('quarto-embedded-source-code-modal') 241 }); 242 clipboardModal.on('success', onCopySuccess); 243 } 244 var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//); 245 var mailtoRegex = new RegExp(/^mailto:/); 246 var filterRegex = new RegExp("https:\/\/vegetation\.ch"); 247 var isInternal = (href) => { 248 return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href); 249 } 250 // Inspect non-navigation links and adorn them if external 251 var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)'); 252 for (var i=0; i<links.length; i++) { 253 const link = links[i]; 254 if (!isInternal(link.href)) { 255 // undo the damage that might have been done by quarto-nav.js in the case of 256 // links that we want to consider external 257 if (link.dataset.originalHref !== undefined) { 258 link.href = link.dataset.originalHref; 259 } 260 } 261 } 262 function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) { 263 const config = { 264 allowHTML: true, 265 maxWidth: 500, 266 delay: 100, 267 arrow: false, 268 appendTo: function(el) { 269 return el.parentElement; 270 }, 271 interactive: true, 272 interactiveBorder: 10, 273 theme: 'quarto', 274 placement: 'bottom-start', 275 }; 276 if (contentFn) { 277 config.content = contentFn; 278 } 279 if (onTriggerFn) { 280 config.onTrigger = onTriggerFn; 281 } 282 if (onUntriggerFn) { 283 config.onUntrigger = onUntriggerFn; 284 } 285 window.tippy(el, config); 286 } 287 const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); 288 for (var i=0; i<noterefs.length; i++) { 289 const ref = noterefs[i]; 290 tippyHover(ref, function() { 291 // use id or data attribute instead here 292 let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href'); 293 try { href = new URL(href).hash; } catch {} 294 const id = href.replace(/^#\/?/, ""); 295 const note = window.document.getElementById(id); 296 if (note) { 297 return note.innerHTML; 298 } else { 299 return ""; 300 } 301 }); 302 } 303 const xrefs = window.document.querySelectorAll('a.quarto-xref'); 304 const processXRef = (id, note) => { 305 // Strip column container classes 306 const stripColumnClz = (el) => { 307 el.classList.remove("page-full", "page-columns"); 308 if (el.children) { 309 for (const child of el.children) {
310 stripColumnClz(child); 311 } 312 } 313 } 314 stripColumnClz(note) 315 if (id === null || id.startsWith('sec-')) { 316 // Special case sections, only their first couple elements 317 const container = document.createElement("div"); 318 if (note.children && note.children.length > 2) { 319 container.appendChild(note.children[0].cloneNode(true)); 320 for (let i = 1; i < note.children.length; i++) { 321 const child = note.children[i]; 322 if (child.tagName === "P" && child.innerText === "") { 323 continue; 324 } else { 325 container.appendChild(child.cloneNode(true)); 326 break; 327 } 328 } 329 if (window.Quarto?.typesetMath) { 330 window.Quarto.typesetMath(container); 331 } 332 return container.innerHTML 333 } else { 334 if (window.Quarto?.typesetMath) { 335 window.Quarto.typesetMath(note); 336 } 337 return note.innerHTML; 338 } 339 } else { 340 // Remove any anchor links if they are present 341 const anchorLink = note.querySelector('a.anchorjs-link'); 342 if (anchorLink) { 343 anchorLink.remove(); 344 } 345 if (window.Quarto?.typesetMath) { 346 window.Quarto.typesetMath(note); 347 } 348 if (note.classList.contains("callout")) { 349 return note.outerHTML; 350 } else { 351 return note.innerHTML; 352 } 353 } 354 } 355 for (var i=0; i<xrefs.length; i++) { 356 const xref = xrefs[i]; 357 tippyHover(xref, undefined, function(instance) { 358 instance.disable(); 359 let url = xref.getAttribute('href'); 360 let hash = undefined; 361 if (url.startsWith('#')) { 362 hash = url; 363 } else { 364 try { hash = new URL(url).hash; } catch {} 365 } 366 if (hash) { 367 const id = hash.replace(/^#\/?/, ""); 368 const note = window.document.getElementById(id); 369 if (note !== null) { 370 try { 371 const html = processXRef(id, note.cloneNode(true)); 372 instance.setContent(html); 373 } finally { 374 instance.enable(); 375 instance.show(); 376 } 377 } else { 378 // See if we can fetch this 379 fetch(url.split('#')[0]) 380 .then(res => res.text()) 381 .then(html => { 382 const parser = new DOMParser(); 383 const htmlDoc = parser.parseFromString(html, "text/html"); 384 const note = htmlDoc.getElementById(id); 385 if (note !== null) { 386 const html = processXRef(id, note); 387 instance.setContent(html); 388 } 389 }).finally(() => { 390 instance.enable(); 391 instance.show(); 392 }); 393 } 394 } else { 395 // See if we can fetch a full url (with no hash to target) 396 // This is a special case and we should probably do some content thinning / targeting 397 fetch(url) 398 .then(res => res.text()) 399 .then(html => { 400 const parser = new DOMParser(); 401 const htmlDoc = parser.parseFromString(html, "text/html"); 402 const note = htmlDoc.querySelector('main.content'); 403 if (note !== null) { 404 // This should only happen for chapter cross references 405 // (since there is no id in the URL) 406 // remove the first header 407 if (note.children.length > 0 && note.children[0].tagName === "HEADER") { 408 note.children[0].remove(); 409 } 410 const html = processXRef(null, note); 411 instance.setContent(html); 412 } 413 }).finally(() => { 414 instance.enable(); 415 instance.show(); 416 }); 417 } 418 }, function(instance) { 419 }); 420 } 421 let selectedAnnoteEl; 422 const selectorForAnnotation = ( cell, annotation) => { 423 let cellAttr = 'data-code-cell="' + cell + '"'; 424 let lineAttr = 'data-code-annotation="' + annotation + '"'; 425 const selector = 'span[' + cellAttr + '][' + lineAttr + ']'; 426 return selector; 427 } 428 const selectCodeLines = (annoteEl) => { 429 const doc = window.document; 430 const targetCell = annoteEl.getAttribute("data-target-cell"); 431 const targetAnnotation = annoteEl.getAttribute("data-target-annotation"); 432 const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation)); 433 const lines = annoteSpan.getAttribute("data-code-lines").split(","); 434 const lineIds = lines.map((line) => { 435 return targetCell + "-" + line; 436 }) 437 let top = null; 438 let height = null; 439 let parent = null; 440 if (lineIds.length > 0) { 441 //compute the position of the single el (top and bottom and make a div) 442 const el = window.document.getElementById(lineIds[0]); 443 top = el.offsetTop; 444 height = el.offsetHeight; 445 parent = el.parentElement.parentElement; 446 if (lineIds.length > 1) { 447 const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]); 448 const bottom = lastEl.offsetTop + lastEl.offsetHeight; 449 height = bottom - top; 450 } 451 if (top !== null && height !== null && parent !== null) { 452 // cook up a div (if necessary) and position it 453 let div = window.document.getElementById("code-annotation-line-highlight"); 454 if (div === null) { 455 div = window.document.createElement("div"); 456 div.setAttribute("id", "code-annotation-line-highlight"); 457 div.style.position = 'absolute'; 458 parent.appendChild(div); 459 } 460 div.style.top = top - 2 + "px"; 461 div.style.height = height + 4 + "px"; 462 div.style.left = 0; 463 let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); 464 if (gutterDiv === null) { 465 gutterDiv = window.document.createElement("div"); 466 gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter"); 467 gutterDiv.style.position = 'absolute'; 468 const codeCell = window.document.getElementById(targetCell); 469 const gutter = codeCell.querySelector('.code-annotation-gutter'); 470 gutter.appendChild(gutterDiv); 471 } 472 gutterDiv.style.top = top - 2 + "px"; 473 gutterDiv.style.height = height + 4 + "px"; 474 } 475 selectedAnnoteEl = annoteEl; 476 } 477 }; 478 const unselectCodeLines = () => { 479 const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"]; 480 elementsIds.forEach((elId) => { 481 const div = window.document.getElementById(elId); 482 if (div) { 483 div.remove(); 484 } 485 }); 486 selectedAnnoteEl = undefined; 487 }; 488 // Handle positioning of the toggle 489 window.addEventListener( 490 "resize", 491 throttle(() => { 492 elRect = undefined; 493 if (selectedAnnoteEl) { 494 selectCodeLines(selectedAnnoteEl); 495 } 496 }, 10) 497 ); 498 function throttle(fn, ms) { 499 let throttle = false;
500 let timer; 501 return (...args) => { 502 if(!throttle) { // first call gets through 503 fn.apply(this, args); 504 throttle = true; 505 } else { // all the others get throttled 506 if(timer) clearTimeout(timer); // cancel #2 507 timer = setTimeout(() => { 508 fn.apply(this, args); 509 timer = throttle = false; 510 }, ms); 511 } 512 }; 513 } 514 // Attach click handler to the DT 515 const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); 516 for (const annoteDlNode of annoteDls) { 517 annoteDlNode.addEventListener('click', (event) => { 518 const clickedEl = event.target; 519 if (clickedEl !== selectedAnnoteEl) { 520 unselectCodeLines(); 521 const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active'); 522 if (activeEl) { 523 activeEl.classList.remove('code-annotation-active'); 524 } 525 selectCodeLines(clickedEl); 526 clickedEl.classList.add('code-annotation-active'); 527 } else { 528 // Unselect the line 529 unselectCodeLines(); 530 clickedEl.classList.remove('code-annotation-active'); 531 } 532 }); 533 } 534 const findCites = (el) => { 535 const parentEl = el.parentElement; 536 if (parentEl) { 537 const cites = parentEl.dataset.cites; 538 if (cites) { 539 return { 540 el, 541 cites: cites.split(' ') 542 }; 543 } else { 544 return findCites(el.parentElement) 545 } 546 } else { 547 return undefined; 548 } 549 }; 550 var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]'); 551 for (var i=0; i<bibliorefs.length; i++) { 552 const ref = bibliorefs[i]; 553 const citeInfo = findCites(ref); 554 if (citeInfo) { 555 tippyHover(citeInfo.el, function() { 556 var popup = window.document.createElement('div'); 557 citeInfo.cites.forEach(function(cite) { 558 var citeDiv = window.document.createElement('div'); 559 citeDiv.classList.add('hanging-indent'); 560 citeDiv.classList.add('csl-entry'); 561 var biblioDiv = window.document.getElementById('ref-' + cite); 562 if (biblioDiv) { 563 citeDiv.innerHTML = biblioDiv.innerHTML; 564 } 565 popup.appendChild(citeDiv); 566 }); 567 return popup.innerHTML; 568 }); 569 } 570 } 571 }); 572 </script>
572 573</div> <!-- /content --> 574 575 576 577 578</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.