from enmapboxprocessing.algorithm.appendenviheadertogtiffrasteralgorithm import AppendEnviHeaderToGTiffRasterAlgorithm
from enmapboxprocessing.algorithm.applymaskalgorithm import ApplyMaskAlgorithm
from enmapboxprocessing.algorithm.classificationperformancesimplealgorithm import \
    ClassificationPerformanceSimpleAlgorithm
from enmapboxprocessing.algorithm.classificationperformancestratifiedalgorithm import \
    ClassificationPerformanceStratifiedAlgorithm
from enmapboxprocessing.algorithm.classificationtofractionalgorithm import ClassificationToFractionAlgorithm
from enmapboxprocessing.algorithm.classifierfeaturerankingpermutationimportancealgorithm import \
    ClassifierFeatureRankingPermutationImportanceAlgorithm
from enmapboxprocessing.algorithm.classifierperformancealgorithm import ClassifierPerformanceAlgorithm
from enmapboxprocessing.algorithm.createdefaultpalettedrasterrendereralgorithm import \
    CreateDefaultPalettedRasterRendererAlgorithm
from enmapboxprocessing.algorithm.creategridalgorithm import CreateGridAlgorithm
from enmapboxprocessing.algorithm.createmaskalgorithm import CreateMaskAlgorithm
from enmapboxprocessing.algorithm.creatergbimagefromclassprobabilityalgorithm import \
    CreateRgbImageFromClassProbabilityAlgorithm
from enmapboxprocessing.algorithm.featureclusteringhierarchicalalgorithm import FeatureClusteringHierarchicalAlgorithm
from enmapboxprocessing.algorithm.fitgaussianprocessclassifieralgorithm import FitGaussianProcessClassifierAlgorithm
from enmapboxprocessing.algorithm.fitgenericclassifieralgorithm import FitGenericClassifierAlgorithm
from enmapboxprocessing.algorithm.fitlinearsvcalgorithm import FitLinearSvcAlgorithm
from enmapboxprocessing.algorithm.fitlogisticregressionralgorithm import FitLogisticRegressionAlgorithm
from enmapboxprocessing.algorithm.fitrandomforestclassifieralgorithm import FitRandomForestClassifierAlgorithm
from enmapboxprocessing.algorithm.fitsvcrbfalgorithm import FitSvcRbfAlgorithm
from enmapboxprocessing.algorithm.fitsvcpolyalgorithm import FitSvcPolyAlgorithm
from enmapboxprocessing.algorithm.geolocaterasteralgorithm import GeolocateRasterAlgorithm
from enmapboxprocessing.algorithm.importdesisl1balgorithm import ImportDesisL1BAlgorithm
from enmapboxprocessing.algorithm.importdesisl1calgorithm import ImportDesisL1CAlgorithm
from enmapboxprocessing.algorithm.importdesisl2aalgorithm import ImportDesisL2AAlgorithm
from enmapboxprocessing.algorithm.importenmapl1balgorithm import ImportEnmapL1BAlgorithm
from enmapboxprocessing.algorithm.importenmapl1calgorithm import ImportEnmapL1CAlgorithm
from enmapboxprocessing.algorithm.importenmapl2aalgorithm import ImportEnmapL2AAlgorithm
from enmapboxprocessing.algorithm.importlandsatl2algorithm import ImportLandsatL2Algorithm
from enmapboxprocessing.algorithm.importprismal1algorithm import ImportPrismaL1Algorithm
from enmapboxprocessing.algorithm.importprismal2dalgorithm import ImportPrismaL2DAlgorithm
from enmapboxprocessing.algorithm.importsentinel2l2aalgorithm import ImportSentinel2L2AAlgorithm
from enmapboxprocessing.algorithm.layertomaskalgorithm import LayerToMaskAlgorithm
from enmapboxprocessing.algorithm.predictclassificationalgorithm import PredictClassificationAlgorithm
from enmapboxprocessing.algorithm.predictclassprobabilityalgorithm import PredictClassPropabilityAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromcategorizedlibraryalgorithm import \
    PrepareClassificationDatasetFromCategorizedLibraryAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromcategorizedrasteralgorithm import \
    PrepareClassificationDatasetFromCategorizedRasterAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromcategorizedvectoralgorithm import \
    PrepareClassificationDatasetFromCategorizedVectorAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromcategorizedvectorandfieldsalgorithm import \
    PrepareClassificationDatasetFromCategorizedVectorAndFieldsAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromcodealgorithm import \
    PrepareClassificationDatasetFromCodeAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromfilesalgorithm import \
    PrepareClassificationDatasetFromFilesAlgorithm
