summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 10:11:55 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 10:11:55 +0000
commit64fab1e06be25956759608c5f54ac08be4275623 (patch)
tree57cb0fb8d27da548f58e02f742a451940e4df828
parent40ff1164283d9d64a8f2b546b28ee1171d4f361f (diff)
automatic import of python-nismod-snailopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-nismod-snail.spec622
-rw-r--r--sources1
3 files changed, 624 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..779005a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/nismod-snail-0.3.0.tar.gz
diff --git a/python-nismod-snail.spec b/python-nismod-snail.spec
new file mode 100644
index 0000000..ea6a9f4
--- /dev/null
+++ b/python-nismod-snail.spec
@@ -0,0 +1,622 @@
+%global _empty_manifest_terminate_build 0
+Name: python-nismod-snail
+Version: 0.3.0
+Release: 1
+Summary: The spatial networks impact assessment library
+License: MIT License
+URL: https://github.com/nismod/snail
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f3/ab/e3251f834c308d68cbd59c0ca18e4591cab4769624b2e6e92b2efe4230bb/nismod-snail-0.3.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-geopandas
+Requires: python3-pyarrow
+Requires: python3-igraph
+Requires: python3-rasterio
+Requires: python3-shapely
+Requires: python3-affine
+Requires: python3-black
+Requires: python3-nbstripout
+Requires: python3-numpy
+Requires: python3-pytest-cov
+Requires: python3-pytest
+Requires: python3-sphinx
+Requires: python3-m2r2
+
+%description
+<p align="center">
+<a href="https://github.com/nismod/snail/tree/master/tutorials">Tutorials</a> |
+<a href="https://github.com/nismod/snail/issues">Issues</a>
+</p>
+
+<p align="center">
+<img src="./images/snail.svg" alt="snail" />
+</p>
+
+[![Build](https://github.com/nismod/snail/actions/workflows/build.yml/badge.svg)](https://github.com/nismod/snail/actions/workflows/build.yml)
+
+> This code is under early development
+
+# 🤔 What is this?
+
+This is a Python package to help with analysis of the potential impacts of
+climate hazards and other perils on infrastructure networks.
+
+## Installation
+
+Install using pip:
+
+ pip install nismod-snail
+
+This should bring all dependencies with it. If any of these cause difficulties,
+try using a [conda](https://docs.conda.io/en/latest/miniconda.html) environment:
+
+ conda env create -n snail_env \
+ python=3.8 geopandas shapely rasterio python-igraph
+ conda activate snail_env
+ pip install nismod-snail
+
+If all worked okay, you should be able to run python and import snail:
+
+ $ python
+ >>> import snail
+ >>> help(snail)
+ Help on package snail:
+
+ NAME
+ snail - snail - the spatial networks impact assessment library
+
+## Using the `snail` command
+
+Once installed, you can use `snail` directly from the command line.
+
+Split features on a grid defined by its transform, width and height:
+
+```bash
+snail split \
+ --features input.shp \
+ --transform 1 0 -180 0 -1 90 \
+ --width 360 \
+ --height 180 \
+ --output split.gpkg
+```
+
+Split features on a grid defined by a GeoTIFF, optionally adding the values from each raster band to each split feature as a new attribute:
+
+```bash
+snail split \
+ --features lines.geojson \
+ --raster gridded_data.tif \
+ --attribute \
+ --output split_lines_with_raster_values.geojson
+```
+
+Split multiple vector feature files along the grids defined by multiple raster files, attributing all raster values:
+
+```bash
+snail process -fs features.csv -rs rasters.csv
+```
+
+Where at a minimum, each CSV has a column `path` with the path to each file.
+
+### Transform
+
+A note on `transform` - these six numbers define the transform from `i,j` cell index (column/row) coordinates in the rectangular grid to `x,y` geographic coordinates, in the coordinate reference system of the input and output files. They effectively form the first two rows of a 3x3 matrix:
+
+```
+| x | | a b c | | i |
+| y | = | d e f | | j |
+| 1 | | 0 0 1 | | 1 |
+```
+
+In cases without shear or rotation, `a` and `e` define scaling or grid cell size, while `c` and `f` define the offset or grid upper-left corner:
+
+```
+| x_scale 0 x_offset |
+| 0 y_scale y_offset |
+| 0 0 1 |
+```
+
+See [`rasterio/affine`](https://github.com/rasterio/affine#usage) and [GDAL Raster Data Model](https://gdal.org/user/raster_data_model.html#affine-geotransform) for more documentation.
+
+## Development
+
+Clone this repository using [GitHub Desktop](https://desktop.github.com/) or on
+the command line:
+
+ git clone git@github.com:nismod/snail.git
+
+Change directory into the root of the project:
+
+ cd snail
+
+To create and activate a conda environment with snail's dependencies installed:
+
+ conda env create -f .environment.yml
+ conda activate snail-dev
+
+Run this to install the source code as a package:
+
+ pip install .
+
+If you're working on snail itself, install it as "editable" along with test and
+development packages:
+
+ pip install -e .[dev]
+
+Run tests using [pytest](https://docs.pytest.org/en/latest/) and
+[pytest-cov](https://pytest-cov.readthedocs.io) to check coverage:
+
+ pytest --cov=snail --cov-report=term-missing
+
+Run a formatter ([black](https://github.com/psf/black)) to fix code
+formatting:
+
+ black src/snail
+
+When working on the tutorial notebooks, it is recommended to install and
+configure [nbstripout](https://github.com/kynan/nbstripout) so data and outputs
+are not committed in the notebook files:
+
+ nbstripout --install
+
+### C++ library
+
+The C++ library in `src/cpp` contains the core routines to find intersections of
+lines with raster grids.
+
+Before working on the C++ library, fetch source code for Catch2 unit testing
+library (this is included as a git submodule):
+
+ git submodule update --init --recursive
+
+Build the library and run tests:
+
+ cmake -Bbuild .
+ cmake --build build/
+ ./build/run_tests
+
+Run code style auto-formatting:
+
+ clang-format -i src/cpp/*.hpp
+
+Run lints and checks:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/*.hpp
+
+This may need some includes for `pybind11` - which will vary depending on your
+python installation. For example, with python via miniconda:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/* -- \
+ -I/home/username/miniconda3/include/python3.7m/ \
+ -I./pybind11/include/
+
+### Integration of C++ and Python using pybind11
+
+The `snail.core.intersections` module is built using `pybind11` with
+`setuptools` (see [docs](https://pybind11.readthedocs.io/en/stable/compiling.html#building-with-setuptools))
+
+- `src/cpp/intersections.cpp` defines the module interface using the
+ `PYBIND11_MODULE` macro
+- `pyproject.toml` defines the build requirements for snail, which includes
+ pybind11, wheel and setuptools
+- `setup.py` defines the `Pybind11Extension` module to build - both the C++
+ files to compile, and the location of the built module within the python
+ package
+
+
+%package -n python3-nismod-snail
+Summary: The spatial networks impact assessment library
+Provides: python-nismod-snail
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-nismod-snail
+<p align="center">
+<a href="https://github.com/nismod/snail/tree/master/tutorials">Tutorials</a> |
+<a href="https://github.com/nismod/snail/issues">Issues</a>
+</p>
+
+<p align="center">
+<img src="./images/snail.svg" alt="snail" />
+</p>
+
+[![Build](https://github.com/nismod/snail/actions/workflows/build.yml/badge.svg)](https://github.com/nismod/snail/actions/workflows/build.yml)
+
+> This code is under early development
+
+# 🤔 What is this?
+
+This is a Python package to help with analysis of the potential impacts of
+climate hazards and other perils on infrastructure networks.
+
+## Installation
+
+Install using pip:
+
+ pip install nismod-snail
+
+This should bring all dependencies with it. If any of these cause difficulties,
+try using a [conda](https://docs.conda.io/en/latest/miniconda.html) environment:
+
+ conda env create -n snail_env \
+ python=3.8 geopandas shapely rasterio python-igraph
+ conda activate snail_env
+ pip install nismod-snail
+
+If all worked okay, you should be able to run python and import snail:
+
+ $ python
+ >>> import snail
+ >>> help(snail)
+ Help on package snail:
+
+ NAME
+ snail - snail - the spatial networks impact assessment library
+
+## Using the `snail` command
+
+Once installed, you can use `snail` directly from the command line.
+
+Split features on a grid defined by its transform, width and height:
+
+```bash
+snail split \
+ --features input.shp \
+ --transform 1 0 -180 0 -1 90 \
+ --width 360 \
+ --height 180 \
+ --output split.gpkg
+```
+
+Split features on a grid defined by a GeoTIFF, optionally adding the values from each raster band to each split feature as a new attribute:
+
+```bash
+snail split \
+ --features lines.geojson \
+ --raster gridded_data.tif \
+ --attribute \
+ --output split_lines_with_raster_values.geojson
+```
+
+Split multiple vector feature files along the grids defined by multiple raster files, attributing all raster values:
+
+```bash
+snail process -fs features.csv -rs rasters.csv
+```
+
+Where at a minimum, each CSV has a column `path` with the path to each file.
+
+### Transform
+
+A note on `transform` - these six numbers define the transform from `i,j` cell index (column/row) coordinates in the rectangular grid to `x,y` geographic coordinates, in the coordinate reference system of the input and output files. They effectively form the first two rows of a 3x3 matrix:
+
+```
+| x | | a b c | | i |
+| y | = | d e f | | j |
+| 1 | | 0 0 1 | | 1 |
+```
+
+In cases without shear or rotation, `a` and `e` define scaling or grid cell size, while `c` and `f` define the offset or grid upper-left corner:
+
+```
+| x_scale 0 x_offset |
+| 0 y_scale y_offset |
+| 0 0 1 |
+```
+
+See [`rasterio/affine`](https://github.com/rasterio/affine#usage) and [GDAL Raster Data Model](https://gdal.org/user/raster_data_model.html#affine-geotransform) for more documentation.
+
+## Development
+
+Clone this repository using [GitHub Desktop](https://desktop.github.com/) or on
+the command line:
+
+ git clone git@github.com:nismod/snail.git
+
+Change directory into the root of the project:
+
+ cd snail
+
+To create and activate a conda environment with snail's dependencies installed:
+
+ conda env create -f .environment.yml
+ conda activate snail-dev
+
+Run this to install the source code as a package:
+
+ pip install .
+
+If you're working on snail itself, install it as "editable" along with test and
+development packages:
+
+ pip install -e .[dev]
+
+Run tests using [pytest](https://docs.pytest.org/en/latest/) and
+[pytest-cov](https://pytest-cov.readthedocs.io) to check coverage:
+
+ pytest --cov=snail --cov-report=term-missing
+
+Run a formatter ([black](https://github.com/psf/black)) to fix code
+formatting:
+
+ black src/snail
+
+When working on the tutorial notebooks, it is recommended to install and
+configure [nbstripout](https://github.com/kynan/nbstripout) so data and outputs
+are not committed in the notebook files:
+
+ nbstripout --install
+
+### C++ library
+
+The C++ library in `src/cpp` contains the core routines to find intersections of
+lines with raster grids.
+
+Before working on the C++ library, fetch source code for Catch2 unit testing
+library (this is included as a git submodule):
+
+ git submodule update --init --recursive
+
+Build the library and run tests:
+
+ cmake -Bbuild .
+ cmake --build build/
+ ./build/run_tests
+
+Run code style auto-formatting:
+
+ clang-format -i src/cpp/*.hpp
+
+Run lints and checks:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/*.hpp
+
+This may need some includes for `pybind11` - which will vary depending on your
+python installation. For example, with python via miniconda:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/* -- \
+ -I/home/username/miniconda3/include/python3.7m/ \
+ -I./pybind11/include/
+
+### Integration of C++ and Python using pybind11
+
+The `snail.core.intersections` module is built using `pybind11` with
+`setuptools` (see [docs](https://pybind11.readthedocs.io/en/stable/compiling.html#building-with-setuptools))
+
+- `src/cpp/intersections.cpp` defines the module interface using the
+ `PYBIND11_MODULE` macro
+- `pyproject.toml` defines the build requirements for snail, which includes
+ pybind11, wheel and setuptools
+- `setup.py` defines the `Pybind11Extension` module to build - both the C++
+ files to compile, and the location of the built module within the python
+ package
+
+
+%package help
+Summary: Development documents and examples for nismod-snail
+Provides: python3-nismod-snail-doc
+%description help
+<p align="center">
+<a href="https://github.com/nismod/snail/tree/master/tutorials">Tutorials</a> |
+<a href="https://github.com/nismod/snail/issues">Issues</a>
+</p>
+
+<p align="center">
+<img src="./images/snail.svg" alt="snail" />
+</p>
+
+[![Build](https://github.com/nismod/snail/actions/workflows/build.yml/badge.svg)](https://github.com/nismod/snail/actions/workflows/build.yml)
+
+> This code is under early development
+
+# 🤔 What is this?
+
+This is a Python package to help with analysis of the potential impacts of
+climate hazards and other perils on infrastructure networks.
+
+## Installation
+
+Install using pip:
+
+ pip install nismod-snail
+
+This should bring all dependencies with it. If any of these cause difficulties,
+try using a [conda](https://docs.conda.io/en/latest/miniconda.html) environment:
+
+ conda env create -n snail_env \
+ python=3.8 geopandas shapely rasterio python-igraph
+ conda activate snail_env
+ pip install nismod-snail
+
+If all worked okay, you should be able to run python and import snail:
+
+ $ python
+ >>> import snail
+ >>> help(snail)
+ Help on package snail:
+
+ NAME
+ snail - snail - the spatial networks impact assessment library
+
+## Using the `snail` command
+
+Once installed, you can use `snail` directly from the command line.
+
+Split features on a grid defined by its transform, width and height:
+
+```bash
+snail split \
+ --features input.shp \
+ --transform 1 0 -180 0 -1 90 \
+ --width 360 \
+ --height 180 \
+ --output split.gpkg
+```
+
+Split features on a grid defined by a GeoTIFF, optionally adding the values from each raster band to each split feature as a new attribute:
+
+```bash
+snail split \
+ --features lines.geojson \
+ --raster gridded_data.tif \
+ --attribute \
+ --output split_lines_with_raster_values.geojson
+```
+
+Split multiple vector feature files along the grids defined by multiple raster files, attributing all raster values:
+
+```bash
+snail process -fs features.csv -rs rasters.csv
+```
+
+Where at a minimum, each CSV has a column `path` with the path to each file.
+
+### Transform
+
+A note on `transform` - these six numbers define the transform from `i,j` cell index (column/row) coordinates in the rectangular grid to `x,y` geographic coordinates, in the coordinate reference system of the input and output files. They effectively form the first two rows of a 3x3 matrix:
+
+```
+| x | | a b c | | i |
+| y | = | d e f | | j |
+| 1 | | 0 0 1 | | 1 |
+```
+
+In cases without shear or rotation, `a` and `e` define scaling or grid cell size, while `c` and `f` define the offset or grid upper-left corner:
+
+```
+| x_scale 0 x_offset |
+| 0 y_scale y_offset |
+| 0 0 1 |
+```
+
+See [`rasterio/affine`](https://github.com/rasterio/affine#usage) and [GDAL Raster Data Model](https://gdal.org/user/raster_data_model.html#affine-geotransform) for more documentation.
+
+## Development
+
+Clone this repository using [GitHub Desktop](https://desktop.github.com/) or on
+the command line:
+
+ git clone git@github.com:nismod/snail.git
+
+Change directory into the root of the project:
+
+ cd snail
+
+To create and activate a conda environment with snail's dependencies installed:
+
+ conda env create -f .environment.yml
+ conda activate snail-dev
+
+Run this to install the source code as a package:
+
+ pip install .
+
+If you're working on snail itself, install it as "editable" along with test and
+development packages:
+
+ pip install -e .[dev]
+
+Run tests using [pytest](https://docs.pytest.org/en/latest/) and
+[pytest-cov](https://pytest-cov.readthedocs.io) to check coverage:
+
+ pytest --cov=snail --cov-report=term-missing
+
+Run a formatter ([black](https://github.com/psf/black)) to fix code
+formatting:
+
+ black src/snail
+
+When working on the tutorial notebooks, it is recommended to install and
+configure [nbstripout](https://github.com/kynan/nbstripout) so data and outputs
+are not committed in the notebook files:
+
+ nbstripout --install
+
+### C++ library
+
+The C++ library in `src/cpp` contains the core routines to find intersections of
+lines with raster grids.
+
+Before working on the C++ library, fetch source code for Catch2 unit testing
+library (this is included as a git submodule):
+
+ git submodule update --init --recursive
+
+Build the library and run tests:
+
+ cmake -Bbuild .
+ cmake --build build/
+ ./build/run_tests
+
+Run code style auto-formatting:
+
+ clang-format -i src/cpp/*.hpp
+
+Run lints and checks:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/*.hpp
+
+This may need some includes for `pybind11` - which will vary depending on your
+python installation. For example, with python via miniconda:
+
+ clang-tidy --checks 'cppcoreguidelines-*' src/cpp/* -- \
+ -I/home/username/miniconda3/include/python3.7m/ \
+ -I./pybind11/include/
+
+### Integration of C++ and Python using pybind11
+
+The `snail.core.intersections` module is built using `pybind11` with
+`setuptools` (see [docs](https://pybind11.readthedocs.io/en/stable/compiling.html#building-with-setuptools))
+
+- `src/cpp/intersections.cpp` defines the module interface using the
+ `PYBIND11_MODULE` macro
+- `pyproject.toml` defines the build requirements for snail, which includes
+ pybind11, wheel and setuptools
+- `setup.py` defines the `Pybind11Extension` module to build - both the C++
+ files to compile, and the location of the built module within the python
+ package
+
+
+%prep
+%autosetup -n nismod-snail-0.3.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-nismod-snail -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a6d3dd8
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+718b4976bdf41d58bb85bfec0c5e7411 nismod-snail-0.3.0.tar.gz