跳转到主要内容

流域提取器。

项目描述

DOI PyPI version Continuous Integration Documentation Status Code style: black

basinex

basinex-LOGO

mHM》流域提取器。提取给定测站点的流域。

依赖关系

  • numpy v1.14.5或更高版本
  • netCDF4
  • GDAL
  • pyyaml
  • C++编译器(用于开发版本)

安装

如果您已经安装了GDAL,可以通过pip安装basinex

pip install basinex

GDAL安装

使用pip安装GDAL可能有些麻烦。因此,我们为主要的靶系统编译了说明。

Ubuntu

要获取GDAL的最新版本,您可以使用ubuntugis的ppa。

sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt install gdal-bin libgdal-dev
pip install wheel numpy
pip install GDAL==$(gdal-config --version)

MacOS

GDAL可以使用homebrew进行安装。

brew install gdal
pip install wheel numpy
pip install GDAL==$(gdal-config --version)

Windows

您可以使用Christoph Gohlke的未官方whl文件来安装GDAL。这样做最简单的方法是使用pipwin

pip install pipwin
pipwin install gdal

conda环境中的开发版本

最好使用conda来安装basinex,以确保gdal和NetCDF正确安装。要使用basinex的开发版本,请下载此存储库,并在您的conda环境中执行以下操作

conda install -y gdal netcdf4 pyyaml cxx-compiler
pip install .

然后您可以在该conda环境中执行basinex

文档

以下是关于如何使用basin提取器的简要介绍。请查看示例目录或直接尝试使用

basinex -c examples

用法

此包将安装一个命令行脚本basinex。您可以在终端中执行它,并且它将在您的当前目录中搜索input.yml文件。

要获取有关如何使用命令行界面的更多信息,请查看帮助信息

$ basinex -h
usage: basinex [-h] [-n LINE] [-i INPUT] [-v] [-c CWD] [--version]

mHM basin extractor

optional arguments:
  -h, --help            show this help message and exit
  -n LINE, --line LINE  the gauge to extract, given as its (0-based) line number in the look up table
  -i INPUT, --input INPUT
                        the input yaml file to read (default: 'input.yml')
  -v, --verbose         give some status output
  -c CWD, --cwd CWD     the working directory
  --version             show program's version number and exit

输入文件

主要输入文件input.yml有文档说明,应该(希望)提供概述

默认输入文件如下所示

outpath: /path/to/output/
flowacc: /path/to/facc.asc
flowdir: /path/to/fdir.asc
gauges: /path/to/lut.txt
matching:
  scaling_factor: 0.001
  max_distance: 800
  max_error: 0.8
mask:
  fname: basin.asc
  outpath: morph
gauge:
  fname: idgauges.asc
  outpath: morph
gridfiles:
  - fname: /path/to/input/facc.asc
    outpath: morph
  - fname: /path/to/input/input1.asc
    outpath: morph
  - fname: /path/to/input/input2.asc
    outpath: luse
ncfiles:
  - fname: /path/to/input/input1.nc
    outpath: meteo
    ydim: northing
    xdim: easting
    y_shift: 0.5
    x_shift: 0.5
  - fname: /path/to/input/input2.nc
    outpath: meteo
    ydim: 'y'
    xdim: 'x'

