"Nyuki" translates to "bee" in Swahili, but is also the word used to refer to aerial drones. While working on a project using aerial drone imagery for flood damage assessment with DataKind and WeRobotics we found that using many common python geospatial libraries had a steep learning curve and were confusing to use. So we developed some simple command line tools and library functions to simplify common tasks and dramatically accelerate our development.
The other challenge with processing large aerial drone images was that most GIS software such as QGIS or ArcGIS often crashed while processing large images. Aerial drones can easily produce 50,000 x 50,000 pixel images or more. Because processing such large images is memory and processor intensive, some common GIS software can often fail during processing. With nyuki we rely on the command line which has a much lighter memory footprint and is easier to kill if something is taking too long.
Nyuki is developed for python 3.6 or greater and runs on Windows, MacOS, and Linux operating systems.
We also wanted to thank all of the developers who built the libraries that we use in nyuki. Writing geospatial libraries is hard work, and the folks developing these core libraries have done a really outstanding job.
Nyuki is a command line tool that simplifies common and easy image processing tasks. The tools implemented so far include:
- Reprojecting geotiff and vector files
- Resampling geotiff files to higher or lower resolution
- Compressing geotiff files to save space
The "Installing" section below gives a brief sketch of how to install the
nyuki
package. More detailed instructions are included in the "Installation"
second of the package documentation.
Learning to use nyuki
assumes that the reader has a beginner level of understand
of geospatial data including the difference between raster file and vector files,
the basics of coordinate reference systems, and some familiarity with common
GIS software such as QGIS or ESRI ArcGIS.
Learning nyuki
is as simple as following the tutorial.
Nyuki relies on the open source Anaconda/Miniconda python distribution for scientific
computing. Many of the python and C++ libraries that nyuki depends upon are
difficult to install due to complicated dependencies between package or the
need to compile C++ files. Hence we chose to use a more robust package
manager: conda
.
Once conda is installed from the following link ,
the user can create new virtual environments and install packages like nyuki
into those environments. Conda
packages are stored in different public or
private channels, depending on whether the developer intends a package for
public use, or for a limited group of users. Nyuki is currently located in krishnab75
Anaconda
channel but will soon be added to the widely conda-forge
channel.
Assuming that the user has successfully installed the Anaconda/miniconda python distribution on their computer, the user may install nyuki in a stand-alone environment using
conda create -n nyuki-env -c krishnab75 nyuki
This will create a new environment named nyuki-env
into which the nyuki
application will be installed. Follow the prompts for the install and answer
"yes" at the install prompt. Nyuki will install a number of dependencies, so
it may take a few minutes to complete the installation.
Once installation is complete, you can activate the environment and begin to use nyuki
conda activate nyuki-env
The user should now be in the nyuki-env
python environment. To access nyuki's
commands and tools, type
nyuki --help
Explain how to run the automated tests for this system.
Explain what these tests test and why
Give an example
Explain what these tests test and why
Give an example
Add notes about how to use the system.
- Click - Command Line Interface
- Rasterio - Geospatial Library for Rasters
- Geopandas Geospatial Library for Vector data
- @00krishna - krishna bhogaonker
See also the list of