Skip to content

Commit

Permalink
update zadanie_9.R
Browse files Browse the repository at this point in the history
  • Loading branch information
kadyb authored Jun 6, 2024
1 parent 72b5d99 commit 31748fd
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions zadania/zadanie_9.R
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
library("rstac")
library("terra")
library("raster")
library("tidyr")
library("ggplot2")

Expand All @@ -17,11 +16,12 @@ stac_source |>

unlist(lapply(obrazy$features, \(x) x$properties$"eo:cloud_cover"))

idx = 1
df = items_as_sf(obrazy)
plot(sf::st_geometry(df)[1], main = "Zasięg sceny", axes = TRUE)
plot(sf::st_geometry(df)[idx], main = "Zasięg sceny", axes = TRUE)

obrazy |>
items_select(1) |>
items_select(idx) |>
assets_select(asset_names = c("blue", "green", "red", "nir")) |>
assets_url() -> urls
urls
Expand All @@ -33,55 +33,56 @@ for (i in seq_along(urls)) {
download.file(urls[i], rastry[i], mode = "wb")
}


# sprawdź metadane rastrów
r <- rast(rastry)
names(r) <- c("Blue", "Green", "NIR", "Red")
r

#przygotuj wizualizację RGB
# usunięcie wartości odstających
r <- clamp(r, lower = 0, upper = 1, values = FALSE)

# przygotuj wizualizację RGB
plotRGB(r, r=4, g=2, b=1, stretch="lin")

# pobierz losową próbę 10 tys. punktów dla kanału niebieskiego,
# zielonego, czerwonego oraz bliskiej podczerwieni i zaprezentuj statystyki opisowe oraz porównaj histogramy
# pobierz losową próbę 10 tys. punktów dla kanału niebieskiego,
# zielonego, czerwonego oraz bliskiej podczerwieni i zaprezentuj statystyki
# opisowe oraz porównaj histogramy

set.seed(42)
sample_size <- 10000
sample_points <- spatSample(r, size=sample_size, method="random", as.df=TRUE, na.rm=TRUE)


stats <- sample_points |> summary()
print(stats)

sample_points_long <- sample_points %>%
sample_points_long <- sample_points |>
pivot_longer(cols = everything(), names_to = "Channel", values_to = "Value")

ggplot(sample_points_long, aes(x=Value, fill=Channel)) +
geom_histogram(bins=30, alpha = 1, position="identity") +
facet_wrap(~ Channel, scales = "fixed") +
facet_wrap(vars(Channel), scales = "fixed") +
theme_minimal() +
labs(title="Histogramy kanałów rastrowych", x="Wartość", y="Częstotliwość")

# dodatkowo dla kanału czerwonego oraz bliskiej podczerwieni wykonaj
# dodatkowo dla kanału czerwonego oraz bliskiej podczerwieni wykonaj
# wykres rozrzutu oraz oblicz współczynnik korelacji Pearsona

ggplot(sample_points, aes(x=Red, y=NIR)) +
geom_point(alpha=0.5, color="blue") +
geom_abline(intercept = 0, slope = 1) +
theme_minimal() +
labs(title="Wykres rozrzutu dla kanałów czerwonego i bliskiej podczerwieni", x="Czerwony", y="Bliska podczerwień")
labs(title="Wykres rozrzutu dla kanałów czerwonego i bliskiej podczerwieni",
x="Czerwony", y="Bliska podczerwień")

correlation <- cor(sample_points$Red, sample_points$NIR, method="pearson")
correlation <- round(correlation, 3)
print(paste("Współczynnik korelacji Pearsona:", correlation))

#oblicz znormalizowany różnicowy wskaźnik wegetacji (NDVI) i przygotuj wizualizację

ndvi <- (r[[3]] - r[[4]])/(r[[3]]+r[[4]])
ndvi[ndvi < -1] <- -1
ndvi[ndvi > 1] <- 1
# oblicz znormalizowany różnicowy wskaźnik wegetacji (NDVI) i przygotuj wizualizację

ndvi <- (r[[3]] - r[[4]]) / (r[[3]] + r[[4]])

# Wizualizacja NDVI

colors <- colorRampPalette(c("red", "yellow", "darkgreen"))
plot(ndvi, main="Znormalizowany Różnicowy Wskaźnik Wegetacji (NDVI)", col = colors(100))
plot(ndvi, main="NDVI", col = colors(100))

0 comments on commit 31748fd

Please sign in to comment.