Skip to content

1-dimensional convolutional neural networks (CNN) for the classification of soil texture based on hyperspectral data

License

Notifications You must be signed in to change notification settings

felixriese/CNN-SoilTextureClassification

Repository files navigation

Build Status codecov Codacy Badge Paper License: MIT

CNN Soil Texture Classification

1-dimensional convolutional neural networks (CNN) for the classification of soil texture based on hyperspectral data.

Description

We present 1-dimensional (1D) convolutional neural networks (CNN) for the classification of soil texture based on hyperspectral data. The following CNN models are included:

These 1D CNNs are optimized for the soil texture classification based on the hyperspectral data of the Land Use/Cover Area Frame Survey (LUCAS) topsoil dataset. It is available here. For more information have a look in our publication (see below).

Introducing paper: arXiv:1901.04846

Licence: MIT

Authors:

Citation of the code and the paper: see below and in the bibtex file

Requirements

Setup

git clone https://github.com/felixriese/CNN-SoilTextureClassification.git

cd CNN-SoilTextureClassification/

wget https://raw.githubusercontent.com/titu1994/keras-coordconv/c045e3f1ff7dabd4060f515e4b900263eddf1723/coord.py .

Usage

You can import the Keras models like that:

import cnn_models as cnn

model = cnn.getKerasModel("LucasCNN")
model.compile(...)

Example code is given in the lucas_classification.py. You can use it like that:

from lucas_classification import lucas_classification

score = lucas_classification(
    data=[X_train, X_val, y_train, y_val],
    model_name="LucasCNN",
    batch_size=32,
    epochs=200,
    random_state=42)

print(score)

Citation

[1] F. M. Riese, "CNN Soil Texture Classification", DOI:10.5281/zenodo.2540718, 2019.

DOI

@misc{riese2019cnn,
    author       = {Riese, Felix~M.},
    title        = {{CNN Soil Texture Classification}},
    year         = {2019},
    publisher    = {Zenodo},
    DOI          = {10.5281/zenodo.2540718},
}

Code is Supplementary Material to

[2] F. M. Riese and S. Keller, "Soil Texture Classification with 1D Convolutional Neural Networks based on Hyperspectral Data", ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. IV-2/W5, pp. 615-621, 2019. DOI:10.5194/isprs-annals-IV-2-W5-615-2019

@article{riese2019soil,
    author = {Riese, Felix~M. and Keller, Sina},
    title = {Soil Texture Classification with 1D Convolutional Neural Networks based on Hyperspectral Data},
    year = {2019},
    journal = {ISPRS Annals of Photogrammetry, Remote Sensing and Spatial Information Sciences},
    volume = {IV-2/W5},
    pages = {615--621},
    doi = {10.5194/isprs-annals-IV-2-W5-615-2019},
}

[3] F. M. Riese, "LUCAS Soil Texture Processing Scripts," Zenodo, 2020. DOI:0.5281/zenodo.3871431

[4] Felix M. Riese. "Development and Applications of Machine Learning Methods for Hyperspectral Data." PhD thesis. Karlsruhe, Germany: Karlsruhe Institute of Technology (KIT), 2020. DOI:10.5445/IR/1000120067