Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
73a8aba
setup golem framework, build intial UI and begin implementation
david-beauchesne Sep 25, 2025
46be976
add data input module
david-beauchesne Oct 8, 2025
f2ec9d3
add fetch module
david-beauchesne Oct 8, 2025
e2fd0e7
aff depth module
david-beauchesne Oct 9, 2025
5deba81
add model module
david-beauchesne Oct 9, 2025
cb6e3be
restructure object management in and between modules
david-beauchesne Oct 9, 2025
e3fb6b1
prepare app for deployment
david-beauchesne Oct 9, 2025
5c78e03
add missing namespace
david-beauchesne Oct 9, 2025
ccc5207
add viz module
david-beauchesne Oct 9, 2025
02d7164
remove export step
david-beauchesne Oct 9, 2025
b032226
add UI for polygon aoi in fetch calculation
david-beauchesne Oct 27, 2025
f00e4d2
update reactivity with polygon input
david-beauchesne Oct 27, 2025
22f01bc
add shinyWidgets
KevCaz Oct 27, 2025
c5c71dd
add new models
KevCaz Nov 5, 2025
a64d558
style package
KevCaz Nov 5, 2025
8a8e321
add model vignette
KevCaz Nov 5, 2025
4cc7dc6
Update rf models
KevCaz Nov 5, 2025
1679efb
glmm and gam models available from sav_model()
KevCaz Nov 5, 2025
5eaceaa
CST-627 review bearings directions
KevCaz Nov 12, 2025
d6b3ab5
CST-627 outsiders are identified with NAs
KevCaz Nov 12, 2025
d6f3ecd
CST-627 compute_fetch() works with land polygon
KevCaz Nov 13, 2025
297bc30
CST-627 update models
KevCaz Nov 13, 2025
2284453
CST-627 update data input module and switch to ds4Dash
david-beauchesne Nov 12, 2025
82437b9
CST-627 update depth extraction and review conditional navigation bet…
david-beauchesne Nov 12, 2025
861d76e
CST-627 mess with reactivity
david-beauchesne Nov 12, 2025
daf7b18
remove status from all modules
david-beauchesne Nov 12, 2025
d6a83fe
CST-627 modify main manu for updates
david-beauchesne Nov 13, 2025
7e698e2
CST-627 add safeties for erroneous or invalid polygons that may be pr…
david-beauchesne Nov 13, 2025
0b7b026
CST-627 add great lakes polygons
david-beauchesne Nov 13, 2025
5799e97
CST-627 update model module to leverage newest sav_model() capacities
KevCaz Nov 13, 2025
b163cda
CST-627 update model fun to chose post-hoc predictors
KevCaz Nov 13, 2025
ddc50f6
CST-627 change default behavior for post-hoc predictor
KevCaz Nov 13, 2025
da38567
CST-627 Improve model module visual
KevCaz Nov 13, 2025
43c65b2
CST-627 fix assembly issue that causes depth and fetch to be unavaila…
david-beauchesne Nov 13, 2025
ff478e0
CST-627 add wind weights template
david-beauchesne Nov 13, 2025
2b5138f
CST-627 review module conditional panels
david-beauchesne Nov 13, 2025
c058d65
CST-627 UI modifications to include manual data entry
david-beauchesne Nov 13, 2025
ed06441
CST-627 add initial mapEdit capabilities
david-beauchesne Nov 13, 2025
87a3df1
CST-627 complete mapedit implementation
david-beauchesne Nov 13, 2025
98aef96
CST-627 update model module to leverage newest sav_model() capacities
KevCaz Nov 13, 2025
c79ec97
CST-627 update model fun to chose post-hoc predictors
KevCaz Nov 13, 2025
8cee3b8
CST-627 change default behavior for post-hoc predictor
KevCaz Nov 13, 2025
6ce515c
CST-627 Improve model module visual
KevCaz Nov 13, 2025
9ed7416
CST-627 fix deployment
KevCaz Nov 13, 2025
0da7c91
CST-627 fix assembly issue that causes depth and fetch to be unavaila…
david-beauchesne Nov 13, 2025
ca3699d
CST-627 add wind weights template
david-beauchesne Nov 13, 2025
b8a766d
CST-627 review module conditional panels
david-beauchesne Nov 13, 2025
26f6d70
CST-627 UI modifications to include manual data entry
david-beauchesne Nov 13, 2025
b06a2dc
CST-627 add initial mapEdit capabilities
david-beauchesne Nov 13, 2025
df20542
CST-627 complete mapedit implementation
david-beauchesne Nov 13, 2025
cb3211c
CST-627 fix deployment
KevCaz Nov 13, 2025
54aae06
CST-627 add welcome modal
KevCaz Nov 13, 2025
adbff78
Merge branch 'module_model' into app
KevCaz Nov 13, 2025
fcd986a
CST-627 export coordinates along with data
KevCaz Nov 13, 2025
74cee99
CST-627 bigger font size for plot labels
KevCaz Nov 13, 2025
592d2f7
:bookmark: v0.0.2
KevCaz Nov 13, 2025
2321b69
add data input modal placeholder
david-beauchesne Dec 1, 2025
ebd6ade
add hover on map with data viz
david-beauchesne Dec 1, 2025
a55b4da
update viz and export for map and data table
david-beauchesne Dec 1, 2025
88c7f0f
shapefile export and hidden menu items
david-beauchesne Dec 1, 2025
3751934
add secchi blanket value option
david-beauchesne Dec 1, 2025
90b7e5a
update distribution plot with 0 category
david-beauchesne Dec 1, 2025
401519a
update size limit
david-beauchesne Dec 1, 2025
4a24637
Change pa and new default column
KevCaz Dec 1, 2025
34c458f
Add logo
KevCaz Dec 1, 2025
3679118
Merge pull request #8 from inSilecoInc/CST-653-fix-model
KevCaz Dec 1, 2025
319c27b
fix object name
david-beauchesne Dec 1, 2025
d6a001f
Use logo
KevCaz Dec 1, 2025
8ffac72
Update doc
KevCaz Dec 1, 2025
eba34bc
Add GoatCounter
KevCaz Dec 4, 2025
95dd12f
update polygons
david-beauchesne Dec 17, 2025
f39d988
menu typo and select all in data explorer
david-beauchesne Dec 17, 2025
2a988bb
modifs to results viz
david-beauchesne Dec 17, 2025
092e8f6
incorporate texts provided by client
david-beauchesne Dec 17, 2025
9173bc4
Fix limitation logic
KevCaz Dec 17, 2025
991b625
limitation and substrate are binary
KevCaz Dec 17, 2025
e3ad8cc
chore: lint
KevCaz Oct 7, 2026
ce70bf6
fix: use $ to avoid matrix conversion
KevCaz Oct 8, 2026
8ae024e
chore: add favicon
KevCaz Oct 8, 2026
6bab1ae
ci: uupdate workflows
KevCaz Oct 8, 2026
4a5664d
test: skip tmap plot save test on MacOS
KevCaz Oct 8, 2026
e35c389
Merge pull request #10 from inSileco/app_update
KevCaz Oct 8, 2026
765f10d
chore: release 0.1.0
KevCaz Oct 8, 2026
39d4972
fix: use openstreetmap basemap
KevCaz Oct 8, 2026
ed33091
feat: show a notification when all values are NA
KevCaz Oct 9, 2026
78e64d1
feat: update button label based on mode
KevCaz Oct 9, 2026
ab7cbfa
feat: catch and drop empty column
KevCaz Oct 9, 2026
715082e
feat: convert lake name in snake case to title case name
KevCaz Oct 9, 2026
8947bbc
feat: Add version number in navbar
KevCaz Oct 9, 2026
06c3520
chore: release v0.1.1
KevCaz Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,16 @@
^tmp$
^notes\.md$
^\.vscode$
^.*\.Rproj$
^\.Rproj\.user$
^data-raw$
dev_history.R
^dev$
$run_dev.*
^manifest\.json$
^app\.R$
^\.rscignore$
^doc$
^Meta$
^\.github$
^\.renvignore$
1 change: 1 addition & 0 deletions .github/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.html
29 changes: 17 additions & 12 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: main
pull_request:
branches: main

