summaryrefslogtreecommitdiff
path: root/python-topocalc.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-topocalc.spec')
-rw-r--r--python-topocalc.spec364
1 files changed, 364 insertions, 0 deletions
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 <Python_Bot@openeuler.org> - 0.5.0-1
+- Package Spec generated