tests/testthat/test-download.R

context("rgee: ee_download test")

library(sf)
library(rgee)

ee_Initialize()

drive_folder <- "rgee_backup"
gcs_bucket <- "rgeedev2"
# -------------------------------------------------------------------------

# Communal Reserve Amarakaeri - Peru
xmin <- -71.13
xmax <- -70.95
ymin <- -12.89
ymax <- -12.73
x_mean <- (xmin + xmax) / 2
y_mean <- (ymin + ymax) / 2

ROI <- c(xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax, xmin, ymin)
ee_geom <- matrix(ROI, ncol = 2, byrow = TRUE) %>%
  list() %>%
  sf::st_polygon() %>%
  sf::st_sfc() %>%
  sf::st_set_crs(4326) %>%
  sf_as_ee()

# Elevation map
ic_srtm <- ee$Image("CGIAR/SRTM90_V4") %>%
  ee$Image$reproject(crs = "EPSG:4326", scale = 1000)
mean_srtm_Amarakaeri <- ic_srtm$clip(ee_geom)

# Testing parameters ------------------------------------------------------
fc_test <- ee_geom %>%
  ee$Feature(list("test" = "feature")) %>%
  ee$FeatureCollection()

image_test <- mean_srtm_Amarakaeri
imageExportFormatOptions_1 <- list(
  patchDimensions = c(10L, 10L),
  compressed = TRUE
)
imageExportFormatOptions_2 <- list(
  patchDimensions = c(10L, 10L),
  compressed = FALSE
)
vectorExportFormatOptions_1 <- list(compressed = TRUE)
vectorExportFormatOptions_2 <- list(compressed = FALSE)

suppressWarnings(
  try(ee_clean_container(name = drive_folder, type = 'drive'), silent = TRUE)
)

suppressWarnings(
  try(ee_clean_container(name = gcs_bucket, type = 'gcs'), silent = TRUE)
)

# ### IMAGES
# # 1. GEOTIFF - DRIVE
test_that("GEOTIFF_DRIVE", {
  task_img <- ee_image_to_drive(
    image = image_test,
    folder = drive_folder,
    fileFormat = "GEOTIFF"
  )
  task_img <- ee_image_to_drive(
    image = image_test,
    folder = drive_folder,
    fileFormat = "GEOTIFF",
    fileNamePrefix = "test_image_GEOTIFF"
  )
  task_img$start()
  ee_monitoring(task_img$id, max_attempts = Inf)

  full_list <- ee_monitoring(eeTaskList = TRUE)
  img <- ee_drive_to_local(
    task = task_img,
    consider = 'last',
    public = TRUE,
    metadata = TRUE,
    dsn = tempfile()
  )
  expect_is(img, "list")
})

# # 2. CTFRECORD_IMAGE - DRIVE
# test_that("CTFRECORD_DRIVE", {
#   task_img <- ee_image_to_drive(
#     image = image_test,
#     folder = drive_folder,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "test_image_CTFRECORD",
#     formatOptions = imageExportFormatOptions_1
#   )
#   task_img$start()
#   ee_monitoring(task_img)
#   img <- ee_drive_to_local(
#     task = task_img,
#     consider = 'all'
#   )
#   expect_type(img, 'character')
# })

# # 3. TFRECORD_IMAGE - DRIVE
# test_that("TFRECORD_DRIVE", {
#   task_img <- ee_image_to_drive(
#     image = image_test,
#     folder = drive_folder,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "test_image_TFRECORD",
#     formatOptions = imageExportFormatOptions_2
#   )
#   task_img$start()
#   ee_monitoring(task_img)
#   img <- ee_drive_to_local(
#     task = task_img,
#     consider = 'all'
#   )
#   expect_type(img, 'character')
# })

# # # 4. GEOTIFF - GCS
test_that("GEOTIFF_GCS", {
  task_img <- ee_image_to_gcs(
    image = image_test,
    bucket = gcs_bucket,
    fileFormat = "GEOTIFF"
  )
  task_img <- ee_image_to_gcs(
    image = image_test,
    bucket = gcs_bucket,
    fileFormat = "GEOTIFF",
    fileNamePrefix = "testing/test_image_GEOTIFF"
  )
  task_img$start()
  ee_monitoring(task_img, max_attempts = Inf)
  img <- ee_gcs_to_local(task = task_img, dsn = tempfile(),
                         public = FALSE,
                         metadata = TRUE)
  img <- ee_gcs_to_local(task = task_img, dsn = tempfile(), quiet = TRUE)
  expect_is(img, "character")
})