name: R CMD Check
name: R-CMD-check.yaml

permissions: read-all

jobs:
R-CMD-check:
Expand All @@ -16,30 +19,32 @@ jobs:
fail-fast: false
matrix:
config:
#- {os: macOS-latest, r: 'release'}
- {os: macos-latest, r: 'release'}
- {os: windows-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel'}
# - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-latest, r: 'oldrel-1'}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
_R_CHECK_DONTTEST_EXAMPLES_: false
CRAN: ${{ matrix.config.cran }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- uses: r-lib/actions/check-r-package@v2

with:
upload-snapshots: true
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
10 changes: 4 additions & 6 deletions .github/workflows/pkgdown.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches: [main, master]
branches: main
pull_request:
release:
types: [published]
Expand All @@ -23,13 +23,11 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
Expand All @@ -42,8 +40,8 @@ jobs:

- name: Deploy to GitHub pages 🚀
if: github.event_name != 'pull_request'
uses: JamesIves/github-pages-deploy-action@v4.5.0
uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # v4.8.0
with:
clean: false
branch: gh-pages
folder: docs
folder: docs
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Project-specific files
fetchR
tmp

inst/extdata/polygons/Great_Lakes_High_Resolution_Shorelines_

# vscode
.vscode
Expand Down Expand Up @@ -47,4 +47,6 @@ vignettes/*.pdf
.Renviron
inst/doc
docs
.DS_Store
.DS_Store
/doc/
/Meta/
1 change: 1 addition & 0 deletions .renvignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tmp/
24 changes: 24 additions & 0 deletions .rscignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# macOS files ----
.DS_Store

# History files ----
.Rhistory
.Rapp.history

# Session Data files ----
.RData
.Ruserdata

# RStudio files ----
*.Rproj
.Rproj.user

# R Environment Variables ----
.Renviron

# User-specific files ----
README.html
inst/doc

# temporary files ----
tmp
25 changes: 20 additions & 5 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: SAVM
Title: Submerged aquatic vegetation model
Version: 0.0.1.9005
Date: 2025-08-12
Version: 0.1.1
Date: 2025-10-09
Authors@R: c(
person(given = "Kevin",
family = "Cazelles",
Expand All @@ -27,16 +27,31 @@ License: GPL-3
Encoding: UTF-8
LazyData: true
Roxygen: list(markdown = TRUE)
Depends:
Depends:
R (>= 4.2),
randomForest (>= 4.7-1.2)
Imports:
Imports:
bs4Dash,
cli (>= 3.6.4),
config,
DT,
dplyr (>= 1.1.4),
ggplot2 (>= 3.5.1),
glue,
golem,
leaflet,
mapedit,
leafpm,
lme4,
lmerTest,
mgcv,
patchwork (>= 1.3.0),
rlang (>= 1.1.5),
sf (>= 1.0-19),
shiny,
shinyjs,
shinycssloaders,
shinyWidgets,
stats,
tmap (>= 4.0),
tools,
Expand All @@ -50,6 +65,6 @@ Suggests:
stars,
vdiffr,
withr
RoxygenNote: 7.3.2
VignetteBuilder: knitr
Config/testthat/edition: 3
Config/roxygen2/version: 8.0.0
9 changes: 8 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

S3method(preview_grid,sav_data)
export(compute_fetch)
export(identify_outsiders)
export(invert_polygon)
export(plot_sav_density)
export(plot_sav_distribution)
Expand All @@ -12,5 +11,13 @@ export(read_sav)
export(read_sav_aoi)
export(read_sav_csv)
export(read_sav_pts)
export(run_app)
export(sav_load_model)
export(sav_model)
export(visualize_outsiders)
import(randomForest)
import(shiny)
importFrom(golem,activate_js)
importFrom(golem,add_resource_path)
importFrom(golem,bundle_resources)
importFrom(golem,favicon)
32 changes: 30 additions & 2 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,32 @@
# SAVM (devel)
# SAVM 0.1.1

* Notify users when predictor values are all NAs.
* Drop empty columns from user input data.
* Add SAVM version in the top left of the navbar.


# SAVM 0.1.0

* Fix problematic conversion to one-column matrix.
* Lint code.
* CI update + manifest update.


# SAVM 0.0.2

* New shiny app that exposes the package capacities.
* `compute_fetch()` gains argument `land_polygon` to work with land polygons.
* Bearings are oriented properly and the element `transect_lines` of the object returned by `compute_fetch()` gains a column `cardinal_direction` (see #15).
* Argument `remove_outsiders` has been removed from `compute_fetch()`, instead
a column `outsider` which identifies outsiders has been added.
* `identify_outsiders()` has been renamed `visualize_outsiders()`.
* `sav_load_model()` is now exposed and the vignette "SAV Prediction Models" details the model available.
* Only models using both fetch and depth are supported, therefore argument
`type` has been dropped from `sav_model()`.
* New `glmm` and `gam` models available.


# SAVM 0.0.1

* `compute_fetch()` has a new argument `remove_outsider` to remove points falling outside the polygon. Also, `identify_outsiders()` helps visualize outsiders (see #13).
* Model and plot functions have been adjusted to handle `sf` objects (see #11).
Expand All @@ -8,4 +36,4 @@
* `invert_polygon()` has been added to invert polygon (see #6).
* `compute_fetch()` has a new argument `n_bearings` that provides the number of bearings, it replaces `n_quad_seg` (see #4 and #5).
* `compute_fetch()` only compute the mean fetch for all bearings, columns with
suffix `_all` where therefore removed (see #4).
suffix `_all` where therefore removed (see #4).
Empty file added R/_disable_autoload.R
Empty file.
44 changes: 44 additions & 0 deletions R/app_config.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#' Access files in the current app
#'
#' NOTE: If you manually change your package name in the DESCRIPTION,
#' don't forget to change it here too, and in the config file.
#' For a safer name change mechanism, use the `golem::set_golem_name()` function.
#'
#' @param ... character vectors, specifying subdirectory and file(s)
#' within your package. The default, none, returns the root of the app.
#'
#' @noRd
app_sys <- function(...) {
system.file(..., package = "SAVM")
}


#' Read App Config
#'
#' @param value Value to retrieve from the config file.
#' @param config GOLEM_CONFIG_ACTIVE value. If unset, R_CONFIG_ACTIVE.
#' If unset, "default".
#' @param use_parent Logical, scan the parent directory for config file.
#' @param file Location of the config file
#'
#' @noRd
get_golem_config <- function(
value,
config = Sys.getenv(
"GOLEM_CONFIG_ACTIVE",
Sys.getenv(
"R_CONFIG_ACTIVE",
"default"
)
),
use_parent = TRUE,
# Modify this if your config file is somewhere else
file = app_sys("golem-config.yml")
) {
config::get(
value = value,
config = config,
file = file,
use_parent = use_parent
)
}
Loading
Loading