描述

  • outpath: outpath/gauge_id/ - 必需:输出位置,所有数据将写入到outpath/gauge_id/
  • flowacc: /path/to/facc.asc - 必需:流量累积
  • flowdir: /path/to/fdir.asc - 必需:流向
  • gauges: /path/to/lut.txt - 必需:测量数据查找表 表格结构
    • 一个简单的以';'分隔的文本表格
    • 如果需要划设流域,则以下字段是必需的
      • id:一个独特的测量站标识符
      • size:流域的大小
      • y:测量站y坐标
      • x:测量站x坐标
    • 如果需要使用预处理的流域掩码,则以下字段是必需的
      • id:一个独特的流域标识符
      • path:掩码文件路径
      • varname:掩码变量名称(可选,如果掩码存储在netcdf文件中则需要)
  • latitude-size-correction: False - 可选:对给定的流域大小执行纬度校正(默认:False)
    • AREA = N_cells * res_x * ( cos(LAT) * res_y ) * scaling factor^2
  • matching: - 必需:测量匹配参数
    • 注意:测量匹配基于流量累积数据。流量累积网格中任何给定单元格的值被解释为流入相应单元格的流域大小[以单元格为单位]。在测量匹配过程中,将搜索流量累积网格以找到与给定测量流域大小相对应的流域大小相近的单元格。搜索半径将逐步增加,并可以限制为最大尺寸。一旦找到匹配单元格(流域大小的误差小于给定的最大误差),则搜索结束。
    • scaling_factor: .001 - 缩放因子,以解决流量累积和测量数据之间(可能)的单元差异。为了使数据可比较,将计算有效流量累积如下
      • flowaccumulation_value * (cellsize * scaling_factor)^2
    • max_distance: 800 - 最大距离[地图单位],在给定的测量站位置周围搜索匹配单元格
    • max_error: 0.8 - 最大误差,作为给定流域大小的分数
  • mask: - 可选:写入划设的流域
    • fname: basin.asc - 可选:掩码网格的文件名(默认:mask.asc
    • outpath: morph - 输出子目录
  • gauge: - 可选:写入测量流域
    • fname: idgauges.asc - 可选:仪表网格的文件名(默认:idgauges.asc
    • outpath: morph - 输出子目录
  • gridfiles: - 可选:要提取的任意数量的网格文件。
    • 注意:当前仅支持ArcAscii和GeoTIFF格式
    • fname: /path/to/input/facc.asc - 除非在此列出,否则不会写入流量积累和流向
    • outpath: morph - 可选:在outpath/gauge_id下的输出子目录
  • ncfiles: - 可选:要提取的任意数量的netcdf文件。
    • 注意:要从netcdf提取,必须提供坐标值。
      • 示例:如果您的数据变量依赖于三个维度timeyx,则您的文件还应包含两个一维(!)变量y(仅依赖于维度y)和x(仅依赖于维度x)。像cdo这样的工具往往会静默地删除变量,所以请确保此信息可用
    • fname: /path/to/input/input1.nc
    • outpath: meteo - 可选:在outpath/gauge_id下的输出子目录
    • ydim: northing - 必需:包含y坐标的(1D-)变量的名称
    • xdim: easting - 必需:包含x坐标的(1D-)变量的名称
    • y_shift: .5x_shift: .5 - 可选:空间数据的坐标定义在它们所属的单元格的某个位置(例如,上左或下左角)。所有支持的文件格式都透明地处理坐标,除了netcdf。为了考虑到格式提供的灵活性,可以指定原点从左上角沿x和y方向偏移的单元格的分数。数据集的边界框(一个包含整个空间域的虚拟框)然后计算为
      • ymin = min(y_values) - (cellsize * (1 - y_shift))
      • ymax = max(y_values) + (cellsize * y_shift)
      • xmin = min(x_values) - (cellsize * (1 - x_shift))
      • xmax = max(x_values) + (cellsize * x_shift)
      • 示例:
        • 您的坐标值指定了单元格的左上角
          • y_shift: 0
          • x_shift: 0
        • 您的坐标值指定了单元格的中心
          • y_shift: 0.5
          • x_shift: 0.5
        • 您的坐标值指定了单元格的下左角
          • y_shift: 1
          • x_shift: 0
      • 默认:下左角,即
        • y_shift: 1
        • x_shift: 0

注释

此软件包最初由David Schäfer开发,他还提供了geoarray子包的独立版本。

netcdf4geoarray子包是从jams-python软件包中获得的,该软件包以前在UFZ的CHS部门开发,现在以MIT许可证发布。

许可证

LGPLv3

项目详情


下载文件

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

源分发

basinex-0.2.0.tar.gz (32.3 kB 查看哈希值)

上传时间

构建分发

basinex-0.2.0-cp310-cp310-win_amd64.whl (109.5 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

basinex-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

basinex-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (101.3 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

basinex-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl (109.5 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

basinex-0.2.0-cp310-cp310-macosx_10_9_universal2.whl (174.5 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

basinex-0.2.0-cp39-cp39-win_amd64.whl (109.7 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

basinex-0.2.0-cp39-cp39-win32.whl (96.1 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

basinex-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471.0 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

basinex-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (462.3 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

basinex-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (101.3 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

basinex-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl (109.5 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

basinex-0.2.0-cp39-cp39-macosx_10_9_universal2.whl (174.3 kB 查看哈希值)

上传时间 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

basinex-0.2.0-cp38-cp38-win_amd64.whl (110.9 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

basinex-0.2.0-cp38-cp38-win32.whl (96.8 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86

basinex-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (472.5 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

basinex-0.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (462.3 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

basinex-0.2.0-cp38-cp38-macosx_11_0_arm64.whl (100.2 kB 查看哈希值)

上传时间 CPython 3.8 macOS 11.0+ ARM64

basinex-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl (108.3 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

basinex-0.2.0-cp38-cp38-macosx_10_9_universal2.whl (171.9 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

basinex-0.2.0-cp37-cp37m-win_amd64.whl (109.1 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

basinex-0.2.0-cp37-cp37m-win32.whl (95.1 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86

basinex-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (446.4 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

basinex-0.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (436.3 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

basinex-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (108.8 kB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

basinex-0.2.0-cp36-cp36m-win_amd64.whl (109.1 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

basinex-0.2.0-cp36-cp36m-win32.whl (95.1 kB 查看哈希值)

上传于 CPython 3.6m Windows x86

basinex-0.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (446.3 kB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.17+ x86-64

basinex-0.2.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (435.9 kB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

basinex-0.2.0-cp36-cp36m-macosx_10_9_x86_64.whl (108.7 kB 查看哈希值)

上传于 CPython 3.6m macOS 10.9+ x86-64

支持者