Learn R Programming

⚠️There's a newer version (1.12.0) of this package.Take me there.

SITS - Satellite Image Time Series Analysis for Earth Observation Data Cubes

Overview

The sits R package provides a set of tools for analysis, visualization and classification of satellite image time series. The main aim of SITS is to support land cover and land change classification of image data cubes using machine learning methods. The basic workflow in SITS is:

  1. Create a data cube using image collections available in the cloud or in local machines.
  2. Extract time series from the data cube which are used as training data.
  3. Perform quality control and filtering on the samples.
  4. Train a machine learning model using the extracted samples.
  5. Classify the data cube using the trained model.
  6. Post-process the classified images.
  7. Evaluate the accuracy of the classification using best practices.

Installation

Pre-Requisites

The sits package relies on sf, terra and raster, which in turn, require the installation of the GDAL and PROJ libraries. Please follow the instructions for installing sf together with GDAL available at the RSpatial sf github repository.

Obtaining SITS

SITS is currently available on github, as follows:

# Please install the `sits` package from github
# and its dependencies
devtools::install_github("e-sensing/sits", dependencies = TRUE)
library(sits)
library(tibble)
library(magrittr)

AMI Image

For users that have an AWS account, we have prepared a set of AMI (Amazon Machine Images that are optimized for running SITS in the Amazon Elastic Compute Cloud (or EC2). The AMI has the following settings: SITS 0.9.6, Ubuntu 18.04, R 4.0.2, and Rstudio Server 1.3.959. All packages have been updated as of 21 August 2020. The AMI is available for the following regions:

When you create an EC2 instance based on this AMI, ensure that your ‘security group’ settings allow incoming HTTP (port 80), HTTPS (port 443) and SSH (port 20) traffic. After the EC2 instance is started, then copy-and-paste the ‘IPv4 Public IP’ address for your running instance to a web browser address bar. That should bring the RStudio server interface in your browser. Use “rstudio” as username and “e-sensing” as password.

Data Cubes

SITS has been designed to work with big satellite image data sets organised as data cubes. Data cubes can be available in the cloud or in a local machine. Currently, SITS supports data cubes available in the following cloud services:

  1. Sentinel-2/2A level 2A images in AWS.
  2. Collections of Sentinel, Landsat and CBERS images in the Brazil Data Cube (BDC).
  3. Sentinel-2/2A collections available in Digital Earth Africa.
  4. Data cubes produced by the “gdalcubes” package.
  5. Local image collections organized as raster stacks.

SITS relies on STAC services provided by these cloud services. The user can define a data cube by selecting a collection in a cloud service and then defining a space-time extent. For example, the following code will define a data cube of Sentinel-2/2A images using AWS. Users need to provide AWS credentials using environment variables.

s2_cube <- sits_cube(source = "AWS",
                     name = "T20LKP_2018_2019",
                     collection = "sentinel-s2-l2a",
                     tiles = c("20LKP"),
                     start_date = as.Date("2018-07-18"),
                     end_date = as.Date("2018-07-23"),
                     s2_resolution = 20
)

In the above example, the user has selected the “Sentinel-2 Level 2” collection in the AWS cloud services. The geographical area of the data cube is defined by the tile “20LKP”, and the temporal extent by a start and end date. Access to other cloud services works in similar ways.

Users can derive data cubes from ARD data which have pre-defined temporal resolutions. For example, a user may want to define the best Sentinel-2 pixel in a one month period, as shown below. This can be done in SITS by the sits_regularize which use the https://github.com/appelmar/gdalcubes package. For details in gdalcubes, please see Reference [4].

gc_cube <- sits_regularize(cube   = s2_cube,
                           name          = "T20LKP_2018_2019_1M",
                           dir_images    = tempdir(),
                           period        = "P1M",
                           agg_method    = "median",
                           resampling    = "bilinear",
                           cloud_mask    = TRUE)

Accessing time series in data cubes

SITS has been designed to use satellite image time series to derive machine learning models. After the data cube has been created, time series can be retreived individually or by using CSV or SHP files, as in the following example.

library(sits)
#> Using configuration file: /home/sits/R/x86_64-pc-linux-gnu-library/4.1/sits/extdata/config.yml
#> Using raster package: terra
#> To provide additional configurations, create an YAML file and inform its path to environment variable 'SITS_USER_CONFIG_FILE'.
#> SITS - satellite image time series analysis.
#> Loaded sits v0.13.0-2.
#>         See ?sits for help, citation("sits") for use in publication.
#>         See demo(package = "sits") for examples.
# create a cube from a local file 
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")

raster_cube <- sits_cube(
    source = "LOCAL",
    name = "sinop-2014",
    satellite = "TERRA",
    sensor = "MODIS",
    data_dir = data_dir,
    delim = "_",
    parse_info = c("X1", "X2", "tile", "band", "date")
)

# obtain a set of locations defined by a CSV file
csv_raster_file <- system.file("extdata/samples/samples_sinop_crop.csv",
                               package = "sits")

# retrieve the points from the data cube
points <- sits_get_data(raster_cube, file = csv_raster_file)
#> All points have been retrieved

# show the points
points[1:3,]
#> # A tibble: 3 x 7
#>   longitude latitude start_date end_date   label   cube       time_series      
#>       <dbl>    <dbl> <date>     <date>     <chr>   <chr>      <list>           
#> 1     -55.7    -11.8 2013-09-14 2014-08-29 Pasture sinop-2014 <tibble [23 × 3]>
#> 2     -55.6    -11.8 2013-09-14 2014-08-29 Pasture sinop-2014 <tibble [23 × 3]>
#> 3     -55.7    -11.8 2013-09-14 2014-08-29 Forest  sinop-2014 <tibble [23 × 3]>

After a time series is imported, it is loaded in a tibble. The first six columns contain the metadata: spatial and temporal location, label assigned to the sample, and coverage from where the data has been extracted. The spatial location is given in longitude and latitude coordinates. The first sample has been labelled “Pasture”, at location (-55.65931, -11.76267), and is considered valid for the period (2013-09-14, 2014-08-29). To display the time series, use the plot() function.

plot(points[1,])

For a large number of samples, where the amount of individual plots would be substantial, the default visualisation combines all samples together in a single temporal interval.

# select the "ndvi" band
samples_ndvi <- sits_select(samples_modis_4bands, "NDVI")

# select only the samples with the cerrado label
samples_cerrado <- dplyr::filter(samples_ndvi, 
                  label == "Cerrado")
plot(samples_cerrado)

Clustering for sample quality control

Clustering methods in SITS improve the quality of the samples and to remove those that might have been wrongly labeled or that have low discriminatory power. Good samples lead to good classification maps. sits provides support for sample quality control using Self-organizing Maps (SOM).

The process of clustering with SOM is done by sits_som_map(), which creates a self-organizing map and assesses the quality of the samples. This function uses the “kohonen” R package to compute a SOM grid (see Reference [7] below). Each sample is assigned to a neuron, and neurons are placed in the grid based on similarity. The second step is the quality assessment. Each neuron will be associated with a discrete probability distribution. Homogeneous neurons (those with a single class) are assumed to be composed of good quality samples. Heterogeneous neurons (those with two or more classes with significant probability) are likely to contain noisy samples. See Chapter 4 of the sits book.

Filtering

Satellite image time series are contaminated by atmospheric influence and directional effects. To make the best use of available satellite data archives, methods for satellite image time series analysis need to deal with data sets that are noisy and non-homogeneous. For data filtering, sits supports Savitzky–Golay (sits_sgolay()), Whittaker (sits_whittaker()), and envelope (sits_envelope()). As an example, we show how to apply the Whittaker smoother to a 16-year NDVI time series. For more details, please see the vignette “Satellite Image Time Series Filtering with SITS”

# apply Whitaker filter to a time series sample for the NDVI band from 2000 to 2016
# merge with the original data
# plot the original and the modified series
point_ndvi <- sits_select(point_mt_6bands, bands = "NDVI")
point_ndvi %>% 
    sits_filter(sits_whittaker(lambda = 10)) %>% 
    sits_merge(point_ndvi) %>% 
    plot()

Time Series classification using machine learning

SITS provides support for the classification of both individual time series as well as data cubes. The following machine learning methods are available in SITS:

  • Linear discriminant analysis (sits_lda)
  • Quadratic discriminant analysis (sits_qda)
  • Multinomial logit and its variants ‘lasso’ and ‘ridge’ (sits_mlr)
  • Support vector machines (sits_svm)
  • Random forests (sits_rfor)
  • Extreme gradient boosting (sits_xgboost)
  • Deep learning (DL) using multi-layer perceptrons (sits_deeplearning)
  • DL using Deep Residual Networks (sits_ResNet) (see reference [5])
  • DL combining 1D convolution neural networks and multi-layer perceptrons (sits_TempCNN) (See reference [6])

The following example illustrate how to train a dataset and classify an individual time series. First we use the sits_train function with two parameters: the training dataset (described above) and the chosen machine learning model (in this case, extreme gradient boosting). The trained model is then used to classify a time series from Mato Grosso Brazilian state, using sits_classify. The results can be shown in text format using the function sits_show_prediction or graphically using plot.

# training data set
data("samples_modis_4bands")

# point to be classified
data("point_mt_6bands")

# Select the NDVI and EVI bands 
# Filter the band to reduce noise
# Train a deep learning model
tempCNN_model <- samples_modis_4bands %>% 
    sits_select(bands = c("NDVI", "EVI")) %>% 
    sits_whittaker(bands_suffix = "") %>% 
    sits_train(ml_method = sits_TempCNN(verbose = FALSE)) 

# Select NDVI and EVI bands of the  point to be classified
# Filter the point 
# Classify using TempCNN model
# Plot the result
point_mt_6bands %>% 
  sits_select(bands = c("ndvi", "evi")) %>% 
  sits_whittaker(bands_suffix = "") %>% 
  sits_classify(tempCNN_model) %>% 
  plot()

The following example shows how to classify a data cube organised as a set of raster images. The result can also be visualised interactively using sits_view().

# Retrieve the set of samples for the Mato Grosso region 
# Select the data for classification
# Reduce noise the bands using whittaker filter
# Build an extreme gradient boosting model
xgb_model <- samples_modis_4bands %>% 
    sits_select(bands = c("NDVI", "EVI")) %>% 
    sits_whittaker(bands_suffix = "") %>% 
    sits_train(ml_method = sits_xgboost())

# Create a data cube to be classified
# Cube is composed of MOD13Q1 images from the Sinop region in Mato Grosso (Brazil)
data_dir <- system.file("extdata/raster/mod13q1", package = "sits")
sinop <- sits_cube(
    source = "LOCAL",
    name = "sinop-2014",
    satellite = "TERRA",
    sensor = "MODIS",
    data_dir = data_dir,
    delim = "_",
    parse_info = c("X1", "X2", "tile", "band", "date")
)

# Classify the raster cube, generating a probability file
# Filter the pixels in the cube to remove noise
probs_cube <- sits_classify(sinop, 
                            ml_model = xgb_model, 
                            filter_fn = sits_whittaker())
# apply a bayesian smoothing to remove outliers
bayes_cube <- sits_smooth(probs_cube)
# generate a thematic map
label_cube <- sits_label_classification(bayes_cube)
# plot the the labelled cube
plot(label_cube, title = "Labelled image")

Additional information

For more information, please see the on-line book “SITS: Data analysis and machine learning for data cubes using satellite image timeseries”.

References

Reference paper for sits

If you use sits on academic works, please cite the following paper:

  • [1] Rolf Simoes, Gilberto Camara, Gilberto Queiroz, Felipe Souza, Pedro R. Andrade, Lorena Santos, Alexandre Carvalho, and Karine Ferreira. “Satellite Image Time Series Analysis for Big Earth Observation Data”. Remote Sensing, 13, p. 2428, 2021. https://doi.org/10.3390/rs13132428.

Additionally, the sample quality control methods that use self-organised maps are described in the following reference:

  • [2] Lorena Santos, Karine Ferreira, Gilberto Camara, Michelle Picoli, Rolf Simoes, “Quality control and class noise reduction of satellite image time series”. ISPRS Journal of Photogrammetry and Remote Sensing, vol. 177, pp 75-88, 2021. https://doi.org/10.1016/j.isprsjprs.2021.04.014.

Papers that use sits to produce LUCC maps

  • [3] Rolf Simoes, Michelle Picoli, et al., “Land use and cover maps for Mato Grosso State in Brazil from 2001 to 2017”. Sci Data 7, 34 (2020).

  • [4] Michelle Picoli, Gilberto Camara, et al., “Big Earth Observation Time Series Analysis for Monitoring Brazilian Agriculture”. ISPRS Journal of Photogrammetry and Remote Sensing, 2018. DOI: 10.1016/j.isprsjprs.2018.08.007

  • [5] Karine Ferreira, Gilberto Queiroz et al., Earth Observation Data Cubes for Brazil: Requirements, Methodology and Products. Remote Sens. 2020, 12, 4033.

Papers that describe software used in sits

We thank the authors of these papers for making their code available to be used in sits.

  • [6] Appel, Marius, and Edzer Pebesma, “On-Demand Processing of Data Cubes from Satellite Image Collections with the Gdalcubes Library.” Data 4 (3): 1–16, 2020.

  • [7] Hassan Fawaz, Germain Forestier, Jonathan Weber, Lhassane Idoumghar, and Pierre-Alain Muller, “Deep learning for time series classification: a review”. Data Mining and Knowledge Discovery, 33(4): 917–963, 2019.

  • [8] Pelletier, Charlotte, Geoffrey I. Webb, and Francois Petitjean. “Temporal Convolutional Neural Network for the Classification of Satellite Image Time Series.” Remote Sensing 11 (5), 2019.

  • [9] Wehrens, Ron and Kruisselbrink, Johannes. “Flexible Self-Organising Maps in kohonen 3.0”. Journal of Statistical Software, 87, 7 (2018).

R packages used in sits

The authors acknowledge the contributions of Marius Appel, Tim Appelhans, Henrik Bengtsson, Matt Dowle, Robert Hijmans, Edzer Pebesma, and Ron Wehrens, respectively chief developers of the packages “gdalcubes”, “mapview”, “future”, “data.table”, “terra/raster”, “sf”/“stars”, and “kohonen”. The code in “sits” is also much indebted to the work of the RStudio team, including the “tidyverse” and the “furrr” and “keras” packages. We also thank Charlotte Pelletier and Hassan Fawaz for sharing the python code that has been reused for the “TempCNN” and “ResNet” machine learning models.

How to contribute

The SITS project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('sits')

Monthly Downloads

526

Version

0.13.1

License

GPL-2 | file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Gilberto Camara

Last Published

February 13th, 2025

Functions in sits (0.13.1)

.deafrica_search_tiles

Search items tiles
.aws_bands

Get aws sits bands by resolution
config_functions

Get values from config file
.aws_bands_band_name

Get aws source bands by resolution
.check_collection

Check cube collection
cerrado_2classes

Samples of classes Cerrado and Pasture
.config_data_meta_type

meta-type for data
cube_functions

Auxiliary functions for sits cubes
.raster_check_block

Check for block object consistency
.raster_open_stack

Raster package internal open raster stack function
.sits_classify_multicores

Classify a chunk of raster data using multicores
check_functions

Check functions
.raster_data_type

Raster package internal data type representation
.raster_params_file

Determine the file params to write in the metadata
.raster_open_rast

Raster package internal open raster function
.raster_properties

Raster package internal object properties
.raster_extract

Raster package internal extract values function
.sits_gc_cube

Create a cube_view object
.sits_brewer_color_name

Brewer color schemes
.sits_brewer_max_colors

Brewer color schemes
.sits_cluster_dendro_bestcut

Compute validity indexes to a range of cut height
.sits_cube_params_block

Determine the block spatial parameters of a given cube
.sits_cube_bands_check

Check that the requested bands exist in the cube
.raster_focal

Raster package internal moving window function
.raster_freq

Raster package internal frequency values function
.sits_cube_file_info

Get cube file info
.raster_check_package

Check for raster package availability
.sits_cluster_dendrogram

Compute a dendrogram using hierarchical clustering
.raster_read_stack

Raster package internal read raster stack file function
.raster_crop

Raster package internal crop raster function
.sits_distances_sample

Sample a percentage of a time series distance matrix
.sits_classify_check_params

Check clasification parameters
.raster_resample_method

Convert sits internal resample methods
.sits_cube_clone

Clone a data cube
.sits_keras_binary_class

Adjust keras prediction for the binary classification case
.sits_cube_probs

Create a set of RasterLayer objects to store data cube classification results (only the probs)
.sits_processing_task_time

Estimate the processing time of a task
.sits_cube_fix_name

Fix cube name uniqueness
.sits_distances_classify

Classify a distances tibble using machine learning models
.sits_plot_title

Create a plot title to use with ggplot
.sits_csv_check

Check if a CSV tibble is valid
.sits_ml_normalize_data

Normalize the time series in the given sits_tibble
.sits_gc_database

Create an image_collection object
.sits_cube_area_freq

Given a labelled cube, return the band information
.sits_parallel_stop

Stop all workers of the sits cluster
.sits_label_cube

Create a set of RasterLayer objects to store data cube classification results (labelled classes)
.sits_gc_brick

Create a raster_cube object
.raster_new_rast

Raster package internal create raster object function
.raster_merge

Merge all input files into one raster file
.sits_raster_block_list

Calculate a list of blocks to be read from disk to memory
.sits_plot_ggplot_series_no_na

Plot one timeSeries using ggplot (no NAs present)
.sits_get_data_check

check if all points have been retrieved
.sits_gc_date

Extracted date from aggregated cubes
.sits_plot_allyears

Plot all intervals of one time series for the same lat/long together
.sits_roi_bbox.sf

Find the bounding box for a spatial ROI defined as an sf object
.sits_plot_ggplot_series_na

Plot one timeSeries wih NAs using ggplot
.sits_tibble_prediction

Create an empty tibble to store the results of predictions
.raster_rast

Raster package internal object creation
.sits_bbox_intersect

Intersection between a bounding box and a cube
.raster_read_rast

Raster package internal read raster file function
.raster_gdal_datatype

Convert internal data type to gdal data type
.sits_shp_point_to_tibble

Obtain a tibble with latitude and longitude points from POINT geometry
.sits_bbox_time_series

Find the bounding box for a set of time series
.sits_cube_extract

Given a band, return a set of values for chosen location
.sits_cube_create

Creates the description of a data cube
.sits_roi_bbox.xy

Find the bounding box for a spatial ROI defined as a bounding box
.sits_shp_polygon_to_tibble

Obtain a tibble from POLYGON geometry
.sits_plot_som_map

Plot the SOM grid with neurons labeled
plot

Generic interface for ploting time series
.sits_tibble_prune

Checks that the timeline of all time series of a data set are equal
.sits_tibble_test

Tests if a sits tibble is valid
.sits_plot_som_evaluate_cluster

Plot information about confusion between clusters
.sits_smooth_map_layer

Parallel processing of classified images
.sits_timeline_check

Checks that the timeline of all time series of a data set are equal
.stac_bands_select

Select stac items by sits bands.
.sits_timeline_check_cube

Check cube timeline against requested start and end dates
.sits_plot_twdtw_alignments

Plot classification alignments using the dtwSat package
.sits_plot_twdtw_class

Plot classification results using the dtwSat package
.usgs_format_tiles

Format tile parameter provided by users
.sits_cube_source

Get cube source
.sits_classify_interval

Classify one interval of data
.stac_datetime

Datetime format
.sits_ml_model_samples

Get the samples from a ml_model
.sits_timeline_class_info

Define the information required for classifying time series
.sits_roi_bbox.ll

Find the bounding box for a spatial ROI defined as a lat/lon box
.sits_s2_aws_tiles

Verify items tiles
.sits_gc_compose

Save the images based on an aggregation method.
samples_mt_6bands

Samples of nine classes for the state of Mato Grosso
%>%

Pipe
sits_bbox

Get the bounding box of the data
point_mt_6bands

A time series sample with data from 2000 to 2016
.sits_distances

Use time series values as distances for training patterns
.raster_supported_packages

Supported raster packages
.raster_set_values

Raster package internal set values function
.sits_cluster_validity

Cluster validity indices
:=

Set by reference in data.table
.sits_ml_normalize_matrix

Normalize the time series values in the case of a matrix
.raster_get_values

Raster package internal get values function
sits_data_to_csv

Export a sits tibble data to the CSV format
sits_bands

Informs the names of the bands
print.sits_assessment

Print the values of a confusion matrix
.sits_timeline_date_format

Find if the date information is correct
sits_debug_log

sits log functions
helper_satveg_function

Helper satveg functions
sits_label_classification

Post-process a classified data raster probs to obtain a labelled image
sits_TempCNN

Train a model using the Temporal Convolutional Neural Network
sits_accuracy

Area-weighted classification accuracy assessment
.stac_add_gdal_vsi

...
.sits_twdtw_matches_to_prediction

Transform patterns from TWDTW format to sits format
samples_modis_4bands

Samples of nine classes for the state of Mato Grosso
.sits_ml_normalization_param

Normalize the time series in the given sits_tibble
.sits_tibble_bands_check

Check that the requested bands exist in the samples
.sits_proj_format_crs

Checks if the crs provided is valid
sits_lda

Train a sits classification model using linear discriminant analysis
sits_ranger

Train a sits classifiction model using fast random forest algorithm
sits_linear_interp

Interpolation function of the time series in a sits tibble
sits_regularize

Creates a regularized data cube from an irregular one
.sits_gc_cloud_mask

Create an object image_mask with information about mask band
.sits_plot_ggplot_together

Plot many timeSeries together using ggplot
.sits_ops_compute

Add new sits bands and drops existing.
sits_envelope

Envelope filter
.sits_parallel_map

Maps a function to a given list in parallel or sequential processing
.sits_shp_check_validity

Check the validity of the shape file
plot.classified_image

Generic interface for ploting classified images
.sits_plot_together

Plot a set of time series for the same spatio-temporal reference
.sits_raster_data_preprocess

Preprocess a set of values retrieved from a raster
.sits_twdtw_breaks

Classify a sits tibble using the matches found by the TWDTW methods
.sits_raster_data_read

Read a block of values retrieved from a set of raster images
.sits_satveg_ts_from_txt

Retrieve a time series from the SATVEG service
.sits_timeline_idx_from_dates

Create a list of time indexes from the dates index
.sits_smooth_gauss_kernel

Compute the 2-D Gaussian kernel
.sits_parallel_reset_node

Recreates a cluster worker
.sits_accuracy_area_assess

Support for Area-weighted post-classification accuracy
.sits_raster_blocks_estimate

Estimate the number of blocks
sits_svm

Train a sits classification model using a support vector machine
.sits_raster_data_get_ts

Extract a time series from raster
.sits_plot_dendrogram

Plot a dendrogram
.sits_plot_ggplot_series

Plot one timeSeries using ggplot
.sits_parallel_start

Start a new sits cluster for parallel processing
.sits_shp_to_tibble

Obtain a tibble with lat/long points to be retrieved from a SHP
.sits_plot_patterns

Plot classification patterns
sits_train

Train sits classification models
.sits_raster_data_split

Split a data.table or a matrix for parallel processing
.sits_raster_sub_image

Find the dimensions and location of a spatial ROI in a data cube
.sits_tibble_align_dates

Aligns dates of time series to a reference date
sits_som_map

Generate a Kohonen map for sample quality control
sits_to_zoo

Export data to be used to the zoo format
sits_to_xlsx

Saves the results of accuracy assessments as Excel files
.sits_accuracy_pred_ref

Obtains the predicted value of a reference set
.sits_function_factory

Create a closure for calling functions with and without data
sits_som_evaluate_cluster

Evaluate cluster
.sits_get_data_from_satveg

Obtain one timeSeries from the EMBRAPA SATVEG server
.sits_plot_classification

Plot classification results
.sits_smooth_blocks_size_estimate

Estimate the number of blocks to run .sits_split_cluster
.sits_tibble_rename

Rename a tibble to use "cube" instead of "coverage"
plot.probs_cube

Generic interface for plotting probability cubes
.sits_raster_sub_image_intersects

Informs if a spatial ROI intersects a data cube
.sits_plot_classified_image

Plot a raster classified image
.sits_get_data_from_wtss

Obtain one time series from WTSS server and load it on a sits tibble
sits_filter

General function for filtering
source_functions

Source functions
.sits_raster_sub_image_default

Find the dimensions and location of a spatial ROI in a data cube
sits-package

sits
.stac_get_bbox

Get the STAC information corresponding to a bbox extent
.sits_raster_blocks

Define a reasonable block size to process an image subset
print.sits_area_assessment

Print the area assessment
.sits_roi_bbox

Find the bounding box for a spatial ROI in a data cube
.sits_timeline_match_indexes

Find indexes in a timeline that match the reference dates
.sits_timeline_valid_date

Test if date fits with the timeline
.sits_som_bayes_estimate

Probability of a sample belongs to a cluster using bayesian filter
.sits_satveg_timeline

Retrieve a timeline for the SATVEG service
sits_keras_diagnostics

Diagnostic information about a Keras deep learning model
sits_ndwi

Builds normalized difference water index
sits_apply

Apply a function over a time series.
sits_accuracy_summary

Print the ssumary of the accuracy
sits_parallel_fault_tolerant

Fault tolerant version of some parallel functions
sits_configuration

sits configuration
sits_kfold_validate

Cross-validate temporal patterns
.sits_timeline_dist_indexes

Indexes to extract data from a distance table for classification
.sits_som_paint_neurons

Paint neurons
sits_label_majority

Post-process a classified data raster with a majority filter
.sits_tibble

Create a sits tibble to store the time series information
sits_mlp

Train a deep learning model using multi-layer perceptron
sits_missing_values

Remove missing values
sits_ResNet

Train a model using the ResNet model
.sits_timeline_during

Find the subset of a timeline that is contained in an interval defined by start_date and end_date
sits_sgolay

Smooth the time series using Savitsky-Golay filter
sits_patterns

Create temporal patterns using a generalised additive model (gam)
sits_qda

Train a classification model using quadratic discriminant analysis
sits_mlr

Train a sits classification model using multinomial log-linear
sits_mutate_bands

Add new sits bands.
plot.keras_model

Generic interface for plotting a Keras model
.sits_twdtw_from_tibble

Export data to be used by the dtwSat package
.sits_proj_from_latlong

Coordinate transformation (lat/long to X/Y)
sits_impute_linear

Linear imputation of NA values using C++ implementation
sits_smooth

Post-process a classified data raster probs using smoothing
sits_xgboost

Train a model with an extreme gradient boosting machine
source_cube

Functions to instantiate a new cube from a source
sits_whittaker

Filter the time series using Whittaker smoother
sits_som_clean_samples

Clean samples
sits_interp

Interpolation function of the time series of a sits_tibble
plot.raster_cube

Generic interface for plotting stack cubes
sits_cube

Defines a data cube
sits_cube_copy

Creates the contents of a data cube
sits_sample

Sample a percentage of a time series
sits_rfor

Train a SITS classifiction model using random forest algorithm
timeline_2013_2014

The timeline for the sequence of images one year (2013 to 2014)
sits_twdtw_classify

Find matches between patterns and time series using TWDTW
plot.som_evaluate_cluster

Plot information about confusion between clusters
.sits_proj_to_latlong

Coordinate transformation (X/Y to lat/long)
.stac_items_query

Creates a query to send to STAC api
sits_savi

Builds soil-adjusted vegetation index
sits_create_folds

Create partitions of a data set
.usgs_filter_datetime

Filter datetime in STAC items
sits_select

Filter bands on a data set (tibble or cube)
sits_formula_linear

Define a linear formula for classification models
.stac_roi

Get bbox and intersects parameters
sits_som_cluster

Clustering a set of satellite image time series using SOM
sits_classify

Classify time series or data cube using machine learning models
.sits_satveg_timeline_from_txt

Retrieve a timeline from the SATVEG service based on text expression
.sits_som_label_neurons

Label neurons
.sits_raster_sub_image_from_bbox

Extract a sub_image from a bounding box and a cube
sits_from_zoo

Import time series in the zoo format to a sits tibble
plot.patterns

Generic interface for ploting patterns
timeline_2000_2017

The timeline for the sequence of images for MOD13Q1 collection 6
sits_values

Return the values of a given sits tibble as a list of matrices.
sits_labels

Returns the information about labels of a data set (tibble or cube)
.sits_timeline_match

Find dates in the input data cube that match those of the patterns
sits_view

Generic interface for visualization of data cube
sits_cluster_dendro

Clusters a set of time series using aglomerative hierarchical clustering
plot.predicted

Generic interface for ploting time series predictions
plot.som_map

Generic interface for plotting a SOM map
sits_cluster_frequency

Cluster contigency table
sits_time_series

Retrieve time series for a row of a sits tibble
sits_cluster_clean

Cluster cleaner
sits_get_data

Obtain time series from different sources
source_collection

Source collection functions
sits_merge

Merge two data sets (time series or cubes)
sits_formula_logref

Define a loglinear formula for classification models
sits_metadata_to_csv

Export a sits tibble metadata to the CSV format
sits_show_prediction

Shows the predicted labels for a classified tibble
sits_labels_summary

Returns the information about labels of a tibble data set
`sits_bands<-`

Replaces the names of the bands
`sits_labels<-`

Change labels of a sits tibble
sits_timeline

Obtains the timeline
ts_zoo

A time series in the ZOO format
source_bands

Source bands functions