from enmapboxprocessing.algorithm.prepareclassificationdatasetfromtablealgorithm import \
    PrepareClassificationDatasetFromTableAlgorithm
from enmapboxprocessing.algorithm.randompointsfromcategorizedrasteralgorithm import \
    RandomPointsFromCategorizedRasterAlgorithm
from enmapboxprocessing.algorithm.randompointsfrommaskrasteralgorithm import RandomPointsFromMaskRasterAlgorithm
from enmapboxprocessing.algorithm.randomsamplesfromclassificationdatasetalgorithm import \
    RandomSamplesFromClassificationDatasetAlgorithm
from enmapboxprocessing.algorithm.rasterizecategorizedvectoralgorithm import RasterizeCategorizedVectorAlgorithm
from enmapboxprocessing.algorithm.rasterizevectoralgorithm import RasterizeVectorAlgorithm
from enmapboxprocessing.algorithm.rastermathalgorithm.rastermathalgorithm import RasterMathAlgorithm
from enmapboxprocessing.algorithm.samplerastervaluesalgorithm import SampleRasterValuesAlgorithm
from enmapboxprocessing.algorithm.saverasterlayerasalgorithm import SaveRasterAsAlgorithm
from enmapboxprocessing.algorithm.selectfeaturesfromdatasetalgorithm import SelectFeaturesFromDatasetAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionairydisk2dalgorithm import SpatialConvolutionAiryDisk2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionbox2dalgorithm import SpatialConvolutionBox2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutioncustom2dalgorithm import SpatialConvolutionCustom2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutiongaussian2dalgorithm import SpatialConvolutionGaussian2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionmoffat2dalgorithm import SpatialConvolutionMoffat2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionrickerwavelet2dalgorithm import \
    SpatialConvolutionRickerWavelet2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionring2dalgorithm import SpatialConvolutionRing2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutionsavitskygolay2dalgorithm import \
    SpatialConvolutionSavitskyGolay2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutiontophat2dalgorithm import SpatialConvolutionTophat2DAlgorithm
from enmapboxprocessing.algorithm.spatialconvolutiontrapezoiddisk2dalgorithm import \
    SpatialConvolutionTrapezoidDisk2DAlgorithm
from enmapboxprocessing.algorithm.spatialgaussiangradientmagnitudealgorithm import \
    SpatialGaussianGradientMagnitudeAlgorithm
from enmapboxprocessing.algorithm.spatialgenericfilteralgorithm import SpatialGenericAlgorithm
from enmapboxprocessing.algorithm.spatiallaplacealgorithm import SpatialLaplaceAlgorithm
from enmapboxprocessing.algorithm.spatialmaximumalgorithm import SpatialMaximumAlgorithm
from enmapboxprocessing.algorithm.spatialmedianalgorithm import SpatialMedianAlgorithm
from enmapboxprocessing.algorithm.spatialminimumalgorithm import SpatialMinimumAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinaryclosingalgorithm import \
    SpatialMorphologicalBinaryClosingAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinarydilationalgorithm import \
    SpatialMorphologicalBinaryDilationAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinaryerosionalgorithm import \
    SpatialMorphologicalBinaryErosionAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinaryfillholesalgorithm import \
    SpatialMorphologicalBinaryFillHolesAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinaryopeningalgorithm import \
    SpatialMorphologicalBinaryOpeningAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalbinarypropagationalgorithm import \
    SpatialMorphologicalBinaryPropagationAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalblacktophatalgorithm import \
    SpatialMorphologicalBlackTophatAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalgradientalgorithm import SpatialMorphologicalGradientAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalgreydilationalgorithm import \
    SpatialMorphologicalGreyDilationAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalgreyerosionalgorithm import \
    SpatialMorphologicalGreyErosionAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalgreyopeningalgorithm import \
    SpatialMorphologicalGreyOpeningAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicallaplacealgorithm import SpatialMorphologicalLaplaceAlgorithm
