Giter Club home page Giter Club logo

pyintertidaldem's Introduction

pyIntertidalDEM

pyIntertidalDEM is a set of libraries and procedures written in python to extract shorelines from spectral images using a ophisticated shoreline extraction algorithm. These modules are developed in Python v3 environment.

Setup

Currently the toolbox is only available as a git repository, and not published in any of the common python repository - like pip or conda. Below is how you can install the package. It is highly recommended to use conda/miniconda environment.

  • Step 0: Download the source-code in a directory. For that use either the download button or git clone command.
  • Step 1: Create a conda environment from environment.yml file conda env create -n pyintdem -f environment.yml. It will create a new environment in your computer and install the pyintdem library.
  • Step 3: Activate conda environment conda activate pyIntertidalDEM. Remember to use this environment each time you work with the toolbox.

Processing

As explained in the associated publication, the toolbox was developed to analyze Sentinel-2 imageries. However, it is generic enough (e.g., Band class) to use with other image sets.

Example scripts are provided showing various steps of the processing.

  • examples/step_1_extract.py: This is a small script for extracting .zip archives of Sentinel-2 Images and nicely organize them tile-by-tile.
  • examples/step_2_create_mask.py: This example illustrates how to create a mask from a set of images in a tile. This gross water mask is then used in the next step for final analysis. To be noted that, this mask generation procedure needs to be done only once, or can be fully skipped if you already have a gross mask of the land-water body.
  • examples/step_3_analysis.py: This scripts implements the Sentinel-2 processing methodology shown in Khan et al. 2019. Various classes (e.g., Band, RGB) from the toolbox is used for the analysis, and the script can be modified as required by the end-user to test or to implement their own method.

Publications

Khan, M. J. U., Ansary, M. N., Durand, F., Testut, L., Ishaque, M., Calmant, S., Krien, Y., Islam, A. S. & Papa, F. High-Resolution Intertidal Topography from Sentinel-2 Multi-Spectral Imagery: Synergy between Remote Sensing and Numerical Modeling, Remote Sensing, MDPI AG, 2019, 11, 2888, doi:10.3390/rs11242888

Documentation

Currently the program is documented at source level and strongly believed that the use of the program falls on the left side of the xkcd documentation spectram!

XKCD MANUAL

pyintertidaldem's People

Contributors

jamal919 avatar mnansary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pyintertidaldem's Issues

:memo: Add documentation

The project has been few years old already, and the underlying libraries are not easily reproducible for many people - from personal experience. It would be useful to develop a documentation for the library and publish in the github pages. The most viable solution seems to be mkdocs - https://mkdocs.readthedocs.io/

πŸ“ Copernicus data reader

The Sentinel-2 data from scihub.copernicus are provided in .SAFE format, unlike the .zip format from Theia. This format however comes with a data descriptor .xml file, which allows direct reading of the underlying dataset without unzipping.

The current examples are designed to only work with the Theia dataset and for most part of the world, Theia does not provide any processed data, hence Copernicus is the way to go. Consequently, for analyzing the Copernicus data, a dedicated data reader is necessary.

I have just tested a functional prototype of data reader. It does the job of reading for now. But in light of this changes, perhaps a more harmonized reader is warranted.

:bulb: Clipping feature

Often the zone of interest is small, which means analysing the full image tile is not really necessary. Having a clipping feature would be a nice improvement of the toolbox.

:bug: conda environment file is not complete

The current environment.yml file does not install several important libraries - among them jupyter notebook and netCDF4. Although the toolbox is currently in update, it requires an update.

:bug: Dependency of matplotlib

matplotlib has been changed drastically beginning v3.3. Currently, the environment.yml list matplotlib=2.2.3 and matplotlib-base=3.4, which conflicts with the imports in the basemap. The last version that works with matplotlib and matplotlib-base is v3.2. It is needed to be updated.

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.