Skip to content
Back to skills

419 Geometric Operations F9d55230

ASecurity

GeoPandas provides extensive geometric manipulation through Shapely integration.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
datapythongotesting

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 419-geometric-operations_f9d55230 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 419 Geometric Operations F9d55230?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 419 Geometric Operations F9d55230
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-419-geometric-operations-f9d55230/badge)](https://www.skillsdirectory.com/skills/tools-only-419-geometric-operations-f9d55230)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Geometric Operations

GeoPandas provides extensive geometric manipulation through Shapely integration.

## Constructive Operations

Create new geometries from existing ones:

### Buffer

Create geometries representing all points within a distance:

```python
# Buffer by fixed distance
buffered = gdf.geometry.buffer(10)

# Negative buffer (erosion)
eroded = gdf.geometry.buffer(-5)

# Buffer with resolution parameter
smooth_buffer = gdf.geometry.buffer(10, resolution=16)
```

### Boundary

Get lower-dimensional boundary:

```python
# Polygon -> LineString, LineString -> MultiPoint
boundaries = gdf.geometry.boundary
```

### Centroid

Get center point of each geometry:

```python
centroids = gdf.geometry.centroid
```

### Convex Hull

Smallest convex polygon containing all points:

```python
hulls = gdf.geometry.convex_hull
```

### Concave Hull

Smallest concave polygon containing all points:

```python
# ratio parameter controls concavity (0 = convex hull, 1 = most concave)
concave_hulls = gdf.geometry.concave_hull(ratio=0.5)
```

### Envelope

Smallest axis-aligned rectangle:

```python
envelopes = gdf.geometry.envelope
```

### Simplify

Reduce geometric complexity:

```python
# Douglas-Peucker algorithm with tolerance
simplified = gdf.geometry.simplify(tolerance=10)

# Preserve topology (prevents self-intersections)
simplified = gdf.geometry.simplify(tolerance=10, preserve_topology=True)
```

### Segmentize

Add vertices to line segments:

```python
# Add vertices with maximum segment length
segmented = gdf.geometry.segmentize(max_segment_length=5)
```

### Union All

Combine all geometries into single geometry:

```python
# Union all features
unified = gdf.geometry.union_all()
```

## Affine Transformations

Mathematical transformations of coordinates:

### Rotate

```python
# Rotate around origin (0, 0) by angle in degrees
rotated = gdf.geometry.rotate(angle=45, origin='center')

# Rotate around custom point
rotated = gdf.geometry.rotate(angle=45, origin=(100, 100))
```

### Scale

```python
# Scale uniformly
scaled = gdf.geometry.scale(xfact=2.0, yfact=2.0)

# Scale with origin
scaled = gdf.geometry.scale(xfact=2.0, yfact=2.0, origin='center')
```

### Translate

```python
# Shift coordinates
translated = gdf.geometry.translate(xoff=100, yoff=50)
```

### Skew

```python
# Shear transformation
skewed = gdf.geometry.skew(xs=15, ys=0, origin='center')
```

### Custom Affine Transform

```python
from shapely import affinity

# Apply 6-parameter affine transformation matrix
# [a, b, d, e, xoff, yoff]
transformed = gdf.geometry.affine_transform([1, 0, 0, 1, 100, 50])
```

## Geometric Properties

Access geometric properties (returns pandas Series):

```python
# Area
areas = gdf.geometry.area

# Length/perimeter
lengths = gdf.geometry.length

# Bounding box coordinates
bounds = gdf.geometry.bounds  # Returns DataFrame with minx, miny, maxx, maxy

# Total bounds for entire GeoSeries
total_bounds = gdf.geometry.total_bounds  # Returns array [minx, miny, maxx, maxy]

# Check geometry types
geom_types = gdf.geometry.geom_type

# Check if valid
is_valid = gdf.geometry.is_valid

# Check if empty
is_empty = gdf.geometry.is_empty
```

## Geometric Relationships

Binary predicates testing relationships:

```python
# Within
gdf1.geometry.within(gdf2.geometry)

# Contains
gdf1.geometry.contains(gdf2.geometry)

# Intersects
gdf1.geometry.intersects(gdf2.geometry)

# Touches
gdf1.geometry.touches(gdf2.geometry)

# Crosses
gdf1.geometry.crosses(gdf2.geometry)

# Overlaps
gdf1.geometry.overlaps(gdf2.geometry)

# Covers
gdf1.geometry.covers(gdf2.geometry)

# Covered by
gdf1.geometry.covered_by(gdf2.geometry)
```

## Point Extraction

Extract specific points from geometries:

```python
# Representative point (guaranteed to be within geometry)
rep_points = gdf.geometry.representative_point()

# Interpolate point along line at distance
points = line_gdf.geometry.interpolate(distance=10)

# Interpolate point at normalized distance (0 to 1)
midpoints = line_gdf.geometry.interpolate(distance=0.5, normalized=True)
```

## Delaunay Triangulation

```python
# Create triangulation
triangles = gdf.geometry.delaunay_triangles()
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.