# # 5. CTFRECORD_IMAGE - GCS
# test_that("CTFRECORD_GCS",{
#   task_img <- ee_image_to_gcs(
#     image = image_test,
#     bucket = gcs_bucket,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "testing/test_image_CTFRECORD",
#     formatOptions = imageExportFormatOptions_1
#   )
#   task_img$start()
#   ee_monitoring(task_img)
#   img <- ee_gcs_to_local(task = task_img)
#   expect_type(img, 'character')
# })


#
# # 6. TFRECORD_IMAGE - GCS
# test_that("TFRECORD_GCS",{
#   task_img <- ee_image_to_gcs(
#     image = image_test,
#     bucket = gcs_bucket,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "testing/test_image_TFRECORD",
#     formatOptions = imageExportFormatOptions_2
#   )
#   task_img$start()
#   ee_monitoring(task_img)
#   img <- ee_gcs_to_local(task = task_img)
#   expect_type(img, 'character')
# })


# ### VECTOR
# # 7. CSV_VECTOR - DRIVE
# test_that("CSV_VECTOR_DRIVE",{
#   task_vector <- ee_table_to_drive(
#     collection = fc_test,
#     folder = drive_folder,
#     fileFormat = "CSV",
#     fileNamePrefix = "test_fc_CSV"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_drive_to_local(
#     task = task_vector,
#     consider = 'last'
#   )
#   expect_type(vector, 'character')
# })

