SkillAgentSearch skills...

GeoPressureAPI

JSON API to compute mismatch of pressure timeseries with ERA-5 on Google Earth Engine.

Install / Use

/learn @GeoPressure/GeoPressureAPI
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GeoPressureAPI

Test Server

Overview

GeoPressureAPI is a JSON API that enables computation of pressure mismatch between geolocator pressure timeseries and atmospheric pressure from ERA5-LAND reanalysis data.

This documentation describes how to use the GeoPressure API. Please file an issue if you find anything missing.

Available Endpoints

The GeoPressure API provides four main endpoints:

| Endpoint | Description | | ------------------------------------------------------------- | --------------------------------------------------- | | Pressure Map | Compute pressure mismatch maps from geolocator data | | Pressure Timeseries | Extract pressure timeseries at specific locations | | Ground Elevation Path | Get elevation profiles along polylines | | Pressure Data Path | Extract atmospheric variables along paths |


1. Pressure Map

Endpoint: POST /glp.mgravey.com/GeoPressure/v2/map/

Overview

Compute maps of pressure mismatch from geolocator pressure timeseries. Returns GeoTIFF maps with pressure mismatch analysis.

Features

  • MSE Layer: Mean Square Error between geolocator and ERA5 pressure data (with mean error removed for altitude flexibility)
  • Mask Layer (optional): Proportion of timeseries within ground elevation range using barometric formula and SRTM data
  • Optimization: Use maskThreshold to filter pixels and reduce computation time
  • Data Source: ERA5-Land (1981 to 3 months from real-time), 1-hour resolution

Output Layers

  1. MSE: Pressure mismatch computed using Mean Square Error
  2. Mask: Altitude feasibility based on barometric formula and SRTM-90 elevation data

Request Parameters

| Parameter | Type | Required | Default | Description | | --------------- | -------------------- | -------- | ------- | ------------------------------------------------------------------------------------- | | W | number | ✅ | | West coordinate (-180° to 180°) | | S | number | ✅ | | South coordinate (-90° to 90°) | | E | number | ✅ | | East coordinate (-180° to 180°) | | N | number | ✅ | | North coordinate (-90° to 90°) | | pressure | number[] | ✅ | | Atmospheric pressure values (Pascal) | | time | number[] | ✅ | | UNIX timestamps (seconds since 1970-01-01) | | label | (string\|number)[] | ✅ | | Grouping labels for pressure data | | scale | number | | 10 | Pixels per degree (10 = 0.1°/~10km, 4 = 0.25°/~30km) | | maxSample | number | | 250 | Maximum datapoints for computation (randomly sampled) | | margin | number | | 30 | Altitude error margin in meters (1hPa ≈ 10m) | | includeMask | boolean | | true | Include mask layer in output | | maskThreshold | number | | 0 | Filter pixels by mask value (0-1, e.g., 0.9 for 90%+ feasibility) |

Response Format

| Field | Type | Description | | --------------- | -------------------- | ---------------------------------------------- | | status | string | "success" or "error" | | taskID | number | Unique task identifier | | labels | (string\|number)[] | Unique labels in same order as URLs | | urls | string[] | Download URLs for GeoTIFF files | | resolution | number | Map resolution in degrees | | size | number[] | Map dimensions [width, height] | | bbox | object | Bounding box coordinates | | includeMask | boolean | Whether mask layer is included | | maskThreshold | number | Applied mask threshold | | errorMessage | string | Error description (if status = "error") | | advice | string | Troubleshooting guidance (if status = "error") |

GeoTIFF Content

Each URL returns a GeoTIFF file with:

  • Band 1: MSE values
  • Band 2: Mask values (if includeMask = true)

Special values:

  • -2: Water/no data areas
  • -1: Pixels below mask threshold

Example Usage

POST /glp.mgravey.com/GeoPressure/v2/map/
Content-Type: application/json

{
  "W": -18,
  "S": 4,
  "E": 16,
  "N": 51,
  "time": [1572075000, 1572076800, 1572078600],
  "pressure": [97766, 97800, 97833],
  "label": [1, 1, 1]
}

Response:

{
  "status": "success",
  "taskID": 1639259414,
  "data": {
    "labels": [1],
    "urls": ["https://earthengine.googleapis.com/v1alpha/..."],
    "resolution": 0.25,
    "size": [136, 188],
    "bbox": { "W": -18, "S": 4, "E": 16, "N": 51 },
    "time2GetUrls": 11.61,
    "includeMask": true,
    "maskThreshold": 0.9
  }
}

2. Pressure Timeseries

Endpoint: POST /glp.mgravey.com/GeoPressure/v2/timeseries/

Overview

Extract pressure timeseries at a specific location, with optional altitude computation when geolocator pressure data is provided.

Features

  • Pressure extraction at precise coordinates
  • Altitude computation using barometric formula (when pressure provided)
  • Land fallback: Automatically moves water coordinates to nearest land
  • Flexible time ranges: Use time arrays or start/end timestamps

Request Parameters

| Parameter | Type | Required | Description | | ----------- | ---------- | -------- | ------------------------------------------------- | | lon | number | ✅ | Longitude coordinate (-180° to 180°) | | lat | number | ✅ | Latitude coordinate (-90° to 90°) | | pressure | number[] | ⚠️* | Geolocator pressure values (Pascal) | | time | number[] | ⚠️* | UNIX timestamps (required if pressure provided) | | startTime | number | ⚠️** | Start timestamp (required if no pressure) | | endTime | number | ⚠️** | End timestamp (required if no pressure) |

* Required together
** Required if pressure not provided

Response Format

| Field | Type | Description | | ----------- | -------- | ------------------------------------------------------ | | status | string | "success" or "error" | | taskID | number | Unique task identifier | | url | string | CSV download URL | | distInter | number | Distance to nearest land (meters, if moved from water) | | lon | number | Actual longitude used | | lat | number | Actual latitude used |

CSV Output Format

| Column | Description | | ---------- | ---------------------------------------------------------- | | time | UNIX timestamps | | pressure | ERA5 pressure values | | altitude | Computed altitude (only if geolocator pressure provided) |

Example Usage

POST /glp.mgravey.com/GeoPressure/v2/timeseries/
Content-Type: application/json

{
  "lon": 6,
  "lat": 46,
  "startTime": 1497916800,
  "endTime": 1500667800
}

Response:

{
  "status": "success",
  "taskID": 1639259414,
  "data": {
    "url": "https://earthengine.googleapis.com/v1alpha/...",
    "format": "csv"
  }
}

3. Ground Elevation Along a Path

Endpoint: POST /glp.mgravey.com/GeoPressure/v2/elevationPath/

Overview

Extract ground elevation statistics from SRTM-90 data along a polyline path.

Request Parameters

| Parameter | Type | Required | Default | Description | | --------------- | ---------- | -------- | -------------- | -----------------

Related Skills

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated2d ago
Forks1

Languages

Python

Security Score

75/100

Audited on Apr 8, 2026

No findings