Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runMrt() returns nothing #137

Open
korandocando opened this issue Jan 29, 2024 · 0 comments
Open

runMrt() returns nothing #137

korandocando opened this issue Jan 29, 2024 · 0 comments

Comments

@korandocando
Copy link

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   
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant