extract_dn {rcaiman} | R Documentation |
Extract digital numbers
Description
Wrapper function around terra::extract()
.
Usage
extract_dn(r, img_points, use_window = TRUE, fun = NULL)
Arguments
r |
SpatRaster. A fish-eye image. |
img_points |
The result of a call to |
use_window |
Logical vector of length one. If |
fun |
A |
Value
An object of the class data.frame. It is the argument
img_points
with an added column per each layer from r
. The
layer names are used to name the new columns. If a function is provided as
the fun
argument, the result will be summarized per column using the
provided function, and the row and col information will be
omitted. Moreover, if r
is an RGB image, a color will
be returned instead of a data.frame. The latter feature is useful
for obtaining the sky_blue
argument for enhance_caim()
.
Note
The point selection tool of ‘ImageJ’ software can be used to manually digitize points and create a CSV file from which to read coordinates (see Examples). After digitizing the points on the image, use the dropdown menu Analyze>Measure to open the Results window. To obtain the CSV file, use File>Save As...
See Also
Other Tool Functions:
colorfulness()
,
correct_vignetting()
,
defuzzify()
,
extract_feature()
,
extract_rl()
,
extract_sky_points_simple()
,
extract_sky_points()
,
extract_sun_coord()
,
find_sky_pixels_nonnull()
,
find_sky_pixels()
,
masking()
,
optim_normalize()
,
percentage_of_clipped_highlights()
,
read_bin()
,
read_caim_raw()
,
read_caim()
,
write_bin()
,
write_caim()
Examples
## Not run:
caim <- read_caim()
r <- caim$Blue
bin <- apply_thr(r, thr_isodata(r[]))
z <- zenith_image(ncol(caim), lens())
a <- azimuth_image(z)
g <- sky_grid_segmentation(z, a, 10)
sky_points <- extract_sky_points(r, bin, g)
sky_points <- extract_dn(caim, sky_points)
head(sky_points)
# ImageJ can be used to digitize points
path <- system.file("external/sky_points.csv",
package = "rcaiman")
sky_points <- read.csv(path)
sky_points <- sky_points[c("Y", "X")]
colnames(sky_points) <- c("row", "col")
head(sky_points)
plot(bin)
points(sky_points$col, nrow(caim) - sky_points$row, col = 2, pch = 10)
extract_dn(caim, sky_points, fun = median)
## End(Not run)