modisfast
An R package designed for easy and fast downloads of MODIS Land products, VIIRS Land products, and GPM (Global Precipitation Measurement Mission) Earth Observation data.
https://github.com/ptaconet/modisfast
Category: Sustainable Development
Sub Category: Taxonomy and Ontology
Keywords
data-cube earth-science-data environmental-data gpm land modis nasa opendap precipitation-data r temperature-data vegetation-data viirs
Last synced: about 1 hour ago
JSON representation
Repository metadata
Fast and efficient access to MODIS, VIIRS and GPM Earth Observation data with R
- Host: GitHub
- URL: https://github.com/ptaconet/modisfast
- Owner: ptaconet
- License: gpl-3.0
- Created: 2020-01-11T19:43:43.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2026-10-19T18:20:46.000Z (22 days ago)
- Last Synced: 2026-11-09T09:00:43.311Z (1 day ago)
- Topics: data-cube, earth-science-data, environmental-data, gpm, land, modis, nasa, opendap, precipitation-data, r, temperature-data, vegetation-data, viirs
- Language: R
- Homepage: https://ptaconet.github.io/modisfast
- Size: 18.8 MB
- Stars: 44
- Watchers: 1
- Forks: 5
- Open Issues: 2
- Releases: 5
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Authors: AUTHORS.md
- Codemeta: codemeta.json
README.Rmd
---
output: github_document
always_allow_html: yes
---
```{r include=FALSE}
library(magrittr)
library(modisfast)
library(dplyr)
library(kableExtra)
library(knitr)
knitr::opts_chunk$set(
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# modisfast
[](https://www.r-project.org/Licenses/GPL-3)
[](https://cran.r-project.org/package=modisfast)
[](https://github.com/ptaconet/modisfast)
[](https://github.com/ptaconet/modisfast/actions/workflows/R-CMD-check.yaml)
[](https://doi.org/10.21105/joss.07343)

## Table of contents
• Overview
• Installation
• Get started
• Data collections available
• Manual testing of the functionality
• Foundational framework
• Comparison with similar R packages
• Citation
• Future developments
• Contributing
• Acknowledgments
## News
2026-09-29 :
**`modisfast` is back!**
- After a year-long interruption caused by the migration of NASA’s data servers, `modisfast` is back
- `modisfast` now uses the new [NASA Earthdata Cloud OPeNDAP endpoint](https://opendap.earthdata.nasa.gov) for MODIS and VIIRS collections !
- Authentication to access data is now dealt with an Earthdata token instead of username and password.
## Overview
**`modisfast`** is an R package designed for **easy** and **fast** downloads of [**MODIS**](https://www.earthdata.nasa.gov/data/instruments/modis) Land products, [**VIIRS**](https://www.earthdata.nasa.gov/data/instruments/viirs) Land products, and [**GPM**](https://earth.gsfc.nasa.gov/hydro/missions/global-precipitation-measurement-gpm) (Global Precipitation Measurement Mission) Earth Observation data.
`modisfast` uses the abilities offered by the [OPeNDAP](https://www.opendap.org/about/) framework (*Open-source Project for a Network Data Access Protocol*) to download a subset of Earth Observation 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 with 10 bands when your region of interest is only 30 km x 30 km wide and you need 2 bands ! Moreover, `modisfast` enables parallel downloads of data.
This package is hence particularly suited for retrieving MODIS or VIIRS data **over long time series** and **over areas**, rather than short time series and points.
Importantly, the robust, sustainable, and cost-free [foundational framework](#foundational-framework) of `modisfast`, both for the data provider (NASA) and the software (R, OPeNDAP, the `tidyverse` and `GDAL` suite of packages and software), guarantees the long-term reliability and open-source nature of the package.
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.
## Installation
You can install the released version of `modisfast` from [CRAN](https://CRAN.R-project.org) with :
``` r
install.packages("modisfast")
```
or the development version (to get a bug fix or to use a feature from the development version) with :
``` r
if(!require(devtools)){install.packages("devtools")}
devtools::install_github("ptaconet/modisfast")
```
## Get Started
This example shows how to download and import a 1-year long time series of MODIS Land Surface Temperature (LST) at 6 km spatial resolution / 1 month temporal resolution over the whole country of Madagascar (collection [MOD11B3.061](https://doi.org/10.5067/MODIS/MOD11B3.061)).
**Fist, you need to retrieve your Earthdata token**. This token is mandatory to access the data. You can get it here : https://urs.earthdata.nasa.gov/ .

**Next, run the following code**
```{r , eval = F, message=F}
# set your EarthData token as an environment system :
Sys.setenv(EARTHDATA_TOKEN = "your Earthdata bearer token")
# Load the packages
library(modisfast)
library(sf)
library(terra)
# Set ROI and time range of interest
roi <- st_as_sf(data.frame(id = "madagascar", geom = "POLYGON((41.95 -11.37,51.26 -11.37,51.26 -26.17,41.95 -26.17,41.95 -11.37))"), wkt = "geom", crs = 4326) # a ROI of interest, format sf polygon
time_range <- as.Date(c("2025-01-01", "2025-12-31")) # a time range of interest (or single date)
# Set MODIS collections and variables (bands) of interest
collection <- "MOD11B3.061" # run mf_list_collections() for an exhaustive list of collections available
variables <- c("LST_Day_6km") # run mf_list_variables("MOD11B3.061") for an exhaustive list of variables available for the collection MOD11B3.061
## Get the URLs of the data with mf_get_url()
urls <- mf_get_url(
collection = collection,
variables = variables,
roi = roi,
time_range = time_range
)
## Download the data with mf_download_data(). By default the data is downloaded in a temporary directory, but you can specify a folder
res_dl <- mf_download_data(urls,
parallel = TRUE,
num_workers = 3)
# And finally, import the data in R as a terra::SpatRaster object using the function mf_import_data()
r <- mf_import_data(
path = dirname(res_dl$destfile[1]),
collection = collection,
proj_epsg = 4326,
roi_mask = roi
)
terra::plot(r, col = rev(terrain.colors(20)))
```

\
et voilà !
Want more examples ? `modisfast` provides a [long-form documentations and examples to learn more about the package](https://ptaconet.github.io/modisfast/articles/get_started.html)(https://ptaconet.github.io/modisfast/articles/get_started.html)
## Collections available in `modisfast`
Currently `modisfast` supports download of `r nrow(mf_list_collections())` data collections, extracted from the following meta-collections :
* [MODIS land products](https://www.earthdata.nasa.gov/data/instruments/modis) made available by the [NASA / USGS LP DAAC](https://www.earthdata.nasa.gov/centers/lp-daac) ;
* [VIIRS land products](https://www.earthdata.nasa.gov/data/instruments/viirs) made available by the [NASA / USGS LP DAAC](https://www.earthdata.nasa.gov/centers/lp-daac)
* [Global Precipitation Measurement](https://earth.gsfc.nasa.gov/hydro/missions/global-precipitation-measurement-gpm) (GPM) made available by the [NASA / JAXA GES DISC](https://www.earthdata.nasa.gov/centers/gesdisc-daac).
Details of each product available for download are provided in the tables below or through the function `mf_list_collections()`.
```{r, eval = TRUE, echo=F,message=F}
fun_display_coll <- function(filts){
cols <- mf_list_collections() %>%
dplyr::filter(nature %in% filts) %>%
dplyr::mutate(collection = cell_spec(collection, "html", link = doi)) %>%
dplyr::mutate(spatial_resolution_m = paste0(spatial_resolution_m, " m")) %>%
dplyr::mutate(temporal_resolution = paste0(temporal_resolution," ",temporal_resolution_unit)) %>%
dplyr::mutate(temporal_resolution = ifelse(temporal_resolution=="1 day", "Daily", temporal_resolution)) %>%
dplyr::mutate(start_date = paste0(start_date," to present")) %>%
dplyr::select(collection, source, nature, long_name, spatial_resolution_m, temporal_resolution, start_date) %>%
dplyr::arrange(nature, source, spatial_resolution_m, rev(temporal_resolution)) %>%
dplyr::rename(Collection = collection, Type = nature, Name = long_name, Source = source, 'Spatial resolution' = spatial_resolution_m, 'Temporal resolution' = temporal_resolution, 'Temporal extent' = start_date) %>%
kable("html", escape = FALSE) %>%
kable_styling(bootstrap_options = c("hover", "condensed"))
return(cols)
}
cols_natures <- sort(unique(mf_list_collections()$nature))
```
```{r, eval = TRUE, echo=F, message=F, results='asis'}
for(i in seq_along(cols_natures)){
if(i==1){
cat('',cols_natures[i],' data collections (click to expand)
')
} else {
cat('',cols_natures[i],' data collections
')
}
cat(knitr::asis_output(fun_display_coll(cols_natures[i])))
cat('')
}
```
## Manual testing of the functionality
Since most `modisfast` functions depend on EarthData credentials/token, automated tests are disabled. However, after installation, users can manually test the package’s functionality by running these lines of code :
```r
Sys.setenv(EARTHDATA_TOKEN = "your Earthdata bearer token")
devtools::test("~path/to/modisfast")
```
## Foundational framework {#foundational-framework}
Technically, `modisfast` is a programmatic interface (R wrapper) to several NASA [OPeNDAP](https://www.opendap.org/) servers. OPeNDAP is the acronym for *Open-source Project for a Network Data Access Protocol* and designates both the software, the access protocol, and the corporation that develops them. The OPeNDAP is designed to simplify access to structured and high-volume data, such as satellite products, over the Web. It is a collaborative effort involving multiple institutions and companies, with open-source code, free software, and adherence to the [Open Geospatial Consortium](https://www.ogc.org/) (OGC) standards. It is widely used by NASA, which partly finances it.
A key feature of OPeNDAP is its capability to apply filters at the data download process, ensuring that only the necessary data is retrieved. These filters, specified within a URL, can be spatial, temporal, or dimensional. Although powerful, OPeNDAP URLs are not trivial to build. `modisfast` facilitates this process by constructing the URL based on the spatial, temporal, and dimensional filters provided by the user in the function `mf_get_url()`.
These OPeNDAP URLs are not trivial to build. `modisfast` converts the spatial, temporal and dimensional filters (R objects) provided by the user through the function `mf_get_url()` into the appropriate OPeNDAP URL(s). Subsequently, the function `mf_download_data()` allows for downloading the data using the [`httr`](https://cran.r-project.org/package=httr) and `parallel` packages.
## Comparison with similar R packages
There are other R packages available for accessing MODIS data. Below is a comparison of modisfast with other packages available for downloading chunks of MODIS or VIIRS data :
| Package | Data | Available on CRAN | Utilizes open standards for data access protocols | Spatial subsetting* | Dimensional subsetting* | Maximum area size allowed for download | Speed** |
| :---------------------: | :------------------------------------------: | :-------------: | :-------------: | :-------------: | :-------------: | :-------------------: | :-------------------: |
| [`modisfast`](https://github.com/ptaconet/modisfast) | MODIS, VIIRS, GPM | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | unlimited | :white_check_mark:
| [`appeears`](https://github.com/bluegreen-labs/appeears) | MODIS, VIIRS, and many others | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | unlimited | variable
| [`MODISTools`](https://github.com/bluegreen-labs/MODISTools/) | MODIS, VIIRS | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | 200 km x 200 km | :white_check_mark:
| [`rgee`](https://github.com/r-spatial/rgee) | MODIS, VIIRS, GPM, and many others | :white_check_mark: | :x: | :white_check_mark: | :white_check_mark: | unlimited | not tested
| [`MODIStsp`](https://github.com/ropensci/MODIStsp) | MODIS | :x: | | :x: | :white_check_mark: | unlimited | NA
| [`MODIS`](https://github.com/fdetsch/MODIS) | MODIS | :x: | :x: | :x: | :x: | NA | NA
\* at the downloading phase
## Citation
This package is licensed under a [GNU General Public License v3.0 or later](https://www.gnu.org/licenses/gpl-3.0-standalone.html) license.
We thank in advance people that use `modisfast` for citing it in their work / publication(s). For this, please use the following citation :
> Taconet et al., (2024). modisfast: An R package for fast and efficient access to MODIS, VIIRS and GPM Earth Observation data. Journal of Open Source Software, 9(103), 7343, https://doi.org/10.21105/joss.07343
## Future developments
Future developments of the package may include access to additional data collections from other OPeNDAP servers, and support for a variety of data formats as they become available from data providers through their OPeNDAP servers. Furthermore, the creation of an RShiny application on top of the package is being considered, as a means of further simplifying data access for users with limited coding skills.
## Contributing
All types of contributions are encouraged and valued. For more information, check out our [Contributor Guidelines](https://github.com/ptaconet/modisfast/blob/master/CONTRIBUTING.md).
Please note that the `modisfast` project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.
## 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.](https://www.opendap.org/about/) 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](https://github.com/floriandeboissieu), Julien Taconet.
This work has been developed over the course of several research projects (REACT 1, REACT 2, ANORHYTHM and DIV-YOO) funded by Expertise France, the French National Research Agency (ANR), and the French National Research Institute for Sustainable Development (IRD).
Citation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Taconet
given-names: Paul
orcid: "https://orcid.org/0000-0001-7429-7204"
- family-names: Moiroux
given-names: Nicolas
orcid: "https://orcid.org/0000-0001-6755-6167"
contact:
- family-names: Taconet
given-names: Paul
orcid: "https://orcid.org/0000-0001-7429-7204"
doi: 10.5281/zenodo.14100599
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Taconet
given-names: Paul
orcid: "https://orcid.org/0000-0001-7429-7204"
- family-names: Moiroux
given-names: Nicolas
orcid: "https://orcid.org/0000-0001-6755-6167"
date-published: 2024-11-13
doi: 10.21105/joss.07343
issn: 2475-9066
issue: 103
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 7343
title: "modisfast: An R package for fast and efficient access to
MODIS, VIIRS and GPM Earth Observation data"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.07343"
volume: 9
title: "modisfast: An R package for fast and efficient access to MODIS,
VIIRS and GPM Earth Observation data"
Owner metadata
- Name: Paul Taconet
- Login: ptaconet
- Email: paul.taconet@ird.fr
- Kind: user
- Description: (Geo-)data scientist / engineer in bio-ecology and environmental sciences
- Website: https://orcid.org/0000-0001-7429-7204
- Location: Montpellier, France
- Twitter:
- Company: French Research Institute for Sustainable Development (IRD)
- Icon url: https://avatars.githubusercontent.com/u/15834351?u=d35409743e78f76380b9b2c568df069da7ff3254&v=4
- Repositories: 30
- Last ynced at: 2026-11-08T08:33:25.848Z
- Profile URL: https://github.com/ptaconet
GitHub Events
Total
- Create event: 2
- Issue comment event: 42
- Issues event: 28
- Pull request event: 1
- Push event: 44
- Release event: 2
- Watch event: 10
Last Year
- Issues event: 1
- Push event: 3
Committers metadata
Last synced: 1 day ago
Total Commits: 216
Total Committers: 2
Avg Commits per committer: 108.0
Development Distribution Score (DDS): 0.005
Commits in past year: 22
Committers in past year: 1
Avg Commits per committer in past year: 22.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| Paul Taconet | p****t@i****r | 215 |
| floriandeboissieu | f****s@g****m | 1 |
Committer domains:
- ird.fr: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 21
Total pull requests: 6
Average time to close issues: 4 months
Average time to close pull requests: 5 months
Total issue authors: 10
Total pull request authors: 4
Average comments per issue: 2.81
Average comments per pull request: 0.33
Merged pull request: 2
Bot issues: 0
Bot pull requests: 2
Past year issues: 2
Past year pull requests: 1
Past year average time to close issues: 4 months
Past year average time to close pull requests: about 16 hours
Past year issue authors: 2
Past year pull request authors: 1
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.0
Past year merged pull request: 1
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- rmendels (4)
- ptaconet (4)
- V-Agudetse (3)
- janstrauss1 (2)
- thsevere (2)
- hemprichbennett (2)
- LuoXu-THU (1)
- mhollanders (1)
- jfmas (1)
- Rachel22Ann (1)
Top Pull Request Authors
- dependabot[bot] (2)
- babakou9 (2)
- ptaconet (1)
- floriandeboissieu (1)
Top Issue Labels
- documentation (3)
- enhancement (3)
- bug (2)
- JOSS review (1)
Top Pull Request Labels
- dependencies (2)
Package metadata
- Total packages: 1
-
Total downloads:
- cran: 586 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 5
- Total maintainers: 1
cran.r-project.org: modisfast
Fast and Efficient Access to MODIS Earth Observation Data
- Homepage: https://github.com/ptaconet/modisfast
- Documentation: http://cran.r-project.org/web/packages/modisfast/modisfast.pdf
- Licenses: GPL (≥ 3)
- Latest release: 2.0.1 (published about 1 month ago)
- Last Synced: 2026-11-09T00:36:16.130Z (1 day ago)
- Versions: 5
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 586 Last month
-
Rankings:
- Dependent packages count: 28.546%
- Dependent repos count: 35.179%
- Average: 50.154%
- Downloads: 86.738%
- Maintainers (1)
Dependencies
- R >= 2.10 depends
- curl * imports
- dplyr * imports
- httr * imports
- lubridate * imports
- magrittr * imports
- ncdf4 * imports
- parallel * imports
- purrr * imports
- raster * imports
- rvest * imports
- sf * imports
- stars * imports
- stringr * imports
- utils * imports
- xml2 * imports
- knitr * suggests
- mapview * suggests
- rmarkdown * suggests
- testthat * suggests
- actions/checkout v4 composite
- r-lib/actions/check-r-package v2 composite
- r-lib/actions/setup-pandoc v2 composite
- r-lib/actions/setup-r v2 composite
- r-lib/actions/setup-r-dependencies v2 composite
- r-hub/actions/checkout v1 composite
- r-hub/actions/platform-info v1 composite
- r-hub/actions/run-check v1 composite
- r-hub/actions/setup v1 composite
- r-hub/actions/setup-deps v1 composite
- r-hub/actions/setup-r v1 composite
Score: 10.896813396877137