Skip to content

runMrt() returns nothing #137

@korandocando

Description

@korandocando

Hello Florian and Matteo @MatMatt !
Here is Corrado.
I've been having issues with the complete download of requested images through runGdal(): sometimes it downloads less images than those requested (both in "raw" and "processed" folders), probably due to my slow connection. I found a workaround by using getHdf(), which is able (I guess) to download only those .hdf files that are missing in the "raw" folder.
After that, as far as I understand, 'runMtr()' is needed to process these .hdf files into geoTIFFs. Sadly, it returns empty characters (as many as the selected SDS layers), while printing something about "mrtmosaic" and "resample".
Here is a reproducible code:

library(raster)
library(terra)
library(MODIS)

## setting modis options
lap <- file.path(tempdir(), "MODIS")
MODISoptions(
  localArcPath = lap, 
  outDirPath = file.path(lap, "PROCESSED"),
  dlmethod = "auto", MODISserverOrder = c("LPDAAC", "LAADS", "NSIDC"))
MODIS:::checkEarthdataLogin()     ## TRUE 
getCollection("MOD10A1F", forceCheck = TRUE) ##"061" ok

## setting the scene
limits <- c(5.9 , 6.2, 44.6 , 44.8)
start  <- "2003-01-04"
end    <- "2003-01-11"

## downloading HDF files
getHdf(product=c('MOD10A1F'), collection = "061",
       extent=extent(limits), 
       begin=start, end=end,
       outProj= "EPSG:4326")

## importing them
hdf_files <- list.files(path= file.path(lap, "MODIS/MOD10A1F.061"), pattern =".hdf$", full.names=T, recursive = T)

## from hdf to GeoTIFF
runMrt(product=c('MOD10A1F'), collection = "061",
       extent=extent(limits),
       begin=start, 
       end=end,
       job="loop", SDSstring = "11100", ## selecting only the first 3 layers
       datum="WGS84")

this last function returns:

Output projection: Sinusoidal 
Output pixel size: asIn 
Resampling method: nn 
Datum conversion: WGS84 
Local structure is up-to-date. Using offline information!
"mrtmosaic" is not recognized as an internal or external command, as an executable program, or as a batch file.
"resample" is not recognized as an internal or external command, as an executable program, or as a batch file.
 "mrtmosaic" is not recognized as an internal or external command, as an executable program, or as a batch file.
"resample" is not recognized as an internal or external command, as an executable program, or as a batch file.

It keeps printing these two lines for each .hdf file in the "raw" folder.
Finally, it prints:

 $MOD10A1F.061
$MOD10A1F.061$`2003-01-04`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-05`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-06`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-07`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-08`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-09`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-10`
[1] "character(0)" "character(0)" "character(0)"

$MOD10A1F.061$`2003-01-11`
[1] "character(0)" "character(0)" "character(0)"

And nothing happens, nor in the environment, nor in the folders.
I also tried setting different outProj ("GEO" and "UTM"), but nothing changes.
Btw, I also tried to process these .hdf files using terra::rast() and terra::sds(), but I find no way to set the proper crs out from them.

A final thought...
Would it be efficient to add this same "update" possibility that is implemented in runMrt() directly into runGdal()?
So that - when requested - it can download only those dates that are missing from the local archive ("localArcPath" folder). If this feature is already implemented, I would suggest a printout to make the user aware of it (just as runMrt() that prints Local structure is up-to-date. Using offline information!).

Thanks a lot for providing this package, and for keeping working on it!
Much much much appreciated!!!
Cheers :)

Finally, here is my session info:

R version 4.3.1 (2023-06-16 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19045)

Matrix products: default

locale:
[1] LC_COLLATE=Italian_Italy.utf8  LC_CTYPE=Italian_Italy.utf8    LC_MONETARY=Italian_Italy.utf8 LC_NUMERIC=C                  
[5] LC_TIME=Italian_Italy.utf8    

time zone: Europe/Rome
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] beepr_1.3            data.table_1.14.10   forcats_1.0.0        stringr_1.5.1        purrr_1.0.2          readr_2.1.5         
 [7] tidyr_1.3.1          tibble_3.2.1         ggplot2_3.4.4        tidyverse_2.0.0      dplyr_1.1.4          lubridate_1.9.3     
[13] exactextractr_0.10.0 sf_1.0-15            rts_1.1-14           xts_0.13.2           zoo_1.8-12           terra_1.7-65        
[19] MODIS_1.2.11.9000    mapdata_2.3.1        maps_3.4.2           units_0.8-5          raster_3.6-26        sp_2.1-2            

loaded via a namespace (and not attached):
 [1] tidyselect_1.2.0   bitops_1.0-7       fastmap_1.1.1      RCurl_1.98-1.14    promises_1.2.1     digest_0.6.34      timechange_0.3.0  
 [8] mime_0.12          lifecycle_1.0.4    ellipsis_0.3.2     ptw_1.9-16         magrittr_2.0.3     compiler_4.3.1     rlang_1.1.3       
[15] tools_4.3.1        utf8_1.2.4         corrplot_0.92      htmlwidgets_1.6.4  pkgbuild_1.4.3     classInt_0.4-10    curl_5.2.0        
[22] pkgload_1.3.4      KernSmooth_2.23-22 miniUI_0.1.1.1     foreign_0.8-86     withr_3.0.0        grid_4.3.1         fansi_1.0.6       
[29] urlchecker_1.0.1   profvis_0.3.8      mapedit_0.6.0      xtable_1.8-4       e1071_1.7-14       colorspace_2.1-0   scales_1.3.0      
[36] cli_3.6.2          generics_0.1.3     remotes_2.4.2.1    rstudioapi_0.15.0  RcppDE_0.1.7       tzdb_0.4.0         sessioninfo_1.2.2 
[43] DBI_1.2.1          cachem_1.0.8       proxy_0.4-27       audio_0.1-11       parallel_4.3.1     vctrs_0.6.5        devtools_2.4.5    
[50] hms_1.1.3          maptools_1.1-6     glue_1.7.0         codetools_0.2-19   stringi_1.8.3      gtable_0.3.4       later_1.3.2       
[57] munsell_0.5.0      pillar_1.9.0       htmltools_0.5.7    R6_2.5.1           shiny_1.8.0        lattice_0.22-5     memoise_2.0.1     
[64] httpuv_1.6.14      class_7.3-22       Rcpp_1.0.12        fs_1.6.3           usethis_2.2.2      pkgconfig_2.0.3   

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions