Neural-network-based remote-sensing retrievals for the busy remote-sensing scientist. 👩🔬
The aim of PyTorch Retrieve is to provide remote-sensing scientists with a fast, fail-safe and flexible way of training retrievals of geophysical quantities from satellite observations. PyTorch Retrieve's principal features are
- flexible implementations of state-of-the-art neural network architecture that can be trained on a wide range of input data including multi-spectral, multi-sensor and multi time step data,
- multi-output retrievals handling scalar, vector, continuous and catergorical outputs,
- Modular model configuration using configuration files in '.toml' or '.yaml' format,
- Probabilistic regression using quantiles or binned distributions,
- Built-in handling of input normalization, value imputation, and output masking.
Why another deep-learning package for satellite data?
The other deep-learning pacakges for geospatial data that I am aware of (TorchGeo and TorchSat) were designed with classification tasks in mind and most of their functionality focuses on loading geospatial data or providing interfaces to existing geospatial ML datasets. PyTorch retrieve focuses on dense quantification tasks, i.e. predicting scalar or vector quantities for every or almost every pixel in the input data.
Moreover, PyTorch Retrieve takes the opposite approach in the functionality it provides: Instead of simplifying the data loading, it aims to simplify the technical details of implementing a good-perfoming neural networ. PyTorch Retrieve aims separate the science code (the preparation of the training data and evaluation of the retrieval) from the engineering (the training of the machine learning model). Separating concerns in this way, swapping out the neural network architecture used becomes a simple change of a configuration file.