-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
|
||
|
||
#' Title | ||
#' | ||
#' @param las_path | ||
#' @param aoi | ||
#' @param folder | ||
#' @param crs_def | ||
#' @param save_las | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
cliping_cloud_to_aoi=function(las_path, aoi, folder, crs_def, save_las){ | ||
las=lidR::readLAS(las_path) | ||
sf::st_crs(aoi)=crs_def | ||
lidR::crs(las)=crs_def | ||
las=lidR::clip_roi(las, aoi) | ||
name=basename(las_path) | ||
name=str_replace(name, ".las","") | ||
if (save_las==TRUE){ | ||
lidR::writeLAS(las, paste0(folder,"/", name,"_AOI.las")) | ||
} | ||
return(las) | ||
} | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
|
||
#' Title | ||
#' | ||
#' @param res_par | ||
#' @param p2r_par | ||
#' @param save_chm | ||
#' @param output_folder | ||
#' @param las_path | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
create_CHM_from_LAS=function(las_path,res_par,p2r_par,save_chm, output_folder){ | ||
x=lidR::rasterize_canopy(las_path, res = res_par, algorithm = lidR::p2r(p2r_par)) | ||
name=basename(las_path) | ||
name=str_replace(name, ".las","") | ||
if (save_chm==TRUE){ | ||
raster::writeRaster(x, paste0(output_folder,"/",name,"_CHM.tif")) | ||
} | ||
|
||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
|
||
#' Title | ||
#' | ||
#' @param CHM_path | ||
#' @param ws_par | ||
#' @param hmin_par | ||
#' @param output_folder | ||
#' @param save_tops | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
detect_tops_in_CHM=function(CHM_path,ws_par,hmin_par, output_folder, save_tops){ | ||
x=lidR::find_trees(CHM_path, algorithm = lidR::lmf(ws = ws_par, hmin = hmin_par), uniqueness = "incremental") | ||
name=basename(CHM_path) | ||
name=str_replace(name, ".tif","") | ||
if (save_tops==TRUE){ | ||
raster::shapefile(x, paste0(output_folder,"/", name,"_TREES.shp"),overwrite=TRUE) | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
|
||
#' Title | ||
#' | ||
#' @param las_path | ||
#' @param folder | ||
#' @param save_las | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
normalize_height_in_clouds=function(las_path, folder, save_las){ | ||
las=lidR::readLAS(las_path) | ||
las_norm=lidR::normalize_height(las, lidR::tin(),use_class =c(2L) ) | ||
name=basename(las_path) | ||
name=str_replace(name, ".las","") | ||
if (save_las==TRUE){ | ||
lidR::writeLAS(las_norm, paste0(folder,"/", name,"_NORM.las")) | ||
} | ||
return(las_norm) | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
#' Title | ||
#' | ||
#' @param folder | ||
#' @param save_las | ||
#' @param las_path | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
thin_cloud=function(las_path, folder, save_las){ | ||
las_thined=lidR::readLAS(las_path, filter = "-keep_class 4 5" ) | ||
name=basename(las_path) | ||
name=str_replace(name, ".las","") | ||
if (save_las==TRUE){ | ||
lidR::writeLAS(las_thined, paste0(folder,"/", name,"_THINED.las")) | ||
} | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#' Title | ||
#' | ||
#' @param folder_path | ||
#' @param ws_par | ||
#' @param hmin_par | ||
#' @param crs_def | ||
#' @param output_folder | ||
#' @param save_tops | ||
#' @param save_SHP | ||
#' | ||
#' @return | ||
#' @export | ||
#' | ||
#' @examples | ||
tops_in_folder_to_shp=function(folder_path,ws_par,hmin_par,crs_def, output_folder, save_tops, save_SHP){ | ||
|
||
l_CHM=list.files(folder_path, full.names = T, pattern="\\.tif$") | ||
trees_finded=data.frame() | ||
|
||
for (i in 1:length(l_CHM)) { | ||
tryCatch({ | ||
r=raster(l_CHM[i]) | ||
t=detect_tops_in_CHM(CHM_path=folder_path,ws_par,hmin_par, output_folder, save_tops) | ||
temp=data.frame(t) | ||
temp$ID_NUMBER=1+i | ||
|
||
# Dodaj wyniki do istniejącego obiektu typu sf | ||
trees_finded <- rbind(trees_finded, temp) | ||
}, error = function(e) { | ||
# Przechwyć błąd, ale kontynuuj działanie pętli | ||
cat("Błąd w iteracji", i, ":", conditionMessage(e), "\n") | ||
}) | ||
} | ||
|
||
trees_finded=st_as_sf(trees_finded, coords = c("coords.x1","coords.x2")) | ||
st_crs(trees_finded)=crs_def | ||
if( save_SHP==TRUE){ | ||
st_write(trees_finded,paste0(output_folder,"ALL_TTOPS.shp"), overwrite=T) | ||
} | ||
return(trees_finded) | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.