from enmapboxprocessing.algorithm.spatialmorphologicalwhitetophatalgorithm import \
    SpatialMorphologicalWhiteTophatAlgorithm
from enmapboxprocessing.algorithm.spatialpercentilealgorithm import SpatialPercentileAlgorithm
from enmapboxprocessing.algorithm.spatialprewittalgorithm import SpatialPrewittAlgorithm
from enmapboxprocessing.algorithm.spatialsobelalgorithm import SpatialSobelAlgorithm
from enmapboxprocessing.algorithm.spectralconvolutionbox1dalgorithm import SpectralConvolutionBox1DAlgorithm
from enmapboxprocessing.algorithm.spectralconvolutiongaussian1dalgorithm import SpectralConvolutionGaussian1DAlgorithm
from enmapboxprocessing.algorithm.spectralconvolutionrickerwavelet1dalgorithm import \
    SpectralConvolutionRickerWavelet1DAlgorithm
from enmapboxprocessing.algorithm.spectralconvolutionsavitskygolay1dalgorithm import \
    SpectralConvolutionSavitskyGolay1DAlgorithm
from enmapboxprocessing.algorithm.spectralconvolutiontrapezoid1dalgorithm import SpectralConvolutionTrapezoid1DAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingbyresponsefunctionlibraryalgorithm import \
    SpectralResamplingByResponseFunctionLibraryAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingbyspectralrasterwavelengthandfwhmalgorithm import \
    SpectralResamplingBySpectralRasterWavelengthAndFwhmAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingtocustomsensoralgorithm import \
    SpectralResamplingToCustomSensorAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingtodesisalgorithm import SpectralResamplingToDesisAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingtoenmapalgorithm import SpectralResamplingToEnmapAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingtolandsat5algorithm import SpectralResamplingToLandsat5Algorithm
from enmapboxprocessing.algorithm.spectralresamplingtolandsat7algorithm import SpectralResamplingToLandsat7Algorithm
from enmapboxprocessing.algorithm.spectralresamplingtolandsat8algorithm import SpectralResamplingToLandsat8Algorithm
from enmapboxprocessing.algorithm.spectralresamplingtoprismaalgorithm import SpectralResamplingToPrismaAlgorithm
from enmapboxprocessing.algorithm.spectralresamplingtosentinel2algorithm import SpectralResamplingToSentinel2Algorithm
from enmapboxprocessing.algorithm.synthmixalgorithm import SynthMixAlgorithm
from enmapboxprocessing.algorithm.translatecategorizedrasteralgorithm import TranslateCategorizedRasterAlgorithm
from enmapboxprocessing.algorithm.translaterasteralgorithm import TranslateRasterAlgorithm


