Giter VIP home page Giter VIP logo

sentinel2_crop_traits's Introduction

Sentinel2 Crop Trait Retrieval

This repository contains the Python code and data required to re-run the analysis and results presented in

PAPER: Graf, L.V, Merz, Q.M, Walter, A., Aasen, H. (2023) "Insights from field phenotyping improve satellite remote sensing based in-season estimation of winter wheat growth and phenology". Remote Sensing of Environment. DOI:https://doi.org/10.1016/j.rse.2023.113860.

The data used in the study and made available in this repository is the result of multi-year, labor-intense work in the field and laboratory conducted by teams at ETH Zurich Crop Science, the School of Agircultural, Forest and Food Sciences, HAFL and the Division of Agroecology and Environment at Agroscope Reckenholz. A list of contributors is provided.

We therefore kindly ask you to acknowledge our work by

  • citing our research properly whenever you use the data and/or methods presented here
  • leave a star on GitHub and/or fork our repository

This helps us to continue the labor and cost-intensive process of data acquisition, preparation and, ultimately, publication to benefit science and society.

If your work relies substantially on our data please also get in touch with us and consider offering co-authorship.

Content

Code

The Python source code can be found in src. It extracts the Sentinel-2 data, runs the PROSAIL simulations, performs the inversion for trait retrieval, implements the phenology model and generates the figures shown in the paper. For re-running the entire workflow (all results are provided, see below) you have the execute the Python scripts listed in the order below:

  • extract_s2_scenes.py: Extracts the Sentinel-2 surface reflectance data and runs PROSAIL in forward mode for the field parcel geometries provided
  • invert_s2_scenes.py: Carries out the inversion of PROSAIL to derive the functional traits
  • combine_models.py: Implements the phenological model and combines PROSAIL outputs
  • validate_traits.py: Carries out the trait validation against in-situ data

Moreover, all but two figures (the overview map that was created in QGIS, and the workflow figure that was handcrafted in LibreOffice) can be recreated using these Python scripts.

Data

In data the in-situ trait values, field parcel geometries, location of sampling points where the traits were measured, field calendars and spectral response functions of Sentinel-2 can be found.

Please given proper credit of our work. See our guidelines and list of contributors for more details.

Results

In results we deliver the extracted Sentinel-2 data and results of the PROSAIL inversion (including lookup-tables). This is mainly due to computational demands of running PROSAIL in forward mode to allow users with limited computing resources to check our methodology and reproduce our main findings.

In results, also all figures of the paper can be found.

OS and Software Requirements

The code was tested and run completely on Fedora 35 using Python 3.10. In theory, it should also run on other operating systems and Python versions but we never verified it.

All requirements to execute the scripts can be found in the requirements.txt file. To install we recommend to create a clean Python virtual environment. The steps below show how to do the installation using git, pip and venv on Linux:

git clone https://github.com/EOA-team/sentinel2_crop_traits.git
cd sentinel2_crop_traits
python -m venv my_venv
source my_venv/bin/activate
pip install -r requirements.txt

sentinel2_crop_traits's People

Contributors

lukasvalentin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sentinel2_crop_traits's Issues

Add Data

  • Add farm data to make the get_farms function work
  • Add S2 SRF from ESA

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.