51 lines
1.6 KiB
R
51 lines
1.6 KiB
R
library(terra)
|
|
library(sf)
|
|
|
|
# Check the mosaic
|
|
mosaic <- terra::rast('laravel_app/storage/app/angata/weekly_mosaic/week_52_2025.tif')
|
|
cat('Mosaic info:\n')
|
|
cat(' Layers:', terra::nlyr(mosaic), '\n')
|
|
ext_vals <- c(terra::ext(mosaic)$xmin, terra::ext(mosaic)$xmax, terra::ext(mosaic)$ymin, terra::ext(mosaic)$ymax)
|
|
cat(' Extent:', paste(round(ext_vals, 2), collapse=', '), '\n')
|
|
|
|
# Extract band 5
|
|
band5 <- mosaic[[5]]
|
|
cat('Band 5 (CI):\n')
|
|
min_val <- as.numeric(terra::global(band5, 'min', na.rm=TRUE))
|
|
max_val <- as.numeric(terra::global(band5, 'max', na.rm=TRUE))
|
|
cat(' Min:', round(min_val, 3), '\n')
|
|
cat(' Max:', round(max_val, 3), '\n')
|
|
|
|
# Check field boundaries
|
|
geojson_path <- 'laravel_app/storage/app/angata/Data/pivot.geojson'
|
|
fields <- sf::st_read(geojson_path, quiet=TRUE)
|
|
cat('\nTesting extraction on first field:\n')
|
|
|
|
# Get first field
|
|
field_1 <- fields[1, ]
|
|
field_id <- field_1$field
|
|
cat(' Field ID:', field_id, '\n')
|
|
|
|
# Try extraction
|
|
tryCatch({
|
|
field_geom <- terra::vect(sf::as_Spatial(field_1))
|
|
cat(' Geometry CRS:', terra::crs(field_geom), '\n')
|
|
cat(' Raster CRS:', terra::crs(band5), '\n')
|
|
|
|
result <- terra::extract(band5, field_geom)
|
|
cat(' Extract result rows:', nrow(result), '\n')
|
|
cat(' Extract result cols:', ncol(result), '\n')
|
|
|
|
if (nrow(result) > 0) {
|
|
vals <- result[, 2]
|
|
cat(' Values extracted:', length(vals), '\n')
|
|
cat(' Non-NA values:', sum(!is.na(vals)), '\n')
|
|
if (sum(!is.na(vals)) > 0) {
|
|
cat(' Range of non-NA values:', min(vals, na.rm=TRUE), 'to', max(vals, na.rm=TRUE), '\n')
|
|
}
|
|
}
|
|
}, error = function(e) {
|
|
cat(' ERROR:', e$message, '\n')
|
|
})
|
|
|