From 4f318cfa8ff1e4c3e8fec9ceea7849620b19d9be Mon Sep 17 00:00:00 2001 From: b-lack Date: Wed, 9 Aug 2023 01:08:10 +0200 Subject: [PATCH] add sponsoring --- docs/404.html | 20 +- docs/assets/app.js | 15 + docs/assets/icons/github-mark-white.svg | 1 + docs/css/styles.css | 2 +- docs/css/styles.css.map | 6 +- docs/docs/404.html | 170 + docs/docs/CNAME | 1 + docs/docs/assets/Export.svg | 69 + docs/docs/assets/app.js | 618 +++ docs/docs/assets/bg.svg | 1 + docs/docs/assets/birdy.svg | 1 + docs/docs/assets/cest.svg | 8 + docs/docs/assets/coin-bronce.svg | 6 + docs/docs/assets/coin-silver.svg | 6 + docs/docs/assets/coin-stacked.svg | 6 + docs/docs/assets/coin.svg | 3 + .../assets/fonts/estonia-regular-webfont.woff | Bin 0 -> 86688 bytes .../fonts/estonia-regular-webfont.woff2 | Bin 0 -> 65684 bytes docs/docs/assets/icons/brackets.svg | 8 + docs/docs/assets/icons/coin-bronce.svg | 6 + docs/docs/assets/icons/coin-gold.svg | 6 + docs/docs/assets/icons/coin-silver.svg | 6 + docs/docs/assets/icons/cross.svg | 6 + .../icons/favicon/android-icon-192x192.png | Bin 0 -> 13156 bytes .../assets/icons/favicon/favicon-32x32.ico | Bin 0 -> 4286 bytes docs/docs/assets/icons/favicon/favicon.png | Bin 0 -> 37714 bytes docs/docs/assets/icons/flag.svg | 6 + docs/docs/assets/icons/github-mark-white.svg | 1 + docs/docs/assets/icons/license.svg | 7 + docs/docs/assets/icons/openext.svg | 6 + docs/docs/assets/icons/selector.svg | 6 + docs/docs/assets/icons/star-todo.svg | 3 + docs/docs/assets/icons/star.svg | 3 + docs/docs/assets/icons/telescope.svg | 9 + docs/docs/assets/icons/timeglass-new.svg | 3 + docs/docs/assets/icons/timeglass.svg | 3 + docs/docs/assets/mastodon-feed.js | 532 +++ docs/docs/assets/og/thepirateforest.png | Bin 0 -> 83988 bytes docs/docs/assets/pirate-border.svg | 5 + docs/docs/assets/repositories.json | 1062 ++++++ docs/docs/assets/saebel.png | Bin 0 -> 14086 bytes docs/docs/assets/saebel.svg | 3 + docs/docs/assets/ship.svg | 8 + docs/docs/assets/wave.svg | 3 + docs/docs/css/styles.css | 3 + docs/docs/css/styles.css.map | 18 + docs/docs/feed.xml | 1 + docs/docs/feeds/mastodon.xml | 970 +++++ docs/docs/index.html | 1194 ++++++ docs/docs/islands.html | 3299 +++++++++++++++++ docs/docs/islands/forest-management.html | 718 ++++ docs/docs/islands/gis.html | 518 +++ docs/docs/islands/lidar.html | 1287 +++++++ docs/docs/islands/remote-sensing.html | 538 +++ docs/docs/islands/urban-forestry.html | 440 +++ docs/docs/journeys/test/hello-forest.html | 160 + docs/docs/merch.html | 166 + docs/docs/robots.txt | 1 + docs/docs/scholar.html | 245 ++ docs/docs/sitemap.xml | 215 ++ docs/docs/treasure-chest.html | 168 + docs/docs/treasure/3D-CMCC-FEM.html | 182 + docs/docs/treasure/AdTree.html | 188 + docs/docs/treasure/Biomassr.html | 182 + docs/docs/treasure/DeepForest.html | 182 + .../treasure/Digital-Forestry-Toolbox.html | 182 + docs/docs/treasure/FMT.html | 182 + docs/docs/treasure/FSCT.html | 182 + docs/docs/treasure/ForestBiometrics.html | 182 + docs/docs/treasure/ForestGapR.html | 182 + ...DIS-II-Forest-Roads-Simulation-module.html | 186 + docs/docs/treasure/LeWoS.html | 182 + docs/docs/treasure/LiDARForestryHeight.html | 182 + docs/docs/treasure/PercepTreeV1.html | 194 + .../treasure/RandomForest-Classification.html | 182 + docs/docs/treasure/SBCM.html | 182 + docs/docs/treasure/SEILAPLAN.html | 182 + docs/docs/treasure/SSSC.html | 188 + docs/docs/treasure/TreeDiversity.html | 182 + docs/docs/treasure/TreeLS.html | 182 + docs/docs/treasure/TreeQSM.html | 182 + docs/docs/treasure/TreeTool.html | 182 + docs/docs/treasure/awesome-forests.html | 182 + docs/docs/treasure/carboncalc.html | 182 + docs/docs/treasure/clus.html | 182 + docs/docs/treasure/deepforestr.html | 182 + docs/docs/treasure/forestfrag3d.html | 182 + docs/docs/treasure/forestmangr.html | 182 + docs/docs/treasure/forvol.html | 182 + docs/docs/treasure/giessdenkiez-de.html | 186 + docs/docs/treasure/laselva.html | 182 + docs/docs/treasure/lidR.html | 192 + docs/docs/treasure/plant-generator.html | 182 + docs/docs/treasure/pycrown.html | 186 + docs/docs/treasure/pyfor.html | 182 + docs/docs/treasure/stanfordclassicr.html | 182 + docs/docs/treasure/tree-species.html | 182 + docs/docs/treasure/tree_detection.html | 182 + docs/docs/treasure/treeco.html | 182 + docs/docs/treasure/treeseg.html | 182 + docs/docs/treasure/vinv-schema.html | 182 + docs/docs/treasure/vwm-brandenburg.html | 188 + docs/docs/treasure/weblidar-treetop.html | 182 + .../wheelRuts_semanticSegmentation.html | 188 + docs/feed.xml | 2 +- docs/feeds/mastodon.xml | 2 +- docs/index.html | 20 +- docs/islands.html | 3299 +++++++++++++++++ docs/islands/forest-management.html | 36 +- docs/islands/gis.html | 30 +- docs/islands/lidar.html | 50 +- docs/islands/remote-sensing.html | 30 +- docs/islands/urban-forestry.html | 28 +- docs/journeys/test/hello-forest.html | 5 + docs/merch.html | 20 +- docs/scholar.html | 20 +- docs/sitemap.xml | 318 +- docs/treasure-chest.html | 20 +- docs/treasure/3D-CMCC-FEM.html | 11 +- docs/treasure/AdTree.html | 11 +- docs/treasure/Biomassr.html | 11 +- docs/treasure/DeepForest.html | 11 +- docs/treasure/Digital-Forestry-Toolbox.html | 11 +- docs/treasure/FMT.html | 11 +- docs/treasure/FSCT.html | 11 +- docs/treasure/ForestBiometrics.html | 11 +- docs/treasure/ForestGapR.html | 11 +- ...DIS-II-Forest-Roads-Simulation-module.html | 11 +- docs/treasure/LeWoS.html | 11 +- docs/treasure/LiDARForestryHeight.html | 11 +- docs/treasure/PercepTreeV1.html | 11 +- .../treasure/RandomForest-Classification.html | 11 +- docs/treasure/SBCM.html | 11 +- docs/treasure/SEILAPLAN.html | 11 +- docs/treasure/SSSC.html | 11 +- docs/treasure/TreeDiversity.html | 11 +- docs/treasure/TreeLS.html | 11 +- docs/treasure/TreeQSM.html | 11 +- docs/treasure/TreeTool.html | 11 +- docs/treasure/awesome-forests.html | 11 +- docs/treasure/carboncalc.html | 11 +- docs/treasure/clus.html | 11 +- docs/treasure/deepforestr.html | 11 +- docs/treasure/forestfrag3d.html | 11 +- docs/treasure/forestmangr.html | 11 +- docs/treasure/forvol.html | 11 +- docs/treasure/giessdenkiez-de.html | 11 +- docs/treasure/laselva.html | 11 +- docs/treasure/lidR.html | 11 +- docs/treasure/plant-generator.html | 11 +- docs/treasure/pycrown.html | 11 +- docs/treasure/pyfor.html | 11 +- docs/treasure/stanfordclassicr.html | 11 +- docs/treasure/tree-species.html | 11 +- docs/treasure/tree_detection.html | 11 +- docs/treasure/treeco.html | 11 +- docs/treasure/treeseg.html | 11 +- docs/treasure/vinv-schema.html | 11 +- docs/treasure/vwm-brandenburg.html | 11 +- docs/treasure/weblidar-treetop.html | 11 +- .../wheelRuts_semanticSegmentation.html | 11 +- 161 files changed, 24659 insertions(+), 144 deletions(-) create mode 100644 docs/assets/icons/github-mark-white.svg create mode 100644 docs/docs/404.html create mode 100644 docs/docs/CNAME create mode 100644 docs/docs/assets/Export.svg create mode 100644 docs/docs/assets/app.js create mode 100644 docs/docs/assets/bg.svg create mode 100644 docs/docs/assets/birdy.svg create mode 100644 docs/docs/assets/cest.svg create mode 100644 docs/docs/assets/coin-bronce.svg create mode 100644 docs/docs/assets/coin-silver.svg create mode 100644 docs/docs/assets/coin-stacked.svg create mode 100644 docs/docs/assets/coin.svg create mode 100644 docs/docs/assets/fonts/estonia-regular-webfont.woff create mode 100644 docs/docs/assets/fonts/estonia-regular-webfont.woff2 create mode 100644 docs/docs/assets/icons/brackets.svg create mode 100644 docs/docs/assets/icons/coin-bronce.svg create mode 100644 docs/docs/assets/icons/coin-gold.svg create mode 100644 docs/docs/assets/icons/coin-silver.svg create mode 100644 docs/docs/assets/icons/cross.svg create mode 100644 docs/docs/assets/icons/favicon/android-icon-192x192.png create mode 100644 docs/docs/assets/icons/favicon/favicon-32x32.ico create mode 100644 docs/docs/assets/icons/favicon/favicon.png create mode 100644 docs/docs/assets/icons/flag.svg create mode 100644 docs/docs/assets/icons/github-mark-white.svg create mode 100644 docs/docs/assets/icons/license.svg create mode 100644 docs/docs/assets/icons/openext.svg create mode 100644 docs/docs/assets/icons/selector.svg create mode 100644 docs/docs/assets/icons/star-todo.svg create mode 100644 docs/docs/assets/icons/star.svg create mode 100644 docs/docs/assets/icons/telescope.svg create mode 100644 docs/docs/assets/icons/timeglass-new.svg create mode 100644 docs/docs/assets/icons/timeglass.svg create mode 100644 docs/docs/assets/mastodon-feed.js create mode 100644 docs/docs/assets/og/thepirateforest.png create mode 100644 docs/docs/assets/pirate-border.svg create mode 100644 docs/docs/assets/repositories.json create mode 100644 docs/docs/assets/saebel.png create mode 100644 docs/docs/assets/saebel.svg create mode 100644 docs/docs/assets/ship.svg create mode 100644 docs/docs/assets/wave.svg create mode 100644 docs/docs/css/styles.css create mode 100644 docs/docs/css/styles.css.map create mode 100644 docs/docs/feed.xml create mode 100644 docs/docs/feeds/mastodon.xml create mode 100644 docs/docs/index.html create mode 100644 docs/docs/islands.html create mode 100644 docs/docs/islands/forest-management.html create mode 100644 docs/docs/islands/gis.html create mode 100644 docs/docs/islands/lidar.html create mode 100644 docs/docs/islands/remote-sensing.html create mode 100644 docs/docs/islands/urban-forestry.html create mode 100644 docs/docs/journeys/test/hello-forest.html create mode 100644 docs/docs/merch.html create mode 100644 docs/docs/robots.txt create mode 100644 docs/docs/scholar.html create mode 100644 docs/docs/sitemap.xml create mode 100644 docs/docs/treasure-chest.html create mode 100644 docs/docs/treasure/3D-CMCC-FEM.html create mode 100644 docs/docs/treasure/AdTree.html create mode 100644 docs/docs/treasure/Biomassr.html create mode 100644 docs/docs/treasure/DeepForest.html create mode 100644 docs/docs/treasure/Digital-Forestry-Toolbox.html create mode 100644 docs/docs/treasure/FMT.html create mode 100644 docs/docs/treasure/FSCT.html create mode 100644 docs/docs/treasure/ForestBiometrics.html create mode 100644 docs/docs/treasure/ForestGapR.html create mode 100644 docs/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html create mode 100644 docs/docs/treasure/LeWoS.html create mode 100644 docs/docs/treasure/LiDARForestryHeight.html create mode 100644 docs/docs/treasure/PercepTreeV1.html create mode 100644 docs/docs/treasure/RandomForest-Classification.html create mode 100644 docs/docs/treasure/SBCM.html create mode 100644 docs/docs/treasure/SEILAPLAN.html create mode 100644 docs/docs/treasure/SSSC.html create mode 100644 docs/docs/treasure/TreeDiversity.html create mode 100644 docs/docs/treasure/TreeLS.html create mode 100644 docs/docs/treasure/TreeQSM.html create mode 100644 docs/docs/treasure/TreeTool.html create mode 100644 docs/docs/treasure/awesome-forests.html create mode 100644 docs/docs/treasure/carboncalc.html create mode 100644 docs/docs/treasure/clus.html create mode 100644 docs/docs/treasure/deepforestr.html create mode 100644 docs/docs/treasure/forestfrag3d.html create mode 100644 docs/docs/treasure/forestmangr.html create mode 100644 docs/docs/treasure/forvol.html create mode 100644 docs/docs/treasure/giessdenkiez-de.html create mode 100644 docs/docs/treasure/laselva.html create mode 100644 docs/docs/treasure/lidR.html create mode 100644 docs/docs/treasure/plant-generator.html create mode 100644 docs/docs/treasure/pycrown.html create mode 100644 docs/docs/treasure/pyfor.html create mode 100644 docs/docs/treasure/stanfordclassicr.html create mode 100644 docs/docs/treasure/tree-species.html create mode 100644 docs/docs/treasure/tree_detection.html create mode 100644 docs/docs/treasure/treeco.html create mode 100644 docs/docs/treasure/treeseg.html create mode 100644 docs/docs/treasure/vinv-schema.html create mode 100644 docs/docs/treasure/vwm-brandenburg.html create mode 100644 docs/docs/treasure/weblidar-treetop.html create mode 100644 docs/docs/treasure/wheelRuts_semanticSegmentation.html create mode 100644 docs/islands.html diff --git a/docs/404.html b/docs/404.html index 152fce2..8bc51d7 100644 --- a/docs/404.html +++ b/docs/404.html @@ -87,9 +87,27 @@

+
- +
+ Thanks to +

+ Gold Sponsor +

