森林火险
基于多源卫星辅助地面分类建立的森林火点监测查询接口。
火点半径查询
概览
| 项目 | 内容 |
|---|---|
| 方法 | GET |
| 路径 | https://standard.data-api.skyviewor.host/v1/fire-point/nearby |
| 定价 | 每次成功调用 10 资源点 |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
lat |
float | 是 | — | 纬度 WGS84,范围 -90 ~ 90 |
lon |
float | 是 | — | 经度 WGS84,范围 -180 ~ 180 |
radius_km |
float | 否 | 10.0 | 搜索半径(公里),范围 0 < radius ≤ 500 |
查询最近 24 小时内的火点数据。
响应示例
{
"code": 0,
"message": "ok",
"data": {
"count": 3,
"time_window": {
"start": "2025-01-15T00:00:00+08:00",
"end": "2025-01-16T00:00:00+08:00"
},
"items": [
{
"hotspot_id": "FP202501150800_001",
"latitude": 30.12,
"longitude": 119.05,
"acq_datetime": "2025-01-15T08:00:00+08:00"
}
]
},
"request_id": "req_a1b2c3d4e5f6"
}
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
data.count |
int | 命中火点数量 |
data.time_window.start |
string | 数据时间窗口起始,ISO 8601 格式 |
data.time_window.end |
string | 数据时间窗口结束,ISO 8601 格式 |
data.items[].hotspot_id |
string | 火点唯一标识 |
data.items[].latitude |
float | 火点纬度 WGS84 |
data.items[].longitude |
float | 火点经度 WGS84 |
data.items[].acq_datetime |
string | 火点观测时间,ISO 8601 格式 |
代码示例
# 更换为您的以 sk- 开头的 API Key 字符串
curl -s \
-H "Authorization: Bearer sk-d5d0542bef7e42e2b8909cb7f42af5fb" \
"https://standard.data-api.skyviewor.host/v1/fire-point/nearby?lat=39.9312&lon=116.3852&radius_km=50"
import json, urllib.request
from urllib.parse import urlencode
API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb" # 更换为您的以 sk- 开头的 API Key 字符串
params = urlencode({"lat": 39.9312, "lon": 116.3852, "radius_km": 50})
url = f"https://standard.data-api.skyviewor.host/v1/fire-point/nearby?{params}"
req = urllib.request.Request(
url, headers={"Authorization": f"Bearer {API_KEY}"}
)
with urllib.request.urlopen(req, timeout=30) as resp:
result = json.loads(resp.read().decode())
data = result["data"]
print(f"命中 {data['count']} 条火点,消耗 10 资源点")
for item in data.get("items", []):
print(f" {item['hotspot_id']} ({item['latitude']}, {item['longitude']}) {item['acq_datetime']}")
const API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({ lat: 39.9312, lon: 116.3852, radius_km: 50 });
const url = `https://standard.data-api.skyviewor.host/v1/fire-point/nearby?${params}`;
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const result = await resp.json();
console.log(`命中 ${result.data.count} 条火点,消耗 10 资源点`);
result.data.items.forEach(item => {
console.log(` ${item.hotspot_id} (${item.latitude}, ${item.longitude}) ${item.acq_datetime}`);
});
const API_KEY: string = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
lat: "39.9312", lon: "116.3852", radius: "50",
});
const url = `https://standard.data-api.skyviewor.host/v1/wildfire/point/nearby?${params}`;
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const result: any = await resp.json();
console.log(`火点数: ${result.data.points.length}`);
for (const p of result.data.points) {
console.log(`(${p.latitude}, ${p.longitude}) 置信度: ${p.confidence}`);
}
import (
"encoding/json" "fmt" "io" "net/http" "net/url"
)
const apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb" // 更换为您的以 sk- 开头的 API Key 字符串
params := url.Values{}
params.Set("lat", "39.9312")
params.Set("lon", "116.3852")
params.Set("radius_km", "50")
apiUrl := "https://standard.data-api.skyviewor.host/v1/fire-point/nearby?" + params.Encode()
req, _ := http.NewRequest("GET", apiUrl, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
data := result["data"].(map[string]interface{})
fmt.Printf("命中 %.0f 条火点,消耗 10 资源点\n", data["count"])
String API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
String query = String.format("lat=%s&lon=%s&radius_km=%s",
URLEncoder.encode("39.9312", StandardCharsets.UTF_8),
URLEncoder.encode("116.3852", StandardCharsets.UTF_8),
URLEncoder.encode("50", StandardCharsets.UTF_8));
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://standard.data-api.skyviewor.host/v1/fire-point/nearby?" + query))
.header("Authorization", "Bearer " + API_KEY)
.GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
using System.Net.Http;
using System.Text.Json;
var apiBase = "https://standard.data-api.skyviewor.host";
var apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var json = await client.GetStringAsync($"{apiBase}/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50");
using var doc = JsonDocument.Parse(json);
var points = doc.RootElement.GetProperty("data").GetProperty("points");
Console.WriteLine($"火点数: {points.GetArrayLength()}");
foreach (var p in points.EnumerateArray())
{
Console.WriteLine($"({p.GetProperty("latitude").GetDouble()}, {p.GetProperty("longitude").GetDouble()}) 置信度: {p.GetProperty("confidence").GetString()}");
}
$API_BASE = "https://standard.data-api.skyviewor.host";
$API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
$ch = curl_init("{$API_BASE}/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer {$API_KEY}"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "火点数: " . count($result['data']['points']) . "\n";
foreach ($result['data']['points'] as $p) {
echo "({$p['latitude']}, {$p['longitude']}) 置信度: {$p['confidence']}\n";
}
library(httr)
library(jsonlite)
API_KEY <- "sk-d5d0542bef7e42e2b8909cb7f42af5fb" # 更换为您的以 sk- 开头的 API Key 字符串
resp <- GET(
"https://standard.data-api.skyviewor.host/v1/fire-point/nearby",
query = list(lat = 39.9312, lon = 116.3852, radius_km = 50),
add_headers(Authorization = paste("Bearer", API_KEY))
)
result <- fromJSON(content(resp, "text", encoding = "UTF-8"))
cat(sprintf("命中 %d 条火点,消耗 10 资源点\n", result$data$count))
for (i in seq_len(nrow(result$data$items))) {
item <- result$data$items[i, ]
cat(sprintf(" %s (%.2f, %.2f) %s\n",
item$hotspot_id, item$latitude, item$longitude, item$acq_datetime))
}
api_base = 'https://standard.data-api.skyviewor.host';
api_key = 'sk-d5d0542bef7e42e2b8909cb7f42af5fb'; % 更换为您的以 sk- 开头的 API Key 字符串
options = weboptions('HeaderFields', {'Authorization', ['Bearer ' api_key]}, 'Timeout', 30);
result = webread([api_base '/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50'], options);
fprintf('火点数: %d\n', length(result.data.points));
for i = 1:length(result.data.points)
p = result.data.points(i);
fprintf('(%.4f, %.4f) 置信度: %s\n', p.latitude, p.longitude, p.confidence);
end
火点矩形查询
概览
| 项目 | 内容 |
|---|---|
| 方法 | GET |
| 路径 | https://standard.data-api.skyviewor.host/v1/fire-point/bbox |
| 定价 | 每次成功调用 10 资源点 |
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
min_lon |
float | 是 | — | 最小经度,范围 -180 ~ 180 |
min_lat |
float | 是 | — | 最小纬度,范围 -90 ~ 90 |
max_lon |
float | 是 | — | 最大经度,范围 -180 ~ 180 |
max_lat |
float | 是 | — | 最大纬度,范围 -90 ~ 90 |
查询最近 24 小时内矩形范围内的火点数据。矩形范围不宜过大,建议单边不超过 5 度。
响应示例
{
"code": 0,
"message": "ok",
"data": {
"count": 7,
"time_window": {
"start": "2025-01-15T00:00:00+08:00",
"end": "2025-01-16T00:00:00+08:00"
},
"items": [
{
"hotspot_id": "FP202501150800_002",
"latitude": 23.5,
"longitude": 113.3,
"acq_datetime": "2025-01-15T08:00:00+08:00"
}
]
},
"request_id": "req_a1b2c3d4e5f6"
}
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
data.count |
int | 命中火点数量 |
data.time_window.start |
string | 数据时间窗口起始,ISO 8601 格式 |
data.time_window.end |
string | 数据时间窗口结束,ISO 8601 格式 |
data.items[].hotspot_id |
string | 火点唯一标识 |
data.items[].latitude |
float | 火点纬度 WGS84 |
data.items[].longitude |
float | 火点经度 WGS84 |
data.items[].acq_datetime |
string | 火点观测时间,ISO 8601 格式 |
代码示例
# 更换为您的以 sk- 开头的 API Key 字符串
curl -s \
-H "Authorization: Bearer sk-d5d0542bef7e42e2b8909cb7f42af5fb" \
"https://standard.data-api.skyviewor.host/v1/fire-point/bbox?min_lon=113&min_lat=23&max_lon=114&max_lat=24"
import json, urllib.request
from urllib.parse import urlencode
API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb" # 更换为您的以 sk- 开头的 API Key 字符串
params = urlencode({
"min_lon": 113, "min_lat": 23,
"max_lon": 114, "max_lat": 24,
})
url = f"https://standard.data-api.skyviewor.host/v1/fire-point/bbox?{params}"
req = urllib.request.Request(
url, headers={"Authorization": f"Bearer {API_KEY}"}
)
with urllib.request.urlopen(req, timeout=30) as resp:
result = json.loads(resp.read().decode())
print(f"命中 {result['data']['count']} 条火点")
const API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
min_lon: 113, min_lat: 23, max_lon: 114, max_lat: 24,
});
const url = `https://standard.data-api.skyviewor.host/v1/fire-point/bbox?${params}`;
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const result = await resp.json();
console.log(`命中 ${result.data.count} 条火点`);
const API_KEY: string = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
min_lat: "30.0", max_lat: "50.0", min_lon: "110.0", max_lon: "120.0",
});
const url = `https://standard.data-api.skyviewor.host/v1/wildfire/point/rectangle?${params}`;
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${API_KEY}` },
});
const result: any = await resp.json();
console.log(`火点数: ${result.data.points.length}`);
apiKey := "sk-d5d0542bef7e42e2b8909cb7f42af5fb" // 更换为您的以 sk- 开头的 API Key 字符串
params := url.Values{}
params.Set("min_lon", "113")
params.Set("min_lat", "23")
params.Set("max_lon", "114")
params.Set("max_lat", "24")
apiUrl := "https://standard.data-api.skyviewor.host/v1/fire-point/bbox?" + params.Encode()
req, _ := http.NewRequest("GET", apiUrl, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
fmt.Printf("命中 %.0f 条火点\n", result["data"].(map[string]interface{})["count"])
String API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
String query = String.format("min_lon=%s&min_lat=%s&max_lon=%s&max_lat=%s",
URLEncoder.encode("113", StandardCharsets.UTF_8),
URLEncoder.encode("23", StandardCharsets.UTF_8),
URLEncoder.encode("114", StandardCharsets.UTF_8),
URLEncoder.encode("24", StandardCharsets.UTF_8));
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://standard.data-api.skyviewor.host/v1/fire-point/bbox?" + query))
.header("Authorization", "Bearer " + API_KEY)
.GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
using System.Net.Http;
using System.Text.Json;
var apiBase = "https://standard.data-api.skyviewor.host";
var apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var json = await client.GetStringAsync($"{apiBase}/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0");
using var doc = JsonDocument.Parse(json);
Console.WriteLine($"火点数: {doc.RootElement.GetProperty("data").GetProperty("points").GetArrayLength()}");
$API_BASE = "https://standard.data-api.skyviewor.host";
$API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
$ch = curl_init("{$API_BASE}/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer {$API_KEY}"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "火点数: " . count($result['data']['points']) . "\n";
library(httr)
library(jsonlite)
API_KEY <- "sk-d5d0542bef7e42e2b8909cb7f42af5fb" # 更换为您的以 sk- 开头的 API Key 字符串
resp <- GET(
"https://standard.data-api.skyviewor.host/v1/fire-point/bbox",
query = list(min_lon = 113, min_lat = 23, max_lon = 114, max_lat = 24),
add_headers(Authorization = paste("Bearer", API_KEY))
)
result <- fromJSON(content(resp, "text", encoding = "UTF-8"))
cat(sprintf("命中 %d 条火点\n", result$data$count))
api_base = 'https://standard.data-api.skyviewor.host';
api_key = 'sk-d5d0542bef7e42e2b8909cb7f42af5fb'; % 更换为您的以 sk- 开头的 API Key 字符串
options = weboptions('HeaderFields', {'Authorization', ['Bearer ' api_key]}, 'Timeout', 30);
result = webread([api_base '/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0'], options);
fprintf('火点数: %d\n', length(result.data.points));