import geopandas as gpd
import pandas as pd
from shapely.geometry import Point, Polygon
from shapely.ops import voronoi_diagram
import folium
# Buffer analysis - Create 1km buffers around points
points_gdf = gpd.read_file('points.geojson')
buffers = points_gdf.geometry.buffer(1000) # 1000 meters
# Intersection operations - Find overlapping areas
layer1 = gpd.read_file('layer1.geojson')
layer2 = gpd.read_file('layer2.geojson')
overlaps = gpd.overlay(layer1, layer2, how='intersection')
# Distance calculations - Calculate distances between features
points = gpd.read_file('points.geojson')
polygons = gpd.read_file('polygons.geojson')
distances = points.geometry.apply(lambda x: polygons.geometry.distance(x).min())
# Spatial joins - Join attributes based on location
joined = gpd.sjoin(points, polygons, how='left', predicate='within')
# Voronoi diagrams - Create service areas
from scipy.spatial import Voronoi
import numpy as np
coords = np.array([[p.x, p.y] for p in points.geometry])
voronoi = Voronoi(coords)