modisfast
as a terra::SpatRaster
objectR/mf_import_data.R
mf_import_data.Rd
Import datasets downloaded using modisfast
as a terra::SpatRaster
object
mf_import_data(
path,
collection,
output_class = "SpatRaster",
proj_epsg = NULL,
roi_mask = NULL,
vrt = FALSE,
verbose = "inform",
...
)
character string. mandatory. The path to the local directory where the data are stored.
string. mandatory. Collection of interest (see details of mf_get_url).
character string. Output object class. Currently only "SpatRaster" implemented.
numeric. EPSG of the desired projection for the output raster (default : source projection of the data).
SpatRaster
or SpatVector
or sf
. Area beyond which data will be masked. Typically, the input ROI of mf_get_url (default : NULL (no mask))
boolean. Import virtual raster instead of SpatRaster. Useful for very large files. (default : FALSE)
string. Verbose mode ("quiet", "inform", or "debug"). Default "inform".
not used
a terra::SpatRast
object
Although the data downloaded through modisfast
could be imported with any netcdf-compliant R package (terra
, stars
, ncdf4
, etc.), care must be taken. In fact, depending on the collection, some “issues” were raised. These issues are independent from modisfast
: they result most of time of a lack of full implementation of the OPeNDAP framework by the data providers. Namely, these issues are :
for MODIS and VIIRS collections : CRS has to be provided
for GPM collections : CRS has to be provided + data have to be flipped
The function mf_import_data includes the processing that needs to be done at the data import phase in order to safely use the data as terra
objects.
Also note that reprojecting over large ROIs using the argument proj_epsg
might take long. In this case, setting the argument vrt
to TRUE might be a solution.
if (FALSE) { # \dontrun{
### Login to EOSDIS Earthdata with your username and password
log <- mf_login(credentials = c("earthdata_un", "earthdata_pw"))
### Set-up parameters of interest
coll <- "MOD11A1.061"
bands <- c("LST_Day_1km", "LST_Night_1km")
time_range <- as.Date(c("2017-01-01", "2017-01-30"))
roi <- sf::st_as_sf(
data.frame(
id = "roi_test",
geom = "POLYGON ((-5.82 9.54, -5.42 9.55, -5.41 8.84, -5.81 8.84, -5.82 9.54))"
),
wkt = "geom", crs = 4326
)
### Get the URLs of the data
(urls_mod11a1 <- mf_get_url(
collection = coll,
variables = bands,
roi = roi,
time_range = time_range
))
### Download the data
res_dl <- mf_download_data(urls_mod11a1)
### Import the data as terra::SpatRast
modis_ts <- mf_import_data(dirname(res_dl$destfile[1]), collection = coll)
### Plot the data
terra::plot(modis_ts)
} # }