def algorithms():
    algos = [
        AppendEnviHeaderToGTiffRasterAlgorithm(),
        ApplyMaskAlgorithm(),
        ClassificationPerformanceSimpleAlgorithm(),
        ClassificationPerformanceStratifiedAlgorithm(),
        ClassificationToFractionAlgorithm(),
        ClassifierPerformanceAlgorithm(),
        ClassifierFeatureRankingPermutationImportanceAlgorithm(),
        CreateDefaultPalettedRasterRendererAlgorithm(),
        CreateGridAlgorithm(),
        CreateMaskAlgorithm(),
        CreateRgbImageFromClassProbabilityAlgorithm(),
        FitGaussianProcessClassifierAlgorithm(),
        FitGenericClassifierAlgorithm(),
        FitLinearSvcAlgorithm(),
        FitLogisticRegressionAlgorithm(),
        FitRandomForestClassifierAlgorithm(),
        FitSvcRbfAlgorithm(),
        FitSvcPolyAlgorithm(),
        FeatureClusteringHierarchicalAlgorithm(),
        GeolocateRasterAlgorithm(),
        ImportDesisL1BAlgorithm(),
        ImportDesisL1CAlgorithm(),
        ImportDesisL2AAlgorithm(),
        ImportEnmapL1BAlgorithm(),
        ImportEnmapL1CAlgorithm(),
        ImportEnmapL2AAlgorithm(),
        ImportLandsatL2Algorithm(),
        ImportPrismaL1Algorithm(),
        ImportPrismaL2DAlgorithm(),
        ImportSentinel2L2AAlgorithm(),
        LayerToMaskAlgorithm(),
        PredictClassificationAlgorithm(),
        PredictClassPropabilityAlgorithm(),
        PrepareClassificationDatasetFromFilesAlgorithm(),
        PrepareClassificationDatasetFromCategorizedRasterAlgorithm(),
        PrepareClassificationDatasetFromCategorizedVectorAlgorithm(),
        PrepareClassificationDatasetFromTableAlgorithm(),
        PrepareClassificationDatasetFromCategorizedVectorAndFieldsAlgorithm(),
        PrepareClassificationDatasetFromCategorizedLibraryAlgorithm(),
        PrepareClassificationDatasetFromCodeAlgorithm(),
        RandomPointsFromMaskRasterAlgorithm(),
        RandomPointsFromCategorizedRasterAlgorithm(),
        RandomSamplesFromClassificationDatasetAlgorithm(),
        RasterizeCategorizedVectorAlgorithm(),
        RasterizeVectorAlgorithm(),
        RasterMathAlgorithm(),
        SampleRasterValuesAlgorithm(),
        SaveRasterAsAlgorithm(),
        SelectFeaturesFromDatasetAlgorithm(),
        SpatialConvolutionAiryDisk2DAlgorithm(),
        SpatialConvolutionBox2DAlgorithm(),
        SpatialConvolutionCustom2DAlgorithm(),
        SpatialConvolutionGaussian2DAlgorithm(),
        SpatialConvolutionMoffat2DAlgorithm(),
        SpatialConvolutionRickerWavelet2DAlgorithm(),
        SpatialConvolutionRing2DAlgorithm(),
        SpatialConvolutionSavitskyGolay2DAlgorithm(),
        SpatialConvolutionTophat2DAlgorithm(),
        SpatialConvolutionTrapezoidDisk2DAlgorithm(),
        SpatialGaussianGradientMagnitudeAlgorithm(),
        SpatialMorphologicalBinaryClosingAlgorithm(),
        SpatialMorphologicalBinaryDilationAlgorithm(),
        SpatialMorphologicalBinaryErosionAlgorithm(),
        SpatialMorphologicalBinaryFillHolesAlgorithm(),
        SpatialMorphologicalBinaryOpeningAlgorithm(),
        SpatialMorphologicalBinaryPropagationAlgorithm(),
        SpatialMorphologicalBlackTophatAlgorithm(),
        SpatialMorphologicalGradientAlgorithm(),
        SpatialMorphologicalGreyDilationAlgorithm(),
        SpatialMorphologicalGreyErosionAlgorithm(),
        SpatialMorphologicalGreyOpeningAlgorithm(),
        SpatialMorphologicalLaplaceAlgorithm(),
        SpatialMorphologicalWhiteTophatAlgorithm(),
        SpatialSobelAlgorithm(),
        SpatialPrewittAlgorithm(),
        SpatialPercentileAlgorithm(),
        SpatialMinimumAlgorithm(),
        SpatialMaximumAlgorithm(),
        SpatialMedianAlgorithm(),
        SpatialLaplaceAlgorithm(),
        SpatialGenericAlgorithm(),
        SpectralConvolutionBox1DAlgorithm(),
        SpectralConvolutionGaussian1DAlgorithm(),
        SpectralConvolutionRickerWavelet1DAlgorithm(),
        SpectralConvolutionSavitskyGolay1DAlgorithm(),
        SpectralConvolutionTrapezoid1DAlgorithm(),
        SpectralResamplingByResponseFunctionLibraryAlgorithm(),
        SpectralResamplingBySpectralRasterWavelengthAndFwhmAlgorithm(),
        SpectralResamplingToCustomSensorAlgorithm(),
        SpectralResamplingToDesisAlgorithm(),
        SpectralResamplingToEnmapAlgorithm(),
        SpectralResamplingToLandsat5Algorithm(),
        SpectralResamplingToLandsat7Algorithm(),
        SpectralResamplingToLandsat8Algorithm(),
        SpectralResamplingToPrismaAlgorithm(),
        SpectralResamplingToSentinel2Algorithm(),
        # SynthMixAlgorithm(),  # not ready for v3.9
        TranslateCategorizedRasterAlgorithm(),
        TranslateRasterAlgorithm()
    ]

    return algos
