From ec980c423d6bac637549332433741ec68a55478e Mon Sep 17 00:00:00 2001 From: Jeremy Kidwell Date: Thu, 28 Mar 2019 09:36:31 +0000 Subject: [PATCH] fixed error in ecs sssi table, added calc for pubs and grocery stores to other wilderness categories --- mapping_draft-hpc_optimised_wilderness.Rmd | 30 ++++++++++++++++++--- wilderness_layers.qgz | Bin 10443 -> 11202 bytes 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/mapping_draft-hpc_optimised_wilderness.Rmd b/mapping_draft-hpc_optimised_wilderness.Rmd index 9286f2f..4cd32c3 100644 --- a/mapping_draft-hpc_optimised_wilderness.Rmd +++ b/mapping_draft-hpc_optimised_wilderness.Rmd @@ -493,6 +493,7 @@ scenicareas_buf500 <- st_buffer(scenicareas_simplified, dist = 500) # plot(lnd[ sel, ], col = "turquoise", add = TRUE) # add selected zones to map # from https://gotellilab.github.io/Bio381/StudentPresentations/SpatialDataTutorial.html +# TODO: integrate pre-calc here into calculations further down which are still recalculating these figures ecs_sf_sssi <- st_within(ecs_sf, sssi_simplified) ecs_sf_sssi50m <- st_within(ecs_sf, sssi_buf50) ecs_sf_sssi500m <- st_within(ecs_sf, sssi_buf500) @@ -514,6 +515,8 @@ ecs_sf_scenicareas500m <- st_within(ecs_sf, scenicareas_buf500) ecs_sf_scenicareasbeyond500m <- !(st_within(ecs_sf, scenicareas_buf500)) # TODO: implement more efficient code using do.call() function or sapply() as here https://stackoverflow.com/questions/3642535/creating-an-r-dataframe-row-by-row +# TODO: implement parallel computing to distribute execution of loopable calculations below +# See: https://nceas.github.io/oss-lessons/parallel-computing-in-r/parallel-computing-in-r.html # Generate dataframe based on SSSI buffers @@ -581,23 +584,30 @@ permaculture_wildland_row <- c(sum(apply(st_within(permaculture_sf, wildland_sim wildland_counts <- rbind(wildland_counts, permaculture_wildland_row) grocery_wildland_row <- c(sum(apply(st_within(poi_grocery_sf, wildland_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, wildland_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, wildland_buf500, sparse=FALSE), 1, any))) +wildland_counts <- rbind(wildland_counts, grocery_wildland_row) pubs_wildland_row <- c(sum(apply(st_within(poi_pubs_sf, wildland_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, wildland_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, wildland_buf500, sparse=FALSE), 1, any))) +wildland_counts <- rbind(wildland_counts, pubs_wildland_row) colnames(wildland_counts) <- c("Within Wildland Areas", "...50m", "...500m") # Generate dataframe from rows based on percentages of totals -ecs_wildland_row_pct <- ecs_wildland_row/length(ecs_sf) +ecs_wildland_row_pct <- ecs_wildland_row/length(ecs) pow_wildland_row_pct <- pow_wildland_row/length(pow_pointX) dtas_wildland_row_pct <- dtas_wildland_row/length(dtas) transition_wildland_row_pct <- transition_wildland_row/length(transition) permaculture_wildland_row_pct <- permaculture_wildland_row/length(permaculture) +grocery_wildland_row_pct <- grocery_wildland_row/length(poi_grocery) +pubs_wildland_row_pct <- pubs_wildland_row/length(poi_pubs) wildland_counts_pct <- rbind(ecs_wildland_row_pct, pow_wildland_row_pct) wildland_counts_pct <- rbind(wildland_counts_pct, dtas_wildland_row_pct) wildland_counts_pct <- rbind(wildland_counts_pct, transition_wildland_row_pct) wildland_counts_pct <- rbind(wildland_counts_pct, permaculture_wildland_row_pct) +wildland_counts_pct <- rbind(wildland_counts_pct, grocery_wildland_row_pct) +wildland_counts_pct <- rbind(wildland_counts_pct, pubs_wildland_row_pct) + colnames(wildland_counts_pct) <- c("% Within wildlands", "% within 50m", "% within 500m") # Merge into larger dataframe @@ -620,22 +630,30 @@ permaculture_forestinv_row <- c(sum(apply(st_within(permaculture_sf, forestinv_s forestinv_counts <- rbind(forestinv_counts, permaculture_forestinv_row) grocery_forestinv_row <- c(sum(apply(st_within(poi_grocery_sf, forestinv_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, forestinv_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, forestinv_buf500, sparse=FALSE), 1, any))) +forestinv_counts <- rbind(forestinv_counts, grocery_forestinv_row) pubs_forestinv_row <- c(sum(apply(st_within(poi_pubs_sf, forestinv_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, forestinv_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, forestinv_buf500, sparse=FALSE), 1, any))) +forestinv_counts <- rbind(forestinv_counts, pubs_forestinv_row) colnames(forestinv_counts) <- c("Within Woodlands", "...50m", "...500m") # Generate dataframe from rows based on percentages of totals -ecs_forestinv_row_pct <- ecs_forestinv_row/length(ecs_sf) +# TODO: fix error generated by ecs_forestinv_row_pct using ecs_sf. Migrate all these to sf, but check for errors. +ecs_forestinv_row_pct <- ecs_forestinv_row/length(ecs) pow_forestinv_row_pct <- pow_forestinv_row/length(pow_pointX) dtas_forestinv_row_pct <- dtas_forestinv_row/length(dtas) transition_forestinv_row_pct <- transition_forestinv_row/length(transition) permaculture_forestinv_row_pct <- permaculture_forestinv_row/length(permaculture) +grocery_forestinv_row_pct <- grocery_forestinv_row/length(poi_grocery) +pubs_forestinv_row_pct <- pubs_forestinv_row/length(poi_pubs) forestinv_counts_pct <- rbind(ecs_forestinv_row_pct, pow_forestinv_row_pct) forestinv_counts_pct <- rbind(forestinv_counts_pct, dtas_forestinv_row_pct) forestinv_counts_pct <- rbind(forestinv_counts_pct, transition_forestinv_row_pct) forestinv_counts_pct <- rbind(forestinv_counts_pct, permaculture_forestinv_row_pct) +forestinv_counts_pct <- rbind(forestinv_counts_pct, grocery_forestinv_row_pct) +forestinv_counts_pct <- rbind(forestinv_counts_pct, pubs_forestinv_row_pct) + colnames(forestinv_counts_pct) <- c("% Within Woodlands", "% within 50m", "% within 500m") # Merge into larger dataframe @@ -658,23 +676,29 @@ permaculture_scenicareas_row <- c(sum(apply(st_within(permaculture_sf, scenicare scenicareas_counts <- rbind(scenicareas_counts, permaculture_scenicareas_row) grocery_scenicareas_row <- c(sum(apply(st_within(poi_grocery_sf, scenicareas_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, scenicareas_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_grocery_sf, scenicareas_buf500, sparse=FALSE), 1, any))) +scenicareas_counts <- rbind(scenicareas_counts, grocery_scenicareas_row) pubs_scenicareas_row <- c(sum(apply(st_within(poi_pubs_sf, scenicareas_simplified, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, scenicareas_buf50, sparse=FALSE), 1, any)), sum(apply(st_within(poi_pubs_sf, scenicareas_buf500, sparse=FALSE), 1, any))) +scenicareas_counts <- rbind(scenicareas_counts, pubs_scenicareas_row) colnames(scenicareas_counts) <- c("Within Scenic Areas", "...50m", "...500m") # Generate dataframe from rows based on percentages of totals -ecs_scenicareas_row_pct <- ecs_scenicareas_row/length(ecs_sf) +ecs_scenicareas_row_pct <- ecs_scenicareas_row/length(ecs) pow_scenicareas_row_pct <- pow_scenicareas_row/length(pow_pointX) dtas_scenicareas_row_pct <- dtas_scenicareas_row/length(dtas) transition_scenicareas_row_pct <- transition_scenicareas_row/length(transition) permaculture_scenicareas_row_pct <- permaculture_scenicareas_row/length(permaculture) +grocery_scenicareas_row_pct <- grocery_scenicareas_row/length(poi_grocery) +pubs_scenicareas_row_pct <- pubs_scenicareas_row/length(poi_pubs) scenicareas_counts_pct <- rbind(ecs_scenicareas_row_pct, pow_scenicareas_row_pct) scenicareas_counts_pct <- rbind(scenicareas_counts_pct, dtas_scenicareas_row_pct) scenicareas_counts_pct <- rbind(scenicareas_counts_pct, transition_scenicareas_row_pct) scenicareas_counts_pct <- rbind(scenicareas_counts_pct, permaculture_scenicareas_row_pct) +scenicareas_counts_pct <- rbind(scenicareas_counts_pct, grocery_scenicareas_row_pct) +scenicareas_counts_pct <- rbind(scenicareas_counts_pct, pubs_scenicareas_row_pct) colnames(scenicareas_counts_pct) <- c("% Within scenicareass", "% within 50m", "% within 500m") # Merge into larger dataframe diff --git a/wilderness_layers.qgz b/wilderness_layers.qgz index bee41ef58478df4c96c173c1f52d78ac1a25b057..a9aee007d76683d4598aa3dd43d26041eba10d76 100644 GIT binary patch literal 11202 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 literal 10443 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
  • @ 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