Skip to content
Automation
Skill

/geomaster

Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains. Supports satellite imagery processing (Sentinel, Landsat, MODIS, SAR, hyperspectral), vector and raster data operations,

From plugin
vibe-skills
3.8k200 skills7 agents3 commands

Claude Code

$ npx -y skills add foryourhealth111-pixel/Vibe-Skills --skill geomaster --agent claude-code

SKILL.md

geomaster.SKILL.md
name: geomaster
description: Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains. Supports satellite imagery processing (Sentinel, Landsat, MODIS, SAR, hyperspectral), vector and raster data operations, spatial statistics, point cloud processing, network analysis, and 7 programming languages (Python, R, Julia, JavaScript, C++, Java, Go) with 500+ code examples. Use for remote sensing workflows, GIS analysis, spatial ML, Earth observation data processing, terrain analysis, hydrological modeling, marine spatial analysis, atmospheric science, and any geospatial computation task.
license: MIT License
metadata:
    skill-author: K-Dense Inc.

GeoMaster

GeoMaster is a comprehensive geospatial science skill covering the full spectrum of geographic information systems, remote sensing, spatial analysis, and machine learning for Earth observation. This skill provides expert knowledge across 70+ topics with 500+ code examples in 7 programming languages.

Installation

Core Python Geospatial Stack

# Install via conda (recommended for geospatial dependencies)
conda install -c conda-forge gdal rasterio fiona shapely pyproj geopandas

# Or via uv
uv pip install geopandas rasterio fiona shapely pyproj

Remote Sensing & Image Processing

# Core remote sensing libraries
uv pip install rsgislib torchgeo eo-learn

# For Google Earth Engine
uv pip install earthengine-api

# For SNAP integration
# Download from: https://step.esa.int/main/download/

GIS Software Integration

# QGIS Python bindings (usually installed with QGIS)
# ArcPy requires ArcGIS Pro installation

# GRASS GIS
conda install -c conda-forge grassgrass

# SAGA GIS
conda install -c conda-forge saga-gis

Machine Learning for Geospatial

# Deep learning for remote sensing
uv pip install torch-geometric tensorflow-caney

# Spatial machine learning
uv pip install libpysal esda mgwr
uv pip install scikit-learn xgboost lightgbm

Point Cloud & 3D

# LiDAR processing
uv pip install laspy pylas

# Point cloud manipulation
uv pip install open3d pdal

# Photogrammetry
uv pip install opendm

Network & Routing

# Street network analysis
uv pip install osmnx networkx

# Routing engines
uv pip install osrm pyrouting

Visualization

# Static mapping
uv pip install cartopy contextily mapclassify

# Interactive web maps
uv pip install folium ipyleaflet keplergl

# 3D visualization
uv pip install pydeck pythreejs

Big Data & Cloud

# Distributed geospatial processing
uv pip install dask-geopandas

# Xarray for multidimensional arrays
uv pip install xarray rioxarray

# Planetary Computer
uv pip install pystac-client planetary-computer

Database Support

# PostGIS
conda install -c conda-forge postgis

# SpatiaLite
conda install -c conda-forge spatialite

# GeoAlchemy2 for SQLAlchemy
uv pip install geoalchemy2

Additional Programming Languages

# R geospatial packages
# install.packages(c("sf", "terra", "raster", "terra", "stars"))

# Julia geospatial packages
# import Pkg; Pkg.add(["ArchGDAL", "GeoInterface", "GeoStats.jl"])

# JavaScript (Node.js)
# npm install @turf/turf terraformer-arcgis-parser

# Java
# Maven: org.geotools:gt-main

Quick Start

Reading Satellite Imagery and Calculating NDVI

import rasterio
import numpy as np

# Open Sentinel-2 imagery
with rasterio.open('sentinel2.tif') as src:
    # Read red (B04) and NIR (B08) bands
    red = src.read(4)
    nir = src.read(8)

    # Calculate NDVI
    ndvi = (nir.astype(float) - red.astype(float)) / (nir + red)
    ndvi = np.nan_to_num(ndvi, nan=0)

    # Save result
    profile = src.profile
    profile.update(count=1, dtype=rasterio.float32)

    with rasterio.open('ndvi.tif', 'w', **profile) as dst:
        dst.write(ndvi.astype(rasterio.float32), 1)

print(f"NDVI range: {ndvi.min():.3f} to {ndvi.max():.3f}")

Spatial Analysis with GeoPandas

import geopandas as gpd

# Load spatial data
zones = gpd.read_file('zones.geojson')
points = gpd.read_file('points.geojson')

# Ensure same CRS
if zones.crs != points.crs:
    points = points.to_crs(zones.crs)

# Spatial join (points within zones)
joined = gpd.sjoin(points, zones, how='inner', predicate='within')

# Calculate statistics per zone
stats = joined.groupby('zone_id').agg({
    'value': ['count', 'mean', 'std', 'min', 'max']
}).round(2)

print(stats)

Google Earth Engine Time Series

import ee
import pandas as pd

# Initialize Earth Engine
ee.Initialize(project='your-project-id')

# Define region of interest
roi = ee.Geometry.Point([-122.4, 37.7]).buffer(10000)

# Get Sentinel-2 collection
s2 = (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
      .filterBounds(roi)
      .filterDate('2020-01-01', '2023-12-31')
      .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)))

# Add NDVI band
def add_ndvi(image):
    ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI')
    return image.addBands(ndvi)

s2_ndvi = s2.map(add_ndvi)

# Extract time series
def extract_series(image):
    stats = image.reduceRegion(
        reducer=ee.Reducer.mean(),
        geometry=roi.centroid(),
        scale=10,
        maxPixels=1e9
    )
    return ee.Feature(None, {
        'date': image.date().format('YYYY-MM-dd'),
        'ndvi': stats.get('NDVI')
    })

series = s2_ndvi.map(extract_series).getInfo()
df = pd.DataFrame([f['properties'] for f in series['features']])
df['date'] = pd.to_datetime(df['date'])
print(df.head())

Core Concepts

Coordinate Reference Systems (CRS)

Understanding CRS is fundamental to geospatial work:

  • **Geographic CRS**: EPSG:4326 (WGS 84) - uses lat/lon degrees
  • **Projected CRS**: EPSG:3857 (Web Mercator) - uses meters
  • **UTM Zones**: EPSG:326xx (North), EPSG:327xx (South) - minimizes distortion

See

Read more
@foryourhealth111-pixel
Ships withvibe-skills

Intelligent Skill routing and workflow orchestration for AI agents — +21.12 pp reward, −29.6% tokens on SkillsBench with DeepSeekV4Flash-VE.

3.8k200 skills7 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of foryourhealth111-pixel/Vibe-Skills on GitHub, a chart by star-history.com

Other skills on vibe-skills.

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n12d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about geomaster.

Which coding agents can use geomaster?
geomaster installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.