diff --git a/R/make_datasets.R b/R/make_datasets.R index be634b6f94330ddd30c675d4bbf3d00db150c12f..77698214979ea4c5c5a85b0f515b3c2be35b30f5 100644 --- a/R/make_datasets.R +++ b/R/make_datasets.R @@ -244,19 +244,23 @@ make_datasets <- function(path = getwd(), } ) ) - extent <- sf::st_buffer(sites, dist = buffer_dist) |> sf::st_bbox() + extent <- sf::st_buffer(sites, dist = buffer_dist * 10) |> sf::st_bbox() dem <- mds_dem(data, crs, extent, resolution) - save(dem, file = file.path(tmpdir, "dem.rda"), compress = FALSE) - - # get spatial extent - extent <- terra::unwrap(dem) |> sf::st_bbox() # make mountains dataset (mountains) message("STATUS: making 'mountains' dataset ...") - file <- file.path(path, "data-raw/misc/mountain_names.geojson") + file <- file.path(path, "data-raw/misc/mountain-names.geojson") checkmate::assert_file_exists(file, access = "r") data <- sf::st_read(dsn = file, quiet = quiet) mountains <- mds_mountains(data, crs, dem) + + # crop dem and mountains datasets + extent <- sf::st_buffer(sites, dist = buffer_dist) |> sf::st_bbox() + dem <- terra::crop(dem, extent) + extent <- sf::st_bbox(dem) + mountains <- clean_sf(mountains, crs = crs, extent = extent, type = "POLYGON") + dem <- terra::wrap(dem) + save(dem, file = file.path(tmpdir, "dem.rda"), compress = FALSE) save(mountains, file = file.path(tmpdir, "mountains.rda"), compress = FALSE) # make surface-water measurements dataset (swm) @@ -1618,63 +1622,31 @@ mds_dem <- function(data, crs, extent, resolution) { r[] <- r[] * 3.2808399 r[] <- round_numbers(r[], digits = 0) + # set field name names(r) <- "elevation" - terra::wrap(r) + + r } -# Mountains (mds_mountains) ----- +# Mountains and Buttes (mountains) ----- mds_mountains <- function(data, crs, dem) { # check arguments checkmate::assert_multi_class(data, classes = c("sf", "data.frame")) checkmate::assert_class(crs, classes = "crs") - checkmate::assert_class(dem, classes = "PackedSpatRaster") + checkmate::assert_class(dem, classes = "SpatRaster") # clean spatial feature data <- clean_sf(data, - cols = c( - "name" = "Name", - "geometry" = "geometry" - ), + cols = c("name", "geometry"), agr = "identity", crs = crs ) - # unwrap DEM raster - r <- terra::unwrap(dem) - - # get spatal extent of DEM - extent <- terra::ext(r) - - # set buffer distance, in meters - buffer <- 2000 - - # make new extent that is larger than the original by the buffer size - new_extent <- terra::ext( - extent[1] - buffer, # xmin - extent[2] + buffer, # xmax - extent[3] - buffer, # ymin - extent[4] + buffer # ymax - ) - - # extend raster to new extent - r <- terra::extend(r, new_extent) - - - - - # assign missing values using a focal operation with a mean function - while (anyNA(terra::values(r))) { - r <- terra::focal(r, w = 5, fun = mean, na.policy = "only", na.rm = TRUE) - } - - - - # calculate the terrain slope - r <- terra::terrain(r, v = "slope") + r <- terra::terrain(dem, v = "slope") # calculate slope threshold threshold <- terra::values(r) |> @@ -1700,17 +1672,20 @@ mds_mountains <- function(data, crs, dem) { # add polygon names p <- sf::st_join(p, data, left = FALSE) + # set polygon tolerance + tol <- min(terra::res(r)) / 2 + # simplify polygons - p <- sf::st_simplify(p, preserveTopology = TRUE, dTolerance = 50) + p <- sf::st_simplify(p, preserveTopology = TRUE, dTolerance = tol) + + # get spatial extent + extent <- terra::ext(r) |> sf::st_bbox(crs = crs) # clean spatial feature p <- clean_sf(p, - cols = c( - "name" = "name", - "geometry" = "geometry" - ), + cols = c("name", "geometry"), crs = crs, - extent = sf::st_bbox(extent, crs = crs), + extent = extent, type = "POLYGON" ) diff --git a/data-raw/misc/mountain_names.geojson b/data-raw/misc/mountain-names.geojson similarity index 61% rename from data-raw/misc/mountain_names.geojson rename to data-raw/misc/mountain-names.geojson index e71fe1992b79ae94278e6f2c3d740555ec340d00..3abdb40f2ee87d65732ac8423bae7d1c8e572dcd 100644 --- a/data-raw/misc/mountain_names.geojson +++ b/data-raw/misc/mountain-names.geojson @@ -1 +1 @@ -{"type":"FeatureCollection","features":[{"type":"Feature","id":11,"geometry":{"type":"Point","coordinates":[-112.66312499299994,43.499898195000071]},"properties":{"OBJECTID":11,"Name":"East Butte"}},{"type":"Feature","id":12,"geometry":{"type":"Point","coordinates":[-112.73581947099996,43.489925001000074]},"properties":{"OBJECTID":12,"Name":"Middle Butte"}},{"type":"Feature","id":13,"geometry":{"type":"Point","coordinates":[-113.02566051799994,43.400718426000026]},"properties":{"OBJECTID":13,"Name":"Big Southern Butte"}},{"type":"Feature","id":14,"geometry":{"type":"Point","coordinates":[-113.55927030499998,43.624235595000073]},"properties":{"OBJECTID":14,"Name":"Pioneer Mountains"}},{"type":"Feature","id":15,"geometry":{"type":"Point","coordinates":[-113.55377536299994,43.787259702000028]},"properties":{"OBJECTID":15,"Name":"White Knob Mountains"}},{"type":"Feature","id":16,"geometry":{"type":"Point","coordinates":[-113.26982331599999,43.855874268000036]},"properties":{"OBJECTID":16,"Name":"Lost River Range"}},{"type":"Feature","id":17,"geometry":{"type":"Point","coordinates":[-112.96260960799998,43.972664303000045]},"properties":{"OBJECTID":17,"Name":"Lemhi Range"}},{"type":"Feature","id":18,"geometry":{"type":"Point","coordinates":[-112.75128032799995,44.109152853000069]},"properties":{"OBJECTID":18,"Name":"Bitterroot Range"}}]} \ No newline at end of file +{"type":"FeatureCollection","features":[{"type":"Feature","id":11,"geometry":{"type":"Point","coordinates":[-112.66312499299994,43.499898195000071]},"properties":{"OBJECTID":11,"name":"East Butte"}},{"type":"Feature","id":12,"geometry":{"type":"Point","coordinates":[-112.73581947099996,43.489925001000074]},"properties":{"OBJECTID":12,"name":"Middle Butte"}},{"type":"Feature","id":13,"geometry":{"type":"Point","coordinates":[-113.02566051799994,43.400718426000026]},"properties":{"OBJECTID":13,"name":"Big Southern Butte"}},{"type":"Feature","id":14,"geometry":{"type":"Point","coordinates":[-113.55927030499998,43.624235595000073]},"properties":{"OBJECTID":14,"name":"Pioneer Mountains"}},{"type":"Feature","id":15,"geometry":{"type":"Point","coordinates":[-113.55377536299994,43.787259702000028]},"properties":{"OBJECTID":15,"name":"White Knob Mountains"}},{"type":"Feature","id":16,"geometry":{"type":"Point","coordinates":[-113.26982331599999,43.855874268000036]},"properties":{"OBJECTID":16,"name":"Lost River Range"}},{"type":"Feature","id":17,"geometry":{"type":"Point","coordinates":[-112.96260960799998,43.972664303000045]},"properties":{"OBJECTID":17,"name":"Lemhi Range"}},{"type":"Feature","id":18,"geometry":{"type":"Point","coordinates":[-112.75128032799995,44.109152853000069]},"properties":{"OBJECTID":18,"name":"Bitterroot Range"}}]} diff --git a/data-raw/output.log b/data-raw/output.log index c90e81b5e828c7d6b82a3ede1dfa2c6ce842aa6e..e7b8d11f300947572cfb20324a45ddfab8fc3b58 100644 --- a/data-raw/output.log +++ b/data-raw/output.log @@ -1,7 +1,7 @@ running '/usr/lib/R/bin/R --no-echo --no-restore --no-save --no-restore --file=data-raw/make-datasets.R' -TIMESTAMP: 2024-07-14 23:08:46 PDT +TIMESTAMP: 2024-07-15 10:46:53 PDT STATUS: making 'crs' dataset ... STATUS: making 'parameters' dataset ... @@ -302,11 +302,10 @@ STATUS: making 'cities' dataset ... STATUS: making 'counties' dataset ... STATUS: making 'roads' dataset ... STATUS: making 'lakes' dataset ... -â ™ 21 extracted | 293 MB ( 83 MB/s) | 3.5s +â ™ 21 extracted | 311 MB ( 82 MB/s) | 3.8s STATUS: making 'streams' dataset ... -â ™ 21 extracted | 239 MB (103 MB/s) | 2.3s -â ¹ 21 extracted | 375 MB ( 71 MB/s) | 5.3s +â ™ 21 extracted | 302 MB ( 85 MB/s) | 3.5s STATUS: compress dataset files ... STATUS: copy dataset files to destination directory ... -DURATION: 6.270562 mins +DURATION: 6.442693 mins diff --git a/data/counties.rda b/data/counties.rda index efd8eb8793e81063037f6bf2afe2c0dfdebe9681..b0c1f3907f7d0492ad8a1422a99a5b636332e526 100644 Binary files a/data/counties.rda and b/data/counties.rda differ diff --git a/data/dem.rda b/data/dem.rda index b22154228bdaea013b127da1d2850cacec3fba18..ce2e76214c56989bbf1bb1ce3c38df68d2443a6b 100644 Binary files a/data/dem.rda and b/data/dem.rda differ diff --git a/data/lakes.rda b/data/lakes.rda index 50660a29ce370758ec6308794a3c6e702b697889..24b21720b74ceb7152e370668079402fb292fc33 100644 Binary files a/data/lakes.rda and b/data/lakes.rda differ diff --git a/data/mountains.rda b/data/mountains.rda index 4cf68559fd465c493ccef3bfcaeb42ba955551f0..cec83a080d963c1f841c43064d3ae9dd0ca36bda 100644 Binary files a/data/mountains.rda and b/data/mountains.rda differ diff --git a/data/roads.rda b/data/roads.rda index fa76fd73c64f401396d5c87a7ef4bfd293712aca..7762001aae8429eb667884066bf64197c8de9c6b 100644 Binary files a/data/roads.rda and b/data/roads.rda differ diff --git a/data/streams.rda b/data/streams.rda index 4afd68bd9c8b3af46fc3e622f9fdd9ca66082fb5..3f456248202a3786f784fec8609a7809c08d7409 100644 Binary files a/data/streams.rda and b/data/streams.rda differ diff --git a/pkgdown/_pkgdown.yml b/pkgdown/_pkgdown.yml index 33adb12a7b30346548db1bb905c7e3135ac00da2..74345078834d6d2517124a4c61efbfbd7875547c 100644 --- a/pkgdown/_pkgdown.yml +++ b/pkgdown/_pkgdown.yml @@ -45,10 +45,10 @@ navbar: href: articles/idaho.html - text: Units of Measurement href: articles/units.html - - text: Download - href: articles/download.html - text: ERD href: articles/erd.html + - text: Download + href: articles/download.html - text: Changelog href: news/index.html right: diff --git a/vignettes/erd.Rmd b/vignettes/erd.Rmd index a736902db39e74e0b850d05e0ba6470a98a119f1..00d3bedf24ea6188697cfc4c5174487442818ffc 100644 --- a/vignettes/erd.Rmd +++ b/vignettes/erd.Rmd @@ -4,4 +4,4 @@ title: "Entity Relationship Diagram" Entity Relationship Diagram (ERD) for the **inldata** package datasets: This diagram represents the various entities (datasets) within the package and their interrelationships. Each entity is a specific dataset in the package, and the relationships depict how these datasets are interconnected based on shared attributes. This ERD provides a overview of the structure of the data within the **inldata** package, enabling efficient data organization and extraction of meaningful insights. - +