Skip to main content

Utility for image and math related operation in GIS

Project description

py-gis-utility

A GIS utility library which contains some regularly required math and image operations.

Downloads

Installation

pip install py-gis-utility

Requirements

Math Operations

  1. Get perpendicular point with reference to start and end point of the segment
  2. Get perpendicular distance from point to line_segment
  3. Given a Point find a new point at an given 'angle' with given 'distance'
  4. Calculate a new point on the line segment given the distance from the start
  5. Euclidean computation

Image Operations

Save Multi Band Imagery

import numpy as np
from affine import Affine
from py_gis_utility.image_func import save_16bit_multi_band, save_8bit_multi_band

image = np.zeros((512, 512, 6))
transform = Affine(1.0, 0.0, 3422098.682455578,
       0.0, -1.0, 5289611.291479621)

# Save 8bit
save_8bit_multi_band(image, transform, 26910, r"8bit.tiff")

# Save 16bit
save_16bit_multi_band(image, transform, 26910, r"16bit.tiff")

Generate bitmap from shape file

Animation

from py_gis_utility.helper import (
    read_data_frame,
    save_image_with_geo_transform,
)
from py_gis_utility.image_func import shape_geometry_to_bitmap_from_data_frame_generator

data_frame = read_data_frame(r"path_to_geometry_file")
bitmap_gen = shape_geometry_to_bitmap_from_data_frame_generator(data_frame, (50, 50), (1, 1),
 allow_output_to_overlap=True)

for i, bitmap in enumerate(bitmap_gen):
    save_image_with_geo_transform(f"{i}.tiff", bitmap.array, bitmap.transform)

Generate shape geometry from geo reference bitmap

from py_gis_utility.helper import (read_image_with_geo_transform,
)
from py_gis_utility.image_func import image_obj_to_coordinates_generator, image_obj_to_shape_generator


img_obj = read_image_with_geo_transform(r"path_to_geo_referenced_file")

# output in format {'geometry': <shapely.geometry.polygon.Polygon object at 0x0000022009E5EC08>, 'properties': {'id': 255.0, 'crs': CRS.from_epsg(4326)}}
shape_gen = image_obj_to_shape_generator(img_obj)
for g in shape_gen:
    print(g)

# output in format {'geometry': {'type': 'Polygon', 'coordinates': [[(621000.0, 3349500.0), .... ,(621000.0, 3349489.5)]]}, 'properties': {'id': 255.0, 'crs': CRS.from_epsg(4326)}}
co_ord_gen = image_obj_to_coordinates_generator(img_obj)
for g in co_ord_gen:
    print(g)

Support Me

Buy Me a Coffee at ko-fi.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py-gis-utility-0.2.2.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

py_gis_utility-0.2.2-py3-none-any.whl (13.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page