Skip to main content

A data visualization tool for PyCCD time-series model results and Landsat ARD

Project description

Abstract

The Timeseries Analysis and Plotting (TAP) Tool is being developed to provide exploratory data analysis for the Land Change Monitoring, Assessment, and Projection (LCMAP) project at USGS EROS. TAP is an open-source project written in python that uses PyQt5 and matplotlib for generating interactive GUIs and plots. Currently, it provides the following functionality:

  • Plot a timeseries of Landsat Analysis Ready Data (ARD)

    • Landsat 4-7 Bands 1, 2, 3, 4, 5, 7 Surface Reflectance

    • Landsat 8 Bands 2-7 Surface Reflectance

    • Landsat 4-7 Band 6 Brightness Temperature

    • Landsat 8 Band 10 Brightness Temperature

  • Plot model parameters and curve-fits from the Continuous Change Detection and Classification (CCDC) algorithm

  • Calculate indices on the fly for plotting and visualization

    • NDVI

    • MSAVI

    • SAVI

    • EVI

    • NDMI

    • NBR

    • NBR-2

  • Display RGB visualizations of Landsat ARD

  • Export plotted Landsat ARD surface reflectance, brightness temperature, and index values to a .csv file

  • Save a plot figure as a .png file

  • Save a Landsat ARD RGB display as a .png file

  • Save ESRI point shapefile for plotted coordinates


The tool currently requires the following data inputs:

  • Landsat ARD (obtained via HTTP request).

  • Serialized change and cover results generated by PyCCD (obtained via HTTP request).

Landsat ARD and the PyCCD algorithm are publicly available.

However, TAP requires access to ARD and PyCCD results via web-services that are available to on-site personnel at USGS EROS only.

For those reasons, TAP is not intended for general public use until the datasets become widely available at a future date.


Installation

Note on PyQt5: It is recommended to use PyQt5==5.10.1 because of an issue in later versions in which Qtwebengineprocess does not close on TAP exit.


Create a Virtual Environment

  • Install Miniconda3

  • Create a Conda virtual environment

    • Linux

      conda create --name tap python=3.6.7 gdal=2.2.2 poppler=0.60.1 cython cytoolz
    • Windows

      conda create --name tap python=3.6.7 gdal=2.2.2 cython cytoolz
    • If you experience SSL cert errors, disable ssl verification and try to create the env again.

      conda config --set ssl_verify false
  • Activate the environment

    conda activate tap

Install TAP

  • Ensure the virtual environment is activated from previous creation steps.

  • Use pip to install TAP’s latest standard release and the remaining dependencies

    pip install lcmap-tap
    • If you are having trusted host/certificate issues during pip install, you can explicitly trust pypi

      pip install lcmap-tap --trusted-host pypi.org --trusted-host files.pythonhosted.org
    • To install a pre-release or another specific version instead of a standard release:

      pip install lcmap-tap==2.0.0rc2
  • Create the configuration file required by tap

    • Note: Location may differ depending on if it was installed for a single user vs system wide.

    • Linux Example

      • Create and edit as needed

        cd $HOME/.conda/envs/tap/lib/python3.6/site-packages/lcmap_tap/
        cp config-example.yaml config.yaml
    • Windows Example

      • Create and edit as needed

        cd $HOME\AppData\Local\Continuum\miniconda3\envs\tap\Lib\site-packages\lcmap_tap
        cp config-example.yaml config.yaml

Run the Tool

Once installed, lcmap_tap can be executed directly from the command line if the virtual environment is activated:

  • Note: Location may differ depending on if it was installed for a single user vs system wide.

  • Linux

    lcmap_tap
  • Windows

    python.exe $HOME\AppData\Local\Continuum\miniconda3\envs\tap\Scripts\lcmap_tap.exe

Upgrades

To upgrade an already installed version of tap:

  • Activate the environment

    conda activate tap
  • Upgrade to the latest standard release

    pip install --upgrade lcmap-tap
    • Alternatively, upgrade to a specific release

      pip install --upgrade lcmap-tap==2.0.0rc2
  • If configuration parameters have changed in a new release, copy the config example:

    • Note: Location may differ depending on if it was installed for a single user vs system wide.

    • Linux Example

      • Create and edit as needed

        cd $HOME/.conda/envs/tap/lib/python3.6/site-packages/lcmap_tap/
        cp config-example.yaml config.yaml
    • Windows Example

      • Create and edit as needed

        cd $HOME\AppData\Local\Continuum\miniconda3\envs\tap\Lib\site-packages\lcmap_tap
        cp config-example.yaml config.yaml

Contributing

Before committing to this repository, run the following command.

git config --local commit.template .gitmessage

This will add the LCMAP commit template to git commit.

jira/lcmap-xxxx: Title
Description

Versioning

lcmap-tap follows semantic versioning: http://semver.org/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lcmap_tap-2.0.1.tar.gz (131.4 kB view details)

Uploaded Source

Built Distribution

lcmap_tap-2.0.1-py3-none-any.whl (155.5 kB view details)

Uploaded Python 3

File details

Details for the file lcmap_tap-2.0.1.tar.gz.

File metadata

  • Download URL: lcmap_tap-2.0.1.tar.gz
  • Upload date:
  • Size: 131.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.7

File hashes

Hashes for lcmap_tap-2.0.1.tar.gz
Algorithm Hash digest
SHA256 cda6768b31f4828a35f9e47cc6200cd36f4c6093edbd5d67c63f9074aa003fe1
MD5 f677340f7fd4d21920889442868867eb
BLAKE2b-256 ab620b128ed74265b4c19d11e1a62d5e6c17cefcafab2f7c566fce877a94728d

See more details on using hashes here.

File details

Details for the file lcmap_tap-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: lcmap_tap-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 155.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.6.7

File hashes

Hashes for lcmap_tap-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 53ff547b13b04fcbd3105a181b7ea4d17b8931d04544948e866f207d66f799a5
MD5 4c4563c147b33e75a6ed9bbc1fe7f387
BLAKE2b-256 32d82e1be78a84a46c65ccf2b0ece597f1870a5168753f23ebc726b07fba4bf4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page