Skip to content

ptaconet/modisfast

Repository files navigation

modisfast

licence Travis build status CRAN_Status_Badge Github_Status_Badge

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

Installation

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.

Get Started

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 !

Collections available in modisfast

Currently modisfast supports download of 78 data collections, extracted from the following meta-collections :

In addition, modisfast supports download of the following satellite-derived environmental data :

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

Similar packages

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 steps

Next developments may involve including access to more collections from other OPeNDAP servers.

Any contribution is welcome !

License and citation

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").

Acknowledgments

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.

Releases

No releases published

Packages

No packages published

Languages