From 66c7f7297eca9e6b012c627ed3beb5dea84a2ca0 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 31 May 2023 03:18:28 +0000 Subject: automatic import of python-topocalc --- .gitignore | 1 + python-topocalc.spec | 364 +++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 366 insertions(+) create mode 100644 python-topocalc.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..dd8cf41 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/topocalc-0.5.0.tar.gz diff --git a/python-topocalc.spec b/python-topocalc.spec new file mode 100644 index 0000000..ebbe475 --- /dev/null +++ b/python-topocalc.spec @@ -0,0 +1,364 @@ +%global _empty_manifest_terminate_build 0 +Name: python-topocalc +Version: 0.5.0 +Release: 1 +Summary: Topo calculations like gradient and sky view +License: CC0 1.0 +URL: https://github.com/USDA-ARS-NWRC/topocalc +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/53/d4/06d34bc7f7cb67d499d790275cd6f00472a5f5d2bd07d7e37ce7b6973aea/topocalc-0.5.0.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-Click +Requires: python3-spatialnc +Requires: python3-setuptools-scm + +%description +# topocalc + +[![Pypi version](https://img.shields.io/pypi/v/topocalc.svg)](https://pypi.python.org/pypi/topocalc) +[![Coverage Status](https://coveralls.io/repos/github/USDA-ARS-NWRC/topocalc/badge.svg?branch=main)](https://coveralls.io/github/USDA-ARS-NWRC/topocalc?branch=main) +[![Maintainability](https://api.codeclimate.com/v1/badges/20930fef2e7b7fe91dd3/maintainability)](https://codeclimate.com/github/USDA-ARS-NWRC/topocalc/maintainability) + +The `topocalc` package is a collection of functions to calculate various metrics on a digital elevation model (DEM). The calculations follow the equations laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) for the gradient, horizon and sky view factor. Currently the supported calculations are: + +1. Gradient for slope and aspect +2. Horizon angles for an azimuth +3. Sky view factor for percent of the sky that is visible from a point on the DEM + +- [topocalc](#topocalc) +- [Background](#background) + - [Azimuth convention](#azimuth-convention) + - [Gradient for slope and aspect](#gradient-for-slope-and-aspect) + - [Horizon angles](#horizon-angles) + - [Sky view factor](#sky-view-factor) +- [Usage](#usage) + - [Installation](#installation) + - [Gradient usage](#gradient-usage) + - [Sky view factor usage](#sky-view-factor-usage) + - [Command Line Interface](#command-line-interface) + +# Background + +## Azimuth convention + +For the azimuth's and aspects, the convention is that South is 0 degrees (0 radians) with positive values to the East (+90 degrees or pi/4 radians) and negative values to the West (-90 degrees or -pi/4 radians). North is -180 degrees or -pi/2. + +## Gradient for slope and aspect + +The gradient method calculates the slope and aspect of the input DEM. There are two methods in `topocalc.gradient` the `gradient_d4` and `gradient_d8`. + +`gradient_d4` mimics the slope and aspect calculations of the [IPW `gradient`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/gradient) function. This calculates the slope for a finite difference in just the x/y direction. + +`gradient_d8` (the default) uses a second order finite difference for a 3x3 square around a given point on the DEM. + +The gradient is used to calculate the aspect from North (0 degrees). A conversion function will take the aspect in degrees and convert to radians with South being 0. + +## Horizon angles + +The horizon angle for a point on the DEM is the angle from zenith to the horizon for a given azimuth. Following the methods laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) and in [IPW `horizon`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/horizon) the grid is rotated in the direction of the azimuth to make it a one dimensional problem. + +The horizon function will search the entire DEM profile for the horizon by finding the maximum slope along the profile. This search is performed in C to significantly speed up the computation. + +The values reported from `horizon` are cosine of the horizon angle. + +## Sky view factor + +The sky view factor (`svf`) is the amount of the sky that is visible to a particular point. The `svf` is between 0 and 1 with 1 indicating no obstructions from surrounding terrain and 0 indicating full obstruction. The `svf` uses the slope, aspect and horizon angles for 72 directions to estimate the sky view factor for the DEM. + +# Usage + +## Installation + +> **NOTE**: `topocalc` has only been tested for Python 3.6 to 3.9 on Linux and MacOSX environments. If building from source, topocalc must be compiled with `gcc`, `clang` will not work if on MacOS. + +To install: + +`pip install topocalc` + +## Gradient usage + +```python +from topocalc.gradient import gradient_d8 + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_dx = 30 +dem_dy = 30 + +slope, aspect = gradient_d8(dem, dem_dx, dem_dy) +``` + +## Sky view factor usage + +```python +from topocalc.viewf import viewf + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_spacing = 30 + +svf, tvf = viewf(dem, spacing=dem_spacing) +``` + +## Command Line Interface + +Comming soon! + + + + +%package -n python3-topocalc +Summary: Topo calculations like gradient and sky view +Provides: python-topocalc +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-topocalc +# topocalc + +[![Pypi version](https://img.shields.io/pypi/v/topocalc.svg)](https://pypi.python.org/pypi/topocalc) +[![Coverage Status](https://coveralls.io/repos/github/USDA-ARS-NWRC/topocalc/badge.svg?branch=main)](https://coveralls.io/github/USDA-ARS-NWRC/topocalc?branch=main) +[![Maintainability](https://api.codeclimate.com/v1/badges/20930fef2e7b7fe91dd3/maintainability)](https://codeclimate.com/github/USDA-ARS-NWRC/topocalc/maintainability) + +The `topocalc` package is a collection of functions to calculate various metrics on a digital elevation model (DEM). The calculations follow the equations laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) for the gradient, horizon and sky view factor. Currently the supported calculations are: + +1. Gradient for slope and aspect +2. Horizon angles for an azimuth +3. Sky view factor for percent of the sky that is visible from a point on the DEM + +- [topocalc](#topocalc) +- [Background](#background) + - [Azimuth convention](#azimuth-convention) + - [Gradient for slope and aspect](#gradient-for-slope-and-aspect) + - [Horizon angles](#horizon-angles) + - [Sky view factor](#sky-view-factor) +- [Usage](#usage) + - [Installation](#installation) + - [Gradient usage](#gradient-usage) + - [Sky view factor usage](#sky-view-factor-usage) + - [Command Line Interface](#command-line-interface) + +# Background + +## Azimuth convention + +For the azimuth's and aspects, the convention is that South is 0 degrees (0 radians) with positive values to the East (+90 degrees or pi/4 radians) and negative values to the West (-90 degrees or -pi/4 radians). North is -180 degrees or -pi/2. + +## Gradient for slope and aspect + +The gradient method calculates the slope and aspect of the input DEM. There are two methods in `topocalc.gradient` the `gradient_d4` and `gradient_d8`. + +`gradient_d4` mimics the slope and aspect calculations of the [IPW `gradient`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/gradient) function. This calculates the slope for a finite difference in just the x/y direction. + +`gradient_d8` (the default) uses a second order finite difference for a 3x3 square around a given point on the DEM. + +The gradient is used to calculate the aspect from North (0 degrees). A conversion function will take the aspect in degrees and convert to radians with South being 0. + +## Horizon angles + +The horizon angle for a point on the DEM is the angle from zenith to the horizon for a given azimuth. Following the methods laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) and in [IPW `horizon`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/horizon) the grid is rotated in the direction of the azimuth to make it a one dimensional problem. + +The horizon function will search the entire DEM profile for the horizon by finding the maximum slope along the profile. This search is performed in C to significantly speed up the computation. + +The values reported from `horizon` are cosine of the horizon angle. + +## Sky view factor + +The sky view factor (`svf`) is the amount of the sky that is visible to a particular point. The `svf` is between 0 and 1 with 1 indicating no obstructions from surrounding terrain and 0 indicating full obstruction. The `svf` uses the slope, aspect and horizon angles for 72 directions to estimate the sky view factor for the DEM. + +# Usage + +## Installation + +> **NOTE**: `topocalc` has only been tested for Python 3.6 to 3.9 on Linux and MacOSX environments. If building from source, topocalc must be compiled with `gcc`, `clang` will not work if on MacOS. + +To install: + +`pip install topocalc` + +## Gradient usage + +```python +from topocalc.gradient import gradient_d8 + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_dx = 30 +dem_dy = 30 + +slope, aspect = gradient_d8(dem, dem_dx, dem_dy) +``` + +## Sky view factor usage + +```python +from topocalc.viewf import viewf + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_spacing = 30 + +svf, tvf = viewf(dem, spacing=dem_spacing) +``` + +## Command Line Interface + +Comming soon! + + + + +%package help +Summary: Development documents and examples for topocalc +Provides: python3-topocalc-doc +%description help +# topocalc + +[![Pypi version](https://img.shields.io/pypi/v/topocalc.svg)](https://pypi.python.org/pypi/topocalc) +[![Coverage Status](https://coveralls.io/repos/github/USDA-ARS-NWRC/topocalc/badge.svg?branch=main)](https://coveralls.io/github/USDA-ARS-NWRC/topocalc?branch=main) +[![Maintainability](https://api.codeclimate.com/v1/badges/20930fef2e7b7fe91dd3/maintainability)](https://codeclimate.com/github/USDA-ARS-NWRC/topocalc/maintainability) + +The `topocalc` package is a collection of functions to calculate various metrics on a digital elevation model (DEM). The calculations follow the equations laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) for the gradient, horizon and sky view factor. Currently the supported calculations are: + +1. Gradient for slope and aspect +2. Horizon angles for an azimuth +3. Sky view factor for percent of the sky that is visible from a point on the DEM + +- [topocalc](#topocalc) +- [Background](#background) + - [Azimuth convention](#azimuth-convention) + - [Gradient for slope and aspect](#gradient-for-slope-and-aspect) + - [Horizon angles](#horizon-angles) + - [Sky view factor](#sky-view-factor) +- [Usage](#usage) + - [Installation](#installation) + - [Gradient usage](#gradient-usage) + - [Sky view factor usage](#sky-view-factor-usage) + - [Command Line Interface](#command-line-interface) + +# Background + +## Azimuth convention + +For the azimuth's and aspects, the convention is that South is 0 degrees (0 radians) with positive values to the East (+90 degrees or pi/4 radians) and negative values to the West (-90 degrees or -pi/4 radians). North is -180 degrees or -pi/2. + +## Gradient for slope and aspect + +The gradient method calculates the slope and aspect of the input DEM. There are two methods in `topocalc.gradient` the `gradient_d4` and `gradient_d8`. + +`gradient_d4` mimics the slope and aspect calculations of the [IPW `gradient`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/gradient) function. This calculates the slope for a finite difference in just the x/y direction. + +`gradient_d8` (the default) uses a second order finite difference for a 3x3 square around a given point on the DEM. + +The gradient is used to calculate the aspect from North (0 degrees). A conversion function will take the aspect in degrees and convert to radians with South being 0. + +## Horizon angles + +The horizon angle for a point on the DEM is the angle from zenith to the horizon for a given azimuth. Following the methods laid out in [Dozier and Frew, 1990](https://doi.org/10.1109/36.58986) and in [IPW `horizon`](https://github.com/USDA-ARS-NWRC/ipw/tree/main/src/bin/topocalc/horizon) the grid is rotated in the direction of the azimuth to make it a one dimensional problem. + +The horizon function will search the entire DEM profile for the horizon by finding the maximum slope along the profile. This search is performed in C to significantly speed up the computation. + +The values reported from `horizon` are cosine of the horizon angle. + +## Sky view factor + +The sky view factor (`svf`) is the amount of the sky that is visible to a particular point. The `svf` is between 0 and 1 with 1 indicating no obstructions from surrounding terrain and 0 indicating full obstruction. The `svf` uses the slope, aspect and horizon angles for 72 directions to estimate the sky view factor for the DEM. + +# Usage + +## Installation + +> **NOTE**: `topocalc` has only been tested for Python 3.6 to 3.9 on Linux and MacOSX environments. If building from source, topocalc must be compiled with `gcc`, `clang` will not work if on MacOS. + +To install: + +`pip install topocalc` + +## Gradient usage + +```python +from topocalc.gradient import gradient_d8 + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_dx = 30 +dem_dy = 30 + +slope, aspect = gradient_d8(dem, dem_dx, dem_dy) +``` + +## Sky view factor usage + +```python +from topocalc.viewf import viewf + +# Load the DEM into a numpy array +dem = load_dem(path_to_dem) + +# grid cell spacing for the DEM +dem_spacing = 30 + +svf, tvf = viewf(dem, spacing=dem_spacing) +``` + +## Command Line Interface + +Comming soon! + + + + +%prep +%autosetup -n topocalc-0.5.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-topocalc -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot - 0.5.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..de955ca --- /dev/null +++ b/sources @@ -0,0 +1 @@ +20df27d0921cc3235500fa0495b7370b topocalc-0.5.0.tar.gz -- cgit v1.2.3