Awesome
GTKit - GIS Toolkit
GTKit (GIS Toolkit) is a library designed to streamline GIS (Geographic Information System) releated tasks. Whether it is geometry, GeoDataFrames, images, or mathematical operations, GTKit provides a set of commonly used methods and operations to simplify your workflow. This utility has been curated to include some of the regularly used methods and operations that I, frequently employ.
Features
GTKit offers a range of functionalities to assist you in working with GIS data effectively:
-
Geometry Operations: Perform various geometry-based operations such as splitting a LineString, line referencing, interpolation, extrapolation
-
GeoDataFrame Manipulation
-
Image Processing: Convert images to geometries, Generate Geometries from binary geo referenced mask
-
Mesh Creation: Create Mesh either using images or using LineString.
Installation with pip
External dependencies
- Geopandas - installation
- Rasterio - installation
- GDAL - installation
- Fiona - installation
- Shapely - installation
- Create conda env
conda env create --name gtkit --file=env.yml
conda activate gtkit
- Run:
pip install gtkit
Usage
Import GTKit in your Python script or notebook:
import gtkit
GTKit's modular structure allows you to import specific functionalities as needed for your project.
Examples
<table> <tr> <th>A.</th> <td> <a href="tutorials/shpToBitmap.ipynb">Generate Bitmap From Shp</a>.</br> <a href="tutorials/bitmapToShp.ipynb">Generate Shp From Bitmap</a>. </td> <td> <img src="https://github.com/fuzailpalnak/gtkit/assets/24665570/880d07c9-3d77-448a-99a7-9fd1b6d873fb" alt="alt text" width="256" height="256"> </td> </tr> <tr> <th>B.</th> <td> <a href="tutorials/shp2Mesh.ipynb">Generate mesh around a line string</a>. </td> <td> <img src="https://github.com/fuzailpalnak/gtkit/assets/24665570/050e2df5-79c3-4d65-ad8a-d19d0ee9feb8" alt="alt text" width="256" height="256"> </td> </tr> <tr> <th>C.</th> <td> <a href="tutorials/lineOps.ipynb">Some geometry Operations</a>. </td> <td> <img src="https://github.com/fuzailpalnak/gtkit/assets/24665570/4b1ff8ae-6e62-4d92-b7fa-694591ea05f9" alt="alt text" width="256" height="256"> </td> </tr> </table>Stitch And Split Geo Reference Image
import numpy as np
from gtkit.imgops import georead, geowrite
from gtkit.imgops import StitchNSplitGeo
sns = StitchNSplitGeo(split_size=(256, 256, 3), img_size=(1500, 1500, 3))
image = georead(r"22978945_15.tiff")
stitched_image = np.zeros((1500, 1500, 3))
for win_number, window in sns:
split_image, meta = sns.split(image, window)
# ....Processing on image
stitched_image = sns.stitch(split_image, stitched_image, window)
geowrite(
save_path=r"new.tiff",
image=stitched_image,
transform=image.transform,
crs=image.crs,
)
Documentation
For detailed information on available methods, classes, and their usage, refer to the GTKit Documentation.