+ +
diff --git a/docs/assets/app.js b/docs/assets/app.js index 894e24e..05b2e50 100644 --- a/docs/assets/app.js +++ b/docs/assets/app.js @@ -5,6 +5,12 @@ var treasureStr, treasure, treasureCounter; function saveTreasure(){ localStorage.setItem('treasure', JSON.stringify(treasure)); } +function toggleTreasure(id){ + if(treasure[id]) throwAway(id); + else collect(id); + + updateAddTreasureBtn(); +} function collect(id){ treasure[id] = { time: (new Date()).getTime(), @@ -20,6 +26,13 @@ function throwAway(id){ saveTreasure(); } +function updateAddTreasureBtn(){ + var btn = document.getElementById('pf-addTreasureBtn'); + if(!btn) return; + console.log(btn.dataset.pirateId); + btn.textContent = treasure[btn.dataset.pirateId] ? 'Remove from My Treasure Chest' : 'Add to My Treasure Chest'; +} + function updateIsland(){ for (element of document.getElementsByClassName('pf-pirate')) { @@ -575,6 +588,8 @@ function initData(){ setShareLink(); setStarAd(); + updateAddTreasureBtn(); + const toggleFeedBtn = document.getElementById("pf-toggle-feed"); if(toggleFeedBtn){ toggleFeedBtn.addEventListener("click", toggleFeed); diff --git a/docs/assets/icons/github-mark-white.svg b/docs/assets/icons/github-mark-white.svg new file mode 100644 index 0000000..d5e6491 --- /dev/null +++ b/docs/assets/icons/github-mark-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/css/styles.css b/docs/css/styles.css index 397edbc..8c44dc6 100644 --- a/docs/css/styles.css +++ b/docs/css/styles.css @@ -1,3 +1,3 @@ -.bibliography{margin:50px auto;max-width:700px;list-style:none}.bibliography h2{font-size:1.5em;margin-bottom:0}.bibliography .pf-scholar-abstract{margin:20px;padding:0;font-size:0.9em;font-style:italic;display:none}#mt-body{width:fit-content;overflow:scroll;width:100%;top:0;bottom:0;height:350px;z-index:1;transition:left .2s ease-in-out;display:flex;flex-direction:row;border-radius:10px}#mt-body a{text-decoration:underline}#mt-body article{background-color:#323232;border-radius:10px;padding:10px;margin:10px;display:flex;flex-direction:column;justify-content:center;width:90vw;text-align:center;aspect-ratio:9/9}#mt-body .mt-avatar,#mt-body .mt-user{display:none}#mt-body .img-ratio14_7{overflow:hidden}#mt-body .toot-date{font-size:0.8em;color:rgba(255,255,255,0.5);text-decoration:none}#mt-body .toot-media{aspect-ratio:16/9}.pf-feed{position:relative;margin:150px 0}.pf-feed-line{position:absolute;left:30px;top:-50px}.pf-feed-active{overflow-x:hidden;width:100%}.pf-feed-active #mt-body{left:0}.pf-feed-active .pf-main{position:relative}@font-face{font-family:'Estonia';src:url("../assets/fonts/estonia-regular-webfont.woff2") format("woff2"),url("../assets/fonts/estonia-regular-webfont.woff") format("woff");font-weight:normal;font-style:normal}h1{font-family:"Estonia",cursive;font-weight:normal;text-align:center}h2{font-family:"Estonia",cursive;text-align:center;font-size:2.4em}.h4{font-size:1.2rem}h1.pf-title{margin:30px 10px 0;font-size:4em;line-height:1em}.pf-under-title{font-size:0.8em;max-width:500px;margin:0 auto}.pf-skelleton-img{margin-top:100px;min-width:400px}.pf-hidden{display:none}body{font-family:"Times New Roman",serif;letter-spacing:0.1em;background-color:#111;color:#fff;font-size:1.3em;margin:0}main{margin:0px}a,.pf-clickable{color:inherit;text-decoration:none;cursor:pointer;user-select:none}a:hover,.pf-active{color:#61d202}img{max-width:100%}.m-2{margin:0 0 1em 1em}.pf-filter-col>*{margin:50px 10px}.pf-filter-col.pf-no-data #gf-sorting{display:none}#gf-sorting{margin-top:20px}.pf-sticky-top{position:sticky;top:10px}.sable{cursor:url("../assets/saebel.png"),auto}.pf-flag{margin:0px 20px 100px 0;flex-direction:column}.pf-flag>*:first-child{width:400px;overflow:hidden}.pf-ship{padding:0px 0 0px 20px}.pf-ship .h3{display:block;overflow:hidden;text-overflow:ellipsis;font-weight:bold;font-size:1.2em}.pf-pirate-ogimage{margin:50px}.pf-pirate-ogimage *{border-radius:10px;background-color:#000;overflow:hidden}.pf-timestamp{font-size:0.6em}.pf-inline-icon{height:1em}.pf-ship h3,.pf-ship .h3{font-family:"Estonia",cursive;font-size:2rem;text-transform:uppercase;margin-bottom:0.2em;font-weight:bold}.pf-ship p{margin:0.2em 0 0.2em}.pf-ship-list{margin:50px auto;max-width:700px}.pf-ship-list>*:last-child .pf-ship{border-bottom:none}.pf-row{display:flex;flex-direction:row}.pf-row-bottom{align-self:flex-end}.pf-column{display:flex;flex-direction:column}.pf-treasure{font-family:"Estonia",cursive;font-size:3em;line-height:0.8em;position:relative}.pf-treasure-add img{max-width:25px}.pf-treasure-selected .pf-treasure-add{display:none}#pf-treasure-stack{position:relative;width:50px}#pf-treasure-stack>*{position:absolute;counter-increment:my-sec-counter;bottom:calc(10* counter(my-sec-counter));width:25px}.text-center{text-align:center}.pf-pirate-actions>*{text-align:center;margin:20px 0;display:block}.pf-treasure-remove{display:block;font-size:0.8rem}.pf-treasure-selected .pf-treasure-remove img{max-width:25px}.pf-type-index .pf-treasure-remove{display:none}#gf-to-chest{position:fixed;z-index:2;top:15px;right:15px;white-space:nowrap}#gf-to-chest,#gf-to-list{font-size:0.6em}.pf-type-treasure #gf-to-chest{display:none}.pf-type-index #gf-to-list{display:none}.pf-owner-name{font-size:0.9rem}.pf-owner-spacer{margin:0 10px;display:inline-block}.pf-grow{flex-grow:1}.pf-meta{font-size:1rem;justify-content:space-between}.pf-meta-lang::before,.pf-meta-star::before,.pf-meta-license::before,.pf-meta-timeglass::before,.pf-coin-bronze::before,.pf-coin-silver::before,.pf-coin-gold::before{content:' ';display:inline-block;margin-right:10px;width:1rem;height:1rem;background-image:url("../assets/icons/brackets.svg");background-size:1rem 1rem}.pf-meta-star::before{background-image:url("../assets/icons/star.svg")}.pf-star-todo::before{background-image:url("../assets/icons/star-todo.svg")}.pf-star-todo{right:30px;top:70px;position:absolute;z-index:4;color:#61d202;transform:scale(1);cursor:pointer}.pf-star-todo:hover{transform:scale(1.5)}dialog::backdrop{background-color:rgba(0,0,0,0.8)}dialog:modal{margin:auto 20px}.pf-meta-license::before{background-image:url("../assets/icons/license.svg")}.pf-meta-timeglass::before{background-image:url("../assets/icons/timeglass.svg")}.pf-meta-timeglass.pf-is-new::before{background-image:url("../assets/icons/timeglass-new.svg")}.pf-is-new{color:#d1a805;font-size:0.8em}.pf-coin-bronze::before{background-image:url("../assets/coin-bronce.svg")}.pf-coin-silver::before{background-image:url("../assets/coin-silver.svg")}.pf-coin-gold::before{background-image:url("../assets/coin-stacked.svg")}.pf-inline-men>*{display:inline-block;margin:0 15px 8px 0;font-size:.8em}.pf-icon-telescope{height:1em;width:1em;background-image:url("../assets/icons/telescope.svg");background-repeat:no-repeat;background-size:contain}.pf-openext{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-openext::after{content:' ';display:inline-block;margin-left:10px;width:1rem;height:1rem;background-size:1rem 1rem;background-image:url("../assets/icons/openext.svg")}.pf-footer-wave,.pf-footer-wave::before,.pf-footer-wave::after{content:'.';bottom:0;position:absolute;display:block;height:100px;width:100%;background-image:url("../assets/wave.svg");background-repeat:repeat-x;background-size:auto 60px;animation:linear infinite;animation-duration:4s}.pf-footer-wave::before{animation-duration:5s;animation-name:run}.pf-footer-wave::after{animation-duration:6s;animation-name:run2}.pf-footer-wave{position:relative;width:100%;color:black;animation-name:run3;height:170px;overflow-x:hidden;margin-top:50px}.pf-ship-sailing{position:absolute;display:block;height:150px;width:150px;background-image:url("../assets/ship.svg");background-repeat:no-repeat;background-size:auto 150px;animation:linear infinite;animation-duration:50s;animation-name:ship}hr.gf-seperator{height:20px;border:none;position:relative;display:block;background-image:url("../assets/icons/selector.svg");background-repeat:no-repeat;background-position:50% 50%;background-size:70% 7px;margin:90px 0}.pf-pirate-avatar{margin:0 auto;position:relative;height:75px;width:75px}.pf-pirate-name{text-align:center}.pf-gold{position:absolute;left:-50px;top:20px}.pf-pirate-avatar::before,#pf-treasure-counter{position:absolute;bottom:0;left:0;content:'';background-image:url("../assets/pirate-border.svg");background-size:75px 75px;display:block;width:75px;height:75px}.pf-pirate-avatar img{border-radius:50%;display:block;background-color:#333}.pf-nowrap{white-space:nowrap}ul.pf-topics{list-style:none;list-style-position:inside;padding:0}.pf-topics li{display:inline-block;font-size:0.6em;margin:5px 10px 0 0}.pf-fallback{display:none}.pf-no-data>.pf-fallback{display:block}.pf-remove-list{text-align:center;border-top:1px solid #333;margin-top:15px;padding-top:5px}.pf-treasure-selected .pf-topics,.pf-treasure-selected .pf-meta{display:none}.pf-treasure-selected{opacity:0.5}.pf-process-coin{position:absolute;z-index:1;bottom:-10px;left:-10px;background-image:url("../assets/icons/coin-bronce.svg");min-width:25px;height:25px;background-size:contain;background-repeat:no-repeat}.pf-process-coin>*{display:none}.pf-flat-coin-bronze{background-image:url("../assets/icons/coin-bronce.svg")}.pf-flat-coin-silver{background-image:url("../assets/icons/coin-silver.svg")}.pf-flat-coin-gold{background-image:url("../assets/icons/coin-gold.svg")}.pf-process-coin:hover>*{display:block}.pf-process-coin .pf-process-coin-select{position:relative;top:0px;left:0px;background-color:#222;padding:5px 5px 5px 5px;border:none;box-shadow:0 0 3px #111;font-size:0.8em}.pf-process-coin .pf-process-coin-select>*{white-space:nowrap;display:block;margin:8px}.pf-unterlines{text-decoration:underline}#pf-treasure-counter{position:absolute;left:20px;bottom:-10px;background:#eee;color:#111;border-radius:50%;width:20px;height:20px;z-index:2;font-size:20px;text-align:center;line-height:25px;transform:rotate(-30deg);font-weight:bolder}footer>*{margin:20px auto 20px auto;max-width:400px;text-align:center}@keyframes run{0%{background-position:0px 20px}50%{background-position:20px 30px}100%{background-position:0px 20px}}@keyframes run2{0%{background-position:320px 50px}50%{background-position:300px 40px}100%{background-position:320px 50px}}@keyframes run3{0%{background-position:500px 80px}50%{background-position:520px 70px}100%{background-position:500px 80px}}@keyframes ship{0%{left:-15%}100%{left:110%}}.data-star-avatar{display:none;border-radius:50%;background-color:#333;background-size:cover;background-position:center;background-repeat:no-repeat;margin:0 10px 0 0;overflow:hidden;position:absolute;z-index:1}.pf-meta-star:hover .data-star-avatar{display:block}#pf-night-sky{position:absolute;top:0;left:0;width:100%;height:100px;margin-bottom:30px;pointer-events:none}#pf-night-sky>*{pointer-events:auto}@keyframes pf-star-flicker{0%{opacity:0.1}100%{opacity:0.9}}.pf-hidden-big{display:none}.pf-hidden-small{display:block}.pf-flag{flex-direction:column;margin-right:0}.pf-flag>*:first-child{width:100%;flex-direction:row;align-items:flex-end}.pf-flag>*:first-child .pf-filter-col{margin:0;display:flex;flex-direction:row}.pf-flag>*:first-child .pf-filter-col>*{margin:10px 10px}.pf-type-treasure .pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-type-treasure .pf-flag>*:first-child .pf-skelleton-img{margin-top:0;align-self:flex-start}@media only screen and (max-width: 800px){.pf-ship-list{width:100%;overflow:hidden;max-width:700px}.pf-hidden-big{display:block}.pf-hidden-small{display:none}.pf-ad{width:100vw;overflow:hidden}.pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-flag>*:first-child header{margin:50px 0}.pf-small-column{flex-direction:column}.pf-footer-wave{position:sticky;bottom:0}.pf-pirate-ogimage{border-radius:10px;background-color:#000;margin:50px 10px}}.pf-h-island-list{display:flex;flex-direction:row;justify-content:flex-start;margin:0 10px;overflow-x:scroll}.pf-h-island-list>*:hover{background-color:#333}.pf-h-island-list>*{margin:40px 10px;background-color:#222;min-width:400px;max-width:500px;padding:10px}.pf-h-island-list>* .pf-pirate-avatar{margin:-50px auto 0}.pf-h-island-list>* .pf-ship{text-align:center}.pf-outline-btn{border:2px solid #333;border-radius:50px;padding:10px 15px;margin:10px;display:inline-block;cursor:pointer;background-color:#222}.pf-outline-btn:hover{background-color:#333;color:#fff} +.pf-sponsors{background-color:#222;padding:20px;margin:80px 0;text-align:center;color:#444}.pf-sponsor{margin:10px;display:inline-block;text-align:center}.pf-sponsor :hover{transform:scale(1.1)}.pf-sponsor-gold{width:100px;height:100px;border-radius:50%;padding:15px;overflow:hidden}.pf-sponsor-gold img{object-fit:cover;overflow:hidden;max-width:100px;max-height:100px}.pf-sponsor-dark{background-color:#000;color:#fff}.pf-sponsor-dark:hover{background-color:#111}.pf-sponsor-light{background-color:#fff;color:#000}.pf-sponsor-light:hover{background-color:#eee}.pf-sponsor .pf-sponsor-text{font-size:0.8em;margin-top:30px;display:inline-block}.pf-sponsor-gold-header{color:yellow}.bibliography{margin:50px auto;max-width:700px;list-style:none}.bibliography h2{font-size:1.5em;margin-bottom:0}.bibliography .pf-scholar-abstract{margin:20px;padding:0;font-size:0.9em;font-style:italic;display:none}#mt-body{width:fit-content;overflow:scroll;width:100%;top:0;bottom:0;height:350px;z-index:1;transition:left .2s ease-in-out;display:flex;flex-direction:row;border-radius:10px}#mt-body a{text-decoration:underline}#mt-body article{background-color:#323232;border-radius:10px;padding:10px;margin:10px;display:flex;flex-direction:column;justify-content:center;width:90vw;text-align:center;aspect-ratio:9/9}#mt-body .mt-avatar,#mt-body .mt-user{display:none}#mt-body .img-ratio14_7{overflow:hidden}#mt-body .toot-date{font-size:0.8em;color:rgba(255,255,255,0.5);text-decoration:none}#mt-body .toot-media{aspect-ratio:16/9}.pf-feed{position:relative;margin:150px 0}.pf-feed-line{position:absolute;left:30px;top:-50px}.pf-feed-active{overflow-x:hidden;width:100%}.pf-feed-active #mt-body{left:0}.pf-feed-active .pf-main{position:relative}@font-face{font-family:'Estonia';src:url("../assets/fonts/estonia-regular-webfont.woff2") format("woff2"),url("../assets/fonts/estonia-regular-webfont.woff") format("woff");font-weight:normal;font-style:normal}h1{font-family:"Estonia",cursive;font-weight:normal;text-align:center}h2{font-family:"Estonia",cursive;text-align:center;font-size:2.4em}.h4{font-size:1.2rem}h1.pf-title{margin:30px 10px 0;font-size:4em;line-height:1em}.pf-under-title{font-size:0.8em;max-width:500px;margin:0 auto}.pf-skelleton-img{margin-top:100px;min-width:400px}.pf-hidden{display:none}body{font-family:"Times New Roman",serif;letter-spacing:0.1em;background-color:#111;color:#fff;font-size:1.3em;margin:0}main,.no-margin{margin:0px}a,.pf-clickable{color:inherit;text-decoration:none;cursor:pointer;user-select:none}a:hover,.pf-active{color:#61d202}img{max-width:100%}.m-2{margin:0 0 1em 1em}.pf-filter-col>*{margin:50px 10px}.pf-filter-col.pf-no-data #gf-sorting{display:none}#gf-sorting{margin-top:20px}.pf-sticky-top{position:sticky;top:10px}.sable{cursor:url("../assets/saebel.png"),auto}.pf-flag{margin:0px 20px 100px 0;flex-direction:column}.pf-flag>*:first-child{width:400px;overflow:hidden}.pf-ship{padding:0px 0 0px 20px}.pf-ship .h3{display:block;overflow:hidden;text-overflow:ellipsis;font-weight:bold;font-size:1.2em}.pf-pirate-ogimage{margin:50px}.pf-pirate-ogimage *{border-radius:10px;background-color:#000;overflow:hidden}.pf-timestamp{font-size:0.6em}.pf-inline-icon{height:1em}.pf-ship h3,.pf-ship .h3{font-family:"Estonia",cursive;font-size:2rem;text-transform:uppercase;margin-bottom:0.2em;font-weight:bold}.pf-ship p{margin:0.2em 0 0.2em}.pf-ship-list{margin:50px auto;max-width:700px}.pf-ship-list>*:last-child .pf-ship{border-bottom:none}.pf-row{display:flex;flex-direction:row}.pf-row-bottom{align-self:flex-end}.pf-column{display:flex;flex-direction:column}.pf-treasure{font-family:"Estonia",cursive;font-size:3em;line-height:0.8em;position:relative}.pf-treasure-add img{max-width:25px}.pf-treasure-selected .pf-treasure-add{display:none}#pf-treasure-stack{position:relative;width:50px}#pf-treasure-stack>*{position:absolute;counter-increment:my-sec-counter;bottom:calc(10* counter(my-sec-counter));width:25px}.text-center{text-align:center}.pf-pirate-actions>*{text-align:center;margin:20px 0;display:block}.pf-treasure-remove{display:block;font-size:0.8rem}.pf-treasure-selected .pf-treasure-remove img{max-width:25px}.pf-type-index .pf-treasure-remove{display:none}#gf-to-chest{position:fixed;z-index:2;top:15px;right:15px;white-space:nowrap}#gf-to-chest,#gf-to-list{font-size:0.6em}.pf-type-index #gf-to-list{display:none}.pf-owner-name{font-size:0.9rem}.pf-owner-spacer{margin:0 10px;display:inline-block}.pf-grow{flex-grow:1}.pf-meta{font-size:1rem;justify-content:space-between}.pf-meta-lang::before,.pf-meta-star::before,.pf-meta-license::before,.pf-meta-timeglass::before,.pf-coin-bronze::before,.pf-coin-silver::before,.pf-coin-gold::before{content:' ';display:inline-block;margin-right:10px;width:1rem;height:1rem;background-image:url("../assets/icons/brackets.svg");background-size:1rem 1rem}.pf-meta-star::before{background-image:url("../assets/icons/star.svg")}.pf-star-todo::before{background-image:url("../assets/icons/star-todo.svg")}.pf-star-todo{right:30px;top:70px;position:absolute;z-index:4;color:#61d202;transform:scale(1);cursor:pointer}.pf-star-todo:hover{transform:scale(1.5)}dialog::backdrop{background-color:rgba(0,0,0,0.8)}dialog:modal{padding:50px}.pf-meta-license::before{background-image:url("../assets/icons/license.svg")}.pf-meta-timeglass::before{background-image:url("../assets/icons/timeglass.svg")}.pf-meta-timeglass.pf-is-new::before{background-image:url("../assets/icons/timeglass-new.svg")}.pf-is-new{color:#d1a805;font-size:0.8em}.pf-coin-bronze::before{background-image:url("../assets/coin-bronce.svg")}.pf-coin-silver::before{background-image:url("../assets/coin-silver.svg")}.pf-coin-gold::before{background-image:url("../assets/coin-stacked.svg")}.pf-inline-men>*{display:inline-block;margin:0 15px 8px 0;font-size:.8em}.pf-icon-telescope{height:1em;width:1em;background-image:url("../assets/icons/telescope.svg");background-repeat:no-repeat;background-size:contain}.pf-openext{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-openext::after{content:' ';display:inline-block;margin-left:10px;width:1rem;height:1rem;background-size:1rem 1rem;background-image:url("../assets/icons/openext.svg")}.pf-openext.pf-github::after{background-image:url("../assets/icons/github-mark-white.svg")}.pf-openext.pf-coin::after{background-image:url("../assets/icons/coin-bronce.svg")}.pf-footer-wave,.pf-footer-wave::before,.pf-footer-wave::after{content:'.';bottom:0;position:absolute;display:block;height:100px;width:100%;background-image:url("../assets/wave.svg");background-repeat:repeat-x;background-size:auto 60px;animation:linear infinite;animation-duration:4s}.pf-footer-wave::before{animation-duration:5s;animation-name:run}.pf-footer-wave::after{animation-duration:6s;animation-name:run2}.pf-footer-wave{position:relative;width:100%;color:black;animation-name:run3;height:170px;overflow-x:hidden;margin-top:50px}.margin-big{margin:50px}.margin-v-big{margin:50px 0}.pf-ship-sailing{position:absolute;display:block;height:150px;width:150px;background-image:url("../assets/ship.svg");background-repeat:no-repeat;background-size:auto 150px;animation:linear infinite;animation-duration:50s;animation-name:ship}hr.gf-seperator{height:20px;border:none;position:relative;display:block;background-image:url("../assets/icons/selector.svg");background-repeat:no-repeat;background-position:50% 50%;background-size:70% 7px;margin:90px 0}.pf-pirate-avatar{margin:0 auto;position:relative;height:75px;width:75px}.pf-pirate-name{text-align:center}.pf-gold{position:absolute;left:-50px;top:20px}.pf-pirate-avatar::before,#pf-treasure-counter{position:absolute;bottom:0;left:0;content:'';background-image:url("../assets/pirate-border.svg");background-size:75px 75px;display:block;width:75px;height:75px}.pf-pirate-avatar img{border-radius:50%;display:block;background-color:#333}.pf-nowrap{white-space:nowrap}ul.pf-topics{list-style:none;list-style-position:inside;padding:0}.pf-topics li{display:inline-block;font-size:0.6em;margin:5px 10px 0 0}.pf-fallback{display:none}.pf-no-data>.pf-fallback{display:block}.pf-remove-list{text-align:center;border-top:1px solid #333;margin-top:15px;padding-top:5px}.pf-treasure-selected .pf-topics,.pf-treasure-selected .pf-meta{display:none}.pf-treasure-selected{opacity:0.5}.pf-process-coin{position:absolute;z-index:1;bottom:-10px;left:-10px;background-image:url("../assets/icons/coin-bronce.svg");min-width:25px;height:25px;background-size:contain;background-repeat:no-repeat}.pf-process-coin>*{display:none}.pf-flat-coin-bronze{background-image:url("../assets/icons/coin-bronce.svg")}.pf-flat-coin-silver{background-image:url("../assets/icons/coin-silver.svg")}.pf-flat-coin-gold{background-image:url("../assets/icons/coin-gold.svg")}.pf-process-coin:hover>*{display:block}.pf-process-coin .pf-process-coin-select{position:relative;top:0px;left:0px;background-color:#222;padding:5px 5px 5px 5px;border:none;box-shadow:0 0 3px #111;font-size:0.8em}.pf-process-coin .pf-process-coin-select>*{white-space:nowrap;display:block;margin:8px}.pf-unterlines{text-decoration:underline}#pf-treasure-counter{position:absolute;left:20px;bottom:-10px;background:#eee;color:#111;border-radius:50%;width:20px;height:20px;z-index:2;font-size:20px;text-align:center;line-height:25px;transform:rotate(-30deg);font-weight:bolder}footer>*{margin:20px auto 20px auto;max-width:400px;text-align:center}@keyframes run{0%{background-position:0px 20px}50%{background-position:20px 30px}100%{background-position:0px 20px}}@keyframes run2{0%{background-position:320px 50px}50%{background-position:300px 40px}100%{background-position:320px 50px}}@keyframes run3{0%{background-position:500px 80px}50%{background-position:520px 70px}100%{background-position:500px 80px}}@keyframes ship{0%{left:-15%}100%{left:110%}}.pf-ad{margin-top:100px}.data-star-avatar{display:none;border-radius:50%;background-color:#333;background-size:cover;background-position:center;background-repeat:no-repeat;margin:0 10px 0 0;overflow:hidden;position:absolute;z-index:1}.pf-meta-star:hover .data-star-avatar{display:block}#pf-night-sky{position:absolute;top:0;left:0;width:100%;height:100px;margin-bottom:30px;pointer-events:none}#pf-night-sky>*{pointer-events:auto}@keyframes pf-star-flicker{0%{opacity:0.1}100%{opacity:0.9}}.pf-hidden-big{display:none}.pf-hidden-small{display:block}.pf-flag{flex-direction:column;margin-right:0}.pf-flag>*:first-child{width:100%;flex-direction:row;align-items:flex-end}.pf-flag>*:first-child .pf-filter-col{margin:0;display:flex;flex-direction:row}.pf-flag>*:first-child .pf-filter-col>*{margin:10px 10px}.pf-type-treasure .pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-type-treasure .pf-flag>*:first-child .pf-skelleton-img{margin-top:0;align-self:flex-start}@media only screen and (max-width: 800px){.pf-ship-list{width:100%;overflow:hidden;max-width:700px}.pf-hidden-big{display:block}.pf-hidden-small{display:none}.pf-ad{width:100vw;overflow:hidden}.pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-flag>*:first-child header{margin:50px 0}.pf-small-column{flex-direction:column}.pf-footer-wave{position:sticky;bottom:0}.pf-pirate-ogimage{border-radius:10px;background-color:#000;margin:50px 10px}}.pf-h-island-list{display:flex;flex-direction:row;justify-content:flex-start;margin:0 10px;overflow-x:scroll}.pf-h-island-list>*:hover{background-color:#333}.pf-h-island-list>*{margin:40px 10px;background-color:#222;min-width:400px;max-width:500px;padding:10px}.pf-h-island-list>* .pf-pirate-avatar{margin:-50px auto 0}.pf-h-island-list>* .pf-ship{text-align:center}.pf-outline-btn{border:2px solid #333;border-radius:50px;padding:10px 15px;margin:10px;display:inline-block;cursor:pointer;background-color:#222}.pf-outline-btn:hover{background-color:#333;color:#fff} /*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/docs/css/styles.css.map b/docs/css/styles.css.map index d64c160..3c25202 100644 --- a/docs/css/styles.css.map +++ b/docs/css/styles.css.map @@ -3,14 +3,16 @@ "file": "styles.css", "sources": [ "styles.scss", + "_sass/sponsors.scss", "_sass/bib.scss", "_sass/mastodon-feed.scss" ], "sourcesContent": [ - "@import \"bib.scss\";\n@import \"mastodon-feed.scss\";\n\n@font-face {\n font-family: 'Estonia';\n src: url('../assets/fonts/estonia-regular-webfont.woff2') format('woff2'),\n url('../assets/fonts/estonia-regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n$font-stack: 'Times New Roman', serif;\n$font-accent: 'Estonia', cursive;\n$water: #111 ;\n$life: #fff ;\n$primary-color: #333;\n\nh1{\n font-family: $font-accent;\n font-weight: normal;\n text-align: center;\n}\nh2{\n font-family: $font-accent;\n text-align: center;\n font-size: 2.4em;\n}\n.h4{\n font-size: 1.2rem;\n}\nh1.pf-title{\n margin: 30px 10px 0;\n font-size: 4em;\n line-height: 1em;\n}\n.pf-under-title{\n font-size: 0.8em;\n max-width: 500px;\n margin: 0 auto;\n}\n.pf-skelleton-img{\n margin-top: 100px;\n min-width: 400px;\n}\n.pf-hidden{\n display: none;\n}\nbody{\n font-family: $font-stack;\n letter-spacing: 0.1em;\n background-color: $water;\n color: $life;\n font-size: 1.3em;\n margin: 0;\n}\nmain{\n margin: 0px;\n}\na, .pf-clickable{\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n user-select: none;\n}\na:hover, .pf-active{\n color:#61d202;\n}\nimg{\n max-width: 100%;\n}\n.m-2{\n margin: 0 0 1em 1em;\n}\n.pf-filter-col{\n & > *{\n margin: 50px 10px;\n }\n}\n.pf-filter-col.pf-no-data #gf-sorting{\n display: none;\n}\n#gf-sorting{\n margin-top: 20px;\n}\n.pf-sticky-top{\n position: sticky;\n top: 10px;\n}\n.sable{\n cursor: url('../assets/saebel.png'), auto;\n}\n.pf-flag{\n margin: 0px 20px 100px 0;\n flex-direction: column;\n}\n.pf-flag > *:first-child{\n width: 400px;\n overflow: hidden;\n}\n.pf-ship{\n padding: 0px 0 0px 20px ;\n .h3{\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n font-size: 1.2em;\n }\n}\n.pf-pirate-ogimage{\n margin: 50px;\n}\n.pf-pirate-ogimage *{\n border-radius: 10px;\n background-color: #000;\n \n overflow: hidden;\n}\n.pf-timestamp{\n font-size: 0.6em;\n}\n.pf-inline-icon{\n height: 1em;\n}\n.pf-ship h3, .pf-ship .h3{\n font-family: $font-accent;\n font-size: 2rem;\n //line-height: 1rem;\n text-transform: uppercase;\n margin-bottom: 0.2em;\n font-weight: bold;\n}\n.pf-ship p{\n margin: 0.2em 0 0.2em;\n}\n.pf-ship-list{\n margin: 50px auto;\n max-width: 700px;\n}\n.pf-ship-list > *:last-child .pf-ship{\n border-bottom: none;\n}\n.pf-row{\n display: flex;\n flex-direction: row;\n}\n.pf-row-bottom{\n align-self: flex-end;\n}\n.pf-column{\n display: flex;\n flex-direction: column;\n}\n.pf-treasure{\n font-family: $font-accent;\n font-size: 3em;\n line-height: 0.8em;\n position: relative;\n}\n.pf-treasure-add{\n img{\n max-width: 25px;\n }\n}\n.pf-treasure-selected .pf-treasure-add{\n display: none;\n}\n\n#pf-treasure-stack{\n position: relative;\n width: 50px;\n}\n#pf-treasure-stack > *{\n position: absolute;\n counter-increment: my-sec-counter;\n bottom: calc(10* counter(my-sec-counter));\n width: 25px;\n}\n\n\n.text-center{\n text-align: center;\n}\n.pf-pirate-actions > *{\n text-align: center;\n margin: 20px 0;\n display: block;\n}\n.pf-treasure-remove{\n display: block;\n font-size: 0.8rem;\n}\n.pf-treasure-selected .pf-treasure-remove{\n img{\n max-width: 25px;\n }\n}\n.pf-type-index .pf-treasure-remove{\n display: none;\n}\n#gf-to-chest{\n position: fixed;\n z-index: 2;\n top: 15px;\n right: 15px;\n white-space: nowrap;\n}\n#gf-to-chest, #gf-to-list{\n font-size: 0.6em;\n}\n.pf-type-treasure #gf-to-chest{\n display: none;\n}\n.pf-type-index #gf-to-list{\n display: none;\n}\n.pf-owner-name{\n font-size: 0.9rem;\n}\n.pf-owner-spacer{\n margin: 0 10px;\n display: inline-block;\n}\n.pf-grow{\n flex-grow: 1;\n}\n.pf-meta{\n font-size: 1rem;\n justify-content: space-between;\n}\n.pf-meta-lang::before, \n.pf-meta-star::before, \n.pf-meta-license::before, \n.pf-meta-timeglass::before, \n.pf-coin-bronze::before, .pf-coin-silver::before, .pf-coin-gold::before{\n content: ' ';\n display: inline-block;\n margin-right: 10px;\n width: 1rem;\n height: 1rem;\n background-image: url('../assets/icons/brackets.svg');\n background-size: 1rem 1rem;\n}\n.pf-meta-star::before{\n background-image: url('../assets/icons/star.svg');\n}\n.pf-star-todo::before{\n background-image: url('../assets/icons/star-todo.svg');\n \n}\n.pf-star-todo{\n right: 30px;\n top: 70px;\n position: absolute;\n z-index: 4;\n color:#61d202;\n transform: scale(1);\n cursor: pointer;\n}\n.pf-star-todo:hover{\n transform: scale(1.5);\n}\ndialog::backdrop {\n background-color: rgba(0, 0, 0, 0.8);\n}\ndialog:modal {\n margin: auto 20px;\n}\n.pf-meta-license::before{\n background-image: url('../assets/icons/license.svg');\n}\n.pf-meta-timeglass::before{\n background-image: url('../assets/icons/timeglass.svg');\n}\n.pf-meta-timeglass.pf-is-new::before{\n background-image: url('../assets/icons/timeglass-new.svg');\n}\n.pf-is-new{\n color: #d1a805;\n font-size: 0.8em;\n}\n.pf-coin-bronze::before{\n background-image: url('../assets/coin-bronce.svg');\n}\n.pf-coin-silver::before{\n background-image: url('../assets/coin-silver.svg');\n}\n.pf-coin-gold::before{\n background-image: url('../assets/coin-stacked.svg');\n}\n.pf-inline-men > *{\n display: inline-block;\n margin: 0 15px 8px 0;\n font-size: .8em;\n}\n.pf-icon-telescope{\n height: 1em;\n width: 1em;\n background-image: url('../assets/icons/telescope.svg');\n background-repeat: no-repeat;\n background-size: contain;\n}\n.pf-openext{\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.pf-openext::after{\n content: ' ';\n display: inline-block;\n margin-left: 10px;\n width: 1rem;\n height: 1rem;\n background-size: 1rem 1rem;\n background-image: url('../assets/icons/openext.svg');\n}\n.pf-footer-wave, .pf-footer-wave::before, .pf-footer-wave::after{\n content: '.';\n bottom: 0;\n position: absolute;\n display: block;\n height: 100px;\n width: 100%;\n //transform: translate(0px, -50px);\n background-image: url('../assets/wave.svg');\n background-repeat: repeat-x;\n background-size: auto 60px;\n animation: linear infinite;\n animation-duration: 4s;\n}\n\n.pf-footer-wave::before{\n animation-duration: 5s;\n animation-name: run;\n}\n.pf-footer-wave::after{\n animation-duration: 6s;\n animation-name: run2;\n}\n.pf-footer-wave{\n position: relative;\n width: 100%;\n color: black;\n animation-name: run3;\n height: 170px;\n overflow-x: hidden;\n margin-top: 50px;\n}\n.pf-ship-sailing{\n position: absolute;\n display: block;\n height: 150px;\n width: 150px;\n background-image: url('../assets/ship.svg');\n background-repeat: no-repeat;\n background-size: auto 150px;\n animation: linear infinite;\n animation-duration: 50s;\n animation-name: ship;\n}\nhr.gf-seperator{\n height: 20px;\n border:none;\n position: relative;\n display: block;\n background-image: url('../assets/icons/selector.svg');\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 70% 7px;\n margin: 90px 0;\n}\n.pf-pirate-avatar{\n margin: 0 auto;\n position: relative;\n height: 75px;\n width: 75px;\n}\n.pf-pirate-name{\n text-align: center;\n}\n/*.pf-type-index .pf-pirate-avatar:not(.data-star-avatar)::after{\n position: absolute;\n top: -29px;\n left: -23px;\n content: '';\n background-image: url('../assets/icons/flag.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n z-index:-1;\n transform: rotate(180deg);\n transition: transform 250ms;\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}*/\n.pf-gold{\n position: absolute;\n left: -50px;\n top: 20px;\n}\n.pf-pirate-avatar::before, #pf-treasure-counter{\n position: absolute;\n bottom: 0;\n left: 0;\n content: '';\n background-image: url('../assets/pirate-border.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n}\n.pf-pirate-avatar img{\n border-radius: 50%;\n display: block;\n background-color: #333;\n}\n/*.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-cross{\n background-color: rgba(238, 238, 238, 1);\n background-image: url('../assets/icons/cross.svg');\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50%;\n\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\n.pf-nowrap{\n white-space: nowrap;\n}\n/*.pf-cross::after{\n content:' ';\n background-image: url('../assets/icons/cross.svg');\n background-size: contain;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\nul.pf-topics{\n list-style: none;\n list-style-position: inside;\n padding: 0;\n}\n.pf-topics li{\n display: inline-block;\n font-size: 0.6em;\n margin: 5px 10px 0 0;\n}\n.pf-fallback{\n display: none;\n}\n.pf-no-data > .pf-fallback {\n display: block;\n}\n\n.pf-remove-list{\n text-align: center;\n border-top: 1px solid #333;\n margin-top: 15px;\n padding-top: 5px;\n}\n\n.pf-treasure-selected .pf-topics, .pf-treasure-selected .pf-meta{\n display:none;\n}\n.pf-treasure-selected{\n opacity: 0.5;\n}\n.pf-process-coin{\n position: absolute;\n z-index: 1;\n bottom: -10px;\n left: -10px;\n //background-image: url('../assets/coin-bronce.svg');\n background-image: url('../assets/icons/coin-bronce.svg');\n min-width: 25px;\n height: 25px;\n background-size: contain;\n background-repeat: no-repeat;\n > *{\n display: none;\n }\n}\n.pf-flat-coin-bronze{\n background-image: url('../assets/icons/coin-bronce.svg');\n}\n.pf-flat-coin-silver{\n background-image: url('../assets/icons/coin-silver.svg');\n}\n.pf-flat-coin-gold{\n background-image: url('../assets/icons/coin-gold.svg');\n}\n.pf-process-coin:hover > *{\n display: block;\n}\n.pf-process-coin .pf-process-coin-select{\n position: relative;\n top: 0px;\n left: 0px;\n background-color: #222;\n padding: 5px 5px 5px 5px;\n border: none;\n box-shadow: 0 0 3px #111;\n font-size: 0.8em;\n}\n.pf-process-coin .pf-process-coin-select > *{\n white-space: nowrap;\n display: block;\n margin: 8px;\n}\n\n.pf-unterlines{\n text-decoration: underline;\n}\n\n#pf-treasure-counter{\n position:absolute;\n left: 20px;\n bottom: -10px;\n background: #eee;\n color: #111;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n z-index: 2;\n font-size: 20px;\n text-align: center;\n line-height: 25px;\n transform: rotate(-30deg);\n font-weight: bolder;\n}\n\nfooter > *{\n margin: 20px auto 20px auto;\n max-width: 400px;\n text-align: center;\n}\n\n\n\n@keyframes run {\n 0% {\n background-position: 0px 20px;\n }\n 50% {\n background-position: 20px 30px;\n }\n 100% {\n background-position: 0px 20px;\n }\n}\n@keyframes run2 {\n 0% {\n background-position: 320px 50px;\n }\n 50% {\n background-position: 300px 40px;\n }\n 100% {\n background-position: 320px 50px;\n }\n}\n@keyframes run3 {\n 0% {\n background-position: 500px 80px;\n }\n 50% {\n background-position: 520px 70px;\n }\n 100% {\n background-position: 500px 80px;\n }\n}\n\n@keyframes ship {\n 0% {\n left: -15%;\n }\n 100% {\n left: 110%;\n }\n}\n\n.data-star-avatar{\n display: none;\n border-radius: 50%;\n background-color: #333;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin: 0 10px 0 0;\n overflow: hidden;\n position: absolute;\n z-index: 1;\n}\n.pf-meta-star:hover .data-star-avatar{\n display: block;\n}\n#pf-night-sky{\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100px;\n margin-bottom: 30px;\n pointer-events:none;\n & > *{\n pointer-events: auto;\n }\n\n}\n@keyframes pf-star-flicker {\n 0% {\n opacity: 0.1;\n }\n 100% {\n opacity: 0.9;\n }\n}\n\n.pf-hidden-big{\n display: none;\n}\n.pf-hidden-small{\n display: block;\n}\n\n.pf-flag{\n flex-direction: column;\n margin-right: 0;\n}\n.pf-flag > *:first-child{\n width: 100%;\n flex-direction: row;\n align-items: flex-end;\n .pf-filter-col{\n margin: 0;\n display: flex;\n flex-direction: row;\n & > *{\n margin: 10px 10px;\n }\n }\n}\n.pf-type-treasure{\n .pf-flag > *:first-child{\n flex-direction: column;\n align-items: center;\n .pf-skelleton-img{\n margin-top: 0;\n align-self: flex-start;\n }\n }\n}\n@media only screen and (max-width: 800px) {\n .pf-ship-list{\n //margin: 0 10px;\n width: 100%;\n overflow: hidden;\n max-width: 700px;\n }\n .pf-hidden-big{\n display: block;\n }\n .pf-hidden-small{\n display: none;\n }\n .pf-ad{\n width: 100vw;\n overflow: hidden;\n }\n .pf-flag>*:first-child{\n flex-direction: column;\n align-items: center;\n header{\n margin: 50px 0;\n }\n }\n \n .pf-small-column{\n flex-direction: column;\n }\n\n .pf-footer-wave{\n position: sticky;\n bottom: 0;\n }\n .pf-pirate-ogimage{\n border-radius: 10px;\n background-color: #000;\n margin: 50px 10px;\n }\n\n}\n\n\n.pf-h-island-list{\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n margin: 0 10px;\n overflow-x: scroll;\n // flex-wrap: wrap;\n\n > *:hover{\n background-color: #333;\n }\n > *{\n margin: 40px 10px;\n background-color: #222;\n \n min-width: 400px;\n max-width: 500px;\n padding: 10px;\n .pf-pirate-avatar{\n margin: -50px auto 0;\n }\n .pf-ship{\n text-align: center;\n }\n }\n}\n\n\n\n.pf-outline-btn{\n border: 2px solid #333;\n border-radius: 50px;\n padding: 10px 15px;\n margin: 10px;\n display: inline-block;\n cursor: pointer;\n background-color: #222;\n &:hover{\n background-color: #333;\n color: #fff;\n }\n}", + "@import \"sponsors.scss\";\n@import \"bib.scss\";\n@import \"mastodon-feed.scss\";\n\n@font-face {\n font-family: 'Estonia';\n src: url('../assets/fonts/estonia-regular-webfont.woff2') format('woff2'),\n url('../assets/fonts/estonia-regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n$font-stack: 'Times New Roman', serif;\n$font-accent: 'Estonia', cursive;\n$water: #111 ;\n$life: #fff ;\n$primary-color: #333;\n\nh1{\n font-family: $font-accent;\n font-weight: normal;\n text-align: center;\n}\nh2{\n font-family: $font-accent;\n text-align: center;\n font-size: 2.4em;\n}\n.h4{\n font-size: 1.2rem;\n}\nh1.pf-title{\n margin: 30px 10px 0;\n font-size: 4em;\n line-height: 1em;\n}\n.pf-under-title{\n font-size: 0.8em;\n max-width: 500px;\n margin: 0 auto;\n}\n.pf-skelleton-img{\n margin-top: 100px;\n min-width: 400px;\n}\n.pf-hidden{\n display: none;\n}\n\nbody{\n font-family: $font-stack;\n letter-spacing: 0.1em;\n background-color: $water;\n color: $life;\n font-size: 1.3em;\n margin: 0;\n}\nmain, .no-margin{\n margin: 0px;\n}\na, .pf-clickable{\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n user-select: none;\n}\na:hover, .pf-active{\n color:#61d202;\n}\nimg{\n max-width: 100%;\n}\n.m-2{\n margin: 0 0 1em 1em;\n}\n.pf-filter-col{\n & > *{\n margin: 50px 10px;\n }\n}\n.pf-filter-col.pf-no-data #gf-sorting{\n display: none;\n}\n#gf-sorting{\n margin-top: 20px;\n}\n.pf-sticky-top{\n position: sticky;\n top: 10px;\n}\n.sable{\n cursor: url('../assets/saebel.png'), auto;\n}\n.pf-flag{\n margin: 0px 20px 100px 0;\n flex-direction: column;\n}\n.pf-flag > *:first-child{\n width: 400px;\n overflow: hidden;\n}\n.pf-ship{\n padding: 0px 0 0px 20px ;\n .h3{\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n font-size: 1.2em;\n }\n}\n.pf-pirate-ogimage{\n margin: 50px;\n}\n.pf-pirate-ogimage *{\n border-radius: 10px;\n background-color: #000;\n \n overflow: hidden;\n}\n.pf-timestamp{\n font-size: 0.6em;\n}\n.pf-inline-icon{\n height: 1em;\n}\n.pf-ship h3, .pf-ship .h3{\n font-family: $font-accent;\n font-size: 2rem;\n //line-height: 1rem;\n text-transform: uppercase;\n margin-bottom: 0.2em;\n font-weight: bold;\n}\n.pf-ship p{\n margin: 0.2em 0 0.2em;\n}\n.pf-ship-list{\n margin: 50px auto;\n max-width: 700px;\n}\n.pf-ship-list > *:last-child .pf-ship{\n border-bottom: none;\n}\n.pf-row{\n display: flex;\n flex-direction: row;\n}\n.pf-row-bottom{\n align-self: flex-end;\n}\n.pf-column{\n display: flex;\n flex-direction: column;\n}\n.pf-treasure{\n font-family: $font-accent;\n font-size: 3em;\n line-height: 0.8em;\n position: relative;\n}\n.pf-treasure-add{\n img{\n max-width: 25px;\n }\n}\n.pf-treasure-selected .pf-treasure-add{\n display: none;\n}\n\n#pf-treasure-stack{\n position: relative;\n width: 50px;\n}\n#pf-treasure-stack > *{\n position: absolute;\n counter-increment: my-sec-counter;\n bottom: calc(10* counter(my-sec-counter));\n width: 25px;\n}\n\n\n.text-center{\n text-align: center;\n}\n.pf-pirate-actions > *{\n text-align: center;\n margin: 20px 0;\n display: block;\n}\n.pf-treasure-remove{\n display: block;\n font-size: 0.8rem;\n}\n.pf-treasure-selected .pf-treasure-remove{\n img{\n max-width: 25px;\n }\n}\n.pf-type-index .pf-treasure-remove{\n display: none;\n}\n#gf-to-chest{\n position: fixed;\n z-index: 2;\n top: 15px;\n right: 15px;\n white-space: nowrap;\n}\n#gf-to-chest, #gf-to-list{\n font-size: 0.6em;\n}\n\n.pf-type-index #gf-to-list{\n display: none;\n}\n.pf-owner-name{\n font-size: 0.9rem;\n}\n.pf-owner-spacer{\n margin: 0 10px;\n display: inline-block;\n}\n.pf-grow{\n flex-grow: 1;\n}\n.pf-meta{\n font-size: 1rem;\n justify-content: space-between;\n}\n.pf-meta-lang::before, \n.pf-meta-star::before, \n.pf-meta-license::before, \n.pf-meta-timeglass::before, \n.pf-coin-bronze::before, .pf-coin-silver::before, .pf-coin-gold::before{\n content: ' ';\n display: inline-block;\n margin-right: 10px;\n width: 1rem;\n height: 1rem;\n background-image: url('../assets/icons/brackets.svg');\n background-size: 1rem 1rem;\n}\n.pf-meta-star::before{\n background-image: url('../assets/icons/star.svg');\n}\n.pf-star-todo::before{\n background-image: url('../assets/icons/star-todo.svg');\n \n}\n.pf-star-todo{\n right: 30px;\n top: 70px;\n position: absolute;\n z-index: 4;\n color:#61d202;\n transform: scale(1);\n cursor: pointer;\n}\n.pf-star-todo:hover{\n transform: scale(1.5);\n}\ndialog::backdrop {\n background-color: rgba(0, 0, 0, 0.8);\n}\ndialog:modal {\n padding: 50px;\n}\n.pf-meta-license::before{\n background-image: url('../assets/icons/license.svg');\n}\n.pf-meta-timeglass::before{\n background-image: url('../assets/icons/timeglass.svg');\n}\n.pf-meta-timeglass.pf-is-new::before{\n background-image: url('../assets/icons/timeglass-new.svg');\n}\n.pf-is-new{\n color: #d1a805;\n font-size: 0.8em;\n}\n.pf-coin-bronze::before{\n background-image: url('../assets/coin-bronce.svg');\n}\n.pf-coin-silver::before{\n background-image: url('../assets/coin-silver.svg');\n}\n.pf-coin-gold::before{\n background-image: url('../assets/coin-stacked.svg');\n}\n.pf-inline-men > *{\n display: inline-block;\n margin: 0 15px 8px 0;\n font-size: .8em;\n}\n.pf-icon-telescope{\n height: 1em;\n width: 1em;\n background-image: url('../assets/icons/telescope.svg');\n background-repeat: no-repeat;\n background-size: contain;\n}\n.pf-openext{\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.pf-openext::after{\n content: ' ';\n display: inline-block;\n margin-left: 10px;\n width: 1rem;\n height: 1rem;\n background-size: 1rem 1rem;\n background-image: url('../assets/icons/openext.svg');\n}\n.pf-openext.pf-github::after{\n background-image: url('../assets/icons/github-mark-white.svg');\n}\n.pf-openext.pf-coin::after{\n background-image: url('../assets/icons/coin-bronce.svg');\n}\n.pf-footer-wave, .pf-footer-wave::before, .pf-footer-wave::after{\n content: '.';\n bottom: 0;\n position: absolute;\n display: block;\n height: 100px;\n width: 100%;\n //transform: translate(0px, -50px);\n background-image: url('../assets/wave.svg');\n background-repeat: repeat-x;\n background-size: auto 60px;\n animation: linear infinite;\n animation-duration: 4s;\n}\n\n.pf-footer-wave::before{\n animation-duration: 5s;\n animation-name: run;\n}\n.pf-footer-wave::after{\n animation-duration: 6s;\n animation-name: run2;\n}\n.pf-footer-wave{\n position: relative;\n width: 100%;\n color: black;\n animation-name: run3;\n height: 170px;\n overflow-x: hidden;\n margin-top: 50px;\n}\n.margin-big{\n margin: 50px;\n}\n.margin-v-big{\n margin: 50px 0;\n}\n.pf-ship-sailing{\n position: absolute;\n display: block;\n height: 150px;\n width: 150px;\n background-image: url('../assets/ship.svg');\n background-repeat: no-repeat;\n background-size: auto 150px;\n animation: linear infinite;\n animation-duration: 50s;\n animation-name: ship;\n}\nhr.gf-seperator{\n height: 20px;\n border:none;\n position: relative;\n display: block;\n background-image: url('../assets/icons/selector.svg');\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 70% 7px;\n margin: 90px 0;\n}\n.pf-pirate-avatar{\n margin: 0 auto;\n position: relative;\n height: 75px;\n width: 75px;\n}\n.pf-pirate-name{\n text-align: center;\n}\n/*.pf-type-index .pf-pirate-avatar:not(.data-star-avatar)::after{\n position: absolute;\n top: -29px;\n left: -23px;\n content: '';\n background-image: url('../assets/icons/flag.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n z-index:-1;\n transform: rotate(180deg);\n transition: transform 250ms;\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}*/\n.pf-gold{\n position: absolute;\n left: -50px;\n top: 20px;\n}\n.pf-pirate-avatar::before, #pf-treasure-counter{\n position: absolute;\n bottom: 0;\n left: 0;\n content: '';\n background-image: url('../assets/pirate-border.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n}\n.pf-pirate-avatar img{\n border-radius: 50%;\n display: block;\n background-color: #333;\n}\n/*.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-cross{\n background-color: rgba(238, 238, 238, 1);\n background-image: url('../assets/icons/cross.svg');\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50%;\n\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\n.pf-nowrap{\n white-space: nowrap;\n}\n/*.pf-cross::after{\n content:' ';\n background-image: url('../assets/icons/cross.svg');\n background-size: contain;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\nul.pf-topics{\n list-style: none;\n list-style-position: inside;\n padding: 0;\n}\n.pf-topics li{\n display: inline-block;\n font-size: 0.6em;\n margin: 5px 10px 0 0;\n}\n.pf-fallback{\n display: none;\n}\n.pf-no-data > .pf-fallback {\n display: block;\n}\n\n.pf-remove-list{\n text-align: center;\n border-top: 1px solid #333;\n margin-top: 15px;\n padding-top: 5px;\n}\n\n.pf-treasure-selected .pf-topics, .pf-treasure-selected .pf-meta{\n display:none;\n}\n.pf-treasure-selected{\n opacity: 0.5;\n}\n.pf-process-coin{\n position: absolute;\n z-index: 1;\n bottom: -10px;\n left: -10px;\n //background-image: url('../assets/coin-bronce.svg');\n background-image: url('../assets/icons/coin-bronce.svg');\n min-width: 25px;\n height: 25px;\n background-size: contain;\n background-repeat: no-repeat;\n > *{\n display: none;\n }\n}\n.pf-flat-coin-bronze{\n background-image: url('../assets/icons/coin-bronce.svg');\n}\n.pf-flat-coin-silver{\n background-image: url('../assets/icons/coin-silver.svg');\n}\n.pf-flat-coin-gold{\n background-image: url('../assets/icons/coin-gold.svg');\n}\n.pf-process-coin:hover > *{\n display: block;\n}\n.pf-process-coin .pf-process-coin-select{\n position: relative;\n top: 0px;\n left: 0px;\n background-color: #222;\n padding: 5px 5px 5px 5px;\n border: none;\n box-shadow: 0 0 3px #111;\n font-size: 0.8em;\n}\n.pf-process-coin .pf-process-coin-select > *{\n white-space: nowrap;\n display: block;\n margin: 8px;\n}\n\n.pf-unterlines{\n text-decoration: underline;\n}\n\n#pf-treasure-counter{\n position:absolute;\n left: 20px;\n bottom: -10px;\n background: #eee;\n color: #111;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n z-index: 2;\n font-size: 20px;\n text-align: center;\n line-height: 25px;\n transform: rotate(-30deg);\n font-weight: bolder;\n}\n\nfooter > *{\n margin: 20px auto 20px auto;\n max-width: 400px;\n text-align: center;\n}\n\n\n\n@keyframes run {\n 0% {\n background-position: 0px 20px;\n }\n 50% {\n background-position: 20px 30px;\n }\n 100% {\n background-position: 0px 20px;\n }\n}\n@keyframes run2 {\n 0% {\n background-position: 320px 50px;\n }\n 50% {\n background-position: 300px 40px;\n }\n 100% {\n background-position: 320px 50px;\n }\n}\n@keyframes run3 {\n 0% {\n background-position: 500px 80px;\n }\n 50% {\n background-position: 520px 70px;\n }\n 100% {\n background-position: 500px 80px;\n }\n}\n\n@keyframes ship {\n 0% {\n left: -15%;\n }\n 100% {\n left: 110%;\n }\n}\n\n.pf-ad{\n margin-top: 100px\n}\n\n.data-star-avatar{\n display: none;\n border-radius: 50%;\n background-color: #333;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin: 0 10px 0 0;\n overflow: hidden;\n position: absolute;\n z-index: 1;\n}\n.pf-meta-star:hover .data-star-avatar{\n display: block;\n}\n#pf-night-sky{\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100px;\n margin-bottom: 30px;\n pointer-events:none;\n & > *{\n pointer-events: auto;\n }\n\n}\n@keyframes pf-star-flicker {\n 0% {\n opacity: 0.1;\n }\n 100% {\n opacity: 0.9;\n }\n}\n\n.pf-hidden-big{\n display: none;\n}\n.pf-hidden-small{\n display: block;\n}\n\n.pf-flag{\n flex-direction: column;\n margin-right: 0;\n}\n.pf-flag > *:first-child{\n width: 100%;\n flex-direction: row;\n align-items: flex-end;\n .pf-filter-col{\n margin: 0;\n display: flex;\n flex-direction: row;\n & > *{\n margin: 10px 10px;\n }\n }\n}\n.pf-type-treasure{\n .pf-flag > *:first-child{\n flex-direction: column;\n align-items: center;\n .pf-skelleton-img{\n margin-top: 0;\n align-self: flex-start;\n }\n }\n}\n@media only screen and (max-width: 800px) {\n .pf-ship-list{\n //margin: 0 10px;\n width: 100%;\n overflow: hidden;\n max-width: 700px;\n }\n .pf-hidden-big{\n display: block;\n }\n .pf-hidden-small{\n display: none;\n }\n .pf-ad{\n width: 100vw;\n overflow: hidden;\n }\n .pf-flag>*:first-child{\n flex-direction: column;\n align-items: center;\n header{\n margin: 50px 0;\n }\n }\n \n .pf-small-column{\n flex-direction: column;\n }\n\n .pf-footer-wave{\n position: sticky;\n bottom: 0;\n }\n .pf-pirate-ogimage{\n border-radius: 10px;\n background-color: #000;\n margin: 50px 10px;\n }\n\n}\n\n\n.pf-h-island-list{\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n margin: 0 10px;\n overflow-x: scroll;\n // flex-wrap: wrap;\n\n > *:hover{\n background-color: #333;\n }\n > *{\n margin: 40px 10px;\n background-color: #222;\n \n min-width: 400px;\n max-width: 500px;\n padding: 10px;\n .pf-pirate-avatar{\n margin: -50px auto 0;\n }\n .pf-ship{\n text-align: center;\n }\n }\n}\n\n\n\n.pf-outline-btn{\n border: 2px solid #333;\n border-radius: 50px;\n padding: 10px 15px;\n margin: 10px;\n display: inline-block;\n cursor: pointer;\n background-color: #222;\n &:hover{\n background-color: #333;\n color: #fff;\n }\n}", + "\n.pf-sponsors {\n background-color: #222;\n padding: 20px;\n margin: 80px 0;\n text-align: center;\n color: #444;\n}\n.pf-sponsor {\n margin: 10px;\n display: inline-block;\n text-align: center;\n :hover {\n transform: scale(1.1);\n }\n &-gold {\n width: 100px;\n height: 100px;\n border-radius: 50%;\n padding: 15px;\n overflow: hidden;\n img{\n object-fit: cover;\n overflow: hidden;\n max-width: 100px;\n max-height: 100px;\n }\n }\n &-dark {\n background-color: #000;\n color: #fff;\n }\n &-dark:hover {\n background-color: #111;\n }\n &-light {\n background-color: #fff;\n color: #000;\n }\n &-light:hover {\n background-color: #eee;\n }\n\n .pf-sponsor-text {\n font-size: 0.8em;\n margin-top: 30px;\n display: inline-block;\n }\n\n}\n.pf-sponsor-gold-header{\n color: yellow;\n}", ".bibliography{\n margin: 50px auto;\n max-width: 700px;\n list-style: none;\n h2{\n font-size: 1.5em;\n margin-bottom: 0;\n }\n .pf-scholar-abstract{\n margin: 20px;\n padding: 0;\n font-size: 0.9em;\n font-style: italic;\n display: none;\n }\n}", "\n.scroll-wrapper{\n \n}\nbody{\n //left: 300px;\n}\n\n#mt-body{\n \n width: fit-content;\n overflow: scroll;\n \n width: 100%;\n top: 0;\n bottom: 0;\n height: 350px;\n z-index: 1;\n transition: left .2s ease-in-out;\n display: flex;\n \n flex-direction: row;\n border-radius: 10px;\n\n a{\n text-decoration: underline;\n }\n\n article{\n background-color: rgba(50,50,50,7);\n border-radius: 10px;\n padding: 10px;\n margin: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 90vw;\n text-align: center;\n aspect-ratio: 9/9;\n }\n .mt-avatar, .mt-user{\n display: none;\n }\n .img-ratio14_7{\n //aspect-ratio: 16/9;\n overflow: hidden;\n }\n .toot-date{\n font-size: 0.8em;\n color: rgba(255,255,255,0.5);\n text-decoration: none;\n }\n .toot-media{\n aspect-ratio: 16/9;\n }\n}\n.pf-feed{\n position: relative;\n margin: 150px 0;\n}\n.pf-feed-line{\n position: absolute;\n left: 30px;\n top: -50px;\n }\n.pf-feed-active{\n #mt-body{\n left: 0;\n }\n .pf-main{\n position: relative;\n //left: 350px;\n }\n overflow-x: hidden;\n width: 100%;\n\n}\n" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/docs/docs/404.html b/docs/docs/404.html new file mode 100644 index 0000000..8bc51d7 --- /dev/null +++ b/docs/docs/404.html @@ -0,0 +1,170 @@ + + + + + + + + + The Pirate Forest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + The Pirate Forest + +
+ + +
+ +
+
+
+

+

+ +

+
+
+ +
+
+ + + + + + + +
+ +
+
+
+ Thanks to +

+ Gold Sponsor +

+ +
+
+ +
+
+ + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/docs/docs/CNAME b/docs/docs/CNAME new file mode 100644 index 0000000..7ba718a --- /dev/null +++ b/docs/docs/CNAME @@ -0,0 +1 @@ +thepirateforest.org \ No newline at end of file diff --git a/docs/docs/assets/Export.svg b/docs/docs/assets/Export.svg new file mode 100644 index 0000000..540a1b6 --- /dev/null +++ b/docs/docs/assets/Export.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/docs/assets/app.js b/docs/docs/assets/app.js new file mode 100644 index 0000000..05b2e50 --- /dev/null +++ b/docs/docs/assets/app.js @@ -0,0 +1,618 @@ +var pageType; +var data = []; +var treasureStr, treasure, treasureCounter; + +function saveTreasure(){ + localStorage.setItem('treasure', JSON.stringify(treasure)); +} +function toggleTreasure(id){ + if(treasure[id]) throwAway(id); + else collect(id); + + updateAddTreasureBtn(); +} +function collect(id){ + treasure[id] = { + time: (new Date()).getTime(), + flag: [], + processId: 'toDo' + }; + updateIsland(); + saveTreasure(); +} +function throwAway(id){ + delete treasure[id]; + updateIsland(); + saveTreasure(); +} + +function updateAddTreasureBtn(){ + var btn = document.getElementById('pf-addTreasureBtn'); + if(!btn) return; + console.log(btn.dataset.pirateId); + btn.textContent = treasure[btn.dataset.pirateId] ? 'Remove from My Treasure Chest' : 'Add to My Treasure Chest'; +} + +function updateIsland(){ + for (element of document.getElementsByClassName('pf-pirate')) { + + var pId = element.dataset.pirateId; + + if(treasure[pId] && pageType=='default') element.classList.add('pf-treasure-selected') + else element.classList.remove('pf-treasure-selected') + } + + var stackElem = document.getElementById('pf-treasure-stack'); + if(!stackElem) return; + + stackElem.innerHTML = ''; + treasureCounter = 0; + for(var i in treasure){ + var img = document.createElement('img') + img.src = '/assets/coin-stacked.svg'; + img.style.bottom = (treasureCounter*5) + 'px'; + img.style.left = (Math.random() * 8 - 4) + 'px'; + img.style.zIndex = treasureCounter; + stackElem.appendChild(img); + treasureCounter ++; + } + document.getElementById('pf-treasure-counter').innerText = treasureCounter +} +function getTreasure(){ + treasureStr = localStorage.getItem('treasure'); + treasure = treasureStr ? JSON.parse(treasureStr) : {}; + + updateIsland(); +} + +getTreasure(); + +function getSeperator(){ + var seperator = document.createElement('hr'); + seperator.classList.add('gf-seperator'); + return seperator; +} + +function buildPirate(dataset){ + var wrapper = document.createElement('div'); + wrapper.classList.add('pf-row','pf-pirate'); + if(treasure[dataset.pirate_id] && pageType == 'default') wrapper.classList.add('pf-treasure-selected'); + + wrapper.setAttribute('data-pirate-id', dataset.pirate_id) + + wrapper.append(buildAvatar(dataset)); + + wrapper.append(buildBody(dataset)); + + + return wrapper; +} +var tags = { + 'remote-sensing': ['remote-sensing', 'las', 'lidar', 'point-cloud', 'laz', 'laser', 'laser-scanning'], + 'forest-inventory': ['forest-inventory', 'trees', 'tree'], + 'climate-change': ['climate-change', 'biomass', 'carbon', 'emissions', 'climatechange', 'biodiversity'], + 'urban-forestry': ['urban-planning', 'urban-forestry', 'urban'] +} +var blackList = ['forestry', 'forstwirtschaft', 'django-rest-framework', 'r-package', 'forest'] +function filterTopics(dataset){ + var resultList = []; + for(var i = 0; i < dataset.topics.length; i++){ + if(dataset.language && dataset.language.toLowerCase() == dataset.topics[i].toLowerCase()) continue; + if(blackList.includes(dataset.topics[i])) continue; + resultList.push(dataset.topics[i]); + } + return resultList; +} + +function buildBody(dataset){ + var wrapper = document.createElement('div'); + wrapper.classList.add('pf-ship'); + + wrapper.appendChild(buildRepoLink(dataset)) + + var desc = document.createElement('p'); + desc.innerText = dataset.description; + wrapper.append(desc); + + var topics = document.createElement('ul'); + topics.classList.add('pf-topics'); + for(var topic of filterTopics(dataset)){ + var topicElem = document.createElement('li'); + topicElem.innerText = topic; + topics.append(topicElem); + } + wrapper.append(topics); + + var metaWrapper = document.createElement('div'); + metaWrapper.classList.add('pf-row', 'pf-meta'); + wrapper.append(metaWrapper); + + var metaStarWrapper = document.createElement('div'); + metaStarWrapper.classList.add('pf-meta-star'); + metaStarWrapper.innerText = dataset.stargazers_count; + metaWrapper.appendChild(metaStarWrapper); + + if(dataset.language){ + var metaLangWrapper = document.createElement('div'); + metaLangWrapper.classList.add('pf-meta-lang'); + metaLangWrapper.innerText = dataset.language; + metaWrapper.appendChild(metaLangWrapper); + } + if(dataset.license_name){ + var metaLicenseWrapper = document.createElement('div'); + metaLicenseWrapper.classList.add('pf-meta-license'); + metaLicenseWrapper.innerText = dataset.license_name; + metaWrapper.appendChild(metaLicenseWrapper); + } + + return wrapper; +} + +function buildRepoLink(dataset){ + var wrapper = document.createElement('p'); + + var ownerSpan = document.createElement('span'); + ownerSpan.classList.add('pf-owner-name'); + ownerSpan.innerText = dataset.owner_login; + wrapper.appendChild(ownerSpan); + + var ownerSpacerSpan = document.createElement('span'); + ownerSpacerSpan.classList.add('pf-owner-spacer'); + ownerSpacerSpan.innerText = '/'; + wrapper.appendChild(ownerSpacerSpan); + + var repoLink = document.createElement('a'); + repoLink.href = dataset.html_url; + repoLink.target = 'blank'; + wrapper.appendChild(repoLink); + + var repoLinkSpan = document.createElement('span'); + repoLinkSpan.classList.add('h3', 'pf-openext'); + repoLinkSpan.innerText = dataset.name; + repoLink.appendChild(repoLinkSpan); + + return wrapper; +} +var selections = [ + { + id: 'toDo', + title: 'ToDo', + icon: 'pf-coin-bronze' + }, + { + id: 'inProcess', + title: 'Checking out', + icon: 'pf-coin-silver' + }, + { + id: 'done', + title: 'Approved', + icon: 'pf-coin-gold' + } +] + +function setCoin(data, dataset){ + var pirateId = dataset.pirate_id; + + treasure[pirateId].processId = data.id + + + updateIsland(); + saveTreasure(); + createList('pf-ship-list') +} +var tagFilters = []; +function updateTagFilterMen(){ + + var parent = document.getElementById('pf-tag-men'); + parent.innerHTML = '' + + for(var key in tags){ + var selectionLink = document.createElement('a'); + if(tagFilters.includes(key)) selectionLink.classList.add('pf-active'); + selectionLink.innerText = key; + (function () { + var id = key; + selectionLink.addEventListener('click', function(){ + addTagFilter(id); + }) + }()); + + parent.appendChild(selectionLink); + } +} +function addTagFilter(key){ + + var pos = tagFilters.indexOf(key) + if(pos === -1){ + tagFilters = []; + tagFilters.push(key); + }else tagFilters.splice(pos, 1) + + createList('pf-ship-list') + updateTagFilterMen(); +} +function filterByTags(data){ + var whiteList = []; + for(var i of tagFilters){ + whiteList = whiteList.concat(tags[i]) + } + + var filtered = data.filter(function(elem){ + return elem.topics.some(r=> whiteList.includes(r)) + + }); + return filtered; +} + +var selectedProcess = null +function updateProcessMen(){ + var parent = document.getElementById('pf-process-men'); + parent.innerHTML = '' + for(var select of selections){ + var selectionLink = document.createElement('a'); + selectionLink.classList.add(select.icon); + if(select.id === selectedProcess) selectionLink.classList.add('pf-active'); + selectionLink.innerText = select.title; + (function () { + var id = select.id; + selectionLink.addEventListener('click', function(){ + filterProcess(id); + }) + }()); + + parent.appendChild(selectionLink); + } +} +function filterProcess(type){ + if(selectedProcess === type) selectedProcess = null; + else selectedProcess = type; + createList('pf-ship-list') + updateProcessMen(); +} +function filterByProcess(data){ + var filtered = data.filter(function(elem){ + return treasure[elem.pirate_id] && treasure[elem.pirate_id].processId === selectedProcess; + }); + return filtered; +} +function getCoinClass(pirateId){ + if(!treasure[pirateId]) return null; + + if(treasure[pirateId].processId === 'done') + return 'pf-flat-coin-gold'; + else if (treasure[pirateId].processId === 'inProcess') + return 'pf-flat-coin-silver'; + else + return 'pf-flat-coin-bronze'; +} +function buildCoin(dataset){ + var coinWrapper = document.createElement('div'); + + + //var coinSelectWrapper = document.createElement('div'); + + if(treasure[dataset.pirate_id] && pageType == 'myTreasure'){ + coinWrapper.classList.add('pf-process-coin', getCoinClass(dataset.pirate_id)); + var coinSelect = document.createElement('div'); + coinSelect.classList.add('pf-process-coin-select', ); + for(var i=0; i< selections.length; i++){ + if(treasure[dataset.pirate_id] && treasure[dataset.pirate_id].processId === selections[i].id) continue; + + var coinOption= document.createElement('a'); + (function () { + var data = selections[i] + var parentData = dataset; + coinOption.addEventListener('click', function(){setCoin(data, parentData)}, false) + }()); + coinOption.classList.add(selections[i].icon); + coinOption.innerText = selections[i].title; + coinSelect.appendChild(coinOption); + } + + var coinOption= document.createElement('a'); + coinOption.classList.add('pf-remove-list'); + (function () { + var data = selections[i] + var parentData = dataset; + coinOption.addEventListener('click', function(){ + throwAway(parentData.pirate_id) + createList('pf-ship-list'); + }, false) + }()); + coinOption.innerText = 'remove'; + coinSelect.appendChild(coinOption); + + coinWrapper.appendChild(coinSelect); + }else if(treasure[dataset.pirate_id] && pageType == 'default'){ + coinWrapper.classList.add('pf-process-coin', getCoinClass(dataset.pirate_id)); + /*coinWrapper.addEventListener('click', function(){ + collect(dataset.pirate_id); + createList('pf-ship-list'); + }, false)*/ + }else if(!treasure[dataset.pirate_id] && pageType == 'default'){ + coinWrapper.classList.add('pf-cross', 'pf-clickable'); + coinWrapper.addEventListener('click', function(){ + collect(dataset.pirate_id) + }, false) + } + + return coinWrapper; +} + +function buildAvatar(dataset){ + var wrapper = document.createElement('div'); + + /*var ownerLink = document.createElement('a'); + ownerLink.href = dataset.owner_html_url; + ownerLink.target = 'blank'; + wrapper.appendChild(ownerLink);*/ + + var ownerWrapper = document.createElement('div'); + ownerWrapper.classList.add('pf-pirate-avatar'); + + ownerWrapper.appendChild(buildCoin(dataset)); + + wrapper.appendChild(ownerWrapper); + + var ownerImg = document.createElement('img'); + ownerImg.src = dataset.owner_avatar_url; + ownerImg.alt = dataset.owner_login; + ownerImg.title = dataset.owner_login; + ownerWrapper.appendChild(ownerImg); + + var actionsWrapper = document.createElement('div'); + actionsWrapper.classList.add('pf-pirate-actions') + + var removeLink = document.createElement('a'); + removeLink.classList.add('pf-treasure-remove'); + removeLink.innerText = 'remove'; + removeLink.addEventListener('click', function(){ + throwAway(dataset.pirate_id); + createList('pf-ship-list'); + }); + + + /*var addLink = document.createElement('a'); + addLink.classList.add('pf-treasure-add'); + + var coinImg = document.createElement('img'); + coinImg.src = './assets/coin.svg'; + coinImg.alt = 'Add'; + addLink.appendChild(coinImg); + + addLink.alt = dataset.owner_login; + addLink.addEventListener('click', function(){ + collect(dataset.pirate_id); + createList('pf-ship-list'); + }); + + if(treasure[dataset.pirate_id]){ + console.log('remove'); + actionsWrapper.appendChild(removeLink); + }else{ + actionsWrapper.appendChild(addLink); + }*/ + + wrapper.appendChild(actionsWrapper); + + return wrapper; +} + +function createList(id, showSavedOnly){ + var saved; + showSavedOnly = pageType == 'myTreasure' ? true : false; + + + if(showSavedOnly){ + saved = data.filter(function (elem){ + return treasure[elem.pirate_id] + }) + saved = sortPirates(saved); + if(selectedProcess) saved = filterByProcess(saved); + }else{ + saved = data; + if(tagFilters.length) saved = filterByTags(saved); + + saved = sortPirates(saved); + } + + var chest = document.getElementById(id); + chest.innerHTML = ''; + + var filter = document.getElementById('pf-filter') + if(filter) + if(!saved.length){ + chest.parentNode.classList.add('pf-no-data') + filter.classList.add('pf-no-data') + return ; + }else{ + chest.parentNode.classList.remove('pf-no-data') + filter.classList.remove('pf-no-data') + } + + for(var i=0; i response.json()) + .then(extData => { + createStars(sky, extData); + }); + +} + + +function starsSky(){ + const sky = document.querySelector("#pf-night-sky"); + if(!sky) return; + + owner = sky.dataset.owner; + repo = sky.dataset.repo; + + if(owner && repo) + getStargazers(sky, owner, repo); + +} +async function getFileFromUrl(url, name, defaultType = 'image/jpeg'){ + try{ + const response = await fetch(url); + const data = await response.blob(); + return new File([data], name, { + type: data.type || defaultType, + }); + }catch(e){ + console.log(e); + return null; + } +} +async function setShareLink(){ + + /*ogImage = document.querySelector('meta[property="og:image"]').content; + if(ogImage) { + file = await getFileFromUrl(ogImage, 'og-image.jpg') + }*/ + + if (!navigator.canShare) { + document.getElementById('pf-share').classList.add('pf-hidden'); + return; + } + + var description = document.querySelector('meta[name="description"]').content; + console.log('description', description); + + const shareData = { + title: document.title, + text: '🏴‍☠️ Discovered treasure of #OpenSource #Forestry #Software 🏴‍☠️ \n\n' + description + '\n\n', + url: window.location.href, + }; + + if(false && file && navigator.canShare({ files: [file] })){ + shareData.files = [file]; + } + + if (navigator.canShare(shareData)) { + const btn = document.querySelector("#pf-share"); + + // Share must be triggered by "user activation" + btn.addEventListener("click", async () => { + try { + await navigator.share(shareData); + } catch (err) { + console.log(err); + } + }); + } +} + +function toggleFeed(){ + const body = document.getElementsByTagName('html')[0]; + if(body.classList.contains('pf-feed-active')){ + body.classList.remove('pf-feed-active'); + }else{ + body.classList.add('pf-feed-active'); + } +} + +function setStarAd(){ + const openDialogBtn = document.getElementById('pf-open-dialog'); + if(!openDialogBtn) return; + document.getElementById('pf-star-dialog').addEventListener('click', function(){ + document.getElementById('pf-star-dialog').close(); + }); + openDialogBtn.addEventListener('click', function(){ + document.getElementById('pf-star-dialog').showModal(); + }); +} +function initData(){ + starsSky(); + setShareLink(); + setStarAd(); + + updateAddTreasureBtn(); + + const toggleFeedBtn = document.getElementById("pf-toggle-feed"); + if(toggleFeedBtn){ + toggleFeedBtn.addEventListener("click", toggleFeed); + } + + const backDrop = document.getElementById("pf-backdrop"); + if(backDrop){ + backDrop.addEventListener("click", toggleFeed); + } + + fetch('/assets/repositories.json') + .then(response => response.json()) + .then(extData => { + data = extData; + sortPirates(data); + if(pageType == 'myTreasure') createList('pf-ship-list'); + //else if(pageType == 'default') updateTagFilterMen(); + }); +} + +if (document.readyState === "complete" || document.readyState === "interactive") { + localStorage.setItem('last_visit', (new Date()).getTime()+ (60*60*1000)); + setTimeout(initData, 1); +} else { + document.addEventListener("DOMContentLoaded", initData); +} \ No newline at end of file diff --git a/docs/docs/assets/bg.svg b/docs/docs/assets/bg.svg new file mode 100644 index 0000000..203af9f --- /dev/null +++ b/docs/docs/assets/bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/docs/assets/birdy.svg b/docs/docs/assets/birdy.svg new file mode 100644 index 0000000..851590c --- /dev/null +++ b/docs/docs/assets/birdy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/docs/assets/cest.svg b/docs/docs/assets/cest.svg new file mode 100644 index 0000000..ef4a2d7 --- /dev/null +++ b/docs/docs/assets/cest.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/docs/assets/coin-bronce.svg b/docs/docs/assets/coin-bronce.svg new file mode 100644 index 0000000..9b78784 --- /dev/null +++ b/docs/docs/assets/coin-bronce.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/coin-silver.svg b/docs/docs/assets/coin-silver.svg new file mode 100644 index 0000000..54ab3e6 --- /dev/null +++ b/docs/docs/assets/coin-silver.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/coin-stacked.svg b/docs/docs/assets/coin-stacked.svg new file mode 100644 index 0000000..3324a13 --- /dev/null +++ b/docs/docs/assets/coin-stacked.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/coin.svg b/docs/docs/assets/coin.svg new file mode 100644 index 0000000..3b343d9 --- /dev/null +++ b/docs/docs/assets/coin.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/assets/fonts/estonia-regular-webfont.woff b/docs/docs/assets/fonts/estonia-regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..66672535678afe1ee6144aedb6910c4cfaf5f1ff GIT binary patch literal 86688 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 A6951J literal 0 HcmV?d00001 diff --git a/docs/docs/assets/fonts/estonia-regular-webfont.woff2 b/docs/docs/assets/fonts/estonia-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c735a1063dc7e199849693e8dad908e92c8c4864 GIT binary patch literal 65684 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 + + + + + + + diff --git a/docs/docs/assets/icons/coin-bronce.svg b/docs/docs/assets/icons/coin-bronce.svg new file mode 100644 index 0000000..a7205b4 --- /dev/null +++ b/docs/docs/assets/icons/coin-bronce.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/coin-gold.svg b/docs/docs/assets/icons/coin-gold.svg new file mode 100644 index 0000000..0df10b9 --- /dev/null +++ b/docs/docs/assets/icons/coin-gold.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/coin-silver.svg b/docs/docs/assets/icons/coin-silver.svg new file mode 100644 index 0000000..51bd052 --- /dev/null +++ b/docs/docs/assets/icons/coin-silver.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/docs/assets/icons/cross.svg b/docs/docs/assets/icons/cross.svg new file mode 100644 index 0000000..b477795 --- /dev/null +++ b/docs/docs/assets/icons/cross.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/favicon/android-icon-192x192.png b/docs/docs/assets/icons/favicon/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..159506e922fed67ac113d1429d9dd12c489b9430 GIT binary patch literal 13156 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 z zos*4p|Dad!hJPL!Dg*-^ERK9oTlFql1+vxVZHJey`)xhNT@P!V!wXZx8I z%R<7=wSx`dF$ExV#vl_%nOCN3&FQ{R=cIB*MACYABdqXDYY%)SoFGz1$?hz#8-d0RSAR^GW? z=sVQ@B}{V`sT|bqsGwyh0)(yO;ZoH1&VeD~`#8BDsL&`VC{R~e(u4p95}yhg4B`dl z7eX>r0t=RcuxtejTpSTrQGLr}z>XbZi;0YqQWjk}_vwNfh+dYlxo#MIQKA{x~6^e%NwL8yr883v$0hV6?FYS);EuJ6HlEP-z^ z3WDR#oljs|fgr_!)r>IxHz3Ow{15O!Uc=tY{?U|$$mx1)d_07mkT6W%&ehS;@!|?b z)o1puA1R^->AM^+f^zmD3IViOSzB8MbruSO#&d(O2MH+wFgb@Z3w#4nU;`WH`6 zoL`Rkdh)z|ff3>>*@9Hvsz}BO&X#!E?cKD6sdNoeNYs)`liPw;j{hIkg5%N!vZdA4 zhwd6&sp+098nF8pA+OJ+pPYeshE@>P2Qks%T27FzogMpwQ(7jFGS2RUDe5U`>l23{ zjy0zrTDQ>Wu{Zr~>8}B118GT8RY28*)6&Lj`MF|U1`8=ZfQ+d7&U8^4rc zVoK9c3i`K?J!4dP-yPlItu|MxpM_nt0{HHL;HX_LSjUXhY8ASP`l;{JZ+&_*YOvxM z&nTS@3IiN%_PKw|KQTugx{!D`Ft37cO}TYk*uC_eo1OhUHT4=cNwmPZuoBPkBG5v_ z!y4W_w|x^>P<6^;&lxF(CQ5>^&#cw6bW&%H76Wy&uqm>6!}9N+)kX#!mxXr8czW?y zQBigE^`)QykAAv@y418YMcW*GFTTeJR?%qZlLJV^oKkmQ-c-+>a6$u4g~gwS2LhsE ztvR8;6^*W3CBh0=Xp~1m53I+*T4AM7HffR+(aIRNiTGeBBo3(LKN1$HJA|NZmV zdk(pmfw&p0Aeeset(_GFzBQN9+*Id^=;Nw^?IT~A=6EqSk@>!DVp>|<7E|-pXDN}e zLW+6qniXVG@$BEoA7FeF01$D2j1W~`;0>_U8frjMqreK16gCr+8Dm08EKJN%&>7|a z?f0p z72k&sA1WOBXyb5ja5zC(!CPVVRglN1PGKai2KF+c*0LbzRw)=81(U}Co)&cIrUWn8 z7^t;-(7$hip1c4z1sv2b!^7;QdTI&^KqrbIUiua*DTKy>paAqaN+(8m&d{Q*izT6l z1cRXu58-7?i>PG4*|(B|a>|XRE4r6?1X(LIJ-BWYuyv3R`WP15_{hn~*8lWGXzDj* zq5j^)Cx!t(E6PF&mGE@CCt-LHP0ND(msk=sZZp#M@n(QbM~|9``VjtPyg@#|4#i&-(G9I>z&qG@B6HmN@bz>Q>#_{Rn0rA zRDY;csxZx`A*nJoAL*iL))X2vwBO(FGx*=dKvq^3y1TnEJ3EWs-d`D58Ioir6qiPd~kk#j@sHgp=bm1MMO;o;#ZDk?%^Vj>C(3QU%hbWBc8A~-l$mRnj{ zLR?&&JeT-P=^Gmx&6XP;9!5z?i7dCgyo|E4GI?%_U5Urj(-ZWexVRYY?d=E*3^c0e z`1lw@LqmcuA|e8BZ*S=7=`kuN+0@rFh6)P{;o#t4P}lzczPLY0&)wY}qN1V<%1FG% z`ntM0sMTtNx^8Z6(9zK$c7>+1_*{zra$dwaaRya<~I2M6*v zFE8&C??+j4=6-&DiuQTVY)3~&SYKbq_VzZeuC6dYKmVon^Yil&85xP>8E4;sN!6xb;F7vM4-Q96A8Ix9CUXHD;Eo^RXiZkHb^ZNQK z@_}_(OiT=#nwo@vRaI3OA0Pkbx~RIk8nLmln3|f>!B^(Gqobp!0~sI86I)wboqO); z>cZOE8q(6zbm-FlOzCNZXBr3d>0CUz~Qz!ncx?Fp2{GWum^A+{Bw%+d?Ys7zD`wt6O B9F_n8 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/icons/favicon/favicon.png b/docs/docs/assets/icons/favicon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8c7435a499a6f3c1039516d581a22d8de3f306fe GIT binary patch literal 37714 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/icons/flag.svg b/docs/docs/assets/icons/flag.svg new file mode 100644 index 0000000..1be93d1 --- /dev/null +++ b/docs/docs/assets/icons/flag.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/github-mark-white.svg b/docs/docs/assets/icons/github-mark-white.svg new file mode 100644 index 0000000..d5e6491 --- /dev/null +++ b/docs/docs/assets/icons/github-mark-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/docs/assets/icons/license.svg b/docs/docs/assets/icons/license.svg new file mode 100644 index 0000000..b73b379 --- /dev/null +++ b/docs/docs/assets/icons/license.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/docs/assets/icons/openext.svg b/docs/docs/assets/icons/openext.svg new file mode 100644 index 0000000..402622f --- /dev/null +++ b/docs/docs/assets/icons/openext.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/selector.svg b/docs/docs/assets/icons/selector.svg new file mode 100644 index 0000000..d77bcc0 --- /dev/null +++ b/docs/docs/assets/icons/selector.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/docs/assets/icons/star-todo.svg b/docs/docs/assets/icons/star-todo.svg new file mode 100644 index 0000000..9a0e9f3 --- /dev/null +++ b/docs/docs/assets/icons/star-todo.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/assets/icons/star.svg b/docs/docs/assets/icons/star.svg new file mode 100644 index 0000000..60e8a87 --- /dev/null +++ b/docs/docs/assets/icons/star.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/assets/icons/telescope.svg b/docs/docs/assets/icons/telescope.svg new file mode 100644 index 0000000..642c360 --- /dev/null +++ b/docs/docs/assets/icons/telescope.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/docs/docs/assets/icons/timeglass-new.svg b/docs/docs/assets/icons/timeglass-new.svg new file mode 100644 index 0000000..3521130 --- /dev/null +++ b/docs/docs/assets/icons/timeglass-new.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/assets/icons/timeglass.svg b/docs/docs/assets/icons/timeglass.svg new file mode 100644 index 0000000..ad21b8a --- /dev/null +++ b/docs/docs/assets/icons/timeglass.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/assets/mastodon-feed.js b/docs/docs/assets/mastodon-feed.js new file mode 100644 index 0000000..353ddee --- /dev/null +++ b/docs/docs/assets/mastodon-feed.js @@ -0,0 +1,532 @@ +// Mastodon embed feed timeline v3.7.0 +// More info at: +// https://gitlab.com/idotj/mastodon-embed-feed-timeline + + let MastodonApi = function (params_) { + // Endpoint access settings / default values + this.DEFAULT_THEME = params_.default_theme || "auto"; + this.INSTANCE_URL = params_.instance_url; + this.USER_ID = params_.user_id || ""; + this.PROFILE_NAME = this.USER_ID ? params_.profile_name : ""; + this.TIMELINE_TYPE = params_.timeline_type || "local"; + this.HASHTAG_NAME = params_.hashtag_name || ""; + this.TOOTS_LIMIT = params_.toots_limit || "20"; + this.HIDE_UNLISTED = + typeof params_.hide_unlisted !== "undefined" + ? params_.hide_unlisted + : false; + this.HIDE_REBLOG = + typeof params_.hide_reblog !== "undefined" ? params_.hide_reblog : false; + this.HIDE_REPLIES = + typeof params_.hide_replies !== "undefined" ? params_.hide_replies : false; + this.MARKDOWN_BLOCKQUOTE = + typeof params_.markdown_blockquote !== "undefined" + ? params_.markdown_blockquote + : false; + this.TEXT_MAX_LINES = params_.text_max_lines || "0"; + this.LINK_SEE_MORE = params_.link_see_more; + + // Target selector + this.mtBodyContainer = document.getElementById(params_.container_body_id); + + // Apply selected appearance + this.applyTheme(); + + // Get the toots + this.getToots(); + }; + + // Theme style + MastodonApi.prototype.applyTheme = function () { + const setTheme = function (theme) { + document.documentElement.setAttribute("data-theme", theme); + }; + if (this.DEFAULT_THEME === "auto") { + let systemTheme = window.matchMedia("(prefers-color-scheme: dark)"); + systemTheme.matches ? setTheme("dark") : setTheme("light"); + systemTheme.addEventListener("change", (e) => { + e.matches ? setTheme("dark") : setTheme("light"); + }); + } else { + setTheme(this.DEFAULT_THEME); + } + }; + + // Listing toots function + MastodonApi.prototype.getToots = function () { + let mapi = this; + let requestURL = ""; + + // Get request + if (this.TIMELINE_TYPE === "profile") { + requestURL = `${this.INSTANCE_URL}/api/v1/accounts/${this.USER_ID}/statuses?limit=${this.TOOTS_LIMIT}`; + } else if (this.TIMELINE_TYPE === "hashtag") { + requestURL = `${this.INSTANCE_URL}/api/v1/timelines/tag/${this.HASHTAG_NAME}?limit=${this.TOOTS_LIMIT}`; + } else if (this.TIMELINE_TYPE === "local") { + requestURL = `${this.INSTANCE_URL}/api/v1/timelines/public?local=true&limit=${this.TOOTS_LIMIT}`; + } + + fetch(requestURL, { + method: "get", + }) + .then((response) => { + if (response.ok) { + return response.json(); + } else if (response.status === 404) { + throw new Error("404 Not found", { cause: response }); + } else { + throw new Error(response.status); + } + }) + .then((jsonData) => { + // console.log("jsonData: ", jsonData); + + // Empty the
    container + this.mtBodyContainer.innerHTML = ""; + + // Add toots + for (let i in jsonData) { + // First filter (Public / Unlisted) + if ( + jsonData[i].visibility == "public" || + (!this.HIDE_UNLISTED && jsonData[i].visibility == "unlisted") + ) { + // Second filter (Reblog / Replies) + if ( + (mapi.HIDE_REBLOG && jsonData[i].reblog) || + (mapi.HIDE_REPLIES && jsonData[i].in_reply_to_id) + ) { + // Nothing here (Don't append toots) + } else { + // Format and append toots + appendToot.call(mapi, jsonData[i], i); + } + } + } + + // Check if there are toots in the container (due to filters applied) + if (this.mtBodyContainer.innerHTML === "") { + this.mtBodyContainer.setAttribute("role", "none"); + this.mtBodyContainer.innerHTML = + '
    📭
    Sorry, no toots to show
    Got ' + + jsonData.length + + ' toots from the server but due to the "hide filters" applied, no toot is shown
    '; + } else { + // Insert link after last toot to visit Mastodon page + if (mapi.LINK_SEE_MORE) { + let linkSeeMorePath = ""; + if (this.TIMELINE_TYPE === "profile") { + linkSeeMorePath = mapi.PROFILE_NAME; + } else if (this.TIMELINE_TYPE === "hashtag") { + linkSeeMorePath = "tags/" + this.HASHTAG_NAME; + } else if (this.TIMELINE_TYPE === "local") { + linkSeeMorePath = "public/local"; + } + let linkSeeMore = + '
    "; + + this.mtBodyContainer.parentNode.insertAdjacentHTML( + "beforeend", + linkSeeMore + ); + } + } + }) + .catch((err) => { + this.mtBodyContainer.innerHTML = + '

    Sorry, request failed:
    ' + + err + + "
    "; + this.mtBodyContainer.setAttribute("role", "none"); + }); + + // Inner function to add each toot content in container + let appendToot = function (status_, index) { + let avatar, user, content, url, date; + + if (status_.reblog) { + // BOOSTED toot + // Toot url + url = status_.reblog.url; + + // Boosted avatar + avatar = + '' + + '
    ' + + "
    " + + '' + + status_.account.username + + " avatar" + + "" + + "
    "; + + // User name and url + user = + '"; + + // Date + date = this.formatDate(status_.reblog.created_at); + } else { + // STANDARD toot + // Toot url + url = status_.url; + + // Avatar + avatar = + '' + + '' + + status_.account.username + + " avatar" + + "" + + ""; + + // User name and url + user = + '"; + + // Date + date = this.formatDate(status_.created_at); + } + + // Main text + let text_css = ""; + if (this.TEXT_MAX_LINES !== "0") { + text_css = "truncate"; + document.documentElement.style.setProperty( + "--text-max-lines", + this.TEXT_MAX_LINES + ); + } + + if (status_.spoiler_text !== "") { + content = + '
    ' + + status_.spoiler_text + + ' ' + + '
    ' + + this.formatTootText(status_.content) + + "
    " + + "
    "; + } else if (status_.reblog && status_.reblog.content !== "") { + content = + '
    ' + + "
    " + + this.formatTootText(status_.reblog.content) + + "
    " + + "
    "; + } else { + content = + '
    ' + + "
    " + + this.formatTootText(status_.content) + + "
    " + + "
    "; + } + + // Media attachments + let media = ""; + if (status_.media_attachments.length > 0) { + for (let picid in status_.media_attachments) { + media = this.replaceMedias( + status_.media_attachments[picid], + status_.sensitive + ); + } + } + if (status_.reblog && status_.reblog.media_attachments.length > 0) { + for (let picid in status_.reblog.media_attachments) { + media = this.replaceMedias( + status_.reblog.media_attachments[picid], + status_.sensitive + ); + } + } + + // Poll + let poll = ""; + let pollOption = ""; + if (status_.poll) { + for (let i in status_.poll.options) { + pollOption += "
  • " + status_.poll.options[i].title + "
  • "; + } + poll = + '
    ' + "
      " + pollOption + "
    " + "
    "; + } + + // Date + let timestamp = + '
    ' + + '' + + date + + "" + + "
    "; + + // Add all to main toot container + let toot = + '
    ' + + avatar + + user + + content + + media + + poll + + timestamp + + "
    "; + + this.mtBodyContainer.insertAdjacentHTML("beforeend", toot); + }; + + // Toot interactions + this.mtBodyContainer.addEventListener("click", function (e) { + // Check if clicked in a toot + if ( + e.target.localName == "article" || + e.target.offsetParent.localName == "article" || + e.target.localName == "img" + ) { + openTootURL(e); + } + // Check if clicked in Show More/Less button + if ( + e.target.localName == "button" && + e.target.className == "spoiler-link" + ) { + toogleSpoiler(e); + } + }); + this.mtBodyContainer.addEventListener("keydown", function (e) { + // Check if Enter key pressed with focus in an article + if (event.code === "Enter" && e.target.localName == "article") { + openTootURL(e); + } + }); + + // Open Toot in a new page avoiding any other natural link + let openTootURL = function (e) { + let urlToot = e.target.closest(".mt-toot").dataset.location; + if ( + e.target.localName !== "a" && + e.target.localName !== "span" && + e.target.localName !== "button" && + urlToot + ) { + window.open(urlToot, "_blank"); + } + }; + + // Spoiler button + let toogleSpoiler = function (e) { + let spoilerText = e.target.nextSibling; + let spoilerBtnText = e.target.textContent; + spoilerText.classList.toggle("spoiler-text"); + if (spoilerBtnText == "Show more") { + spoilerBtnText = "Show less"; + e.target.setAttribute("aria-expanded", "true"); + } else { + spoilerBtnText = "Show more"; + e.target.setAttribute("aria-expanded", "false"); + } + }; + }; + + // Handle text changes made to Toots + MastodonApi.prototype.formatTootText = function (c) { + let content = c; + + // Format hashtags and mentions + content = this.addTarget2hashtagMention(content); + + // Convert markdown styles into HTML + if (this.MARKDOWN_BLOCKQUOTE) { + content = this.replaceHTMLtag( + content, + "

    >", + "

    ", + "

    ", + "

    " + ); + } + + return content; + }; + + // Add target="_blank" to all #hashtags and @mentions + MastodonApi.prototype.addTarget2hashtagMention = function (c) { + let content = c.replaceAll('rel="tag"', 'rel="tag" target="_blank"'); + content = content.replaceAll( + 'class="u-url mention"', + 'class="u-url mention" target="_blank"' + ); + return content; + }; + + // Find all start/end and replace them by another start/end + MastodonApi.prototype.replaceHTMLtag = function ( + c, + initialTagOpen, + initialTagClose, + replacedTagOpen, + replacedTagClose + ) { + if (c.includes(initialTagOpen)) { + const regex = new RegExp(initialTagOpen + "(.*?)" + initialTagClose, "gi"); + return c.replace(regex, replacedTagOpen + "$1" + replacedTagClose); + } else { + return c; + } + }; + + // Place media + MastodonApi.prototype.replaceMedias = function (m, s) { + let spoiler = s || false; + let pic = + '
    ' + + (spoiler + ? '' + : "") + + '' + + "
    "; + + return pic; + }; + + // Format date + MastodonApi.prototype.formatDate = function (d) { + const monthNames = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ]; + + let date = new Date(d); + + let displayDate = + monthNames[date.getMonth()] + + " " + + date.getDate() + + ", " + + date.getFullYear(); + + return displayDate; + }; + + // Loading spinner + removeSpinner = function (e) { + const spinnerCSS = "loading-spinner"; + // Find closest parent container (1st, 2nd or 3rd level) + let spinnerContainer = e.closest("." + spinnerCSS); + if (spinnerContainer) { + spinnerContainer.classList.remove(spinnerCSS); + } + }; + + +// Timeline settings +function initMastodon() { + + let mapi = new MastodonApi({ + // Id of the
    containing the timeline + container_body_id: "mt-body", + + // Preferred color theme: 'light', 'dark' or 'auto'. Default: auto + default_theme: "auto", + + // Your Mastodon instance + instance_url: "https://mastodon.social/", + + // Choose type of toots to show in the timeline: 'local', 'profile', 'hashtag'. Default: local + timeline_type: "profile", + + // Your user ID on Mastodon instance. Leave empty if you didn't choose 'profile' as type of timeline + user_id: "110658052564560225", + + // Your user name on Mastodon instance. Leave empty if you didn't choose 'profile' as type of timeline + profile_name: "ThePirateForest", + + // The name of the hashtag. Leave empty if you didn't choose 'hashtag' as type of timeline + hashtag_name: "", + + // Maximum amount of toots to get. Default: 20 + toots_limit: "20", + + // Hide unlisted toots. Default: don't hide + hide_unlisted: false, + + // Hide boosted toots. Default: don't hide + hide_reblog: false, + + // Hide replies toots. Default: don't hide + hide_replies: false, + + // Converts Markdown symbol ">" at the beginning of a paragraph into a blockquote HTML tag (default: don't apply) + markdown_blockquote: false, + + // Limit the text content to a maximum number of lines. Default: 0 (unlimited) + text_max_lines: "0", + + // Customize the text of the link pointing to the Mastodon page (appears after the last toot) + //link_see_more: "See more posts at Mastodon", + }); + }; + +if (document.readyState !== 'loading') { + initMastodon(); +} else { + document.addEventListener('DOMContentLoaded', function () { + initMastodon(); + }); +} \ No newline at end of file diff --git a/docs/docs/assets/og/thepirateforest.png b/docs/docs/assets/og/thepirateforest.png new file mode 100644 index 0000000000000000000000000000000000000000..39037c3c426c9d573c0e3c20518e2a0f2257638e GIT binary patch literal 83988 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%0A4PGSgF(g~-70u|K&E#?@@rT+;T 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/pirate-border.svg b/docs/docs/assets/pirate-border.svg new file mode 100644 index 0000000..085072f --- /dev/null +++ b/docs/docs/assets/pirate-border.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/docs/assets/repositories.json b/docs/docs/assets/repositories.json new file mode 100644 index 0000000..a50373c --- /dev/null +++ b/docs/docs/assets/repositories.json @@ -0,0 +1,1062 @@ +[ + { + "pirate_id": "t_lTb-tB6E5WWJrE9Rbzp", + "added": 1638107118827, + "id": 405073306, + "name": "vwm-brandenburg", + "full_name": "b-lack/vwm-brandenburg", + "description": "Illustration of regeneration condition and wildlife impact monitoring.", + "html_url": "https://github.com/b-lack/vwm-brandenburg", + "language": "JavaScript", + "topics": [ + "forestry", + "monitoring", + "visualization", + "gis" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "b-lack", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/11278402?v=4", + "owner_html_url": "https://github.com/b-lack", + "updated_at": "2021-10-18T21:22:38Z", + "images": [ + { + "url": "https://repository-images.githubusercontent.com/405073306/af23bec9-be60-4466-9da2-a5044994ef03", + "alt": "vwm-brandenburg" + } + ] + }, + { + "pirate_id": "pHUnCo_GWtZ_bdbr06uHG", + "added": 1638107138310, + "id": 385726766, + "name": "awesome-forests", + "full_name": "blutjens/awesome-forests", + "description": "🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community.", + "html_url": "https://github.com/blutjens/awesome-forests", + "language": null, + "topics": [ + "datasets" + ], + "stargazers_count": 21, + "license_name": "Creative Commons Zero v1.0 Universal", + "owner_login": "blutjens", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/29470205?v=4", + "owner_html_url": "https://github.com/blutjens", + "updated_at": "2021-11-21T22:19:14Z" + }, + { + "pirate_id": "aJnOMbBzFihijI-bylEMY", + "added": 1638132860056, + "id": 51918783, + "name": "lidR", + "full_name": "r-lidar/lidR", + "description": "R package for airborne LiDAR data manipulation and visualisation for forestry application", + "html_url": "https://github.com/r-lidar/lidR", + "language": "R", + "topics": [ + "als", + "forestry", + "las", + "laz", + "lidar", + "point-cloud" + ], + "stargazers_count": 345, + "license_name": "GNU General Public License v3.0", + "owner_login": "r-lidar", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/93974705?v=4", + "owner_html_url": "https://github.com/r-lidar", + "updated_at": "2021-11-23T03:22:17Z", + "images": [ + { + "url": "https://raw.githubusercontent.com/Jean-Romain/storage/master/README/chm-Khosravipour.png", + "alt": "Compute a canopy height model" + }, + { + "url": "https://raw.githubusercontent.com/Jean-Romain/storage/master/README/point-cloud-rotating.gif", + "alt": "Read and display a las file" + }, + { + "url": "https://raw.githubusercontent.com/Jean-Romain/storage/master/README/its-rotating-tree-segmented.gif", + "alt": "Individual tree segmentation" + } + ] + }, + { + "pirate_id": "0TLY97pCwJUcVygV0vlhe", + "added": 1638132921378, + "id": 205518529, + "name": "AdTree", + "full_name": "tudelft3d/AdTree", + "description": "Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees", + "html_url": "https://github.com/tudelft3d/AdTree", + "language": "C++", + "topics": [ + "3d-model", + "forestry", + "laser-scanning", + "laser-scans", + "modeling", + "point-clouds", + "reconstruction", + "tree", + "urban-environment", + "visualization" + ], + "stargazers_count": 73, + "license_name": "GNU General Public License v3.0", + "owner_login": "tudelft3d", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/1544391?v=4", + "owner_html_url": "https://github.com/tudelft3d", + "updated_at": "2021-11-05T03:45:24Z", + "images": [ + { + "url": "https://github.com/tudelft3d/AdTree/raw/main/resources/images/AdTree.jpg", + "alt": "3D tree models reconstructed from point clouds" + } + ] + }, + { + "pirate_id": "D6iFu-_LDRWQ1VGiPquP8", + "added": 1638174480319, + "id": 75873245, + "name": "pyfor", + "full_name": "brycefrank/pyfor", + "description": "Tools for analyzing aerial point clouds of forest data.", + "html_url": "https://github.com/brycefrank/pyfor", + "language": "Python", + "topics": [ + "forest-inventory", + "forestry", + "las", + "lidar" + ], + "stargazers_count": 68, + "license_name": "MIT License", + "owner_login": "brycefrank", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/24326298?v=4", + "owner_html_url": "https://github.com/brycefrank", + "updated_at": "2021-11-10T14:50:57Z" + }, + { + "pirate_id": "gWFwciQf2Oh0NH-5QHpMT", + "added": 1638174555854, + "id": 58712667, + "name": "Digital-Forestry-Toolbox", + "full_name": "mparkan/Digital-Forestry-Toolbox", + "description": "A collection of digital forestry tools for Matlab/Octave", + "html_url": "https://github.com/mparkan/Digital-Forestry-Toolbox", + "language": "MATLAB", + "topics": [ + "asprs", + "digital-forestry-toolbox", + "forest", + "forestry", + "laser", + "laser-scanning", + "lidar", + "matlab", + "octave", + "point-cloud", + "remote-sensing", + "vegetation" + ], + "stargazers_count": 32, + "license_name": "GNU General Public License v3.0", + "owner_login": "mparkan", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/4256491?v=4", + "owner_html_url": "https://github.com/mparkan", + "updated_at": "2021-09-30T17:50:41Z" + }, + { + "pirate_id": "IBeU8hIYBAsSQSvVkyHuy", + "added": 1638175060847, + "id": 182455024, + "name": "treeseg", + "full_name": "brycefrank/treeseg", + "description": "A library of tree segmentation and detection algorithms.", + "html_url": "https://github.com/brycefrank/treeseg", + "language": "Python", + "topics": [ + "forest-inventory", + "forestry", + "lidar" + ], + "stargazers_count": 13, + "license_name": "MIT License", + "owner_login": "brycefrank", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/24326298?v=4", + "owner_html_url": "https://github.com/brycefrank", + "updated_at": "2021-09-23T07:44:15Z" + }, + { + "pirate_id": "FK-MPIUBrO15iHKt0frCl", + "added": 1638179519236, + "id": 334988003, + "name": "TreeDiversity", + "full_name": "DiversiTree/TreeDiversity", + "description": "Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!", + "html_url": "https://github.com/DiversiTree/TreeDiversity", + "language": "Jupyter Notebook", + "topics": [ + "ecology", + "urban-forestry", + "gis" + ], + "stargazers_count": 12, + "license_name": "Creative Commons Attribution 4.0 International", + "owner_login": "DiversiTree", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/78367048?v=4", + "owner_html_url": "https://github.com/DiversiTree", + "updated_at": "2021-09-22T03:12:45Z" + }, + { + "pirate_id": "vwsV4cVp6N4TPe8GGGaer", + "added": 1638179607510, + "id": 129300423, + "name": "clus", + "full_name": "bcgov/clus", + "description": "Caribou and land use simulator- decision support model for caribou and forest management ", + "html_url": "https://github.com/bcgov/clus", + "language": "R", + "topics": [ + "caribou", + "flnr", + "forest-analysis", + "forest-management" + ], + "stargazers_count": 11, + "license_name": "Apache License 2.0", + "owner_login": "bcgov", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/916280?v=4", + "owner_html_url": "https://github.com/bcgov", + "updated_at": "2021-11-24T22:33:40Z" + }, + { + "pirate_id": "l07H92vfqHmwCT4ZfhJDs", + "added": 1638179650937, + "id": 204700374, + "name": "LiDARForestryHeight", + "full_name": "PANOimagen/LiDARForestryHeight", + "description": "Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)", + "html_url": "https://github.com/PANOimagen/LiDARForestryHeight", + "language": "Python", + "topics": [ + "dem", + "dsm", + "dtm", + "forest", + "forestry", + "geotif", + "lidar", + "python3", + "qgis3-plugin", + "raster" + ], + "stargazers_count": 10, + "license_name": "Other", + "owner_login": "PANOimagen", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/31689564?v=4", + "owner_html_url": "https://github.com/PANOimagen", + "updated_at": "2021-11-26T09:29:59Z" + }, + { + "pirate_id": "WjuxLplVZipMxelQuyzbs", + "added": 1638179747312, + "id": 71838747, + "name": "carboncalc", + "full_name": "adhollander/carboncalc", + "description": "Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.", + "html_url": "https://github.com/adhollander/carboncalc", + "language": "Python", + "topics": [ + "biomass", + "carbon", + "climate-change", + "emissions", + "urban-forestry" + ], + "stargazers_count": 8, + "license_name": "The Unlicense", + "owner_login": "adhollander", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/12467609?v=4", + "owner_html_url": "https://github.com/adhollander", + "updated_at": "2021-11-25T10:50:39Z" + }, + { + "pirate_id": "EhbkP3j2zxBEayacwY08U", + "added": 1638179840468, + "id": 65422800, + "name": "laselva", + "full_name": "kunstler/laselva", + "description": "Fetch Forest Inventory data from many countries", + "html_url": "https://github.com/kunstler/laselva", + "language": "R", + "topics": [ + "data", + "forest-inventory", + "forestry", + "plants", + "r", + "r-package", + "rstats", + "trees" + ], + "stargazers_count": 7, + "license_name": "Other", + "owner_login": "kunstler", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/4505188?v=4", + "owner_html_url": "https://github.com/kunstler", + "updated_at": "2021-07-16T15:40:02Z" + }, + { + "pirate_id": "R4MpS0RPCmbQZRHLaaHry", + "added": 1638179887556, + "id": 101954301, + "name": "ForestBiometrics.jl", + "full_name": "Crghilardi/ForestBiometrics.jl", + "description": "A library for various forest mensuration and biometrics functions in Julia", + "html_url": "https://github.com/Crghilardi/ForestBiometrics.jl", + "language": "Julia", + "topics": [ + "biometrics", + "forest-management" + ], + "stargazers_count": 7, + "license_name": "Other", + "owner_login": "Crghilardi", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/6330666?v=4", + "owner_html_url": "https://github.com/Crghilardi", + "updated_at": "2021-11-21T09:37:35Z" + }, + { + "pirate_id": "wVavTK1bBHbJzvaV22KpZ", + "added": 1638180164199, + "id": 74482005, + "name": "forestfrag3d", + "full_name": "wenzeslaus/forestfrag3d", + "description": "Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)", + "html_url": "https://github.com/wenzeslaus/forestfrag3d", + "language": "Shell", + "topics": [ + "3d-raster", + "3d-raster-algebra", + "analysis", + "forestry", + "grass-gis", + "lidar", + "lidar-point-clouds", + "open-science", + "paper", + "point-cloud", + "raster-algebra", + "reproducibility", + "reproducible-research", + "spatial-index", + "spatial-pattern", + "voxel-model" + ], + "stargazers_count": 5, + "license_name": "GNU General Public License v2.0", + "owner_login": "wenzeslaus", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/5449060?v=4", + "owner_html_url": "https://github.com/wenzeslaus", + "updated_at": "2020-04-17T13:03:28Z" + }, + { + "pirate_id": "QUQycrx5mAg1oDaEhyF6h", + "added": 1638180175620, + "id": 203814915, + "name": "3D-CMCC-FEM", + "full_name": "Forest-Modelling-Lab/3D-CMCC-FEM", + "description": "3D-CMCC-FEM code", + "html_url": "https://github.com/Forest-Modelling-Lab/3D-CMCC-FEM", + "language": "C", + "topics": [ + "3d-cmcc-fem", + "climatechange", + "forest-management", + "vegetationmodelling" + ], + "stargazers_count": 8, + "license_name": "GNU General Public License v3.0", + "owner_login": "Forest-Modelling-Lab", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/54363140?v=4", + "owner_html_url": "https://github.com/Forest-Modelling-Lab", + "updated_at": "2021-10-28T12:37:06Z" + }, + { + "pirate_id": "L-IWK50VedW9esj-P7AZM", + "added": 1638180269043, + "id": 372579026, + "name": "tree-species", + "full_name": "b-lack/tree-species", + "description": "tree species with corresponding translation", + "html_url": "https://github.com/b-lack/tree-species", + "language": "JavaScript", + "topics": [ + "i18n", + "standardization", + "species", + "translations", + "tree", + "tree-species" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "b-lack", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/11278402?v=4", + "owner_html_url": "https://github.com/b-lack", + "updated_at": "2021-08-29T11:42:23Z" + }, + { + "pirate_id": "onDxyBroi0FHer9QQh-Bo", + "added": 1638224098883, + "id": 33613033, + "name": "SEILAPLAN", + "full_name": "piMoll/SEILAPLAN", + "description": "SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.", + "html_url": "https://github.com/piMoll/SEILAPLAN", + "language": "Python", + "topics": [ + "qgis", + "qgis-plugin", + "gis" + ], + "stargazers_count": 2, + "license_name": "GNU General Public License v2.0", + "owner_login": "piMoll", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/11837885?v=4", + "owner_html_url": "https://github.com/piMoll", + "updated_at": "2021-06-30T14:21:47Z" + }, + { + "pirate_id": "PKBI__W3TfGSM_6JUy3K0", + "added": 1638224372853, + "id": 103794058, + "name": "Biomassr", + "full_name": "jperkins12/Biomassr", + "description": "Shiny app to calculate above ground biomass for forest plots.", + "html_url": "https://github.com/jperkins12/Biomassr", + "language": "R", + "topics": [ + "forestry" + ], + "stargazers_count": 4, + "license_name": "MIT License", + "owner_login": "jperkins12", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/17438718?v=4", + "owner_html_url": "https://github.com/jperkins12", + "updated_at": "2021-08-10T03:39:31Z" + }, + { + "pirate_id": "u5RyFsuLVSicf6lw3xAcg", + "added": 1638224445653, + "id": 144327733, + "name": "treeco", + "full_name": "tyluRp/treeco", + "description": "The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.", + "html_url": "https://github.com/tyluRp/treeco", + "language": "R", + "topics": [ + "urban-forestry", + "r", + "rstats", + "trees" + ], + "stargazers_count": 3, + "license_name": "MIT License", + "owner_login": "tyluRp", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/35909636?v=4", + "owner_html_url": "https://github.com/tyluRp", + "updated_at": "2021-10-21T06:49:27Z" + }, + { + "pirate_id": "upg-x7nKQbL-ji61mHKZ7", + "added": 1638225003346, + "id": 113620704, + "name": "forvol", + "full_name": "brycefrank/forvol", + "description": "An R package for tree volume equations.", + "html_url": "https://github.com/brycefrank/forvol", + "language": "R", + "topics": [ + "forest-inventory", + "forest-management" + ], + "stargazers_count": 2, + "license_name": "", + "owner_login": "brycefrank", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/24326298?v=4", + "owner_html_url": "https://github.com/brycefrank", + "updated_at": "2021-01-27T16:28:16Z" + }, + { + "pirate_id": "cs3LY_c4MlU8d6k2zzDnU", + "added": 1638225686740, + "id": 214993004, + "name": "SBCM", + "full_name": "Priestley-Centre/SBCM", + "description": "The Simple Biomass Comparison Model", + "html_url": "https://github.com/Priestley-Centre/SBCM", + "language": "Python", + "topics": [ + "bioenergy", + "biomass", + "carbon-debt", + "carbon-emissions", + "dlca", + "forestry", + "modelling-tool" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "Priestley-Centre", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/56535561?v=4", + "owner_html_url": "https://github.com/Priestley-Centre", + "updated_at": "2021-03-03T15:15:56Z" + }, + { + "pirate_id": "NT0raUzgXDI3rRiBbAc3p", + "added": 1638225832615, + "id": 363946165, + "name": "vinv-schema", + "full_name": "vinv-group/vinv-schema", + "description": "Lightweight data standard for single-tree based forest management, visualisation & analytics", + "html_url": "https://github.com/vinv-group/vinv-schema", + "language": "JavaScript", + "topics": [ + "forest-inventory", + "forest-management", + "standardization" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "vinv-group", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/83590718?v=4", + "owner_html_url": "https://github.com/vinv-group", + "updated_at": "2021-11-29T22:43:08Z" + }, + { + "pirate_id": "laf-bJy9UyPNDCc_Sbwhy", + "added": 1638226410379, + "id": 162212015, + "name": "ForestGapR", + "full_name": "carlos-alberto-silva/ForestGapR", + "description": "An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis ", + "html_url": "https://github.com/carlos-alberto-silva/ForestGapR", + "language": "R", + "topics": [ + "laser", + "lidar" + ], + "stargazers_count": 15, + "license_name": "", + "owner_login": "carlos-alberto-silva", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/6352657?v=4", + "owner_html_url": "https://github.com/carlos-alberto-silva", + "updated_at": "2021-10-19T09:08:27Z" + }, + { + "pirate_id": "kwSPJI3Iw2iypFAhXVMGp", + "added": 1638259764799, + "id": 124290023, + "name": "DeepForest", + "full_name": "weecology/DeepForest", + "description": "Python Package for Tree Crown Detection in Airborne RGB imagery", + "html_url": "https://github.com/weecology/DeepForest", + "language": "Python", + "topics": [ + "remote-sensing", + "pytorch", + "python", + "deep-learning", + "airborne-image" + ], + "stargazers_count": 199, + "license_name": "MIT License", + "owner_login": "weecology", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/1156696?v=4", + "owner_html_url": "https://github.com/weecology", + "updated_at": "2021-11-27T07:17:50Z" + }, + { + "pirate_id": "U9b1N1lECLkin0zZibIb8", + "added": 1638262630492, + "id": 374011071, + "name": "deepforestr", + "full_name": "weecology/deepforestr", + "description": "R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.", + "html_url": "https://github.com/weecology/deepforestr", + "language": "R", + "topics": [ + "remote-sensing", + "deep-learning", + "R", + "airborne-image" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "weecology", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/1156696?v=4", + "owner_html_url": "https://github.com/weecology", + "updated_at": "2021-10-04T20:55:54Z" + }, + { + "pirate_id": "wq9MBPMpzu_-MVWOtAfZ7", + "added": 1638262763566, + "id": 379154239, + "name": "FSCT", + "full_name": "SKrisanski/FSCT", + "description": "Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.", + "html_url": "https://github.com/SKrisanski/FSCT", + "language": "Python", + "topics": [ + "laser-scanning", + "sensors", + "lidar", + "segmentation", + "photogrammetry" + ], + "stargazers_count": 25, + "license_name": "GNU General Public License v3.0", + "owner_login": "SKrisanski", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/16696855?v=4", + "owner_html_url": "https://github.com/SKrisanski", + "updated_at": "2021-11-30T08:01:28Z" + }, + { + "pirate_id": "r2nxT9qpvKkN47bQMS5kW", + "added": 1638346146037, + "id": 202789309, + "name": "LeWoS", + "full_name": "dwang520/LeWoS", + "description": "Unsupervised leaf-wood classification from laser scanning point clouds", + "html_url": "https://github.com/dwang520/LeWoS", + "language": "MATLAB", + "topics": [ + "classification", + "laser-scanning", + "point-cloud", + "lidar" + ], + "stargazers_count": 12, + "license_name": "MIT License", + "owner_login": "dwang520", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/34278700?v=4", + "owner_html_url": "https://github.com/dwang520", + "updated_at": "2021-07-08T08:17:46Z", + "preview_images": [ + "/dwang520/LeWoS/raw/master/plot.png", + "/dwang520/LeWoS/raw/master/crown.png", + "/dwang520/LeWoS/raw/master/e3.png" + ] + }, + { + "pirate_id": "bRjzPAh-ZWuvvKY1KPx8Q", + "added": 1638346157538, + "id": 58948958, + "name": "TreeLS", + "full_name": "tiagodc/TreeLS", + "description": "R functions for processing individual tree TLS point clouds", + "html_url": "https://github.com/tiagodc/TreeLS", + "language": "C++", + "topics": [ + "tree-detection", + "laser-scanning", + "point-cloud", + "stem-segmentation", + "lidar" + ], + "stargazers_count": 41, + "license_name": "GNU General Public License v3.0", + "owner_login": "tiagodc", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/19391644?v=4", + "owner_html_url": "https://github.com/tiagodc", + "updated_at": "2021-11-25T15:44:30Z", + "preview_images": [ + "/tiagodc/Scripts/master/animations/treedt.gif" + ] + }, + { + "pirate_id": "B6SEjfU2E62T1q9LbJbGr", + "added": 1638346389087, + "id": 100592530, + "name": "TreeQSM", + "full_name": "InverseTampere/TreeQSM", + "description": "Quantitative Structure Models of Single Trees from Laser Scanner Data", + "html_url": "https://github.com/InverseTampere/TreeQSM", + "language": "MATLAB", + "topics": [ + "terrestrial-laser-scanning", + "single-tree", + "point-cloud", + "stem-segmentation", + "lidar" + ], + "stargazers_count": 48, + "license_name": "Other", + "owner_login": "InverseTampere", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/27767416?v=4", + "owner_html_url": "https://github.com/InverseTampere", + "updated_at": "2021-11-04T07:43:21Z" + }, + { + "pirate_id": "SEE6Axt3D6S7Ec41F2SH_", + "added": 1638661036268, + "id": 152138499, + "name": "forestmangr", + "full_name": "sollano/forestmangr", + "description": "R package for forest mensuration and management ", + "html_url": "https://github.com/sollano/forestmangr", + "language": "R", + "topics": [ + "forest-management", + "forest-inventory", + "growth-prediction", + "prediction" + ], + "stargazers_count": 10, + "license_name": "Other", + "owner_login": "sollano", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/19754326?v=4", + "owner_html_url": "https://github.com/sollano", + "updated_at": "2021-11-24T17:19:17Z", + "homepage": null + }, + { + "pirate_id": "ckYMV6ehXZHIRq2CdOe38", + "added": 1638662935334, + "id": 291809619, + "name": "FMT", + "full_name": "gcyr/FMT", + "description": "Forest Management Tool a C++ library for forest planning.", + "html_url": "https://github.com/gcyr/FMT", + "language": "C++", + "topics": [ + "cran", + "fmt", + "forest-management", + "forest-planning", + "forestry", + "optimization", + "python-library", + "simulation" + ], + "stargazers_count": 6, + "license_name": "", + "owner_login": "gcyr", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/17260780?v=4", + "owner_html_url": "https://github.com/gcyr", + "updated_at": "2021-12-02T21:01:26Z", + "homepage": "" + }, + { + "pirate_id": "lFLeD7ba7CZwtcMb1p6Ma", + "added": 1638663188698, + "id": 200656337, + "name": "LANDIS-II-Forest-Roads-Simulation-module", + "full_name": "Klemet/LANDIS-II-Forest-Roads-Simulation-module", + "description": "An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.", + "html_url": "https://github.com/Klemet/LANDIS-II-Forest-Roads-Simulation-module", + "language": "C#", + "topics": [ + "forest-roads", + "forest-management", + "landis-ii", + "landscape", + "road-network" + ], + "stargazers_count": 3, + "license_name": "Apache License 2.0", + "owner_login": "Klemet", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/41070328?v=4", + "owner_html_url": "https://github.com/Klemet", + "updated_at": "2021-09-27T15:26:16Z", + "homepage": "https://klemet.github.io/LANDIS-II-Forest-Roads-Simulation-module/" + }, + { + "pirate_id": "t3ImgPW5ojxqejdF1rnxG", + "added": 1638663942711, + "id": 189142565, + "name": "pycrown", + "full_name": "manaakiwhenua/pycrown", + "description": "PyCrown - Fast raster-based individual tree segmentation for LiDAR data", + "html_url": "https://github.com/manaakiwhenua/pycrown", + "language": "Python", + "topics": [ + "crowns", + "lidar", + "numba", + "python", + "segmentation", + "tree", + "trees" + ], + "stargazers_count": 74, + "license_name": "GNU General Public License v3.0", + "owner_login": "manaakiwhenua", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/47998937?v=4", + "owner_html_url": "https://github.com/manaakiwhenua", + "updated_at": "2021-11-26T07:45:45Z", + "homepage": "https://datastore.landcareresearch.co.nz/dataset/pycrown" + }, + { + "pirate_id": "7EgPXLHDCiDYw7h3LNtjV", + "added": 1638664187840, + "id": 200819472, + "name": "giessdenkiez-de", + "full_name": "technologiestiftung/giessdenkiez-de", + "description": "The consequences of climate change, especially the dry and hot summers, are putting a strain on Berlin's ecosystem. Our urban trees are drying out and suffering long-term damage. Gieß den Kiez is made to enable coordinated citizen participation in the irrigation of urban trees. ", + "html_url": "https://github.com/technologiestiftung/giessdenkiez-de", + "language": "TypeScript", + "topics": [ + "gis", + "rain", + "trees", + "watering", + "urban-forestry" + ], + "stargazers_count": 46, + "license_name": "MIT License", + "owner_login": "technologiestiftung", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/16606790?v=4", + "owner_html_url": "https://github.com/technologiestiftung", + "updated_at": "2021-11-28T03:01:02Z", + "homepage": "https://www.giessdenkiez.de" + }, + { + "pirate_id": "o8UiFoMoVz02sO80W3q-c", + "added": 1638664294811, + "id": 123443006, + "name": "RandomForest-Classification", + "full_name": "florianbeyer/RandomForest-Classification", + "description": "Classifying remote sensing data with random forest", + "html_url": "https://github.com/florianbeyer/RandomForest-Classification", + "language": "Jupyter Notebook", + "topics": [ + "classification", + "random-forest", + "randomforest-classification", + "remote", + "sensing", + "gis", + "tree", + "trees" + ], + "stargazers_count": 72, + "license_name": "GNU General Public License v3.0", + "owner_login": "florianbeyer", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/13834280?v=4", + "owner_html_url": "https://github.com/florianbeyer", + "updated_at": "2021-11-06T06:48:38Z", + "homepage": "" + }, + { + "pirate_id": "oiI7MuIfajgtCYnD9WxAe", + "added": 1638664587694, + "id": 55018631, + "name": "plant-generator", + "full_name": "FlorisCreyf/plant-generator", + "description": "Plant generator", + "html_url": "https://github.com/FlorisCreyf/plant-generator", + "language": "C++", + "topics": [ + "opengl", + "plants", + "visualization", + "tree-generator", + "trees" + ], + "stargazers_count": 12, + "license_name": "GNU General Public License v3.0", + "owner_login": "FlorisCreyf", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/11012029?v=4", + "owner_html_url": "https://github.com/FlorisCreyf", + "updated_at": "2021-10-21T17:49:26Z", + "homepage": "" + }, + { + "pirate_id": "m1xIiJTTvwf-xtALh_jpZ", + "added": 1638953832531, + "id": 167548152, + "name": "weblidar-treetop", + "full_name": "carlos-alberto-silva/weblidar-treetop", + "description": "A Shiny-based Application for Extracting Forest Information from LiDAR data.", + "html_url": "https://github.com/carlos-alberto-silva/weblidar-treetop", + "language": "R", + "topics": [ + "individual-trees", + "lidar", + "canopy-height", + "crown-level", + "3D", + "2D" + ], + "stargazers_count": 79, + "license_name": "", + "owner_login": "carlos-alberto-silva", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/6352657?v=4", + "owner_html_url": "https://github.com/carlos-alberto-silva", + "updated_at": "2021-12-06T11:16:05Z", + "homepage": null + }, + { + "pirate_id": "fg-cXMxxIk5HGo7upj0Sa", + "added": 1638954056775, + "id": 296934807, + "name": "TreeTool", + "full_name": "porteratzo/TreeTool", + "description": "Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.", + "html_url": "https://github.com/porteratzo/TreeTool", + "language": "Jupyter Notebook", + "topics": [ + "carbon-content", + "detect-trees", + "point-cloud", + "photogrammetry", + "3D", + "lidar" + ], + "stargazers_count": 1, + "license_name": "MIT License", + "owner_login": "porteratzo", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/44075849?v=4", + "owner_html_url": "https://github.com/porteratzo", + "updated_at": "2021-12-08T01:02:16Z", + "homepage": null + }, + { + "pirate_id": "9q6yUS4Rd9UP29vOSTTfh", + "added": 1638954216002, + "id": 248560494, + "name": "SSSC", + "full_name": "dwang520/SSSC", + "description": "An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification", + "html_url": "https://github.com/dwang520/SSSC", + "language": "MATLAB", + "topics": [ + "tree-isolation", + "leaf-wood-classification", + "single-tree" + ], + "stargazers_count": 11, + "license_name": "GNU General Public License v3.0", + "owner_login": "dwang520", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/34278700?v=4", + "owner_html_url": "https://github.com/dwang520", + "updated_at": "2021-04-14T08:08:50Z", + "homepage": null, + "images": [ + { + "url": "https://github.com/tudelft3d/AdTree/raw/main/resources/images/AdTree.jpg", + "alt": "3D tree models reconstructed from point clouds" + } + ] + }, + { + "pirate_id": "TYYTbzLa4T9Irk-CxgWr-", + "added": 1638954353370, + "id": 390706039, + "name": "tree_detection", + "full_name": "leggedrobotics/tree_detection", + "description": "This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.", + "html_url": "https://github.com/leggedrobotics/tree_detection", + "language": "C++", + "topics": [ + "cpp", + "detection", + "point-cloud", + "ros", + "tree", + "tree-detection", + "lidar" + ], + "stargazers_count": 5, + "license_name": "", + "owner_login": "leggedrobotics", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/20533298?v=4", + "owner_html_url": "https://github.com/leggedrobotics", + "updated_at": "2021-11-30T17:34:43Z", + "homepage": "" + }, + { + "pirate_id": "7SZ4Ojghsbd3TuZarR8xg", + "added": 1639325263066, + "id": 245827485, + "name": "stanfordclassicr", + "full_name": "hbelbo/stanfordclassicr", + "description": "Functions to read StanForD classic forest machine reports", + "html_url": "https://github.com/hbelbo/stanfordclassicr", + "language": "R", + "topics": [ + "StanForD", + "forest-machines", + "machine-data", + "communication", + "standardization" + ], + "stargazers_count": 2, + "license_name": "Other", + "owner_login": "hbelbo", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/61940406?v=4", + "owner_html_url": "https://github.com/hbelbo", + "updated_at": "2021-02-15T14:12:01Z", + "homepage": "" + }, + { + "pirate_id": "7p60Fzj_D9q9Z7drJc-k_", + "added": 1657052417059, + "id": 485352880, + "name": "wheelRuts_semanticSegmentation", + "full_name": "SmartForest-no/wheelRuts_semanticSegmentation", + "description": "semantic segmentation of wheel-ruts caused by forestry machinery", + "html_url": "https://github.com/SmartForest-no/wheelRuts_semanticSegmentation", + "language": "Python", + "topics": [ + "forest-machines", + "segmentation", + "detection", + "remote-sensing" + ], + "stargazers_count": 8, + "license_name": "", + "owner_login": "SmartForest-no", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/104361828?v=4", + "owner_html_url": "https://github.com/SmartForest-no", + "updated_at": "2022-07-05T15:02:07Z", + "homepage": null, + "images": [ + { + "url": "https://user-images.githubusercontent.com/5663984/169524083-197f2a17-fbc9-4b87-b0fb-324217caade5.png", + "alt": "vwm-brandenburg" + } + ], + "ogimage": "https://user-images.githubusercontent.com/5663984/169524083-197f2a17-fbc9-4b87-b0fb-324217caade5.png" + }, + { + "pirate_id": "qhIn8Le9HWDN7TRlc6ecL", + "added": 1691273790794, + "id": 491705537, + "name": "PercepTreeV1", + "full_name": "norlab-ulaval/PercepTreeV1", + "description": "Implementation of Grondin et al. 2022 \"Tree Detection and Diameter Estimation Based on Deep Learning\". Also includes datasets and some of the pretrained models.", + "html_url": "https://github.com/norlab-ulaval/PercepTreeV1", + "language": "Python", + "topics": [ + "computer-vision", + "datasets", + "forestry", + "remote-sensing" + ], + "stargazers_count": 50, + "license_name": "Apache License 2.0", + "owner_login": "norlab-ulaval", + "owner_avatar_url": "https://avatars.githubusercontent.com/u/30079365?v=4", + "owner_html_url": "https://github.com/norlab-ulaval", + "updated_at": "2023-08-03T10:14:28Z", + "homepage": "" + } +] \ No newline at end of file diff --git a/docs/docs/assets/saebel.png b/docs/docs/assets/saebel.png new file mode 100644 index 0000000000000000000000000000000000000000..035565e4f23e1a3b7fa5cc0e0a5bc975cd99a1ea GIT binary patch literal 14086 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 w6@OQU0NxHWWC + + diff --git a/docs/docs/assets/ship.svg b/docs/docs/assets/ship.svg new file mode 100644 index 0000000..c31b3fc --- /dev/null +++ b/docs/docs/assets/ship.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/docs/docs/assets/wave.svg b/docs/docs/assets/wave.svg new file mode 100644 index 0000000..9a9bc05 --- /dev/null +++ b/docs/docs/assets/wave.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/docs/css/styles.css b/docs/docs/css/styles.css new file mode 100644 index 0000000..8c44dc6 --- /dev/null +++ b/docs/docs/css/styles.css @@ -0,0 +1,3 @@ +.pf-sponsors{background-color:#222;padding:20px;margin:80px 0;text-align:center;color:#444}.pf-sponsor{margin:10px;display:inline-block;text-align:center}.pf-sponsor :hover{transform:scale(1.1)}.pf-sponsor-gold{width:100px;height:100px;border-radius:50%;padding:15px;overflow:hidden}.pf-sponsor-gold img{object-fit:cover;overflow:hidden;max-width:100px;max-height:100px}.pf-sponsor-dark{background-color:#000;color:#fff}.pf-sponsor-dark:hover{background-color:#111}.pf-sponsor-light{background-color:#fff;color:#000}.pf-sponsor-light:hover{background-color:#eee}.pf-sponsor .pf-sponsor-text{font-size:0.8em;margin-top:30px;display:inline-block}.pf-sponsor-gold-header{color:yellow}.bibliography{margin:50px auto;max-width:700px;list-style:none}.bibliography h2{font-size:1.5em;margin-bottom:0}.bibliography .pf-scholar-abstract{margin:20px;padding:0;font-size:0.9em;font-style:italic;display:none}#mt-body{width:fit-content;overflow:scroll;width:100%;top:0;bottom:0;height:350px;z-index:1;transition:left .2s ease-in-out;display:flex;flex-direction:row;border-radius:10px}#mt-body a{text-decoration:underline}#mt-body article{background-color:#323232;border-radius:10px;padding:10px;margin:10px;display:flex;flex-direction:column;justify-content:center;width:90vw;text-align:center;aspect-ratio:9/9}#mt-body .mt-avatar,#mt-body .mt-user{display:none}#mt-body .img-ratio14_7{overflow:hidden}#mt-body .toot-date{font-size:0.8em;color:rgba(255,255,255,0.5);text-decoration:none}#mt-body .toot-media{aspect-ratio:16/9}.pf-feed{position:relative;margin:150px 0}.pf-feed-line{position:absolute;left:30px;top:-50px}.pf-feed-active{overflow-x:hidden;width:100%}.pf-feed-active #mt-body{left:0}.pf-feed-active .pf-main{position:relative}@font-face{font-family:'Estonia';src:url("../assets/fonts/estonia-regular-webfont.woff2") format("woff2"),url("../assets/fonts/estonia-regular-webfont.woff") format("woff");font-weight:normal;font-style:normal}h1{font-family:"Estonia",cursive;font-weight:normal;text-align:center}h2{font-family:"Estonia",cursive;text-align:center;font-size:2.4em}.h4{font-size:1.2rem}h1.pf-title{margin:30px 10px 0;font-size:4em;line-height:1em}.pf-under-title{font-size:0.8em;max-width:500px;margin:0 auto}.pf-skelleton-img{margin-top:100px;min-width:400px}.pf-hidden{display:none}body{font-family:"Times New Roman",serif;letter-spacing:0.1em;background-color:#111;color:#fff;font-size:1.3em;margin:0}main,.no-margin{margin:0px}a,.pf-clickable{color:inherit;text-decoration:none;cursor:pointer;user-select:none}a:hover,.pf-active{color:#61d202}img{max-width:100%}.m-2{margin:0 0 1em 1em}.pf-filter-col>*{margin:50px 10px}.pf-filter-col.pf-no-data #gf-sorting{display:none}#gf-sorting{margin-top:20px}.pf-sticky-top{position:sticky;top:10px}.sable{cursor:url("../assets/saebel.png"),auto}.pf-flag{margin:0px 20px 100px 0;flex-direction:column}.pf-flag>*:first-child{width:400px;overflow:hidden}.pf-ship{padding:0px 0 0px 20px}.pf-ship .h3{display:block;overflow:hidden;text-overflow:ellipsis;font-weight:bold;font-size:1.2em}.pf-pirate-ogimage{margin:50px}.pf-pirate-ogimage *{border-radius:10px;background-color:#000;overflow:hidden}.pf-timestamp{font-size:0.6em}.pf-inline-icon{height:1em}.pf-ship h3,.pf-ship .h3{font-family:"Estonia",cursive;font-size:2rem;text-transform:uppercase;margin-bottom:0.2em;font-weight:bold}.pf-ship p{margin:0.2em 0 0.2em}.pf-ship-list{margin:50px auto;max-width:700px}.pf-ship-list>*:last-child .pf-ship{border-bottom:none}.pf-row{display:flex;flex-direction:row}.pf-row-bottom{align-self:flex-end}.pf-column{display:flex;flex-direction:column}.pf-treasure{font-family:"Estonia",cursive;font-size:3em;line-height:0.8em;position:relative}.pf-treasure-add img{max-width:25px}.pf-treasure-selected .pf-treasure-add{display:none}#pf-treasure-stack{position:relative;width:50px}#pf-treasure-stack>*{position:absolute;counter-increment:my-sec-counter;bottom:calc(10* counter(my-sec-counter));width:25px}.text-center{text-align:center}.pf-pirate-actions>*{text-align:center;margin:20px 0;display:block}.pf-treasure-remove{display:block;font-size:0.8rem}.pf-treasure-selected .pf-treasure-remove img{max-width:25px}.pf-type-index .pf-treasure-remove{display:none}#gf-to-chest{position:fixed;z-index:2;top:15px;right:15px;white-space:nowrap}#gf-to-chest,#gf-to-list{font-size:0.6em}.pf-type-index #gf-to-list{display:none}.pf-owner-name{font-size:0.9rem}.pf-owner-spacer{margin:0 10px;display:inline-block}.pf-grow{flex-grow:1}.pf-meta{font-size:1rem;justify-content:space-between}.pf-meta-lang::before,.pf-meta-star::before,.pf-meta-license::before,.pf-meta-timeglass::before,.pf-coin-bronze::before,.pf-coin-silver::before,.pf-coin-gold::before{content:' ';display:inline-block;margin-right:10px;width:1rem;height:1rem;background-image:url("../assets/icons/brackets.svg");background-size:1rem 1rem}.pf-meta-star::before{background-image:url("../assets/icons/star.svg")}.pf-star-todo::before{background-image:url("../assets/icons/star-todo.svg")}.pf-star-todo{right:30px;top:70px;position:absolute;z-index:4;color:#61d202;transform:scale(1);cursor:pointer}.pf-star-todo:hover{transform:scale(1.5)}dialog::backdrop{background-color:rgba(0,0,0,0.8)}dialog:modal{padding:50px}.pf-meta-license::before{background-image:url("../assets/icons/license.svg")}.pf-meta-timeglass::before{background-image:url("../assets/icons/timeglass.svg")}.pf-meta-timeglass.pf-is-new::before{background-image:url("../assets/icons/timeglass-new.svg")}.pf-is-new{color:#d1a805;font-size:0.8em}.pf-coin-bronze::before{background-image:url("../assets/coin-bronce.svg")}.pf-coin-silver::before{background-image:url("../assets/coin-silver.svg")}.pf-coin-gold::before{background-image:url("../assets/coin-stacked.svg")}.pf-inline-men>*{display:inline-block;margin:0 15px 8px 0;font-size:.8em}.pf-icon-telescope{height:1em;width:1em;background-image:url("../assets/icons/telescope.svg");background-repeat:no-repeat;background-size:contain}.pf-openext{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-openext::after{content:' ';display:inline-block;margin-left:10px;width:1rem;height:1rem;background-size:1rem 1rem;background-image:url("../assets/icons/openext.svg")}.pf-openext.pf-github::after{background-image:url("../assets/icons/github-mark-white.svg")}.pf-openext.pf-coin::after{background-image:url("../assets/icons/coin-bronce.svg")}.pf-footer-wave,.pf-footer-wave::before,.pf-footer-wave::after{content:'.';bottom:0;position:absolute;display:block;height:100px;width:100%;background-image:url("../assets/wave.svg");background-repeat:repeat-x;background-size:auto 60px;animation:linear infinite;animation-duration:4s}.pf-footer-wave::before{animation-duration:5s;animation-name:run}.pf-footer-wave::after{animation-duration:6s;animation-name:run2}.pf-footer-wave{position:relative;width:100%;color:black;animation-name:run3;height:170px;overflow-x:hidden;margin-top:50px}.margin-big{margin:50px}.margin-v-big{margin:50px 0}.pf-ship-sailing{position:absolute;display:block;height:150px;width:150px;background-image:url("../assets/ship.svg");background-repeat:no-repeat;background-size:auto 150px;animation:linear infinite;animation-duration:50s;animation-name:ship}hr.gf-seperator{height:20px;border:none;position:relative;display:block;background-image:url("../assets/icons/selector.svg");background-repeat:no-repeat;background-position:50% 50%;background-size:70% 7px;margin:90px 0}.pf-pirate-avatar{margin:0 auto;position:relative;height:75px;width:75px}.pf-pirate-name{text-align:center}.pf-gold{position:absolute;left:-50px;top:20px}.pf-pirate-avatar::before,#pf-treasure-counter{position:absolute;bottom:0;left:0;content:'';background-image:url("../assets/pirate-border.svg");background-size:75px 75px;display:block;width:75px;height:75px}.pf-pirate-avatar img{border-radius:50%;display:block;background-color:#333}.pf-nowrap{white-space:nowrap}ul.pf-topics{list-style:none;list-style-position:inside;padding:0}.pf-topics li{display:inline-block;font-size:0.6em;margin:5px 10px 0 0}.pf-fallback{display:none}.pf-no-data>.pf-fallback{display:block}.pf-remove-list{text-align:center;border-top:1px solid #333;margin-top:15px;padding-top:5px}.pf-treasure-selected .pf-topics,.pf-treasure-selected .pf-meta{display:none}.pf-treasure-selected{opacity:0.5}.pf-process-coin{position:absolute;z-index:1;bottom:-10px;left:-10px;background-image:url("../assets/icons/coin-bronce.svg");min-width:25px;height:25px;background-size:contain;background-repeat:no-repeat}.pf-process-coin>*{display:none}.pf-flat-coin-bronze{background-image:url("../assets/icons/coin-bronce.svg")}.pf-flat-coin-silver{background-image:url("../assets/icons/coin-silver.svg")}.pf-flat-coin-gold{background-image:url("../assets/icons/coin-gold.svg")}.pf-process-coin:hover>*{display:block}.pf-process-coin .pf-process-coin-select{position:relative;top:0px;left:0px;background-color:#222;padding:5px 5px 5px 5px;border:none;box-shadow:0 0 3px #111;font-size:0.8em}.pf-process-coin .pf-process-coin-select>*{white-space:nowrap;display:block;margin:8px}.pf-unterlines{text-decoration:underline}#pf-treasure-counter{position:absolute;left:20px;bottom:-10px;background:#eee;color:#111;border-radius:50%;width:20px;height:20px;z-index:2;font-size:20px;text-align:center;line-height:25px;transform:rotate(-30deg);font-weight:bolder}footer>*{margin:20px auto 20px auto;max-width:400px;text-align:center}@keyframes run{0%{background-position:0px 20px}50%{background-position:20px 30px}100%{background-position:0px 20px}}@keyframes run2{0%{background-position:320px 50px}50%{background-position:300px 40px}100%{background-position:320px 50px}}@keyframes run3{0%{background-position:500px 80px}50%{background-position:520px 70px}100%{background-position:500px 80px}}@keyframes ship{0%{left:-15%}100%{left:110%}}.pf-ad{margin-top:100px}.data-star-avatar{display:none;border-radius:50%;background-color:#333;background-size:cover;background-position:center;background-repeat:no-repeat;margin:0 10px 0 0;overflow:hidden;position:absolute;z-index:1}.pf-meta-star:hover .data-star-avatar{display:block}#pf-night-sky{position:absolute;top:0;left:0;width:100%;height:100px;margin-bottom:30px;pointer-events:none}#pf-night-sky>*{pointer-events:auto}@keyframes pf-star-flicker{0%{opacity:0.1}100%{opacity:0.9}}.pf-hidden-big{display:none}.pf-hidden-small{display:block}.pf-flag{flex-direction:column;margin-right:0}.pf-flag>*:first-child{width:100%;flex-direction:row;align-items:flex-end}.pf-flag>*:first-child .pf-filter-col{margin:0;display:flex;flex-direction:row}.pf-flag>*:first-child .pf-filter-col>*{margin:10px 10px}.pf-type-treasure .pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-type-treasure .pf-flag>*:first-child .pf-skelleton-img{margin-top:0;align-self:flex-start}@media only screen and (max-width: 800px){.pf-ship-list{width:100%;overflow:hidden;max-width:700px}.pf-hidden-big{display:block}.pf-hidden-small{display:none}.pf-ad{width:100vw;overflow:hidden}.pf-flag>*:first-child{flex-direction:column;align-items:center}.pf-flag>*:first-child header{margin:50px 0}.pf-small-column{flex-direction:column}.pf-footer-wave{position:sticky;bottom:0}.pf-pirate-ogimage{border-radius:10px;background-color:#000;margin:50px 10px}}.pf-h-island-list{display:flex;flex-direction:row;justify-content:flex-start;margin:0 10px;overflow-x:scroll}.pf-h-island-list>*:hover{background-color:#333}.pf-h-island-list>*{margin:40px 10px;background-color:#222;min-width:400px;max-width:500px;padding:10px}.pf-h-island-list>* .pf-pirate-avatar{margin:-50px auto 0}.pf-h-island-list>* .pf-ship{text-align:center}.pf-outline-btn{border:2px solid #333;border-radius:50px;padding:10px 15px;margin:10px;display:inline-block;cursor:pointer;background-color:#222}.pf-outline-btn:hover{background-color:#333;color:#fff} + +/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/docs/docs/css/styles.css.map b/docs/docs/css/styles.css.map new file mode 100644 index 0000000..3c25202 --- /dev/null +++ b/docs/docs/css/styles.css.map @@ -0,0 +1,18 @@ +{ + "version": 3, + "file": "styles.css", + "sources": [ + "styles.scss", + "_sass/sponsors.scss", + "_sass/bib.scss", + "_sass/mastodon-feed.scss" + ], + "sourcesContent": [ + "@import \"sponsors.scss\";\n@import \"bib.scss\";\n@import \"mastodon-feed.scss\";\n\n@font-face {\n font-family: 'Estonia';\n src: url('../assets/fonts/estonia-regular-webfont.woff2') format('woff2'),\n url('../assets/fonts/estonia-regular-webfont.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n}\n\n$font-stack: 'Times New Roman', serif;\n$font-accent: 'Estonia', cursive;\n$water: #111 ;\n$life: #fff ;\n$primary-color: #333;\n\nh1{\n font-family: $font-accent;\n font-weight: normal;\n text-align: center;\n}\nh2{\n font-family: $font-accent;\n text-align: center;\n font-size: 2.4em;\n}\n.h4{\n font-size: 1.2rem;\n}\nh1.pf-title{\n margin: 30px 10px 0;\n font-size: 4em;\n line-height: 1em;\n}\n.pf-under-title{\n font-size: 0.8em;\n max-width: 500px;\n margin: 0 auto;\n}\n.pf-skelleton-img{\n margin-top: 100px;\n min-width: 400px;\n}\n.pf-hidden{\n display: none;\n}\n\nbody{\n font-family: $font-stack;\n letter-spacing: 0.1em;\n background-color: $water;\n color: $life;\n font-size: 1.3em;\n margin: 0;\n}\nmain, .no-margin{\n margin: 0px;\n}\na, .pf-clickable{\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n user-select: none;\n}\na:hover, .pf-active{\n color:#61d202;\n}\nimg{\n max-width: 100%;\n}\n.m-2{\n margin: 0 0 1em 1em;\n}\n.pf-filter-col{\n & > *{\n margin: 50px 10px;\n }\n}\n.pf-filter-col.pf-no-data #gf-sorting{\n display: none;\n}\n#gf-sorting{\n margin-top: 20px;\n}\n.pf-sticky-top{\n position: sticky;\n top: 10px;\n}\n.sable{\n cursor: url('../assets/saebel.png'), auto;\n}\n.pf-flag{\n margin: 0px 20px 100px 0;\n flex-direction: column;\n}\n.pf-flag > *:first-child{\n width: 400px;\n overflow: hidden;\n}\n.pf-ship{\n padding: 0px 0 0px 20px ;\n .h3{\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: bold;\n font-size: 1.2em;\n }\n}\n.pf-pirate-ogimage{\n margin: 50px;\n}\n.pf-pirate-ogimage *{\n border-radius: 10px;\n background-color: #000;\n \n overflow: hidden;\n}\n.pf-timestamp{\n font-size: 0.6em;\n}\n.pf-inline-icon{\n height: 1em;\n}\n.pf-ship h3, .pf-ship .h3{\n font-family: $font-accent;\n font-size: 2rem;\n //line-height: 1rem;\n text-transform: uppercase;\n margin-bottom: 0.2em;\n font-weight: bold;\n}\n.pf-ship p{\n margin: 0.2em 0 0.2em;\n}\n.pf-ship-list{\n margin: 50px auto;\n max-width: 700px;\n}\n.pf-ship-list > *:last-child .pf-ship{\n border-bottom: none;\n}\n.pf-row{\n display: flex;\n flex-direction: row;\n}\n.pf-row-bottom{\n align-self: flex-end;\n}\n.pf-column{\n display: flex;\n flex-direction: column;\n}\n.pf-treasure{\n font-family: $font-accent;\n font-size: 3em;\n line-height: 0.8em;\n position: relative;\n}\n.pf-treasure-add{\n img{\n max-width: 25px;\n }\n}\n.pf-treasure-selected .pf-treasure-add{\n display: none;\n}\n\n#pf-treasure-stack{\n position: relative;\n width: 50px;\n}\n#pf-treasure-stack > *{\n position: absolute;\n counter-increment: my-sec-counter;\n bottom: calc(10* counter(my-sec-counter));\n width: 25px;\n}\n\n\n.text-center{\n text-align: center;\n}\n.pf-pirate-actions > *{\n text-align: center;\n margin: 20px 0;\n display: block;\n}\n.pf-treasure-remove{\n display: block;\n font-size: 0.8rem;\n}\n.pf-treasure-selected .pf-treasure-remove{\n img{\n max-width: 25px;\n }\n}\n.pf-type-index .pf-treasure-remove{\n display: none;\n}\n#gf-to-chest{\n position: fixed;\n z-index: 2;\n top: 15px;\n right: 15px;\n white-space: nowrap;\n}\n#gf-to-chest, #gf-to-list{\n font-size: 0.6em;\n}\n\n.pf-type-index #gf-to-list{\n display: none;\n}\n.pf-owner-name{\n font-size: 0.9rem;\n}\n.pf-owner-spacer{\n margin: 0 10px;\n display: inline-block;\n}\n.pf-grow{\n flex-grow: 1;\n}\n.pf-meta{\n font-size: 1rem;\n justify-content: space-between;\n}\n.pf-meta-lang::before, \n.pf-meta-star::before, \n.pf-meta-license::before, \n.pf-meta-timeglass::before, \n.pf-coin-bronze::before, .pf-coin-silver::before, .pf-coin-gold::before{\n content: ' ';\n display: inline-block;\n margin-right: 10px;\n width: 1rem;\n height: 1rem;\n background-image: url('../assets/icons/brackets.svg');\n background-size: 1rem 1rem;\n}\n.pf-meta-star::before{\n background-image: url('../assets/icons/star.svg');\n}\n.pf-star-todo::before{\n background-image: url('../assets/icons/star-todo.svg');\n \n}\n.pf-star-todo{\n right: 30px;\n top: 70px;\n position: absolute;\n z-index: 4;\n color:#61d202;\n transform: scale(1);\n cursor: pointer;\n}\n.pf-star-todo:hover{\n transform: scale(1.5);\n}\ndialog::backdrop {\n background-color: rgba(0, 0, 0, 0.8);\n}\ndialog:modal {\n padding: 50px;\n}\n.pf-meta-license::before{\n background-image: url('../assets/icons/license.svg');\n}\n.pf-meta-timeglass::before{\n background-image: url('../assets/icons/timeglass.svg');\n}\n.pf-meta-timeglass.pf-is-new::before{\n background-image: url('../assets/icons/timeglass-new.svg');\n}\n.pf-is-new{\n color: #d1a805;\n font-size: 0.8em;\n}\n.pf-coin-bronze::before{\n background-image: url('../assets/coin-bronce.svg');\n}\n.pf-coin-silver::before{\n background-image: url('../assets/coin-silver.svg');\n}\n.pf-coin-gold::before{\n background-image: url('../assets/coin-stacked.svg');\n}\n.pf-inline-men > *{\n display: inline-block;\n margin: 0 15px 8px 0;\n font-size: .8em;\n}\n.pf-icon-telescope{\n height: 1em;\n width: 1em;\n background-image: url('../assets/icons/telescope.svg');\n background-repeat: no-repeat;\n background-size: contain;\n}\n.pf-openext{\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.pf-openext::after{\n content: ' ';\n display: inline-block;\n margin-left: 10px;\n width: 1rem;\n height: 1rem;\n background-size: 1rem 1rem;\n background-image: url('../assets/icons/openext.svg');\n}\n.pf-openext.pf-github::after{\n background-image: url('../assets/icons/github-mark-white.svg');\n}\n.pf-openext.pf-coin::after{\n background-image: url('../assets/icons/coin-bronce.svg');\n}\n.pf-footer-wave, .pf-footer-wave::before, .pf-footer-wave::after{\n content: '.';\n bottom: 0;\n position: absolute;\n display: block;\n height: 100px;\n width: 100%;\n //transform: translate(0px, -50px);\n background-image: url('../assets/wave.svg');\n background-repeat: repeat-x;\n background-size: auto 60px;\n animation: linear infinite;\n animation-duration: 4s;\n}\n\n.pf-footer-wave::before{\n animation-duration: 5s;\n animation-name: run;\n}\n.pf-footer-wave::after{\n animation-duration: 6s;\n animation-name: run2;\n}\n.pf-footer-wave{\n position: relative;\n width: 100%;\n color: black;\n animation-name: run3;\n height: 170px;\n overflow-x: hidden;\n margin-top: 50px;\n}\n.margin-big{\n margin: 50px;\n}\n.margin-v-big{\n margin: 50px 0;\n}\n.pf-ship-sailing{\n position: absolute;\n display: block;\n height: 150px;\n width: 150px;\n background-image: url('../assets/ship.svg');\n background-repeat: no-repeat;\n background-size: auto 150px;\n animation: linear infinite;\n animation-duration: 50s;\n animation-name: ship;\n}\nhr.gf-seperator{\n height: 20px;\n border:none;\n position: relative;\n display: block;\n background-image: url('../assets/icons/selector.svg');\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 70% 7px;\n margin: 90px 0;\n}\n.pf-pirate-avatar{\n margin: 0 auto;\n position: relative;\n height: 75px;\n width: 75px;\n}\n.pf-pirate-name{\n text-align: center;\n}\n/*.pf-type-index .pf-pirate-avatar:not(.data-star-avatar)::after{\n position: absolute;\n top: -29px;\n left: -23px;\n content: '';\n background-image: url('../assets/icons/flag.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n z-index:-1;\n transform: rotate(180deg);\n transition: transform 250ms;\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}\n.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-pirate-avatar::after{\n transform: rotate(0deg);\n}*/\n.pf-gold{\n position: absolute;\n left: -50px;\n top: 20px;\n}\n.pf-pirate-avatar::before, #pf-treasure-counter{\n position: absolute;\n bottom: 0;\n left: 0;\n content: '';\n background-image: url('../assets/pirate-border.svg');\n background-size: 75px 75px;\n display: block;\n width: 75px;\n height: 75px;\n}\n.pf-pirate-avatar img{\n border-radius: 50%;\n display: block;\n background-color: #333;\n}\n/*.pf-type-index .pf-pirate:hover:not(.pf-treasure-selected) .pf-cross{\n background-color: rgba(238, 238, 238, 1);\n background-image: url('../assets/icons/cross.svg');\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50%;\n\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\n.pf-nowrap{\n white-space: nowrap;\n}\n/*.pf-cross::after{\n content:' ';\n background-image: url('../assets/icons/cross.svg');\n background-size: contain;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 50%;\n}*/\nul.pf-topics{\n list-style: none;\n list-style-position: inside;\n padding: 0;\n}\n.pf-topics li{\n display: inline-block;\n font-size: 0.6em;\n margin: 5px 10px 0 0;\n}\n.pf-fallback{\n display: none;\n}\n.pf-no-data > .pf-fallback {\n display: block;\n}\n\n.pf-remove-list{\n text-align: center;\n border-top: 1px solid #333;\n margin-top: 15px;\n padding-top: 5px;\n}\n\n.pf-treasure-selected .pf-topics, .pf-treasure-selected .pf-meta{\n display:none;\n}\n.pf-treasure-selected{\n opacity: 0.5;\n}\n.pf-process-coin{\n position: absolute;\n z-index: 1;\n bottom: -10px;\n left: -10px;\n //background-image: url('../assets/coin-bronce.svg');\n background-image: url('../assets/icons/coin-bronce.svg');\n min-width: 25px;\n height: 25px;\n background-size: contain;\n background-repeat: no-repeat;\n > *{\n display: none;\n }\n}\n.pf-flat-coin-bronze{\n background-image: url('../assets/icons/coin-bronce.svg');\n}\n.pf-flat-coin-silver{\n background-image: url('../assets/icons/coin-silver.svg');\n}\n.pf-flat-coin-gold{\n background-image: url('../assets/icons/coin-gold.svg');\n}\n.pf-process-coin:hover > *{\n display: block;\n}\n.pf-process-coin .pf-process-coin-select{\n position: relative;\n top: 0px;\n left: 0px;\n background-color: #222;\n padding: 5px 5px 5px 5px;\n border: none;\n box-shadow: 0 0 3px #111;\n font-size: 0.8em;\n}\n.pf-process-coin .pf-process-coin-select > *{\n white-space: nowrap;\n display: block;\n margin: 8px;\n}\n\n.pf-unterlines{\n text-decoration: underline;\n}\n\n#pf-treasure-counter{\n position:absolute;\n left: 20px;\n bottom: -10px;\n background: #eee;\n color: #111;\n border-radius: 50%;\n width: 20px;\n height: 20px;\n z-index: 2;\n font-size: 20px;\n text-align: center;\n line-height: 25px;\n transform: rotate(-30deg);\n font-weight: bolder;\n}\n\nfooter > *{\n margin: 20px auto 20px auto;\n max-width: 400px;\n text-align: center;\n}\n\n\n\n@keyframes run {\n 0% {\n background-position: 0px 20px;\n }\n 50% {\n background-position: 20px 30px;\n }\n 100% {\n background-position: 0px 20px;\n }\n}\n@keyframes run2 {\n 0% {\n background-position: 320px 50px;\n }\n 50% {\n background-position: 300px 40px;\n }\n 100% {\n background-position: 320px 50px;\n }\n}\n@keyframes run3 {\n 0% {\n background-position: 500px 80px;\n }\n 50% {\n background-position: 520px 70px;\n }\n 100% {\n background-position: 500px 80px;\n }\n}\n\n@keyframes ship {\n 0% {\n left: -15%;\n }\n 100% {\n left: 110%;\n }\n}\n\n.pf-ad{\n margin-top: 100px\n}\n\n.data-star-avatar{\n display: none;\n border-radius: 50%;\n background-color: #333;\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin: 0 10px 0 0;\n overflow: hidden;\n position: absolute;\n z-index: 1;\n}\n.pf-meta-star:hover .data-star-avatar{\n display: block;\n}\n#pf-night-sky{\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100px;\n margin-bottom: 30px;\n pointer-events:none;\n & > *{\n pointer-events: auto;\n }\n\n}\n@keyframes pf-star-flicker {\n 0% {\n opacity: 0.1;\n }\n 100% {\n opacity: 0.9;\n }\n}\n\n.pf-hidden-big{\n display: none;\n}\n.pf-hidden-small{\n display: block;\n}\n\n.pf-flag{\n flex-direction: column;\n margin-right: 0;\n}\n.pf-flag > *:first-child{\n width: 100%;\n flex-direction: row;\n align-items: flex-end;\n .pf-filter-col{\n margin: 0;\n display: flex;\n flex-direction: row;\n & > *{\n margin: 10px 10px;\n }\n }\n}\n.pf-type-treasure{\n .pf-flag > *:first-child{\n flex-direction: column;\n align-items: center;\n .pf-skelleton-img{\n margin-top: 0;\n align-self: flex-start;\n }\n }\n}\n@media only screen and (max-width: 800px) {\n .pf-ship-list{\n //margin: 0 10px;\n width: 100%;\n overflow: hidden;\n max-width: 700px;\n }\n .pf-hidden-big{\n display: block;\n }\n .pf-hidden-small{\n display: none;\n }\n .pf-ad{\n width: 100vw;\n overflow: hidden;\n }\n .pf-flag>*:first-child{\n flex-direction: column;\n align-items: center;\n header{\n margin: 50px 0;\n }\n }\n \n .pf-small-column{\n flex-direction: column;\n }\n\n .pf-footer-wave{\n position: sticky;\n bottom: 0;\n }\n .pf-pirate-ogimage{\n border-radius: 10px;\n background-color: #000;\n margin: 50px 10px;\n }\n\n}\n\n\n.pf-h-island-list{\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n margin: 0 10px;\n overflow-x: scroll;\n // flex-wrap: wrap;\n\n > *:hover{\n background-color: #333;\n }\n > *{\n margin: 40px 10px;\n background-color: #222;\n \n min-width: 400px;\n max-width: 500px;\n padding: 10px;\n .pf-pirate-avatar{\n margin: -50px auto 0;\n }\n .pf-ship{\n text-align: center;\n }\n }\n}\n\n\n\n.pf-outline-btn{\n border: 2px solid #333;\n border-radius: 50px;\n padding: 10px 15px;\n margin: 10px;\n display: inline-block;\n cursor: pointer;\n background-color: #222;\n &:hover{\n background-color: #333;\n color: #fff;\n }\n}", + "\n.pf-sponsors {\n background-color: #222;\n padding: 20px;\n margin: 80px 0;\n text-align: center;\n color: #444;\n}\n.pf-sponsor {\n margin: 10px;\n display: inline-block;\n text-align: center;\n :hover {\n transform: scale(1.1);\n }\n &-gold {\n width: 100px;\n height: 100px;\n border-radius: 50%;\n padding: 15px;\n overflow: hidden;\n img{\n object-fit: cover;\n overflow: hidden;\n max-width: 100px;\n max-height: 100px;\n }\n }\n &-dark {\n background-color: #000;\n color: #fff;\n }\n &-dark:hover {\n background-color: #111;\n }\n &-light {\n background-color: #fff;\n color: #000;\n }\n &-light:hover {\n background-color: #eee;\n }\n\n .pf-sponsor-text {\n font-size: 0.8em;\n margin-top: 30px;\n display: inline-block;\n }\n\n}\n.pf-sponsor-gold-header{\n color: yellow;\n}", + ".bibliography{\n margin: 50px auto;\n max-width: 700px;\n list-style: none;\n h2{\n font-size: 1.5em;\n margin-bottom: 0;\n }\n .pf-scholar-abstract{\n margin: 20px;\n padding: 0;\n font-size: 0.9em;\n font-style: italic;\n display: none;\n }\n}", + "\n.scroll-wrapper{\n \n}\nbody{\n //left: 300px;\n}\n\n#mt-body{\n \n width: fit-content;\n overflow: scroll;\n \n width: 100%;\n top: 0;\n bottom: 0;\n height: 350px;\n z-index: 1;\n transition: left .2s ease-in-out;\n display: flex;\n \n flex-direction: row;\n border-radius: 10px;\n\n a{\n text-decoration: underline;\n }\n\n article{\n background-color: rgba(50,50,50,7);\n border-radius: 10px;\n padding: 10px;\n margin: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 90vw;\n text-align: center;\n aspect-ratio: 9/9;\n }\n .mt-avatar, .mt-user{\n display: none;\n }\n .img-ratio14_7{\n //aspect-ratio: 16/9;\n overflow: hidden;\n }\n .toot-date{\n font-size: 0.8em;\n color: rgba(255,255,255,0.5);\n text-decoration: none;\n }\n .toot-media{\n aspect-ratio: 16/9;\n }\n}\n.pf-feed{\n position: relative;\n margin: 150px 0;\n}\n.pf-feed-line{\n position: absolute;\n left: 30px;\n top: -50px;\n }\n.pf-feed-active{\n #mt-body{\n left: 0;\n }\n .pf-main{\n position: relative;\n //left: 350px;\n }\n overflow-x: hidden;\n width: 100%;\n\n}\n" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/docs/docs/feed.xml b/docs/docs/feed.xml new file mode 100644 index 0000000..a6fe827 --- /dev/null +++ b/docs/docs/feed.xml @@ -0,0 +1 @@ +Jekyll2023-08-09T00:59:41+02:00https://thepirateforest.org/feed.xmlThe Pirate ForestDiscover Treasures of Forest-related Open Source Software. \ No newline at end of file diff --git a/docs/docs/feeds/mastodon.xml b/docs/docs/feeds/mastodon.xml new file mode 100644 index 0000000..1913102 --- /dev/null +++ b/docs/docs/feeds/mastodon.xml @@ -0,0 +1,970 @@ + + https://thepirateforest.org/feeds/mastodon.xml + The Pirate Forest + + 2023-08-09T00:59:41+02:00 + + + + + + + + https://thepirateforest.org/treasure/3D-CMCC-FEM + 3D-CMCC-FEM + + Treasure discovered: 3D-CMCC-FEM, 3D-CMCC-FEM code

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-10-28T14:37:06+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/AdTree + AdTree + + Treasure discovered: AdTree, Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees

    ]]> +
    + 2021-11-28T00:00:00+01:00 + 2021-11-05T04:45:24+01:00 + + + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/Biomassr + Biomassr + + Treasure discovered: Biomassr, Shiny app to calculate above ground biomass for forest plots.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-08-10T05:39:31+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/DeepForest + DeepForest + + Treasure discovered: DeepForest, Python Package for Tree Crown Detection in Airborne RGB imagery

    ]]> +
    + 2021-11-30T00:00:00+01:00 + 2021-11-27T08:17:50+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/Digital-Forestry-Toolbox + Digital-Forestry-Toolbox + + Treasure discovered: Digital-Forestry-Toolbox, A collection of digital forestry tools for Matlab/Octave

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-09-30T19:50:41+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/FMT + FMT + + Treasure discovered: FMT, Forest Management Tool a C++ library for forest planning.

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-12-02T22:01:26+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/FSCT + FSCT + + Treasure discovered: FSCT, Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.

    ]]> +
    + 2021-11-30T00:00:00+01:00 + 2021-11-30T09:01:28+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/ForestBiometrics + ForestBiometrics + + Treasure discovered: ForestBiometrics, A library for various forest mensuration and biometrics functions in Julia

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-21T10:37:35+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/ForestGapR + ForestGapR + + Treasure discovered: ForestGapR, An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-10-19T11:08:27+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/LANDIS-II-Forest-Roads-Simulation-module + LANDIS-II-Forest-Roads-Simulation-module + + Treasure discovered: LANDIS-II-Forest-Roads-Simulation-module, An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-09-27T17:26:16+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/LeWoS + LeWoS + + Treasure discovered: LeWoS, Unsupervised leaf-wood classification from laser scanning point clouds

    ]]> +
    + 2021-12-01T00:00:00+01:00 + 2021-07-08T10:17:46+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/LiDARForestryHeight + LiDARForestryHeight + + Treasure discovered: LiDARForestryHeight, Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-26T10:29:59+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/PercepTreeV1 + PercepTreeV1 + + Treasure discovered: PercepTreeV1, Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models.

    ]]> +
    + 2023-08-06T00:00:00+02:00 + 2023-08-03T12:14:28+02:00 + + + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/RandomForest-Classification + RandomForest-Classification + + Treasure discovered: RandomForest-Classification, Classifying remote sensing data with random forest

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-11-06T07:48:38+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/SBCM + SBCM + + Treasure discovered: SBCM, The Simple Biomass Comparison Model

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-03-03T16:15:56+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/SEILAPLAN + SEILAPLAN + + Treasure discovered: SEILAPLAN, SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-06-30T16:21:47+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/SSSC + SSSC + + Treasure discovered: SSSC, An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification

    ]]> +
    + 2021-12-08T00:00:00+01:00 + 2021-04-14T10:08:50+02:00 + + + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/TreeDiversity + TreeDiversity + + Treasure discovered: TreeDiversity, Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-09-22T05:12:45+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/TreeLS + TreeLS + + Treasure discovered: TreeLS, R functions for processing individual tree TLS point clouds

    ]]> +
    + 2021-12-01T00:00:00+01:00 + 2021-11-25T16:44:30+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/TreeQSM + TreeQSM + + Treasure discovered: TreeQSM, Quantitative Structure Models of Single Trees from Laser Scanner Data

    ]]> +
    + 2021-12-01T00:00:00+01:00 + 2021-11-04T08:43:21+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/TreeTool + TreeTool + + Treasure discovered: TreeTool, Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.

    ]]> +
    + 2021-12-08T00:00:00+01:00 + 2021-12-08T02:02:16+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/awesome-forests + awesome-forests + + Treasure discovered: awesome-forests, 🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community.

    ]]> +
    + 2021-11-28T00:00:00+01:00 + 2021-11-21T23:19:14+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/carboncalc + carboncalc + + Treasure discovered: carboncalc, Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-25T11:50:39+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/clus + clus + + Treasure discovered: clus, Caribou and land use simulator- decision support model for caribou and forest management

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-24T23:33:40+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/deepforestr + deepforestr + + Treasure discovered: deepforestr, R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.

    ]]> +
    + 2021-11-30T00:00:00+01:00 + 2021-10-04T22:55:54+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/forestfrag3d + forestfrag3d + + Treasure discovered: forestfrag3d, Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2020-04-17T15:03:28+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/forestmangr + forestmangr + + Treasure discovered: forestmangr, R package for forest mensuration and management

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-11-24T18:19:17+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/forvol + forvol + + Treasure discovered: forvol, An R package for tree volume equations.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-01-27T17:28:16+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/giessdenkiez-de + giessdenkiez-de + + Treasure discovered: giessdenkiez-de, The consequences of climate change, especially the dry and hot summers, are putting a strain on Berlin's ecosystem. Our urban trees are drying out and suffering long-term damage. Gieß den Kiez is made to enable coordinated citizen participation in the irrigation of urban trees.

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-11-28T04:01:02+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/laselva + laselva + + Treasure discovered: laselva, Fetch Forest Inventory data from many countries

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-07-16T17:40:02+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/lidR + lidR + + Treasure discovered: lidR, R package for airborne LiDAR data manipulation and visualisation for forestry application

    ]]> +
    + 2021-11-28T00:00:00+01:00 + 2021-11-23T04:22:17+01:00 + + + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/plant-generator + plant-generator + + Treasure discovered: plant-generator, Plant generator

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-10-21T19:49:26+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/pycrown + pycrown + + Treasure discovered: pycrown, PyCrown - Fast raster-based individual tree segmentation for LiDAR data

    ]]> +
    + 2021-12-05T00:00:00+01:00 + 2021-11-26T08:45:45+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/pyfor + pyfor + + Treasure discovered: pyfor, Tools for analyzing aerial point clouds of forest data.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-10T15:50:57+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/stanfordclassicr + stanfordclassicr + + Treasure discovered: stanfordclassicr, Functions to read StanForD classic forest machine reports

    ]]> +
    + 2021-12-12T00:00:00+01:00 + 2021-02-15T15:12:01+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/tree-species + tree-species + + Treasure discovered: tree-species, tree species with corresponding translation

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-08-29T13:42:23+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/tree_detection + tree_detection + + Treasure discovered: tree_detection, This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.

    ]]> +
    + 2021-12-08T00:00:00+01:00 + 2021-11-30T18:34:43+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/treeco + treeco + + Treasure discovered: treeco, The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-10-21T08:49:27+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/treeseg + treeseg + + Treasure discovered: treeseg, A library of tree segmentation and detection algorithms.

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-09-23T09:44:15+02:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/vinv-schema + vinv-schema + + Treasure discovered: vinv-schema, Lightweight data standard for single-tree based forest management, visualisation & analytics

    ]]> +
    + 2021-11-29T00:00:00+01:00 + 2021-11-29T23:43:08+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/vwm-brandenburg + vwm-brandenburg + + Treasure discovered: vwm-brandenburg, Illustration of regeneration condition and wildlife impact monitoring.

    ]]> +
    + 2021-11-28T00:00:00+01:00 + 2021-10-18T23:22:38+02:00 + + + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/weblidar-treetop + weblidar-treetop + + Treasure discovered: weblidar-treetop, A Shiny-based Application for Extracting Forest Information from LiDAR data.

    ]]> +
    + 2021-12-08T00:00:00+01:00 + 2021-12-06T12:16:05+01:00 + + + + + + + + + + The Pirate Forest + + +
    + + + https://thepirateforest.org/treasure/wheelRuts_semanticSegmentation + wheelRuts_semanticSegmentation + + Treasure discovered: wheelRuts_semanticSegmentation, semantic segmentation of wheel-ruts caused by forestry machinery

    ]]> +
    + 2022-07-05T00:00:00+02:00 + 2022-07-05T17:02:07+02:00 + + + + + + + + + + + + The Pirate Forest + + +
    + +
    \ No newline at end of file diff --git a/docs/docs/index.html b/docs/docs/index.html new file mode 100644 index 0000000..6d4a08d --- /dev/null +++ b/docs/docs/index.html @@ -0,0 +1,1194 @@ + + + + + + + + + The Pirate Forest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    The Pirate Forests

    +

    + Discover Treasures of Forest-related
    Open Source Software. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + + +

    LiDAR

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    + +

    Remote Sensing

    + + + + + + + +
    + +

    Urban Forestry

    + + + + + + + +
    + +

    forest-management

    + + + + + + + +
    + +

    GIS

    + + + + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands.html b/docs/docs/islands.html new file mode 100644 index 0000000..48c0d36 --- /dev/null +++ b/docs/docs/islands.html @@ -0,0 +1,3299 @@ + + + + + + + + + All Repositories + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    All Repositories

    +

    + List of Forest related repositories. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + +
    + + +
    +
    + +
    +
    + norlab-ulaval +
    + +
    +
    + +
    + + added August 06, 2023 + +
    + + +
    + norlab-ulaval / +
    + + + +

    Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models.

    +
    + + +
    + +
    + + +
      + +
    • computer-vision
    • + +
    • datasets
    • + +
    • forestry
    • + +
    • remote-sensing
    • + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    + +
    + + +
    Python
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SmartForest-no +
    + +
    +
    + +
    + + added July 05, 2022 + +
    + + +
    + SmartForest-no / +
    + + + +

    semantic segmentation of wheel-ruts caused by forestry machinery

    +
    + + +
    + +
    + + +
      + +
    • forest-machines
    • + +
    • segmentation
    • + +
    • detection
    • + +
    • remote-sensing
    • + +
    + +
    + + +
    Python
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + hbelbo +
    + +
    +
    + +
    + + added December 12, 2021 + +
    + + +
    + hbelbo / +
    + + + +

    Functions to read StanForD classic forest machine reports

    +
    + + + +
      + +
    • StanForD
    • + +
    • forest-machines
    • + +
    • machine-data
    • + +
    • communication
    • + +
    • standardization
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + leggedrobotics +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + leggedrobotics / +
    + + + +

    This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.

    +
    + + + +
      + +
    • cpp
    • + +
    • detection
    • + +
    • point-cloud
    • + +
    • ros
    • + +
    • tree
    • + +
    • tree-detection
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + dwang520 +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + dwang520 / +
    + + + +

    An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification

    +
    + + +
    + +
    + + +
      + +
    • tree-isolation
    • + +
    • leaf-wood-classification
    • + +
    • single-tree
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + porteratzo +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + porteratzo / +
    + + + +

    Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.

    +
    + + + +
      + +
    • carbon-content
    • + +
    • detect-trees
    • + +
    • point-cloud
    • + +
    • photogrammetry
    • + +
    • 3D
    • + +
    • lidar
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    A Shiny-based Application for Extracting Forest Information from LiDAR data.

    +
    + + + +
      + +
    • individual-trees
    • + +
    • lidar
    • + +
    • canopy-height
    • + +
    • crown-level
    • + +
    • 3D
    • + +
    • 2D
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + FlorisCreyf +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + FlorisCreyf / +
    + + + +

    Plant generator

    +
    + + + +
      + +
    • opengl
    • + +
    • plants
    • + +
    • visualization
    • + +
    • tree-generator
    • + +
    • trees
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + florianbeyer +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + florianbeyer / +
    + + + +

    Classifying remote sensing data with random forest

    +
    + + + +
      + +
    • classification
    • + +
    • random-forest
    • + +
    • randomforest-classification
    • + +
    • remote
    • + +
    • sensing
    • + +
    • gis
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + technologiestiftung +
    + +
    + +
    + + +
    + + + + +
    +
    + +
    +
    + manaakiwhenua +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + manaakiwhenua / +
    + + + +

    PyCrown - Fast raster-based individual tree segmentation for LiDAR data

    +
    + + + +
      + +
    • crowns
    • + +
    • lidar
    • + +
    • numba
    • + +
    • python
    • + +
    • segmentation
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Klemet +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + Klemet / +
    + + + +

    An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.

    +
    + + + +
      + +
    • forest-roads
    • + +
    • forest-management
    • + +
    • landis-ii
    • + +
    • landscape
    • + +
    • road-network
    • + +
    + +
    + + +
    C#
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + gcyr +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + gcyr / +
    + + + +

    Forest Management Tool a C++ library for forest planning.

    +
    + + + +
      + +
    • cran
    • + +
    • fmt
    • + +
    • forest-management
    • + +
    • forest-planning
    • + +
    • forestry
    • + +
    • optimization
    • + +
    • python-library
    • + +
    • simulation
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + sollano +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + sollano / +
    + + + +

    R package for forest mensuration and management

    +
    + + + +
      + +
    • forest-management
    • + +
    • forest-inventory
    • + +
    • growth-prediction
    • + +
    • prediction
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + InverseTampere +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + InverseTampere / +
    + + + +

    Quantitative Structure Models of Single Trees from Laser Scanner Data

    +
    + + + +
      + +
    • terrestrial-laser-scanning
    • + +
    • single-tree
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tiagodc +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + tiagodc / +
    + + + +

    R functions for processing individual tree TLS point clouds

    +
    + + + +
      + +
    • tree-detection
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + dwang520 +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + dwang520 / +
    + + + +

    Unsupervised leaf-wood classification from laser scanning point clouds

    +
    + + + +
      + +
    • classification
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SKrisanski +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + SKrisanski / +
    + + + +

    Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.

    +
    + + + +
      + +
    • laser-scanning
    • + +
    • sensors
    • + +
    • lidar
    • + +
    • segmentation
    • + +
    • photogrammetry
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    • R
    • + +
    • airborne-image
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    Python Package for Tree Crown Detection in Airborne RGB imagery

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • pytorch
    • + +
    • python
    • + +
    • deep-learning
    • + +
    • airborne-image
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis

    +
    + + + +
      + +
    • laser
    • + +
    • lidar
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + vinv-group +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + vinv-group / +
    + + + +

    Lightweight data standard for single-tree based forest management, visualisation & analytics

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    • standardization
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Priestley-Centre +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Priestley-Centre / +
    + + + +

    The Simple Biomass Comparison Model

    +
    + + + +
      + +
    • bioenergy
    • + +
    • biomass
    • + +
    • carbon-debt
    • + +
    • carbon-emissions
    • + +
    • dlca
    • + +
    • forestry
    • + +
    • modelling-tool
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    An R package for tree volume equations.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tyluRp +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + tyluRp / +
    + + + +

    The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.

    +
    + + + +
      + +
    • urban-forestry
    • + +
    • r
    • + +
    • rstats
    • + +
    • trees
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + jperkins12 +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + jperkins12 / +
    + + + +

    Shiny app to calculate above ground biomass for forest plots.

    +
    + + + +
      + +
    • forestry
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + piMoll +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + piMoll / +
    + + + +

    SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.

    +
    + + + +
      + +
    • qgis
    • + +
    • qgis-plugin
    • + +
    • gis
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + b-lack +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + b-lack / +
    + + + +

    tree species with corresponding translation

    +
    + + + +
      + +
    • i18n
    • + +
    • standardization
    • + +
    • species
    • + +
    • translations
    • + +
    • tree
    • + +
    • tree-species
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Forest-Modelling-Lab +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Forest-Modelling-Lab / +
    + + + +

    3D-CMCC-FEM code

    +
    + + + +
      + +
    • 3d-cmcc-fem
    • + +
    • climatechange
    • + +
    • forest-management
    • + +
    • vegetationmodelling
    • + +
    + +
    + + +
    C
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + wenzeslaus +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + wenzeslaus / +
    + + + +

    Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)

    +
    + + + +
      + +
    • 3d-raster
    • + +
    • 3d-raster-algebra
    • + +
    • analysis
    • + +
    • forestry
    • + +
    • grass-gis
    • + +
    • lidar
    • + +
    • lidar-point-clouds
    • + +
    • open-science
    • + +
    • paper
    • + +
    • point-cloud
    • + +
    • raster-algebra
    • + +
    • reproducibility
    • + +
    • reproducible-research
    • + +
    • spatial-index
    • + +
    • spatial-pattern
    • + +
    • voxel-model
    • + +
    + +
    + + +
    Shell
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Crghilardi +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Crghilardi / +
    + + + +

    A library for various forest mensuration and biometrics functions in Julia

    +
    + + + +
      + +
    • biometrics
    • + +
    • forest-management
    • + +
    + +
    + + +
    Julia
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + kunstler +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + kunstler / +
    + + + +

    Fetch Forest Inventory data from many countries

    +
    + + + +
      + +
    • data
    • + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • plants
    • + +
    • r
    • + +
    • r-package
    • + +
    • rstats
    • + +
    • trees
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + adhollander +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + adhollander / +
    + + + +

    Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.

    +
    + + + +
      + +
    • biomass
    • + +
    • carbon
    • + +
    • climate-change
    • + +
    • emissions
    • + +
    • urban-forestry
    • + +
    + +
    + + +
    Python
    + + +
    The Unlicense
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + PANOimagen +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + PANOimagen / +
    + + + +

    Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)

    +
    + + + +
      + +
    • dem
    • + +
    • dsm
    • + +
    • dtm
    • + +
    • forest
    • + +
    • forestry
    • + +
    • geotif
    • + +
    • lidar
    • + +
    • python3
    • + +
    • qgis3-plugin
    • + +
    • raster
    • + +
    + +
    + + +
    Python
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + bcgov +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + bcgov / +
    + + + +

    Caribou and land use simulator- decision support model for caribou and forest management

    +
    + + + +
      + +
    • caribou
    • + +
    • flnr
    • + +
    • forest-analysis
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + DiversiTree +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + DiversiTree / +
    + + + +

    Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    +
    + + + +
      + +
    • ecology
    • + +
    • urban-forestry
    • + +
    • gis
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    Creative Commons Attribution 4.0 International
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    A library of tree segmentation and detection algorithms.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + mparkan +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + mparkan / +
    + + + +

    A collection of digital forestry tools for Matlab/Octave

    +
    + + + +
      + +
    • asprs
    • + +
    • digital-forestry-toolbox
    • + +
    • forest
    • + +
    • forestry
    • + +
    • laser
    • + +
    • laser-scanning
    • + +
    • lidar
    • + +
    • matlab
    • + +
    • octave
    • + +
    • point-cloud
    • + +
    • remote-sensing
    • + +
    • vegetation
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    Tools for analyzing aerial point clouds of forest data.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • las
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tudelft3d +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + tudelft3d / +
    + + + +

    Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees

    +
    + + +
    + +
    + + +
      + +
    • 3d-model
    • + +
    • forestry
    • + +
    • laser-scanning
    • + +
    • laser-scans
    • + +
    • modeling
    • + +
    • point-clouds
    • + +
    • reconstruction
    • + +
    • tree
    • + +
    • urban-environment
    • + +
    • visualization
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + r-lidar +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + r-lidar / +
    + + + +

    R package for airborne LiDAR data manipulation and visualisation for forestry application

    +
    + + +
    + +
    + + +
      + +
    • als
    • + +
    • forestry
    • + +
    • las
    • + +
    • laz
    • + +
    • lidar
    • + +
    • point-cloud
    • + +
    + +
    + + +
    R
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + blutjens +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + blutjens / +
    + + + +

    🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community.

    +
    + + + +
      + +
    • datasets
    • + +
    + +
    + + + +
    Creative Commons Zero v1.0 Universal
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + b-lack +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + b-lack / +
    + + + +

    Illustration of regeneration condition and wildlife impact monitoring.

    +
    + + +
    + +
    + + +
      + +
    • forestry
    • + +
    • monitoring
    • + +
    • visualization
    • + +
    • gis
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands/forest-management.html b/docs/docs/islands/forest-management.html new file mode 100644 index 0000000..b812a1a --- /dev/null +++ b/docs/docs/islands/forest-management.html @@ -0,0 +1,718 @@ + + + + + + + + + Forest Management + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    Forest Management

    +

    + +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + +

    Repositrories tagged with “Forest Management”

    + +
    + + +
    +
    + +
    +
    + Klemet +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + Klemet / +
    + + + +

    An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.

    +
    + + + +
      + +
    • forest-roads
    • + +
    • forest-management
    • + +
    • landis-ii
    • + +
    • landscape
    • + +
    • road-network
    • + +
    + +
    + + +
    C#
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + gcyr +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + gcyr / +
    + + + +

    Forest Management Tool a C++ library for forest planning.

    +
    + + + +
      + +
    • cran
    • + +
    • fmt
    • + +
    • forest-management
    • + +
    • forest-planning
    • + +
    • forestry
    • + +
    • optimization
    • + +
    • python-library
    • + +
    • simulation
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + sollano +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + sollano / +
    + + + +

    R package for forest mensuration and management

    +
    + + + +
      + +
    • forest-management
    • + +
    • forest-inventory
    • + +
    • growth-prediction
    • + +
    • prediction
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + vinv-group +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + vinv-group / +
    + + + +

    Lightweight data standard for single-tree based forest management, visualisation & analytics

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    • standardization
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    An R package for tree volume equations.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Forest-Modelling-Lab +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Forest-Modelling-Lab / +
    + + + +

    3D-CMCC-FEM code

    +
    + + + +
      + +
    • 3d-cmcc-fem
    • + +
    • climatechange
    • + +
    • forest-management
    • + +
    • vegetationmodelling
    • + +
    + +
    + + +
    C
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Crghilardi +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Crghilardi / +
    + + + +

    A library for various forest mensuration and biometrics functions in Julia

    +
    + + + +
      + +
    • biometrics
    • + +
    • forest-management
    • + +
    + +
    + + +
    Julia
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + bcgov +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + bcgov / +
    + + + +

    Caribou and land use simulator- decision support model for caribou and forest management

    +
    + + + +
      + +
    • caribou
    • + +
    • flnr
    • + +
    • forest-analysis
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands/gis.html b/docs/docs/islands/gis.html new file mode 100644 index 0000000..cb98c47 --- /dev/null +++ b/docs/docs/islands/gis.html @@ -0,0 +1,518 @@ + + + + + + + + + GIS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    GIS

    +

    + A geographic information system (GIS) is a computer system for capturing, storing, checking, and displaying data related to positions on Earth's surface. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + +

    Repositrories tagged with “GIS”

    + +
    + + +
    +
    + +
    +
    + florianbeyer +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + florianbeyer / +
    + + + +

    Classifying remote sensing data with random forest

    +
    + + + +
      + +
    • classification
    • + +
    • random-forest
    • + +
    • randomforest-classification
    • + +
    • remote
    • + +
    • sensing
    • + +
    • gis
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + technologiestiftung +
    + +
    + +
    + + +
    + + + + +
    +
    + +
    +
    + piMoll +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + piMoll / +
    + + + +

    SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.

    +
    + + + +
      + +
    • qgis
    • + +
    • qgis-plugin
    • + +
    • gis
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + DiversiTree +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + DiversiTree / +
    + + + +

    Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    +
    + + + +
      + +
    • ecology
    • + +
    • urban-forestry
    • + +
    • gis
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    Creative Commons Attribution 4.0 International
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + b-lack +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + b-lack / +
    + + + +

    Illustration of regeneration condition and wildlife impact monitoring.

    +
    + + +
    + +
    + + +
      + +
    • forestry
    • + +
    • monitoring
    • + +
    • visualization
    • + +
    • gis
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands/lidar.html b/docs/docs/islands/lidar.html new file mode 100644 index 0000000..70d4ed3 --- /dev/null +++ b/docs/docs/islands/lidar.html @@ -0,0 +1,1287 @@ + + + + + + + + + lidar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    lidar

    +

    + Lidar systems have been applied to improve forestry management. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + +
    + + +
    +
    + +
    +
    + leggedrobotics +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + leggedrobotics / +
    + + + +

    This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.

    +
    + + + +
      + +
    • cpp
    • + +
    • detection
    • + +
    • point-cloud
    • + +
    • ros
    • + +
    • tree
    • + +
    • tree-detection
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + porteratzo +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + porteratzo / +
    + + + +

    Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.

    +
    + + + +
      + +
    • carbon-content
    • + +
    • detect-trees
    • + +
    • point-cloud
    • + +
    • photogrammetry
    • + +
    • 3D
    • + +
    • lidar
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    A Shiny-based Application for Extracting Forest Information from LiDAR data.

    +
    + + + +
      + +
    • individual-trees
    • + +
    • lidar
    • + +
    • canopy-height
    • + +
    • crown-level
    • + +
    • 3D
    • + +
    • 2D
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + manaakiwhenua +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + manaakiwhenua / +
    + + + +

    PyCrown - Fast raster-based individual tree segmentation for LiDAR data

    +
    + + + +
      + +
    • crowns
    • + +
    • lidar
    • + +
    • numba
    • + +
    • python
    • + +
    • segmentation
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + InverseTampere +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + InverseTampere / +
    + + + +

    Quantitative Structure Models of Single Trees from Laser Scanner Data

    +
    + + + +
      + +
    • terrestrial-laser-scanning
    • + +
    • single-tree
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tiagodc +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + tiagodc / +
    + + + +

    R functions for processing individual tree TLS point clouds

    +
    + + + +
      + +
    • tree-detection
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + dwang520 +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + dwang520 / +
    + + + +

    Unsupervised leaf-wood classification from laser scanning point clouds

    +
    + + + +
      + +
    • classification
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SKrisanski +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + SKrisanski / +
    + + + +

    Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.

    +
    + + + +
      + +
    • laser-scanning
    • + +
    • sensors
    • + +
    • lidar
    • + +
    • segmentation
    • + +
    • photogrammetry
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis

    +
    + + + +
      + +
    • laser
    • + +
    • lidar
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + wenzeslaus +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + wenzeslaus / +
    + + + +

    Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)

    +
    + + + +
      + +
    • 3d-raster
    • + +
    • 3d-raster-algebra
    • + +
    • analysis
    • + +
    • forestry
    • + +
    • grass-gis
    • + +
    • lidar
    • + +
    • lidar-point-clouds
    • + +
    • open-science
    • + +
    • paper
    • + +
    • point-cloud
    • + +
    • raster-algebra
    • + +
    • reproducibility
    • + +
    • reproducible-research
    • + +
    • spatial-index
    • + +
    • spatial-pattern
    • + +
    • voxel-model
    • + +
    + +
    + + +
    Shell
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + PANOimagen +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + PANOimagen / +
    + + + +

    Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)

    +
    + + + +
      + +
    • dem
    • + +
    • dsm
    • + +
    • dtm
    • + +
    • forest
    • + +
    • forestry
    • + +
    • geotif
    • + +
    • lidar
    • + +
    • python3
    • + +
    • qgis3-plugin
    • + +
    • raster
    • + +
    + +
    + + +
    Python
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    A library of tree segmentation and detection algorithms.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + mparkan +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + mparkan / +
    + + + +

    A collection of digital forestry tools for Matlab/Octave

    +
    + + + +
      + +
    • asprs
    • + +
    • digital-forestry-toolbox
    • + +
    • forest
    • + +
    • forestry
    • + +
    • laser
    • + +
    • laser-scanning
    • + +
    • lidar
    • + +
    • matlab
    • + +
    • octave
    • + +
    • point-cloud
    • + +
    • remote-sensing
    • + +
    • vegetation
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    Tools for analyzing aerial point clouds of forest data.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • las
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + r-lidar +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + r-lidar / +
    + + + +

    R package for airborne LiDAR data manipulation and visualisation for forestry application

    +
    + + +
    + +
    + + +
      + +
    • als
    • + +
    • forestry
    • + +
    • las
    • + +
    • laz
    • + +
    • lidar
    • + +
    • point-cloud
    • + +
    + +
    + + +
    R
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands/remote-sensing.html b/docs/docs/islands/remote-sensing.html new file mode 100644 index 0000000..b6e2719 --- /dev/null +++ b/docs/docs/islands/remote-sensing.html @@ -0,0 +1,538 @@ + + + + + + + + + Remote Sensing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    Remote Sensing

    +

    + Remote sensing is the acquisition of information about an object or phenomenon without making physical contact with the object, in contrast to in situ or on-site observation. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + +

    Repositrories tagged with “Remote Sensing”

    + +
    + + +
    +
    + +
    +
    + norlab-ulaval +
    + +
    +
    + +
    + + added August 06, 2023 + +
    + + +
    + norlab-ulaval / +
    + + + +

    Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models.

    +
    + + +
    + +
    + + +
      + +
    • computer-vision
    • + +
    • datasets
    • + +
    • forestry
    • + +
    • remote-sensing
    • + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    + +
    + + +
    Python
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SmartForest-no +
    + +
    +
    + +
    + + added July 05, 2022 + +
    + + +
    + SmartForest-no / +
    + + + +

    semantic segmentation of wheel-ruts caused by forestry machinery

    +
    + + +
    + +
    + + +
      + +
    • forest-machines
    • + +
    • segmentation
    • + +
    • detection
    • + +
    • remote-sensing
    • + +
    + +
    + + +
    Python
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    • R
    • + +
    • airborne-image
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    Python Package for Tree Crown Detection in Airborne RGB imagery

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • pytorch
    • + +
    • python
    • + +
    • deep-learning
    • + +
    • airborne-image
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + mparkan +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + mparkan / +
    + + + +

    A collection of digital forestry tools for Matlab/Octave

    +
    + + + +
      + +
    • asprs
    • + +
    • digital-forestry-toolbox
    • + +
    • forest
    • + +
    • forestry
    • + +
    • laser
    • + +
    • laser-scanning
    • + +
    • lidar
    • + +
    • matlab
    • + +
    • octave
    • + +
    • point-cloud
    • + +
    • remote-sensing
    • + +
    • vegetation
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/islands/urban-forestry.html b/docs/docs/islands/urban-forestry.html new file mode 100644 index 0000000..7834f96 --- /dev/null +++ b/docs/docs/islands/urban-forestry.html @@ -0,0 +1,440 @@ + + + + + + + + + Urban Forestry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    Urban Forestry

    +

    + +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + +

    Repositrories tagged with “Urban Forestry”

    + +
    + + +
    +
    + +
    +
    + technologiestiftung +
    + +
    + +
    + + +
    + + + + +
    +
    + +
    +
    + tyluRp +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + tyluRp / +
    + + + +

    The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.

    +
    + + + +
      + +
    • urban-forestry
    • + +
    • r
    • + +
    • rstats
    • + +
    • trees
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + adhollander +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + adhollander / +
    + + + +

    Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.

    +
    + + + +
      + +
    • biomass
    • + +
    • carbon
    • + +
    • climate-change
    • + +
    • emissions
    • + +
    • urban-forestry
    • + +
    + +
    + + +
    Python
    + + +
    The Unlicense
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + DiversiTree +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + DiversiTree / +
    + + + +

    Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    +
    + + + +
      + +
    • ecology
    • + +
    • urban-forestry
    • + +
    • gis
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    Creative Commons Attribution 4.0 International
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/journeys/test/hello-forest.html b/docs/docs/journeys/test/hello-forest.html new file mode 100644 index 0000000..c6c6262 --- /dev/null +++ b/docs/docs/journeys/test/hello-forest.html @@ -0,0 +1,160 @@ + + + + + + + + + The Pirate Forest + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    + + + +
    +
    +

    Journey to The Pirate Forest

    + +

    Problem

    + +

    We want to…

    + +

    Requirements

    + +

    Solution

    + + + +

    Result

    + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/merch.html b/docs/docs/merch.html new file mode 100644 index 0000000..a941f0e --- /dev/null +++ b/docs/docs/merch.html @@ -0,0 +1,166 @@ + + + + + + + + + The Pirate Forest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    The Pirate Forest

    +

    + +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + + + + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/robots.txt b/docs/docs/robots.txt new file mode 100644 index 0000000..6add03f --- /dev/null +++ b/docs/docs/robots.txt @@ -0,0 +1 @@ +Sitemap: https://thepirateforest.org/sitemap.xml diff --git a/docs/docs/scholar.html b/docs/docs/scholar.html new file mode 100644 index 0000000..7cf2c83 --- /dev/null +++ b/docs/docs/scholar.html @@ -0,0 +1,245 @@ + + + + + + + + + Pirate Scholar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    Pirate Scholar

    +

    + Discover Treasures of Forest & Software related Open Access Articles. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + +
    1. + +
      +
      + Diez, Yago and Kentsch, Sarah and Fukuda, Motohisa and Caceres, Maximo Larry Lopez and Moritake, Koma and Cabezas, Mariano / +
      +
      + + + +

      Deep Learning in Forestry Using UAV-Acquired RGB Data: A Practical Review

      + + + +

      + Forests are the planet’s main CO2 filtering agent as well as important economical, environmental and social assets. Climate change is exerting an increased stress, resulting in a need for improved research methodologies to study their health, composition or evolution. Traditionally, information about forests has been collected using expensive and work-intensive field inventories, but in recent years unoccupied autonomous vehicles (UAVs) have become very popular as they represent a simple and inexpensive way to gather high resolution data of large forested areas. In addition to this trend, deep learning (DL) has also been gaining much attention in the field of forestry as a way to include the knowledge of forestry experts into automatic software pipelines tackling problems such as tree detection or tree health/species classification. Among the many sensors that UAVs can carry, RGB cameras are fast, cost-effective and allow for straightforward data interpretation. This has resulted in a large increase in the amount of UAV-acquired RGB data available for forest studies. In this review, we focus on studies that use DL and RGB images gathered by UAVs to solve practical forestry research problems. We summarize the existing studies, provide a detailed analysis of their strengths paired with a critical assessment on common methodological problems and include other information, such as available public data and code resources that we believe can be useful for researchers that want to start working in this area. We structure our discussion using three main families of forestry problems: (1) individual Tree Detection, (2) tree Species Classification, and (3) forest Anomaly Detection (forest fires and insect Infestation). +

      +

      + + Diez, Yago, et al. “Deep Learning in Forestry Using UAV-Acquired RGB Data: A Practical Review.” Remote Sensing, vol. 13, no. 14, 2021, doi:10.3390/rs13142837. + +

      + + + + +
      + Deep Learning in Forestry Using UAV-Acquired RGB Data: A Practical Review +
      + + + + +
    2. +
    3. + +
      +
      + Alvares, Clayton Alcarde and Cegatta, Ítalo Ramos and Scolforo, Henrique Ferraço and Mafia, Reginaldo Gonçalves / +
      +
      + + + +

      Decision-Tree Application to Predict and Spatialize the Wood Productivity Probabilities of Eucalyptus Plantations

      + + + +

      + Brazil is one of the world’s wood short-fiber producers, cultivating 7.5 million hectares of eucalypt trees. Foresters and resource managers often face difficulties in surveying reliable Eucalyptus productivity levels for the purpose of purchasing and prospecting lands. Spatial data science (DS) and machine learning (ML) provide powerful approaches to make the best use of the large datasets available today. Agriculture has made great use of these approaches, and in this paper, we explore how forestry can benefit as well. We hypothesized that both DS and ML techniques can be used to improve Eucalyptus productivity zoning based on multiple operational datasets of tree growth and environment. Based on more than 12,000 permanent forest inventory plots of commercial Eucalyptus plantations and the climate, soil, and altitude variables associated with them, a supervised ML approach was adjusted to model the forest plantation productivity. A multi-tuning of the decision-tree (DT) algorithm hyperparameters was prepared to yield 450 DT models, with a better one delivering an RMSE of 53.5 m3 ha−1, split in 35 terminal nodes, here interpreted as Eucalyptus productivity zones. The DT model showed an optimum performance index of 0.83, a coefficient of determination of 0.91, a root mean squared error of 12.3 m3 ha−1, and a mean absolute percentage error only of 3.1% in predicting the testing dataset throughout the study area. The DT rule set was interpreted in a user-friendly table and was prepared to classify any location within the study area in each one of the 35 productivity zones based on the required environment variables of the DT algorithm. The high quality of the model obtained made it possible to spatialize the DT rules, providing a reliable cartographic visualization of the probability levels of true Eucalyptus productivity for a huge region of forest-based industries in Brazil. These data-science techniques also provided a yield gap analysis using a very down-to-earth approach. We estimated a yield gap by an amount of 4.2 × 107 m3, representing a few more than 113,000 ha, or 15% of the current forest base. This is the amount of avoided area expansion to accumulate the same wood stock in case the productivity is raised to the attainable level in each zone. This present study provided deeper analysis and reproducible tools to manage forest assets sustainably. +

      +

      + + Alvares, Clayton Alcarde, et al. “Decision-Tree Application to Predict and Spatialize the Wood Productivity Probabilities of Eucalyptus Plantations.” Forests, vol. 14, no. 7, 2023, doi:10.3390/f14071334. + +

      + + + + + + + +
    4. +
    5. + +
      +
      + Grondin, Vincent and Pomerleau, François and Giguère, Philippe / +
      +
      + + + +

      Training Deep Learning Algorithms on Synthetic Forest Images for Tree Detection

      + + + +

      + Vision-based segmentation in forested environments is a key functionality for autonomous forestry operations such as tree felling and forwarding. Deep learning algorithms demonstrate promising results to perform visual tasks such as object detection. +

      +

      + + Grondin, Vincent, et al. Training Deep Learning Algorithms on Synthetic Forest Images for Tree Detection. 2022, doi:10.48550/arXiv.2210.04104. + +

      + + + + + + + +
    + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/sitemap.xml b/docs/docs/sitemap.xml new file mode 100644 index 0000000..be58120 --- /dev/null +++ b/docs/docs/sitemap.xml @@ -0,0 +1,215 @@ + + + +https://thepirateforest.org/islands/forest-management +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/islands/gis +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/islands +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/islands/lidar +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/islands/remote-sensing +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/islands/urban-forestry +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/journeys/test/hello-forest.html +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/3D-CMCC-FEM +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/AdTree +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/Biomassr +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/DeepForest +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/Digital-Forestry-Toolbox +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/FMT +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/FSCT +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/ForestBiometrics +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/ForestGapR +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/LANDIS-II-Forest-Roads-Simulation-module +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/LeWoS +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/LiDARForestryHeight +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/PercepTreeV1 +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/RandomForest-Classification +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/SBCM +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/SEILAPLAN +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/SSSC +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/TreeDiversity +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/TreeLS +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/TreeQSM +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/TreeTool +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/awesome-forests +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/carboncalc +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/clus +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/deepforestr +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/forestfrag3d +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/forestmangr +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/forvol +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/giessdenkiez-de +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/laselva +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/lidR +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/plant-generator +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/pycrown +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/pyfor +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/stanfordclassicr +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/tree-species +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/tree_detection +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/treeco +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/treeseg +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/vinv-schema +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/vwm-brandenburg +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/weblidar-treetop +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/treasure/wheelRuts_semanticSegmentation +2023-08-09T00:59:41+02:00 + + +https://thepirateforest.org/ + + +https://thepirateforest.org/merch.html + + +https://thepirateforest.org/scholar + + +https://thepirateforest.org/treasure-chest.html + + diff --git a/docs/docs/treasure-chest.html b/docs/docs/treasure-chest.html new file mode 100644 index 0000000..f114a85 --- /dev/null +++ b/docs/docs/treasure-chest.html @@ -0,0 +1,168 @@ + + + + + + + + + Treasure Chest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    Treasure Chest

    +

    + The Treasure Chest is a collection of all the Treasures that have been discovered by You. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + +
    + + +
    + +
    +
    +

    You haven't found any treasures yet? Discover new repositories regularly and save them with the treasure.

    +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/3D-CMCC-FEM.html b/docs/docs/treasure/3D-CMCC-FEM.html new file mode 100644 index 0000000..aaef26a --- /dev/null +++ b/docs/docs/treasure/3D-CMCC-FEM.html @@ -0,0 +1,182 @@ + + + + + + + + + 3D-CMCC-FEM + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + Forest-Modelling-Lab +
    +
    +
    Forest-Modelling-Lab
    + + + +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/AdTree.html b/docs/docs/treasure/AdTree.html new file mode 100644 index 0000000..d67f2a9 --- /dev/null +++ b/docs/docs/treasure/AdTree.html @@ -0,0 +1,188 @@ + + + + + + + + + AdTree + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + tudelft3d +
    +
    +
    tudelft3d
    + + +
    +
    + + +

    + + AdTree + +

    +
    +

    + Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    + + 3D tree models reconstructed from point clouds + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/Biomassr.html b/docs/docs/treasure/Biomassr.html new file mode 100644 index 0000000..a285b39 --- /dev/null +++ b/docs/docs/treasure/Biomassr.html @@ -0,0 +1,182 @@ + + + + + + + + + Biomassr + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + jperkins12 +
    +
    +
    jperkins12
    + + +
    +
    + + +

    + + Biomassr + +

    +
    +

    + Shiny app to calculate above ground biomass for forest plots. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/DeepForest.html b/docs/docs/treasure/DeepForest.html new file mode 100644 index 0000000..9d96037 --- /dev/null +++ b/docs/docs/treasure/DeepForest.html @@ -0,0 +1,182 @@ + + + + + + + + + DeepForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + weecology +
    +
    +
    weecology
    + + +
    +
    + + +

    + + DeepForest + +

    +
    +

    + Python Package for Tree Crown Detection in Airborne RGB imagery +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/Digital-Forestry-Toolbox.html b/docs/docs/treasure/Digital-Forestry-Toolbox.html new file mode 100644 index 0000000..7eb83c1 --- /dev/null +++ b/docs/docs/treasure/Digital-Forestry-Toolbox.html @@ -0,0 +1,182 @@ + + + + + + + + + Digital-Forestry-Toolbox + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + mparkan +
    +
    +
    mparkan
    + + +
    +
    + + +

    + + Digital-Forestry-Toolbox + +

    +
    +

    + A collection of digital forestry tools for Matlab/Octave +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/FMT.html b/docs/docs/treasure/FMT.html new file mode 100644 index 0000000..3b8a38f --- /dev/null +++ b/docs/docs/treasure/FMT.html @@ -0,0 +1,182 @@ + + + + + + + + + FMT + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + gcyr +
    +
    +
    gcyr
    + + +
    +
    + + +

    + + FMT + +

    +
    +

    + Forest Management Tool a C++ library for forest planning. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/FSCT.html b/docs/docs/treasure/FSCT.html new file mode 100644 index 0000000..f66b1eb --- /dev/null +++ b/docs/docs/treasure/FSCT.html @@ -0,0 +1,182 @@ + + + + + + + + + FSCT + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + SKrisanski +
    +
    +
    SKrisanski
    + + +
    +
    + + +

    + + FSCT + +

    +
    +

    + Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/ForestBiometrics.html b/docs/docs/treasure/ForestBiometrics.html new file mode 100644 index 0000000..bd3a74c --- /dev/null +++ b/docs/docs/treasure/ForestBiometrics.html @@ -0,0 +1,182 @@ + + + + + + + + + ForestBiometrics + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + Crghilardi +
    +
    +
    Crghilardi
    + + +
    +
    + + +

    + + ForestBiometrics + +

    +
    +

    + A library for various forest mensuration and biometrics functions in Julia +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/ForestGapR.html b/docs/docs/treasure/ForestGapR.html new file mode 100644 index 0000000..0f805b9 --- /dev/null +++ b/docs/docs/treasure/ForestGapR.html @@ -0,0 +1,182 @@ + + + + + + + + + ForestGapR + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + carlos-alberto-silva +
    +
    +
    carlos-alberto-silva
    + + +
    +
    + + +

    + + ForestGapR + +

    +
    +

    + An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html b/docs/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html new file mode 100644 index 0000000..dbaa227 --- /dev/null +++ b/docs/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html @@ -0,0 +1,186 @@ + + + + + + + + + LANDIS-II-Forest-Roads-Simulation-module + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + Klemet +
    +
    +
    Klemet
    + + +
    +
    + + +

    + + LANDIS-II-Forest-Roads-Simulation-module + +

    +
    +

    + An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    + + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/LeWoS.html b/docs/docs/treasure/LeWoS.html new file mode 100644 index 0000000..eb3294e --- /dev/null +++ b/docs/docs/treasure/LeWoS.html @@ -0,0 +1,182 @@ + + + + + + + + + LeWoS + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + dwang520 +
    +
    +
    dwang520
    + + +
    +
    + + +

    + + LeWoS + +

    +
    +

    + Unsupervised leaf-wood classification from laser scanning point clouds +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/LiDARForestryHeight.html b/docs/docs/treasure/LiDARForestryHeight.html new file mode 100644 index 0000000..fc05fac --- /dev/null +++ b/docs/docs/treasure/LiDARForestryHeight.html @@ -0,0 +1,182 @@ + + + + + + + + + LiDARForestryHeight + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + PANOimagen +
    +
    +
    PANOimagen
    + + +
    +
    + + +

    + + LiDARForestryHeight + +

    +
    +

    + Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats) +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/PercepTreeV1.html b/docs/docs/treasure/PercepTreeV1.html new file mode 100644 index 0000000..20b6543 --- /dev/null +++ b/docs/docs/treasure/PercepTreeV1.html @@ -0,0 +1,194 @@ + + + + + + + + + PercepTreeV1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + norlab-ulaval +
    +
    +
    norlab-ulaval
    + + +
    +
    + + +

    + + PercepTreeV1 + +

    +
    +

    + Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    + + +
    + + Training Deep Learning Algorithms on Synthetic Forest Images for Tree Detection + + Tree Detection and Diameter Estimation Based on Deep Learning, published in Forestry + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/RandomForest-Classification.html b/docs/docs/treasure/RandomForest-Classification.html new file mode 100644 index 0000000..eb6f6bd --- /dev/null +++ b/docs/docs/treasure/RandomForest-Classification.html @@ -0,0 +1,182 @@ + + + + + + + + + RandomForest-Classification + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + florianbeyer +
    +
    +
    florianbeyer
    + + +
    +
    + + +

    + + RandomForest-Classification + +

    +
    +

    + Classifying remote sensing data with random forest +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/SBCM.html b/docs/docs/treasure/SBCM.html new file mode 100644 index 0000000..98113b6 --- /dev/null +++ b/docs/docs/treasure/SBCM.html @@ -0,0 +1,182 @@ + + + + + + + + + SBCM + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + Priestley-Centre +
    +
    +
    Priestley-Centre
    + + +
    +
    + + +

    + + SBCM + +

    +
    +

    + The Simple Biomass Comparison Model +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/SEILAPLAN.html b/docs/docs/treasure/SEILAPLAN.html new file mode 100644 index 0000000..7bf6905 --- /dev/null +++ b/docs/docs/treasure/SEILAPLAN.html @@ -0,0 +1,182 @@ + + + + + + + + + SEILAPLAN + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + piMoll +
    +
    +
    piMoll
    + + +
    +
    + + +

    + + SEILAPLAN + +

    +
    +

    + SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/SSSC.html b/docs/docs/treasure/SSSC.html new file mode 100644 index 0000000..df800e6 --- /dev/null +++ b/docs/docs/treasure/SSSC.html @@ -0,0 +1,188 @@ + + + + + + + + + SSSC + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + dwang520 +
    +
    +
    dwang520
    + + +
    +
    + + +

    + + SSSC + +

    +
    +

    + An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    + + 3D tree models reconstructed from point clouds + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/TreeDiversity.html b/docs/docs/treasure/TreeDiversity.html new file mode 100644 index 0000000..d6a631b --- /dev/null +++ b/docs/docs/treasure/TreeDiversity.html @@ -0,0 +1,182 @@ + + + + + + + + + TreeDiversity + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + DiversiTree +
    +
    +
    DiversiTree
    + + +
    +
    + + +

    + + TreeDiversity + +

    +
    +

    + Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists! +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/TreeLS.html b/docs/docs/treasure/TreeLS.html new file mode 100644 index 0000000..7fbb90a --- /dev/null +++ b/docs/docs/treasure/TreeLS.html @@ -0,0 +1,182 @@ + + + + + + + + + TreeLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + tiagodc +
    +
    +
    tiagodc
    + + +
    +
    + + +

    + + TreeLS + +

    +
    +

    + R functions for processing individual tree TLS point clouds +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/TreeQSM.html b/docs/docs/treasure/TreeQSM.html new file mode 100644 index 0000000..02ee97e --- /dev/null +++ b/docs/docs/treasure/TreeQSM.html @@ -0,0 +1,182 @@ + + + + + + + + + TreeQSM + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + InverseTampere +
    +
    +
    InverseTampere
    + + +
    +
    + + +

    + + TreeQSM + +

    +
    +

    + Quantitative Structure Models of Single Trees from Laser Scanner Data +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/TreeTool.html b/docs/docs/treasure/TreeTool.html new file mode 100644 index 0000000..39b061e --- /dev/null +++ b/docs/docs/treasure/TreeTool.html @@ -0,0 +1,182 @@ + + + + + + + + + TreeTool + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + porteratzo +
    +
    +
    porteratzo
    + + +
    +
    + + +

    + + TreeTool + +

    +
    +

    + Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/awesome-forests.html b/docs/docs/treasure/awesome-forests.html new file mode 100644 index 0000000..f3a00ab --- /dev/null +++ b/docs/docs/treasure/awesome-forests.html @@ -0,0 +1,182 @@ + + + + + + + + + awesome-forests + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + blutjens +
    +
    +
    blutjens
    + + +
    +
    + + +

    + + awesome-forests + +

    +
    +

    + 🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/carboncalc.html b/docs/docs/treasure/carboncalc.html new file mode 100644 index 0000000..219d98b --- /dev/null +++ b/docs/docs/treasure/carboncalc.html @@ -0,0 +1,182 @@ + + + + + + + + + carboncalc + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + adhollander +
    +
    +
    adhollander
    + + +
    +
    + + +

    + + carboncalc + +

    +
    +

    + Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/clus.html b/docs/docs/treasure/clus.html new file mode 100644 index 0000000..ad6dae3 --- /dev/null +++ b/docs/docs/treasure/clus.html @@ -0,0 +1,182 @@ + + + + + + + + + clus + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + bcgov +
    +
    +
    bcgov
    + + +
    +
    + + +

    + + clus + +

    +
    +

    + Caribou and land use simulator- decision support model for caribou and forest management +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/deepforestr.html b/docs/docs/treasure/deepforestr.html new file mode 100644 index 0000000..3c166a3 --- /dev/null +++ b/docs/docs/treasure/deepforestr.html @@ -0,0 +1,182 @@ + + + + + + + + + deepforestr + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + weecology +
    +
    +
    weecology
    + + +
    +
    + + +

    + + deepforestr + +

    +
    +

    + R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/forestfrag3d.html b/docs/docs/treasure/forestfrag3d.html new file mode 100644 index 0000000..4e621a0 --- /dev/null +++ b/docs/docs/treasure/forestfrag3d.html @@ -0,0 +1,182 @@ + + + + + + + + + forestfrag3d + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + wenzeslaus +
    +
    +
    wenzeslaus
    + + +
    +
    + + +

    + + forestfrag3d + +

    +
    +

    + Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017) +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/forestmangr.html b/docs/docs/treasure/forestmangr.html new file mode 100644 index 0000000..f90b121 --- /dev/null +++ b/docs/docs/treasure/forestmangr.html @@ -0,0 +1,182 @@ + + + + + + + + + forestmangr + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + sollano +
    +
    +
    sollano
    + + +
    +
    + + +

    + + forestmangr + +

    +
    +

    + R package for forest mensuration and management +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/forvol.html b/docs/docs/treasure/forvol.html new file mode 100644 index 0000000..b62f849 --- /dev/null +++ b/docs/docs/treasure/forvol.html @@ -0,0 +1,182 @@ + + + + + + + + + forvol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + brycefrank +
    +
    +
    brycefrank
    + + +
    +
    + + +

    + + forvol + +

    +
    +

    + An R package for tree volume equations. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/giessdenkiez-de.html b/docs/docs/treasure/giessdenkiez-de.html new file mode 100644 index 0000000..850cce4 --- /dev/null +++ b/docs/docs/treasure/giessdenkiez-de.html @@ -0,0 +1,186 @@ + + + + + + + + + giessdenkiez-de + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + technologiestiftung +
    +
    +
    technologiestiftung
    + + +
    +
    + + +

    + + giessdenkiez-de + +

    +
    +

    + The consequences of climate change, especially the dry and hot summers, are putting a strain on Berlin's ecosystem. Our urban trees are drying out and suffering long-term damage. Gieß den Kiez is made to enable coordinated citizen participation in the irrigation of urban trees. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    + + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/laselva.html b/docs/docs/treasure/laselva.html new file mode 100644 index 0000000..9f73dce --- /dev/null +++ b/docs/docs/treasure/laselva.html @@ -0,0 +1,182 @@ + + + + + + + + + laselva + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + kunstler +
    +
    +
    kunstler
    + + +
    +
    + + +

    + + laselva + +

    +
    +

    + Fetch Forest Inventory data from many countries +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/lidR.html b/docs/docs/treasure/lidR.html new file mode 100644 index 0000000..6ff3e81 --- /dev/null +++ b/docs/docs/treasure/lidR.html @@ -0,0 +1,192 @@ + + + + + + + + + lidR + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + r-lidar +
    +
    +
    r-lidar
    + + +
    +
    + + +

    + + lidR + +

    +
    +

    + R package for airborne LiDAR data manipulation and visualisation for forestry application +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    + + Compute a canopy height model + + Read and display a las file + + Individual tree segmentation + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/plant-generator.html b/docs/docs/treasure/plant-generator.html new file mode 100644 index 0000000..890ddb2 --- /dev/null +++ b/docs/docs/treasure/plant-generator.html @@ -0,0 +1,182 @@ + + + + + + + + + plant-generator + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + FlorisCreyf +
    +
    +
    FlorisCreyf
    + + + +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/pycrown.html b/docs/docs/treasure/pycrown.html new file mode 100644 index 0000000..3513e9a --- /dev/null +++ b/docs/docs/treasure/pycrown.html @@ -0,0 +1,186 @@ + + + + + + + + + pycrown + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + manaakiwhenua +
    +
    +
    manaakiwhenua
    + + +
    +
    + + +

    + + pycrown + +

    +
    +

    + PyCrown - Fast raster-based individual tree segmentation for LiDAR data +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    + + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/pyfor.html b/docs/docs/treasure/pyfor.html new file mode 100644 index 0000000..4f432d6 --- /dev/null +++ b/docs/docs/treasure/pyfor.html @@ -0,0 +1,182 @@ + + + + + + + + + pyfor + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + brycefrank +
    +
    +
    brycefrank
    + + +
    +
    + + +

    + + pyfor + +

    +
    +

    + Tools for analyzing aerial point clouds of forest data. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/stanfordclassicr.html b/docs/docs/treasure/stanfordclassicr.html new file mode 100644 index 0000000..82209ea --- /dev/null +++ b/docs/docs/treasure/stanfordclassicr.html @@ -0,0 +1,182 @@ + + + + + + + + + stanfordclassicr + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + hbelbo +
    +
    +
    hbelbo
    + + +
    +
    + + +

    + + stanfordclassicr + +

    +
    +

    + Functions to read StanForD classic forest machine reports +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/tree-species.html b/docs/docs/treasure/tree-species.html new file mode 100644 index 0000000..fbe1b39 --- /dev/null +++ b/docs/docs/treasure/tree-species.html @@ -0,0 +1,182 @@ + + + + + + + + + tree-species + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + b-lack +
    +
    +
    b-lack
    + + +
    +
    + + +

    + + tree-species + +

    +
    +

    + tree species with corresponding translation +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/tree_detection.html b/docs/docs/treasure/tree_detection.html new file mode 100644 index 0000000..adaf7fa --- /dev/null +++ b/docs/docs/treasure/tree_detection.html @@ -0,0 +1,182 @@ + + + + + + + + + tree_detection + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + leggedrobotics +
    +
    +
    leggedrobotics
    + + +
    +
    + + +

    + + tree_detection + +

    +
    +

    + This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/treeco.html b/docs/docs/treasure/treeco.html new file mode 100644 index 0000000..25ad1ba --- /dev/null +++ b/docs/docs/treasure/treeco.html @@ -0,0 +1,182 @@ + + + + + + + + + treeco + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + tyluRp +
    +
    +
    tyluRp
    + + +
    +
    + + +

    + + treeco + +

    +
    +

    + The goal of treeco is to provide R users a tool for calculating the eco benefits of trees. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/treeseg.html b/docs/docs/treasure/treeseg.html new file mode 100644 index 0000000..cd16d05 --- /dev/null +++ b/docs/docs/treasure/treeseg.html @@ -0,0 +1,182 @@ + + + + + + + + + treeseg + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + brycefrank +
    +
    +
    brycefrank
    + + +
    +
    + + +

    + + treeseg + +

    +
    +

    + A library of tree segmentation and detection algorithms. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/vinv-schema.html b/docs/docs/treasure/vinv-schema.html new file mode 100644 index 0000000..e37d5a3 --- /dev/null +++ b/docs/docs/treasure/vinv-schema.html @@ -0,0 +1,182 @@ + + + + + + + + + vinv-schema + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + vinv-group +
    +
    +
    vinv-group
    + + +
    +
    + + +

    + + vinv-schema + +

    +
    +

    + Lightweight data standard for single-tree based forest management, visualisation & analytics +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/vwm-brandenburg.html b/docs/docs/treasure/vwm-brandenburg.html new file mode 100644 index 0000000..252cc0b --- /dev/null +++ b/docs/docs/treasure/vwm-brandenburg.html @@ -0,0 +1,188 @@ + + + + + + + + + vwm-brandenburg + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + b-lack +
    +
    +
    b-lack
    + + +
    +
    + + +

    + + vwm-brandenburg + +

    +
    +

    + Illustration of regeneration condition and wildlife impact monitoring. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    + + vwm-brandenburg + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/weblidar-treetop.html b/docs/docs/treasure/weblidar-treetop.html new file mode 100644 index 0000000..f8d34d3 --- /dev/null +++ b/docs/docs/treasure/weblidar-treetop.html @@ -0,0 +1,182 @@ + + + + + + + + + weblidar-treetop + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + carlos-alberto-silva +
    +
    +
    carlos-alberto-silva
    + + +
    +
    + + +

    + + weblidar-treetop + +

    +
    +

    + A Shiny-based Application for Extracting Forest Information from LiDAR data. +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/treasure/wheelRuts_semanticSegmentation.html b/docs/docs/treasure/wheelRuts_semanticSegmentation.html new file mode 100644 index 0000000..dfd6956 --- /dev/null +++ b/docs/docs/treasure/wheelRuts_semanticSegmentation.html @@ -0,0 +1,188 @@ + + + + + + + + + wheelRuts_semanticSegmentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + +
    + + +
    + + +
    +
    + SmartForest-no +
    +
    +
    SmartForest-no
    + + +
    +
    + + +

    + + wheelRuts_semanticSegmentation + +

    +
    +

    + semantic segmentation of wheel-ruts caused by forestry machinery +

    +

    + + add to My Treasure Chest + +

    +
    +
    + +
    + +
    +
    + +
    + + + +
    +
    +
    + + + + source code + + + + + +
    + +
    + + vwm-brandenburg + +
    + +
    +
    +
    + + Star this Repository to putt a smile on the Developers face. +
    + +
    +
    +
    + +
    + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/feed.xml b/docs/feed.xml index 64ac56a..8e5a1e1 100644 --- a/docs/feed.xml +++ b/docs/feed.xml @@ -1 +1 @@ -Jekyll2023-08-06T18:16:17+02:00https://thepirateforest.org/feed.xmlThe Pirate ForestDiscover Treasures of Forest-related Open Source Software. \ No newline at end of file +Jekyll2023-08-09T01:00:04+02:00https://thepirateforest.org/feed.xmlThe Pirate ForestDiscover Treasures of Forest-related Open Source Software. \ No newline at end of file diff --git a/docs/feeds/mastodon.xml b/docs/feeds/mastodon.xml index c4b901e..e1b77e3 100644 --- a/docs/feeds/mastodon.xml +++ b/docs/feeds/mastodon.xml @@ -2,7 +2,7 @@ https://thepirateforest.org/feeds/mastodon.xml The Pirate Forest - 2023-08-06T18:16:17+02:00 + 2023-08-09T01:00:04+02:00 diff --git a/docs/index.html b/docs/index.html index 8b693a1..6d4a08d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -87,9 +87,27 @@

    The Pirate Forests

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    diff --git a/docs/islands.html b/docs/islands.html new file mode 100644 index 0000000..48c0d36 --- /dev/null +++ b/docs/islands.html @@ -0,0 +1,3299 @@ + + + + + + + + + All Repositories + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + The Pirate Forest + +
    + + +
    + +
    +
    +
    +

    All Repositories

    +

    + List of Forest related repositories. +

    +
    +
    + +
    + + +
    +
    +
    + Thanks to +

    + Gold Sponsor +

    + +
    +
    + +
    +
    + + +
    + + +
    +
    + +
    +
    + norlab-ulaval +
    + +
    +
    + +
    + + added August 06, 2023 + +
    + + +
    + norlab-ulaval / +
    + + + +

    Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models.

    +
    + + +
    + +
    + + +
      + +
    • computer-vision
    • + +
    • datasets
    • + +
    • forestry
    • + +
    • remote-sensing
    • + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    + +
    + + +
    Python
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SmartForest-no +
    + +
    +
    + +
    + + added July 05, 2022 + +
    + + +
    + SmartForest-no / +
    + + + +

    semantic segmentation of wheel-ruts caused by forestry machinery

    +
    + + +
    + +
    + + +
      + +
    • forest-machines
    • + +
    • segmentation
    • + +
    • detection
    • + +
    • remote-sensing
    • + +
    + +
    + + +
    Python
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + hbelbo +
    + +
    +
    + +
    + + added December 12, 2021 + +
    + + +
    + hbelbo / +
    + + + +

    Functions to read StanForD classic forest machine reports

    +
    + + + +
      + +
    • StanForD
    • + +
    • forest-machines
    • + +
    • machine-data
    • + +
    • communication
    • + +
    • standardization
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + leggedrobotics +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + leggedrobotics / +
    + + + +

    This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.

    +
    + + + +
      + +
    • cpp
    • + +
    • detection
    • + +
    • point-cloud
    • + +
    • ros
    • + +
    • tree
    • + +
    • tree-detection
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + dwang520 +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + dwang520 / +
    + + + +

    An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification

    +
    + + +
    + +
    + + +
      + +
    • tree-isolation
    • + +
    • leaf-wood-classification
    • + +
    • single-tree
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + porteratzo +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + porteratzo / +
    + + + +

    Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.

    +
    + + + +
      + +
    • carbon-content
    • + +
    • detect-trees
    • + +
    • point-cloud
    • + +
    • photogrammetry
    • + +
    • 3D
    • + +
    • lidar
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added December 08, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    A Shiny-based Application for Extracting Forest Information from LiDAR data.

    +
    + + + +
      + +
    • individual-trees
    • + +
    • lidar
    • + +
    • canopy-height
    • + +
    • crown-level
    • + +
    • 3D
    • + +
    • 2D
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + FlorisCreyf +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + FlorisCreyf / +
    + + + +

    Plant generator

    +
    + + + +
      + +
    • opengl
    • + +
    • plants
    • + +
    • visualization
    • + +
    • tree-generator
    • + +
    • trees
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + florianbeyer +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + florianbeyer / +
    + + + +

    Classifying remote sensing data with random forest

    +
    + + + +
      + +
    • classification
    • + +
    • random-forest
    • + +
    • randomforest-classification
    • + +
    • remote
    • + +
    • sensing
    • + +
    • gis
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + technologiestiftung +
    + +
    + +
    + + +
    + + + + +
    +
    + +
    +
    + manaakiwhenua +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + manaakiwhenua / +
    + + + +

    PyCrown - Fast raster-based individual tree segmentation for LiDAR data

    +
    + + + +
      + +
    • crowns
    • + +
    • lidar
    • + +
    • numba
    • + +
    • python
    • + +
    • segmentation
    • + +
    • tree
    • + +
    • trees
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Klemet +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + Klemet / +
    + + + +

    An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.

    +
    + + + +
      + +
    • forest-roads
    • + +
    • forest-management
    • + +
    • landis-ii
    • + +
    • landscape
    • + +
    • road-network
    • + +
    + +
    + + +
    C#
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + gcyr +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + gcyr / +
    + + + +

    Forest Management Tool a C++ library for forest planning.

    +
    + + + +
      + +
    • cran
    • + +
    • fmt
    • + +
    • forest-management
    • + +
    • forest-planning
    • + +
    • forestry
    • + +
    • optimization
    • + +
    • python-library
    • + +
    • simulation
    • + +
    + +
    + + +
    C++
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + sollano +
    + +
    +
    + +
    + + added December 05, 2021 + +
    + + +
    + sollano / +
    + + + +

    R package for forest mensuration and management

    +
    + + + +
      + +
    • forest-management
    • + +
    • forest-inventory
    • + +
    • growth-prediction
    • + +
    • prediction
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + InverseTampere +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + InverseTampere / +
    + + + +

    Quantitative Structure Models of Single Trees from Laser Scanner Data

    +
    + + + +
      + +
    • terrestrial-laser-scanning
    • + +
    • single-tree
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tiagodc +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + tiagodc / +
    + + + +

    R functions for processing individual tree TLS point clouds

    +
    + + + +
      + +
    • tree-detection
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • stem-segmentation
    • + +
    • lidar
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + dwang520 +
    + +
    +
    + +
    + + added December 01, 2021 + +
    + + +
    + dwang520 / +
    + + + +

    Unsupervised leaf-wood classification from laser scanning point clouds

    +
    + + + +
      + +
    • classification
    • + +
    • laser-scanning
    • + +
    • point-cloud
    • + +
    • lidar
    • + +
    + +
    + + +
    MATLAB
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + SKrisanski +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + SKrisanski / +
    + + + +

    Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.

    +
    + + + +
      + +
    • laser-scanning
    • + +
    • sensors
    • + +
    • lidar
    • + +
    • segmentation
    • + +
    • photogrammetry
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • deep-learning
    • + +
    • R
    • + +
    • airborne-image
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + weecology +
    + +
    +
    + +
    + + added November 30, 2021 + +
    + + +
    + weecology / +
    + + + +

    Python Package for Tree Crown Detection in Airborne RGB imagery

    +
    + + + +
      + +
    • remote-sensing
    • + +
    • pytorch
    • + +
    • python
    • + +
    • deep-learning
    • + +
    • airborne-image
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + carlos-alberto-silva +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + carlos-alberto-silva / +
    + + + +

    An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis

    +
    + + + +
      + +
    • laser
    • + +
    • lidar
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + vinv-group +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + vinv-group / +
    + + + +

    Lightweight data standard for single-tree based forest management, visualisation & analytics

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    • standardization
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Priestley-Centre +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Priestley-Centre / +
    + + + +

    The Simple Biomass Comparison Model

    +
    + + + +
      + +
    • bioenergy
    • + +
    • biomass
    • + +
    • carbon-debt
    • + +
    • carbon-emissions
    • + +
    • dlca
    • + +
    • forestry
    • + +
    • modelling-tool
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    An R package for tree volume equations.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tyluRp +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + tyluRp / +
    + + + +

    The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.

    +
    + + + +
      + +
    • urban-forestry
    • + +
    • r
    • + +
    • rstats
    • + +
    • trees
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + jperkins12 +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + jperkins12 / +
    + + + +

    Shiny app to calculate above ground biomass for forest plots.

    +
    + + + +
      + +
    • forestry
    • + +
    + +
    + + +
    R
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + piMoll +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + piMoll / +
    + + + +

    SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.

    +
    + + + +
      + +
    • qgis
    • + +
    • qgis-plugin
    • + +
    • gis
    • + +
    + +
    + + +
    Python
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + b-lack +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + b-lack / +
    + + + +

    tree species with corresponding translation

    +
    + + + +
      + +
    • i18n
    • + +
    • standardization
    • + +
    • species
    • + +
    • translations
    • + +
    • tree
    • + +
    • tree-species
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Forest-Modelling-Lab +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Forest-Modelling-Lab / +
    + + + +

    3D-CMCC-FEM code

    +
    + + + +
      + +
    • 3d-cmcc-fem
    • + +
    • climatechange
    • + +
    • forest-management
    • + +
    • vegetationmodelling
    • + +
    + +
    + + +
    C
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + wenzeslaus +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + wenzeslaus / +
    + + + +

    Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)

    +
    + + + +
      + +
    • 3d-raster
    • + +
    • 3d-raster-algebra
    • + +
    • analysis
    • + +
    • forestry
    • + +
    • grass-gis
    • + +
    • lidar
    • + +
    • lidar-point-clouds
    • + +
    • open-science
    • + +
    • paper
    • + +
    • point-cloud
    • + +
    • raster-algebra
    • + +
    • reproducibility
    • + +
    • reproducible-research
    • + +
    • spatial-index
    • + +
    • spatial-pattern
    • + +
    • voxel-model
    • + +
    + +
    + + +
    Shell
    + + +
    GNU General Public License v2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + Crghilardi +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + Crghilardi / +
    + + + +

    A library for various forest mensuration and biometrics functions in Julia

    +
    + + + +
      + +
    • biometrics
    • + +
    • forest-management
    • + +
    + +
    + + +
    Julia
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + kunstler +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + kunstler / +
    + + + +

    Fetch Forest Inventory data from many countries

    +
    + + + +
      + +
    • data
    • + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • plants
    • + +
    • r
    • + +
    • r-package
    • + +
    • rstats
    • + +
    • trees
    • + +
    + +
    + + +
    R
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + adhollander +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + adhollander / +
    + + + +

    Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.

    +
    + + + +
      + +
    • biomass
    • + +
    • carbon
    • + +
    • climate-change
    • + +
    • emissions
    • + +
    • urban-forestry
    • + +
    + +
    + + +
    Python
    + + +
    The Unlicense
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + PANOimagen +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + PANOimagen / +
    + + + +

    Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)

    +
    + + + +
      + +
    • dem
    • + +
    • dsm
    • + +
    • dtm
    • + +
    • forest
    • + +
    • forestry
    • + +
    • geotif
    • + +
    • lidar
    • + +
    • python3
    • + +
    • qgis3-plugin
    • + +
    • raster
    • + +
    + +
    + + +
    Python
    + + +
    Other
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + bcgov +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + bcgov / +
    + + + +

    Caribou and land use simulator- decision support model for caribou and forest management

    +
    + + + +
      + +
    • caribou
    • + +
    • flnr
    • + +
    • forest-analysis
    • + +
    • forest-management
    • + +
    + +
    + + +
    R
    + + +
    Apache License 2.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + DiversiTree +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + DiversiTree / +
    + + + +

    Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    +
    + + + +
      + +
    • ecology
    • + +
    • urban-forestry
    • + +
    • gis
    • + +
    + +
    + + +
    Jupyter Notebook
    + + +
    Creative Commons Attribution 4.0 International
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    A library of tree segmentation and detection algorithms.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + mparkan +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + mparkan / +
    + + + +

    A collection of digital forestry tools for Matlab/Octave

    +
    + + + +
      + +
    • asprs
    • + +
    • digital-forestry-toolbox
    • + +
    • forest
    • + +
    • forestry
    • + +
    • laser
    • + +
    • laser-scanning
    • + +
    • lidar
    • + +
    • matlab
    • + +
    • octave
    • + +
    • point-cloud
    • + +
    • remote-sensing
    • + +
    • vegetation
    • + +
    + +
    + + +
    MATLAB
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + brycefrank +
    + +
    +
    + +
    + + added November 29, 2021 + +
    + + +
    + brycefrank / +
    + + + +

    Tools for analyzing aerial point clouds of forest data.

    +
    + + + +
      + +
    • forest-inventory
    • + +
    • forestry
    • + +
    • las
    • + +
    • lidar
    • + +
    + +
    + + +
    Python
    + + +
    MIT License
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + tudelft3d +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + tudelft3d / +
    + + + +

    Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees

    +
    + + +
    + +
    + + +
      + +
    • 3d-model
    • + +
    • forestry
    • + +
    • laser-scanning
    • + +
    • laser-scans
    • + +
    • modeling
    • + +
    • point-clouds
    • + +
    • reconstruction
    • + +
    • tree
    • + +
    • urban-environment
    • + +
    • visualization
    • + +
    + +
    + + +
    C++
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + r-lidar +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + r-lidar / +
    + + + +

    R package for airborne LiDAR data manipulation and visualisation for forestry application

    +
    + + +
    + +
    + + +
      + +
    • als
    • + +
    • forestry
    • + +
    • las
    • + +
    • laz
    • + +
    • lidar
    • + +
    • point-cloud
    • + +
    + +
    + + +
    R
    + + +
    GNU General Public License v3.0
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + blutjens +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + blutjens / +
    + + + +

    🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community.

    +
    + + + +
      + +
    • datasets
    • + +
    + +
    + + + +
    Creative Commons Zero v1.0 Universal
    + + +
    +
    +
    + + +
    + + + + +
    +
    + +
    +
    + b-lack +
    + +
    +
    + +
    + + added November 28, 2021 + +
    + + +
    + b-lack / +
    + + + +

    Illustration of regeneration condition and wildlife impact monitoring.

    +
    + + +
    + +
    + + +
      + +
    • forestry
    • + +
    • monitoring
    • + +
    • visualization
    • + +
    • gis
    • + +
    + +
    + + +
    JavaScript
    + + +
    MIT License
    + + +
    +
    +
    + + + + +
    + + + + +
    +
    + + + + + + \ No newline at end of file diff --git a/docs/islands/forest-management.html b/docs/islands/forest-management.html index 8337c4e..b812a1a 100644 --- a/docs/islands/forest-management.html +++ b/docs/islands/forest-management.html @@ -87,9 +87,27 @@

    Forest Management

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    @@ -129,7 +147,7 @@

    Repositrories tagged with @@ -201,7 +219,7 @@

    Repositrories tagged with @@ -279,7 +297,7 @@

    Repositrories tagged with @@ -349,7 +367,7 @@

    Repositrories tagged with @@ -417,7 +435,7 @@

    Repositrories tagged with @@ -483,7 +501,7 @@

    Repositrories tagged with @@ -553,7 +571,7 @@

    Repositrories tagged with @@ -619,7 +637,7 @@

    Repositrories tagged with diff --git a/docs/islands/gis.html b/docs/islands/gis.html index 4601ab4..cb98c47 100644 --- a/docs/islands/gis.html +++ b/docs/islands/gis.html @@ -87,9 +87,27 @@

    GIS

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    @@ -129,7 +147,7 @@

    Repositrories tagged with “GIS”

    @@ -207,7 +225,7 @@

    Repositrories tagged with “GIS”

    @@ -279,7 +297,7 @@

    Repositrories tagged with “GIS”

    @@ -347,7 +365,7 @@

    Repositrories tagged with “GIS”

    @@ -415,7 +433,7 @@

    Repositrories tagged with “GIS”

    diff --git a/docs/islands/lidar.html b/docs/islands/lidar.html index 83ff5ee..70d4ed3 100644 --- a/docs/islands/lidar.html +++ b/docs/islands/lidar.html @@ -87,9 +87,27 @@

    lidar

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    @@ -128,7 +146,7 @@

    lidar

    @@ -204,7 +222,7 @@

    lidar

    @@ -278,7 +296,7 @@

    lidar

    @@ -352,7 +370,7 @@

    lidar

    @@ -428,7 +446,7 @@

    lidar

    @@ -500,7 +518,7 @@

    lidar

    @@ -572,7 +590,7 @@

    lidar

    @@ -642,7 +660,7 @@

    lidar

    @@ -714,7 +732,7 @@

    lidar

    @@ -780,7 +798,7 @@

    lidar

    @@ -874,7 +892,7 @@

    lidar

    @@ -956,7 +974,7 @@

    lidar

    @@ -1024,7 +1042,7 @@

    lidar

    @@ -1110,7 +1128,7 @@

    lidar

    @@ -1180,7 +1198,7 @@

    lidar

    diff --git a/docs/islands/remote-sensing.html b/docs/islands/remote-sensing.html index 7d0a3f1..b6e2719 100644 --- a/docs/islands/remote-sensing.html +++ b/docs/islands/remote-sensing.html @@ -87,9 +87,27 @@

    Remote Sensing

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    @@ -129,7 +147,7 @@

    Repositrories tagged with “R @@ -207,7 +225,7 @@

    Repositrories tagged with “R @@ -281,7 +299,7 @@

    Repositrories tagged with “R @@ -351,7 +369,7 @@

    Repositrories tagged with “R @@ -423,7 +441,7 @@

    Repositrories tagged with “R diff --git a/docs/islands/urban-forestry.html b/docs/islands/urban-forestry.html index cdd9548..7834f96 100644 --- a/docs/islands/urban-forestry.html +++ b/docs/islands/urban-forestry.html @@ -87,9 +87,27 @@

    Urban Forestry

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    @@ -129,7 +147,7 @@

    Repositrories tagged with “U @@ -201,7 +219,7 @@

    Repositrories tagged with “U @@ -271,7 +289,7 @@

    Repositrories tagged with “U @@ -343,7 +361,7 @@

    Repositrories tagged with “U diff --git a/docs/journeys/test/hello-forest.html b/docs/journeys/test/hello-forest.html index 8ac176f..c6c6262 100644 --- a/docs/journeys/test/hello-forest.html +++ b/docs/journeys/test/hello-forest.html @@ -64,6 +64,11 @@

    +

    + + add to My Treasure Chest + +

    diff --git a/docs/merch.html b/docs/merch.html index 0614452..a941f0e 100644 --- a/docs/merch.html +++ b/docs/merch.html @@ -87,9 +87,27 @@

    The Pirate Forest

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    diff --git a/docs/scholar.html b/docs/scholar.html index ddeccc8..7cf2c83 100644 --- a/docs/scholar.html +++ b/docs/scholar.html @@ -87,9 +87,27 @@

    Pirate Scholar

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    diff --git a/docs/sitemap.xml b/docs/sitemap.xml index ff618f8..36e8e9b 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -2,199 +2,203 @@ https://thepirateforest.org/islands/forest-management -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/islands/gis -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 + + +https://thepirateforest.org/islands +2023-08-09T01:00:04+02:00 https://thepirateforest.org/islands/lidar -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/islands/remote-sensing -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/islands/urban-forestry -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/journeys/test/hello-forest.html -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/3D-CMCC-FEM -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/AdTree -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/Biomassr -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/DeepForest -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/Digital-Forestry-Toolbox -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/FMT -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/FSCT -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/ForestBiometrics -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/ForestGapR -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/LANDIS-II-Forest-Roads-Simulation-module -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/LeWoS -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/LiDARForestryHeight -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/PercepTreeV1 -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/RandomForest-Classification -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/SBCM -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/SEILAPLAN -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/SSSC -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/TreeDiversity -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/TreeLS -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/TreeQSM -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/TreeTool -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/awesome-forests -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/carboncalc -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/clus -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/deepforestr -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/forestfrag3d -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/forestmangr -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/forvol -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/giessdenkiez-de -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/laselva -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/lidR -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/plant-generator -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/pycrown -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/pyfor -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/stanfordclassicr -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/tree-species -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/tree_detection -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/treeco -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/treeseg -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/vinv-schema -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/vwm-brandenburg -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/weblidar-treetop -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/treasure/wheelRuts_semanticSegmentation -2023-08-06T18:16:17+02:00 +2023-08-09T01:00:04+02:00 https://thepirateforest.org/ @@ -208,4 +212,220 @@ https://thepirateforest.org/treasure-chest.html + +https://thepirateforest.org/docs/ +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands/forest-management.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands/gis.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands/lidar.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands/remote-sensing.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/islands/urban-forestry.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/journeys/test/hello-forest.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/merch.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/scholar.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure-chest.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/3D-CMCC-FEM.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/AdTree.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/Biomassr.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/DeepForest.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/Digital-Forestry-Toolbox.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/FMT.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/FSCT.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/ForestBiometrics.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/ForestGapR.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/LeWoS.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/LiDARForestryHeight.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/PercepTreeV1.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/RandomForest-Classification.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/SBCM.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/SEILAPLAN.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/SSSC.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/TreeDiversity.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/TreeLS.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/TreeQSM.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/TreeTool.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/awesome-forests.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/carboncalc.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/clus.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/deepforestr.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/forestfrag3d.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/forestmangr.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/forvol.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/giessdenkiez-de.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/laselva.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/lidR.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/plant-generator.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/pycrown.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/pyfor.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/stanfordclassicr.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/tree-species.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/tree_detection.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/treeco.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/treeseg.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/vinv-schema.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/vwm-brandenburg.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/weblidar-treetop.html +2023-08-09T00:59:42+02:00 + + +https://thepirateforest.org/docs/treasure/wheelRuts_semanticSegmentation.html +2023-08-09T00:59:42+02:00 + diff --git a/docs/treasure-chest.html b/docs/treasure-chest.html index 34d13ac..f114a85 100644 --- a/docs/treasure-chest.html +++ b/docs/treasure-chest.html @@ -87,9 +87,27 @@

    Treasure Chest

    +
    - +
    + Thanks to +

    + Gold Sponsor +

    + +
    diff --git a/docs/treasure/3D-CMCC-FEM.html b/docs/treasure/3D-CMCC-FEM.html index 91123ee..aaef26a 100644 --- a/docs/treasure/3D-CMCC-FEM.html +++ b/docs/treasure/3D-CMCC-FEM.html @@ -71,6 +71,11 @@

    3D-CMCC-FEM code

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/AdTree.html b/docs/treasure/AdTree.html index 9701713..d67f2a9 100644 --- a/docs/treasure/AdTree.html +++ b/docs/treasure/AdTree.html @@ -71,6 +71,11 @@

    Accurate, Detailed, and Automatic Modelling of Laser-Scanned Trees

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -132,6 +140,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/Biomassr.html b/docs/treasure/Biomassr.html index 4af4bf2..a285b39 100644 --- a/docs/treasure/Biomassr.html +++ b/docs/treasure/Biomassr.html @@ -71,6 +71,11 @@

    Shiny app to calculate above ground biomass for forest plots.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/DeepForest.html b/docs/treasure/DeepForest.html index 38976a6..9d96037 100644 --- a/docs/treasure/DeepForest.html +++ b/docs/treasure/DeepForest.html @@ -71,6 +71,11 @@

    Python Package for Tree Crown Detection in Airborne RGB imagery

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/Digital-Forestry-Toolbox.html b/docs/treasure/Digital-Forestry-Toolbox.html index 56bce2d..7eb83c1 100644 --- a/docs/treasure/Digital-Forestry-Toolbox.html +++ b/docs/treasure/Digital-Forestry-Toolbox.html @@ -71,6 +71,11 @@

    A collection of digital forestry tools for Matlab/Octave

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/FMT.html b/docs/treasure/FMT.html index dc0dfe1..3b8a38f 100644 --- a/docs/treasure/FMT.html +++ b/docs/treasure/FMT.html @@ -71,6 +71,11 @@

    Forest Management Tool a C++ library for forest planning.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/FSCT.html b/docs/treasure/FSCT.html index d2f147f..f66b1eb 100644 --- a/docs/treasure/FSCT.html +++ b/docs/treasure/FSCT.html @@ -71,6 +71,11 @@

    Allow plot scale measurements to be extracted automatically from most high-resolution forest point clouds.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/ForestBiometrics.html b/docs/treasure/ForestBiometrics.html index 0aa9185..bd3a74c 100644 --- a/docs/treasure/ForestBiometrics.html +++ b/docs/treasure/ForestBiometrics.html @@ -71,6 +71,11 @@

    A library for various forest mensuration and biometrics functions in Julia

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/ForestGapR.html b/docs/treasure/ForestGapR.html index 3fb655f..0f805b9 100644 --- a/docs/treasure/ForestGapR.html +++ b/docs/treasure/ForestGapR.html @@ -71,6 +71,11 @@

    An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html b/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html index b14941a..dbaa227 100644 --- a/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html +++ b/docs/treasure/LANDIS-II-Forest-Roads-Simulation-module.html @@ -71,6 +71,11 @@

    An extension for the spatially explicit forest landscape model LANDIS-II that allows for the dynamic simulation of the construction of forest roads due to forest management.

    +

    + + add to My Treasure Chest + +

    @@ -113,8 +118,9 @@

    + - + source code @@ -123,6 +129,8 @@

    homepage + +

    @@ -130,6 +138,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/LeWoS.html b/docs/treasure/LeWoS.html index 75f3424..eb3294e 100644 --- a/docs/treasure/LeWoS.html +++ b/docs/treasure/LeWoS.html @@ -71,6 +71,11 @@

    Unsupervised leaf-wood classification from laser scanning point clouds

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/LiDARForestryHeight.html b/docs/treasure/LiDARForestryHeight.html index 97e80de..fc05fac 100644 --- a/docs/treasure/LiDARForestryHeight.html +++ b/docs/treasure/LiDARForestryHeight.html @@ -71,6 +71,11 @@

    Plugin generates heights raster maps from LiDAR classified point clouds (las and laz formats)

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/PercepTreeV1.html b/docs/treasure/PercepTreeV1.html index 45e1fb2..20b6543 100644 --- a/docs/treasure/PercepTreeV1.html +++ b/docs/treasure/PercepTreeV1.html @@ -71,6 +71,11 @@

    Implementation of Grondin et al. 2022 'Tree Detection and Diameter Estimation Based on Deep Learning'. Also includes datasets and some of the pretrained models.

    +

    + + add to My Treasure Chest + +

    @@ -113,8 +118,9 @@

    + - + source code @@ -123,6 +129,8 @@

    homepage + +

    @@ -138,6 +146,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/RandomForest-Classification.html b/docs/treasure/RandomForest-Classification.html index e7da778..eb6f6bd 100644 --- a/docs/treasure/RandomForest-Classification.html +++ b/docs/treasure/RandomForest-Classification.html @@ -71,6 +71,11 @@

    Classifying remote sensing data with random forest

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/SBCM.html b/docs/treasure/SBCM.html index e8aa542..98113b6 100644 --- a/docs/treasure/SBCM.html +++ b/docs/treasure/SBCM.html @@ -71,6 +71,11 @@

    The Simple Biomass Comparison Model

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/SEILAPLAN.html b/docs/treasure/SEILAPLAN.html index 854145e..7bf6905 100644 --- a/docs/treasure/SEILAPLAN.html +++ b/docs/treasure/SEILAPLAN.html @@ -71,6 +71,11 @@

    SEILAPLAN is a QGIS Plugin to support forest harvest operations by optimizing the layout of cable roads.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/SSSC.html b/docs/treasure/SSSC.html index 8b4845d..df800e6 100644 --- a/docs/treasure/SSSC.html +++ b/docs/treasure/SSSC.html @@ -71,6 +71,11 @@

    An Unsupervised and Joint Framework for Single Tree Isolation and Leaf-wood Classification

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -132,6 +140,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/TreeDiversity.html b/docs/treasure/TreeDiversity.html index cade4ba..d6a631b 100644 --- a/docs/treasure/TreeDiversity.html +++ b/docs/treasure/TreeDiversity.html @@ -71,6 +71,11 @@

    Notebooks to calculate tree diversity indices (Shannon and Simpson) for planners, foresters, and ecologists!

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/TreeLS.html b/docs/treasure/TreeLS.html index 00be6d5..7fbb90a 100644 --- a/docs/treasure/TreeLS.html +++ b/docs/treasure/TreeLS.html @@ -71,6 +71,11 @@

    R functions for processing individual tree TLS point clouds

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/TreeQSM.html b/docs/treasure/TreeQSM.html index 240fe7b..02ee97e 100644 --- a/docs/treasure/TreeQSM.html +++ b/docs/treasure/TreeQSM.html @@ -71,6 +71,11 @@

    Quantitative Structure Models of Single Trees from Laser Scanner Data

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/TreeTool.html b/docs/treasure/TreeTool.html index fae3aae..39b061e 100644 --- a/docs/treasure/TreeTool.html +++ b/docs/treasure/TreeTool.html @@ -71,6 +71,11 @@

    Estimate the carbon content of trees in a forest plot. Measure their diameters at breast height from point clouds.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/awesome-forests.html b/docs/treasure/awesome-forests.html index 7606e0b..f3a00ab 100644 --- a/docs/treasure/awesome-forests.html +++ b/docs/treasure/awesome-forests.html @@ -71,6 +71,11 @@

    🌳 A curated list of ground-truth forest datasets for the machine learning and forestry community.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/carboncalc.html b/docs/treasure/carboncalc.html index db14f41..219d98b 100644 --- a/docs/treasure/carboncalc.html +++ b/docs/treasure/carboncalc.html @@ -71,6 +71,11 @@

    Tools to calculate growth statistics for individual urban trees such as for estimating carbon storage.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/clus.html b/docs/treasure/clus.html index 5321932..ad6dae3 100644 --- a/docs/treasure/clus.html +++ b/docs/treasure/clus.html @@ -71,6 +71,11 @@

    Caribou and land use simulator- decision support model for caribou and forest management

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/deepforestr.html b/docs/treasure/deepforestr.html index db42d99..3c166a3 100644 --- a/docs/treasure/deepforestr.html +++ b/docs/treasure/deepforestr.html @@ -71,6 +71,11 @@

    R interface for DeepForest Python package, a deep learning package detecting individual organisms in airborne RGB images.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/forestfrag3d.html b/docs/treasure/forestfrag3d.html index 3aa0c67..4e621a0 100644 --- a/docs/treasure/forestfrag3d.html +++ b/docs/treasure/forestfrag3d.html @@ -71,6 +71,11 @@

    Code for Reproducibility of Generalized 3D Fragmentation Index Paper (Petras et al. 2017)

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/forestmangr.html b/docs/treasure/forestmangr.html index 70cc858..f90b121 100644 --- a/docs/treasure/forestmangr.html +++ b/docs/treasure/forestmangr.html @@ -71,6 +71,11 @@

    R package for forest mensuration and management

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/forvol.html b/docs/treasure/forvol.html index b0146a9..b62f849 100644 --- a/docs/treasure/forvol.html +++ b/docs/treasure/forvol.html @@ -71,6 +71,11 @@

    An R package for tree volume equations.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/giessdenkiez-de.html b/docs/treasure/giessdenkiez-de.html index 70f3ee3..850cce4 100644 --- a/docs/treasure/giessdenkiez-de.html +++ b/docs/treasure/giessdenkiez-de.html @@ -71,6 +71,11 @@

    The consequences of climate change, especially the dry and hot summers, are putting a strain on Berlin's ecosystem. Our urban trees are drying out and suffering long-term damage. Gieß den Kiez is made to enable coordinated citizen participation in the irrigation of urban trees.

    +

    + + add to My Treasure Chest + +

    @@ -113,8 +118,9 @@

    + - + source code @@ -123,6 +129,8 @@

    homepage + +

    @@ -130,6 +138,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/laselva.html b/docs/treasure/laselva.html index 7068b11..9f73dce 100644 --- a/docs/treasure/laselva.html +++ b/docs/treasure/laselva.html @@ -71,6 +71,11 @@

    Fetch Forest Inventory data from many countries

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/lidR.html b/docs/treasure/lidR.html index 65b1f46..6ff3e81 100644 --- a/docs/treasure/lidR.html +++ b/docs/treasure/lidR.html @@ -71,6 +71,11 @@

    R package for airborne LiDAR data manipulation and visualisation for forestry application

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -136,6 +144,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/plant-generator.html b/docs/treasure/plant-generator.html index 67e9012..890ddb2 100644 --- a/docs/treasure/plant-generator.html +++ b/docs/treasure/plant-generator.html @@ -71,6 +71,11 @@

    Plant generator

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/pycrown.html b/docs/treasure/pycrown.html index 790c912..3513e9a 100644 --- a/docs/treasure/pycrown.html +++ b/docs/treasure/pycrown.html @@ -71,6 +71,11 @@

    PyCrown - Fast raster-based individual tree segmentation for LiDAR data

    +

    + + add to My Treasure Chest + +

    @@ -113,8 +118,9 @@

    + - + source code @@ -123,6 +129,8 @@

    homepage + +

    @@ -130,6 +138,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/pyfor.html b/docs/treasure/pyfor.html index e0ab4dc..4f432d6 100644 --- a/docs/treasure/pyfor.html +++ b/docs/treasure/pyfor.html @@ -71,6 +71,11 @@

    Tools for analyzing aerial point clouds of forest data.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/stanfordclassicr.html b/docs/treasure/stanfordclassicr.html index c15d100..82209ea 100644 --- a/docs/treasure/stanfordclassicr.html +++ b/docs/treasure/stanfordclassicr.html @@ -71,6 +71,11 @@

    Functions to read StanForD classic forest machine reports

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/tree-species.html b/docs/treasure/tree-species.html index c900547..fbe1b39 100644 --- a/docs/treasure/tree-species.html +++ b/docs/treasure/tree-species.html @@ -71,6 +71,11 @@

    tree species with corresponding translation

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/tree_detection.html b/docs/treasure/tree_detection.html index 31cdbd0..adaf7fa 100644 --- a/docs/treasure/tree_detection.html +++ b/docs/treasure/tree_detection.html @@ -71,6 +71,11 @@

    This package implements a simple tree detector from point cloud data. It makes no assumptions about the ground plane and can handle arbitrary terrains.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/treeco.html b/docs/treasure/treeco.html index f1033a5..25ad1ba 100644 --- a/docs/treasure/treeco.html +++ b/docs/treasure/treeco.html @@ -71,6 +71,11 @@

    The goal of treeco is to provide R users a tool for calculating the eco benefits of trees.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/treeseg.html b/docs/treasure/treeseg.html index 19a1771..cd16d05 100644 --- a/docs/treasure/treeseg.html +++ b/docs/treasure/treeseg.html @@ -71,6 +71,11 @@

    A library of tree segmentation and detection algorithms.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/vinv-schema.html b/docs/treasure/vinv-schema.html index 398b8b0..e37d5a3 100644 --- a/docs/treasure/vinv-schema.html +++ b/docs/treasure/vinv-schema.html @@ -71,6 +71,11 @@

    Lightweight data standard for single-tree based forest management, visualisation & analytics

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/vwm-brandenburg.html b/docs/treasure/vwm-brandenburg.html index baf704d..252cc0b 100644 --- a/docs/treasure/vwm-brandenburg.html +++ b/docs/treasure/vwm-brandenburg.html @@ -71,6 +71,11 @@

    Illustration of regeneration condition and wildlife impact monitoring.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -132,6 +140,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/weblidar-treetop.html b/docs/treasure/weblidar-treetop.html index b80fae5..f8d34d3 100644 --- a/docs/treasure/weblidar-treetop.html +++ b/docs/treasure/weblidar-treetop.html @@ -71,6 +71,11 @@

    A Shiny-based Application for Extracting Forest Information from LiDAR data.

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -126,6 +134,7 @@

    Star this Repository to putt a smile on the Developers face. +
    diff --git a/docs/treasure/wheelRuts_semanticSegmentation.html b/docs/treasure/wheelRuts_semanticSegmentation.html index 30d4913..dfd6956 100644 --- a/docs/treasure/wheelRuts_semanticSegmentation.html +++ b/docs/treasure/wheelRuts_semanticSegmentation.html @@ -71,6 +71,11 @@

    semantic segmentation of wheel-ruts caused by forestry machinery

    +

    + + add to My Treasure Chest + +

    @@ -113,12 +118,15 @@

    @@ -132,6 +140,7 @@

    Star this Repository to putt a smile on the Developers face. +