diff --git a/README.rst b/README.rst index 53f3dae4..c8dbf9cb 100644 --- a/README.rst +++ b/README.rst @@ -2,51 +2,82 @@ EIS Toolkit ==== -Related to EIS Horizon EU project. This repository is in early development stage. +Related to EIS Horizon EU project. This repository is in early +development stage. Current contents - a bunch of different configuration files -- one preprocessing tool +- one preprocessing tool (clip raster with polygon) - dummy files and functions for testing purposes. +.. important:: +This repository only contains source code related to eis_toolkit python package. +The user interface will be implemented into separate repository. + + Testing ==== -If you wish to just test the installation of eis_toolkit and use it, follow the **For users** section. -If you want to set up a local development environment for contributing, read also the +If you wish to just test the installation of eis_toolkit and use it, +follow the **For users** section. If you want to set up a local +development environment for contributing, read also the **For developers** section. + For users ---- -1. Navigate to the Releases section and download tar.gz or .zip file -2. Find out the path where python packages (which QGIS uses) are installed e.g. by opening QGIS, navigating to its -Python console and executing +1. Navigate to the Releases section and download latest tar.gz or +.zip file -.. code-block:: python +2. Create a new virtual environment (VE) by navigating to the folder +you wish to create the VE in, and by executing - import imp +.. code-block:: shell - str.replace(imp.find_module('numpy')[1], '/numpy', '') + python3 -m venv -3. Open command line and execute +3. Activate the VE: + +- UNIX / MacOS .. code-block:: shell - pip install --target= -U + source /bin/activate + +- Windows + +.. code-block:: shell + + \Scripts\activate.bat + +.. hint:: +You should see (**) appearing in front of the command prompt. + +4. Install eis_toolkit by running + +.. code-block:: shell + + pip install or .. code-block:: shell - pip install --target= -U + pip install -4. Go back to QGIS's Python console and run e.g. +5. Open Python console with + +.. code-block:: shell + + python + +and run e.g. .. code-block:: python - from eis_toolkit.dependency_test.dummy import test_function + from eis_toolkit.dummy_tests.dummy import test_function test_function(12,2) @@ -54,11 +85,42 @@ or .. code-block:: python - from eis_toolkit.dependency_test.dummy_gdal import driver_cnt + from eis_toolkit.dummy_tests.dummy_gdal import driver_cnt driver_cnt(1) -In both cases, a result should appear into the QGIS's Python console's output window. + +Performing more complex tests +^^^^ + +In case you do not want to insert your test commands one by one into the +command line's python console, you can create a local test file and +execute it with + +.. code-block:: shell + + python .py + +.. hint:: +Your .py test file can, for example, look like + +.. code-block:: python + + import rasterio as rio + import numpy as np + from matplotlib import pyplot + from pathlib import Path + + output_path = Path('/home/pauliina/Downloads/eis_outputs/clip_result.tif') + src = rio.open(output_path) + arr = src.read(1) + # Let's replace No data values with numpy NaN values in order to plot clipped raster + # so that the colour changes are visible for human eye + arr = np.where(arr<-100, np.nan, arr) + + pyplot.imshow(arr, cmap='gray') + pyplot.show() + For developers ---- @@ -66,7 +128,8 @@ For developers Prerequisites ^^^^ -1. Install `poetry `_ according to your platform's `instructions `_ +1. Install `poetry `_ according to your platform's +`instructions `_ 2. Get your local copy of the repository @@ -74,6 +137,7 @@ Prerequisites git clone https://github.com/GispoCoding/eis_toolkit.git + Set up a local environment ^^^^ @@ -97,105 +161,57 @@ or prefix your normal shell commands with poetry run + Test the effect of your changes ^^^^ -Without QGIS +From command line """" -**From the command line**: You can run your code from the command line with the virtual environment by +You can run your code from the command line within the virtual environment created by poetry. -1. Running (inside of the VE) +1. Run .. code-block:: shell pip install eis_toolkit -2. Opening VE's python console with +2. Open python console with .. code-block:: shell python -and running e.g. +and run e.g. .. code-block:: python - from eis_toolkit.dependency_test.dummy import test_function + from eis_toolkit.dummy_tests.dummy import test_function test_function(12,2) -**With JupyterLab**: You can also use `JupyterLab `_ for testing of more complicated functionalities -(for example if you need to store intermediate results in active memory). Launch JupyterLab with - -.. code-block:: shell - - poetry run jupyter lab -The notebooks are found in the `notebooks/` directory. You can import and use -eis_toolkit's functions in these notebooks in the same way as you normally would. - -With QGIS +With JupyterLab """" -1. Find out the path where python packages (which QGIS uses) are installed e.g. by opening QGIS - and navigating to Python console and executing - -.. code-block:: python - - import imp +You can also use `JupyterLab `_ for testing purposes +for example in cases when you want to store intermediate results in active memory. - str.replace(imp.find_module('numpy')[1], '/numpy', '') - -2. Go to command line, navigate inside of the cloned repository and build eis_toolkit with - -.. code-block:: shell - - poetry build - -3. Install eis_toolkit to the location found in step 1 +Launch JupyterLab with .. code-block:: shell - pip install --target= -U - -4. Now eis_toolkit is available in QGIS's python. You can, for example, go back to - QGIS's Python console and run - -.. code-block:: python - - from eis_toolkit.dependency_test.dummy import test_function - - test_function(12,2) - -or - -.. code-block:: python - - from eis_toolkit.dependency_test.dummy_sklearn import sk_mean - import numpy as np - - x = np.array([[1.0, 2.0, 3.0], [2.0, 2.0, 2.0]]) - - sk_mean(x) - -A result should appear into the QGIS's Python console's output window. - -Disclaimer -==== - -Any of the functionalities utilizing GDAL or rasterio (python library that depends on GDAL) functions will not -work when testing eis_toolkit outside of QGIS's Python console unless you have separately taken care of -installing GDAL library. In order to install GDAL it is necessary to have libgdal and -its development headers installed. For Ubuntu 20.04 you can achieve this via + poetry run jupyter lab -.. code-block:: shell +The notebooks are found in this repository, under the `notebooks/` directory. You can import and use +eis_toolkit's functions in these notebooks in the same way as you normally would use any other python package. - sudo apt-get install libgdal-dev +.. hint:: +There exists three example notebook files. The first one contains general usage instructions for running and +modifying JupyterLab notebooks. The second one has been created for testing that dependencies to other +python packages work and the third one has been created for testing the functionality of the clip tool. -**Note** that GDAL's installation procedure varies a lot between different -operating systems! Documentation ==== diff --git a/eis_toolkit/dependency_test/__init__.py b/eis_toolkit/dummy_tests/__init__.py similarity index 100% rename from eis_toolkit/dependency_test/__init__.py rename to eis_toolkit/dummy_tests/__init__.py diff --git a/eis_toolkit/dependency_test/dummy.py b/eis_toolkit/dummy_tests/dummy.py similarity index 100% rename from eis_toolkit/dependency_test/dummy.py rename to eis_toolkit/dummy_tests/dummy.py diff --git a/eis_toolkit/dependency_test/dummy_gdal.py b/eis_toolkit/dummy_tests/dummy_gdal.py similarity index 100% rename from eis_toolkit/dependency_test/dummy_gdal.py rename to eis_toolkit/dummy_tests/dummy_gdal.py diff --git a/eis_toolkit/dependency_test/dummy_sklearn.py b/eis_toolkit/dummy_tests/dummy_sklearn.py similarity index 100% rename from eis_toolkit/dependency_test/dummy_sklearn.py rename to eis_toolkit/dummy_tests/dummy_sklearn.py diff --git a/eis_toolkit/preprocessing/clip.py b/eis_toolkit/preprocessing/clip.py index 4c070390..a3978101 100644 --- a/eis_toolkit/preprocessing/clip.py +++ b/eis_toolkit/preprocessing/clip.py @@ -21,7 +21,7 @@ def clip_ras(rasin: Path, polin: Path, rasout: Path) -> None: raise (NotApplicableGeometryTypeException) if src.crs != pol_df.crs: raise (NonMatchingCrsException) - out_image, out_transform = mask(src, [pol_geom], crop=True) + out_image, out_transform = mask(src, [pol_geom], crop=True, all_touched=True) out_meta = src.meta out_meta.update({'driver': 'GTiff', diff --git a/notebooks/testing1.ipynb b/notebooks/testing1.ipynb index 1c99cb2b..68456fba 100644 --- a/notebooks/testing1.ipynb +++ b/notebooks/testing1.ipynb @@ -14,19 +14,11 @@ "\n", "It also acts as a simple introduction to how you could use notebooks when developing eis_toolkit.\n", "\n", - "*DISCLAIMER*. Any of the functionalities utilizing GDAL functions will not work when testing eis_toolkit **outside of QGIS's Python console** unless you have separately taken care of installing GDAL library.\n", - "\n", "## General instructions\n", "\n", "### Packages\n", "\n", - "Do not install any packages by yourself! We want to keep all packages excplicitly tracked so that the end-user only needs to run `pip install eis_toolkit` once and everything should work!\n", - "\n", - "### Where's GDAL?\n", - "\n", - "The GDAL installation is very platform specific, and would be a pain for testers at this point. We currently circumvent this by using the GDAL that comes with QGIS. This means GDAL-related issues will be resolved automatically when we call eis_toolkit functions from QGIS's python. \n", - "\n", - "This limits eis_toolkit as a standalone python library at this point, as we depend on QGIS for interacting with raster datasets.\n", + "Do not install any packages by yourself!\n", "\n", "### Where can I find data for testing?\n", "\n", @@ -59,8 +51,8 @@ "metadata": {}, "outputs": [], "source": [ - "from eis_toolkit.dependency_test.dummy import test_function\n", - "from eis_toolkit.dependency_test.dummy import test_function2" + "from eis_toolkit.dummy_tests.dummy import test_function\n", + "from eis_toolkit.dummy_tests.dummy import test_function2" ] }, { @@ -120,7 +112,7 @@ "source": [ "Note that above we created own import command for both functions. The other option would have been to\n", "```\n", - "from eis_toolkit.dependency_test import dummy\n", + "from eis_toolkit.dummy_tests import dummy\n", "\n", "dummy.test_function(1,2)\n", "dummy.test_function2(25)\n", @@ -142,7 +134,7 @@ "metadata": {}, "outputs": [], "source": [ - "from eis_toolkit.dependency_test import dummy_sklearn" + "from eis_toolkit.dummy_tests import dummy_sklearn" ] }, { @@ -184,34 +176,34 @@ ] }, { - "cell_type": "markdown", - "id": "072134c0-54d4-4b9f-b851-6f06e83030b5", + "cell_type": "code", + "execution_count": 8, + "id": "c6f3125b-e4ff-4222-b271-50d675a9e487", "metadata": {}, + "outputs": [], "source": [ - "This worked fine!" + "from eis_toolkit.dummy_tests.dummy_gdal import driver_cnt" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "c6f3125b-e4ff-4222-b271-50d675a9e487", + "execution_count": 9, + "id": "d7d4ebbc-06f2-44a2-9303-c6d33cb3592e", "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'osgeo'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Input \u001b[0;32mIn [7]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01meis_toolkit\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdependency_test\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m dummy_gdal\n", - "File \u001b[0;32m~/PycharmProjects/eis_toolkit/eis_toolkit/dependency_test/dummy_gdal.py:1\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mosgeo\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m gdal\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdriver_cnt\u001b[39m(a: \u001b[38;5;28mint\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 5\u001b[0m \u001b[38;5;124;03m\"\"\"Tests whether it works to call one of gdal's functions.\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \n\u001b[1;32m 7\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[1;32m 8\u001b[0m \u001b[38;5;124;03m a (int): input determining the functionality of the function\u001b[39;00m\n\u001b[1;32m 9\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'osgeo'" + "name": "stdout", + "output_type": "stream", + "text": [ + "GeoTiffien kasittelyyn soveltuvia drivereita: 2\n", + "Muuten vaan!\n" ] } ], "source": [ - "from eis_toolkit.dependency_test import dummy_gdal" + "driver_cnt(1)\n", + "\n", + "driver_cnt(3)" ] }, { @@ -219,7 +211,7 @@ "id": "85676b96-ad38-4703-8982-c80771fcd98e", "metadata": {}, "source": [ - "This did not work!" + "These worked fine!" ] }, { @@ -236,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "id": "c1339bfe-d9b5-4bde-8788-598c8c8bfa0c", "metadata": {}, "outputs": [], @@ -255,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "id": "acbaa675-8b96-49f1-bf26-a58432e4f6e8", "metadata": {}, "outputs": [ @@ -266,7 +258,7 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Input \u001b[0;32mIn [9]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# This fails\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpygame\u001b[39;00m\n", + "Input \u001b[0;32mIn [11]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# This fails\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpygame\u001b[39;00m\n", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'pygame'" ] } @@ -286,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "id": "8d59d9f0-2a07-4cb6-844f-1b3c2b5b1e16", "metadata": {}, "outputs": [], @@ -300,13 +292,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "id": "fc1a04a6-ac06-475a-aba4-7abca3a39ab3", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -331,7 +323,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "id": "c0d3aee8-eeae-46e7-8559-3854ae6f4653", "metadata": {}, "outputs": [], @@ -351,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "id": "16fa406b-218a-4ea0-90f4-0e654348c5e8", "metadata": {}, "outputs": [], @@ -369,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "id": "425290ad-ceec-4c55-9ae6-307147ed76f4", "metadata": {}, "outputs": [], @@ -384,7 +376,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "id": "5c350ccd-ffda-4965-8bfe-e98af5da2fc5", "metadata": {}, "outputs": [ diff --git a/notebooks/testing_clip.ipynb b/notebooks/testing_clip.ipynb new file mode 100644 index 00000000..bd545c88 --- /dev/null +++ b/notebooks/testing_clip.ipynb @@ -0,0 +1,101 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "de6b5fb9-2a80-48b7-8d02-4437d7f6d960", + "metadata": {}, + "source": [ + "# Test file for clip function" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "73d0a0f6-5d1a-49d8-9657-a7c820ba3ca5", + "metadata": {}, + "outputs": [], + "source": [ + "import rasterio as rio\n", + "import numpy as np\n", + "from matplotlib import pyplot\n", + "from pathlib import Path" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "efcd1286-c4d4-46f1-9f59-dca8c091514f", + "metadata": {}, + "outputs": [], + "source": [ + "output_path = Path('/home/pauliina/Downloads/eis_outputs/clip_result.tif')\n", + "# Default open mode is r\n", + "src = rio.open(output_path)\n", + "arr = src.read(1)\n", + "# Let's replace No data values with numpy NaN values in order to plot clipped raster so that the colour changes are visible for human eye\n", + "arr = np.where(arr<-100, np.nan, arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "74cba53e-5749-49f5-b355-921a99af90a4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAAD4CAYAAAAn+OBPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAARcklEQVR4nO3dbWyWVZ7H8d/f8mCpIEILNorgCvEhJKuzja4ZMorjGjUmOG90NBrWmEUTMU7iizXsi0FfGLNZZzKJmzG46jA6Ok6cMRpiRl2fcN8Yi2EF0QVWweGhtIBooSBt+e+L3mw6yH3+F70f4Xw/SdP2/l+9zuGGH9fd+5zrHHN3AcjHaY3uAID6IvRAZgg9kBlCD2SG0AOZGVfPxtrb233OnDll6/39/eE5xo1Ld7m1tfVEuwWcMtasWbPb3TtSx1QUejO7XtKvJLVI+g93fyx1/Jw5c9Td3V22/s4774RtzpgxI1mfP39+eA7gVGVmW6Njxvzy3sxaJP27pBskXSLpNjO7ZKznA1AflfxOf7mkze7+hbsflvR7SYuq0y0AtVJJ6M+R9JdR328rPQagidX83XszW2Jm3WbW3dfXV+vmAAQqCf12SbNGfX9u6bG/4u4r3L3L3bs6OpJvKgKog0pC/5GkeWZ2vplNkPRTSa9Vp1sAamXMQ3buPmRmSyW9oZEhu2fc/dNKOlPklcCkSZOS9a1bwxELzZ49u3CfgFNNReP07v66pNer1BcAdcA0XCAzhB7IDKEHMkPogcwQeiAzhB7IDKEHMlPXRTQiLS0t4TH79+9P1gcGBsJzbN68OVk/ePBgsn7TTTeFbQDNiis9kBlCD2SG0AOZIfRAZgg9kBlCD2SG0AOZaapx+iKbXRw4cCBZLzJOPzQ0lKwfOnQoWX/uuefCNu68887wGKARuNIDmSH0QGYIPZAZQg9khtADmSH0QGYIPZAZQg9kpqkm5+zduzc8JppYc/jw4fAcW7ZsSdY3btyYrE+ePDlsI5okdM8994TnAGqBKz2QGUIPZIbQA5kh9EBmCD2QGUIPZIbQA5lpqnH6wcHBis8RbVQhSevWrUvW33vvvWR97ty5YRvt7e3J+qpVq5L1tra2sI2FCxeGxwDHqij0ZrZFUr+kYUlD7t5VjU4BqJ1qXOkXuvvuKpwHQB3wOz2QmUpD75LeNLM1ZrbkeAeY2RIz6zaz7r6+vgqbA1CpSkO/wN1/IOkGSfeZ2Y+OPcDdV7h7l7t3dXR0VNgcgEpVFHp331763CvpFUmXV6NTAGpnzKE3szYzm3z0a0nXSVpfrY4BqI1K3r2fKekVMzt6nhfc/c+VdOb0008Pj4nup580aVJ4js7OzmQ9GiOPNtyQpHHj0k/tlClTkvXW1tawjfXr0//Hzp8/PzwH8jPm0Lv7F5L+top9AVAHDNkBmSH0QGYIPZAZQg9khtADmSH0QGYIPZCZplpEY8KECeExw8PDyXpLS0t4jrPPPjtZ7+pKLwswceLEsI3p06cn66edlv7/NprcU6QfRTYPmTZtWngMTi1c6YHMEHogM4QeyAyhBzJD6IHMEHogM4QeyExTjdMfOXIkPKa0aEdZRcbpo0U0rrzyyorbmDp1arJejY09okVHDh8+HJ4jWoijp6cnWb/22mvDNtBcuNIDmSH0QGYIPZAZQg9khtADmSH0QGYIPZCZuo7T9/f36/333y9bL3IPeXQ/fZGx/jPOOCNZjzbMKDL+HfWzv78/WY/mIxQ55uDBg+E59u3bl6z39vYm67feemvYxksvvRQeg/rhSg9khtADmSH0QGYIPZAZQg9khtADmSH0QGYIPZCZui+ikZo8M2XKlPDnx48fn6zv37+/oj5I8aSXIhOAokkt0UYUkydPDtvo6OhI1ltbW8NzRJtuDAwMJOttbW1hG7fffnuy/sILL4TnQPWEV3oze8bMes1s/ajHppnZW2a2qfT5rNp2E0C1FHl5/xtJ1x/z2EOS3nb3eZLeLn0P4CQQht7dV0s69rXoIkkrS1+vlHRzdbsFoFbG+kbeTHffWfq6R9LMcgea2RIz6zaz7m+++WaMzQGolorfvXd3l+SJ+gp373L3rjPPPLPS5gBUaKyh32VmnZJU+px+qxpA0xhr6F+TtLj09WJJr1anOwBqLRynN7MXJV0tqd3Mtkn6uaTHJP3BzO6WtFXSLUUaO3LkiA4cOFC2Hi1uIcUbPIz8tpEWLS4RLZJRpI09e/Yk66tXr07Wd+zYEbZxwQUXJOuXXXZZeI6LLrooWZ85s+zbNZKka665JmwjWpTkzTffDM8Rue666yo+Ry7C0Lv7bWVKP65yXwDUAdNwgcwQeiAzhB7IDKEHMkPogcwQeiAzhB7ITF0X0RgcHFRfX1/Z+sSJE8NzRAttRItsSPEiGVF9cHAwbCOaaDQ0NJSsb9iwIWxj48aNyXqRfs6aNStZnzZtWrJeZOGTCRMmJOvRQh5FpHZOkqSrrrqq4jZOFVzpgcwQeiAzhB7IDKEHMkPogcwQeiAzhB7ITF3H6YeGhtTT01O2Hi2QIUktLS3JerRggxSPC0fjykU2kTjvvPOS9QULFiTrRTbtiDbMOPfcc8NzROsWRs/FWWfFWx60t7cn60UWJYn+rNGiq2+88UbYxqFDh5L1RYsWhec4GXClBzJD6IHMEHogM4QeyAyhBzJD6IHMEHogM3W/n37Xrl1l60U2u4jG4YuM9Udjz9G48bhx8dMW9TPaiGLq1KlhG999912yPnfu3PAcnZ2dyXo0xl5kLkD09/r111+H59i3b1+yHm1Qktpk5aiBgYFk/dlnn03W77rrrrCNZsCVHsgMoQcyQ+iBzBB6IDOEHsgMoQcyQ+iBzBB6IDN1X0Sjt7e3bD1a0EGKJ61EmzNI8WSRaHJOtNhCkXNEE4QuvPDCsI1oQZHp06eH5zj//POT9WhyTrQxiBQvCBItgFHkmKgeTe6RpIMHDybr0QYljz/+eNjGgw8+GB5Ta+GV3syeMbNeM1s/6rHlZrbdzNaWPm6sbTcBVEuRl/e/kXT9cR7/pbtfWvp4vbrdAlArYejdfbWk9AJlAE4albyRt9TMPim9/C+7OqKZLTGzbjPrLvK7MIDaGmvofy3pAkmXStopqew7GO6+wt273L2ryB1wAGprTKF3913uPuzuRyQ9Jeny6nYLQK2MKfRmNvom7J9IWl/uWADNJRynN7MXJV0tqd3Mtkn6uaSrzexSSS5pi6R7ijQ2ODio3bt3l60XGaePNleIxpWleKw/GmMfHh4O2zhy5Eh4TEq0IYcULxhSj+eiv78/bCM1N0OSduzYEZ5j586dyfqePXuS9SL9jBYlif5Oi8xZeOSRR5L1Igu0LFu2LDwm2UZ0gLvfdpyHn66oVQANwzRcIDOEHsgMoQcyQ+iBzBB6IDOEHsgMoQcyU9dFNIaHh5OTKIrscDNlypSK6lK8+ES0O00R0SIZ48ePr6he5JgiNzildhyS4klCe/fGN2Bu3749Wd+2bVt4jr6+vmT922+/TdajBTCkyidUFfk7i/5dRHVJeuKJJ8rWZs2a9XfRz3OlBzJD6IHMEHogM4QeyAyhBzJD6IHMEHogM3Udp7/44ovV3d1dtn7FFVeE55g4cWKyXmScMxqPnTFjRrJeZBw/2nQj2oiiyJhxtMFDNHYtxWP5g4ODyXpPT0/YxldffZWsRwtkSPFmFdE4fJEFLqL5G9G/rejni/SjyDqSS5cuLVu7//7710Q/z5UeyAyhBzJD6IHMEHogM4QeyAyhBzJD6IHM1HWcPvLhhx9WfI477rgjPCbawCEaI589e3bYRnRff7R2wP79+8M2Kr3/W5IGBgaS9WgcfvPmzWEb0f30ReYTRPMFovv+i2wiEY2RR20UGWOPNmt54IEHwnNUiis9kBlCD2SG0AOZIfRAZgg9kBlCD2SG0AOZIfRAZppqck41PP/88+ExixcvTtajTQtaW1vDNqIFF6IFMIaHh8M2ooUjoskkUrxZxeeff56sb9y4MWwjmnxTZJJRpQtcFJmcU+nkm4cffjhsoxmE/yrMbJaZvWtmG8zsUzN7oPT4NDN7y8w2lT6npxoBaApFXt4PSXrQ3S+R9PeS7jOzSyQ9JOltd58n6e3S9wCaXBh6d9/p7h+Xvu6X9JmkcyQtkrSydNhKSTfXqI8AquiE3sgzszmSLpP0oaSZ7n50RcMeSTPL/MwSM+s2s+5oE0IAtVc49GZ2hqQ/SvqZu//VOzM+ctvacW9dc/cV7t7l7l0dHR0VdRZA5QqF3szGayTwv3P3P5Ue3mVmnaV6p6Te2nQRQDUVeffeJD0t6TN3/8Wo0muSjo59LZb0avW7B6DaiozT/1DSnZLWmdna0mPLJD0m6Q9mdrekrZJuqUkPa2DlypXxQQnLly8Pj4nG4aOx/iIbJ0SiBTIk6csvv0zWN23alKwXWQAjUmSDkmiTk2iMPZp7IUltbW3J+qOPPhqe42QQht7d/0tSuW05flzd7gCoNabhApkh9EBmCD2QGUIPZIbQA5kh9EBmTrn76euhyDj9vffem6xHY9Mjc6LSDh06lKxH98pLUnQ/RNRGkfvUozHyIn/W6BzR8/nUU0+FbeSCKz2QGUIPZIbQA5kh9EBmCD2QGUIPZIbQA5kh9EBmmJxTI08++WRFP79w4cLwmGjiTFQvIlrMo8hiH9HkmyLnePnll8NjUAxXeiAzhB7IDKEHMkPogcwQeiAzhB7IDKEHMsM4fZN69913w2PmzZuXrEcbQEjx4hTROYq0EY3Dr1q1KjwHqocrPZAZQg9khtADmSH0QGYIPZAZQg9khtADmSH0QGbCyTlmNkvSbyXNlOSSVrj7r8xsuaR/knR0i5Rl7v56rTqK79u0aVPF55g/f36yHi2A8cEHH1TcB9RXkRl5Q5IedPePzWyypDVm9lap9kt3/7fadQ9AtYWhd/edknaWvu43s88knVPrjgGojRP6nd7M5ki6TNKHpYeWmtknZvaMmZ1V7c4BqL7CoTezMyT9UdLP3P1bSb+WdIGkSzXySuDxMj+3xMy6zaw72iEVQO0VCr2ZjddI4H/n7n+SJHff5e7D7n5E0lOSLj/ez7r7Cnfvcveujo6OavUbwBiFobeRt2+flvSZu/9i1OOdow77iaT11e8egGor8u79DyXdKWmdma0tPbZM0m1mdqlGhvG2SLqnBv0DUGXm7vVrzKxP0tZRD7VL2l23Dowd/ayuk6GfJ0Mfpe/3c7a7J3+Prmvov9e4Wbe7dzWsAwXRz+o6Gfp5MvRRGls/mYYLZIbQA5lpdOhXNLj9ouhndZ0M/TwZ+iiNoZ8N/Z0eQP01+koPoM4IPZCZhoXezK43s/8xs81m9lCj+hExsy1mts7M1ppZd6P7c1TpJqdeM1s/6rFpZvaWmW0qfW7oTVBl+rjczLaXns+1ZnZjI/tY6tMsM3vXzDaY2adm9kDp8WZ7Psv184Se04b8Tm9mLZI2SvoHSdskfSTpNnffUPfOBMxsi6Qud2+qiRpm9iNJ+yX91t3nlx77V0l73f2x0n+kZ7n7PzdZH5dL2t9M6zCUppR3jl4zQtLNkv5RzfV8luvnLTqB57RRV/rLJW129y/c/bCk30ta1KC+nJTcfbWkvcc8vEjSytLXKzXyD6JhyvSx6bj7Tnf/uPR1v6Sja0Y02/NZrp8npFGhP0fSX0Z9v03NuzCHS3rTzNaY2ZJGdyYws7ToiST1aGSJs2bUtOswHLNmRNM+n5WsbcEbebEF7v4DSTdIuq/0krXp+cjvbc04HltoHYZGOM6aEf+vmZ7Psa5tcVSjQr9d0qxR359beqzpuPv20udeSa+ozLoBTWLX0VueS597G9yf7ym6DkO9HW/NCDXh81nJ2hZHNSr0H0maZ2bnm9kEST+V9FqD+lKWmbWV3jCRmbVJuk7NvW7Aa5IWl75eLOnVBvbluJpxHYZya0aoyZ7Pqq1t4e4N+ZB0o0bewf9fSf/SqH4EffwbSf9d+vi0mfop6UWNvJQb1Mh7IndLmi7pbUmbJP2npGlN2MfnJK2T9IlGQtXZBM/lAo28dP9E0trSx41N+HyW6+cJPadMwwUywxt5QGYIPZAZQg9khtADmSH0QGYIPZAZQg9k5v8AJut5NBB4a6UAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pyplot.imshow(arr, cmap='gray')\n", + "pyplot.show()" + ] + }, + { + "cell_type": "markdown", + "id": "de4004eb-d9c2-4e6f-8cbd-6540efbe06c1", + "metadata": {}, + "source": [ + "This is just to show one example on how you can visually check that your tool works as expected. Compare the image above with the result QGIS gives if you clip small_raster.tif with small_area.shp" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3691c2e-58ef-43ff-bda5-16fe4a19e1c1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tests/test_eis_toolkit.py b/tests/eis_toolkit_test.py similarity index 65% rename from tests/test_eis_toolkit.py rename to tests/eis_toolkit_test.py index 1ff912dd..d52b95d0 100644 --- a/tests/test_eis_toolkit.py +++ b/tests/eis_toolkit_test.py @@ -2,4 +2,5 @@ def test_version(): + """Tests that version number is correct.""" assert __version__ == '0.1.0'