# # 8. SHP_VECTOR - DRIVE
test_that("SHP_VECTOR_DRIVE",{
  task_vector <- ee_table_to_drive(
    collection = fc_test,
    folder = drive_folder,
    fileFormat = "SHP"
  )

  task_vector <- ee_table_to_drive(
    collection = fc_test,
    folder = drive_folder,
    fileFormat = "SHP",
    fileNamePrefix = "test_fc_SHP"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_drive_to_local(
    task = task_vector,
    consider = 'all'
  )
  expect_is(vector, "character")
})

# # 9. KML_VECTOR - DRIVE
test_that("KML_VECTOR_DRIVE",{
  task_vector <- ee_table_to_drive(
    collection = fc_test,
    folder = drive_folder,
    fileFormat = "KML",
    fileNamePrefix = "test_fc_KML"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_drive_to_local(
    task = task_vector,
    consider = 'all'
  )
  expect_is(vector, "character")
})

# # 10. KMZ_VECTOR - DRIVE
test_that("KMZ_VECTOR_DRIVE",{
  task_vector <- ee_table_to_drive(
    collection = fc_test,
    folder = drive_folder,
    fileFormat = "KMZ",
    fileNamePrefix = "test_fc_KMZ"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_drive_to_local(
    task = task_vector,
    consider = 'all'
  )
  expect_is(vector, "character")
})

# # 11. GEOJSON_VECTOR - DRIVE
test_that("GEOJSON_VECTOR_DRIVE",{
  task_vector <- ee$batch$Export$table$toDrive(
    collection = fc_test,
    folder = "rgee_testing",
    fileFormat = "GEOJSON",
    fileNamePrefix = "test_fc_GEOJSON"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_drive_to_local(
    task = task_vector,
    consider = 'last'
  )
  expect_is(vector, "character")
})

# # 12. CTFRECORD_VECTOR - DRIVE
# test_that("CTFRECORD_VECTOR_DRIVE",{
#   task_vector <- ee_table_to_drive(
#     collection = fc_test,
#     folder = drive_folder,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "test_fc_CTFRECORD"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_drive_to_local(
#     task = task_vector,
#     consider = 'all'
#   )
#   expect_type(vector, "character")
# })


# # 14. CSV_VECTOR - GCS
# test_that("CSV_VECTOR_GCS",{
#   task_vector <- ee_table_to_gcs(
#     collection = fc_test,
#     bucket = gcs_bucket,
#     fileFormat = "CSV",
#     fileNamePrefix = "testing/test_fc_CSV"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_gcs_to_local(task = task_vector)
#   expect_type(vector, "character")
# })


# # 15. SHP_VECTOR - GCS
# test_that("SHP_VECTOR_GCS",{
#   task_vector <- ee_table_to_gcs(
#     collection = fc_test,
#     bucket = gcs_bucket,
#     fileFormat = "SHP",
#     fileNamePrefix = "testing/test_fc_SHP"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_gcs_to_local(task = task_vector)
#   expect_equal(as.character(vector[['test']]), "feature")
# })

# # 16. KML_VECTOR - GCS
# test_that("KML_VECTOR_GCS",{
#   task_vector <- ee_table_to_gcs(
#     collection = fc_test,
#     bucket = gcs_bucket,
#     fileFormat = "KML",
#     fileNamePrefix = "testing/test_fc_KML"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_gcs_to_local(task = task_vector)
#   expect_equal(as.character(vector[['test']]), "feature")
# })

# # 17. KMZ_VECTOR - GCS
test_that("KMZ_VECTOR_GCS",{
  task_vector <- ee_table_to_gcs(
    collection = fc_test,
    bucket = gcs_bucket,
    fileFormat = "KMZ"
  )
  task_vector <- ee_table_to_gcs(
    collection = fc_test,
    bucket = gcs_bucket,
    fileFormat = "KMZ",
    fileNamePrefix = "testing/test_fc_KMZ"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_gcs_to_local(task = task_vector,
                            public = FALSE,
                            metadata = TRUE)
  expect_is(vector, "list")
})

# # 18. GEOJSON_VECTOR - GCS
test_that("GEOJSON_VECTOR_GCS",{
  task_vector <- ee_table_to_gcs(
    collection = fc_test,
    bucket = gcs_bucket,
    fileFormat = "GEOJSON",
    fileNamePrefix = "testing/test_fc_GEOJSON"
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  vector <- ee_gcs_to_local(task = task_vector,
                            public = FALSE,
                            metadata = TRUE)
  expect_is(vector, "list")
})
# # 19. CTFRECORD_VECTOR - GCS
# test_that("CTFRECORD_VECTOR_GCS",{
#   task_vector <- ee_table_to_gcs(
#     collection = fc_test,
#     bucket = gcs_bucket,
#     fileFormat = "TFRECORD",
#     fileNamePrefix = "testing/test_fc_CTFRECORD"
#   )
#   task_vector$start()
#   ee_monitoring(task_vector)
#   vector <- ee_gcs_to_local(task = task_vector)
#   expect_type(vector, 'character')
# })

# ASSET
test_that("table to asset",{
  assetid <- paste0(ee_get_assethome(), '/l5_Amarakaeri')
  try(ee_manage_delete(assetid), silent = TRUE)
  task_vector <- ee_table_to_asset(
    collection = fc_test,
    assetId = assetid
  )
  task_vector <- ee_table_to_asset(
    collection = fc_test,
    assetId = assetid,
    overwrite = TRUE
  )
  task_vector$start()
  ee_monitoring(task_vector, max_attempts = Inf)
  mess <- ee_manage_delete(assetid)
  expect_equal(mess, TRUE)
})

test_that("image to asset",{
  assetid <- paste0(ee_get_assethome(), '/image_test')
  task_img <- ee_image_to_asset(
    image = image_test,
    assetId = assetid
  )
  task_img <- ee_image_to_asset(
    image = image_test,
    assetId = assetid,
    overwrite = TRUE
  )
  task_img$start()
  ee_monitoring(task_img, max_attempts = Inf)
  mess <- ee_manage_delete(assetid)
  expect_equal(mess, TRUE)
})


test_that("image to asset",{
  expect_error(
    ee_image_to_gcs(
      image = image_test,
      bucket = NULL,
      fileFormat = "GEOTIFF"
    )
  )

  expect_error(
    ee_image_to_gcs(
      image = image_test,
      bucket = NULL,
      fileFormat = "GEOTIFF"
    )
  )
})

test_that("image to asset",{
  rgee:::ee_get_typeimage_size("int") +
  rgee:::ee_get_typeimage_size("INT") +
  rgee:::ee_get_typeimage_size("double") +
  rgee:::ee_get_typeimage_size("float") +
  rgee:::ee_get_typeimage_size("int8") +
  rgee:::ee_get_typeimage_size("int16") +
  rgee:::ee_get_typeimage_size("int32") -> result
  expect_equal(result, 248)
})
r-spatial/rgee documentation built on July 4, 2024, 9:33 a.m.