Skip to main content

持续变化检测的 Python 实现

项目描述

PyCCD - Python 连续变化检测

pyccd 从 Landsat 时间序列数据创建变化段

使用 PyCCD

>>> import ccd
>>> results = ccd.detect(dates, blues, greens, reds, nirs, swir1s, swir2s, thermals, qas, prev_results)
>>>
>>> type(results)
<class 'dict'>
>>>
>>> results
{algorithm: 'pyccd:x.x.x',
 processing_mask: [bool, bool, ...],
 snow_prob: float,
 water_prob: float,
 cloud_prob: float,
 change_models: [
     {start_day: int,
      end_day: int,
      break_day: int,
      observation_count: int,
      change_probability: float,
      curve_qa: int,
      blue:      {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      green:     {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      red:       {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      nir:       {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      swir1:     {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      swir2:     {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float},
      thermal:   {magnitude: float,
                  rmse: float,
                  coefficients: (float, float, ...),
                  intercept: float}}
                 ]
}

可以使用字典覆盖默认处理参数(有关有效键,请参阅 parameters.yaml):

>>> import ccd
>>> params = {'QA_BITPACKED': False,
              'QA_FILL': 255,
              'QA_CLEAR': 0,
              'QA_WATER': 1,
              'QA_SHADOW': 2,
              'QA_SNOW': 3,
              'QA_CLOUD': 4}
>>> results = ccd.detect(dates, blues, greens, reds, nirs, swir1s, swir2s, thermals, qas, params=params)

安装

系统要求 (Ubuntu)

  • python3-dev
  • gfortran
  • libopenblas-dev
  • liblapack-开发
  • 图形可视化
  • python-virtualenv

系统要求(Centos)

  • python3-开发
  • gfortran
  • blas-dev
  • lapack-开发
  • 图形可视化
  • python-virtualenv

强烈建议在虚拟环境中进行所有开发和测试。

user@dev:/home/user/$ mkdir pyccd
user@dev:/home/user/$ cd pyccd
user@dev:/home/user/pyccd$ virtualenv -p python3 .venv
user@dev:/home/user/pyccd$ . .venv/bin/activate
(.venv) user@dev:/home/user/pyccd$
安装
$ pip install -e .[test,dev,docs,deploy,profile]

测试

$ pytest
$ pytest --profile
$ pytest --profile-svg

# pytest-watch
$ ptw

制定目标

$ make build
$ make tests
$ make docs
$ make deploy
$ make profile

剖析

装饰要分析的函数@profile并运行make profile。在提交代码之前移除装饰。

贡献

在提交到此存储库之前,请运行以下命令。

git config --local commit.template .gitmessage

这会将 LCMAP 提交模板添加到git commit.

jira/lcmap-xxxx: Title
Description

贡献是最受欢迎的。

  1. 打开一个问题并讨论更改。
  2. 从主要版本分支并在问题后命名
    • 吉拉/lcmap-xxxx
  3. 为您的更改编写自动化测试并确保所有测试都通过。
  4. 更新项目中的文档。
  5. 向适当的分支提交拉取请求(例如 1,x)

版本

PyCCD 之前遵循 MAJOR.MINOR.PATCH.LABEL 语义版本控制,但已更改为基于日期的语义版本控制,因此:YYYY.MM.DD[.HH.MM.SS][-label]。

PyCCD 的版本由ccd/version.py/__version__属性定义。

参考

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

lcmap-pyccd-2021.7.19.tar.gz (32.9 kB 查看哈希

已上传 source

内置分布

lcmap_pyccd-2021.7.19-py3-none-any.whl (31.2 kB 查看哈希

已上传 py3