GeoPressureAPI
JSON API to compute mismatch of pressure timeseries with ERA-5 on Google Earth Engine.
Install / Use
/learn @GeoPressure/GeoPressureAPIREADME
GeoPressureAPI
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
maskThresholdto filter pixels and reduce computation time - Data Source: ERA5-Land (1981 to 3 months from real-time), 1-hour resolution
Output Layers
- MSE: Pressure mismatch computed using Mean Square Error
- 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
node-connect
354.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
