# 数据变换算子

## PaddleRS已支持的数据变换算子列表

PaddleRS对不同遥感任务需要的数据预处理/数据增强（合称为数据变换）策略进行了有机整合，设计统一的算子。考虑到遥感影像的多波段特性，PaddleRS的大部分数据处理算子均能够处理任意数量波段的输入。PaddleRS目前提供的所有数据变换算子如下表：

| 数据变换算子名 | 用途                                                     | 任务     | ... |
| -------------------- | ------------------------------------------------- | -------- | ---- |
| AppendIndex          | 计算遥感指数并添加到输入影像中。 | 所有任务  | ... |  
| CenterCrop           | 对输入影像进行中心裁剪。 | 所有任务 | ... |
| Dehaze               | 对输入图像进行去雾。 | 所有任务 | ... |
| MatchRadiance        | 对两个时相的输入影像进行相对辐射校正。 | 变化检测 | ... |
| MixupImage           | 将两幅影像（及对应的目标检测标注）混合在一起作为新的样本。 | 目标检测 | ... |
| Normalize            | 对输入影像应用标准化。 | 所有任务 | ... |
| Pad                  | 将输入影像填充到指定的大小。 | 所有任务 | ... |
| RandomBlur           | 对输入施加随机模糊。 | 所有任务 | ... |
| RandomCrop           | 对输入影像进行随机中心裁剪。 | 所有任务 | ... |
| RandomDistort        | 对输入施加随机色彩变换。 | 所有任务 | ... |
| RandomExpand         | 根据随机偏移扩展输入影像。 | 所有任务 | ... |
| RandomHorizontalFlip | 随机水平翻转输入影像。 | 所有任务 | ... |
| RandomResize         | 随机调整输入影像大小。 | 所有任务 | ... |
| RandomResizeByShort  | 随机调整输入影像大小，保持纵横比不变（根据短边计算缩放系数）。 | 所有任务 | ... |
| RandomScaleAspect    | 裁剪输入影像并重新缩放到原始尺寸。 | 所有任务 | ... |
| RandomSwap           | 随机交换两个时相的输入影像。 | 变化检测 | ... |
| RandomVerticalFlip   | 随机竖直翻转输入影像。 | 所有任务 | ... |
| ReduceDim            | 对输入图像进行波段降维。 | 所有任务 | ... |
| Resize               | 调整输入影像大小。 | 所有任务 | ... |
| ResizeByLong         | 调整输入影像大小，保持纵横比不变（根据长边计算缩放系数）。 | 所有任务 | ... |
| ResizeByShort        | 调整输入影像大小，保持纵横比不变（根据短边计算缩放系数）。 | 所有任务 | ... |
| SelectBand           | 对输入影像进行波段选择。 | 所有任务 | ... |
| ...                  | ... | ... | ... |

## 组合算子

在实际的模型训练过程中，常常需要组合多种数据预处理与数据增强策略。PaddleRS提供了`paddlers.transforms.Compose`以便捷地组合多个数据变换算子，使这些算子能够串行执行。关于`paddlers.transforms.Compose`的具体用法请参见[API说明](https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md)。
