modisfast
(formerly opendapr
) is an R package that provides
functions to speed-up the download of time-series raster data
products derived from
MODIS
and
VIIRS
observations, as well as other widely-used satellite-derived
environmental data (e.g. Global Precipitation Measurement Mission).
modisfast
uses the abilities offered by the OPeNDAP
framework (Open-source Project for a
Network Data Access Protocol) to download a subset of Earth science
data cube, along spatial, temporal or any other data dimension (depth,
…). This way, it reduces downloading time and disk usage to their
minimum : no more 1° x 1° MODIS tiles when your region of interest is
only 100 km x 100 km wide ! Moreover, modisfast
supports parallelized
downloads.
modisfast
is hence particularly suited for retrieving MODIS or VIIRS
data over long time series and over areas, rather than short
time series and points.
Below is a comparison of modisfast with other packages available for downloading chunks of remote sensing data :
Package | Data | Temporal subsetting* | Spatial subsetting* | Dimensional subsetting* |
---|---|---|---|---|
modisfast |
MODIS, VIIRS, GPM | ✅ | ✅ | ✅ |
MODIS |
MODIS | ✅ | ❌ | ❌ |
MODIStsp |
MODIS | ✅ | ❌ | ✅ |
MODISTools |
MODIS and VIIRS (but not all collections) | ✅ | ✅ | ✅ |
appeears |
MODIS, VIIRS, and many others | ✅ | ✅ | ✅ |
* at the downloading phase
The package can be installed with:
if(!require(devtools)){install.package("devtools")}
devtools::install_github("ptaconet/modisfast")
library(modisfast)
Work is ongoing to publish the package on the CRAN.
Accessing and opening MODIS data with modisfast
is a simple workflow,
as shown in the example below.
First, define the variables of interest :
# Load the packages
library(modisfast)
library(sf)
library(terra)
# MODIS collections and variables (bands) of interest
collection <- "MOD11A2.061" # run mf_list_collections() for an exhaustive list of collections available
variables <- c("LST_Day_1km","LST_Night_1km","QC_Day","QC_Night") # run mf_list_variables("MOD11A2.061") for an exhaustive list of variables available for the collection "MOD11A1.062"
# ROI and time range of interest
roi <- st_as_sf(data.frame(id = "any_name", 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) # a ROI of interest, format sf polygon
time_range <- as.Date(c("2017-01-01","2017-06-01")) # a time range of interest
Then, download the data with modisfast
:
## Login to Earthdata servers with your EOSDIS credentials.
# To create an account go to : https://urs.earthdata.nasa.gov/.
log <- mf_login(credentials = c("username","password"))
## Get the URLs of the data
urls <- mf_get_url(
collection = collection,
variables = variables,
roi = roi,
time_range = time_range
)
## Download the data. By default the data is downloaded in a temporary directory
res_dl <- mf_download_data(urls)
And finally, open the data in R as a terra::SpatRaster
object using
the function mf_import_data()
(see
here
why you should use this function instead of use terra::rast()
) :
r <- mf_import_data(
path = dirname(res_dl$destfile[1]),
collection_source = "MODIS"
)
terra::plot(r)
et voilà !
Want more examples of use of modisfast
? Have a look at the
vignette("get_started")
to get started with a simple example, and see the
vignette("modisfast2")
for a more advanced workflow !
Currently modisfast
supports download of 78 data collections,
extracted from the following meta-collections :
- MODIS land products made available by the NASA / USGS LP DAAC (➡️ source OPeNDAP server) ;
- VIIRS land products made available by the NASA / USGS LP DAAC (➡️ source OPeNDAP server)
In addition, modisfast
supports download of the following
satellite-derived environmental data :
- Global Precipitation Measurement (GPM) made available by the NASA / JAXA GES DISC (➡️ source OPeNDAP server).
Details of each product available for download are provided in the
tables above or through the function mf_list_collections()
. Want more
details on a specific collection ? Click on the “DOI” column !
MODIS and VIIRS data collections accessible with modisfast (click to expand)
Collection | Name | Source | Nature | DOI | Opendap_server |
---|---|---|---|---|---|
MCD12Q1.061 | MODIS/Terra+Aqua Land Cover Type Yearly L3 Global 500 m SIN Grid | MODIS | Land cover | ||
MCD15A2H.061 | MODIS/Terra+Aqua Leaf Area Index/FPAR 8-Day L4 Global 500 m SIN Grid | MODIS | Leaf area index | ||
MCD15A3H.061 | MODIS/Terra+Aqua Leaf Area Index/FPAR 4-Day L4 Global 500 m SIN Grid | MODIS | Leaf area index | ||
MCD43A1.061 | MODIS/Terra and Aqua BRDF/Albedo Model Parameters Daily L3 Global 500 m SIN Grid | MODIS | Albedo | ||
MCD43A2.061 | MODIS/Terra and Aqua BRDF/Albedo Quality Daily L3 Global 500 m SIN Grid | MODIS | Albedo | ||
MCD43A3.061 | MODIS/Terra and Aqua Albedo Daily L3 Global 500 m SIN Grid | MODIS | Albedo | ||
MCD43A4.061 | MODIS/Terra and Aqua Nadir BRDF-Adjusted Reflectance Daily L3 Global 500 m SIN Grid | MODIS | Surface reflectance | ||
MCD64A1.061 | MODIS/Terra+Aqua Burned Area Monthly L3 Global 500 m SIN Grid | MODIS | Burned areas | ||
MOD09A1.061 | MODIS/Terra Surface Reflectance 8-Day L3 Global 500 m SIN Grid | MODIS | Surface reflectance | ||
MOD09GA.061 | MODIS/Terra Surface Reflectance Daily L2G Global 1 km and 500 m SIN Grid | MODIS | Surface reflectance | ||
MOD09GQ.061 | MODIS/Terra Surface Reflectance Daily L2G Global 250 m SIN Grid | MODIS | Surface reflectance | ||
MOD09Q1.061 | MODIS/Terra Surface Reflectance 8-Day L3 Global 250 m SIN Grid | MODIS | Surface reflectance | ||
MOD11A1.061 | MODIS/Terra Land Surface Temperature/Emissivity Daily L3 Global 1km SIN Grid v061 | MODIS | Land surface temperature | ||
MOD11A2.061 | MODIS/Terra Land Surface Temperature/Emissivity 8-Day L3 Global 1 km SIN Grid v061 | MODIS | Land surface temperature | ||
MOD11B2.061 | MODIS/Terra Land Surface Temperature/Emissivity 8-Day L3 Global 6 km SIN Grid | MODIS | Land surface temperature | ||
MOD11B3.061 | MODIS/Terra Land Surface Temperature/Emissivity Monthly L3 Global 6 km SIN Grid | MODIS | Land surface temperature | ||
MOD13A1.061 | MODIS/Terra Vegetation Indices 16-Day L3 Global 500 m SIN Grid | MODIS | Vegetation indices | ||
MOD13A2.061 | MODIS/Terra Vegetation Indices 16-Day L3 Global 1 km SIN Grid | MODIS | Vegetation indices | ||
MOD13A3.061 | MODIS/Terra Vegetation Indices Monthly L3 Global 1 km SIN Grid | MODIS | Vegetation indices | ||
MOD13Q1.061 | MODIS/Terra Vegetation Indices 16-Day L3 Global 250m SIN Grid v061 | MODIS | Vegetation indices | ||
MOD15A2H.061 | MODIS/Terra Leaf Area Index/FPAR 8-Day L4 Global 500 m SIN Grid | MODIS | Leaf area index | ||
MOD16A2.061 | MODIS/Terra Net Evapotranspiration 8-Day L4 Global 500m SIN Grid v061 | MODIS | Evapotranspiration | ||
MOD16A2GF.061 | MODIS/Terra Net Evapotranspiration Gap-Filled 8-Day L4 Global 500 m SIN Grid | MODIS | Evapotranspiration | ||
MOD16A3GF.061 | MODIS/Terra Net Evapotranspiration Gap-Filled Yearly L4 Global 500 m SIN Grid | MODIS | Evapotranspiration | ||
MOD17A2H.061 | MODIS/Aqua Gross Primary Productivity 8-Day L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MOD17A2HGF.061 | MODIS/Terra Gross Primary Productivity Gap-Filled 8-Day L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MOD17A3.055 | MODIS/Terra Net Primary Production Yearly L4 Global 1 km SIN Grid | MODIS | Primary Productivity | ||
MOD17A3HGF.061 | MODIS/Terra Net Primary Production Gap-Filled Yearly L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MODOCGA.061 | MODIS/Terra Ocean Reflectance Daily L2G-Lite Global 1 km SIN Grid | MODIS | Ocean Reflectance | ||
MODTBGA.061 | MODIS/Terra Thermal Bands Daily L2G-Lite Global 1 km SIN Grid | MODIS | Thermal Bands | ||
MYD09A1.061 | MODIS/Aqua Surface Reflectance 8-Day L3 Global 500 m SIN Grid | MODIS | Surface reflectance | ||
MYD09GA.061 | MODIS/Aqua Surface Reflectance Daily L2G Global 1 km and 500 m SIN Grid | MODIS | Surface reflectance | ||
MYD09GQ.061 | MODIS/Aqua Surface Reflectance Daily L2G Global 250 m SIN Grid | MODIS | Surface reflectance | ||
MYD09Q1.061 | MODIS/Aqua Surface Reflectance 8-Day L3 Global 250 m SIN Grid | MODIS | Surface reflectance | ||
MYD11A1.061 | MODIS/Aqua Land Surface Temperature/Emissivity Daily L3 Global 1km SIN Grid v061 | MODIS | Land surface temperature | ||
MYD11A2.061 | MODIS/Aqua Land Surface Temperature/Emissivity 8-Day L3 Global 1 km SIN Grid v061 | MODIS | Land surface temperature | ||
MYD11B2.061 | MODIS/Aqua Land Surface Temperature/Emissivity 8-Day L3 Global 6 km SIN Grid | MODIS | Land surface temperature | ||
MYD11B3.061 | MODIS/Aqua Land Surface Temperature/Emissivity Monthly L3 Global 6 km SIN Grid | MODIS | Land surface temperature | ||
MYD13A1.061 | MODIS/Aqua Vegetation Indices 16-Day L3 Global 500 m SIN Grid | MODIS | Vegetation indices | ||
MYD13A2.061 | MODIS/Aqua Vegetation Indices 16-Day L3 Global 1 km SIN Grid | MODIS | Vegetation indices | ||
MYD13A3.061 | MODIS/Aqua Vegetation Indices Monthly L3 Global 1 km SIN Grid | MODIS | Vegetation indices | ||
MYD13Q1.061 | MODIS/Aqua Vegetation Indices 16-Day L3 Global 250m SIN Grid v061 | MODIS | Vegetation indices | ||
MYD15A2H.061 | MODIS/Aqua Leaf Area Index/FPAR 8-Day L4 Global 500 m SIN Grid | MODIS | Leaf area index | ||
MYD16A2.061 | MODIS/Aqua Net Evapotranspiration 8-Day L4 Global 500m SIN Grid v061 | MODIS | Evapotranspiration | ||
MYD16A2GF.061 | MODIS/Aqua Net Evapotranspiration Gap-Filled 8-Day L4 Global 500 m SIN Grid | MODIS | Evapotranspiration | ||
MYD16A3GF.061 | MODIS/Aqua Net Evapotranspiration Gap-Filled Yearly L4 Global 500 m SIN Grid | MODIS | Evapotranspiration | ||
MYD17A2H.061 | MODIS/Terra Gross Primary Productivity 8-Day L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MYD17A2HGF.061 | MODIS/Aqua Gross Primary Productivity Gap-Filled 8-Day L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MYD17A3HGF.061 | MODIS/Aqua Net Primary Production Gap-Filled Yearly L4 Global 500 m SIN Grid | MODIS | Primary Productivity | ||
MYDOCGA.061 | MODIS/Aqua Ocean Reflectance Daily L2G-Lite Global 1 km SIN Grid | MODIS | Ocean Reflectance | ||
MYDTBGA.061 | MODIS/Aqua Thermal Bands Daily L2G-Lite Global 1 km SIN Grid | MODIS | Thermal Bands | ||
VNP09A1.001 | VIIRS/NPP Surface Reflectance 8-Day L3 Global 1 km SIN Grid | VIIRS | Surface reflectance | ||
VNP09H1.001 | VIIRS/NPP Surface Reflectance 8-Day L3 Global 500 m SIN Grid | VIIRS | Surface reflectance | ||
VNP13A1.001 | VIIRS/NPP Vegetation Indices 16-Day L3 Global 500 m SIN Grid | VIIRS | Vegetation indices | ||
VNP13A2.001 | VIIRS/NPP Vegetation Indices 16-Day L3 Global 1 km SIN Grid | VIIRS | Vegetation indices | ||
VNP13A3.001 | VIIRS/NPP Vegetation Indices Monthly L3 Global 1 km SIN Grid | VIIRS | Vegetation indices | ||
VNP14A1.001 | VIIRS/NPP Thermal Anomalies/Fire Daily L3 Global 1 km SIN Grid | VIIRS | Thermal Anomalies/Fire | ||
VNP15A2H.001 | VIIRS/NPP Leaf Area Index/FPAR 8-Day L4 Global 500 m SIN Grid | VIIRS | Leaf area index | ||
VNP21A1D.001 | VIIRS/NPP Land Surface Temperature and Emissivity Daily L3 Global 1 km SIN Grid Day | VIIRS | Land surface temperature | ||
VNP21A1N.001 | VIIRS/NPP Land Surface Temperature and Emissivity Daily L3 Global 1 km SIN Grid Night | VIIRS | Land surface temperature | ||
VNP21A2.001 | VIIRS/NPP Land Surface Temperature and Emissivity 8-Day L3 Global 1 km SIN Grid | VIIRS | Land surface temperature | ||
VNP43IA2.001 | VIIRS/NPP BRDF/Albedo Quality Daily L3 Global 500 m SIN Grid | VIIRS | Albedo | ||
VNP43IA3.001 | VIIRS/NPP Albedo Daily L3 Global 500 m SIN Grid | VIIRS | Albedo | ||
VNP43IA4.001 | VIIRS/NPP Nadir BRDF-Adjusted Reflectance Daily L3 Global 500 m SIN Grid | VIIRS | Surface reflectance | ||
VNP43MA1.001 | VIIRS/NPP BRDF/Albedo Model Parameters Daily L3 Global 1 km SIN | VIIRS | Albedo | ||
VNP43MA2.001 | VIIRS/NPP BRDF/Albedo Quality Daily L3 Global 1 km SIN Grid | VIIRS | Albedo | ||
VNP43MA3.001 | VIIRS/NPP Albedo Daily L3 Global 1 km SIN Grid | VIIRS | Albedo | ||
VNP43MA4.001 | VIIRS/NPP Nadir BRDF-Adjusted Reflectance Daily L3 Global 1 km SIN | VIIRS | Surface reflectance |
Other (non-MODIS or VIIRS) data collections accessible with modisfast (click to expand)
Collection | Name | Source | Nature | DOI | Opendap_server |
---|---|---|---|---|---|
GPM_3IMERGDE.06 | GPM IMERG Early Precipitation L3 1 day 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGDF.06 | GPM IMERG Final Precipitation L3 1 day 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGDF.07 | GPM IMERG Final Precipitation L3 1 day 0.1 degree x 0.1 degree V07 | GPM | Rainfall | ||
GPM_3IMERGDL.06 | GPM IMERG Late Precipitation L3 1 day 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGHH.06 | GPM IMERG Final Precipitation L3 Half Hourly 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGHH.07 | GPM IMERG Final Precipitation L3 Half Hourly 0.1 degree x 0.1 degree V07 | GPM | Rainfall | ||
GPM_3IMERGHHE.06 | GPM IMERG Early Precipitation L3 Half Hourly 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGHHL.06 | GPM IMERG Late Precipitation L3 Half Hourly 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGM.06 | GPM IMERG Final Precipitation L3 1 month 0.1 degree x 0.1 degree V06 | GPM | Rainfall | ||
GPM_3IMERGM.07 | GPM IMERG Final Precipitation L3 1 month 0.1 degree x 0.1 degree V07 | GPM | Rainfall |
modisfast
is particularly suited for retrieving MODIS or VIIRS data
over long time series and over areas, rather than short time
series and points.
There are other R packages available for accessing MODIS data, which may be more suitable if your requirements differ. These include :
Next developments may involve including access to more collections from other OPeNDAP servers.
Any contribution is welcome !
This package is licensed under a GNU General Public License v3.0 or later license.
We thank in advance people that use modisfast
for citing it in their
work / publication(s). For this, please use the citation provided at
citation("modisfast")
.
We thank NASA and its partners for making all their Earth science data
freely available, and implementing open data access protocols such as
OPeNDAP. modisfast
heavily builds on top of the OPeNDAP, so we thank
the non-profit OPeNDAP, Inc. for
developing the eponym tool in an open and collaborative way.
We also thank the contributors that have tested the package, reviewed the documentation and brought valuable feedbacks to improve the package : Florian de Boissieu, Julien Taconet, Nicolas Moiroux
The initial development and first release of this package were financed by the MIVEGEC unit of the French Research Institute for Sustainable Development, as part of the REACT project.
By enabling to download subsets of data cubes, modisfast
facilites the
access to Earth science data for R users in places where internet
connection is slow or expensive and promotes digital sobriety for our
research work.
The OPeNDAP, over which the package builds, is a project developed by
the non-profit OPeNDAP, Inc. and
advanced openly and collaboratively. By using this data access protocol,
modisfast
support the open-source-software movement.